[비트코인과 어색해요 시리즈] #2. 비트코인 개발 톺아보기

web3vibe
Decipher Media |디사이퍼 미디어
34 min readSep 10, 2023

Author: @web3vibe

본 시리즈는 서울대학교 블록체인 학회 디사이퍼(Decipher)에서 비트코인을 조금 더 올바르게 이해를 해보자고 시작한 “비트코인과 어색해요” 팀이 비트코인에 대한 여러 관점을 주제로 최종 발표한 내용을 담았습니다. 본 글은 비트코인의 개발 주체부터 시작하여 개발비 지원 경로, 그리고 개발 과정 및 적용 등에 대한 내용을 광범위하게 다루고 있습니다.

Seoul Nat’l Univ. Blockchain Academy Decipher(@decipher-media)

1. 들어가며

(Bitcoin vs. FinTech Giants l 출처: Coindesk)

비자, 마스터카드, 페이팔 등 기존 금융 시스템의 거물들이 수만 명의 직원을 고용하고 있는 반면, 비트코인은 불과 수십 명의 개발자로 구성된 소규모 개발팀에 의해 운영되고 있다. 블록체인 구조를 토대로 한 탈중앙화 시스템이 부닥치는 주요한 난제들 가운데 하나로, 명백한 책임 주체가 존재하지 않아 개발과 네트워크 소프트웨어의 업데이트 과정이 장기화하는 문제점이 대두된다. 다수의 소프트웨어 구현처럼 비트코인 프로토콜 또한 정기적인 유지보수와 업그레이드가 중요한 사항이다. 비트코인은 단일 조직(특정 개인이나 기관)이 네트워크를 통제하거나 대표하여 개발을 주도하는 체제가 아닌, 전 세계적으로 분산된 많은 네트워크 참여자의 합의에 기반을 두고 있으며, 이와 관련된 의문들이 끊임없이 제기됨을 확인할 수 있다. 그렇다면, 비트코인 네트워크를 원활하게 업그레이드하는 동시에, 이전 버전과의 호환성을 보장하여 기존 사용자들이 끊임없이 참여할 수 있는 체계는 어떻게 구성되는지, 또한 네트워크가 끊김 없이 업그레이드하는 가장 효율적인 방법은 무엇일지 고민해야 한다.

비트코인과 같이 탈중앙화된 방대한 체계를 지닌 시스템을 지속적으로 최적화하며 진보적인 방향으로 업그레이드하는 전략은 어떠한 것일까? 명확하게 구성된 EIP(Ethereum Improvement Proposals) 프로세스를 보유한 이더리움과 대비하여, 비트코인은 장기간에 걸쳐 점진적인 접근법을 취하고 있다. 이를 더 구체적으로 살펴보면, 1) 개발자들 사이의 합의 구축 과정(developer consensus), 2) 채굴자들의 준비 과정(miner readiness), 그리고 3) 사용자들의 활성화 (user activation) 단계가 포함된다. 이 과정들은 비트코인 네트워크가 안정적으로 운영되면서도 유연한 변화를 수용하기 위해, 미세 조정이 요구된다.

전 세계적으로 퍼져 있는 개인이나 팀들이 비트코인에 업그레이드를 제안하거나 시작할 때, 비트코인 프로젝트에 적극적으로 참여하는 수백 명의 개발자들이 동료 평가(peer-review)를 수행한다. 이 평가 과정을 통해 구현이 수용되거나 거부될지를 결정한다. 이와 같은 중요한 작업들의 성격을 고려할 때, 비트코인 개발이 어떻게 진행되는지를 이해하고, 이를 주도하는 개인과 조직에 대한 통찰력을 갖는 것이 중요하다. 이 과정들을 철저히 분석하며, 개발 주도 주체와 이를 지원하는 조직에 대해 더욱 상세히 들여다보도록 하자.

2. 비트코인 개발 발자취

비트코인 개발의 복잡성과 방대함을 고려할 때, 현시점에서 해당 활동의 규모가 엄청나므로 모든 참여자를 철저하게 조망하는 것은 쉽지 않다. 비트코인 개발자가 되는데 있어 정형화된 자격 기준이 없으며, 무수한 이들이 개발에 적극 가담하거나 그만둘 수 있고, 자신이 열중하길 원하는 개발 분야를 선정할 수 있기 때문이다. 개발자들이 비트코인 개발에 기여함에 있어서 자신의 정체성을 밝히는 것은 필수적이지 않다. 이렇게 스스로 개발에 몰입하고자 하는 인원들은 주로 봉사 정신으로 자유롭게 개발 과정에 뛰어들고, 자기 결정에 따라 언제든지 그만두는 자유를 누린다. 이로 인해 과거와 현재의 비트코인 개발자들에 대한 종합적인 명단을 정리하는 것은 간단한 과정으로 여겨질 수 없다.

또한, 비트코인은 개방형 소스 소프트웨어로서, 누구든지 변형, 배포, 활용이 가능한 형태로 사용자에게 소유와 검증 권리를 부여하며, 이로써 중앙 집중화로부터 해방될 수 있다고 굳게 믿기 때문에 그 특성이 개발 환경에도 비슷하게 반영된 것이라고 본다.

2.1 탈중앙화로 가는 과정

(Gavin Andresen l 출처: 구글 이미지)

비트코인 창시자인 사토시 나카모토가 물러난 이후로, 비트코인은 기술적 및 정신적인 측면에서 후견인은 창시자에서 커뮤니티로 전환되었다. 그러나 이것은 개발이 완전히 탈중앙화되었다는 의미는 볼 수는 없었다. Gavin Andresen이 몇 년 동안 비트코인 프로젝트를 주도적으로 이끌면서 때때로 커뮤니티의 일부 반대에도 불구하고 중요한 변경 사항, 예를 들어 ‘Pay-to-Script-Hash’ 소프트 포크를 코드에 적용하는 데에 자신의 영향력을 행사했다.

2014년, Andresen은 비영리 단체인 비트코인 재단에서 Chief Scientist로 일하기 위해 Lead Maintainer 역할을 네덜란드의 개발자 Wladimir van der Laan에게 넘겼다. Van der Laan은 자신을 지도자보다는 팀 내 조율자로 보았고, 그는 팀의 합의를 통해 작업을 진행했다. 그러나 비트코인의 거래 처리 능력을 늘려야 하는지에 대한 논쟁, 즉 ‘확장성 논쟁’으로 인해 그의 지도력은 도전받게 되었고, 이 논쟁은 개발자 커뮤니티를 혼란에 빠뜨렸다.

(Wladimir Van der Laan l 출처: 구글 이미지)

논쟁이 고조되는 동안, Gavin Andresen(당시 몇 달 동 안 비트코인 코어에 참여하지 않았음)은 더 큰 블록 크기를 지지했고, 이에 따라 Wladimir van der Laan에 의해 비트코인 코드의 커밋 액세스를 박탈당했다. 이 논쟁은 결국 “Big Blocker” 커뮤니티가 더 큰 블록 크기를 지원하는 비트코인 캐시를 중심으로 결집하면서 일정 부분 해소되었다. 2021년, Wladimir van der Laan은 Lead Maintainer 역할에서 물러나기로 결정했고, 이 역할은 이후에 특정 개인에게 넘어간 것이 아닌 개발자 그룹에 위임되었다. 이로써 비트코인은 탈중앙화 방향으로 한 걸음 더 나아가게 되었다. 이러한 변화는 비트코인 개발과 거버넌스 구조에서 커뮤니티 참여와 다양성을 더욱 강조하는 방향으로 나아가고 있음을 보여주는 대표적인 사례라고 볼 수 있다.

(Bitcoin Historical Maintainership l 출처: NYDIG)

2.2 Bitcoin Core

비트코인 코어는 비트코인 네트워크상에서 노드를 구축하고 코인을 저장하며, 거래 및 여러 업무들을 수행하는 데 있어 네트워크 참여자들이 즐겨 찾는 소프트웨어 클라이언트로서 주목받고 있다. 이를 네트워크 참여자가 비트코인 블록체인과 상호작용을 펼치는 인터페이스 혹은 관문으로 이해하는 것이 쉬울 것이다. 비트코인 코어는 다양한 인터넷 브라우저 소프트웨어가 인터넷에 연결하여 기본적인 기능을 제공하는 방식과 유사한 매커니즘으로 작동한다. 이와 유사하게, 이더리움에도 Geth와 Parity와 같은 다양한 클라이언트들이 존재하듯이, 비트코인 코어를 제외한 수많은 비트코인 소프트웨어 클라이언트들 또한 존재한다. 그러나, 비트코인 코어는 전 세계적으로 널리 받아들여지고 있으며 막대한 영향력을 발휘하는데, 이는 비트코인의 익명 창시자 사토시 나카모토가 비트코인 코어를 기반으로 포크(fork)한 클라이언트 소프트웨어를 개발했기 때문이다(사토시가 마지막으로 개발한 버전은 0.3.9임). 이에 따라 비트코인 코어는 사토시의 이념을 가장 충실히 보존하는 비트코인 소프트웨어 클라이언트로서 인정받고 있으며, 전 세계적인 대형 개발자 커뮤니티의 끊임없는 노력에 힘입어 혜택을 누리고 있다. 이로 인해 비트코인 코어는 여타 비트코인 소프트웨어 클라이언트들에게 표준을 제시하는 경우가 빈번하다. 현재도 비트코인 코어는 활발하게 개발되고 있으며 23년 5월 기준 버전은 25.0. 버전으로 확인된다.

비트코인 코어 개발자들이 제시한 업그레이드는 비트코인의 철학과 정신에 맞도록 조율되며, 버그가 없음을 확인하기 위해 동료 평가(peer-review) 과정을 거쳐야 한다. 이러한 제안이 동료 평가 과정을 성공적으로 통과하면, 비트코인 코어 내에서 해당 업그레이드를 구현하는 것이 관리자(Maintainer)의 책임으로 이어진다. 비트코인 코어 관리팀은 Wladimir van der Laan의 지도 아래 활동하였으며, Pieter Wuille, Marco Falke, Michael Ford, Jonas Schnelli, 그리고 Samuel Dobson 등이 팀의 일원으로 참여했었다. 비트코인 네트워크의 참여자들은, 커뮤니티의 공통된 비전에 부합하지 않는다고 판단되는 관리자를 제외할 수 있으므로, 해당 직위가 반드시 영구적이라고 볼 수는 없다.

2.3 코어 개발자

비트코인 코어 프로젝트에 기여한 개발자는 약 1,140명에 달한다. 이러한 수의 개발자가 기여했다는 사실은 인상적이며, 비트코인이 탄생한 지 13년 만에 이루어진 큰 성과로 볼 수 있다. 그러나 비트코인 코어의 기여자 수를 다른 유명한 오픈 소스 프로젝트, 예를 들어 리눅스와 비교하면 상대적으로 매우 작은 규모임을 알 수 있다. 대표적으로 리눅스는 수십 년 동안 개발되어 왔고, 거의 10만 명의 기여자가 참여한 대형 프로젝트로, 오픈 소스 개발의 선구자로 간주할 수 있다.

비트코인 생태계의 더 넓은 관점에서 볼 때, 13,057명의 고유 개발자가 참여한 것으로 나타나며, 이는 비트코인 코어 이외의 다양한 프로젝트와 애플리케이션에 대한 기여를 포함한다. 그러나 해당 수치는 대중에게 공개되지 않은 비공개 소스 솔루션을 개발하는 개발자들은 포함되지 않은 수치이다.

활성 개발자의 정의가 최근 커밋을 기준으로 한다면, 비트코인 코어 프로젝트의 활성 개발자 수는 대략 40~60명 정도로 추정할 수 있다. 이들은 프로토콜 개선, 버그 수정, 최적화 및 기타 기능에 지속적으로 기여하고 있다. 비트코인 코어 개발은 보수적이며, 변경 사항은 신중하게 검토되고 채택되기 때문에, 개발자 커뮤니티는 비교적 작지만 전문적이고 개발의 퀄리티에 중점을 둔다.

(Monthly Active Developers l 출처: NYDIG)

비공개 개발자까지 더 넓은 범위로 본다면 에서는 월간 활성 개발자 수는 약 600~1,000명 사이이다. 흥미로운 점은 자세히 관찰해 본다면 액티브 개발자의 증가는 비트코인이 보여준 4년 가격 증감폭과 어느 정도 상관관계가 있다.

흥미로운 점을 몇가지 알아본다면, 사토시 나카모토는 2010년 이후 비트코인 코드 기여자 상위 10위 안에 들지 못했다(실제로 사토시는 2010년 이후 코드에 기여한 적이 없음). 또한, 많은 저명한 비트코인 개발자들이 현재까지 비트코인의 역사 내내 꾸준히 상위 커밋 기여자의 자리를 유지해왔다는 점이다. 일부 비트코인 개발자는 더 유명해진 반면, 타 암호화폐 프로젝트로 옮겨가면서 유명세를 잃은 개발자도 많이 존재한다. 그리고 일부 개발자는 자신의 신원을 보호하기 위해 온라인 가명을 사용했지만, 아이러닉 하게도 대부분의 상위 비트코인 개발자의 실제 신원은 공개적으로 알려져 있다. 이렇게 수년 동안 많은 개발자가 비트코인 구축에 기여했지만, 소수의 개발자가 대부분의 개발을 담당하고 있다: 상위 37명의 개발자가 비트코인 전체 코드 커밋의 80%를 차지하고 있으며, 상위 50명의 개발자가 코드 커밋의 84%를 차지한다. 마지막으로 지역적으로 비트코인 개발자 순위는 1) 미국(35.1%) 2) 독일(13.3%), 3) 네덜란드(8.9%), 4) 호주(5.0%) 순이다.

3. 비트코인 개발 진행 방식

(2008년, 사토시 나카모토의 비트코인 논문이 암호화폐 메일링 리스트(mailing list)에 게시)

오늘날 비트코인은 전 세계 개발자들이 구축하고 유지 관리하는 완전한 오픈 소스 소프트웨어 프로젝트로써 자리잡았다. 메일링 리스트(mailing list), 포럼(forum) 중 하나 또는 IRC 채팅에서 토론에 참여하거나, 밋업 및 스터디 그룹에 참여하거나, 깃허브를 통해 소프트웨어 자체에 업데이트를 제안하는 등 다양한 방법으로 비트코인 코드에 기여할 수 있다. 비트코인에 대한 주요 업데이트는 일반적으로 제안된 코드 변경 사항을 개괄적으로 설명하는 설계 문서인 비트코인 개선 제안(BIP)으로 시작된다. 그런 다음 이러한 제안은 커뮤니티에서 토론하고 개발하며 엄격한 테스트를 거쳐 비트코인 코드에 병합된다. 비트코인의 검토 프로세스는 매우 복잡하며, 이에 대한 면밀한 검토는 타 암호화폐 프로젝트와 중요한 차별화 요소라고 볼 수 있다. 그중 먼저 2011년부터 시작된 비트코인 개선 제안(BIP)에 대하 자세히 알아보도록 하자.

3.1 BIP(Bitcoin Improvement Proposals)

비트코인 네트워크 업그레이드 및 공식적인 변경, 그리고 아이디어 제안 등은 비트코인 개선 제안(BIP)를 통해 이루어진다. 소프트웨어로서의 비트코인은 끊임없이 업그레이드 되고 있다. 예를 든다면 발생하는 오류들은 수정되어야 하고, 알고리즘은 더 효율적으로 만들어질 수 있다. 또한, 코드는 간소화될 수 있으며, 다른 소프트웨어와의 호환성이 유지되어야 하고, 새로운 기능들이 추가될 수 있을 것이다. 중앙화 되어있는 프로젝트에 속하는 일반 소프트웨어의 경우, 관리자나 리드 개발자가 단순히 업무를 할당하고 구현해야 할 변경 사항을 지시할 수 있다. 하지만, 비트코인은 오픈 소스이자 합의 기반 시스템으로써 리더가 존재하지 않는다. 그렇기 때문에 이러한 BIP 프로세스는 중앙화 된 주체 없이 비트코인 개발 커뮤니티를 조직화하는 역할을 하게 된다. 비트코인 네트워크의 보안은 신뢰를 유지하는 데 있어 매우 중요하다는 것은 누구나 동의할 것이다. 따라서, 비트코인의 개발 과정을 본다면 다른 암호화폐 프로젝트 대비 의도적으로 매우 느리고 신중한 편이다. 초기 제안부터 시작하여, 공식화된 BIP 제출, 그리고 네트워크 활성화 및 적용 등에 이르는 과정은 장기적인 관점에 진행된다.

( BIP Process l 출처: River Financial )

비트코인은 진정으로 개방된 시스템으로 특정 자격이나 명성에 상관없이 누구나 BIP를 제안할 수 있다. 일반적으로 BIP들은 위에 설명한 것 처럼 비트코인 메일링 리스트에서 비공식적인 제안으로 시작된다. 개발자는 메일링 리스트로 자신의 아이디어를 보낼 수 있으며, 관심이 있는 사람들 간에 피드백 서로 주고 받는다. 어떤 아이디어들은 커뮤니티가 합의를 이루지 못하거나, 미세 조정이 필요하거나, 또는 비트코인이 아직 제안된 변경 사항에 대해 준비되지 않았기 때문에 수년 동안 이 논의 단계에 머무르게 된다. 제안이 BIP포멧에 맞고 BIP 메인테이너가 spam이 아니다고 판단할 시 BIP 번호가 부여되고, BIP라는 비트코인 코어 GitHub 저장소에 게시된다. 이 시점에서 제안된 BIP는 공식적으로 볼 수 있지만, 아직 승인되거나 구현된 구조는 아니라는 점을 이해해야 한다.

( Bitcoin BIP 깃헙 홈페이지 )

이렇게 공식적으로 BIP가 깃헙에 게시된다면, 개발자 커뮤니티, 그리고 더 넓은 비트코인 사용자 커뮤니티 양쪽에서 논의되기 시작한다. 만약 해당 BIP가 비트코인 코어에 코드 변경을 필요로 하는 경우, 코어 개발자들은 해당 코드를 작성하고, 테스트하며, 통합하는 데 협조한다. 하지만, 커뮤니티 혹은 사용자들에 의해 제안에 대한 정당한 논란이 제기된다면, BIP는 철회되거나 거부되는게 경우가 일반적이며, 해당 BIP를 과정을 포기하거나 수정 후 다시 시작해야 한다. 반대로 만약 BIP가 커뮤니티의 대략적인 합의(* 아이디어에 대한 합의는 IETF의 Rough Consensus 방식을 따른다)에 도달하고 문제점이 발견되지 않는다면, BIP를 활성화하는 데 착수하게 된다. 이러한 과정은 다루고 있는 BIP의 유형에 따라 다양한 형태를 띄게 된다.

3.2 BIP 종류

비트코인 개선 제안에는 크게 세 가지 유형이 있으며, 제안 유형에 따른 분류 기준은 다음과 같다:

Standard BIP

일부 BIP들(SegWit, Taproot 등)은 비트코인 코어에 직접 코드 변경을 제안하지 않고, 대신 지갑이나 거래소와 같은 다른 비트코인 소프트웨어에 사용될 표준을 수립한다. 이러한 BIP들은 인코딩 체계를 제안하거나 비트코인 네트워크를 안전하게 보호하는 데 대한 사례를 제안할 수 있다. 비트코인은 개방된 시스템이므로, 모든 소프트웨어 공급자는 이러한 표준을 채택할지 여부를 선택할 수 있게 된다. 일부 표준들은 상호 운용성을 보장하기 위해 전체적인 채택이 필요하다. 예를 든다면, 비트코인 주소를 해석하지 못하는 지갑은 비트코인 지갑으로써 무용지물이며, 비트코인 커뮤니티에서 채택한 주소와 다른 주소 형식을 사용하는 지갑은 사용되기 어렵기 때문이다.

예를 들면 BIP 39와 BIP 174는 선택적인 BIP로 볼 수 있다. BIP 39에 정의된 니모닉 백업 구문은 많은 지갑 공급자들에게 채택되었지만, 비트코인 코어 자체에서는 사용되지는 않는다. 마찬가지로, 모든 지갑이 BIP 174에 정의된 PSBT 표준을 채택한 것은 아니다. 이렇게 소프트웨어 별로 선택적인 채택이 불편할 수 있지만, 소프트웨어의 유틸리티나 보안성을 해치지 않기 때문에 별다른 문제가 되지 않는다. 또한, 표준 BIP들은 종종 컨센서스 변경과 함께 나타한다. SegWit의 경우, BIP 142는 SegWit 주소에 대한 표준 형식을 수립했지만, 비트코인 네트워크의 규칙을 직접 변경하지는 않았다.

Informational BIP

정보성 BIP는 비트코인의 향후 계획에 대한 정보를 공유한다. 해당 문서는 비트코인 커뮤니티와 관련된 일반적인 지침, 설계 문제 또는 정보 등을 제공한다. 해당 BIP는 정보성 문서이기 때문에 별도의 커뮤니티 합의를 필요로 하지 않는다.

Process BIP

마지막으로, 일부 BIP들은 비트코인 개발이나 커뮤니티 논의를 간소화하기 위해 만들어진다. 이러한 BIP들은 대개 비트코인 코어 또는 다른 비트코인 소프트웨어에 코드 변경을 요구하지 않는다. 예를 들어, BIP 1과 BIP 2는 미래의 BIP의 라이프사이클과 형식, 그리고 그들의 활성화가 어떻게 처리되어야 하는지를 명시하고 있다. 가장 중요한 프로세스 BIP 두가지를 뽑는다면 BIP 8과 BIP 9라고 볼 수 있다. 해당 제안들은 비트코인 컨센서스에 소프트 포크 업그레이드를 활성화하는 두 가지 잠재적 프로세스를 설명한다. 하지만, 해당 제안들은 표준 BIP로 분류되지 않는다. 해당 제안들은 비트코인 합의에 대한 변경을 제안하지 않으며, 오히려 비트코인에 컨센서스 변경을 도입하는 방법에 대한 규칙을 제시하고, 이를 통해 네트워크 내의 갈등과 잠재적 분열을 피하고자 제안된 BIP이기 때문이다.

3.3 BIP 적용

결국 비트코인 코어의 코드를 직접 변경할 수 있는 권한을 가진 개발자인 여러 관리자의 검토와 커뮤니티의 공개 의견 기간이 필요하기 때문에 변경 사항이 병합되기까지 악명 높을 정도로 오랜 시간이 걸리게 된다. 합의 관련 변경사항에 대한 전체 검토 과정은 수개월 또는 수년이 걸리는 경우가 빈번하다. 일반적으로 검토(review)는 암호화 분석(cryptographic analysis), 사용성 평가(usability assessment), 소프트웨어 설계(software design), 그리고 마지막으로 코드(code)에 이르기까지 다양하다. 때때로 비트코인 코드에 대한 일련의 변경 사항은 함께 집계되어 “Releae”라고 하는 실행 가능한 비트코인 버전으로 형성된다.

2021년 9월 비트코인 코어 v22.0이 출시될 때까지 모든 최종 릴리스는 Van der Laan이나 Andresen이 암호로 서명했다(사토시는 자신의 릴리스에 서명한 적이 없음). 비트코인 코어를 다운로드하는 사람들은 널리 사용되는 수석 관리자의 공개 키와 대조하여 코드의 진위 여부를 확인할 수 있게 된다. v22.0에서 비트코인은 사용자가 Van der Laan 외에 신뢰할 수 있는 다른 개발자의 키와 비교하여 비트코인의 진위 여부를 확인할 수 있는 기능을 추가하기도 했다. 이러한 개발자의 공개 키는 비트코인 코어의 진위 여부를 확인하여 코드가 변조되지 않았음을 보장한다. 그러나 비트코인은 오픈 소스 프로젝트이며 누구나 코드 기여를 할 수 있으므로, 협업 코드 프로세스가 기능적이고 악의적이지 않은 코드를 생성하도록 보장하는 프로세스도 마련되어야 할 것이다.

(* 이전부터 gitian으로 참여를 원하는 모든 이들이 build 및 서명하였고 요즘에는 guix로 빌드 후 서명하고 있다.)

비트코인의 소스 코드는 협업 소프트웨어 웹사이트인 깃허브에서 찾아볼 수 있다. 비트코인 코드에 제안된 변경 사항은 개발자가 “pull requests”를 통해 적용되며, 해당 요청은 수동으로 검토되고 최종적으로 수락되는 경우 관리자가 코드베이스에 “merged”한다. Pull request는 일반적으로 “commits”이라고 하는 여러 개의 작은 개별 코드 업데이트로 구성된다. 위와 같이 비트코인 개선 제안(BIP) 메커니즘은 비트코인의 개발 과정을 구조적으로 만들어, 투명성과 커뮤니티의 의사 결정을 극대화하고, 비트코인을 최대한 개방적이고 분산화된 상태로 유지한다. 물론 누군가는 코어 개발자들 소수 집단이 비트코인의 대부분의 코드를 작성하고 BIP를 제안한다고 반론할 수 있지만, 이러한 제안들의 활성화는 네트워크의 노드들에 의해 전적으로 결정되며, 누구나 노드를 운영할 수 있다는 점을 이해해야 한다.

4. 비트코인 개발 지원

대부분의 소프트웨어 개발과 동일하게 비트코인도 정기적인 유지 관리와 업그레이드가 매우 중요하다. 비트코인은 단일 주체에 의해 통제되지 않기 때문에 개발과 유지보수는 네트워크 참여자 간의 합의를 통해 이루어진다. 기본적으로 비트코인 프로젝트의 개발을 관리하는 개인이나 회사는 존재하지 않으며, 전 세계의 개인, 혹은 팀에 의해 시작된다. 비트코인 생태계의 자원과 규모는 지속적으로 성장하고 있으며, 다양한 조직이 등장하여 비트코인 프로토콜의 발전에 기여하고 있다. 아래 내용을 통해 비트코인 프로토콜과 생태계 개발에 자금을 지원하는 주요 단체와 개인에 대해 간략히 알아보도도록 하자.

4.1 개발자 지원 기관

Bitcoin Foundation

비트코인 재단은 비트코인 코어 개발자 개빈 안드레센과 존 마토니스가 2012년에 설립한 비영리 단체로, 주로 일부 개발자에게 자금을 지원한다. 해당 재단은 비트코인 개발과 채택을 촉진하는 것을 목표로 정부, 기업 및 기타 단체와의 소통에서 비트코인 커뮤니티를 대표한다. 재단은 비트코인 기술과 혁신을 발전시키는 데 전념하며 비트코인 생태계에서 중요한 역할을 담당한다. 비트코인 재단의 주요 재원 중 하나는 회원 수수료라고 볼 수 있다. 하지만 2015년 초에 재단 자금이 거의 소진 되었음에도 재단은 비트코인 기술을 발전시키고 전 세계적으로 비트코인 채택을 촉진하는 데 상당한 기여를 해왔다. (*현재는 운영중이지 않다.)

Bitcoin Foundation Membership

Chaincode Labs

Chaincode Labs는 2016년에 두 명의 비트코인 개발자에 의해 창립되어 뉴욕에 거점을 둔 디지털 통화에 관한 비영리 연구 기관으로서, 비트코인 네트워크의 성장과 발전에 이바지하고 있다. Chaincode Labs는 자체 정규팀에 속한 비트코인 개발자들은 물론, 독립적인 비트코인 개발자들에게 재정적 지원을 제공하며, Bitcoin Core와 BIP와 같은 개발 프로젝트 및 교육 프로그램(*Summer of Bitcoin, Qala, Chaincode 세미나)에 기여 했다. 이 기관이 재정적 지원을 제공하는 비트코인 코어 개발자들 중 몇몇 저명한 인물로는 Pieter Wuille, Russ, 그리고 Yanofsky이 포함되어 있다.

Opensats

Opensats는 비트코인 및 기타 교육 및 연구와 관련된 무료 오픈소스 프로젝트와 기타 이니셔티브에 자금을 지원하는 비영리 단체이다. 기부금의 100%를 수수료 없이 프로젝트 및 일반 기금으로 이체하는 플랫폼을 제공합니다. 비트코인 관련 소프트웨어 개발, 기존 오픈소스 소프트웨어 개선, 비트코인 관련 교육 및 홍보, 비트코인 관련 주제에 대한 연구 등에 자금을 지원하는 데 전념하고 있다. 올해 5월, Jack Dorsey는 자선 이니셔티브인 ‘Startsmall’을 통해 Opensats에 1천만 달러를 기부했으며, 이 기부금은 비트코인, 탈중앙화 소셜 프로토콜 Nostr과 관련 기술에 중점을 둔 오픈소스 소프트웨어 및 프로젝트 개발을 지원하는 데 사용될 예정이다

MIT Digital Currency Initiative (MIT DCI):

MIT의 Digital Currency Iniitiative는 외부 개발자와 자체 비트코인 코어 개발 전담팀에 자금을 지원하는 암호화폐 개발 연구 조직이다. 대부분의 비트코인 개발 후원 기관과는 다르게 MIT DCI는 기부금에 의존합니다. 해당 조직과 관련된 비트코인 코어 개발자로는 블라디미르 반 데어 란과 코리 필드, Anthony Towns가 있다. 2015년 4월부터 DCI의 지원을 받아 작업하는 개발자들은 비트코인 코어 코드의 14%를 기여했다. 2016년에는 9백만 달러 규모의 비트코인 개발 기금 출범을 발표하여 여러 대형 거래소로부터 기부를 유치하기도 했다.

Blockstream

Blockstream은 CEO인 Adam Back 및 Gregory Maxwell, Jorge Timón, Matt Corallo, Pieter Wuille, Mark Friedenbach 등 유명한 비트코인 코어 개발자들이 창립한 벤처캐피털(VC)을 기반으로 하는 블록체인 기술 전문 기업이다. 설립 초기에 블록스트림은 시리즈 A 투자로 2,100만 달러를 조달했다. 이 회사의 핵심 목표는 상호 운용 가능한 거래를 가능케 하는 비트코인 전용 사이드체인 구축에 초점을 맞추고 있으며, 이와 관련하여 학술 논문을 발표하였다. 현재 블록스트림은 Bitcoin Core, libsecp256k1, Rust Bitcoin, clightning 등의 프로젝트에 기여하는 개발자들을 채용하고 있다.

BitMEX

2014년에 설립된 거래소인 BitMEX는 2019년 7월에 시작된 ‘Open Source Developer Grant Program’을 통해 비트코인 개발 지원에 앞장서고 있다. BitMEX는 개발자들에게 필요한 자원을 제공하여 비트코인 코어의 발전에 크게 기여하는 거래소로 잘 알려져 있다(*현재 BitMEX는 대략 5명의 개발자들에게 지원을 제공하고 있다). 더불어, 비트코인 코어 개발자 커뮤니티에서 두각을 나타내는 인물 중 한 명인 Michael Ford(2021년에 brink.dev로 이동)에 대한 후원도 진행했다. 이와 같은 움직임에 따라, 미국의 주요 거래소인 Coinbase 또한 이러한 추세에 발맞추어 자체 비트코인 코어 개발 지원금 프로그램을 개시하겠다고 공언하였다.

Square Crypto

비트코인의 오픈 소스 소프트웨어를 개선하기 위해 Square가 만든 독립 연구팀이다. Square Crypto는 비트코인 코어 업그레이드를 제안하고 구현하는 데 전념하는 여러 개발자에게 자금을 지원해 왔다. Square Crypto가 자금을 지원한 비트코인 코어 개발자로는 John Atack, 그리고 Vasil Dimo 등이 있다. 또한, Matt Carlo는 Square Crypto 팀의 영구 멤버이다.

Brink

2020년에 설립된 비영리 재단으로 개발 자금을 기업으로부터 100% 모으고 개발자들을 고용하는 형식으로 운영된다. 현재 영국 런던에 위치하며 주로 Bitcoin Core 프로젝트에 집중하여 약 10명의 개발자를 지원 중에 있다. 펠로우십 프로그램을 통해 비트코인 개발에 새로 기여하는 사람들을 지원하고 멘토링하며, 보조금 프로그램을 통해 기존 비트코인 프로토콜 엔지니어의 작업을 지원한다.

이외에도 Human Rights Foundation(HRF), Okcoin, Lightening Labs등 비트코인이 탄생한 이래 다양한 기관, 기업, 단체가 기술적 또는 재정적 지원을 통해 비트코인 프로토콜의 발전에 기여해 왔다. 비트코인의 시가총액이 지속적으로 증가함에 따라 생태계는 점차 확장될 것이며, 개발자, 기업, 조직은 이러한 지원을 중심으로 더 광범위한 비즈니스를 개발할 것이다.

5. 국내 비트코인 개발자 인터뷰: Calvin Kim

대중들에게 널리 알려진 비트코인의 이면에는 무수히 복잡한 개발 프로세스가 숨어 있다. 그런데 아이러니하게도, 이러한 비트코인 개발 프로세스에 대한 정보는 불편하게도 일반인들이 찾아보기 어렵다. 인터넷에서도 ‘비트코인’이라는 검색어를 입력하면 다양한 정보가 나오지만, 대부분은 그 기본 개념이나 정의에 대한 설명이다. 하지만 이러한 설명들만으로는 비트코인이 어떻게 실제로 작동하는지, 또는 어떻게 개발되는지에 대한 실질적인 이해를 얻기는 어렵다. 또한, 기술 세계에서는 시간이 갈수록 빠르게 변화하는데, 많은 자료들이 “outdated”되어 최신의 개발 트렌드를 반영하지 못하고 있다.

따라서 이번에는 좀 더 실질적이고 현실적인 비트코인 개발 프로세스에 대한 이해를 돕고자 국내에서 활발하게 활동 중인 비트코인 개발자, Calvin님과의 인터뷰를 진행해보았다. Calvin님은 비트코인 개발의 최전선에서 일하고 있는 실력있는 개발자로서, 그의 이야기를 통해 비트코인 개발 프로세스의 실질적인 면모를 들어볼 수 있을 것이다. 지금부터 Calvin님과의 인터뷰를 통해 비트코인 개발의 숨은 이야기를 함께 들어보도록 하자.

5.1 소개

국내 비트코인 개발자인 캘빈님은 2013년에 비트코인을 처음 알게 되었으나, 마운트 곡스 사건 이후에는 일시적으로 비트코인에 대한 관심을 접게 되었다. 그러나 2017년 서울 비트코인 밋업을 통해 비트코인 프로토콜 개발에 대한 관심을 재점화하게 되었고, 2019년에는 컨퍼런스에서 Thaddeus Dryja(라이트닝 랩스 공동 창업자 및 Utreexo 개발자)를 만나 Utreexo 프로젝트에 참여하게 되었다. 그 이후로는 비트코인 베이스 레이어의 확장성을 개선하기 위한 Utreexo 프로젝트에 연구 개발 및 기여를 지속적으로 하고 있다. 또한, 한국에서 비트코인 관련 활동을 활성화하고, 서울 비트코인 밋업에서 기술 프레젠테이션과 공동 조직을 진행하고 있다. 2020년에는 BitMEX 거래소의 그랜트를 통해 개발 지원을 받았고, 현재는 HRF(Human Right Foundation) 재단에서 개발 지원을 받아 지속적인 개발을 이어가고 있는 중이다.

5.2 메일링 리스트

비트코인은 개발 관련 아이디어를 주고 받는 방식이 일반적이지 않다. 프로토콜 단의 개발은 주로 메일링 리스트를 통해 이루어지며, 참여자는 모두 메일링 리스트에 가입되어 있는 것을 전제로 한다. 메일링 리스트에 올라오는 내용은 모두가 확인할 수 있으나, 메일링 리스트에 가입되어 있지 않으면 아이디어 제출은 검토하기 어렵다(*가입은 웹사이트에서 이메일만 기입하면 된다). 또한, 비트코인의 메일링 리스트 외에도 라이트닝 네트워크 메일링 리스트가 별도로 운영되며, 비트코인에 관련된 모든 개발 아이디어가 한 메일링 리스트에서 관리되는 것은 아니다. 개발 아이디어를 가진 사람은 언제든지 메일링 리스트를 작성하여 아이디어를 제안하며, 그 아이디어가 프로토콜이 아닌 구현에 초점을 두고 있다면, 해당 아이디어를 기반으로 하는 프로젝트(비트코인 코어, 라이트닝 구현체)의 메일링 리스트에 게재됩니다.

각 프로젝트에서는 아이디어의 대표 역할을 하는 ‘챔피언’이 존재하며, 이들이 개발 과정을 주도하고 컨센서스를 이루어가게 된다. 챔피언은 BIP를 작성하여 메일링 리스트에 게재하며, 일반적으로 BIP 포맷(BIP-1,2에서 정의되어 있음)을 준수하는 것이 요구된다. BIP가 받아들여지는 기준은 별도로 존재하지 않으며, 포맷을 준수하는 것이 가장 중요합니다. 메일링 리스트는 2~3명의 관리자가 아이디어를 검토하며, 일반적인 스팸을 필터링하는 역할도 수행하게 된다.

5.3 BIP(Bitcoin Improvement Proposals)

그렇다면, 메일링 리스트를 통해 제출된 아이디어가 BIP 형식을 따르는지 어떻게 확인할 수 있을까? BIP는 별도의 관리자가 존재하고, 현재는 도쿄의 Kalle Alm과 플로리다의 Luke Dashjr 주니어가 그 역할을 맡고 있다. 그러나 그들은 제출된 BIP가 해당 형식을 따랐는지를 판단하는데 그치며, 변경을 강제할 수 있는 권한은 부여되지 않는다. 이 때문에 **BIP-0716**과 같이 비트코인 단위의 정의와 같은 비교적 개발적 중요성이 낮은 BIP도 포함될 수 있습니다.

일반적으로, BIP를 제출하는 이들은 먼저 BIP 카테고리를 결정하고 작성에 들어간다. BIP 작성의 목적은 기술 문서화를 통한 정보 공유이므로, BIP의 목적이 명확하게 구분되는 것을 권장하는 문화가 형성되어 있다. 세그윗이 어떻게 정의되는지, P2P 프로토콜이 어떻게 작동하는지 등의 이슈를 고려하여 BIP가 분류되며, Utreexo 역시 네 개의 BIP로 나뉘어질 예정이다. 흥미로운 점은, 깃허브에 게재된 BIP의 넘버링은 아이디어의 제출 순서를 반영하는 것으로 생각할 수 있지만, 해당 넘버링 과정과 정책에 대해 자세히 알고 있는 사람은 Luke Dashjr 외에는 없다. 일반적으로는 1XX, 2XX 등의 숫자 범위에 따라 세부 분류가 이루어지는 것으로 알려져 있지만, 정확한 가이드라인은 존재하지 않는다.

특정 프로젝트를 구현할 때 BIP 작성은 필수가 아니다. 예를 들어, 비트코인 코어는 BIP-39(시드 문구)를 구현하지 않고, BIP-32만을 구현했다. 비트코인 코어의 경우에는 프로토콜에 중요한 변화를 가져올 경우 BIP를 작성하지 않고, 개발자들 사이에서 공유하며 우선 순위에 따라 진행됩니다. assumeUTXO 프로젝트는 BIP를 작성하지 않고, 깃허브 이슈로만 존재(*BIP대신 글로 따로 정리한 github repository가 있었음)하였고, 탭루트의 경우 개발 완료 후에 BIP 문서가 업데이트되었다. 그러나 일반적으로 컨센서스와 관련된 개발 사항은 비트코인 개발자들 사이에서 문서화된 설명인 BIP를 선호하는 편이다.

5.4 비트코인 개발자가 되기 위해서 무엇이 필요한가?

조금 실망스러울 수도 있겠지만 사실 비트코인 개발자가 되기 위한 정형화된 경로는 존재하지 않는다. 포트폴리오 제출과 영어로 이루어지는 인터뷰와 같은 넘기 어려운 장벽이 있기 때문이다. 이에 따라, 캘빈님의 경험을 공유하면 좋을 것 같다. 캘빈님은 비트코인에 관심을 갖게 되어 관련 밋업에 참여하고 개발을 시작했다. 비트코인의 중요성과 필요성에 공감하여, 초기 1년 동안은 매일 4~5시간씩 취미로써 개발을 진행하였다. 2019년이 되어서야 그랜트 프로그램(BitMex)이 생기기 시작했으며, 그 전까지는 오픈소스 지원금을 받을 경로가 거의 없었다. 물론, 그 이전에도 뉴욕의 ChainCode 같은 몇몇 회사가 있었지만, 어떤 단체에도 소속되지 않은 상태에서 오픈소스 지원금을 지급하는 형태는 거의 없었다고 볼 수 있다. 그 후에 BitMEX에 UtreeXO 개발을 주제로 지원하였고, 당시 BitMEX의 지원금 지급을 결정하는 사람과 새로운 개발자를 모집하려는 욕구가 잘 맞아떨어져 선정되었다.

개발자에게 그랜트 또는 지원금을 지급하는 기업들의 목표는 다양하다. BitMEX의 경우 비트코인 프로토콜의 변화가 사용자에게 주는 이익에 중점을 두고 개발자를 선정했다. 반면에, **brink.dev**는 비트코인 코어 개발자 양성에 초점을 맞추었으며, 비트코인 코어에 어떻게 기여할 수 있을지, 어떻게 안전하게 보호할 수 있을지를 중점으로 판단한다. Sprial(잭도시, 블록)은 사용자 편의성 및 안전성에 중점을 둔 비트코인 지갑 개발 지원에 초점을 맞춰져 있다. 서류 심사 이후 지원금 프로그램에 관한 제안서를 제출하고, 영어로 화상 인터뷰를 진행하게 된다.

현재 알고있는 수준에서 전세계적으로 풀타임 개발자(오픈소스 이면서 프로토콜을 다루는 개발자)는 약 50~100명 수준이지 않을까 생각된다. 하지만 이외에도, 비트코인 관련 지갑 , 인프라, 마이닝 회사 등이 여럿 존재하기 때문에 다 합친다면 이보다 더 많을 것이다.

5.5 비트코인 코어 개발자 및 메인테이너

비트코인 메인테이너와 코어 개발자들의 역할은 비트코인 네트워크의 핵심 요소를 개발, 유지 및 관리하는 것이다. 비트코인 코어라는 소프트웨어에는 여러 분야별로 메인테이너가 존재하며, 현재 5명의 메인테이너가 각각 다른 분야를 담당하고 있습니다. 예를 들어, Wallet(지갑), Mempool(트랜잭션 메모리 풀), Build Process(빌드 프로세스), GUI(그래픽 사용자 인터페이스), Test(테스트) 등이 있다.

각 메인테이너는 자신이 담당하는 분야의 코드를 검토하고 승인할 권한이 있다. 이들은 자신이 담당하지 않는 분야의 코드를 임의로 승인하지 않는다. 이를 통해 각 분야의 전문성과 책임을 유지할 수 있다. 비트코인 코어 프로젝트는 주로 GitHub에서 진행되며, 코드 제안이 이루어지는 별도의 페이지가 존재한다.

“코어 개발자”라는 용어는 다소 모호하게 사용되는 경우가 있다. 이는 비트코인 코어라는 소프트웨어에 종사하는 개발자를 가리키는 경우도 있고, 실제로 비트코인에서 핵심적인 개발을 담당하는 개발자를 가리키는 경우도 있기 때문이다. 전자의 경우는 코드 리뷰와 검토를 주로 하는 사람들을, 후자의 경우는 새로운 기능을 추가하려는 개발자들을 의미하기도 한다.

5.6 이 외에

채굴자와 개발자 사이의 이해관계는 존재할 수 있지만, 그 관계는 복잡하고 명확하지 않을 수 있다. 이는 대부분의 채굴기 제조사가 채굴 소프트웨어를 별도로 제공하며, 따라서 채굴자들이 직접 비트코인 코어를 운영할 필요가 없기 때문이다. 채굴 프로토콜은 별도로 존재하며, 채굴 시스템에서는 네트워크 지연 시간이 중요한 요소로 작용합니다. 채굴 풀 간의 연결성이 좋을수록 성능이 향상되기 때문에, 이러한 주제에 대한 연구도 진행되고 있다.

비트코인의 레이어 2에서 활발하게 연구 및 개발이 진행되고 있는 다른 프로젝트들로는 드라이브체인, 스테이트 체인, 스페이스 체인, 리퀴드 등이 있다. 이러한 프로젝트들은 각각 중앙집중화, 보안 등의 이슈에 대한 서로 다른 접근 방식을 가지고 있어, 각각의 프로젝트에서는 다양한 트레이드 오프가 존재한다.

이렇게 비트코인 개발의 현장에서 직접 활동하고 계신 Calvin님과의 짧은 대화를 통해 비트코인의 실질적인 개발 프로세스에 대해 알아보는 기회를 가졌다. Calvin님의 이야기는 이전에 접하기 힘들었던 비트코인 개발의 생생한 현장을 우리에게 가까이 가져다 주었다. 다시 한번 Calvin님께 귀중한 시간을 내어주셔서 진심으로 감사드리며, 이 글을 통해 비트코인 개발에 대한 흥미로운 정보를 얻었길 바란다.

마지막으로, 비트코인 밋업에서는 코드 레벨의 대화를 나누는 기회가 많지 않았다는 점을 언급하고 싶다. 비트코인 개발에 대한 인터뷰에 관심이 있다는 것 자체가 이례적이었을 정도로, 대부분의 참석자들은 개발보다는 비트코인의 경제적, 사회적 측면에 더 관심을 가지고 있는 편이다. 해외의 여러 도시에서는 비트코인 개발에 대한 교류가 활발하게 이루어지는 반면, 서울에서는 그런 경향이 덜한 것으로 보인다. 더 많은 비트코인 개발자들이 국내에서 활동하게 되기를 바라며, 비트코인 개발에 관심이 있는 분들은 언제든지 @kcalvinalvinn 으로 문의하기 바란다.

6. 마무리

위 내용을 통해 비트코인 개선 제안(BIP)은 이더리움 개선 제안(EIP)과 동일하게 비트코인 생태계의 프로토콜 업그레이드를 위해 구조적이고 체계적인 개발자들의 접근 방식을 보여준다고 생각한다. 기본적으로 체인의 업그레이드 제안을 촉진하고 표준화하며 문서화한다는 동일한 목적을 가지고 있지만, BIP와 EIP를 구분하는 미묘한 차이점이 있다고 본다. 예를 든다는 큰 프레임에서 이더리움의 EIP 구조는 ‘World Computer’가 되고자 하는 이더리움의 계획으로 인해 업그레이드에 더욱 진보적이고 개발 생태계가 활성화되어 있으며, 이를 위해 지속적인 업데이트와 조정을 적극적으로 진행한다. 반면 비트코인의 경우 업그레이드는 안정성과 전통성에 기반을 두고 있으며, 탈중앙화된 가치 저장소 역할을 지켜나가려 한다는 점이다.

또 다른 점으로는 개발 합의 메커니즘에 있다. 이더리움의 개발과 의사결정 과정에는 디앱 개발자와 이더리움 보유자 등 다양한 이해관계자가 참여하는 경우가 많다. 반면 비트코인의 개발은 탈중앙화를 강력하게 고수하고 있으며, 주요 변경 사항을 구현하기 전에 다양한 노드 운영자와 채굴자 간의 광범위한 합의가 필요한 경우가 많다. 비트코인의 개발 생태계는 탈중앙화라는 핵심 원칙에 따라 여러 주요 주체가 분산되어 있어 한 주체가 모든 것을 통제할 수 없는 경향이 있다.

이러한 요소들을 고려할 때 비트코인의 미래는 유망해 보인다. 개발 과정의 탈중앙적인 특성은 다양한 목소리를 듣고 광범위한 커뮤니티의 합의를 통해 변화를 끌어낼 수 있도록 보장한다. 이러한 접근 방식은 때때로 느리지만, 끊임없이 변화하는 블록체인 기술 세계에서 비트코인의 무결성과 핵심 비전이 타협하지 않고 계속 진화할 수 있도록 보장할 수 있을 것이다.

7. 출처

--

--

web3vibe
Decipher Media |디사이퍼 미디어

𝘊𝘶𝘳𝘳𝘦𝘯𝘵𝘭𝘺 𝘸𝘰𝘳𝘬𝘪𝘯𝘨 𝘢𝘴 𝗕𝗗 #blockchain 🌐 l 𝘔𝘦𝘮𝘣𝘦𝘳 @DecipherGlobal l 𝘸𝘳𝘪𝘵𝘦 𝘵𝘰 𝘳𝘦𝘧𝘭𝘦𝘤𝘵