Home / Knowledge / BitVM 2: 경기장을 열다

BitVM 2: 경기장을 열다

BitVM 2: 경기장을 열다 1

지난 10월, Zerosync의 로빈 라이너스가 BitVM이라는 형태로 큰 소식을 전했습니다. 비트코인에 대한 가장 오랜 비판 중 하나는 돈이 어떻게 사용되거나 잠금 해제되는지를 제어하는 임의의 프로그램을 만들 수 없다는 것입니다. 비트코인은 스크립팅 언어에서 매우 제한된 프로그래밍 가능성을 가지고 있으며, 사용 가능한 기본 요소는 극도로 제약되어 있습니다. 서명을 확인할 수 있고, 어떤 것에 타임락을 추가할 수 있으며, 몇 가지 간단한 방법으로 데이터를 조작할 수 있지만, 그게 전부입니다.

비트코인 UTXO를 서명 확인, 타임락 검증 등을 요구하도록 프로그래밍할 수 있습니다. 하지만 임의의 조건에 따라 잠금을 해제하도록 프로그래밍할 수는 없습니다. 로빈의 BitVM에 대한 통찰력은 컴퓨팅 분야에서 단 하나의 기본 요소인 NAND 게이트가 비트코인 스크립트에서 강제될 수 있다는 것이었습니다. 모든 가능한 계산은 NAND 게이트로 구성될 수 있습니다.

BitVM 2: 경기장을 열다 2

스크립트는 OP_BOOLAND와 OP_NOT를 사용한 멋진 트릭 덕분에 실제로 NAND 게이트를 검증할 수 있습니다. OP_BOOLAND는 AND 연산으로, NAND의 반대입니다. OP_NOT는 이진 1 또는 0 값을 반전시킵니다. 이를 통해 스크립트에서 직접 NAND 연산을 강제할 수 있습니다. 해시락과 결합하면, 각 입력 및 출력 필드가 해당 지출 경로를 “잠금 해제”하기 위해 두 개의 가능한 해시락을 가지는 NAND 게이트 스크립트를 만들 수 있습니다. 각 스크립트에는 단일 비트 값에 대한 두 개의 사전 이미지를 공개할 수 있는 경로도 있어, 즉시 자금을 청구할 수 있습니다. 이는 누군가가 NAND 게이트에 무엇을 입력할지를 결정한 후에는 돈을 잃지 않고 마음을 바꿀 수 없도록 하기 위함입니다.

막대한 양의 NAND 게이트 스크립트는 모두 탭루트 트리로 압축될 수 있으며, 누군가가 오프체인에서 그 계산에 입력할 비트 값에 대해 약속하면, 다른 당사자는 체인에서 올바르게 실행되고 있는지 증명하기 위해 계산의 개별 단계에 대해 그들을 도전할 수 있습니다. 각 “도전”은 도전받는 당사자가 개별 게이트가 올바르게 계산되었음을 증명할 수 있게 하며, 그렇지 않으면 다른 당사자가 타임락 후 자금을 청구할 수 있습니다. 이렇게 계산이 논란이 될 경우, 부정 행위 당사자가 결국 적발되어 자금을 잃게 될 것이 보장됩니다.

제한 사항

BitVM의 주요 제한 사항은 BitVM 계약을 생성하는 데 관련된 사람들만 참여할 수 있으며, 역할이 매우 제한적이라는 것입니다. 증명자는 오프체인에서 계산이 어떻게 이루어졌는지를 주장하는 사람이고, 검증자는 계산에 도전하고 증명자가 오프체인에서 계산을 완료하지 않거나 결과에 대해 거짓말을 할 경우 이를 체인에서 증명하도록 강제할 수 있는 사람입니다.

BitVM을 설계한 이유 중 하나는 사이드체인이나 다른 시스템에 대한 양방향 페그를 설정하기 위함이었습니다. 이 계획은 그 경우에 매우 강력한 기본 요소를 제공하며, 임의의 계산의 정확성에 따라 한 당사자에게 자금을 실제로 강제할 수 있는 능력을 의미합니다. 즉, 사이드체인의 규칙에 따라 페그아웃이 유효한지에 대한 유효성 검사를 의미합니다. 문제는, 그 BitVM UTXO의 키를 보유한 사람만이 “야, 너는 부정 행위를 하고 있어!”라고 말할 수 있으며, 도전 프로토콜에 참여할 수 있다는 것입니다. 이는 궁극적으로 시스템이 여전히 신뢰를 필요로 하게 만듭니다.

또 다른 제한 사항은 도전 응답 프로토콜이 매우 길어질 수 있다는 것입니다. 누군가 계산의 결과가 자신이 돈을 잃게 될 것임을 깨닫고 응답을 중단하면, 검증자는 증명자가 거짓말을 해야 할 개별 NAND 게이트가 계산에서 어디에 있는지를 추측해야 하며, 검증자에게 자금을 제공할 비트에 대한 두 개의 사전 이미지를 공개해야 합니다. 특정 게이트가 체인에서 도전받기 전까지, 증명자는 여전히 도전에 올바르게 응답하고 시간을 끌 수 있습니다. 이는 매우 시간이 많이 소요되고 비효율적일 수 있습니다.

이 설계에 대한 몇 가지 개선 사항이 원래 제안 이후 이루어져, 증명자와 함께 시스템에 여러 검증자가 존재할 수 있도록 하여, 부정직한 증명자에게 도전하는 데 단 하나의 검증자만 필요로 하는 1-of-n 신뢰 모델을 만들 수 있게 되었습니다. 그러나 이를 달성하기 위해서는 여러 BitVM 인스턴스를 병렬로 생성해야 하며, 따라서 원래의 두 당사자 설계의 비효율성을 증가시킵니다.

BitVM 2

BitVM 2: 경기장을 열다 3

로빈은 최근 BitVM 2에 대한 설계 계획을 제안했습니다. 이 계획은 원래 설계와 비교하여 두 가지 주요 단점을 완화하기 위해 몇 가지 트레이드 오프를 추구합니다. BitVM 2는 도전/응답 프로토콜의 길이를 최악의 경우 수십 개의 거래가 될 수 있는 불확정적인 거래 시리즈에서 두 번의 라운드로 단축합니다. 또한 커넥터 출력을 사용하여 누구나 검증자로 활동할 수 있게 합니다. 부정직한 증명자에게 도전하기 위해 BitVM을 설정하는 데 관여한 구성원이 될 필요가 없습니다.

여기서 근본적인 변화는 스크립트 NAND 게이트를 직접 사용하여 원시 계산 추적을 구현하는 것에서 벗어나, 이를 일반 SNARK 제로 지식 증명 검증기를 구현하는 데 사용하는 것입니다(로빈이 처음부터 BitVM을 사용하여 구현하고자 했던 핵심 기본 요소 중 하나). 원시 입력을 원시 계산 추적에 넣고, 각 탭리프 스크립트에서 게이트별로 실행하는 대신, BitVM 2 인스턴스의 입력은 단순히 계산의 주장된 출력과 결합된 제로 지식 증명 입력이 됩니다.

계산 구현을 ZKP로 추상화하는 것 외에도, 탭리프 스크립트는 각 리프당 단일 NAND 게이트에서 ZKP 검증기의 전체 하위 기능으로 대폭 확장됩니다. 도전 응답 프로토콜이 검증자가 증명자가 부정행위를 시도한 NAND 게이트를 추측하는 것에 기반하지 않고, 입력에 따라 전체 하위 기능의 출력을 유효하지 않다고 증명할 수 있습니다.

BitVM 1과 마찬가지로 계약은 사전 서명된 거래와 분기 스크립트를 사용하여 사전 협상됩니다. BitVM에 고정된 자금은 두 개의 가능한 실행 거래에 서명하는 n-of-n 멀티시그로 전송되며, 하나는 도전이 발생하지 않는 경우이고, 다른 하나는 도전이 발생하는 경우입니다. 계약 실행 프로세스를 시작하기 위해 증명자는 시작 거래를 시작합니다. 이 시작 거래는 그들이 주장하는 계산이 생성하는 출력 값 ‘y’에 대한 약속을 하며, 세 개의 출력을 포함합니다: 도전이 발생하지 않는 실행 거래에 포함된 타임락 출력, 커넥터 출력 A, 그리고 커넥터 출력 B, 이 두 출력도 도전이 발생하지 않는 거래에서 사용됩니다.

여기서 설계는 누구나 검증자로 참여할 수 있도록 합니다. 커넥터 출력 A에는 이를 사용할 수 있는 두 번째 사전 서명 거래가 있으며, 도전 거래입니다. 이는 증명자에게 비트코인으로 보증금을 지급하는 사전 서명 거래이지만, 커넥터 출력 A는 이를 자금을 지원하기에 충분하지 않습니다. 문자 그대로 누구나 자신의 입력을 추가하여 거래를 자금을 지원하고 커넥터 출력 A를 사용할 수 있으며, 이는 증명자에게 도전이 발생하지 않는 인출 거래를 무효화합니다(필요한 입력 중 하나가 도전이 발생하지 않는 경우 존재합니다).

이로 인해 도전 경로가 강제됩니다. 커넥터 출력 B는 또한 전체 BitVM 2 계약의 모든 하위 기능 출력에 대한 주장 거래를 사용하여 사전 서명 거래로 사용 가능합니다. 이는 많은 데이터가 포함된 대규모 거래를 필요로 하지만, 기억하세요, 증명자가 주장하는 계산이 생성한 최종 출력 ‘y’는 이미 시작 거래에서 약속되었습니다. 이는 두 개의 출력을 생성합니다. 하나는 타임락 출력이고, 다른 하나는 커넥터 출력 C입니다. 이 두 출력은 원래 고정된 자금과 함께, 타임락 후 증명자를 위한 두 번째 성공적인 인출 거래에서 모두 사용됩니다.

커넥터 출력 C는 BitVM 2 계약의 어떤 하위 기능 출력이 유효하지 않음을 증명할 수 있는 누구에게나 사용 가능합니다. 이는 BitVM 계산의 전체 섹션이 잘못되었음을 증명하는 데 필요한 스크립트가 방대하기 때문에 매우 큰 거래를 필요로 하지만, 이 단일 거래에서 검증자는 유효한 증명으로 커넥터 출력의 코인을 주장할 수 있습니다. 이는 증명자의 두 번째 인출 거래를 무효화하고 코인을 효과적으로 소각합니다. 이 시점에서 이를 회수하는 유일한 방법은 증명자와 원래 n-of-n 자금 멀티시그의 모든 검증자가 협력하여 이를 회수하는 것입니다(키 삭제가 포함된 설정 의식의 경우 이 회수 가능성은 존재하지 않습니다). 시작 거래의 커넥터 출력 B는 도전이 발생하지 않는 인출보다 훨씬 긴 타임아웃 후에도 사용될 수 있어, 도전이 발생하지 않는 거래와 주장 거래를 모두 무효화하여 고정된 코인을 소각합니다.

이는 원래 BitVM 제안에서 올바른 계약 결과를 강제하기 위해 발생할 수 있는 비현실적인 거래 체인을 최대 네 개의 거래(비록 매우 대규모일 수 있지만)로 줄이며, BitVM 2 인스턴스에 대한 검증자 집합을 비트코인을 보유한 누구나 도전 거래를 자금을 지원할 수 있는 사람으로 만듭니다.

BitVM 2는 BitVM을 양방향 페그으로 사용하려는 롤업 및 기타 레이어 2의 물결에 있어 중요한 돌파구가 될 수 있습니다. 롤업의 운영자(비트VM의 증명자)는 자신의 자금을 사용하여 시스템에 고정된 사용자의 인출을 커버하고, 정기적으로 그 자금을 BitVM에서 인출하여 자신을 보상할 수 있습니다. 어떤 사용자나 관심 있는 당사자는 운영자가 모든 인출을 올바르게 처리하지 않았다는 증거를 제시할 수 있다면 그들의 자금을 소각하여 처벌할 수 있습니다.

궁극적으로 BitVM 2 인스턴스의 보안은 n-of-n 키 보유자에 의해 지원된다는 점은 중요합니다. 비록 참여하지 않는 사람들이 여전히 검증자로서 증명자에게 도전할 수 있지만, 도전자가 없는 경우 증명자가 효율적인 종료를 갖고, 누구나 검증자로 활동하기 위해 도전 거래를 자금을 지원할 수 있기 때문에, n-of-n 자금 멀티시그는 보안을 개선하기 위해 Zcash 출시와 유사한 설정 및 키 삭제 의식을 따를 수 있습니다.

BitVM 2는 BitVM을 사용하는 양방향 페그의 유연성과 신뢰 모델을 개선하는 데 있어 중요한 돌파구가 될 것입니다. 다시 한 번, 로빈은 자신이 진정한 마법사임을 증명했습니다. 

관련 기사

Strive의 SATA가 하루에 예상 490 비트코인을 초과 달성 — 전체 일일 채굴 공급량보다 많음 1

Strive의 SATA, 하루에 490 비트코인 초과 달성

Strive, Inc.는 수요일에 주목할 만한 이정표를 넘어섰습니다. 회사의 시장 프로그램을 통해 약 490 비트코인을 획득한 것으로 추정되는 변동 금리 A

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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