언어 선택

비트코인 계약 해방: 고급 스마트 계약을 위한 형식적 모델

공유 가변 상태 없이 복잡한 스마트 계약, 상태 기계 및 향상된 UTXO 표현력을 가능하게 하는 비트코인 계약의 형식적 모델.
hashratetoken.org | PDF Size: 0.2 MB
평점: 4.5/5
당신의 평점
이미 이 문서를 평가했습니다
PDF 문서 표지 - 비트코인 계약 해방: 고급 스마트 계약을 위한 형식적 모델

1. 서론

비트코인의 미사용 거래 출력(UTXO) 모델은 동시 통화 이체에 있어 우아하지만, 공유 가변 상태의 부재로 인해 복잡한 상태 저장 스마트 계약 구현에 상당한 한계를 보입니다. 계약은 비트코인 스크립트를 확장하기 위해 제안된 중요한 언어적 기본 요소로 부상하며, 하나의 거래가 미래의 상환 거래 스크립트에 제약을 가할 수 있게 합니다. 본 논문은 2013년경 처음 제안된 이후 주로 저수준의 구현 중심 관점에서 설명되어 온 계약에 대한 형식적, 추상적 모델의 공백을 다룹니다. 형식적 기반을 제공함으로써, 이 연구는 계약 속성에 대한 추론을 단순화하고, 비트코인의 현재 능력을 넘어선 고급 사용 사례를 명세화하며, 고수준 프로그래밍 추상화 설계를 용이하게 하는 것을 목표로 합니다.

2. 순수 비트코인 모델

본 논문은 핵심 비트코인 거래 모델의 형식화를 적용합니다. UTXO 모델에서 블록체인 상태는 미사용 거래 출력 집합으로 정의됩니다. 각 출력은 값(비트코인 금액)과 이를 사용하는 데 필요한 조건을 지정하는 scriptPubKey(잠금 스크립트)를 포함합니다. 사용 거래는 scriptSig(해제 스크립트)를 제공하고 소비하려는 UTXO를 참조합니다. 검증은 연결된 스크립트를 실행하는 과정을 포함합니다. 결정적으로, 표준 비트코인 스크립트는 제한적입니다: 서명 검증 및 기본 산술/논리 연산을 넘어 사용 거래의 구조를 내부 검사하거나 제약할 수 없어, 다단계 프로토콜을 강제하는 계약 생성이 불가능합니다.

3. 계약의 형식적 모델

핵심 기여는 제안된 계약 연산 코드(예: OP_CHECKTEMPLATEVERIFY)를 추상화한 형식적 모델입니다.

3.1. 계약 기본 요소 및 구문

이 모델은 비트코인 스크립트의 확장으로서 계약 술어를 도입합니다. 계약은 본질적으로 참 또는 거짓으로 평가되는 제약 $C(T_x, T_{next})$이며, 여기서 $T_x$는 현재 사용 중인 거래이고 $T_{next}$는 제안된 사용 거래입니다. 이 술어는 $T_{next}$의 출력 스크립트, 금액, 잠금 시간과 같은 필드를 검사할 수 있습니다.

3.2. 연산 의미론

검증 규칙이 확장됩니다: 계약이 있는 UTXO의 경우, 사용 거래 $T_{next}$의 검증은 그 scriptSig가 원래의 scriptPubKey를 만족시켜야 할 뿐만 아니라, 계약 술어 $C$가 $(T_x, T_{next})$ 쌍에 대해 성립해야 합니다. 이는 계약 검사를 기존 비트코인 검증 로직에 통합하는 연산 의미론 규칙을 사용하여 형식적으로 정의됩니다.

3.3. 재귀적 계약 및 상태 기계

강력한 변형은 재귀적 계약으로, $C$가 $T_{next}$의 출력 자체에 동일한(또는 관련된) 계약 $C'$을 포함하도록 강제할 수 있습니다. 이는 비트코인에서 상태 기계 구현을 가능하게 합니다: 각 거래는 상태 전이를 나타내며, 계약은 일련의 거래 체인에 걸쳐 상태 기계 규칙이 준수되도록 보장합니다. 본 논문은 이를 각 $i$에 대해 $C(T_i, T_{i+1})$이 성립하는 거래 시퀀스 $T_1, T_2, ..., T_n$으로 형식화합니다.

4. 복잡한 비트코인 계약 명세화

형식적 모델은 순수 비트코인에서는 표현 불가능하거나 번거로운 계약을 명세화하는 데 적용됩니다.

4.1. 금고 및 시간 잠금 인출

계약은 도난당한 자금을 회수할 수 있는 "금고"를 생성할 수 있습니다. 거래는 대규모 인출이 먼저 시간 잠금 출력으로 가야 하도록 요구할 수 있으며, 이는 무단 인출일 경우 소유자가 취소할 수 있게 합니다. 이는 $T_{next}$의 nLockTime 필드와 출력 구조를 검사하는 계약으로 명세화됩니다.

4.2. 결제 채널 및 라이트닝 네트워크

라이트닝 네트워크가 존재하지만, 계약은 그 기반 구성을 단순화하고 안전하게 할 수 있습니다. 계약은 채널의 종료 거래가 가장 최근 상태여야 하도록 강제함으로써, 오래된 상태 브로드캐스트를 방지할 수 있습니다. 이는 사용 거래가 미리 서명된 업데이트와 일치하도록 제약함으로써 이루어집니다.

4.3. 탈중앙화 금융(DeFi) 기본 요소

담보 부채 또는 비수탁 스왑과 같은 간단한 DeFi 구조가 가능해집니다. 계약은 자금을 거래에 잠글 수 있으며, 이 거래는 상대방의 유효한 암호학적 지불 증명 또는 청산 증명을 제시하는 거래에 의해서만 사용될 수 있습니다.

5. 고수준 언어 기본 요소

본 논문은 계약이 고수준 계약 언어의 컴파일 대상으로 어떻게 기능할 수 있는지 논의합니다. "시간 T 이후 인출", "상대방이 서명한 경우에만 사용", "상태를 A에서 B로 전이"와 같은 기본 요소는 특정 계약 제약에 직접 매핑될 수 있어, 비트코인 계약 개발자를 위한 추상화 수준을 높입니다.

6. 핵심 통찰 및 분석가 관점

핵심 통찰: Bartoletti 등은 단순히 또 다른 계약 연산 코드를 제안하는 것이 아닙니다. 그들은 영리한 해킹을 비트코인을 위한 합법적이고 분석 가능한 프로그래밍 패러다임으로 전환하는 데 필요한 형식적 이론을 제공하고 있습니다. 이는 임시 스크립팅을 넘어서, UTXO 블록체인에서 복잡하고 안전한 계약의 체계적인 엔지니어링을 가능하게 하는 열쇠입니다.

논리적 흐름: 주장은 매우 설득력 있게 단순합니다: 1) 비트코인의 UTXO 모델은 상태가 부족하여 계약을 제한합니다. 2) 해결책으로 제안된 계약은 형식적으로 제대로 이해되지 못했습니다. 3) 따라서, 우리는 형식적 모델을 구축합니다. 4) 이 모델을 사용하여 가치 있고 복잡한 사용 사례(금고, 채널, DeFi)를 표현할 수 있음을 입증합니다. 5) 이 형식주의는 자연스럽게 고수준 언어 설계를 가능하게 합니다. 이는 정밀하게 실행된 고전적인 "이론이 실천을 가능하게 한다"는 파이프라인입니다.

강점과 결점: 주요 강점은 암호학/프로그래밍 언어 이론과 비트코인 엔지니어링 사이의 간극을 메우는 것입니다. 이 간극은 이더리움의 계정 기반 모델에서 비용이 큰 버그를 초래했습니다. 형식적 의미론은 속성 검증을 가능하게 하여 큰 성과입니다. 암묵적으로 인정된 결점은 비트코인의 정치 경제학입니다. 논문에서 언급했듯이, 비트코인의 "극도로 조심스러운 접근 방식"은 형식적 우아함과 관계없이 계약과 같은 새로운 연산 코드 배포를 헤르쿨레스적인 작업으로 만듭니다. 기본 계약 없이 라이트닝과 같은 레이어-2의 성공 또한 필요성 대 편의성에 대한 의문을 제기합니다. 더 나아가, 모델의 보안은 제약된 필드(예: 스크립트 해시)가 충분하다는 가정에 의존합니다. 다른 연산 코드와의 예상치 못한 상호작용 효과가 남아 있을 수 있습니다.

실행 가능한 통찰: 연구자들에게 이 논문은 청사진입니다: 형식적 방법을 사용하여 블록체인 업그레이드의 위험을 줄이고 명확히 하십시오. 개발자들에게는 계약이 존재할 것이라고 가정하고(리퀴드나 스택스에서 보듯이) 지금 당장 계약 프레임워크 설계를 시작하십시오. 비트코인 프로토콜 개발자들에게 이 논문은 BIP 119(OP_CTV) 또는 유사한 제안을 주장하는 데 필요한 엄격한 기초를 제공합니다. 이는 기능 요청을 엔지니어링 명세서로 변환합니다. 가장 큰 교훈은 비트코인 스마트 계약의 미래는 이더리움을 모방하는 것이 아니라, 고유한 UTXO+계약 패러다임을 활용하여 새로운, 잠재적으로 더 안전하고 확장 가능한 탈중앙화 애플리케이션 클래스를 창조하는 데 있습니다.

7. 기술적 세부사항 및 형식화

형식적 모델은 거래, 스크립트 및 검증을 맥락적으로 정의합니다. 핵심 기술적 세부사항은 계약 제약의 표현입니다. $\texttt{tx}$가 거래를 나타낸다고 합시다. 계약은 다음과 같은 함수로 볼 수 있습니다:

$\text{Covenant}_{\text{cond}} : \texttt{tx}_{\text{current}} \times \texttt{tx}_{\text{next}} \times \sigma \rightarrow \{\text{True}, \text{False}\}$

여기서 $\sigma$는 검증 맥락(블록 높이 등)을 나타냅니다. 술어 $\text{cond}$는 $\texttt{tx}_{\text{next}}$ 필드에 대한 검사의 결합일 수 있습니다:

$\text{cond} \equiv (\texttt{hashOutputs}(\texttt{tx}_{\text{next}}) = H) \land (\texttt{nLockTime}(\texttt{tx}_{\text{next}}) > T) \land ...$

이는 사용 거래의 지정된 부분의 해시를 비교를 위해 스택에 푸시하는 OP_CHECKTEMPLATEVERIFY와 같은 제안과 일치합니다. 재귀적 속성은 $\texttt{tx}_{\text{next}}$의 출력이 자체적으로 계약 $\text{Covenant}_{\text{cond}'}$를 강제하는 스크립트 $S'$를 포함하도록 보장함으로써 형식화됩니다.

8. 분석 프레임워크 및 예시 사례

예시: 간단한 금고 계약
목표: 두 가지 방법으로 사용될 수 있는 UTXO 생성: 1) 즉시, 하지만 특정 "콜드 스토리지" 주소로만. 2) 어떤 주소로든, 하지만 30일 지연 후에만 (도난 취소 허용).
형식적 모델을 사용한 프레임워크 적용:
1. 초기 잠금 스크립트 (scriptPubKey): 계약 조건 $C_1$을 포함합니다.
2. 계약 $C_1(T_{vault}, T_{spend})$: 참으로 평가되어야 합니다. 다음을 검사합니다:
    a) 경로 A (즉시): $\texttt{hashOutputs}(T_{spend}) = H_{cold}$ // 출력이 미리 약속된 콜드 스토리지 주소 해시와 일치해야 함.
    b) 경로 B (지연): $\texttt{nLockTime}(T_{spend}) \geq \text{currentBlock} + 4320$ (블록 기준 30일) 그리고 $\texttt{hashOutputs}(T_{spend})$는 무엇이든 될 수 있음.
3. 검증: $T_{spend}$로 금고 UTXO를 사용할 때, 비트코인 노드는 스크립트를 실행합니다. 이는 금고 소유자의 서명을 요구하고 동시에 $C_1$이 거래 쌍에 대해 성립하는지 검증합니다.
이 예시는 형식적 모델의 술어 $C(T_x, T_{next})$가 다음 거래의 필드에 대한 구체적 검사로 어떻게 인스턴스화되는지 보여주며, 기본 비트코인에서는 불가능한 보안 속성(도난 회수)을 가능하게 합니다.

9. 미래 응용 분야 및 방향

형식화는 여러 미래 방향을 엽니다:

  • 검증된 컴파일러: 고수준 언어(예: Simplicity 또는 Miniscript 확장)에서 계약이 내장된 비트코인 스크립트로의 컴파일러 구축, 정확성에 대한 형식적 증명과 함께.
  • 크로스체인 계약: 다른 블록체인 또는 오라클의 이벤트에 조건부로 사용을 허용하는 계약 탐구, SPV와 같은 암호학적 증명 사용, "브리지"에 대한 초기 연구 및 롤업에 대한 최근 연구에서 암시됨.
  • 프라이버시 보존 계약: 계약 검사를 제로지식 증명(예: Taproot/Schnorr 서명 사용)과 통합하여 계약 로직을 숨기면서도 여전히 강제하는 방향, Ark와 같은 프로젝트에서 탐구 중.
  • 형식적 보안 분석: 제안된 계약 구조의 보안을 경제적 및 암호학적 공격에 대해 체계적으로 분석하기 위해 모델 사용, IEEE Symposium on Security and Privacy 커뮤니티가 이더리움 스마트 계약에 대해 수행한 작업과 유사.
  • 레이어-2 프로토콜 단순화: 라이트닝 네트워크 또는 사이드체인(리퀴드)과 같은 프로토콜을 기본 계약을 활용하여 더 효율적이고 신뢰 최소화되도록 재설계, 복잡한 감시탑 또는 연합의 필요성 감소.

10. 참고문헌

  1. M. Bartoletti, S. Lande, R. Zunino. Bitcoin covenants unchained. arXiv:2006.03918v2 [cs.PL]. 2020.
  2. S. Nakamoto. Bitcoin: A Peer-to-Peer Electronic Cash System. 2008.
  3. J. Poon, T. Dryja. The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments. 2016.
  4. M. Moser, I. Eyal, E. G. Sirer. Bitcoin Covenants. Financial Cryptography 2016 Workshops.
  5. Bitcoin Improvement Proposal 119 (BIP 119). OP_CHECKTEMPLATEVERIFY.
  6. G. Wood. Ethereum: A Secure Decentralised Generalised Transaction Ledger. Ethereum Yellow Paper. 2014.
  7. A. Miller, et al. Hashed Timelock Contracts (HTLCs). 2017.
  8. R. O'Connor. Simplicity: A New Language for Blockchains. Proceedings of the 2017 Workshop on Programming Languages and Analysis for Security.
  9. Blockstream. Liquid Network. https://blockstream.com/liquid/
  10. IEEE Symposium on Security and Privacy. Multiple papers on smart contract security analysis. Various years.