오픈소스를 기반으로 한 기술적 탈중앙화란 무엇일까?
Author’s Note:
우리는 퍼블릭 블록체인이 탄생하는 것을 보고 디지털 기반의 탈중앙화 된 자율 네트워크의 비전을 꿈꿨습니다. 암호 경제를 기반으로 하는 완전한 탈중앙화 네트워크는 어떻게 구현될 수 있을까요? 어떤 중앙 주체 없이 코드화 된 거버넌스에 의해 운영되는 탈중앙화 네트워크에 대한 생각을 나누기 위해 시리즈를 작성합니다. 이 글은 어떠한 통찰력을 전달하기보다 탐구 내용과 탐구 과정에서 발생한 생각을 공유하기 위해 작성하였습니다.
The Decentralization 1편 바로가기: https://noder.foundation/decentralization-1/
2018년 4월, 이더리움 소프트웨어를 업데이트하고 관리하는 코드 저장소 깃허브(Github)에 이더리움의 합의 알고리즘의 방식을 PoW에서 PoS로 변경하자는 제안서가 게시되었다. 이더리움의 개발자들은 이더리움을 개선하고, 새로운 기술적 제안 및 논의를 위해 수행되는 ‘Ethereum Improvement Proposal’의 1011번째 게시물(EIP1011)을 통해 “PoW는 과도한 에너지를 소비하고, 블록 합의의 완결성을 갖추기 어려우며, 상대적으로 중앙화되기 쉽다”라며, 제안서를 모두에게 공개했다. 이후 이더리움 커뮤니티는 해당 제안서에 존재하는 취약점을 활발하게 논의하기 시작했으며, 실로 많은 취약점에 대해 다양한 개발자들의 기술적 견해가 덧붙여졌다.
이것은 이더리움의 기술이 모두 오픈소스 형태로 공개되어 있었으며, 누구나 자유롭게 소프트웨어에 새로운 제안 및 업그레이드를 건의할 수 있었기 때문이다. 이것은 단지 이더리움 기술이 오픈소스로서 다양한 개발자들에 의해 발전할 수 있다는 점뿐만 아니라, 이더리움 기술을 누구나 살펴보고 신뢰할 수 있게 만든다. 운영 주체들이 운영하는 블록체인 시스템에 대해 운영에 참여하지 않는 주체들도 동의할 수 있는 것이다.
이처럼, 블록체인 기술은 단 하나의 공급업체가 기술을 독점하는 환경에서 성립될 수 없다. 알 수 없는 복수의 주체들이 누구나 블록체인 소프트웨어를 실행 시켜 P2P로 네트워크에 연결될 수 있어야 하기 때문에 공개되어야 하며, 그 소프트웨어의 내용을 신뢰할 수 있어야 한다. 가령, 100% 신뢰할 수 있는 폐쇄된 온체인 환경 내의 블록 합의 결과라도, 애당초 블록체인 소프트웨어의 설계 자체에 특정한 주체의 목적이 반영되어 있다면, 그 블록 합의 결과는 신뢰할 수 없다. 마찬가지로 전체 네트워크 자체가 특정한 API에 의존하는 등의 특정 서비스 공급자에 운영적으로 의존되어 있어도 블록체인 네트워크 자체의 신뢰성은 위협받는다.
이와 같이 블록체인이 기술적으로 탈중앙화되어야 하는 이유는 누구나 그 기술을 신뢰하고, 기술을 발전시킬 수 있어야 하며, 기술 자체에 대해 오프체인 환경에서의 동의를 할 수 있어야 한다. 기술적 탈중앙화는 특정 블록체인 네트워크의 신뢰성을 담보하는데 중요한 요소이다.
과거로부터 오픈소스 커뮤니티는 서로 알지 못하는 복수의 개발자가 오로지 인터넷상에서 상호 협업하여 복잡한 소프트웨어를 개발할 수 있도록 일련의 커뮤니티 규칙을 두고 있다. 이러한 규칙들은 이슈 제기, 기존 기능에 대한 개선, 그리고 새로운 기능의 제안을 위한 것으로, 해당 오픈소스 프로젝트에 관여도가 높은 핵심 개발자들의 주도를 통해 채택과 개발이 이루어져 왔다.
주요 블록체인 프로젝트도 마찬가지로 완전한 오픈소스 형태로 공개되어 있으며, 누구나 코드를 확인하고, 새로운 기능에 대한 제안을 수행할 수 있도록 다양한 형태의 ‘개선 제안(Improvement Proposal)’ 프로세스를 두고 있다. 주로 블록체인 프로젝트를 최초에 제안한 비영리 재단의 주도로 소수의 핵심 개발자 그룹에 의해 개선 제안이 채택되고, 개발된다.
그러나, 일반적인 오픈소스 프로젝트와 다소 차이가 있는 점은 블록체인 네트워크는 디지털 자산 가치를 기반으로 형성되고 유지된다는 점이다. 이에, 소프트웨어의 개발자와 실제 네트워크 운영의 참여자가 상호 이해관계를 갖고 있으며, 심지어 네트워크 운영에 직접 참여하지 않지만, 네트워크의 지분을 보유한 주체(Token Holder)들 또한 프로젝트와 이해관계를 직접적으로 함께 한다.
따라서, 실제 블록체인 프로젝트의 오픈소스 개발은 프로젝트를 최초로 발족한 개발자 그룹(eg. 비영리 재단 혹은 개발사 등) 및 복수의 자발적 참여 개발자들에 의해 진행되지만, 실제 소프트웨어가 주로 사용되고 있는, 이미 디지털 자산 시장이 형성된 잘 네트워크(우리는 이것을 메인넷이라 부른다)에서 채택되기 위해서는 해당 소프트웨어를 기반으로 네트워크를 형성한 운영 주체들의 동의가 없이 사용되기 어렵다.
즉, 자산 가치를 기반으로 형성되는 네트워크이기 때문에, 수백 개의 개별적인 네트워크는 큰 의미를 갖기 어렵고, 시장이 가장 크게 형성된 한 두 개의 네트워크에서만 소프트웨어가 주로 사용되기 때문에, 소프트웨어의 개발과 운영이 밀접한 관계를 가지는 것이다. 특히, 이전 버전과 호환성이 유지되지 않는 네트워크 업그레이드를 수행해야 하는 경우, 네트워크를 유지하는 복수의 블록 검증자들이 스스로 자신의 소프트웨어를 업그레이드해야 하는데, 이러한 일련의 과정을 우리는 오프체인 상에서 일어나는 거버넌스 과정이라고 부를 수 있다.
이처럼 오프체인 거버넌스의 과정은 개발자 간의, 그리고 개발자와 운영 주체 간의 의사를 조율하여, 블록체인 네트워크의 새로운 업그레이드 혹은 변화를 원활하게 이루기 위한 절차적 과정이라 할 수 있다. 오픈소스 커뮤니티의 규칙과 자산 가치를 기반으로 형성되는 블록체인의 특성이 결합되어, 이러한 거버넌스의 과정은 블록체인 생태계가 유지되는 데 가장 중요한 의사 조율 과정 중 하나가 되었다.
그렇지만 오픈소스 블록체인 프로젝트가 모두의 참여로 이루어지는 것은 결코 아니다. 실제로 대부분의 오픈소스 프로젝트는 소수의 개발자 그룹이 주도하고 있으며, 블록체인 프로젝트도 예외는 아니다. 그 이유는 많은 사람들이 참여할 수록 프로젝트의 효율성이 떨어지기 때문이다. 그럼에도 불구하고 기술적으로 그 소유권과 이해관계가 탈중앙화되어 있다고 할 수 있는 이유는 특정 주체가 기술에 대한 ‘참여’, 그리고 ‘소유’에 관련된 모든 것을 규정할 수 없다는 점이다. 특히, 아파치 2.0 같은 퍼미시브 라이선스 아래 라이선싱 되는 프로젝트를 중심으로 새로운 개발자가 참여하면, 특정 세력이 단일하게 주도하는 것을 막을 수 있다. 유명한 오픈소스 프로젝트인 쿠버네티스의 경우, 처음에는 구글(Google)만 기여했지만 이후 레드햇(Redhat)이 주도하며, 프로젝트를 성장시켰다.
결국, 기술적 탈중앙화가 보장되지 않은 블록체인 프로젝트는 탈중앙화되어 있다고 보기 어렵다. 단지 온체인 시스템 상에서 정치적, 사회적으로 네트워크의 탈중앙성이 확보되더라도, 기술 자체가 특정 주체에게 종속되어버리면 위의 언급한 모든 행위들이 제약을 받기 때문이다.
기술적 탈중앙화란, 기술적으로 그 소유권과 기술의 발전 형태, 기술의 운용과 신뢰 측면에서 그 기술로 작동되는 블록체인 네트워크를 완전히 신뢰할 수 있게 만들기 위한 기본적인 장치이며, 우리는 기술적 탈중앙화의 기준으로 블록체인 네트워크를 바라볼 수 있다.
본 콘텐츠는 블록체인 인사이트 미디어 '노더'에 기고된 글입니다.
https://noder.foundation/decentralization-2/
노더 텔레그램 구독: https://t.me/noder_foundation