Home / Knowledge / 핵심 문제: 합의 정리

핵심 문제: 합의 정리

핵심 문제: 합의 정리 1

프로토콜 개발자들은 종종 대부분의 비트코인 사용자들보다 비트코인의 미래에 대해 더 비관적으로 보입니다. 비트코인의 불완전함에 매일 노출되는 것은 분명히 냉정한 관점을 형성하며, 비트코인이 이룬 성과를 되돌아보는 것이 중요합니다. 세계의 누구나 인종, 나이, 성별, 국적 또는 기타 임의의 기준에 관계없이 이제보다 더 강력한 중립적인 화폐 네트워크에서 가치를 저장하고 전송할 수 있습니다. 그렇다고 해도 비트코인에는 많은 비트코인 사용자들이 알지 못하는 문제들이 있으며, 이러한 문제들이 적절히 해결되지 않으면 장기적인 전망에 위협이 될 수 있습니다. 합의 정리에서 수정된 취약점이 그 예시 중 하나입니다.

합의 정리(BIP 541)는 비트코인 합의 프로토콜 내의 여러 오래된 취약점을 수정하기 위한 소프트 포크 제안입니다. 소프트 포크 제안으로서, 이는 이 판에 소개된 대부분의 다른 비트코인 코어 노력과 본질적으로 구별됩니다. 이 제안은 역사적으로 비트코인 코어 프로젝트와 관련된 개인들에 의해 지지받아 왔지만, 실제로는 비트코인 프로토콜 개발의 더 넓은 범주에 속합니다.

우리는 제안의 네 가지 항목을 살펴보며, 해결된 문제의 영향과 적용된 수정 사항을 설명할 것입니다. 우리는 제안된 완화 조치가 피드백과 새로운 취약점을 해결하기 위해 어떻게 발전했는지 논의할 것입니다. 마지막으로 소프트 포크 제안의 현재 상태에 대한 간략한 개요로 마무리하겠습니다.

비트코인의 작업 증명에서의 취약점

비트코인 네트워크는 평균 블록 생성 속도를 10분에 하나로 유지하기 위해 채굴 난이도를 조정합니다. 구현에서의 “하나 차이” 버그(일반적인 프로그래밍 실수)는 시간 왜곡 공격이라는 공격을 열어줍니다. 이 공격에서는 다수의 채굴자가 난이도를 인위적으로 낮추어 블록 생산 속도를 가속화할 수 있습니다.

이 공격은 다행히도 51% 이상의 채굴자가 필요하지만, 블록 생성 속도를 인위적으로 가속화하는 것은 중요한 문제입니다. 이는 전체 노드가 더 이상 자원 사용을 통제하지 못하게 되며, 공격자가 비트코인 보조금 발행 일정을 상당히 가속화할 수 있음을 의미합니다.

비록 “51% 채굴자”가 필요하지만, 이는 표준 비트코인 위협 모델에서 상당한 이탈입니다. 51% 공격은 전통적으로 채굴자가 자신의 우위를 유지하는 한 거래 확인을 방지할 수 있게 합니다. 그러나 이 버그의 존재는 그들이 네트워크 난이도를 빠르게 줄여 단 38일 만에 네트워크를 마비시킬 수 있는 권한을 부여합니다.

네트워크를 다운시키기보다는 공격자가 이 버그를 더 작은 범위로 악용할 가능성이 더 큽니다. 현재의 채굴자들은 비트코인 네트워크를 겉보기에는 정상적으로 작동하는 상태로 유지하면서 블록 속도를 4배로 증가시키기 위해 조정할 수 있으며, 이는 사용 가능한 블록 공간을 4배로 늘리고 미래의 채굴자들로부터 블록 보조금을 훔치는 결과를 초래합니다. 단기적인 사용자들은 더 많은 블록 공간이 -ceteris paribus- 온체인 거래에 대한 수수료를 낮추는 것을 의미하기 때문에 이 공격을 지지하도록 유도될 수 있습니다. 이는 물론 전체 노드 운영자에게는 비용이 들며 네트워크의 장기적인 안정성을 저해할 것입니다.

핵심 문제: 합의 정리 2

시간 왜곡 공격은 난이도 조정 기간이 겹치지 않는다는 사실을 이용하여 블록 타임스탬프를 설정하여 새로운 기간이 이전 기간이 끝나기 전에 시작되는 것처럼 보이게 합니다. 이들이 겹치도록 만드는 것은 하드 포크가 되기 때문에, 다음으로 좋은 완화 조치는 난이도 조정 기간의 경계에 있는 블록의 타임스탬프를 연결하는 것입니다. BIP 54 사양은 기간의 첫 번째 블록이 이전 기간의 마지막 블록보다 2시간 이상 이른 타임스탬프를 가질 수 없도록 요구합니다.

또한 BIP 54 사양은 난이도 조정 기간이 항상 긍정적인 시간을 소요해야 한다고 요구합니다. 즉, 특정 난이도 조정 기간에 대해 마지막 블록은 첫 번째 블록보다 이른 타임스탬프를 가질 수 없습니다. 이 경우가 이미 아니어서 놀라셨나요? 우리는 이게 필요하다는 사실에 놀랐습니다. 이는 시간 왜곡과 관련된 교묘한 공격에 대한 간단한 수정으로, 가명 개발자 Zawy와 Mark “Murch” Erhardt가 합의 정리 제안을 검토할 때 제안한 것입니다.

검증하는 데 몇 시간이 걸리는 블록

어떤 채굴자든 특정 비싼 검증 작업을 악용하여 검증하는 데 오랜 시간이 걸리는 블록을 생성할 수 있습니다. 일반적인 비트코인 블록이 검증하는 데 수백 밀리초가 걸리는 반면, 이러한 “공격 블록”의 검증 시간은 고급 컴퓨터에서 10분 이상, 라즈베리 파이(인기 있는 전체 노드 하드웨어 선택)에서는 최대 10시간에 이를 수 있습니다.

외부 동기화된 공격자는 이를 이용하여 전체 네트워크를 방해할 수 있으며, 보다 경제적으로 합리적인 변형의 공격에서는 채굴자가 경쟁자를 지연시켜 자신의 이익을 증가시킬 수 있습니다.

이 문제를 완화하려는 역사적 시도는 혼란스러웠습니다. 왜냐하면 이는 비트코인의 스크립팅 기능에 제한을 두어야 하기 때문입니다. 이러한 제한은 압수의 가능성이 있으며, 이는 심각한 소프트 포크 설계에서 피해야 할 사항입니다.

Matt Corallo의 2019년 원래의 대합의 정리는 비트코인 코어가 수년 동안 기본적으로 중계하거나 채굴하지 않았던 몇 가지 불분명한 작업을 무효화하여 이러한 긴 블록 검증 시간을 해결하려고 했습니다. 일부는 이러한 작업을 사용하는 거래가 여전히 누군가에 의해 의존할 수 있다고 우려했습니다. 물론 이는 채굴자가 이 문제를 악용할 수 있는 모든 비트코인 사용자에게 실질적인 위험과 비교해야 합니다.

압수 우려는 다소 이론적이지만, 취약점에 대한 적절한 완화를 설계하는 방법에 대한 철학적 관점이 있습니다. 나중에 제안한 합의 정리 제안은 이 우려를 해결하기 위해 해로운 행동을 정확히 지적하는 한계를 도입하여 특정 비트코인 스크립트 작업을 무효화하지 않았습니다.

위조된 지불 증명

비트코인 블록 헤더는 블록 내의 모든 거래를 커밋하는 머클 루트를 포함합니다. 이는 특정 거래가 특정 작업 증명의 체인의 일부임을 간결하게 증명할 수 있게 합니다. 이는 일반적으로 “SPV 증명”이라고 불립니다.

머클 트리 설계의 약점으로 인해, 특정하게 제작된 64바이트 거래를 블록에 포함시키면 공격자가 임의의 가짜(존재하지 않는) 거래에 대한 증명을 위조할 수 있습니다. 이는 SPV 검증자를 속이는 데 사용될 수 있으며, 이는 일반적으로 들어오는 지불이나 사이드 시스템에 대한 예금을 검증하는 데 사용됩니다. 검증자가 이러한 무효 증명을 거부할 수 있는 완화 조치가 존재하지만, 이는 종종 간과되며—암호학 전문가들조차도—특정 맥락에서는 번거로울 수 있습니다.

합의 정리는 직렬화된 크기가 정확히 64바이트인 거래를 무효화하여 이 문제를 해결합니다. 이러한 거래는 처음부터 안전할 수 없으며(자금을 소모하거나 누구나 사용할 수 있도록 남겨둘 수밖에 없음), 2019년부터 비트코인 코어에 의해 기본적으로 중계되거나 채굴되지 않았습니다. 기존 완화 조치를 개선하는 우회적인 방법과 같은 대안적 접근이 논의되었지만, 저자들은 문제의 근본 원인을 수정하기로 선택하여 구현자가 완화 조치를 적용할 필요성과 취약성에 대해 알 필요성을 모두 제거했습니다.

a: 블록 헤더의 버전 필드의 일부에서 머클 트리 깊이에 커밋하기

UTXO 도플갱어: 중복 거래

“Mirco… Mezzo… Macroflation—과열된 경제”는 러셀 오코너가 2012년 2월에 발표한 블로그 게시물의 제목으로, 비트코인 거래가 어떻게 중복될 수 있는지를 설명합니다. 이는 거래 식별자(해시)가 고유하다는 기본 가정을 깨뜨리는 비트코인의 중요한 결함이었습니다. 이는 채굴자의 코인베이스 거래가 단일 빈 입력을 가지므로, 동일한 출력을 가진 모든 코인베이스 거래는 동일한 거래 식별자를 가질 수 있음을 의미합니다. 

이는 비트코인 코어(당시 “비트코인”이라고 불림) 개발자들이 BIP 302로 수정하였으며, 이는 전체 노드가 블록을 받을 때 추가 검증을 수행하도록 요구했습니다. 그 추가 검증은 문제를 해결하는 데 엄밀히 필요하지 않았으며, 같은 해 BIP 343로 우회되었습니다. 불행히도 BIP 34에서 도입된 수정은 불완전하며, BIP 30의 추가 검증은 20년 후에 다시 필요할 것입니다. 엄밀히 필요하지 않을 뿐만 아니라, 이 검증은 Utreexo와 같은 대안 비트코인 클라이언트 설계에 의해 수행될 수 없으며, 이로 인해 블록 체인을 완전히 검증하는 것을 효과적으로 방해할 것입니다.

합의 정리는 이 문제에 대한 보다 강력하고 미래 지향적인 수정을 도입합니다. 모든 비트코인 거래, 코인베이스 거래를 포함하여, 거래를 “타임 락”하는 필드를 포함합니다. 필드의 값은 거래가 무효가 되는 마지막 블록 높이를 나타냅니다. BIP 54 사양은 모든 코인베이스 거래가 이 필드를 자신의 블록 높이(1을 뺀 값)로 설정하도록 요구합니다.

앤서니 타운스의 교묘한 제안과 결합하여 타임 락 검증이 항상 발생하도록 보장함으로써, 동일한 타임 락 값을 가진 코인베이스 거래가 이전 블록에 포함될 수 없도록 보장합니다. 이는 다시 말해, 어떤 코인베이스 거래도 과거의 거래와 동일한 고유 식별자(해시)를 가질 수 없도록 보장하며, BIP 30 검증을 요구하지 않습니다.

예방이 치료보다 낫다

합의 정리(BIP 54)에서 다루는 취약점들은 현재 비트코인에 대한 존재론적 위협이 아닙니다. 일부는 네트워크를 마비시킬 가능성이 있지만, 현재로서는 악용될 가능성이 낮습니다. 그렇다고 해도, 이는 변화할 수 있으며 비트코인 네트워크에 대한 장기적인 위험을 능동적으로 완화하는 것이 중요합니다. 이는 소프트 포크를 조정하는 단기적인 부담을 감수해야 할 수도 있음을 의미합니다.

합의 정리에 대한 작업은 2019년 Matt Corallo의 원래 제안으로 시작되었습니다. 이는 6년 후 BIP 54의 발표와 비트코인 합의 변경을 위한 테스트베드인 비트코인 인퀴지션에서 소프트 포크의 구현으로 결실을 맺었습니다. 이 기간 동안 제안은 상당한 피드백을 받았고, 다양한 대안이 고려되었으며, 추가적인 취약점에 대한 완화 조치가 통합되었습니다. 이제 비트코인 사용자들과 공유할 준비가 되었다고 믿습니다.

합의 정리는 소프트 포크입니다. 비트코인 프로토콜 개발자들은 어떤 개선 사항을 우선시하고 대중에게 제공할지를 선택합니다. 그러나 비트코인의 합의 규칙에 대한 변경을 채택하는 궁극적인 결정은 사용자에게 있습니다. 선택은 여러분의 몫입니다.

핵심 문제: 합의 정리 3

당신의 기회를 놓치지 마세요 핵심 문제 — 많은 코어 개발자들이 자신이 작업하는 프로젝트를 설명하는 기사를 포함하고 있습니다!

이 글은 최신 인쇄판 비트코인 매거진, 핵심 문제에 실린 편집자의 편지입니다. 우리는 전체 호에서 탐구된 아이디어를 미리 살펴보는 것으로 여기에서 공유하고 있습니다.

[1] https://github.com/bitcoin/bips/blob/master/bip-0054.md 

[2] https://github.com/bitcoin/bips/blob/master/bip-0030.mediawiki 

[3] https://github.com/bitcoin/bips/blob/master/bip-0034.mediawiki 

[4] https://r6.ca/blog/20120206T005236Z.html 

관련 기사

카사, 비트코인 보유자를 겨냥한 증가하는 사회 공학 공격에 대응하기 위해 네 가지 보안 기능 출시 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로 확장했다고 발표했습니다. 뉴욕에 본사를 둔

반카 셀라, MiCA에 따라 비트코인 및 암호화 서비스에 대한 라이센스를 받은 첫 번째 이탈리아 은행이 되다. 1

Banca Sella, 첫 이탈리아 비트코인 은행 승인

Banca Sella는 유럽 연합의 암호 자산 규제(MiCA) 하에서 암호화폐 서비스를 제공할 수 있는 최초의 이탈리아 은행으로 승인받았으며, 2026년 5월 27일