Home / Knowledge / 비트코인의 여러 구현체를 갖는 것이 위험한가요?

비트코인의 여러 구현체를 갖는 것이 위험한가요?

비트코인의 여러 구현체를 갖는 것이 위험한가요? 1

이 글은 비트코인 기반의 소상공인 및 비트코인 자가 보관에 대한 여러 가이드를 집필한 Bill Scoresby의 의견 기고입니다.

최근 많은 LND 노드가 비트코인 블록체인과 동기화되지 않게 만든 버그는 아마도 대체 구현으로 인해 발생했을 것입니다.

아마도 당신은 “세상에 비트코인 코어 외에 무엇을 사용하는 사람이 있을까?”라고 궁금해할 것입니다. 다른 비트코인 구현이 존재한다는 사실을 몰랐을 수도 있습니다. 아마도 다른 구현이 무엇을 의미하는지 확실하지 않을 수도 있습니다.

비트코인 코어는 사토시 나카모토가 C++로 작성하여 세상에 공개한 소프트웨어로 시작되었습니다. 이후 새로운 버전으로 업데이트되어 현재에 이릅니다. 대체 구현은 비트코인 코어와 동일한 작업을 수행하는 소프트웨어로, 동일한 합의 규칙을 적용하지만, 보통 다른 프로그래밍 언어로 작성됩니다.

대체 구현이 라이트닝 네트워크의 노드를 어떻게 망가뜨렸는가?

주요 라이트닝 네트워크 노드 버전 중 하나인 LND는 btcd라는 대체 비트코인 구현에 의존합니다. 개발자가 매우 큰 멀티시그 거래를 생성했을 때, btcd는 너무 많은 증인 데이터가 포함되어 있어 이를 유효한 것으로 보지 않았습니다. 다른 비트코인 구현, 특히 비트코인 코어는 Taproot 거래 증인 데이터에 대한 제한이 없었기 때문에 해당 거래와 이를 포함한 블록을 유효한 것으로 받아들였습니다.

그 결과, 채굴자들은 새로운 블록을 계속 체인에 추가했지만, btcd를 사용하지 않았기 때문에 그들의 규칙에 따르면 아무 문제가 없었습니다. 그러나 LND 라이트닝 노드는 그들이 유효하지 않다고 본 거래가 포함된 블록 위에 구축된 새로운 블록을 인식할 수 없었습니다.

11월 1일에 버그가 다시 발생했을 때, 영향을 받은 것은 LND 노드만이 아니었습니다. Electrum 지갑의 백엔드 서버 구현인 electrs 인스턴스 중 일부도 체인의 나머지 부분과 합의에 도달하지 못했습니다. LND 노드가 btcd의 유사한 문제로 인해 합의에서 벗어난 반면, Rust로 작성된 비트코인의 다른 구현이 electrs 노드가 뒤처지게 만들었으며, mempool.space에서 운영하는 일부 매우 눈에 띄는 서버도 포함되었습니다.

증인 데이터의 크기에 대한 제한은 DoS 공격을 방지하기 위해 존재하며, 비트코인 코어에도 포함되어 있습니다(비트코인 코어는 Taproot 거래에 대해 더 큰 제한을 가지고 있습니다). 동기화에서 벗어난 다른 두 구현은 더 작은 제한을 유지하는 코드를 가지고 있었던 것으로 보입니다.

구현 간의 아주 작은 차이가 합의 부족으로 이어질 수 있습니다.

비트코인의 여러 구현은 위험하다

사토시는 비트코인의 여러 구현에 대한 아이디어를 좋아하지 않았습니다. “비트코인의 두 번째 호환 구현이 좋은 아이디어가 될 것이라고는 믿지 않습니다.” 그가 제시한 이유는 “디자인의 많은 부분이 모든 노드가 정확히 동일한 결과를 동기화하여 얻는 것에 의존하기 때문에 두 번째 구현은 네트워크에 위협이 될 것입니다.”였습니다.

위협? 그게 무슨 큰 문제인가요?

아마도 가장 많은 작업 증명을 가진 체인이 진정한 체인이라는 이야기를 들어본 적이 있을 것입니다. 두 명의 다른 채굴자가 동시에 블록을 찾으면 체인이 분리되고 다른 채굴자들은 자신이 먼저 들은 블록 위에 구축하기 시작합니다.

분할된 한 쪽에 새로운 블록이 추가되면 대부분의 노드와 채굴자는 이를 새로운 진정한 체인으로 받아들이고 분할된 다른 쪽은 포기합니다. 이러한 블록은 오래된 블록이라고 불리지만, 일부 사람들은 이를 고아 블록이라고 부릅니다.

비트코인에서 블록 간 평균 시간은 10분이므로, 패배한 쪽에 블록이 추가되기 전에 전체 네트워크가 이 새로운 블록에 대해 알게 될 가능성이 높으며, 가장 많은 작업을 가진 체인이 승리합니다.

“노드는 가장 많은 작업을 가진 유효한 체인을 따릅니다… 여기서 핵심 단어는 유효합니다. 노드가 유효하지 않다고 판단하는 블록을 받으면, 그 블록 위에서 얼마나 많은 작업이 이루어졌는지는 중요하지 않으며, 노드는 해당 체인을 수용하지 않을 것입니다.” — Andrew Chow

핵심 단어는 “유효”입니다. 위협은 채굴자가 다른 채굴자와 노드가 유효하지 않다고 생각하는 블록을 찾을 때 발생합니다. 유효하다고 생각하는 채굴자는 해당 체인 위에 새로운 블록을 구축하려고 할 것입니다. 유효하지 않다고 생각하는 채굴자는 자신이 알고 있는 마지막 유효 블록 위에 구축하려고 할 것입니다. 결과: 두 개의 체인과 어떤 것이 진짜인지 알 수 있는 방법이 없습니다.

어떻게 이런 일이 발생할 수 있을까요?

최근 LND 노드의 버그 사례에서 보았듯이, 비트코인의 한 구현에 버그가 있고 다른 구현에는 없다면, 블록이 유효한지 여부에 대한 합의 부족으로 이어질 수 있습니다.

비트코인에는 이를 수정하는 메커니즘이 없습니다. 프로토콜 외부의 커뮤니티가 다음에 어떤 일이 일어날지를 결정해야 합니다. 매우 불쾌하게 들립니다.

그렇게 해서 비트코인 개발자 피터 토드는 다른 구현이 비트코인 코어의 버그와 일치해야 한다고 말했습니다.

여기 있습니다: 여러 구현은 위험합니다!

비트코인의 다른 구현은 무엇이며 왜 존재하는가?

우선, 대부분의 사람들은 비트코인 코어를 실행합니다.

루크 대시주르는 약 43,000개의 노드를 보고하며, 이 중 98%가 비트코인 코어를 실행하고 있습니다. Coin Dance라는 것은 거의 15,000개의 노드를 보고하며, 이 중 96%가 비트코인 코어를 실행하고 있습니다. 따라서 현재로서는 대체 구현을 사용하는 사람이 매우 적어 보입니다.

그럼에도 불구하고 비트코인 프로토콜을 구현하는 다른 코드베이스를 구축하고 유지하려는 활성 프로젝트가 있습니다. 여기에는:

  • 비트코인 노츠.
  • 리비트코인.
  • 닉스-비트코인.
  • btcd.

제임슨 롭은 더 포괄적인 목록과 모든 다른 구현에 대한 링크가 포함된 훌륭한 페이지를 가지고 있습니다.

이 모든 프로젝트에는 매우 재능 있는 개발자들이 작업하고 있으며, 각각은 몇 년 이상 존재해왔습니다. 왜 이렇게 문제가 있는 것에 많은 노력을 기울일까요?

비트코인은 허가가 필요 없습니다. 누구나 체인을 다운로드할 수 있고, 누구나 네트워크와 상호작용할 수 있으며, 대체 구현을 코딩하거나 실행하는 것을 아무도 막을 수 없습니다.

그럼에도 불구하고 분명히 일부 사람들은 비트코인 저장소에 대한 변경을 담당하고 있으며, 그들을 선택하는 과정은 비공식적인 것 같습니다. 비트코인 코어에 대한 변경 제안을 위한 비트코인 개선 제안(BIP) 프로세스가 있지만, 이것도 꽤 비공식적입니다.

이 모든 것이 직접적인 문제는 아닙니다. 마르티 벤트가 지적했듯이, 거친 합의는 강점이 될 수 있습니다. 비트코인을 변경하는 과정이 어렵고 불분명하다면, 변경 사항이 더 철저하게 검토될 것입니다.

거친 합의의 다음 단계는 하나 이상의 인기 있는 구현을 갖는 것입니다.

여러 구현이 없는 것이 더 위험할 수 있다

비트코인 코어에 커밋 접근 권한이 있는 사람이 되는 것은 이미 매우 어려운 일이라는 것은 의심의 여지가 없습니다. 비트코인이 통화 수단으로서 중심적인 역할을 하는 세상에서 이 일은 훨씬 더 어려워질 것입니다. 소수의 개발자 그룹이 매우 가치 있는 목표가 될 수 있습니다. 최소한, 그들의 주목을 받아 다음 소프트웨어 릴리스에서 다양한 포함 또는 제외를 로비하기 위해 노력할 것입니다.

현재 정치에서 존재하는 로비 산업에 대해 생각해 보십시오. 왜 비트코인 프로토콜의 유일한 구현에 커밋 접근 권한이 있는 사람들 주위에 그런 일이 발생하지 않을까요?

현재 정치인들처럼 그들은 권력에 접근할 수 있는 것으로 인식될 것입니다. 따라서 사람들은 그들을 목표로 삼을 것이며, 이 개발자들은 자신을 방어할 국가의 힘이 없을 것입니다. 그런 삶은 어떤 것일까요? 누가 자발적으로 그것을 선택할까요?

결국, 전 세계 금융 시스템은 하나의 GitHub 저장소에 대한 커밋 접근 권한이 있는 소수의 사람들에게 지워야 할 무거운 짐입니다. 사람들이 중앙은행 몇 명의 결정에 따라 재정적 미래가 좌우되는 현재의 글로벌 금융 시스템과 크게 다르지 않을 수 있습니다.

여러 구현이 구세주다!

비트코인 네트워크에서 여러 구현의 존재와 광범위한 사용은 악의적인 행위자가 비트코인 프로토콜을 변경하기 훨씬 더 어렵게 만들어 이러한 압력을 완화할 수 있습니다.

비트코인 네트워크의 참가자들이 다양한 구현 간에 더 고르게 분포되어 있다면, 좋은 아이디어가 떠오를 여지가 더 많습니다. 비트코인에 대한 변경 제안이나 거부는 한 캠프에서만 이루어지지 않는다면 훨씬 더 분산화됩니다.

분명히 비트코인의 다양한 구현을 사용하는 것은 체인 분할의 위험을 증가시킵니다. 상당한 수의 노드와 채굴자가 우연히 포크되는 재앙적인 체인 분할은 비트코인에 좋지 않으며, 확실히 가격에도 좋지 않습니다. 그러나 비트코인의 허가 필요 없는 특성을 위협하지는 않을 것입니다.

모두가 비트코인 코어에서만 구축하는 중앙 집중식 개발 환경은 허가 필요 없는 특성을 위협할 수 있습니다. 이 주제에 대한 대화는 대체 구현으로 인해 발생할 수 있는 문제에만 집중하기보다는 비트코인 코어에 지나치게 의존하는 것의 위험을 다루어야 합니다.

이 논쟁에 대한 훌륭하고 오래된 기사가 아론 반 위르둠에 의해 작성되었습니다. 이에 대한 더 최근의 유익한 스레드도 읽어볼 수 있습니다.

이 글은 Bill Scoresby의 게스트 포스트입니다. 표현된 의견은 전적으로 그들의 것이며 BTC Inc 또는 Bitcoin Magazine의 의견을 반드시 반영하지는 않습니다.

관련 기사

마이애미 IT 직원, 전 상사로부터 190만 달러 비트코인 절도 혐의로 체포 1

마이애미 비트코인 절도, IT 직원 체포

마이애미의 한 남성이 경찰에 따르면 전 직장에서 거의 200만 달러 상당의 비트코인을 훔친 혐의로 여러 중범죄 혐의에 직면해 있습니다. 이

카사, 비트코인 보유자를 겨냥한 증가하는 사회 공학 공격에 대응하기 위해 네 가지 보안 기능 출시 1

사회 공학 공격에 대응하는 카사 기능

비트코인 보안 회사 카사는 2025년 암호화폐 도난의 대부분을 차지하는 공격 벡터인 사회 공학을 겨냥한 네 가지 기능을 출시했습니다. 이 기능은

마스터카드, 디지털 자산 전략을 강화하기 위해 뉴욕 비트라이센스 확보 1

마스터카드, 비트라이센스 획득

마스터카드는 뉴욕주 금융 서비스국(NYDFS)으로부터 비트라이센스를 받았으며, 이는 이 결제 거대 기업이 미국에서 가장 엄격한 암호화 규제 프레임워크 중 하나 아래에서

크라켄, 비트코인 보관소 출시 - BTC 보유에 대한 수익 제공 1

비트코인 보관소 | 크라켄의 새로운 금융 솔루션

크라켄은 고객이 자산을 판매하지 않고도 비트코인 보유량에 대해 BTC 기준 보상을 받을 수 있는 새로운 제품인 비트코인 볼트를 크라켄 어

폴드, 비트코인 신용 카드 성장을 위한 1억 5천만 달러 유치 1

비트코인 신용 카드, Fold의 성장 동력

Fold Holdings, Inc., 최초의 상장된 비트코인 금융 서비스 회사가 Encina Lender Finance, LLC와 4년간의 고정 담보 회전 신용 시설에 진입했습니다.

DDC, 한 주에 비트코인을 두 번 구매하며 자산을 14% 증가시켜 희석 없이 재무를 성장시킵니다. 1

비트코인으로 DDC 자산 14% 증가

DDC Enterprise Limited (NYSE American: DDC)는 수요일에 131 비트코인을 구매하여 기업 비트코인 금고를 2,714 BTC로 확장했다고 발표했습니다. 뉴욕에 본사를 둔