블록체인/레벨 IV · 프로토콜 심화/4.2 업그레이드/수업 5
코버넌트와 볼트: CTV, OP_CAT, 그리고 2026년 논쟁
다음 지출을 제한하는 규칙, 그리고 그 규칙이 확보해 주는 유예 시간
준비물BIP119(OP_CHECKTEMPLATEVERIFY) 사본BIP347 사본(탭루트에서 OP_CAT 다시 활성화)스크립트 검증 로직이 담긴 Bitcoin Core 소스 코드트랜잭션 조회 기능을 갖춘 블록 탐색기
호기심
- 왜 표준 비트코인 스크립트는 누가 키를 가지고 있는지는 확인할 수 있지만, 코인이 어디로 가는지는 확인할 수 없을까요?
- OP_CHECKTEMPLATEVERIFY는 향후 거래에 어떤 구체적인 제약을 가하나요?
- 연결(concatenation) 옵코드 하나를 소프트 포크로 다시 활성화하는 것이 왜 코버넌트로 가는 문을 열어 줄까요?
탐구
- 표준 비트코인 스크립트는 키나 해시의 소유권을 확인할 뿐, 잠금이 해제된 뒤 코인이 어디로 가는지는 제한할 수 없습니다. 코버넌트는 후속 출력의 `scriptPubKey`에 조건을 부과함으로써 이를 바꿉니다. 이 메커니즘은 흔히 식권에 비유됩니다. 어디서나 쓸 수 있는 현금과 달리, 이 자금은 특정 제휴 식당에서만 쓸 수 있습니다. 제안된 활용 사례로는 출금 지연 경로가 있는 볼트(vault), 혼잡 제어, 더 단순한 라이트닝 설계 등이 있습니다.
- 제레미 루빈은 2019년에 OP_CHECKTEMPLATEVERIFY(CTV)를 제안했습니다. 이 옵코드는 미래 트랜잭션 템플릿의 해시를 현재 UTXO에 담습니다. 이를 지출하려면 지출 트랜잭션 자체가 이 템플릿과 정확히 일치해야 하며, 검증 단계에는 서명이 관여하지 않습니다. 현재 단계를 실행하기 전에 다음 단계를 미리 고정해 두는 것입니다. 금액, 목적지, 스크립트 구조에 조금이라도 차이가 있으면 검증이 즉시 실패하므로, 미리 정해진 경로를 엄격하게 따르게 됩니다.
- CTV의 한계는 경직성입니다. 코인이 잠기는 시점에 다음 트랜잭션의 출력이 고정되므로, 수수료는 앵커 출력과 CPFP(child-pays-for-parent) 같은 다른 방법으로 처리해야 합니다. 그 대신 CTV는 분석이 간단하고 검증 비용이 저렴합니다.
- 두 스택 항목을 이어 붙이는 옵코드인 OP_CAT은 메모리 고갈 공격에 대한 예방 조치로 2010년 사토시 나카모토가 비활성화했습니다. BIP347은 이를 탭스크립트 안에서만 다시 활성화하자고 제안합니다. 슈노어 서명 기법과 결합하면, OP_CAT은 사용 사례마다 새로운 합의 규칙을 만들 필요 없이 코버넌트와 기타 복잡한 로직을 구현할 수 있게 해 줍니다. 개발자가 조합해 미래 트랜잭션에 대한 맞춤형 제한을 만들 수 있는 기본 구성 요소를 제공하는 것입니다.
- 관련 제안으로는 OP_CHECKSIGFROMSTACK(BIP348)이 있습니다. 이 옵코드는 지출 트랜잭션이 아니라 스택에 제공된 임의의 메시지에 대한 서명을 검증합니다. 이러한 유연성을 CTV(또는 별도로 제안된 ANYPREVOUT)와 결합하면, 어느 쪽도 과거의 모든 채널 상태에 대한 페널티 데이터를 저장할 필요가 없는 대칭형 라이트닝 채널이 가능해질 것입니다.
- 2026년 현재 이러한 코버넌트 제안은 하나도 활성화되지 않았지만, 활성화를 위한 노력과 논쟁은 계속되고 있습니다. 그 유용성, 합의 규칙에 더해지는 위험, 활성화에 필요한 거버넌스 절차를 둘러싼 논쟁도 이어지고 있습니다. 합의 규칙의 확장은 네트워크 복잡성과 장기적인 유지보수에 관한 질문을 제기하며, 이는 커뮤니티 안에서 아직 해결되지 않았습니다.
- 현재 비트코인 스크립트는 서명이나 락타임처럼 현재 트랜잭션에 대한 조건을 검증합니다. 지출하는 트랜잭션의 아웃풋은 검사할 수 없습니다. 코버넌트는 이 범위를 넓힙니다. scriptPubKey가 자신을 지출하는 트랜잭션이 생성하는 아웃풋의 scriptPubKey에 제약을 걸 수 있게 되는 것입니다. 이를 통해 코인이 다음에 이동할 수 있는 곳이 제한되며, 주소 화이트리스트나 비대화형 결제 채널 같은 기능이 가능해집니다.
- BIP-119는 OP_CHECKTEMPLATEVERIFY(CTV)를 제안합니다. CTV를 사용하면 스크립트에 템플릿 해시를 넣을 수 있으며, 지출 트랜잭션은 아웃풋, 입력 개수, 시퀀스, 락타임, 버전이 이 템플릿과 일치해야 합니다. 단, 어떤 입력을 지출하는지는 일치할 필요가 없습니다. CTV는 비재귀적이어서 바로 다음 단계만 제약합니다. OP_NOP4를 대체하며 소프트포크가 필요합니다. 또한 도난 복구에 시간 지연을 더하는 '볼트'의 기반이 될 수 있습니다.
- 볼트에서는 출금이 대기 기간(예: 12시간)을 거쳐야 하며, 그동안 별도의 복구 키로 자금을 안전한 곳으로 옮길 수 있습니다. 공격자가 일상용 키를 훔쳐 출금을 시작하면, 소유자는 온체인에서 이를 확인하고 지연 기간이 끝나기 전에 자금을 회수합니다. 피해자가 체인을 모니터링한다는 전제하에, 이는 키 도난을 되돌릴 수 없는 손실에서 복구 가능한 사건으로 바꿔 놓습니다.
- 2013년부터 논의가 이어졌지만 코버넌트 소프트포크는 아직 하나도 활성화되지 않았습니다. 탭루트(2021년 11월)가 여전히 마지막 주요 업그레이드입니다. 2026년 2월, 비트코인 코어의 관여 없이 BIP-119용 활성화 클라이언트가 공개되었습니다. 이 클라이언트는 2026년 3월부터 2027년 3월 사이에 채굴자 90%의 시그널링을 요구합니다. 2026년 5월 기준 시그널링은 거의 0에 머물러, 도입에 대한 합의가 없음을 보여 줍니다.
- OP_CAT(BIP-347)은 2026년 3월에 사양이 완성되었지만 활성화 파라미터는 없습니다. OP_CAT은 스크립트 요소를 이어 붙일 수 있게 해 CTV만으로 가능한 것보다 복잡한 로직을 구현할 수 있게 합니다. CTV는 흔히 CheckSigFromStack(CSFS)과 짝을 이루는데, CSFS는 지출 트랜잭션뿐 아니라 스택에 있는 임의의 데이터에 대한 서명도 검증합니다. 둘을 함께 쓰면 스마트 컨트랙트와 프로토콜 설계의 표현력이 크게 향상됩니다.
- 논쟁의 핵심은 트레이드오프입니다. 코버넌트는 보안을 강화하고 볼트 같은 새로운 프로토콜을 가능하게 하지만, 복잡성과 거버넌스 위험을 동반합니다. 소프트포크는 합의 규칙을 바꾸므로 채굴자와 노드 운영자의 폭넓은 동의가 필요합니다. 현재의 정체는 구현 버그와 체인 상태 변경의 비가역성에 대한 신중함을 반영합니다. 사용자는 이러한 이점과 활성화가 실패하거나 논란에 휩싸일 위험을 저울질해야 합니다.
파트 I코버넌트 제안: CTV와 OP_CAT
파트 II코버넌트와 볼트: 2026년의 논쟁
핵심 사실
- 코버넌트는 현재의 잠금 해제 조건뿐만 아니라 미래 트랜잭션의 `scriptPubKey`도 제한합니다.
- OP_CHECKTEMPLATEVERIFY(BIP119)는 출력을 그 지출 트랜잭션의 정확한 형태에 커밋합니다.
- CTV는 미래 트랜잭션의 세부 사항을 미리 계산해야 하므로, 금액과 수수료가 생성 시점에 고정됩니다.
- OP_CAT은 2010년에 비활성화되었지만, BIP347(2023-2024)을 통해 탭스크립트에서 다시 활성화하자는 제안이 나왔습니다.
- BIP348은 스택에서 가져온 메시지에 대한 서명을 검증하는 OP_CHECKSIGFROMSTACK을 제안합니다.
- 2026년 현재 활성화된 코버넌트 제안은 없으며, 유용성과 위험성, 활성화를 둘러싼 논쟁은 계속되었습니다.
- 코버넌트는 UTXO를 지출하는 트랜잭션의 아웃풋을 제한합니다.
- BIP-119(CTV)는 활성화를 위해 2026년 3월부터 2027년 3월 사이에 채굴자 90%의 시그널링이 필요합니다.
- 2026년 5월 기준 BIP-119에 대한 시그널링은 0%에 가까웠습니다.
- 탭루트(2021년 11월)가 마지막으로 활성화된 소프트포크이며, 현재 가동 중인 코버넌트는 없습니다.
- OP_CAT은 2026년 3월에 사양이 완성되었으나 활성화 파라미터는 없습니다.
- 볼트는 코버넌트를 이용해 키 도난에 대비한 지연 기간과 회수 경로를 추가합니다.
연습 아홉, 여섯, 셋, 하나
9모으기코버넌트나 스크립트 확장과 관련해 제안된 비트코인 옵코드 또는 메커니즘 9가지를 나열하세요(예: CTV, APO, OP_CAT).
6묶기9가지를 주요 제약 유형에 따라 6개 범주로 분류하세요: 트랜잭션 형태, 키 파생, 연결(concatenation) 로직 등.
3추리기6개 그룹을 유연성과 검증 비용 사이의 3가지 핵심 기술적 트레이드오프로 압축하세요.
1결정화CTV처럼 경직된 코버넌트가 유연한 OP_CAT 기반 스크립트보다 검증 비용이 저렴한 이유를 한 문장으로 설명하세요.
팩트 체크
날짜, 수치 및 주장은 아래에 명시된 출처들을 통해 확인되었습니다.
- J. Rubin, OP_CHECKTEMPLATEVERIFY (BIP119), 2019-2020
- BIP347: OP_CAT in Tapscript (E. Heilman & A. Sabouri, 2023)
- BIP348: CHECKSIGFROMSTACK (B. Black & J. Rubin, 2024)
- Bitcoin Optech, 'Covenants' topic guide
- J. Rubin, BIP-119: OP_CHECKTEMPLATEVERIFY (2020)
- E. Heilman & A. Sabouri, BIP-347: OP_CAT in Tapscript (2024)
- Delving Bitcoin activation discussions (2026)