비트코인 개발 철학: 오픈 소스 개발

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

저자: 칼레 로젠바움 & 린네아 로젠바움

출처: https://bitcoindevphilosophy.com/#opensource

이전 기사는 여기에서 확인하세요.

오픈소스 배너

비트코인은 오픈 소스 소프트웨어를 기반으로 구축되었습니다. 이 장에서는 이러한 사실이 갖는 의미, 오픈 소스 소프트웨어 유지 관리 방법, 그리고 비트코인 ​​생태계에서 오픈 소스 소프트웨어가 라이선스 없이 개발을 가능하게 하는 방식에 대해 분석합니다. "암호화 선택" 섹션에서는 암호화 시스템에서 업스트림 코드베이스를 선택하고 사용하는 방법에 대해 간략하게 설명합니다. 또한 이 장에는 비트코인 ​​개발에서의 코드 검토 프로세스와 비트코인 ​​개발자들이 자금을 조달하는 방법에 대한 하위 섹션이 포함되어 있습니다. 마지막 섹션에서는 외부인에게는 다소 생소하게 보일 수 있지만, 오히려 이러한 특이해 보이는 현상이야말로 비트코인 ​​생태계의 건전성을 보여주는 신호인 비트코인의 오픈 소스 문화에 대해 논의합니다.

대부분의 비트코인 ​​소프트웨어, 특히 Bitcoin Core 는 오픈 소스입니다. 즉, 소프트웨어의 소스 코드가 공개되어 누구나 검토, 패치, 수정 및 재배포할 수 있습니다. https://opensource.org/osd 에서 정의하는 "오픈 소스"는 다음과 같은 핵심 사항을 포함하지만 이에 국한되지는 않습니다.

무료 배포

본 라이선스는 어떠한 당사자도 다양한 출처의 프로그램을 포함하는 완전한 소프트웨어 배포판의 일부로 소프트웨어를 판매하거나 무료로 제공하는 것을 제한하지 않습니다. 또한 본 라이선스는 그러한 판매에 대해 로열티 또는 기타 수수료를 부과하도록 요구하지 않습니다.

소스 코드

프로그램에는 소스 코드가 포함되어야 하며, 소스 코드와 컴파일된 버전 모두를 배포할 수 있어야 합니다. 소스 코드가 포함되지 않은 특정 버전의 제품은 사용자가 합리적인 비용으로 소스 코드를 얻을 수 있도록 공개적으로 제공되는 형태가 있어야 하며, 이상적으로는 무료 인터넷 다운로드 방식이 권장됩니다. 소스 코드는 프로그래머가 프로그램을 수정할 때 우선적으로 사용되는 형태여야 합니다. 소스 코드를 의도적으로 숨기는 것은 허용되지 않습니다. 전처리기나 번역기의 출력물과 같은 중간 형태를 사용하는 것도 허용되지 않습니다.

파생 저작물

라이선스는 수정 및 파생 저작물을 허용해야 하며, 원본 소프트웨어 라이선스와 동일한 조건으로 배포할 수 있도록 허용해야 합니다.

— "오픈 소스"의 정의, 오픈 소스 운동 웹사이트

Bitcoin Core 이러한 정의를 따르며 MIT 라이선스 에 따라 배포됩니다.

 The MIT License (MIT)Copyright (c) 2009-2022 The Bitcoin Core developersCopyright (c) 2009-2022 Bitcoin DevelopersPermission is hereby granted, free of charge, to any person obtaining a copyof this software and associated documentation files (the "Software"), to dealin the Software without restriction, including without limitation the rightsto use, copy, modify, merge, publish, distribute, sublicense, and/or sellcopies of the Software, and to permit persons to whom the Software isfurnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included inall copies or substantial portions of the Software.
 MIT 许可(MIT)版权(c)2009-2022 Bitcoin Core 开发者版权(c)2009-2022 Bitcoin 开发者在此将许可免费地授予任何获得了本软件和相关说明书文件(即“本软件”)的人,可以不受限制地处理本软件,包括不受限制地使用、复制、修改、合并、出版、分发、转许可、以及/或者销售本软件之拷贝的权利;并且得到本软件服务的人也得到同样的许可;上述许可仅受制于下列条件:上述版权声明和本许可声明必须包含在本软件的所有拷贝和主要部分中。

(역자 주: 저작권 표시에서 "Bitcoin Core"와 "Bitcoin"은 모두 소프트웨어를 지칭합니다.)

이 책 2.1장 ( 중국어 번역본 )에서 언급했듯이, 사용자가 비트코인 ​​소프트웨어가 "주장대로 작동하는지" 검증할 수 있어야 합니다. 이를 위해서는 사용자가 검증하고자 하는 소프트웨어의 소스 코드에 제한 없이 접근할 수 있어야 합니다.

뒷부분에서는 비트코인에 사용되는 오픈소스 소프트웨어의 흥미로운 측면들을 자세히 살펴보겠습니다.

7.1 소프트웨어 유지보수

Bitcoin Core 의 소스 코드는 GitHub 에 호스팅된 Git 저장소에서 관리됩니다. 누구든 허가 없이 이 저장소를 복제할 수 있으며, 복제한 후에는 자신의 기기에서 코드를 검사, 컴파일, 수정할 수 있습니다. 즉, 전 세계에 수천 개의 동일한 저장소 사본이 존재할 수 있다는 뜻입니다. 이 사본들은 모두 같은 저장소의 복제본인데, 그렇다면 이 Bitcoin Core 저장소가 특별한 이유는 무엇일까요? 기술적으로는 특별한 것이 없지만, 사회적으로는 비트코인 ​​개발의 중심지로 자리매김했습니다.

(역자 주: "Git 저장소"란 Git이라는 분산 협업 소프트웨어를 사용하여 관리되는 코드베이스를 의미합니다. 분산 협업이란 각 사용자가 코드베이스를 복사하고 독립적으로 수정하며, 이후 코드 병합을 시도하는 과정을 말합니다. 이 과정에서 Git은 코드 변경 사항을 분석하고 충돌을 줄이는 데 도움을 줄 수 있습니다.)

비트코인 전문가이자 보안 전문가인 제임슨 로프는 자신의 블로그 게시물 " 비트코인 코어를 누가 통제하는가? "에서 이 점을 매우 잘 설명합니다.

비트코인 코어는 비트코인 ​​프로토콜 개발의 중심이지, 명령이나 제어 지점이 아닙니다. 어떤 이유로든 비트코인 ​​코어가 사라지더라도 새로운 중심이 나타날 것이며, 코드베이스를 호스팅하는 기술 커뮤니티 플랫폼(현재는 GitHub)은 편의성에만 영향을 미칠 뿐, 정의/프로젝트의 완성도에는 영향을 미치지 않습니다. 실제로 비트코인 ​​개발의 중심은 플랫폼과 명칭까지 여러 차례 바뀌어 왔습니다!

— 제임슨 롭, "비트코인 코어는 누가 통제하는가?"(2018)

그는 이어서 Bitcoin Core 소프트웨어가 어떻게 유지 관리되고 악성 코드 변경에 어떻게 저항하는지 설명했습니다. 전체 기사의 주요 내용은 다음과 같이 요약할 수 있습니다.

비트코인을 통제하는 사람은 아무도 없습니다.

비트코인 개발의 방향을 특정 한 사람이 좌우하는 것은 아닙니다.

— 제임슨 롭, "비트코인 코어는 누가 통제하는가?"(2018)

Bitcoin Core 개발자 에릭 롬브로조는 "비트코인 코어 병합 과정"이라는 제목의 미디엄(Medium) 게시글 에서 이 개발 과정을 더욱 자세히 설명합니다.

누구나 이 기본 코드베이스를 복사한 후 자신의 코드에 맞게 수정할 수 있습니다. 원한다면 기본 코드베이스에서 컴파일된 소프트웨어를 실행하는 대신 자신의 코드베이스를 사용하여 클라이언트를 컴파일할 수도 있습니다. 또한 다른 사람들이 실행할 수 있도록 미리 컴파일된 바이너리를 배포할 수도 있습니다.

누군가 자신의 로컬 코드베이스에 대한 변경 사항을 비트코인 ​​코어에 병합하려면 "풀 리퀘스트(PR)"를 제출하면 됩니다. 제출된 풀 리퀘스트는 비트코인 ​​코어 코드베이스에 대한 병합 권한 유무에 관계없이 누구나 검토하고 댓글을 달 수 있습니다.

— 에릭 롬브로조, *비트코인 코어 병합 과정*(2017)

PR이 "유지보수 담당자"에 의해 코드베이스에 병합되기 전에 검토되는 데 오랜 시간이 걸릴 수 있다는 점에 유의해야 합니다. 이는 일반적으로 PR에 대한 검토가 부족하기 때문이며(자세한 내용은 7.5장 참조), 검토가 부족한 경우는 대개 검토자가 부족하기 때문입니다.

롬브로조는 합의 규칙 변경과 관련된 과정에 대해서도 논의하지만, 이는 이 장의 범위를 다소 벗어납니다. 이 주제(비트코인 프로토콜 업그레이드)에 대한 자세한 내용은 이 책의 5장 ( 중국어 번역본 )에서 확인할 수 있습니다.

7.2 라이선스 없이 개발 가능

누구나 허가 없이 Bitcoin Core 용 코드를 작성할 수 있다는 것은 이미 알려진 사실이지만, 그렇다고 해서 그 코드를 원래의 Git 코드베이스에 병합할 수 있다는 의미는 아닙니다. 이는 그래픽 사용자 인터페이스의 색 구성표부터 P2P 메시지 형식, 심지어 유효한 블록체인을 정의하는 규칙 집합인 합의 규칙에 이르기까지 모든 수정 사항에 적용됩니다.

어쩌면 이보다 더 중요한 것은, 사용자들이 어떠한 승인 절차 없이 비트코인 ​​프로토콜을 기반으로 하는 시스템을 자유롭게 개발할 수 있다는 점입니다. 이미 비트코인을 기반으로 구축된 수많은 성공적인 소프트웨어 프로젝트들을 볼 수 있습니다. 예를 들면 다음과 같습니다.

라이트닝 네트워크

라이트닝은 매우 소액의 빠른 결제를 가능하게 하는 결제 네트워크입니다. 비트코인 ​​블록체인 내에서 확인되는 거래 건수가 적기만 하면 됩니다. 현재 코어 라이트닝 , LND , 에클레어 , 라이트닝 개발 키트 등 여러 상호 운용 가능한 소프트웨어 구현체가 사용 가능합니다.

코인조인

여러 참여자가 각자의 결제를 하나의 거래로 통합함으로써 "주소 클러스터링"을 더욱 어렵게 만듭니다(본서 3.4장 에서 설명 ). 이미 여러 소프트웨어 구현체가 존재합니다.

사이드 체인

이러한 시스템을 통해 비트코인은 비트코인 ​​블록체인 내에 잠긴 후 다른 블록체인에서 잠금 해제될 수 있습니다. 즉, 비트코인은 다른 블록체인, 또는 "사이드체인"으로 이동하여 해당 블록체인의 기능을 활용할 수 있습니다. 온체인)의 엘리먼츠(Elements)가 그 예입니다.

타임스탬프 열기

이 기능을 사용하면 비트코인 ​​블록체인 내에서 문서에 비공개로 타임스탬프를 찍을 수 있습니다. 이 타임스탬프를 사용하여 해당 문서가 특정 시점 이전에 존재했음을 증명할 수 있습니다.

허가 없는 개발이 없다면 이러한 프로젝트 중 상당수는 불가능할 것입니다. 이 책 1.3장 ( 중국어 번역본 )에서 언급했듯이, 개발자들이 비트코인 ​​프로토콜 개발을 위해 허가를 받아야 한다면 중앙 개발자 위원회의 허가를 받은 프로젝트만 개발될 것입니다.

위에 나열된 프로젝트들은 일반적으로 오픈 소스 소프트웨어라고 밝히고 있으며, 이는 사람들이 별도의 허가 없이 코드 기여, 재사용 및 프로젝트 검토를 할 수 있도록 합니다. 오픈 소스 개발은 비트코인 ​​소프트웨어 라이선스의 표준으로 자리 잡았습니다.

7.3 익명 개발

비트코인 개발에는 허가가 필요하지 않으므로 흥미롭고 중요한 이점이 있습니다. 즉, 신원을 밝히지 않고도 Bitcoin Core 및 기타 오픈 소스 프로젝트의 코드를 작성하고 배포할 수 있습니다.

많은 개발자들이 이렇게 합니다. 가명을 사용하고 가명과 실제 신원을 분리하려고 노력하는 것이죠. 그렇게 하는 이유는 다양합니다. "ZmnSCPxj"라는 익명의 개발자는 Bitcoin CoreCore Lightning (라이트닝 네트워크 클라이언트 구현체)을 비롯한 여러 프로젝트에 코드를 기여하고 있습니다. 그는 자신의 개인 웹페이지 에서 다음과 같이 밝히고 있습니다.

저는 ZmnSCPxj라는, 무작위로 생성된 인터넷 페르소나입니다. 저를 지칭할 때 사용하는 대명사는 "그"입니다.

사람들은 본능적으로 제 진짜 정체를 알고 싶어 한다는 걸 알고 있습니다. 하지만 제 생각에는 제 정체는 그다지 중요하지 않고, 사람들이 제가 이 과정을 헤쳐나가기 위해 하는 일에 집중해 주셨으면 좋겠습니다.

기부를 망설이시거나 제 생활비나 수입에 대해 의문이 드신다면, 제가 비트코인과 라이트닝 네트워크 관련 글이나 활동을 통해 여러분께 제공하는 가치를 기준으로 기부 여부를 결정해 주시면 감사하겠습니다.

— ZmnSCPxj, ​​그의 GitHub 홈페이지

ZmnSCPxj는 사람들이 자신의 사생활보다는 작품에 집중하기를 바랐기 때문에 가명을 사용했습니다. 흥미롭게도 코인데스크의 한 게시물에 따르면 그 가명은 사실 다른 이유로 만들어진 것이라고 합니다.

제가 이 가명을 사용하게 된 초기 이유는 제가 큰 재앙을 초래할 수도 있다는 우려 때문이었습니다. 따라서 "ZmnSCPxj"는 그런 상황이 발생할 경우 버릴 수 있는 일회용 암호화 방식으로 사용하려고 했습니다. 하지만 대체로 긍정적인 평가를 받은 것 같아 계속 사용하고 있습니다.

— "많은 비트코인 ​​개발자들이 가명을 사용하고 있는데, 이는 타당한 선택이다" (2021)

익명성을 사용하면 어리석은 말을 하거나 개인적인 평판을 위태롭게 할 수 있는 큰 실수를 저지를까 걱정하지 않고 더 자유롭게 말할 수 있습니다. 그의 가명은 꽤 유명해졌고, 심지어 2019년에는 개발자 지원금까지 받았는데 , 이는 비트코인의 허가 필요 없는 특성을 입증하는 사례입니다.

하지만 비트코인 ​​세계에서 가장 유명한 암호학자는 단연 "사토시 나카모토"라고 할 수 있습니다. 그가 왜 가명을 사용했는지는 알 수 없지만, 돌이켜보면 현명한 선택이었을지도 모릅니다.

  • 사토시 나카모토 추측이 점점 더 많아짐에 따라, 그의 재정적 및 개인적 안전을 위해서는 신원을 비밀로 유지하는 것이 필수적입니다.
  • 그의 신원이 알려지지 않았기 때문에 누구도 기소하다 수 없으며, 이로 인해 많은 정부 당국이 권한을 행사할 곳을 찾지 못하고 있습니다.
  • 숭배할 권위자가 없기 때문에 비트코인은 더욱 능력주의적으로 변모하고 랜섬웨어에 대한 저항력이 강해질 것입니다.

이러한 원칙은 사토시 나카모토 뿐만 아니라 비트코인을 개발하거나 대량 의 비트코인을 보유한 모든 사람에게 정도의 차이는 있지만 적용된다는 점에 유의하시기 바랍니다.

7.4 선호하는 암호화 방식

오픈소스 소프트웨어 개발자들은 다른 개발자들이 만든 오픈소스 코드 라이브러리를 흔히 사용합니다. 이는 건전한 생태계에서 자연스럽고도 놀라운 부분입니다. 하지만 비트코인 ​​소프트웨어는 실제 돈을 다루기 때문에 개발자들은 어떤 타사 라이브러리를 사용할지 선택할 때 특히 신중해야 합니다.

암호학에 대한 철학적 논의 에서 그레고리 맥스웰은 "암호학"이라는 용어의 원래 의미가 너무 협소하다고 주장하며 그 의미를 재정의하고자 했습니다. 그는 근본적으로 정보는 자유롭게 흘러야 한다고 설명한 후, 이를 바탕으로 자신만의 정의를 제시했습니다.

암호학은 정보의 본질적인 특성을 극복하기 위해 우리가 사용하는 예술이자 과학입니다. 우리는 정보가 우리의 정치적, 도덕적 욕구에 복종하고, 인간적인 목적에 반하는 모든 기회와 시도에 저항하며, 인간적인 목적을 향해 나아가도록 인도되기를 바랍니다.

— 그레고리 맥스웰, 비트코인 ​​선호 암호화 기술(2015)

그는 " 선택 암호학"이라는 새로운 용어를 사용하여 암호화 도구를 선택하는 기술을 설명하고, 이것이 암호학에서 왜 중요한 부분인지 설명했습니다. 이 기술은 암호화 라이브러리, 도구 및 관행을 선택하는 방법에 관한 것이며, 그의 표현을 빌리자면 "암호 시스템의 선택"입니다.

그는 구체적인 사례를 통해 선택적 암호화가 얼마나 쉽게 재앙적인 결과를 초래할 수 있는지 보여주고, 참가자들이 생각해 볼 만한 질문 목록을 제시했습니다. 아래는 그 목록에서 발췌한 내용입니다.

  1. 이 소프트웨어는 원래 당신이 의도한 목적을 위해 개발된 것입니까?
  2. 암호학이 진지하게 다뤄지고 있는 걸까요?
  3. 심사 과정… 심사 과정이라는 게 정말 존재하긴 하는 걸까요?
  4. 소프트웨어 개발자의 경험은 어떨까요?
  5. 이 소프트웨어에는 사용자 설명서가 포함되어 있습니까?
  6. 이 소프트웨어를 다른 플랫폼으로 이식할 수 있나요?
  7. 이 소프트웨어는 테스트를 거쳤습니까?
  8. 이 소프트웨어는 모범 사례를 따르고 있습니까?

이것이 성공을 보장하는 확실한 지침서는 아니지만, 최적의 암호화를 구현할 때 이러한 질문들을 참고하는 것은 매우 유용할 수 있습니다.

맥스웰이 언급한 문제들 때문에 비트코인 ​​코어는 타사 코드베이스에 대한 의존도를 최소화하기 위해 상당한 노력을 기울였습니다. 물론 모든 외부 의존성을 제거할 수는 없습니다. 그렇지 않으면 폰트 렌더링부터 운영체제 호출 구현까지 모든 것을 직접 다시 작성해야 할 테니까요.

7.5 감사

이 섹션의 제목이 "코드 검토"가 아닌 "검토"인 이유는 비트코인의 보안이 소스 코드 검토뿐 아니라 여러 단계의 검토에 크게 의존하기 때문입니다. 또한, 아이디어마다 요구되는 검토 수준이 다릅니다. 색상 구성 변경이나 오타 수정과 같은 사소한 검토에 비해 합의 규칙 변경은 더 많은 단계와 심층적인 검토를 필요로 합니다.

최종 채택에 이르기까지 아이디어는 일반적으로 여러 단계의 논의와 검토를 거칩니다. 이러한 단계 중 일부는 다음과 같습니다.

  1. 이 아이디어는 Bitcoin-dev 메일링 리스트에 게시되었습니다.
  2. 이러한 아이디어는 비트코인 ​​최적화 제안(BIP)의 개발로 이어졌습니다.
  3. 이 BIP는 Bitcoin Core
  4. 배포 메커니즘에 대해 논의했습니다.
  5. 몇 가지 매력적인 배포 메커니즘이 Bitcoin Core PR로 구현되었습니다.
  6. PR이 코드베이스의 마스터 브랜치에 병합되었습니다.
  7. 사용자는 이 소프트웨어를 실행할지 여부를 선택할 수 있습니다.

각 단계에서 소스 코드, BIP(비즈니스 프로세스 개선 계획) 또는 대략적인 아이디어 등 사용 가능한 정보는 다양한 관점과 배경을 가진 사람들에 의해 검토됩니다. 이러한 단계는 일반적으로 엄격하게 순차적으로 진행되지 않으며, 여러 단계가 동시에 진행되거나 때로는 앞뒤로 반복될 수도 있습니다. 각 단계에 있는 다양한 사람들이 서로 다른 관점에서 피드백을 제공할 수 있습니다.

존 아탁은 비트코인 ​​코어에서 가장 활발하게 활동하는 코드 리뷰어 중 한 명입니다. 그는 Bitcoin Core PR을 리뷰하는 방법을 설명하는 블로그 게시물을 작성했습니다. 그는 훌륭한 코드 리뷰어는 최대한의 부가가치를 제공하는 데 집중해야 한다고 강조합니다.

신입으로서 여러분의 목표는 가치를 더하고, 친절하고 겸손한 태도를 보이며, 가능한 한 빨리 배우는 것입니다.

좋은 접근 방식은 자기중심적인 태도를 피하고 "어떻게 하면 모두에게 더 나은 서비스를 제공할 수 있을까?"라고 자문하는 것입니다.

— 존 아탁, " Bitcoin Core PR 검토 방법"(2020)

그는 리뷰가 Bitcoin Core 의 진정한 한계 요인이라고 지적했습니다. 대량 훌륭한 아이디어들이 리뷰 없이는 발전하지 못하고 정체되어 있다는 것입니다. 리뷰는 비트코인에 도움이 될 뿐만 아니라 소프트웨어에 대한 지식을 쌓으면서 가치를 더하는 좋은 방법이기도 합니다. 아탁은 자신의 PR을 제출하기 전에 5~15개의 PR을 리뷰하는 것을 원칙으로 삼았습니다. 다시 말하지만, 여러분의 목표는 자신의 코드를 병합하는 것이 아니라 커뮤니티에 어떻게 기여할 수 있을지에 집중하는 것입니다. 그는 또한 적절한 수준에서 리뷰를 수행하는 것이 중요하다고 강조했습니다. 오타를 확인하는 단계인지, 아니면 개발자가 개념에 대한 더 깊은 이해가 필요한 단계인지 판단해야 한다는 것입니다.

검토 과정을 시작할 때 유용한 출발점은 "지금 가장 필요한 것은 무엇인가?"라는 질문입니다. 이 질문에 답하려면 경험과 상황에 대한 이해가 필요하지만, 가장 짧은 시간 안에 가장 큰 가치를 더할 수 있는 방법을 파악하는 데 매우 유용한 질문입니다.

— 존 아탁, " Bitcoin Core PR 검토 방법"(2020)

이 글의 후반부에는 실제 감사 수행 방법에 대한 유용한 입문 기술 가이드가 많이 포함되어 있으며, 추가적인 참고를 위한 중요한 문서 링크도 제공합니다.

Bitcoin Core 개발자이자 코드 리뷰어인 글로리아 자오는 코드 리뷰를 진행할 때 스스로에게 자주 묻는 질문들을 모아 글을 쓴 적이 있습니다. 그녀는 또한 좋은 코드 리뷰의 기준이라고 생각하는 것들에 대해서도 언급했습니다.

제 생각에 좋은 검토 과정이란 PR에 대해 여러 가지 구체적인 질문을 스스로에게 던지고, 그 모든 질문에 대한 답을 찾는 것을 포함합니다.

...

당연히 개념적인 질문부터 시작해서 방법론적인 질문, 그리고 구현 관련 질문 순으로 진행하는 편입니다. 개인적으로는 PR 초안에 C++ 구문 관련 주석을 남기는 것은 무의미하다고 생각합니다. 게다가 작성자에게 20개가 넘는 코드 구성 관련 제안을 남겨놓고, 그 내용을 모두 읽은 후에 "이 PR의 목적이 뭐죠?"라고 묻는 것은 예의에 어긋난다고 생각합니다.

— 글로리아 자오, "일반적인 PR 검토 문제", GitHub (2022)

그녀의 생각은 좋은 리뷰는 해당 시점에 PR에 가장 필요한 것이 무엇인지에 초점을 맞춰야 한다는 것이며, 이는 존 아탁의 조언과 일맥상통합니다. 또한 리뷰 과정의 각 단계에서 스스로에게 물어볼 수 있는 질문 목록을 제공하지만, 이 목록이 모든 것을 포괄하거나 지름길은 아니라는 점에 유의해야 합니다. 이 목록은 GitHub의 실제 사례를 통해 구성되어 있습니다.

7.6 재정 지원

많은 사람들이 Bitcoin Core 든 다른 프로젝트든 비트코인의 오픈소스 개발에 기여하고 있습니다. 대부분은 여가 시간을 활용하여 무보수로 참여하지만, 일부 개발자는 보수를 받습니다.

비트코인의 지속적인 성공에 관심 있는 기업, 개인 및 단체는 개발자에게 직접 또는 단체 채널을 통해 자금을 기부할 수 있습니다. 비트코인에 집중하는 일부 기업은 숙련된 개발자를 정규직으로 채용하여 프로젝트에 투입하기도 합니다.

7.7 문화 충격

사람들은 흔히 비트코인 ​​개발자들 사이에 내분이 심하고 끝없는 논쟁이 있으며, 그들이 결정을 내리는 데 완전히 무능해 보인다는 인상을 받습니다.

예를 들어, 5.2.3장 ( 중국어 번역 )에 설명된 "탭루트(Taproot)" 배포 메커니즘은 오랫동안 논의되어 왔으며, 그 과정에서 두 개의 상반된 입장이 나타났습니다. 한쪽은 특정 시점 이후에 채굴자들이 새로운 규칙에 압도적으로 찬성표를 던지지 않으면 업그레이드를 "실패"시키기를 바랐고, 다른 한쪽은 특정 시점이 되면 찬성 여부와 관계없이 새로운 규칙을 강제 적용하기를 바랐습니다. 마이클 폴크슨은 이 두 입장 간의 논쟁을 요약하여 비트코인 ​​개발자 메일링 리스트에 게시했습니다 .

이 논쟁은 끝이 보이지 않는 채로 무기한으로 이어질 운명인 것 같습니다. 이는 답답한 일이며, 결과적으로 논란을 더욱 부추기고 있습니다. 그레고리 맥스웰(사용자 "nullc")은 레딧 에서 이처럼 장기적인 논의가 사태 악화를 더욱 위험하게 만들 수 있다고 우려를 표명했습니다.

이 시점에서 추가적인 대기는 더 이상의 검토나 확실성을 제공하지 않습니다. 오히려 지연은 추진력을 늦추고, 잠재적 리스크 증가시키며(사람들이 세부 사항을 잊어버리기 시작하면서), 하위 애플리케이션(예: 지갑 지원) 작업을 연기시키고, 활성화 기간에 만족하는 사람들은 추가적인 검토 노력을 기울이지 않을 것입니다.

— 그레고리 맥스웰, "Taproot 배포 속도가 너무 빠른가요, 아니면 너무 느린가요?", 레딧

결국 데이비드 하딩과 러셀 오코너가 제안한 "신속 시험(Speedy Trial)"이라는 새로운 방안 덕분에 분쟁이 해결되었습니다. 이 방안은 채굴자들이 업그레이드를 신속하게 확정하거나 실패를 알릴 수 있도록 비교적 짧은 신호 기간을 제공하기 때문에 이러한 이름이 붙었습니다. 채굴자들이 이 신호 기간 내에 업그레이드를 활성화하면 약 6개월 후에 Taproot이 배포됩니다. 이 업그레이드에 대한 자세한 설명은 5장 ( 중국어 번역 )에서 확인할 수 있습니다.

비트코인 개발 과정을 잘 모르는 사람들은 이러한 격렬한 논쟁을 끔찍하고 심지어 해로운 것으로 여길 수도 있습니다. 일부 사람들이 이를 부정적으로 보는 데에는 적어도 두 가지 요인이 있습니다.

  • 폐쇄형 소스 기업과 달리 오픈 소스 개발에서는 모든 토론이 공개적인 환경에서 이루어지며 어떠한 검열도 받지 않습니다. 구글과 같은 소프트웨어 회사는 직원들이 공개적으로 제안에 대해 토론하는 것을 허용하지 않고, 대신 회사의 입장을 표명하는 성명을 발표하는 것이 일반적입니다. 이러한 방식은 회사가 비트코인보다 더 조화로운 것처럼 보이게 합니다.
  • 비트코인은 허가 없이 누구나 관점 표현할 수 있기 때문에, 폐쇄형 소스 개발 회사와는 완전히 대조적입니다. 폐쇄형 소스 개발 회사에서는 소수의 사람, 그것도 대개 비슷한 관점 가진 사람들만 관점 표명할 수 있습니다. 비트코인 ​​개발팀 내의 다양한 관점(예를 들어 페이팔 같은 회사와 비교했을 때) 놀라울 정도로 많습니다.

대부분의 비트코인 ​​개발자들은 이러한 개방성이 바람직하고 건전한 환경을 조성하며, 최상의 결과를 도출하는 데 필수적인 환경이라고 말할 것입니다.

6.2장 ( 중국어 번역 )에서 암시했듯이, 위의 두 번째 요점은 매우 유익할 수 있지만 단점도 있습니다. 공격자는 * 간단한 사보타주 현장 매뉴얼 *이라는 책에서 설명된 것처럼 지연 전술을 사용하여 개발 과정과 최종 결정을 왜곡할 수 있습니다.

또 하나 주목할 점은 7.4장에서 논의했듯이 비트코인은 화폐를 나타내고 Bitcoin Core 막대한 자본을 보호하기 때문에 보안이 최우선이라는 것입니다. 이것이 바로 경험 많은 Bitcoin Core 개발자들이 고집스러워 보일 수 있는 이유이지만, 이러한 태도는 타당합니다. 실제로, 건전한 설계 원칙이 결여된 기능은 채택될 가능성이 낮습니다. "재현 가능한 빌드"( 2.1 참조)를 깨뜨리는 기능, 새로운 종속성을 추가하는 기능, 그리고 비트코인의 모범 사례 를 따르지 않는 코드 변경에도 동일하게 적용됩니다.

신규 개발자(그리고 기존 개발자)들은 이러한 점이 답답하게 느껴질 수 있습니다. 하지만 오픈 소스 소프트웨어에서 흔히 그렇듯이, 언제든지 코드베이스를 포크하여 자신의 버전에 코드를 병합한 다음, 직접 컴파일하고 실행할 수 있습니다.

7.8 결론

비트코인 코어를 비롯한 대부분의 비트코인 ​​소프트웨어는 오픈 소스이므로 누구나 자유롭게 배포, 수정 및 사용할 수 있습니다. 현재 비트코인 ​​개발의 중심은 깃허브(GitHub)에 있는 Bitcoin Core 코드베이스이지만, 코드베이스 관리자나 웹사이트 자체에 대한 불신이 커지기 시작하면 상황이 바뀔 수도 있습니다.

오픈 소스 개발은 비트코인 ​​및 그 기반 시스템 개발을 포함하여 신뢰할 수 없는 개발을 가능하게 합니다. 코드를 작성하든, 코드를 검토하든(제안을 하든), 오픈 소스는 익명으로 참여하든 아니든 자유롭게 참여할 수 있는 기회를 제공합니다.

비트코인을 둘러싼 개발 과정은 매우 개방적이어서 비트코인이 유해하고 비효율적인 곳처럼 보일 수 있지만, 바로 이러한 문화 덕분에 비트코인은 악의적인 행위자들의 공격에 저항할 수 있습니다.

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