비탈릭의 The Meaning of Decentralization을 번역했습니다. 설명이 필요한 부분은 이해를 돕기 위해 부가적인 설명을 더했고, 글의 맥락 상 중요하지 않다고 생각되는 부분은 삭제하였습니다. 미숙한 번역으로 오역이 있을 수 있습니다. 원문은 아래 링크에서 읽어보실 수 있습니다.
https://medium.com/@VitalikButerin/the-meaning-of-decentralization-a0c92b76a274
탈중앙화(Decentralication)은 블록체인, 그리고 암호경제학 분야에서 가장 많이 가장 빈번하게 사용되는 단어 중 하나입니다. 어떤 사람들은 탈중앙화가 블록체인이 존재하는 이유라고 이야기하기도 할 정도죠. 하지만 저는 탈중앙화라는 단어가 가장 왜곡된 의미를 가진 단어라고 생각합니다.
사람들은 블록체인이 처음 만들어졌을 때부터 지금까지 이어진 수천 시간의 연구와 수십 억 달러의 해시파워가 단순히 탈중앙화를 위한 일이었다고 생각하죠. 또 어떤 사람들은 프로토콜 안에서 서로의 의견이 마음에 들지 않을 때 상대방의 주장을 깎아내리기 위한 최후의 수단으로 사용하기도 하죠. 마치 “당신의 의견은 중앙화(Centralized) 되었다”라고 말입니다.
실제로 탈중앙화가 무엇을 의미하는지에 대해서 명확히 정의하는 것은 어려운 일이라고 생각합니다. 아래에 다이어그랩을 보도록 하겠습니다.

이 다이어그램을 보면서 Quora(질문/답변 웹사이트)에 올라온 “What is the difference between distributed and decentralized?”라는 질문과 이 질문에 달린 두 답변을 살펴보면 좋을 것 같습니다.

먼저 첫 번째 답변은 “If something is distributed then it is more than likely “Decentralized” 라고 이야기합니다. 이는 위의 다이어그램과 크게 다르지 않은 설명인 것 같습니다.

두 번째 답변을 봅시다. 두 번째 답변은 “Distributed means not all the processing of the transactions is done in the same place.” 그리고 “Decentralized means that not one single entity has control over all the processing” 라고 이야기합니다. 첫 번째 답변과는 다른 주장을 하고 있죠.

Ethereum Stack Exchange에 등록된 글 중에서는 위의 다이어그램과 동일한 그림이지만, “Decentralized”와 “Distributed”가 바뀌어있는 것을 찾아볼 수 있습니다. 분명히 설명이 필요한 부분이라고 생각되네요.
소프트웨어의 탈중앙성에 대해 이야기할 때, 또는 탈중앙성에 대해 평가할 때, 일반적으로 고려하는 3가지 지표가 있습니다. 이 세 가지 지표는 서로 의존하면서도 어떤 부분에서는 독립적이라고 할 수 있습니다.
Architechtual Decentralization(구조적 탈중앙성)
프로토콜이 몇 개의 물리적인 컴퓨터로 구성되어 있는가? 또한 프로토콜은 몇 개의 컴퓨터가 동시에 고장날 때까지 존속할 수 있는가?
Political Decentralization(정치적 탈중앙성)
프로토콜을 구성하는 컴퓨터를 제어하는 개인 또는 조직은 몇 명으로 이루어져있는가? 또한 전체 대비 가장 많은 컴퓨터를 통제하는 개인 또는 조직은 몇 퍼센트에 해당하는가?
Logical Decentralization(논리적 탈중앙성)
프로토콜의 인터페이스와 데이터 구조가 서로 의존하는 하나의 유기체처럼 동작하는가? 아니면 각각 독립적으로 존재하고 기능할 수 있는가?
마지막 논리적 탈중앙성을 평가하기 위해서는 시스템을 계속해서 나누어보며, 각 개체가 필요로하는 기능과 제공하는 기능이 망가지지 않고, 독립적인 단위로 동작할 수 있는지 생각해보는 것입니다.
아래 그림은 탈중앙화의 기준이되는 세 가지 지표를 표로 만든 것입니다. 물론 여기에는 다른 의견이 존재할 수 있습니다.

전통적인 기업은 구조적, 정치적, 논리적 세 가지 기준에서 모두 중앙화되어있습니다. 본사가 한 곳이거나, 여러 사무소를 통제한다는 점에서 구조적으로 중앙화되어 있다고 할 수 있고요, 정치적으로 CEO가 1명 또는 소수의 C-Level에 의해 통제되다는 점에서 중앙화되어있습니다. 마지막으로 일반적인 기업을 분리해봤을 때, 그 기능을 다할 수 없다는 점에서 논리적으로도 중앙화되어있죠.
민법은 논리적, 정치적으로 중앙화되어있지만, 보통법은 구조적인 측면에서도 탈중앙화되어 있다고 할 수 있습니다. 왜냐하면 민법은 중앙집권적인 입법기관에 의존하지만, 보통법은 수많은 판사들이 만들어낸 개별적인 판례로 구성되기 떄문이며, 특별히 미국의 경우에는 주법원에 따라 재량권을 가지기 때문에 보통법은 전통 기업과 민법에 비해 탈중앙화되어있다고 할 수 있습니다.
언어는 구조적, 정치적, 논리적으로 탈중앙화 되어있습니다. 영어로 예를 들어 설명하겠습니다. 철수와 짱구가 영어를 사용하기 위해 다른 누군가에게 동의를 구해야할 필요는 없습니다. 또한 대부분의 경우 언어는 어느 한 사람, 또는 조직에 만들어지지 않았으며, 그들에게 의존하지 않습니다.
BitTorrent는 물리적으로 많은 사용자가 참여하고 있다는 점에서 구조적으로 탈중앙화 되어있습니다. 또한 언어처럼 논리적으로도 탈중앙화 되어있다고 할 수 있습니다. 다만, 하나의 회사에서 관리한다는 점에서 언어와 차이가 있습니다.
블록체인은 프로토콜의 인프라 전반을 통제하는 중앙 컴퓨터가 없다는 점에서 구조적으로 탈중앙화 되어있습니다. 또한 특정한 개인이나 소수의 참여자가 막강한 권한을 행사할 수 없다는 점에서 정치적으로도 탈중앙화 되어있다고 할 수 있습니다. 또한 논리적으로도 탈중앙화 되어있습니다. 왜냐하면 시스템 전체가 하나의 컴퓨터와 같이 동작하지만, 이는 모든 참여자들이 합의한 상태에서 이루어지며, 소수의 참여자만 존재하더라도 정상적으로 기능할 수 있기 때문입니다.
다음으로 해결해야 하는 문제는 애초에 탈중앙화가 왜 필요하냐는 것입니다. 탈중앙화의 유용성에 대해서는 아래와 같이 답할 수 있습니다.
탈중앙화된 시스템은 상호 간 의존하지 않고, 개별적으로 동작하기 때문에 우발적인 실패가 발생할 가능성이 낮습니다. 즉, 시스템 내의 일부 요소가 우발적 장애를 일으키더라도 시스템 전체는 정상적으로 작동할 수 있다는 것이죠.
탈중앙화된 시스템을 공격하기 위해서는 것은 다른 시스템을 해킹하는 것에 비해 압도적으로 큰 리소스를 필요로 합니다. 이는 시스템에 막강한 영향력을 행사하는 중앙 시스템이 존재하지 않기 때문입니다.
탈중앙화된 시스템은 시스템 내의 참여자가 다른 참여자들에게 피해를 주는 것이 매우 어렵습니다. 하지만 정부, 기업 등으로 대표되는 일반 시스템에서는 참여자 간 이익의 상충이 빈번하게 발생하며 중앙기관이 시민, 고객, 직원 등을 희생하여 이익을 추구할 가능성이 높습니다.
시스템의 장애를 허용하는 것에 대한 핵심 주장은 간단합니다. 한 대의 컴퓨터가 장애를 일으킬 가능성보다 열 대의 컴퓨터 중 다섯 대가 동시에 장애를 일으킬 가능성 중 무엇이 더 높냐는 것이죠. 이 주장에 대해서는 이견이 없으며, 특히 병원, 군사 작전, 자산 포트폴리오, 컴퓨터 네트워크. 로켓의 엔진 등 많은 상황에서 실제로 적용되고 있습니다.
이는 탈중앙화의 효과성에 대한 충분한 근거가 될 수 있지만, 실제로는 감소하게 되는 리스크는 단순한 수학적 예측치에 비해 적다고 알려져있습니다. 이는 Common Mode Failure 때문인데요, 단순하게 설명해서 네 개의 제트 엔진이 전부 다 고장날 확률이 한 개의 제트 엔진보다 고장날 확률에 비해 적은 것은 사실이지만, 만일 네 개의 엔진이 모두 같은 공장에서 같은 설계에 따라 같은 직원이 담당했다면 엔진이 4배라고 해서 그 안정성까지 4배라고 할 수는 없게 되는 것이죠.
그렇다면 오늘 날의 블록체인은 Common Mode Failure에서 자유롭다고 할 수 있을지 아래 시나리오를 통해 살펴보도록 하겠습니다.
블록체인의 모든 노드는 동일한 클라이언트 소프트웨어를 실행하는데, 이 클라이언트 소프트웨어에 버그가 있는 것으로 밝혀졌다.
블록체인의 모든 노드는 동일한 클라이언트 소프트웨어를 실행하는데, 이 소프트웨어를 개발한 개발팀이 사회적으로 부도덕한 일을 벌인 것으로 밝혀졌다.
프로토콜 업그레이드를 제안한 팀이 사회적으로 부패한 것으로 밝혀졌다.
POW 블록체인의 채굴자 70%가 하나의 국가에서 운영되고 있으며, 이 국가의 정부는 국가 안보 목적으로 모든 채굴장치를 추적하기로 결정했다.
채굴장비를 생산하는 회사에서 뇌물을 대가로 강제로 채굴기를 종료할 수 있는 소프트웨어를 숨겨놓았다.
POS 블록체인의 거버넌스 토큰 중 70%가 한 거래소에 보관되어 있다.
이처럼 블록체인 역시 Common Mode Failure에서 결코 자유롭다고 할 수 없습니다. 때문에 시스템의 결함을 허용하는 것에 대한 보다 거시적인 관점에서 시스템을 설계하고 Common Mode Failure를 최소화하는 것이 중요하다고 할 수 있죠. 아래는 블록체인이 의미있는 수준의 결함 허용성 유지를 위해 필요한 개선 사항입니다.
더 많은 참여자들이 프로토콜에 참여하고 경쟁할 수 있는 환경을 조성해야 합니다.
더 많은 사람들이 프로토콜의 방향성에 대한 연구와 토론에 참여해야 하고, 기술적인 지식을 민주화해야 합니다.
코어 개발자들은 하나의 프로토콜에 오너십을 말고 여러 프로젝트에 소속되어 있어야 합니다.
채굴 알고리즘은 중앙화 리스크를 최소화하는 방식으로 설계되어야 합니다.
가능한 하드웨어의 중앙화에서 벗어나야 합니다.
이 글에서는 구조적이 관점에서 어떻게 결함 허용성을 개선할 수 있는지 이야기했지만, 이는 상대적으로 간단한 문제입니다. 더 복잡한 것은 정치적인 관점에서 결함 허용성을 개선하는 것이라고 할 수 있으며, 이 문제에 대해서도 다뤄볼 수 있는 기회가 있으면 좋겠습니다.
다음으로 공격 저항성에 대해 이야기하도록 하겠습니다. 단순한 경제 시스템에서는 탈중앙화가 그리 중요한 문제가 아닐 수 있습니다. 예를 들어, 51% 공격이 발생할 경우 밸리데이터가 5천만 달러의 손실을 입게 되는 시스템이 있다고 합시다. 이 경우 밸리테이터들이 몇 개인지, 누구에 의해 통제되고 있는지는 중요하지 않을 것입니다. 누가 통제하는지를 막론하고 51% 공격에 가담한다면 밸리데이터들은 5천만 달러의 손실을 입게 되기 때문이죠. 공격에 가담할 유인이 훨씬 줄어든 겁니다. 여기서 5천만 달러는 경제적 보안장치라고 할 수 있는데요, 중앙화된 경제 시스템에서는 경제적 보안장치를 잘 활용하고 있습니다.
그러나 좀 더 복잡하고, 복합적인 경제 시스템, 특히 참여자들끼리 서로 피해를 줄 수 있다고 가정하는 경우에는 탈중앙화가 훨씬 중요해집니다. 만약 공격자가 밸리데이터를 다치게 하거나, 죽이는 등 5천만 달러라는 경제적 보안장치가 기능하지 못하도록 한다면 어떻게 되는 것일까요?
블록체인은 이 문제를 5천만 달러를 한 명이 아닌, 수많은 사람들이 나누어 가지도록 함으로써 문제를 해결합니다. 공격자는 5천만 달러를 얻기 위해 수십 배 더 많은 사람들을 위협해야 하고, 공격이 성공할 가능성은 훨씬 낮아지게 됩니다.
일반적으로 현대 사회는 공격자에게 유리한 구조인 경우가 많습니다. 건물을 짓는 것보다 부수는 것이 더 쉽고, 무언가를 지키는 것보다 빼앗는 것이, 사람을 살리는 것보다 죽이는 것이 더 쉽습니다. 블록체인은 공격 대상을 분산시킴으로써 공격자의 유인과 공격의 성공 가능성을 낮출 수 있습니다.
마지막으로 담합 저항성에 대해 이야기해보도록 하겠습니다. 개인적으로 담합이 딱 무엇이라고 정의하는 것은 어렵다고 생각하는데요, 단순히 “우리가 좋아하지 않는 조정”이라고 하는 것이 가장 솔직한 정의일 것 같습니다. 이상적인 것은 모든 사람을 만족시키는 완벽한 조정이지만, 현실적으로 이는 어려운 일이죠. 일차원적으로는 완벽해보여도 이것이 제 3자에게 의도하지 않은 영향을 미치게 될 수 있기 때문입니다.
담합 저항성의 한 가지 대표적인 사례는 바로 독점금지법입니다. 독점금지법은 시장 참여자들 중 일부가 자언을 독점하고, 시장 전체의 긍정적인 영향을 희생하면서 이익을 얻는 것을 방지하기 위해 만들어진 인위적인 규제입니다. 독점금지법 뿐만 아니라 담합을 규제하기 위한 인위적인 규칙은 교육, 스포츠 등 여러 사례를 찾아볼 수 있을 것이라고 생각합니다.
블록체인은 이러한 인위적인 규제가 아닌 수많은 독립적인 참여자의 합의로 안정성을 유지하고 있습니다. 그러나 이는 가정일 뿐 실제로는 그렇지 않을 수도 있죠. 대표적으로 비트코인 네트워크가 그렇습니다. 비트코인은 마이닝 파워의 90%를 장악하고 있는 이들이 컨퍼런스에 함께 나타날 정도죠.

블록체인을 옹호하는 사람들은 블록체인이 더 안전하다는 주장의 근거로 안정성을 이야기하고 있습니다. 물론 블록체인에서 누군가 원할 때마다 멋대로 규칙과 데이터를 바꿀 수 없는 것은 사실입니다. 하지만 코어 개발자들이 모두 한 회사에서 일했고, 한 공간에서 일하고 있다면 이들이 주장하는 안정성은 반감될 것이라고 생각합니다. 중요한 것은 시스템 내의 참여자들이 독립적으로 행동해야 하며, 시스템 자체가 단일한 행동의 주체여서는 안된다는 것이죠. 따라서 블록체인 내에서 조정이 어려울수록, 참여자들 사이의 이해가 상충될수록 블록체인이 더 안전하다고 이야기할 수 있을 겁니다.
그러나 지금의 상황은 역설적이게도 이더리움을 포함한 대부분의 블록체인 커뮤니티가 강력한 커뮤니티 정신을 가지고 있습니다. 이더리움은 TheDAO 사태가 발생했을 당시, 6일이 지나지 않았을 때, 하드포크 구현, 출시 및 활성화를 신속하게 이뤄낸적이 있었습니다. 물론 긍정적인 평가를 받았었죠. 때문에 중요한 것은 무엇이 좋은 조정이고, 무엇이 담합인지, 어떻게 조장 방식을 개선하면서 51% 공격을 시도하는 공격자들을 방어할 수 있을지 고민해야 합니다. 또한 이렇게 커뮤니티 전체가 하나의 목적을 가지고 행동하는 것 역시 경계해야 합니다. 다음은 담합 저항성을 위해 고민해야 할 세 가지 입니다.
담합 자체를 완화하는 것에 신경쓰는 것보다, 이에 저항할 수 있는 프로토콜을 구축하는 것.
프로토콜의 발전을 위한 조정을 허락하면서도 공격이 성공할 수 없는 수준의 중간 지점을 찾는 것.
좋은 조정과 나쁜 조정의 차이를 구분하고, 좋은 조정을 더 쉽게, 나쁜 조정을 어렵게 설계하는 것.
지금까지 탈중앙화가 무엇이고, 이것이 왜 필요한지에 대해 이야기했습니다. 탈중앙화는 결험 허용성, 공격 저항성, 담합 저항성을 제공할 수 있다는 것을 이야기했으며, 각 주제 별로 고민해야 할 것들에 대해서도 이야기했습니다. 특히, 세 번째 종류의 탈중앙화, 즉 담합을 예방하는 것이 가장 달성하기 어렵고, 기준 또한 애매하기 때문에 어느 정도의 타협 역시 피할 수 없습니다. 가장 좋은 해결책은 탈중앙화되어있는 그룹, 즉 프로토콜의 사용자들에게 의존하는 것이 될 것입니다.
