BTC에 접근하기: BitVM을 이해하는 데 필요한 배경 지식
이 글에서는 BitVM, 비트코인 스크립팅, 분리된 증인의 기본 개념에 대해 설명합니다.
JinseFinance저자: 닉차오 & 파우스트 & 셰우 왕, 긱 웹3
요약:최근 델파이 디지털은 "비트코인 프로그래밍 가능성의 새벽: 롤업의 길 닦기"라는 제목의 보고서를 발간했습니다. 델파이 디지털은 "비트코인 프로그래밍 가능성의 여명: 롤업을 위한 길 닦기"라는 제목의 비트코인 레이어 2 관련 기술 연구 보고서를 발표했으며, 이 보고서에는 BitVM 패밀리 버킷 등 비트코인 롤업과 관련된 핵심 개념이 체계적으로 정리되어 있습니다.", OP_CAT 및 커버넌트 제한 조항, 비트코인 생태 DA 레이어, 브릿지, Bitlayer, Citrea, Yona, Bob과 같은 BitVM의 4대 주요 비트코인 레이어 2 채택자 등 롤업과 관련된 핵심 개념을 체계적으로 정리했습니다.
이 연구 보고서는 비트코인 2계층 기술에 대한 광범위한 그림을 제시하고 있지만, 전반적으로 일반적이고 세부적인 내용이 부족하여 이해하기 어려운 것처럼 보였습니다. <긱웹3는 델파이의 연구 논문을 더 깊이 파고들어 BitVM 및 기타 기술에 대한 보다 체계적인 이해를 제공하고자 노력했습니다. .
비트레이어 연구팀 및 BitVM 중국 커뮤니티와 협력하여 "BTC에 가까워지기"라는 제목의 칼럼을 연재할 예정이며, 이 칼럼은 BitVM, OP_CAT, 비트코인 크로스체인 브리지와 같은 주요 주제에 초점을 맞출 것입니다.
본문: 몇 달 전, 우리는 비트코인을 위한 새로운 기술에 대해 이야기하고 있었습니다. strong>몇 달 전, 제로싱크 책임자인 로빈 라이너스가 "BitVM: 비트코인에서 무엇이든 계산하기"라는 제목의 기사를 올렸습니다. "라는 제목의 글을 통해 BitVM의 개념을 공식적으로 소개하고 비트코인의 세컨드 레이어 기술의 경계를 넓혔습니다. 이는 비트코인 생태계에서 가장 혁명적인 혁신 중 하나라고 할 수 있으며, 비트코인 레이어 2 생태계 전체를 폭발시켜 비트레이어, 시트레아, BOB와 같은 스타 프로젝트의 참여를 이끌어내고 시장 전체에 활기를 불어넣었습니다.
그 후, 더 많은 연구자들이 BitVM1, BitVM2, BitVMX, BitSNARK 등과 같은 다양한 반복을 통해 BitVM 개선에 참여하게 되었습니다. 대략적인 그림은 다음과 같습니다:
작년에 Robin Linus가 처음 발표한 BitVM 구현 백서.
로빈 라이너스는 이후 여러 프레젠테이션과 인터뷰를 통해 가상의 CPU 기반 BitVM 솔루션을 비공식적으로 소개했습니다. 옵티미즘의 사기 증명 시스템인 캐논과 유사한 CPU BitVM 솔루션(BitVM1)은 비트코인 스크립트로 오프체인에서 시뮬레이션하여 범용 CPU의 효과를 시뮬레이션할 수 있습니다.
로빈 라이너스는 또한 비허가형, 단일 단계, 비대화형 사기 증명 프로토콜인 BitVM2를 제안했습니다.
루트스톡 랩과 페어게이트 랩의 구성원들은 BitVMX 백서를 발표했으며, BitVM1과 유사하게 비트코인 스크립팅을 통해 다음을 시뮬레이션하고자 합니다. 범용 CPU(오프체인)의 효과를 시뮬레이션하고자 합니다.
현재 BitVM 관련 개발자 생태계 구축이 날이 갈수록 명확해지고 있으며, 주변 도구의 반복적인 개선이 육안으로 확인되고 있습니다. 작년에 비해 오늘날의 BitVM 생태계는 초기의 " 작년에 비해 오늘날의 BitVM 생태계는 '하늘 위의 성'에서 '눈에 보이는 성'이 되었으며, 이로 인해 점점 더 많은 개발자와 VC가 비트코인 생태계에 뛰어들고 있습니다.
그러나 대부분의 사람들에게 비트코인의 두 번째 계층과 관련된 기술 용어, 특히 비트코인 스크립팅과 탭루트에 대한 배경 지식과 같은 기본 사항을 체계적으로 이해해야 하는 BitVM을 이해하는 것은 쉬운 일이 아닙니다. 기존의 온라인 참고 자료는 너무 길고 복잡하거나 이해하기에 충분할 정도로 충분히 설명하지 않습니다. 우리는 이러한 문제를 해결하기 위해 최선을 다하고 있으며, 가능한 한 많은 사람들이 가능한 한 명확한 언어로 비트코인 2차 계층에 대한 주변 지식을 이해하고, BitVM 시스템을 체계적으로 이해할 수 있도록 돕고자 합니다.
MATT와 커미트먼트: BitVM의 이념
먼저 강조하고 싶은 것은 BitVM의 이념은 '모든 것을 머클화한다'는 뜻의 MATT이며, 주로 나무와 같은 데이터 저장 구조인 머클 트리를 사용하여 복잡한 프로그램 실행 과정을 보여줌으로써 BitVM을 보다 효율적으로 만들고자 하는 것입니다. 프로그램 실행 과정을 통해 비트코인 네이티브 검증의 위조 방지에 성공했습니다.
MATT는 복잡한 프로그램과 그 데이터 처리 추적을 표현하지만, 이 데이터의 전체 크기가 매우 크기 때문에 이 데이터를 BTC 체인에 직접 게시하지는 않습니다. MATT를 사용하는 체계는 체인 아래 머클 트리에 데이터를 저장하고 머클 트리의 최상위 요약(머클 루트)만 체인에 게시합니다. 이 머클 트리는 세 가지 핵심 요소를 포함합니다:
- 스마트 컨트랙트 스크립팅 코드
- 컨트랙트에 필요한 데이터
- 계약에 필요한 데이터
- 컨트랙트 실행 시 남겨진 흔적(EVM과 같은 가상 머신에서 스마트 컨트랙트가 실행되는 동안 메모리 및 CPU 레지스터에 변경된 기록)
(머클 트리의 간단한 도식, 머클 루트가 다이어그램 하단의 8개 데이터 조각에서 여러 계층의 해시를 통해 계산되는 간단한 머클 트리의 도식)
매트 방식에서는 크기가 매우 작은 머클 루트만 체인에 저장되고 머클 트리에 포함된 전체 데이터 세트가 저장됩니다. 머클 트리에 포함된 전체 데이터 세트는 "커미트먼트"라는 개념을 사용하는 체인 아래에 저장됩니다. 다음은 "커밋"이 무엇인지에 대한 설명입니다.
커밋은 간결한 선언문과 같으며, 대량의 데이터를 압축한 지문이라고 생각할 수 있습니다. 일반적으로 체인에 '약속'을 게시하는 사람은 오프체인에 저장된 데이터 중 일부가 정확하며, 오프체인 데이터가 간결한 진술, 즉 '약속'에 해당한다고 주장합니다.
어떤 시점에서 데이터의 해시는 데이터 자체에 대한 "약속"으로 사용될 수 있으며, 다른 약속 체계에는 KZG 약속이나 머클 트리가 포함됩니다. 레이어2의 일반적인 사기 증명 프로토콜에서는 데이터 게시자가 전체 데이터 세트를 오프체인에 게시하고, 온체인에 데이터 세트를 약속합니다. 누군가 체인 아래의 데이터 세트에 유효하지 않은 데이터가 있음을 발견하면, 체인 상의 데이터 약속에 대해 이의를 제기합니다.
커미트먼트를 통해 레이어 2는 대량의 데이터를 분석하고 비트코인 체인에 "커미트먼트"만 게시할 수 있습니다. 물론, 오프체인에 게시된 전체 데이터 세트는 외부에서 관찰할 수 있도록 보장합니다.
현재 몇 가지 주요 BitVM 스키마는 기본적으로 유사한 추상화 구조를 사용합니다:
1. 프로시저 분해 및 커밋:첫째, 복잡한 프로시저는 여러 개의 더 기본적인 연산 (컴파일)한 다음, 이러한 코드가 구체적으로 실행될 때 생성되는 흔적을 기록합니다(쉽게 말해, 프로그램이 CPU와 메모리에서 실행될 때 변경된 상태의 전체 기록을 트레이스라고 합니다). 그런 다음 Trace와 연산 코드를 포함한 모든 데이터를 수집하여 데이터 집합으로 구성한 다음 해당 데이터 집합에 대한 프로미스를 생성합니다.
특정 커미션 체계는 머클 트리, PIOP(다양한 ZK 알고리즘), 해시 함수 등 다양한 형태가 있습니다
2. 자산 서약과 사전 서명:. 데이터 게시자와 검증자는 사전 서명을 통해 일정량의 자산을 체인에 잠가야 하며, 제약 조건이 있습니다. 이러한 조건은 향후 발생할 수 있는 사건에 대응하여 트리거되며, 데이터 게시자가 악의적인 행위를 할 경우 검증자는 증거를 제출하여 데이터 게시자의 자산을 빼앗을 수 있습니다
3.데이터 및 커밋 게시:데이터 및 커밋 게시:데이터 게시를 합니다. /strong>데이터 게시자는 체인에 커밋을 게시하고, 전체 데이터 세트는 체인 외부에 게시되며, 검증자는 데이터 세트를 검색하고 오류를 확인합니다. 체인 아래의 데이터 세트의 각 부분은 체인 상의 약속과 상관관계를 갖습니다.
4. 챌린지와 페널티:검증자는 데이터 게시자가 제공한 데이터에서 오류를 발견하면 해당 부분을 체인 위로 가져와 직접 검증합니다(데이터의 해당 부분을 먼저 매우 잘게 쪼개서 검증하는 것). 위조 증명 논리입니다. 검증 결과 데이터 게시자가 유효하지 않은 데이터를 체인 아래로 제공한 것으로 밝혀지면, 이의를 제기한 검증자가 해당 자산을 가져갑니다.
정리를 하자면, 데이터 게시자인 앨리스는 오프체인에서 2단계 트랜잭션이 실행되는 동안 생성된 모든 추적을 공개하고 그에 해당하는 약속을 체인에 게시합니다. 데이터의 일부가 잘못되었다는 것을 증명하려면 먼저 데이터의 일부가 체인의 약속과 연관되어 있다는 것을 비트코인 노드에게 증명하고, 즉 이 데이터가 앨리스 자신에게 공개되어 있다는 것을 증명한 다음, 비트코인 노드가 데이터의 일부가 잘못되었다고 판단하도록 해야 합니다.
이제 BitVM의 전반적인 개념을 이해했으니, 모든 BitVM 변형은 기본적으로 위의 패러다임을 따릅니다. 이제 비트코인 스크립팅과 탭루트, 사전 서명의 기본부터 시작하여 위 프로세스에서 사용되는 몇 가지 중요한 기술을 배우고 이해해 보겠습니다.
비트코인 스크립트란 무엇인가요
비트코인은 이더보다 이해하기가 훨씬 어렵고, 송금의 기본조차도 다음을 포함합니다. UTXO(미사용 트랜잭션 출력), 스크립트 잠금(ScriptPubKey라고도 함), 스크립트 잠금 해제(ScriptSig라고도 함) 등 다양한 개념이 필요합니다. 이러한 핵심 개념부터 설명하겠습니다.
(비트코인 스크립트) 코드 예시 상위 언어보다 낮은 수준의 연산자로 구성됨)
이더의 자산 표현은 각 이체가 다른 계좌의 잔액에 더하거나 뺄 뿐이며, 이 방법은 계좌를 중심으로 자산의 잔액이 계좌 이름 아래의 숫자에 불과한 알리페이나 위챗과 비슷하지만 비트코인의 자산 표현은 모든 이체가 다른 계좌의 잔액에 더하거나 빼는 것일 뿐인 Alipay 또는 WeChat과 유사합니다. 숫자; 비트코인의 자산 표현은 금과 비슷하며, 각 금(UTXO)은 소유자를 표시하며, 송금은 실제로 이전 UTXO를 소멸시키고 새로운 UTXO를 생성하는 것입니다(소유자가 변경됨).
비트코인 UTXO에는 두 가지 주요 필드가 있습니다.
사토시(1,000,000) 단위로 측정된 금액은 전송되는 돈의 액수입니다. )"(1억 사토시는 1BTC)
잠금 스크립트, 즉 "ScriptPubKey"는 UTXO 잠금 해제 조건을 정의합니다.
비트코인 UTXO의 소유권은 잠금 스크립트를 통해 표현되며, UTXO를 샘에게 양도하려면 트랜잭션을 시작하여 UTXO 중 하나를 소멸시키고 새로 생성된 소유권을 설정하면 됩니다. UTXO를 Sam에게 전송하려면 트랜잭션을 시작하여 UTXO 중 하나를 파기하고 새로 생성된 UTXO의 잠금 해제 조건을 "Sam만 잠금 해제할 수 있음"으로 작성하면 됩니다.
그 후, 샘이 비트코인을 사용하려면 잠금 해제 스크립트(ScriptSig)를 제출해야 하며, 샘임을 증명하기 위해 디지털 서명을 제시해야 합니다. 잠금 해제 스크립트가 앞서 언급한 잠금 스크립트와 일치하면 샘은 해당 비트코인을 잠금 해제하고 다른 사람에게 다시 전송할 수 있습니다.
(잠금 스크립트와 잠금 스크립트가 일치해야 함) 잠금 스크립트와 일치하는 스크립트)
프레젠테이션 관점에서 보면, 비트코인 체인의 각 트랜잭션은 여러 입력과 출력에 해당하며, 각 입력은 잠금 해제하려는 특정 UTXO를 선언해야 합니다. 잠금 해제 스크립트를 제출하여 해당 UTXO를 잠금 해제하고 파기해야 하며, 출력은 새로 생성된 UTXO에 대한 정보를 표시하여 잠금 스크립트의 내용을 대중에게 공개합니다.
예를 들어, 트랜잭션의 Input에서 자신이 Sam임을 증명하고, 다른 사람이 제공한 여러 개의 UTXO를 잠금 해제하고, 균일하게 파괴한 다음, 향후 XXX가 잠금 해제하도록 허용한다는 문구가 포함된 여러 개의 새 UTXO를 생성한다고 가정해 보겠습니다.
특히, 트랜잭션의 입력 데이터에서 잠금 해제할 UTXO를 선언하고 UTXO 데이터의 '저장 위치'를 표시합니다. 비트코인은 이더와 매우 다른 점이 있는데, 이더는 데이터를 저장하기 위해 컨트랙트 계정과 EOA 계정을 모두 제공하며, 자산의 잔액은 컨트랙트 계정 또는 EOA 계정 이름으로 숫자로 기록되어 "스테이트 오브 더 월드"라는 데이터베이스에 저장되어 "스테이트 오브 더 월드"에서 직접 송금하는 데 사용된다는 점에 유의해야 합니다. 자금을 이체할 때 '스테이트 오브 더 월드'에서 직접 특정 계좌를 변경할 수 있어 데이터가 저장된 위치를 쉽게 찾을 수 있습니다.
비트코인은 스테이트 오브 더 월드 설계가 없으며 자산 데이터가 과거 블록에 분산되어 저장됩니다(즉, 잠금 해제된 UTXO 데이터는 각 거래의 OutPut에 별도로 저장됩니다). 트랜잭션은 아웃풋에 별도로 저장됩니다).
잠금을 해제하려는 경우 UTXO 정보가 존재하는 과거 트랜잭션의 출력을 명시하고, 해당 트랜잭션의 ID(해시)를 제시하면 비트코인 노드가 기록을 통해 이를 찾을 수 있습니다.". 특정 주소의 비트코인 잔액을 확인하려면 처음부터 모든 블록을 탐색하여 주소 xx와 관련된 잠금 해제된 UTXO를 찾아야 합니다.
일반적으로 비트코인 지갑을 사용할 때는 지갑 서비스 자체가 블록을 탐색하여 모든 주소의 색인을 생성하므로 특정 주소가 보유한 비트코인의 잔액을 빠르게 확인할 수 있는 경우가 많지만, 이는 지갑 서비스 자체에서 블록을 탐색하기 때문입니다. 더 쉽게 빠르게 확인할 수 있습니다.
(트랜잭션을 생성할 때) 문을 사용하여 다른 사람에게 UTXO를 전달할 때, 해당 UTXO가 속한 거래의 해시/ID를 기반으로 비트코인 기록에서 UTXO의 위치를 표시합니다)
비트코인 거래의 결과는 흥미롭게도 체인 아래에서 계산됩니다. 사용자가 로컬 장치에서 트랜잭션을 생성할 때는 입력과 출력을 직접 생성해야 하며, 이는 트랜잭션의 출력을 계산하는 것과 동일합니다. 그런 다음 트랜잭션은 비트코인 네트워크에 브로드캐스트되고 체인에 업로드되기 전에 노드의 검증을 받습니다. 이 "오프체인 계산 - 온체인 검증" 모델은 트랜잭션 입력 매개변수만 제공하면 이더 노드에서 결과를 계산하여 출력하는 이더와는 완전히 다른 방식입니다.
또한, UTXO의 잠금 스크립트는 사용자 정의가 가능하며, "비트코인 주소 소유자만 잠금 해제 가능"하도록 UTXO를 설정할 수 있습니다. 디지털 서명과 공개 키(P2PKH)가 필요한 "비트코인 주소의 소유자만 잠금 해제 가능"으로 UTXO를 설정할 수 있습니다. 그리고 P2SH(Pay-to-Script-Hash) 거래 유형에서는 UTXO 잠금 스크립트에 스크립트 해시를 추가할 수 있으며, 이 해시에 해당하는 원본 스크립트 이미지를 제출하고 해당 원본 스크립트 이미지에 미리 설정된 조건을 충족하는 사람은 누구나 UTXO의 잠금을 해제할 수 있습니다. BitVM이 의존하는 탭루트 스크립트는 P2SH와 유사한 기능을 사용합니다.
비트코인 스크립트가 트리거되는 방법
여기서는 비트코인 스크립트 트리거의 사례 연구로 P2PKH를 사용하겠습니다. P2PKH는 "공개 키 해시에 지불"이라고 불리며, UTXO의 잠금 스크립트가 공개 키 해시를 설정하고 잠금 해제 시 해당 해시에 대한 공개 키 해시를 제출해야 합니다. 이 경우 UTXO가 잠금 스크립트에 공개키 해시를 설정하고, 잠금 해제 시 해당 해시에 해당하는 공개키를 제출해야 합니다.
이 때 비트코인 노드는 잠금 해제 스크립트의 공개키가 잠금 스크립트에 지정된 공개키 해시와 일치하는지, 즉 잠금 해제를 시도하는 사람이 제출한 '키'가 UTXO가 제출한 키와 동일한지 확인해야 합니다. 즉, 잠금 해제자가 제출한 '키'와 UTXO가 미리 설정한 '잠금'이 서로 일치하는지 확인해야 합니다.
또한 P2PKH 시나리오에서 비트코인 노드는 트랜잭션을 수신하고 사용자가 제공한 잠금 해제 스크립트 ScriptSig를 UTXO의 잠금 스크립트인 ScriptPubkey와 연결하여 BTC 스크립트의 실행 환경에 넣습니다. 다음 그림은 실행 전 스플라이스를 보여줍니다. 다음 그림은 실행 전 스플라이스를 보여줍니다:
아마도 독자들은 가 BTC 스크립트 실행 환경에 대해 잘 모를 수 있으므로 간단히 소개합니다. 먼저, BTC 스크립트는 두 가지 요소로 구성됩니다.
데이터와 옵코드. 데이터와 옵코드는 왼쪽에서 오른쪽 순서로 스택에 눌러지고 지정된 로직에 따라 실행되어 최종 결과를 얻습니다(스택이 무엇인지에 대한 자세한 설명은 하지 않겠지만, 이는 Chatgpt의 독자에게 맡기겠습니다).
위 이미지를 예로 들어보면, 왼쪽에는 누군가 업로드한 잠금 해제 스크립트 ScriptSig에 디지털 서명과 공개 키가 포함되어 있고, 오른쪽에는 UTXO를 생성하기 위해 UTXO의 작성자가 설정한 옵코드와 데이터 스크립트가 포함되어 있는 잠금 스크립트 ScriptPubkey가 있습니다. 옵코드와 데이터 (여기서는 각 옵코드의 의미를 알 필요 없이 일반적인 이해만 있으면 됩니다).
위 이미지 오른쪽의 잠금 스크립트에 있는 DUP, HASH160, EQUALVERIFY 옵코드는 왼쪽의 잠금 해제 스크립트에 포함된 공개키의 해시를 가져와 잠금 스크립트에 미리 설정된 공개키 해시와 비교하여 둘이 동일한지 확인하는 역할을 담당합니다. 둘이 같으면 잠금 해제 스크립트에 업로드한 공개키가 잠금 스크립트에 미리 설정한 공개키 해시와 일치하여 1차 검증을 통과한 것입니다.
그러나 UTXO 잠금 스크립트의 내용은 실제로 체인에 공개되어 있기 때문에 누구나 그 안에 포함된 공개키 해시를 관찰할 수 있고, 누구나 해당 공개키를 업로드하여 자신이 "임명된" 사람이라고 거짓으로 주장할 수 있다는 문제점이 있습니다. 따라서 공개 키와 공개 키 해시를 확인한 후에는 거래의 개시자가 실제로 공개 키의 실제 컨트롤러인지 확인해야 하며, 이를 위해서는 디지털 서명을 확인해야 합니다. 디지털 서명 확인은 잠금 스크립트의 CHECKSIG 연산자가 담당합니다.
요약하면, P2PKH 체계에서 트랜잭션 개시자는 잠금 스크립트에 지정된 공개 키의 해시와 일치해야 하는 공개 키와 디지털 서명이 포함된 잠금 해제 스크립트를 제출하고 거래가 올바르게 디지털 서명되어 이러한 조건이 충족되어야 UTXO를 성공적으로 잠금 해제할 수 있습니다.
(이 다이어그램은 동적입니다: P2PKH 방식에 따른 비트코인 잠금 해제 스크립트 도식
출처:https://learnmeabitcoin.com/ (기술/스크립트 )
물론 비트코인 네트워크에는 공개 키/공개 키로 지불뿐만 아니라 여러 가지 거래 유형이 지원됩니다. 해시뿐만 아니라 P2SH(스크립트 해시에 지불) 등 모두 UTXO 생성 시 사용자 지정 잠금 스크립트가 무엇으로 설정되어 있는지에 따라 달라집니다.
여기에서 주목해야 할 점은 P2SH 체계에서는 잠금 스크립트에 스크립트 해시를 미리 설정할 수 있지만, 잠금 해제 스크립트는 스크립트 해시에 해당하는 스크립트의 전체 내용을 제출해야 합니다. 비트코인 노드는 이 스크립트를 실행할 수 있으며, 다중 서명 확인 로직이 이 스크립트에 정의되어 있으면 비트코인 체인에서 다중 서명 지갑 효과를 구현하는 데 사용할 수 있습니다.
물론 P2SH 시나리오에서 UTXO 생성자는 향후 UTXO를 잠금 해제하는 사람에게 해당 스크립트에 해당하는 스크립트 해시의 내용을 미리 알려줘야 하며, 양측이 이 스크립트의 내용을 알고 있다면 다중 서명보다 더 복잡한 비즈니스 로직을 구현할 수 있습니다.
명확하게 말하면, 비트코인 체인은 어떤 UTXO가 어떤 주소와 연결되어 있는지 직접 기록하지 않고, 어떤 공개 키 해시/어떤 스크립트 해시에 의해 UTXO를 잠금 해제할 수 있는지만 기록하지만, 공개 키 해시/스크립트 해시를 기반으로 어떤 주소(지갑 인터페이스에서 스크립트를 표시하는 부분)가 어떤 UTXO에 해당하는지 빠르게 파악할 수 있습니다. 주소(지갑 인터페이스 디스플레이에서 횡설수설하는 것처럼 보이는 비트)를 기반으로 어떤 UTXO에 해당하는지 빠르게 파악할 수 있습니다.
블록 탐색기와 지갑 인터페이스에서 xx 주소에 xx 양의 비트코인을 볼 수 있는 이유는 블록 탐색기와 지갑 프로젝트가 데이터를 파싱하고 모든 블록을 스캔하여 잠금 스크립트에 선언된 공개 키 해시/스크립트 해시를 기반으로 해당 '주소'를 계산하기 때문입니다. "xx 주소"라는 이름으로 몇 개의 비트코인이 있는지 표시합니다.
분리된 증인과 증인
P2SH의 개념을 이해하면 BitVM의 기반이 되는 탭루트에 한 걸음 더 가까워진 것입니다. 하지만 그 전에 중요한 개념인 증인과 격리된 증인을 이해해야 합니다.
앞서 언급한 잠금 해제 및 잠금 스크립트와 UTXO 잠금 해제 과정을 다시 살펴보면, 트랜잭션의 디지털 서명이 잠금 해제 스크립트에 포함되어 있고, 잠금 해제 스크립트는 서명을 생성할 때 포함될 수 없으므로(서명 생성에 사용되는 매개변수에 서명 자체를 포함할 수 없음), 디지털 서명은 잠금 해제 스크립트 외부의 부분, 즉 전체 트랜잭션 데이터가 아닌 트랜잭션 데이터의 백본에만 연결될 수 있습니다.
이렇게 하면 중개자에 의해 거래의 잠금 해제 스크립트가 변조되더라도 서명 확인 결과에는 영향을 미치지 않습니다. 예를 들어 비트코인 노드나 마이닝 풀은 거래의 잠금 해제 스크립트에 다른 데이터를 넣어 서명 확인이나 거래 결과에 영향을 주지 않고 거래 데이터를 약간 변경할 수 있으며, 계산이 끝날 때 거래 해시/거래 ID는 변경됩니다. 이를 트랜잭션 확장성 문제라고 합니다.
이 방식의 단점은 순차적 종속성이 있는 여러 트랜잭션을 연속으로 시작하려는 경우(예: 트랜잭션 3은 트랜잭션 2의 출력을 참조하고 트랜잭션 2는 트랜잭션 1의 출력을 참조), 행 뒤의 트랜잭션은 반드시 앞쪽의 ID(해시)와 채굴 풀 또는 비트코인 노드를 참조한다는 것입니다. 마이닝 풀이나 비트코인 노드와 같은 중개자는 잠금 해제 스크립트의 내용을 미세 조정하여 업로드된 후 트랜잭션의 해시가 예상과 일치하지 않도록 할 수 있으며, 그러면 미리 생성한 여러 개의 순차적으로 관련된 트랜잭션이 실패하게 됩니다.
실제로 DLC Bridge 및 BitVM2 시나리오에서는 순차적 상관관계가 있는 트랜잭션이 대량으로 빌드되므로 앞서 언급한 시나리오가 드물지 않게 발생합니다.
단순히 말해, 트랜잭션은 트랜잭션과 동일한 문제를 가지고 있습니다. 확장성 문제는 트랜잭션 ID/해시가 잠금 해제 스크립트의 데이터를 포함하도록 계산되고 비트코인 노드와 같은 중개자가 잠금 해제 스크립트의 내용을 미세 조정하여 사용자가 예상하는 것과 일치하지 않는 트랜잭션 ID를 생성할 수 있기 때문입니다. 사실 이는 비트코인의 초기 설계가 제대로 고려되지 않아서 남은 역사적 잔재입니다.
나중에 도입된 분리된 증인/세그윗 업그레이드는 트랜잭션 ID를 잠금 해제 스크립트에서 완전히 분리하여 트랜잭션 해시를 계산할 때 잠금 해제 스크립트 데이터를 포함할 필요가 없게 했습니다. 세그윗 업그레이드를 따르는 UTXO 잠금 스크립트는 기본적으로 "OP_0"이라는 옵코드를 설정하여 토큰으로 작동하며, 해당 잠금 해제 스크립트의 이름은 시그스크립트에서 위트니스로 변경됩니다.
Witness 격리 규칙을 따르면 트랜잭션 확장성 문제를 해결할 수 있습니다. 가 적절히 해결될 것이며 비트코인 노드로 전송되는 트랜잭션 데이터를 미세 조정하는 것에 대해 걱정할 필요가 없습니다. 물론 너무 복잡하게 생각할 필요는 없으며, P2WSH의 기능은 앞서 이야기한 P2SH와 근본적으로 다르지 않으며, UTXO 잠금 스크립트에 스크립트 해시를 미리 설정하고 잠금 해제 스크립트 제출자가 해시에 해당하는 스크립트 내용을 체인에 제출하고 실행할 때까지 기다릴 수 있습니다.
그러나 구현하려는 스크립트의 크기가 특히 크고 코드가 많은 경우, 일반적인 방법으로는 전체 스크립트를 비트코인 체인에 제출할 수 없습니다(블록당 크기 제한이 있음). 그렇다면 어떻게 해야 할까요? 체인에 대한 스크립트 내용을 간소화하고 단순화하기 위해 탭루트를 활용해야 하며, BitVM은 탭루트를 기반으로 구축된 정교한 솔루션입니다.
이 글에서는 BitVM, 비트코인 스크립팅, 분리된 증인의 기본 개념에 대해 설명합니다.
JinseFinanceBitVM은 비트코인 생태계의 최신 핫 프로토콜로, 비트코인을 기반으로 구축된 모든 프로젝트에 혜택을 줄 수 있는 잠재력을 가지고 있습니다. BitVM의 설계와 비트코인을 위한 새로운 가능성에 대해 이야기해 보겠습니다.
JinseFinance비트브이엠,레이어2,BTC,IOSG |비트브이엠: 비트코인 프로그래밍 가능성의 여명 황금 금융,비트코인 확장 솔루션의 급속한 확장
JinseFinanceBitVM2는 누구나 인증자로 활동할 수 있는 대담한 변형입니다.
JinseFinanceBitVM 기술은 비트코인 확장에 매우 유리하지만, 아직 초기 단계에 있으며 효율성과 보안에 몇 가지 문제가 있습니다.
JinseFinance이 설계의 주요 목표는 비트코인 블록체인을 위해 특별히 맞춤화된 레이어2 네트워크를 구축하는 것입니다.
JinseFinance그렇다면 비트코인 네트워크에 배치할 검증자의 로직은 어떻게 구현할 수 있을까요?
JinseFinance비트브이엠은 비트코인의 핵심 원칙과 보안을 유지하면서 이더리움의 탈중앙 금융을 복제하지 않고 비트코인의 확장성을 향상하고 라이트닝 네트워크의 한계를 해결하는 데 중점을 둡니다.
Cheng Yuan제로싱크가 도입한 비트브이엠은 비트코인의 스마트 컨트랙트를 강화하여 합의 업그레이드 없이도 비트코인의 표현력과 기능을 향상시키는 것을 목표로 합니다.
Sanya