탈중앙화란 무엇인가 — 비탈릭 부테린

HASHED
해시드 팀 블로그
16 min readJul 17, 2018

해시드 한국어 블로그에서는 탈중앙화와 관련된 세계의 좋은 글들을 한국어로 번역하여 소개합니다.

이번 글은 이더리움의 창시자로 널리 알려진 비탈릭 부테린(Vitalik Buterin)이 쓴 The Meaning of Decentralization입니다. 이 글을 통해 비탈릭은 탈중앙화의 종류를 나누고 그 효용을 분석하였습니다.

‘탈중앙화’란 무엇인가?

‘탈중앙화’(decentralization)’라는 단어는 현재의 암호화폐 경제학에서 가장 많이 쓰이고 있는 화두로 떠올랐다. 지금 이 순간에도 ‘탈중앙화’를 이루어내고, 개선하고, 보호하기 위해 엄청난 양의 연구와 해시 파워가 들어가고 있다. 심지어 어떠한 프로토콜에 대한 논쟁이 생기면, 상대를 공격하는 가장 주요한 무기로 ‘(당신의 프로토콜은) 중앙화되어있다’ 라는 논리가 흔하게 쓰일 정도이다. 이렇듯 탈중앙화는 그 자체가 블록체인의 존재 이유로 여겨질 정도이지만, 이러한 용어들이 종종 그렇듯 실제로 정확히 어떤 뜻인지는 아직 명확한 정의가 내려지지 않은 것 같다. 중앙화, 탈중앙화, 분산화 네트워크의 차이점을 그림으로 표현한 다음과 같은 다이어그램이 널리 알려져 있기는 하지만, 용어를 엄밀하게 정의해야 하는 지금과 같은 상황에서는 큰 도움이 되지 않는 것 같다.

그림1. (a) 중앙화, (b) 탈중앙화, © 분산화 네트워크를 표현한 다이어그램

이와 관련하여 Quora(주: 사용자들이 자유롭게 참여하는 미국의 질의응답 사이트, 한국의 ‘네이버 지식in’과 비슷한 플랫폼)에 올라와 있는 “탈중앙화(decentralized)와 분산화(distributed)의 차이는 무엇인가요?”라는 질문을 살펴보니, 참고할 만한 두 개의 답변이 올라와 있었다. 그 중 첫 번째 답변은 위 다이어그램과 거의 같은 이야기를 하고 있었고, 두 번째 답변은 완전히 다른 주장을 펼치고 있었다. 그의 주장에 따르면 탈중앙화는 ‘단 하나의 존재가 모든 프로세싱을 컨트롤하지 않는 것’이며, 분산화는 ‘트랜잭션이 같은 곳에서 이루어지지 않는 것’이라는 뜻이라고 한다.

한편 이더리움 질의응답 포럼인 이더리움 스택 익스체인지(Ethereum Stack Exchange)에도 비슷한 질문이 있는데, 여기에서는 위와 비슷한 다이어그램을 제공하면서 ‘탈중앙화’와 ‘분산화’의 위치를 바꾸어 설명하고 있었다. 이렇듯 혼동이 심한 상황에서, 그 무엇보다 ‘탈중앙화’에 대한 명확한 용어 정의가 시급하다는 생각이 들어 이 글을 작성하게 되었다.

탈중앙화의 3가지 분류

사람들이 소프트웨어의 ‘탈중앙화’에 대해서 이야기 할 때는, 사실 서로 다른 세 가지의 (탈)중앙화를 뒤섞어서 이야기하는 경우가 많다. 다음의 분류들은 때로는 명확히 구분짓기 힘든 경우도 있지만, 전반적으로는 서로 독립적인 성격을 띄고 있다. 이 세가지 탈중앙화의 중심축은 다음과 같다.

  • 구조적 (탈)중앙화 : 실제로 몇 대의 컴퓨터가 하나의 시스템을 구축하고 있는가? 어떤 시점에서든 시스템이 몇 대의 컴퓨터가 고장나는 것까지 견뎌낼 수 있는가?
  • 정치적 (탈)중앙화 : 실제로 몇 명의 주체(혹은 기관)들이 시스템을 이루는 컴퓨터들을 통제하고 있는가?
  • 논리적 (탈)중앙화 : 시스템의 인터페이스와 데이터 구조가 하나의 획일적인 구조인가, 아니면 전체 모양을 알기 힘든 벌 떼처럼 보이는가? 예를들어 시스템의 운영자와 사용자를 모두 포함시킨 채로 시스템을 절반으로 가른다면, 각각의 반쪽짜리들이 독립적으로 실행될 수 있는가?

이 세 가지를 차트로 구성하면 다음과 같이 표현할 수 있을 것이다.

그림2. 구조적, 정치적, 논리적 (탈)중앙화의 예시 차트

논의의 편의성을 위해 거칠게 분류한 면이 있지만, 차트에 표시한 예시들에 대해 보다 구체적으로 살펴보면 다음과 같다.

  • 기존의 기업체(Traditional corporations)들은 정치적으로 중앙화되어 있고 (한 명의 CEO), 구조적으로 중앙화되어 있고 (하나의 사무실), 논리적으로도 중앙화되어 있다. (반으로 나눌 수 없다)
  • 민사법(Civil law)은 중앙화된 입법체에 의존하는 반면, 관습법(Common law)은 각각의 판사들이 생산해내는 판례에 의해서 만들어진다. 물론 법원이 가진 법적 재량권을 고려할때 민사법에도 약간의 구조적 탈중앙화는 있겠지만, 관습법이 상대적으로 조금 더 탈중앙화되어 있다고 볼 수 있다. 하지만 두 경우 모두 논리적으로는 중앙화 되어 있다. (‘악법도 법이다’라는 정신을 바탕으로 한다)
  • 언어(Languages)는 논리적으로 탈중앙화되어 있다. 앨리스와 밥이 쓰는 영어는 찰리와 데이빗이 사용하는 영어와 꼭 일치할 필요가 없다. 언어는 하나의 중앙화된 인프라를 필요로 하지도 않고, 어느 특정한 한 명이 영어 문법을 만들거나 바꾸지 않는다. 만국 공용어라 불리는 에스페란토(Esperanto)의 경우 루드비코 자멘호프(Ludwig Zamenhof)라는 한 사람에 의해 개발되었지만, 지금은 하나의 언어로서 실제로 활용되고 있고 특정인의 통제 없이 자유롭게 진화하고 있다.
  • 비트토렌트(BitTorrent)는 영어와 비슷하게 논리적으로 탈중앙화되어 있다. 다른 콘텐츠 공유 네트워크들(Traditional CDNs)도 비슷하게 구성되어 있긴 하지만, 그들은 하나의 회사에 의해 통제되고 있기 때문에 정치적으로는 중앙화되어 있다고 볼 수 있다.
  • 블록체인(Blockchain)은 정치적으로 탈중앙화되어 있고(누구에게도 통제받지 않는다), 구조적으로도 탈중앙화되어 있지만(기술 기반구조상 단일지점 실패의 여지가 없다), 논리적으로는 중앙화되어 있다. (하나의 합의된 상태가 존재하고, 전체가 한 대의 컴퓨터처럼 작동한다)

사람들이 블록체인의 강점에 대해서 이야기 할 때, 주로 ‘하나의 중앙 데이터베이스’가 가져오는 편리함을 예로 드는 경우가 많이 있다. 논리적 중앙화에서 비롯된 이러한 편리함은 분명히 많은 경우 도움이 될 것이다. (하지만 IPFS의 후안 베네(Juan Benet)와 같은 사람은 논리적으로 탈중앙화된 시스템이 통신망 분할에 더 잘 견딜 뿐 아니라 인터넷 연결이 제대로 되지 않는 지역에서도 작동할 수 있다는 이유를 근거로, 가능한 한 논리적으로 탈중앙화된 시스템이 보급되어야 함을 주장하고 있다. 이에 대한 더 자세한 글을 Scuttlebot에서 볼 수 있다.)

필수적인 요건은 아니지만, 보통 현실세계에서는 구조적 중앙화가 이루어지면 자연스럽게 정치적 중앙화로 이어지는 경우가 많다. 예를 들어 형식적 민주주의가 갖춰진 현대 사회의 정치인들은 국회와 같은 중앙화된 구조 하에서 투표를 하지만, 그렇다고 해서 국회의사당이라는 장소를 관리하는 사람들에게까지 권력이 나눠지지는 않는다는 점을 생각해 볼 수 있다. 이와 달리 컴퓨터 시스템 내에서는 구조적 중앙화 하에서도 얼마든지 정치적인 탈중앙화를 이뤄낼 수 있다. 예를 들어 온라인 커뮤니티의 경우 편의상 중앙화된 포럼을 사용하고 있다 하더라도 만약 그 포럼의 운영자들이 악의적으로 행동한다면 사용자들은 언제든지 다른 포럼으로 떠날 의향을 가질 것이다. (특히 검열에 대항하는 성향이 강한 커뮤니티일수록 이러한 관습을 가질 가능성이 높다.)

한편 논리적으로 중앙화된 환경에서는 구조적 탈중앙화가 이루어지기 어렵지만, 아예 불가능한 것은 아니다. 예를 들어 탈중앙화된 합의 네트워크의 작동 가능성은 이미 증명되어 있지만, 이는 확실히 토렌트 시스템을 유지하는 것보다는 어렵다. 또한 논리적 중앙화는 정치적 탈중앙화 또한 어렵게 만든다. 논리적으로 중앙화된 시스템에서는 ‘남이야 어떻게 살든, 상관하지 말라’는 식으로 논란을 정리하는 것이 곤란하기 때문이다.

탈중앙화가 필요한 3가지 이유

그렇다면 애초에 탈중앙화가 필요한 근본적인 이유는 무엇일까? 대체적으로 다음과 같은 이유들이 있다.

  • 장애 허용성(Fault tolerance) : 탈중앙화된 시스템은 많은 수의 독립된 요소들로 이루어져 있기 때문에, 사고로 전체 시스템에 장애가 일어날 확률이 낮다.
  • 공격 저항성(Attack resistance) : 탈중앙화된 시스템에는 중앙화되어 있는 급소가 없기 때문에, 시스템을 공격하거나 조작하는데 드는 비용이 매우 높다.
  • 담합 저항성(Collusion resistance) : 탈중앙화된 시스템 내의 사용자들은 다른 사용자들에게 피해를 끼쳐서 자신의 이득을 취하는 행위를 하기 어렵다. 반면 중앙화된 기업이나 정부의 리더들은 결속력이 비교적 약한 시민, 소비자, 직원들을 착취해서 이득을 얻는 경우가 많다.

위 세가지 요소는 각각 매우 중요하고 의미있는 것들이다. 하지만 이러한 관점들을 염두에 두고 프로토콜 규약에 대해 고민하다 보면, 흥미롭게도 이들 모두가 때로는 서로 상반되는 결론이 도출되기도 한다. 이 세 가지 주장들에 대해 보다 더 심도있는 고민을 해 보고자 한다.

먼저 ‘장애 허용성’에 대한 핵심 주장은 간단하다. ‘한 대의 컴퓨터가 고장나는 것과, 열 대의 컴퓨터 중 다섯 대가 동시에 고장나는 것 중 어느 경우가 더 가능성이 높을까?’ 라는 질문에 대한 것이다. 물론 이에 대한 답은 논란의 여지가 없고, 제트 엔진, 병원, 군대 조직, 금융 포트폴리오 분산화, 네트워크 예비 전력 시스템 등 시스템 장애를 용납할 수 없는 경우에 실제로 널리 쓰이고 있다.

이런 식의 탈중앙화는 상당히 효과적이지만, 사실 깊이 들어가면 단순한 수학적 모델이 예측하는 것 만큼의 만능 해결책은 아니다. 바로 ‘공통원인 실패’(Common mode failure) 문제가 있기 때문이다. 4대의 제트엔진이 고장날 확률은 당연히 1대의 제트엔진 고장 확률보다 낮지만 만약 그 4대가 모두 같은 공장에서, 그것도 한 명의 불량 직원으로 인해 똑같은 결함이 들어간 것이라면 이야기가 달라진다.

그렇다면 오늘날의 블록체인은 공통원인 실패에 대응할 수 있을까? 예를 들어서 다음과 같은 사례의 경우가 발생한다면 꼭 그렇지만은 않을 수 있다.

  • 블록체인의 모든 노드가 똑같은 클라이언트 소프트웨어로 작동하는데, 그 소프트웨어에 버그가 생기는 경우
  • 블록체인의 모든 노드가 똑같은 클라이언트 소프트웨어로 작동하는데, 그 소프트웨어의 개발팀이 사회적으로 부패한 집단일 경우
  • 프로토콜 업그레이드를 주장하는 연구팀이 사회적으로 부패한 집단일 경우
  • PoW(작업 증명) 방식의 블록체인 채굴자 중 70%가 특정 국가 내에 있는데, 그 국가의 정부가 모든 채굴장을 보안 문제로 압수해 버리는 경우
  • PoS(지분 증명) 방식의 블록체인에서 70%의 코인이 단 하나의 거래소 지갑에 존재하는 경우

장애 허용성을 포괄적으로 성립시키기 위해서는, 이 모든 경우들을 살펴서 최소화시킬수 있는 방법을 물색해야 할 것이다. 결국 장애 허용성이 지녀야할 요건들을 다음과 같이 정의할 수 있다.

  • 여러가지 경쟁적인 방식으로 구현할 수 있도록 하여야만 한다.
  • 대중들이 연구 토론에 참여하고, 프로토콜의 변화에 대해 비판할 수 있어야 한다. 이를 위해 프로토콜 업그레이드를 실행함에 있어서 필요한 기술적 요소가 공개되어 있어야 한다.
  • 핵심 연구자들과 개발자들이 모두 같은 특정 단체 소속이어서는 안 되며, 각각 다른 단체들에 소속되어 있거나 자원봉사자여야 한다.
  • 중앙화의 리스크를 최소화시킬 수 있는 채굴 알고리즘을 디자인하여야 한다.
  • 이상적으로는, 하드웨어 중앙화의 리스크를 없애기 위해 PoS 방식을 이용해야 한다. (하지만 PoS 방식이 가지는 새로운 리스크도 감안해야 한다.)

특히 주의해야 할 점은 단순한 형태의 장애 허용성을 위해서는 구조적 탈중앙화만 고려해도 무방하지만, 보다 확장해서 프로토콜의 개발 전반을 통제하는 커뮤니티의 장애 허용성까지 생각한다면 정치적 탈중앙화도 중요하게 고려해야 한다는 점이다.

두 번째로, ‘공격 저항성’에 대해 살펴보고자 한다. 경제학 모델을 단순하게 적용하면, 탈중앙화가 별 의미가 없다는 결론에 도달할 수도 있다. 어떤 프로토콜에서 51%의 공격이 일어났을 때 블록 검증자들이 5천만 달러를 잃는다고 가정하면, 그 검증자들이 몇 개의 기업으로 구성되어 있는지는 별로 중요하지 않기 때문이다. 5천만 달러의 경제적 보안성은 말 그대로 5천만 달러 가치만큼일 따름이다. 오히려 중앙화가 경제적 보안성을 최대화할 수 있다는 심오한 게임 이론적 근거도 존재한다. (현재 존재하는 블록체인의 트랜잭션 선정 모델을 보면, 채굴자(혹은 블록 제안자)를 통한 트랜잭션 선정은 ‘교체가 빈번한 독재 시스템’에 더 가깝다고 볼 수 있다.)

하지만 경제학 모델을 더 깊이 있게 들여다보면, 특히 강제성의 가능성(노드에 겨냥된 디도스 공격 따위)이 예상되는 경우에는 탈중앙화가 훨씬 더 중요해진다. 한 명이 전체 프로토콜을 독점하고 있을 때는 한 명만 협박하면 되지만, 만약 열 명이 5천만 달러의 가치를 나눠 갖고 있다면 한 명일때와 비교해서 열 배나 되는 사람들을 동시에 협박해야만 한다. 또한 일반적으로 현대 사회에서는 공격자가 방어자보다 더 유리한 포지션에 있는 경우가 많다. 짓는 데 천만 달러가 드는 건물을 부수는데는 십만 달러도 들지 않을 수 있다는 것이다. 하지만 아마 건축비 백만 달러가 들어간 건물을 철거하려고 하면 삼만 달러 정도는 들 것이다. 그나마 규모가 작아질 수록, 공격과 방어 사이의 불균형한 비율이 조금 더 나아질 수 있다는 것이다.

결국 이러한 설명이 의미하는 것은 무엇일까? 첫 번째로, 상대적으로 숨기기 쉬운 코인에 비해서 실제 컴퓨터 하드웨어는 찾아내기도 쉽고, 통제하거나 공격하는 것도 쉽기 때문에 PoW방식보다는 PoS방식이 더 낫다는 것이다. (PoS방식이 더 강한 공격 저항성을 갖는 또 다른 이유도 있다.) 두 번째로는, 개발팀이 (지리적 요건을 포함해서) 더 넓게 분산되어 있을 수록 유리하다는 것이다. 마지막으로, 합의 프로토콜을 만들어 낼 때는 경제학 모델과 장애 허용성 모델 둘 다를 살펴보아야 한다는 것을 의미한다.

마지막으로, 위 세가지 요소 중 가장 복잡하다고 할 수 있는 ‘담합 저항성’에 대해 이야기 해보고자 한다. 사실 담합이 무엇인지에 대한 정확한 정의는 내리기 어려운데, ‘별로 바람직하지 않은 협력’ 정도로 정리할 수 있을 것 같다. 모든 사람들이 완벽한 조화를 이룰 수 있다면 이상적이겠지만, 만약 하나의 그룹에서만 서로 협력하고 그들이 다른 그룹들을 따돌리는 경우는 충분히 위험한 상황일 수 있다.

실생활에서의 간단한 예로는 ‘독점금지법’을 들 수 있다. 이는 사업체들이 서로 담합하여 독점적 지위를 획득하고, 결론적으로 시장 전체의 이익을 해치는 것을 막기 위해 만들어 놓은 규제를 의미한다. 또 다른 예로는 미국에서 정치인들이 거대 정치 후원회와 적극적으로 협력하는 것을 막는 법이 있다. 더 사소한 예는 체스 대회에서 한 선수의 점수를 올리기 위해 같은 선수들끼리 경기를 몇 번이고 반복해서 하는 것을 금지하는 규칙이 있을 것이다. 어디든 복잡한 구조를 가진 기관 내에서는 이와 같은 담합 행위를 막기 위한 노력이 계속되고 있다.

그렇다면 블록체인 프로토콜의 경우는 어떨까. 합의의 안전성을 보장하는 수학적, 경제학적 논점들은 ‘수많은 유저들이 서로 독립적인 선택을 한다’는 가정 위에 세워져 있다. 만약 단 한 명의 유저가 PoW 방식 내에서 전체 채굴 파워의 1/3 이상을 가지게 된다면, 그 유저는 이기적 채굴(Selfish mining) 전략을 통해서 비정상적으로 많은 이익을 취할 수도 있을 것이다. 그렇다면 비트코인 네트워크 내 채굴 파워의 90%가 하나의 컨퍼런스에 함께 참석할 만큼 서로 친한 상황에서, 과연 위의 가정이 현실적이라고 할 수 있을까?

블록체인의 지지자들은 아무도 블록체인의 규정을 임의로 바꿀 수 없기 때문에 블록체인 기술이 더 안전한 것이라고 주장하지만, 만약에 그 소프트웨어와 프로토콜을 만든 개발자들이 같은 회사 사무실 내에서 함께 일하고 있다면 이야기가 달라질 것이다. 즉 시스템이 자기 사리사욕을 채우는 독점적 지위를 가져서는 안 되고, 결론적으로 블록체인은 구성원들이 서로 독립적으로 행동할 수록 더 안전해진다는 것이다.

하지만 이렇게 되면 근본적인 모순에 부딪히게 된다. 이더리움 커뮤니티를 비롯한 많은 커뮤니티들은 강한 유대감 하에, 디도스 공격이 일어나면 적어도 6일 내에 대항하는 하드 포크를 실행하겠다는 행동력 등으로 칭송받고 있기 때문이다. 결국 우리는 이러한 종류의 유익한 협력은 장려하면서도, 채굴자들이 51% 공격으로 타인들을 손해 보게 하는 식의 ‘나쁜 협력’ 만을 막아야 하는 것이다.

이에 대해서 세 가지 대안을 제시할 수 있다.

  • 바람직하지 않은 협력을 막으려는 노력을 하는 대신, 이에 저항하는 프로토콜을 만들어야 한다.
  • 프로토콜을 진화시킬 수 있을 정도는 되지만, 공격을 하기에는 부족한 정도로 적절한 협력 수준의 중간점을 찾아내어야 한다.
  • 유익한 협력과 해로운 협력을 구별해서, 전자는 쉽게 하고 후자는 어렵게 만들어야 한다.

첫 번째 대안은 캐스퍼 디자인 철학의 중요한 부분 중 하나이다. 하지만 그 자체로는 여전히 부족하다. 이와 같이 경제학적 솔루션에만 기대게 되면 탈중앙화에 대한 고민이 담긴 다른 두 대안들을 해결할 수 없기 때문이다. 두 번째 대안은 기술적으로 달성하기 어렵고, 특히 장기적으로 보았을 때 더욱 힘든 것이지만, 때로는 우연히 이루어지기도 한다. 예를 들어, 비트코인의 핵심 개발자들은 거의 영어 사용자이지만 비트코인 채굴자들은 대부분 중국인이라는 사실은 일종의 ‘얻어걸린 행운’이라고 할 수 있다. 영어 커뮤니티와 중국어 커뮤니티는 서로 소통이 어렵고 생각하는 방식도 달라서 자연스럽게 협력이 어려워지는 일종의 ‘양원제’적 거버넌스가 이루어졌고, 이와 함께 공통원인 실패의 가능성도 낮아졌기 때문이다.

마지막으로 세 번째 대안은 다른 항목들보다 사회적인 방식으로 해결해야 할 문제이다. 이에 대한 보다 구체적인 해결방안은 다음과 같다.

  • 블록체인 전체 커뮤니티에에 대한 사용자들의 충성도를 높이고, 사용자들끼리 편을 가르지 않도록 유도할 수 있는 사회적 규칙을 마련한다.
  • 시장 내에서 서로 멀리 떨어져 있는 유저들 끼리의 소통을 적극적으로 권장함으로써, 검증자/개발자/ 채굴자 등이 서로 담합하는 것을 방지할 수 있도록 한다.
  • 프로토콜 차원에서 검증자나 채굴자가 서로 1:1의 특수 관계를 맺을만한 인센티브가 없게끔 디자인 하여야 한다.
  • 프로토콜이 가져야할 근본적인 속성이 무엇인지, 그리고 아주 특수한 예외적 상황을 제외하고는 프로토콜 내에서 해서는 안 되는 일이 무엇인지에 대한 명확한 기준을 정의해야 한다.

답합과 같은 바람직하지 않은 협력에 저항함으로써 이뤄낼 수 있는 탈중앙화는 위에서 제시한 탈중앙화의 요소 중 아마도 가장 이뤄내기 어려운 종류의 것이고, 그만큼 타협점을 잘 찾아내는 것이 중요하다. 결국 최고의 해결책은, 시스템에서 가장 탈중앙화된 그룹에 전적으로 의지하는 것일 수도 있다. 바로 프로토콜의 실제 사용자, 지금 이 글을 읽고 있는 여러분 말이다.

[Hashed Community]

Hashed Website: hashed.com

Facebook: facebook.com/hashedfund

Medium: medium.com/hashed-official

twitter: twitter.com/hashed_official

Telegram: t.me/hashedchannel

--

--

HASHED
해시드 팀 블로그

탈중앙화 프로젝트 엑셀러레이터 해시드의 공식 블로그입니다.