비트코인(BTC) 상태 저장 계약 노린 MATT 제안, OP_CCV 풀 리퀘스트 32080 등장
비트코인 풀 리퀘스트 32080의 OP_CHECKCONTRACTVERIFY는 계약 상태를 탭루트 키에 커밋해 상태 저장 계약, 볼트, 사기 증명을 가능하게 한다. 검토 현황과 기술 구조를 정리했다.
AI 요약AI
- Bitcoin Core 저장소에 OP_CHECKCONTRACTVERIFY 연산 코드를 담은 풀 리퀘스트 32080이 공개됐다.
- MATT 프레임워크는 커밋된 데이터를 지출 시점에 계산해 다음 출력에 다시 심는다.
- OP_CCV가 OP_CAT과 결합하면 온체인 머클 증명 구성과 검증이 가능해진다.
- James O'Beirne은 OP_CCV가 자신의 OP_VAULT 제안을 사실상 대체한다고 평가했다.
상태를 기억하는 비트코인 스크립트 연산 코드
Bitcoin (BTC) Core 저장소에 공개된 새 제안은 네트워크 스크립트에 지금까지 없었던 기능, 즉 기억을 부여하려 한다. MATT(Merkleize All The Things) 프레임워크는 기본 계층에서 상태 저장 계약과 확장 가능한 사기 증명을 가능하게 하는 설계이며, 가장 직접적인 구현 경로는 풀 리퀘스트 32080에 담긴 연산 코드 OP_CHECKCONTRACTVERIFY, 줄여서 OP_CCV다. 커버넌트는 코인이 향후 거래에서 어디로 쓰일 수 있는지 제약하는 스크립트 규칙이다. 표준 비트코인 스크립트는 모든 거래를 독립적으로 평가하기 때문에 이전 지출이 무엇을 했는지에 대한 기록이 남지 않고, 계약이 정보를 앞으로 끌고 가며 갱신할 수 없다. 커버넌트 제안들은 어느 정도는 상태를 저장하는 UTXO를 허용하지만, OP_CTV 기반의 Sapio 같은 스크립팅 언어는 주소를 유한 상태 기계로 취급하고 각 거래를 상태 전이로 보는 방식으로 이를 처리한다. 커버넌트는 오랫동안 활성화된 비트코인 프로토콜 제안 목록에 있었지만 일반 Script 언어는 그 보장에 미치지 못한다. 문제는 이 기계적 패러다임이 수치 로직을 깔끔하게 표현할 방법이 없다는 점이며, 바로 이 간극을 MATT가 메운다. MATT는 커밋된 데이터를 지출 시점에 계산해 다음 출력에 다시 심는 것을 허용하므로, 각 지출이 미리 정해진 상태 목록에서 고르는 대신 새로운 상태를 동적으로 도출할 수 있다. 이 연산 코드는 탭루트 출력용으로 설계됐으며, 커밋 내용이 별도 스크립트 데이터가 아니라 공개 키 자체에 실린다. 이 차이가 계약이 변동하는 잔액에 적응할 수 있는지, 아니면 사전에 합의된 고정된 결과 트리에만 머물 수 있는지를 가른다. 제안의 대상은 차트에 드러나는 것이라기보다 비트코인 가격 아래의 스크립팅 계층이지만, 지출 시점에 출금 조건을 다시 계산하는 볼트부터 분쟁된 단일 계산 단계만 검증하는 사기 증명 시스템까지, 이 자산이 단순 결제를 넘어 할 수 있는 일의 범위를 정의한다.
트윅된 키와 세 가지 검증 모드
모든 탭루트 출력에는 내부 키라 불리는 기본 공개 키가 들어 있으며, 이 키는 암호학적으로 변형해 추가 정보에 대한 커밋을 담을 수 있다. 트윅된 키는 Q = P + t·G 형태를 취하는데, 여기서 P는 내부 키, G는 secp256k1 타원곡선의 생성점, t는 P와 커밋된 데이터의 태그가 붙은 해시다. 일반 탭루트 출력에서 이 커밋은 보통 숨겨진 지출 경로를 담은 탭트리의 머클 루트를 인코딩한다. MATT는 같은 메커니즘을 활용하면서 계약 상태를 키에 함께 심고, 체인은 각 상태 전이가 유효한지만 검증할 뿐 계약 로직을 실행하지 않는다. 연산 코드는 상태 데이터, 출력 인덱스, 공개 키, 선택적 탭트리, 그리고 모드를 입력으로 받는다. 출력을 검증하는 세 가지 모드가 있고 입력을 검증하는 별도 모드가 하나 더 있다. 기본 모드는 입력 UTXO의 전체 가치를 지정된 출력에 배분한다. 차감 모드는 출력 금액에 해당하는 부분만 배정하고 나머지는 추가 출력을 위해 자유롭게 남긴다. 무시 모드는 금액을 구속하지 않고 스크립트와 데이터 커밋만 검증한다. 기본 모드와 차감 모드가 검증 대상 출력들 사이에서 가치를 보존하기 때문에 거래 수수료는 별도의 수수료 지불 입력을 통해 지불해야 하며, 전용 수수료 입력과 잔돈 출력이 커버넌트 제약과 충돌 없이 함께 탈 수 있다. 이 설계는 OP_CTV나 SIGHASH_ANYPREVOUT 같은 원시적인 커버넌트 방식에서 가능했던 자금 소각 사고를 막고, 금액을 사전에 고정해 동적 수수료 조정이나 부분 언볼트를 수용할 수 없었던 사전 서명 거래 커버넌트의 한계도 해소한다. OP_CCV가 스크립트에서 바이트 연결을 가능하게 하는 OP_CAT과 짝을 이루면 표현력이 다시 커진다. 두 조합은 계약의 지출 스크립트가 아닌 데이터를 담은 두 번째 트리를 상대로 온체인 머클 증명을 구성하고 검증한 뒤, 다음 출력이 갱신된 루트에 커밋하도록 강제할 수 있다. 사기 증명 시스템이 여기서 따라온다. 긴 계산은 오프체인에서 실행되고 분쟁된 단계만 이진 트리 경로와 함께 온체인에서 공개되어 검증된다. 이 계산은 먼저 단계별 이진 표현으로 컴파일되어야 하며, elftrace 이진 회로 도구가 다루는 문제가 바로 여기에 있다. 이 구조는 이더리움 낙관적 롤업의 방식과 대응되며, 같은 사기 증명 모델이 수많은 크로스체인 브리지의 기반이기도 하다. 또한 상태 일관성을 강제하기 위해 람포트 일회용 서명과 사전 서명 거래 그래프에 의존하는 BitVM의 부담을 덜어주고, OP_VAULT가 제안한 볼트 기능을 재현할 수 있다. OP_VAULT의 저자 James O'Beirne은 OP_CCV를 자신의 이전 제안을 사실상 대체하는 더 일반적이고 견고한 설계로 평가했다.
남은 검토 과제
수수료 처리 설계가 OP_CCV를 이전 커버넌트 스케치와 구분하는 지점이다. 기본 모드와 차감 모드가 검증 대상 출력 안에 가치를 가두는 동안 수수료는 별도 입력으로 흐르므로, 사전 서명 흐름이 무너지는 실제 수수료 시장에서도 상태 저장 설계가 동작 가능한 상태를 유지한다. 아직 병합된 것은 없다. 풀 리퀘스트에는 활성화 일정이 명시되어 있지 않으며, 실제 사용은 새 합의 규칙을 강제하는 소프트웨어를 노드 운영자가 실행해야 가능하다. 비트코인의 모든 변경이 거치는 느린 경로다. 홀더 입장에서 좀 더 가까운 함의는 설계 공간의 확장이다. 네이티브 볼트는 자기관리 보증을 위해 래핑된 비트코인에 대한 의존을 줄일 수 있고, 상태 트리는 신뢰할 수 있는 관리인 없이 비트코인 디파이가 결산할 수 있는 범위를 넓힐 수 있다. 남은 절차는
Bitcoin (BTC) Core 리뷰어와 개발자 커뮤니티에 있으며, 이들이 연산 코드의 합의 동작을 감사해야 어느 것이라도 메인넷에 닿는다.
1차 출처
- 풀 리퀘스트 32080 · github.com
- elftrace 이진 회로 도구 · github.com
이 콘텐츠는 인공지능으로 생성되어 AI 검토를 거쳤으며 COINOTAG 편집 감독 하에 게시되었습니다.

