비트코인 코어 유지보수 담당자 역할의 진화

이 기사는 기계로 번역되었습니다
원문 표시

저자: 후안 갈트

출처: https://bitcoinmagazine.com/print/the-core-issue-the-role-and-history-of-bitcoin-core-maintainers

초창기에는 사토시 나카모토와 그의 확고한 아이디어만이 존재했습니다. 사토시 나카모토는 늦어도 2007년 부터 비트코인 개발을 시작했으며, 우리가 아는 한 2008년 10월 31일, 비트코인 백서 를 발표한 지 몇 주 후, 할 피니를 첫 번째 프로젝트 참여자로 영입하기 전까지는 전적으로 혼자 개발했습니다.

할-피니

이후의 사건들을 통해 피니가 비트코인의 초기 성공에 매우 중요한 역할을 했다는 사실이 드러났습니다. 최근 공개된 이메일 4 에 따르면, 사토시 나카모토의 노드는 제네시스 블록 채굴 후 며칠 동안 "수신 연결"을 받지 못했고, 이로 인해 다른 사용자들이 연결할 수 있는 유일한 노드가 피니의 노드가 되었습니다. 사토시 나카모토는 피니에게 보낸 개인 이메일에서 "당신의 노드가 수신 연결을 받을 수 있었던 것이 네트워크가 처음 1~2일을 버텨내는 데 중요한 요인이었습니다."라고 말했습니다.

피니는 비트코인 코드에 대한 최초의 검토자이자 기여자로 알려져 있습니다. 소프트웨어가 완전히 출시되기 전에 사토시 나카모토는 피니와 몇몇 전설적인 사이퍼펑크 인물들에게 해당 코드를 공유했습니다. 비트코인 프로젝트의 첫 번째 버전이 출시되기 전에도 피니는 이미 코드에 기여했는데, 이는 사토시 나카모토로부터 미공개 코드를 받은 레이 딜린저의 증언을 통해 밝혀졌습니다.

딜린저의 블로그에는 너새니얼 포퍼와의 인터뷰가 실려 있습니다. 인터뷰에서 포퍼는 "그때 회계 코드에서 부동 소수점 유형에 대해 논의하기 시작했고, 피니도 관련되어 있다는 것을 알게 되었습니다. 피니는 당시 거래용 스크립팅 언어를 검토하고 있었는데, 그의 코드와 제 코드가 모두 회계 코드와 상호 작용했습니다."라고 말합니다.

이 설명은 소스포지(SourceForge) 코드 플랫폼에 있는 가장 오래된 비트코인 프로젝트 아카이브와 대략적으로 일치합니다. 사토시 나카모토는 2008년 12월 18일에 피니를 해당 프로젝트에 추가했습니다. 나카모토의 결정은 프로젝트의 "유지보수자" 권한을 다른 사람이 가질 수 있게 된 첫 번째 사례였습니다. 피니는 소스포지 플랫폼에서 비트코인 프로젝트의 개발자 자격을 얻을 수 있었고, 이를 통해 프로젝트를 다운로드, 수정 및 새 버전을 업로드할 수 있었습니다.

소스포지

그렇다면 할 피니는 코드 기여자, 코드 검토자, 노드 운영자일 뿐만 아니라 비트코인 프로젝트의 유지 관리자이기도 한 건가요?

'유지보수자'에 대한 가장 엄격한 정의는 소프트웨어 프로젝트의 메인 개발 브랜치에 '커밋 권한'(또는 쓰기 권한)을 가진 사람입니다. 비트코인과 같은 프로젝트에서 기여자는 프로젝트의 개발 브랜치에 코드를 '제출'하고 해당 코드를 메인 브랜치에 통합하기 위한 'PR'(병합 요청)을 보낼 수 있습니다. 그러나 이러한 업데이트는 유지보수자의 '커밋 권한'을 통해서만 메인 브랜치에 '병합'될 수 있습니다.

이러한 정의에 따르면, 피니는 사토시 나카모토 이후 최초의 비트코인 코어 관리자라고 할 수 있습니다. 하지만 비트코인 코어 관리자가 되려면 단순히 커밋 권한만으로는 부족합니다. 개발자 커뮤니티에서 좋은 평판을 얻고 성실하고 유능한 기여자가 되어야 합니다.

역자 주: 대략적으로 말하자면, 사토시 나카모토는 소스포스(Sourceforce) 플랫폼에서 최초의 비트코인 노드 클라이언트인 "비트코인(Bitcoin)" 프로젝트를 만들었습니다. 나카모토가 떠난 후, 기존 코드는 깃허브(GitHub) 플랫폼으로 이전되었고 프로젝트 이름은 "비트코인 코어(Bitcoin Core)"로 변경되었습니다. 원문에서 볼 수 있듯이, 저자는 이러한 구분을 강조하지 않고 두 프로젝트를 동일한 프로젝트로 취급하며, 이전 프로젝트(또는 이전 시기)를 특정하여 언급하기보다는 일관되게 "비트코인"이라는 용어를 사용합니다. 따라서 여기서 "비트코인 코어"는 단지 이후 유지보수 담당자에 대한 요구 사항이 증가했음을 나타내기 위해 사용되었습니다.

비트코인 프로젝트의 관리자는 때로는 다른 관리자들에게 잘 알려져 있고 해당 역할에 적합해 보이는 현역 개발자인 경우도 있지만, 때로는 단순히 합의에 도달한 것으로 보이는 코드만 병합하고 합의에 도달하지 않은 코드는 병합하지 않는 코드 검토자인 경우도 있습니다.

반대로, 관리자들은 비트코인 업계에서 명망 있는 인물이 되었지만, 실수로 인해 쉽게 명예가 실추되기도 합니다. 때로는 저명한 관리자가 다른 관리자들에게 부패한 것으로 간주되어 권한이 박탈되기도 하는데, 예를 들어 사기꾼 크레이그 라이트를 사토시 나카모토라고 보증한 개빈 앤드레슨(Gavin Andresen )이 있습니다. 또 다른 경우에는 그레고리 맥스웰(Gregory Maxwell ) 처럼 표적 공격을 피하기 위해 관리자 직에서 사임하기도 합니다.

일반적으로 기여자들은 비트코인 프로젝트 유지 관리자가 정치인이 아닌 엔지니어이기를 기대합니다. 예를 들어, 깃허브의 다양한 풀 리퀘스트(PR) 토론 페이지에서 사람들은 커밋을 시작한 사람이나 그 사람의 정치적 견해, 또는 충성도보다는 코드에 언급된 구체적인 기술 및 구현 세부 사항에 대한 논의가 이루어지기를 기대합니다. 합의를 도출해야 하거나 격렬한 논쟁을 불러일으킬 수 있는 주제, 그리고 정치적인 주제는 대개 비트코인 메일링 리스트나 다른 포럼으로 옮겨갑니다.

핵심은 비트코인의 역사를 통틀어 "유지보수 담당자"들이 가진 권력이 사토시 나카모토의 구상 이후 프로젝트가 성장함에 따라 꾸준히 축소되어 왔다는 점입니다. 심지어 메인 브랜치에 병합된 코드가 이후 검토 과정에서 다시 삭제되는 사례도 있었는데 , 이는 유지보수 담당자들의 결정이 더 이상 최종적인 것이 아님을 보여줍니다.

비트코인 역사 전반에 걸쳐 유지 관리자들은 때때로 게이트키퍼 역할을 한다는 비난을 받아왔습니다. 커뮤니티의 특정 집단이 지지하는 업데이트를, 종종 다른 집단의 반대 때문에 수용하지 않는다는 것입니다. 이러한 경우, 유지 관리자의 역할은 정량화하기 어려운 '취향 결정권'을 가지고 있으며, 코드 커밋이 합의를 얻었는지 여부를 결정하는 역할을 합니다.

(특정 코드의) 병합 여부를 결정할 수 있는 독점적인 권한은 오픈소스 프로젝트에 절대적으로 필요하고 불가피할 수 있습니다. 왜냐하면 누구나 언제든 어떤 코드든 병합할 수 있다면 그 프로젝트는 안전하고 안정적이라고 볼 수 없기 때문입니다. 적대적인 환경에서는 아이디어와 가치만을 기준으로 코드를 검토하는 엘리트 시스템이 우리가 추구할 수 있는 최선의 모델이라고 할 수 있습니다. 그 외의 다른 선택지는 권위주의적인 정치 체제와 다를 바 없습니다.

안타깝게도 비트코인 프로젝트 초기 단계에 대한 정보는 극히 부족하여, 제네시스 블록 생성 이전 할 피니의 역할에 대해서는 단편적인 정보만 접할 수 있습니다. 오픈 소스 소프트웨어 개발에서 관리자 권한 이력은 매우 불투명합니다. 소스포지(Sourceforge)나 깃허브(GitHub) 같은 플랫폼은 커밋 권한 이력이나 상세한 멤버 권한을 공개하지 않습니다. 사토시 나카모토가 피니를 소스포지에 추가한 것은 비트코인 관리자 역사상 매우 드문 사례입니다.

하지만 SVN이나 Git 같은 버전 관리 시스템은 비트코인 최초 출시 후 몇 주가 지나서야 구현되었지만, 코드 커밋과 프로젝트 브랜치 이력을 추적하여 공개적으로 검토할 수 있도록 해주었고, 무슨 일이 일어났는지에 대한 공개적인 정보를 제공했습니다. 결과적으로 비트코인 프로젝트 관리자의 이력에 대한 정보는 주로 메인 브랜치에 대한 첫 번째와 마지막 커밋, Bitcointalk(또는 다른) 포럼의 공지, 그리고 (극히 드물지만) 활동 중인 관리자가 권한을 철회했다는 소식에서 얻습니다. 이 글의 상당 부분은 비트코인 코어 관리자인 Ava Chow의 기록을 기반으로 합니다.<sup> 10 </sup>

커밋 권한(또는 관리자)을 추적하는 기능은 2014년에 개선되었습니다. 비트코인 코어 프로젝트는 "신뢰할 수 있는 공개 키" 시스템¹¹을 추가했는데, 이 시스템에는 메인 브랜치에 코드를 커밋할 수 있는 PGP 공개 키의 화이트리스트가 포함되었습니다. 공개 키는 활성 관리자가 있는 코드와 병합하는 방식으로만 이 목록에 추가하거나 제거할 수 있었습니다. 또한 메인 브랜치에 커밋된 모든 코드는 (해당 개인 키로) 서명되었으며, 누구나 소프트웨어의 서명과 해당 PGP 공개 키를 비교하여 공개적으로 확인할 수 있었습니다.

신뢰할 수 있는 공개 키 시스템(Trusted Public Key System)은 맷 코랄로가 보안 강화 조치로 추가한 기능입니다. 그는 비트코인 매거진과의 인터뷰에서 이 기능은 특정 자극이나 사건에 대한 대응이 아니라 전반적인 개선 및 최적화 과정의 결과라고 밝혔습니다.

비트코인 코어 유지보수 담당자들의 간략한 역사: 사토시 나카모토 시대

2009년 1월 3일, 사토시 나카모토는 비트코인 네트워크의 제네시스 블록 13을 채굴하여 이 전자 화폐를 사실상 공개 테스트 단계로 끌어올렸습니다. 이 블록에 그는 영국의 전국 일간지 헤드라인인 "더 타임스 2009년 1월 3일, 재무장관, 은행에 대한 두 번째 구제금융 임박"이라는 메시지를 삽입했습니다. 이는 비트코인의 탄생을 물리적 세계에 기록하고 시간적 의미를 부여하는 역할을 했습니다. 비트코인 블록체인에 영원히 새겨진 이 헤드라인은 비트코인의 사명을 미묘하지만 강력하게 상기시켜 줍니다.

2009년 1월 8일 오후 2 시, Bitcoin 소프트웨어 버전 0.1.0이 여러 포럼(‘사이퍼펑크’ 메일링 리스트 포함)을 통해 공개 발표되었습니다. 사토시 나카모토는 공개 성명에서 다음과 같이 밝혔습니다. “비트코인 소프트웨어의 첫 번째 버전을 발표합니다. 비트코인은 이중 지출을 방지하기 위해 P2P 네트워크를 사용하는 새로운 전자 화폐 시스템입니다. 서버나 중앙 기관이 없는 완전한 탈중앙화 시스템입니다.”

비트코인 초기 버전은 사토시 나카모토가 직접 컴파일했으며, 소스 코드 또한 .rar 압축 파일로 SourceForge.net에 공개했습니다. 이로써 사토시 나카모토는 자연스럽게 비트코인 프로젝트의 창시자이자 주요 관리자로 자리매김하게 되었는데, 이는 오픈 소스 소프트웨어 프로젝트에서 흔히 볼 수 있는 역할입니다. 비트코인 개발 과정에서 나카모토는 다른 개발자들이 제출한 코드를 자신의 시스템으로 다운로드하여 검토 및 병합한 후 새로운 버전을 배포했습니다. 이 마지막 작업은 관리자와 기여자를 구분하는 중요한 요소였으며, 비트코인 프로젝트 전체 역사에 걸쳐 지속되었습니다. 이러한 작업 방식은 사토시 나카모토가 2010년 10월에 사망할 때까지 이어졌으며, 비트코인 소프트웨어 버전 0.1.0부터 0.3.19까지 영향을 미쳤습니다.

비트코인은 최초 출시 이후 수많은 업데이트를 거쳤습니다. 2009년 1월 말, 세 번째 개발자가 공식적으로 프로젝트에 참여하게 되었습니다. "sirius-m"이라는 사용자 이름을 사용하는 마르티 말미(Martti Malmi)는 소스포지(Sourceforge)에 "첫 번째 커밋" 생성하여 SVN 소스 코드 버전 관리 시스템을 온라인에 도입했습니다. 당시 인기 있는 버전 관리 시스템이었던 SVN은 Git과 유사했습니다. 말미는 GitHub의 "master" 브랜치와 비슷한 "Trunk" 브랜치에 코드를 커밋하여 비트코인 오픈 소스 개발 역사상 두 번째 공식 관리자가 되었습니다. 2009년 말미는 Bitcoin 의 첫 번째 리눅스 버전인 0.2.0 릴리스를 포함하여 여러 가지 다른 기여도 했습니다.

2010년 8월, 라즐로 하니에츠(네, 바로 2010년에 피자에 1만 BTC를 써서 유명해진 그 사람입니다)가 또 다른 관리자로 합류했습니다. 그는 그로부터 한 전 비트코인의 첫 번째 iOS 버전을 0.3.0 릴리스에 기여하기도 했습니다.

최고 관리자로서 사토시 나카모토의 역할 중 하나는 (말 그대로) 전체 네트워크를 관리하는 것이었습니다. 나카모토는 비트코인 블록 채굴에 그래픽 카드(GPU)를 처음 사용한 라즐로에게 네트워크 속도를 늦춰달라고 개인적으로 요청했습니다. 나카모토는 2009년 라즐로에게 "GPU 경쟁을 미룰수록 OpenCL 라이브러리가 더욱 성숙해지고 더 많은 사람들이 OpenCL 호환 그래픽 카드를 사용할 수 있게 될 것"이라고 말하며 비트코인의 CPU 채굴 시대를 연장하려 했습니다. 당시 비트코인의 미래는 완전히 불확실했고, 채굴은 비트코인 노드를 운영하는 주요 동기였습니다.

2010년 7월 17 일, Bitcoin 버전 0.3.2가 출시되었습니다. 사토시 나카모토는 보안 조치로 "체크포인트 시스템"을 추가했는데, 이는 특정 블록 높이에 대한 유효한 해시 값을 하드코딩하는 방식입니다. 그 목적은 채굴자들의 공격으로 블록체인을 재구성하고 심화시켜 "널리 인정받는 블록체인"(사토시 나카모토가 발표 당시 사용한 표현)을 뒤집는 것을 방지하기 위한 것이었습니다(이론적으로는 가능합니다). 나카모토는 또한 "몇 달 후에 다시 수정할 수 있는 가능성을 굳이 남겨둘 필요가 없습니다. 그런 방식은 인기가 없습니다."라고 덧붙였습니다.

체크포인트 시스템은 미래의 유지 관리자에게 새로운 책임을 부여했습니다. 즉, 향후 릴리스에서 어떤 블록 높이와 해당 블록의 최적 해시값을 하드코딩할지 결정해야 했습니다. 이는 Gavin Andresen이 Bitcoin 프로젝트를 이끌던 시기에 해당 했습니다.23 이 체크포인트 시스템은 결국 작업증명(Proof-of-Work)으로 인해 심층적인 리팩토링이 불가능해지면서 단계적으로 폐지되었습니다.

사토시 나카모토가 프로젝트의 유지 관리자이자 설립자로서 행사했던 막대한 권력은 2010년 10월에 발생한 수치 오버플로 버그 사건에서 여실히 드러났습니다. 당시 세 건의 거래로 존재하지도 않고 존재해서도 안 될 1840억 BTC가 생성되었습니다. 이 거래는 너무나 큰 금액을 이동시키려다 당시 거래 검증 코드가 "합산 과정에서 오버플로"를 일으켜 합의를 깨뜨렸습니다.

역자 주: 저자의 설명은 모호하고 부정확합니다. 실제로는 단일 거래로 이만큼의 BTC가 생성되었고, 세 개의 주소(그중 하나는 코인베이스 거래에 사용된 채굴자 주소)로 수신되었습니다. 당시 거래 검증 코드는 단순히 출력 금액의 합계에서 입력 금액의 합계를 빼는 방식으로 작동했습니다. 결과가 양수(입력 금액이 출력 금액보다 크다는 의미)이면 검증이 통과되었습니다. 그러나 출력 금액이 너무 커서 합계가 고정된 길이로 표현할 수 있는 숫자를 초과했기 때문에 음수가 발생했습니다. 따라서 입력 금액과 관계없이 항상 검증이 통과되었습니다. 기술적인 관점에서 이는 합의를 깨뜨리는 것(네트워크가 상호 배타적인 부분으로 분열되는 것)이 아니었습니다. 자세한 내용은 저자의 각주를 참조하십시오.

이는 비트코인 역사상 가장 유명한 버그로, "인플레이션 버그"라고도 불리며, 비트코인 프로젝트의 존립에 가장 위험한 취약점으로 여겨집니다. 많은 커뮤니티 구성원들이 해당 거래가 채굴된 지 불과 몇 시간 만에 이를 발견하고 사토시 나카모토에게 알렸습니다. 사토시 나카모토는 여러 기여자( 안드레센 포함)의 도움을 받아 비트코인 패치 버전 26 을 만들어 관련 검증 코드를 변경했습니다.

사토시 나카모토는 채굴자들에게 패치된 버전으로 마이그레이션하고 블록체인 27을 재동기화하도록 지시했고, 그 결과 전체 네트워크가 잘못된 거래가 확인되기 이전 상태로 되돌아갔습니다. 이는 하드 포크로, 이전 19시간 동안 채굴된 비트코인 블록을 되돌리는 조치였습니다. 이는 사토시 나카모토의 지도 하에 비트코인 프로젝트 내 중앙집중화가 극에 달했던 시점이자, 유지 관리자의 역할에 권력이 집중된 정점을 보여주는 사례로 여겨집니다.

"수치 오버플로 버그" 사건 이후, 사토시 나카모토는 버전 0.3.11에서 "경고 시스템" 28을 구현했습니다. 다소 논란이 되었던 이 시스템은 심각한 위험에 처한 노드에 경고를 표시하고 기본 기능을 비활성화했습니다. 이 경고 시스템은 나카모토만이 소유한 키로 서명된 메시지에 의해서만 작동될 수 있었습니다. 그는 "노드가 위험에 처했을 때 잠시 가동이 중단되는 것을 두려워하는 것이, 도둑이 이미 모든 투자를 훔쳐간 후에 두려워하는 것보다 낫다"고 주장했습니다. 몇 달 후, 나카모토는 최종 릴리스에서 이 경고 시스템을 비활성화했습니다.

SVN 기록에 따르면, 적어도 2010년 12월 19 일 개빈 앤드레슨이 수석 관리자가 되기 전까지는 사토시 나카모토만이 다른 기여자들의 코드를 병합하고 Bitcoin 의 공식 릴리스를 배포했습니다. 앤드레슨은 같은 해 2월 30 일부터 나카모토에게 직접 코드를 제공했고, 10월 11 일에는 SVN의 트렁크 브랜치에 첫 커밋을 했습니다. 몇 달 후, 나카모토는 비트코인 프로젝트의 마지막 버전인 0.3.19를 발표하고 역사 속으로 사라졌습니다.

이 글을 쓰는 시점에서 1,200명 이상이 비트코인 코어 프로젝트에 코드 기여를 했습니다.

개빈 앤드레슨 시대

사토시 나카모토가 프로젝트 기여를 중단하면서 개빈 앤드레슨이 커밋 권한을 가진 유일한 활동적인 기여자가 되었습니다. 앤드레슨의 참여가 늘어남에 따라 말미는 속도를 늦췄고, 앤드레슨이 사실상의 리드 관리자가 되었습니다. 사토시 나카모토는 앤드레슨에게 역할을 넘겨준다고 공개적으로 발표하지는 않았지만, 당시 활동적인 기여자였던 마이크 헌에게 보낸 이메일에서 "나는 할 일이 있다. 개빈과 다른 사람들이 이 일을 마무리할 것이다."라는 유명한 말을 남겼습니다.

"사토시 나카모토의 승인을 받아" 34 안드레센은 비트코인 프로젝트 관리자 책임자가 되어 관리자 팀을 확장하고 Sourceforge에서 GitHub로 마이그레이션을 시작했습니다 . 35 이 과정은 상당한 시간이 걸렸습니다. 2011년 7월 14일에야 안드레센의 공식 GitHub 계정에서 나온 브랜치가 비트코인 프로젝트에 병합되는 첫 번째 커밋이 이루어졌고, 36 이로써 마이그레이션 과정이 완료되었습니다.

사토시 나카모토 시대와는 달리, 이번 병합은 깃허브 플랫폼을 통해 이루어졌습니다. 이는 깃허브닷컴에 대한 신뢰를 보여주는 것으로, 코드 변조를 방지한다는 확신을 줍니다. 이전에는 사토시 나카모토가 자신의 컴퓨터에서 직접 수동으로 병합 작업을 수행했습니다. 병합 방식이나 깃허브 참여 여부와 관계없이, 오픈소스 프로젝트이기 때문에 서로 다른 버전 간의 차이점을 검토할 수 있다는 점은 주목할 만합니다. 이 시대에는 깃허브 병합 전후에 개발자들이 코드 병합 과정을 검토할 수 있습니다. 이러한 철저한 검토 과정은 궁극적으로 신뢰할 수 있는 공개 키 시스템의 개발로 이어졌습니다. 하지만 이번 병합은 적어도 향후 3년 동안 비트코인 프로젝트의 코드 병합 방식을 결정짓는 새로운 트렌드를 만들어냈습니다.

2011년 9월 13일, SourceForge 플랫폼의 비트코인 프로젝트가 공식적으로 종료되었고, GitHub가 새로운 협업 플랫폼으로 자리 잡았습니다. 기존 비트코인 프로젝트 페이지는 아카이브로 전환되었습니다. 당시 Malmi와 Lazloh는 주로 SourceForge에서 코드를 기여했고 GitHub 계정이 없었기 때문에, 이 공식적인 플랫폼 이전으로 인해 그들의 커밋 권한은 사실상 종료되었습니다. 더욱이 사토시 나카모토의 탈퇴로 인해 그들의 기여 빈도 또한 감소했습니다.

2011년 4월 27일, 안드레센의 지휘 하에 출시된 첫 번째 버전인 0.3.21이 공개되었습니다. 이 버전은 또한 PGP로 서명된 "Readme" 파일이 포함된 첫 번째 버전으로, 업데이트 내용, 배포 된 설치 파일 및 해시 값, 그리고 기여자들에게 감사를 표하는 내용이 담겨 있습니다. 지명된 16명의 기여자 중에는 루크 대시 주니어, 맷 코랄로, 피터 윌레, 제프 가르직과 같은 유명한 비트코인 코어 개발자들이 포함되어 있습니다.

이후 몇 년 동안, 아마도 관리자 역할을 통해 개빈이 얻었던 권한과 책임을 분산시키고, 사토시 나카모토, 말미, 라즐로의 퇴사로 생긴 공백을 메우기 위해 몇몇 새로운 관리자가 등장했습니다. 크리스 무어는 "dooglas"라는 닉네임을 사용하여 2011년 1월 21일 부터 2011년 3월 31일 까지 커밋 권한을 가졌으며, 그 이후로 꾸준히 프로젝트에 기여해 왔습니다.

몇 달 후인 2011년 6월 1일, 피터 윌레(Pieter Wuille)는 커밋 권한을 획득했습니다. 윌레는 2010년에 비트코인을 접하고 곧바로 프로젝트에 코드를 기여하기 시작했습니다. 커밋 권한을 얻은 후, 윌레는 수많은 작은 성능 개선, 사용자 경험의 누적적인 향상, 그리고 기타 여러 기여를 통해 점차 비트코인 코어의 주요 개발자로 자리매김하며 존경을 받았습니다. 오늘날까지 윌레는 비트코인 코어에서 세 번째로 많은 기여를 한 개발자이며, 그의 GitHub 사용자 이름은 " sipa "입니다.

시파

제프 가르직은 며칠 후(6월 6일) 비트코인 프로젝트의 관리자(maintenancer) 가 되었습니다. 가르직은 0.3.21 버전부터 비트코인 프로젝트에 코드를 기여해 왔으며, 이후 유명한 비트코인 개발자로 자리매김했습니다. 그는 리눅스 오픈소스 생태계에서 쌓은 경험을 비트코인 프로젝트에 접목시켰습니다 . 가르직은 비트코인 클라이언트의 안정성 향상에 크게 기여한 것으로 평가받고 있습니다.

수년 후인 2016년 여름, "수개월간의 활동 부재" 끝에 가르직의 커밋 권한이 박탈되었습니다(차우의 문서에 따르면). 비트코인 "블록 크기 전쟁"이 한창이던 시기에 가르직은 더 큰 블록 으로 업그레이드하는 쪽에 섰습니다. 블록 크기 전쟁은 비트코인 커뮤니티 구성원들 사이에서 많은 논쟁과 마찰을 불러일으켰고, 이것이 그의 개발 활동 감소의 한 원인이었을 가능성이 있습니다. 이후 전쟁이 발발한 지 1년 후, 가르직은 "Segwit2x"라는 실패한 포크 운동을 주도하기도 했습니다.

역자 주: 본문에서 반복적으로 등장하는 "커밋 횟수"라는 지표를 독자들이 더 잘 이해할 수 있도록 설명을 추가합니다.

Git이나 SVN 같은 버전 관리 시스템은 소프트웨어 코드베이스를 상태를 지속적으로 변경할 수 있는 저장소로 취급하며, 이것이 분산 개발을 지원하는 기반이 됩니다. 개발자는 코드를 끊임없이 추가하고 삭제하는데, 이는 곧 코드베이스의 상태를 지속적으로 변경한다는 의미입니다. 그리고 이러한 상태 변화는 "커밋"(해시 값)으로 표시됩니다.

앞서 언급했듯이 오픈 소스 개발 프로젝트(정의상 배포형 프로젝트)에서는 사람들이 원본 코드베이스를 "포크"하고 로컬에서 수정(새로운 커밋 생성)한 다음 원본 코드베이스에 "풀 리퀘스트(PR)"를 보내는 방식으로 업데이트를 진행합니다.

병렬 작업을 용이하게 하기 위해 코드베이스는 종종 여러 개의 "브랜치"로 구성됩니다. 또한, 이러한 풀 리퀘스트(PR)는 릴리스된 후 추가적인 수정을 거쳐 새로운 커밋으로 이어질 수 있습니다. 마지막으로, PR이 승인되면 관리자는 해당 PR(여러 커밋 포함)을 메인 브랜치에 병합합니다(이 병합 과정 또한 새로운 커밋을 생성합니다).

따라서 소위 "커밋 횟수"는 사용자가 코드베이스 상태를 수정하는 데 참여한 횟수를 나타내는 것이지, 풀 리퀘스트(PR) 횟수를 나타내는 것이 아닙니다. 저자가 많은 관리자의 커밋이 주로 다른 사람의 PR을 병합하는 것이라고 언급한 이유도 바로 이 때문입니다. 즉, 이 수치는 사용자가 처음 제안한 코드 변경 횟수가 아니라 개발에 얼마나 깊이 관여했는지를 반영하는 것입니다.

2011년 7월 5일, 마라 반 데르 라안(당시 "블라디미르"로 알려짐)은 커밋 권한을 획득하여 비트코인 코어의 여덟 번째 공식 관리자가 되었습니다. 반 데르 라안은 2010년 11월부터 비트코인토크 포럼에서 활동했으며, 2011년 5월부터 비트코인 프로젝트에 기여하기 시작했습니다. 초기에는 비트코인 QT 클라이언트의 그래픽 인터페이스 개발에 집중했으며, 컴퓨터 그래픽 분야에서 풍부한 학문적 경험을 가지고 있었습니다. <sup>48 </sup>

2011년 9월 19일, Nils Schneider(가명 "tcatm" 사용)는 Bitcoin 클라이언트의 백그라운드 성능 개선 및 최적화에 꾸준히 기여한 공로로 커밋 권한을 획득했습니다. 관리자로서 활동하는 동안 그는 클라이언트의 국제화에 상당한 기여를 했습니다. 다국어 지원 관련 업데이트를 여러 차례 추가했고 <sup>49</sup> , "Crypto++" 종속성 라이브러리 제거를 감독하여 불필요한 종속성을 줄였습니다<sup> 50 </sup>. Nils는 약 1년간 관리자로 활동했으며, 마지막 커밋은 2012년 3월 31일에 이루어졌습니다<sup> 15 </sup>

2012년 2월 11 일, 그레고리 맥스웰(가명 "gmaxwell")은 처음으로 코드를 병합했습니다. 그 이전에도 그는 1 동안 Bitcointalk 포럼에서 수많은 코드 항목을 제공하고 기술적인 논평에 적극적으로 참여했습니다. 이것이 그의 3년간의 유지 관리자 활동의 시작이었습니다. 이 기간 동안 맥스웰은 주로 클라이언트 측 P2P 네트워킹 계층과 합의 메커니즘 및 검증 관련 작업에 집중했습니다. 오늘날까지 그는 비트코인 커뮤니티 전반에서 높은 존경을 받고 있으며, 때때로 기술 토론과 논쟁에 참여하기도 합니다. 맥스웰은 2015년 12월 커밋 권한을 포기했습니다. 블록 크기 전쟁이 격화되면서 작은 블록을 지지하는 그의 입장이 온라인상에서 광범위한 괴롭힘으로 이어졌기 때문입니다.

비트코인 코어 유지보수 팀은 1년 동안 꾸준히 확장되었습니다. 2012년 9월 27일, 개빈은 비트코인의 미래에 대한 자신의 비전을 담은 다음 단계인 "비트코인 재단"을 발표했습니다. 재단은 개빈이 리눅스 운영체제를 성공적인 대규모 오픈 소스 프로젝트로 만들고자 했던 비전의 대표적인 사례인 리눅스 재단을 모델로 삼아 많은 관심과 지지를 받았지만, 동시에 상당한 비판도 받았습니다. 발표에서 개빈은 "비트코인 재단이 개방적이고 회원 중심적인 조직이 되기를 바라며, 여러분과 여러분의 조직이 단순히 회원으로 참여하는 것을 넘어 재단의 사명 달성을 돕기를 바랍니다."라고 밝혔습니다. 이후 몇 년 동안 재단은 많은 비트코인 코어 기여자와 유지보수 담당자들의 급여를 지원했습니다.

마라 반 데르 라안 시대

2014년 4월, 개빈 앤드레슨은 학술적인 역할로 전환하기로 결정하고 "수석 과학자"라는 직책을 맡게 되면서, 마라 반 데르 라안을 비트코인 코어 유지보수 책임자의 후임으로 지명했습니다. 비트코인 재단 웹사이트 블로그 게시물 에서 앤드레슨은 "마라 반 데르 라안은 몇 달 동안 비트코인 코어 개발에 전념하며 급여를 받아 왔습니다. 비트코인 코어 개발에 자금을 지원해 주신 모든 재단 회원 여러분께 다시 한번 감사드립니다. 그는 훌륭하게 업무를 수행해 왔으며, 저의 후임으로 '비트코인 코어 유지보수 책임자'를 맡기로 했습니다."라고 밝혔습니다.

그 후 벤 데르 라안은 "Laanwj"와 "wumpus"라는 필명을 사용하여 9년 동안 비트코인 코어 개발을 이끌었습니다. 그는 현재까지도 "비트코인" 코드베이스 가장 많은 코드(깃허브 통계에 따르면 7419회, 대부분 코드 병합)를 제출한 인물로 남아 있습니다. 차우의 기록에 따르면 벤 데르 라안은 "개인적인 사정"으로 2023년 2월에 관리자 역할에서 사임했습니다.

라안위

Ven der Laan이 관리자(maintainer)가 되었을 때, 그가 가져온 첫 번째 변경 사항(그리고 가장 중요한 변경 사항 중 하나)은 앞서 언급한 신뢰할 수 있는 공개 키 시스템의 구현이었으며, 이는 Matt Corallo가 2014년 12월 20일 에 커밋했습니다.58 이 시스템은 PGP 공개 키 지문이 포함된 파일(및 일련의 관련 도구) 59을 "bitcoin" 코드베이스의 메인 브랜치에 추가하여 관리자 역할의 불투명성을 해소하는 데 도움이 되었습니다. 한 도구는 관리자의 커밋이 PGP로 서명되었는지 확인했고, 다른 스크립트는 신뢰할 수 있는 PGP 공개 키 목록을 사용하여 커밋의 서명을 검증할 수 있었습니다.

이러한 공개 키는 코드베이스의 메인 브랜치에 포함되어 있으므로, 관리자만 유효한 서명을 통해 매니페스트에서 공개 키를 추가하거나 제거할 수 있으며, 이 작업은 Git 버전 관리 시스템에 기록됩니다. 동시에, PR(풀 리퀘스트)을 사용하여 관리자를 추가 및 제거할 수 있으며, 기여자는 PR 페이지에 댓글을 남길 수 있습니다.

2015년 11월 13일, "jonasschnelli"라는 사용자 이름을 사용하는 Jonas Schnelli가 커밋 권한을 획득했습니다. Van der Laan은 그에게 GUI 라이브러리 관리자 역할을 부여하고 비트코인 메일링 리스트를 통해 이를 발표했습니다. Schnelli는 2013년부터 비트코인 프로젝트에 코드를 기여해 왔으며, GitHub에서 비트코인 프로젝트 상위 10위 기여자 중 한 명이 되었습니다. 그가 관리자로 활동하는 동안 저장소에 코드를 병합하는 등 많은 커밋이 이루어진 것으로 보입니다. 그는 6년 동안 관리자 역할을 수행하다가 2021년 10월 21일 에 커밋 권한을 반납했습니다. 그는 트위터에 자신의 경험을 공유하고 비트코인 개발자 커뮤니티의 미래에 대한 강한 확신을 표현하는 글을 올렸습니다.

코랄로에 따르면, 신뢰할 수 있는 공개 키 시스템의 주요 역할은 개발자 코드를 병합할 때 "GitHub를 신뢰하지 않도록 하는 것"인데, 이는 안드레센 시대에 흔히 사용되던 방식입니다. 그 후, 관리자들은 로컬에서 코드를 병합한 다음 저장소를 업데이트했습니다.

요나스슈넬리

번역자 주: 형식적인 측면에서 GitHub 웹사이트에는 두 개의 프로젝트가 있습니다. (1) "Bitcoin" 프로젝트는 " Bitcoin Core 소프트웨어용 코드를 컴파일할 수 있는" "bitcoin" 라이브러리와 "BIPs" 라이브러리를 포함합니다. (2) "Bitcoin Core" 프로젝트는 위에서 언급한 "GUI" 라이브러리( Bitcoin QT 라고 하는 Bitcoin Core 의 그래픽 인터페이스 버전을 컴파일할 수 있음)와 기타 코드 라이브러리를 포함합니다.

2016년 4월 13일, 마르코 팔케(사용자 이름 "maflcko")가 커밋 권한을 획득했습니다. 반 데르 라안은 비트코인 메일링 리스트를 통해 "마르코 팔케를 비트코인 코어의 새로운 '테스팅 및 QA' 관리자로 임명합니다."라고 발표했습니다. 팔케는 2023년까지 비트코인 코어에 코드를 기여하다가 개인적인 사정으로 커밋 권한과 관리자 자격을 포기했습니다.

한 달도 채 지나지 않은 2016년 5월 6일, 개빈 안드레센의 커밋 권한이 박탈되었습니다. 이 결정은 안드레센이 크레이그 라이트(현재 사토시 나카모토의 사칭범으로 널리 알려짐)를 지지한 후, 반 데르 라안( 65) 에 의해 내려졌습니다. 당시 비트코인 커뮤니티의 많은 사람들은 이미 라이트의 주장에 의문을 품고 있었고, 안드레센의 입장은 라이트의 기만 행위에 대한 대응으로 빠르게 드러났습니다. 몇 달 전, 안드레센과 긴밀한 관계를 맺고 있다고 여겨지는 비트코인 프로젝트의 기여자 마이크 헌은 팟캐스트에서 안드레센이 다른 모든 관리자의 커밋 권한을 박탈하고 다른 많은 오픈 소스 프로젝트처럼 비트코인 프로젝트의 "자비로운 독재자"가 되어야 한다고 주장했습니다( 66) . 안드레센은 헌의 조언을 따르지 않았지만, 이 사건은 비트코인 커뮤니티 내의 긴장된 분위기를 부각시켰습니다. 블록 전쟁이 시작되면서 라이트 또한 이 싸움에 가담하게 되었습니다.

수년 후, 안드레센은 이 사건들에 대해 후회를 표하며 "크레이그 라이트를 너무 믿었던 것이 실수였다는 것을 이제 압니다. '누가 사토시 나카모토인지 아닌지 밝혀내는' 게임에 휘말린 것을 후회합니다. 다시는 그런 게임에 참여하지 않을 겁니다."라고 말했습니다.

수년 후, 또 다른 기여자가 커밋 권한을 얻었습니다. 2018년 12월 4일, 사무엘 돕슨(사용자 이름 "MeshCollider")이 반 데르 라안에 의해 지갑 모듈 관리자 로 지명되었습니다. 돕슨은 적어도 2017년 여름부터 비트코인 프로젝트에 코드를 기여해 왔으며, 비트코인 개발자로서 300건이 넘는 커밋을 기록했는데, 주로 비트코인 코어 지갑 모듈에 집중했습니다. 돕슨은 박사 학위 과정을 밟기 위해 2023년 2월에 커밋 권한과 관리자 역할을 포기했습니다 .

2019년 6월 7일, 마이클 포드는 커밋 권한을 획득했습니다. 그는 오늘날까지 활발히 활동 중인 최신 세대 관리자 중 한 명이었습니다. 포드의 사용자 이름은 "Fanquake"이며, 아마도 내부 합의를 통해 커밋 권한을 얻은 최초의 기여자였을 것입니다(암스테르담에서 열린 비트코인 코어 개발자 컨퍼런스에서 지명됨). 이 시기 이후, 기여자 합의에 기반한 커밋이 하나의 추세가 되었고, 이는 비트코인 프로젝트 개발의 탈중앙화 경향을 보여주는 것이었습니다. 회의는 다양한 장소와 환경 에서, 심지어 IRC(인터넷 채팅방)를 통해서도 진행되었습니다.

포드는 2012년 2월부터 비트코인 프로젝트에 코드를 기여해 왔으며, 프로젝트 역사상 가장 오래 근무한 관리자 중 한 명입니다. 깃허브에 따르면 포드는 현재까지 4,920개의 커밋을 기록하며, 커밋 횟수 기준으로 두 번째로 많은 기록을 보유하고 있습니다. 이 커밋들 중 상당수는 다른 기여자들의 업데이트를 병합하고 유지 관리하는 내용입니다.

팬퀘이크

기여자 합의 시대

2021년 1월 21일, Van der Laan은 Satoshi Nakamoto와 Andresen이 확립한 전통을 깨고 Bitcoin Core 개발을 위한 유지 관리자 리더를 임명하는 블로그 게시물 (73) 을 게시했습니다. 이 게시물에서 Van der Laan은 Bitcoin이 너무 큰 프로젝트가 되어 Satoshi Nakamoto와 Andresen이 확립한 모델이 더 이상 실행 가능하지 않으며 Bitcoin Core 개발을 분산화할 때가 되었다고 설명하면서 유지 관리자 리더의 책임을 점진적으로 다른 사람들에게 위임할 것이라고 밝혔습니다.

반 데르 라안은 다른 사람들이 져야 할 일련의 책임들을 제시하고 비트코인 프로젝트의 소프트웨어 배포 프로세스를 검열에 더욱 강하게 만드는 로드맵을 제공했습니다. 예를 들어, Bitcoincore.org 웹사이트의 소유권을 자신이 직접 관리하는 대신 다른 단체에 이전하고 미러 사이트 생성을 장려하는 것, 토렌트(또는 IPFS)를 통해 설치 파일의 새 버전을 배포하는 것, Github.com에 의문을 제기하고 대안적인 코드 기여 플랫폼을 모색할 것을 촉구하는 것, 관리자들이 사용할 임계값 서명 체계를 도입하여 한 사람이 최종 PGP 서명자가 되는 대신 암호화 합의를 통해 배포 버전에 서명할 수 있도록 하는 것 등이 있습니다.

이 기사는 사실상 반 데르 라안이 수석 관리자로서의 역할을 마감하는 시점을 알리는 동시에, 버전 0.20.0 출시 후 불과 몇 달, 그리고 버전 0.21.0 출시를 며칠 앞두고 비트코인 프로젝트의 성숙도를 상징하는 중요한 이정표가 됩니다.

한나디 스테파노프(사용자 이름 "hebasto")는 2021년 3월 19일에 커밋 권한을 획득하여 비트코인 클라이언트 GUI 라이브러리의 관리자가 되었습니다. 스테파노프는 2018년 8월부터 비트코인 코어에 코드를 기여해 왔으며, 관리자가 되기 전까지 1,000건이 넘는 커밋을 기록하여 현재까지 총 2,070건의 커밋으로 GitHub에서 비트코인 프로젝트 커밋 순위 5위를 차지하고 있습니다. 이 글을 쓰는 시점에도 스테파노프는 여전히 관리자입니다.

헵스토

Ava Chow는 2020년 12월 12일에 커밋 권한 (77) 을 획득하여 지갑 모듈의 관리자가 되었습니다. 그녀는 2016년 1월부터 코드 기여 (78 )를 해왔습니다. 그녀의 사용자 이름은 "achow101"이며, 비트코인 개발 커뮤니티에서 잘 알려진 기여자입니다. 그녀의 기여는 GitHub 커밋을 넘어 비트코인 코어 관리자에 대한 광범위한 역사적 연구를 포함합니다. Chow는 또한 Twitch에서 비트코인 코어 코드 리뷰 (79) 를 생중계한 것으로도 유명합니다. 이 스트림은 상당한 시청자를 끌어모았고 비트코인 기술 교육을 촉진했습니다. Chow는 GitHub에서 2198개의 커밋으로 4위를 차지하고 있으며, 이 글을 쓰는 시점에도 여전히 커밋 권한을 보유하고 있습니다.

아초101

글로리아 자오는 2022년 8월 7일에 커밋 권한을 획득했으며, 기여자 합의( 번호 80) 를 통해 지명되었습니다. 그녀의 역할은 거래 풀 전략 관리자 (번호 81 )입니다. 자오는 2020년 3월부터 코드 기여를 시작했으며, 커밋 권한을 얻기 전까지 최소 200회 이상 커밋했습니다. 현재 777회 커밋으로 순위 9위를 기록하고 있습니다. 자오는 현재까지도 관리자로 활동하고 있습니다.

글로조우

Russ Yanofsky는 2023년 6월 10일 커밋 권한을 획득했습니다 (83) . 기여자 합의 (84) 에 의해 지명되었으며 그의 역할은 인터페이스 관리자입니다. Russ는 모듈화 및 멀티스레딩을 전문으로 하며, 이로 인해 관리자 역할을 맡게 되었습니다. 그는 2016년 10월부터 코드를 기여해 왔으며 (85) , 현재까지 총 970개의 커밋을 기록하여 7위를 차지하고 있습니다. Yanofsky의 사용자 이름은 "rynofsky"이며, 그는 여전히 관리자입니다.

리노프스키

참고 자료

1. https://www.metzdowd.com/pipermail/cryptography/2008-November/014863.html

2. https://Nakamoto.nakamotoinstitute.org/emails/cryptography/1/

3. https://web.archive.org/web/20090106201347/http://sourceforge.net/projects/bitcoin/

4. https://www.coindesk.com/markets/2020/11/26/previously-unpublished-emails-of-Nakamoto-nakamoto-present-a-new-puzzle

5. https://www.ofnumbers.com/2018/10/01/interview-with-ray-dillinger/

6. https://bitcoin.stackexchange.com/questions/99674/how-do-devs-decide-who-should-have-commit-access-what-is-the-process/99676#comment112930_99676

7. https://web.archive.org/web/20230406134017/http://gavinandresen.ninja/Nakamoto

8. https://www.reddit.com/r/Bitcoin/comments/3x7mrr/comment/cy29vkx/

9. https://github.com/bitcoin/bitcoin/pull/31908

10. https://bitcointalk.org/index.php?topic=1774750.0

11. https://github.com/bitcoin/bitcoin/blob/master/contrib/verify-commits/README.md

12. https://github.com/bitcoin/bitcoin/commits/master/contrib/verify-commits/trusted-keys

13. https://mempool.space/block/0

14. https://Nakamoto.nakamotoinstitute.org/emails/cryptography/16/

15. https://sourceforge.net/p/bitcoin/code/1/tree/

16. https://bitcointalk.org/index.php?topic=16.msg73#msg73

17. https://en.bitcoin.it/wiki/Laszlo_Hanyecz

18. https://bitcointalk.org/index.php?topic=238.msg2004#msg2004

19. https://www.bitcoin.com/Nakamoto-archive/emails/laszlo-hanec/1/

20. https://bitcointalk.org/index.php?topic=437.msg3807#msg3807

스물한. https://github.com/bitcoin/bitcoin/commit/4110f33cded01bde5f01a6312248fa6fdd14cc76#diff-118fcbaaba162ba17933c7893247df3aR1344

스물두. https://github.com/bitcoin/bitcoin/commit/bd7d9140f915d68e0abfdcd7ebdbb681c87d18c7

스물셋. https://en.bitcoin.it/wiki/Value_overflow_incident

출처
면책조항: 상기 내용은 작자의 개인적인 의견입니다. 따라서 이는 Followin의 입장과 무관하며 Followin과 관련된 어떠한 투자 제안도 구성하지 않습니다.
라이크
즐겨찾기에 추가
코멘트