
HTX 벤처: BTCFI의 토끼 굴을 비트코인 프로그래밍 가능성의 관점에서 탐색하기

요약
본문은 비트코인 프로그래밍의 가능성과 진화 경로를 출발점으로 삼아 탈중앙화 금융(BTCFI) 분야에서 비트코인이 가진 잠재력과 직면한 과제를 체계적으로 탐구한다. 아키텍처 측면에서 비트코인은 UTXO 모델을 채택하며 고유한 스크립트 언어와 오퍼레이션 코드를 통해 검증 중심의 계약 시스템을 구축했다. 이더리움의 스마트 계약과 비교할 때 비트코인 계약은 '상태가 없음(stateless)'과 '비계산성(non-computable)'이라는 특징을 지녀 기능적 제약이 존재하지만, 동시에 더 높은 보안성과 탈중앙화 성격을 갖는다.
탭루트(Taproot) 업그레이드 시행 이후 비트코인의 계약 능력은 현저히 향상되었다. 탭루트, 특히 MAST와 Schnorr 서명의 도입은 비트코인이 더욱 복잡한 계약 로직을 지원하도록 만들었으며, 개인정보 보호 수준과 거래 효율성을 크게 개선했다. 이러한 기술 혁신들은 BTCFI의 추가적인 발전을 위한 길을 열어주었고, 비트코인이 기존의 탈중앙화 장점을 유지하면서도 더 다양한 금융 응용 시나리오를 탐색할 수 있도록 한다.
이러한 기반 위에서 본문은 비트코인 프로그래밍이 다수의 BTCFI 응용을 어떻게 지원하는지 심층적으로 분석한다. 멀티시그, 타임락, 해시락 메커니즘에 대한 해설과 DLC, PSBT, MuSig2 등의 도구 활용 논의를 통해, 신뢰 없이도 탈중앙화된 정산 및 복잡한 금융 계약을 실현할 가능성을 보여준다. 이처럼 비트코인 네트워크 내에서 원생적으로 구현되는 탈중앙화 금융 시스템은 WBTC 시대의 크로스체인 브릿지 모델이 지닌 중앙화 리스크를 극복할 뿐 아니라 비트코인 보유자들에게 더 견고한 신뢰 기반을 제공한다.
마지막으로 본문은 비트코인 탈중앙화 금융의 발전이 단순한 기술적 진보를 넘어 생태계 구조의 깊은 변혁임을 강조한다. 바빌론 스테이킹 프로토콜과 같은 새로운 애플리케이션이 등장하고, Fractal Bitcoin과 같은 UTXO 기반의 네이티브 스케일링 방식이 상용화되면서 BTCFI의 시장 잠재력이 점차 드러나고 있다. 앞으로 비트코인 가격 상승과 함께 BTCFI는 주류 사용자들의 참여를 더욱 유도하며 비트코인을 중심으로 하는 새로운 금융 생태계를 형성하게 될 것이다. 이러한 생태계의 형성은 비트코인이 단순히 '디지털 골드'라는 서사를 넘어서 글로벌 경제 시스템에서 필수불가결한 탈중앙화 금융 인프라로 진화하게 될 것이다.
서론
2022년 12월 오디널스(Ordinals) 프로토콜 출시 이후 시장에는 BRC-20, Atomicals, Pipe, Runes 등 수십 가지 자산 발행 프로토콜과 수백 개의 비트코인 레이어2 네트워크가 등장했으며, 커뮤니티는 활발히 비트코인 탈중앙화 금융(BTCFI)의 실현 가능성을 논의하고 있다.
이전 암호화 사이클에서는 비트코인 보유자가 DeFi에 참여하기 위해 WBTC가 등장했다. WBTC는 중앙화된 트러스트 기관이 비트코인을 예치하고 이를 WBTC로 발행하여 이더리움 DeFi 프로토콜에서 사용할 수 있게 한 것이다. WBTC의 목표 사용자는 중앙화된 크로스체인 브릿지 리스크를 감수하더라도 비트코인 DeFi에 참여하고자 하는 비트코인 보유자였다. 이더리움 EVM 생태계로 비트코인을 연결하는 대표적인 사례로서, WBTC는 BTCFI의 하나의 경로를 구현했다. 현재 사이클에 등장한 EVM 기반 비트코인 L2 네트워크와 그 생태계의 DeFi 프로젝트들도 동일한 패턴을 따르고 있다. 이 방식은 WBTC가 이더리움 생태 내에서 90억 달러 이상의 시가총액을 기록하게 했지만, 비트코인 전체 시가총액 대비 1% 미만에 불과해 이러한 모델의 한계를 반영한다.
반면, 비트코인 보유자가 크로스체인 발행 없이 직접 비트코인으로 BTCFI에 참여하면서도 자금을 탈중앙화 방식으로 보관할 수 있다면 더 많은 비트코인 사용자를 유치하고 광범위한 시장을 창출할 수 있다. 이를 위해서는 UTXO 구조 하에서 비트코인 프로그래밍이 필요하다. 솔리디티(Solidity)가 이더리움 DeFi 진입의 열쇠라면, 비트코인 프로그래밍은 BTCFI 시장 진입의 필수 기술이다.
이더리움 계약과 달리 비트코인 계약은 계산 능력을 갖추지 못하고, 여러 서명으로 연결된 일종의 검증 프로그램에 가깝다. 초기에는 응용 시나리오가 제한적이었으나, 비트코인 네트워크의 지속적인 업그레이드와 OG 커뮤니티의 혁신을 통해 비트코인 프로그래밍의 잠재력이 점차 부각되고 있으며, 많은 연구 성과들이 곧 상용화될 BTCFI 제품으로 전환되고 있다.
본문은 비트코인의 프로그래밍 가능성 관점에서 BTCFI의 발전 경로를 심층적으로 탐색하고, 비트코인 프로그래밍의 역사와 논리를 명확히 하여 독자가 현재 BTCFI의 실제 적용 사례와 그로 인한 비트코인 보유자 및 전체 생태계에 미치는 영향을 이해하도록 돕는다.
비트코인 계약의 기초
나카모토의 사고: UTXO, 스크립트 언어와 오퍼레이션 코드

2010년 사토시(나카모토)는 bitcointalk 포럼에서 다음과 같이 밝혔다:
-
비트코인 핵심 설계는 0.1 버전 출시 후 고정될 것이며, 가능한 한 다양한 거래 유형을 지원하기를 원하지만 각각 특별한 지원 코드와 데이터 필드가 필요하며 매번 특정 특수 상황만 커버하게 되어 특수 사례가 너무 많아질 것이라 말했다.
-
이 문제를 해결하는 방법이 바로 스크립트다. 거래의 입력 및 출력 당사자는 노드 네트워크가 검증할 수 있는 주장(assertion, 스크립트 언어)으로 거래를 컴파일할 수 있고, 노드는 해당 주장(스크립트 언어)을 검증함으로써 송신자의 조건이 충족되었는지 평가한다.
-
"스크립트"란 단지 "주장(predicate)"일 뿐이다. 실제로 결과가 참 또는 거짓인 방정식일 뿐인데, predicate라는 단어가 길고 드물기 때문에 나는 이를 "스크립트"라고 부른다.
-
자금 수취자는 스크립트에 대해 템플릿 매칭을 수행한다. 현재 수취자는 두 가지 템플릿만 수용한다: 직접 결제와 비트코인 주소. 미래 버전에서는 더 많은 거래 유형 템플릿을 추가할 수 있으며, 해당 버전 이상을 실행하는 노드는 이를 수신할 수 있다. 네트워크의 모든 노드는 새로운 거래를 검증하고 처리하여 블록에 포함시킬 수 있으나, 해당 거래를 읽는 방법을 알지 못할 수도 있다.
-
이 설계는 내가 수년 전부터 고안했던 다양한 거래 유형을 지원한다. 여기에는 에스크로 거래, 보증 계약, 제3자 중재, 다중 서명 등이 포함된다. 비트코인이 인기를 얻으면 이러한 분야들이 장차 탐구해야 할 영역이 될 것이며, 처음부터 설계되어야 미래에 구현될 수 있도록 해야 한다.
14년 전 나카모토의 설계는 비트코인 프로그래밍의 기초를 마련했다. 비트코인 네트워크는 '계정(account)' 개념이 없고 오직 '출력(output)'만 존재하며, 그 전체 이름은 '거래 출력(TXO)'이며 비트코인 자금을 나타내며 비트코인 시스템 상태의 기본 단위이다.
출력을 사용한다는 것은 해당 출력을 거래의 입력으로 만들거나, 즉 해당 거래에 자금을 제공한다는 의미다. 그래서 우리는 비트코인 시스템이 “UTXO(미사용 거래 출력)” 모델 기반으로 작동한다고 말하는 것이다. 왜냐하면 오직 “UTXO(미사용 거래 출력)”만이 거래 과정에서 우리가 사용할 수 있는 금속 덩어리이기 때문이다. 금속 덩어리는 용광로에 들어가 녹아 새로운 금속 덩어리들(새로운 UTXO)을 형성하고, 기존 금속 덩어리인 “거래 출력(TXO)”는 더 이상 존재하지 않게 된다.
각 자금은 자신의 잠금 스크립트(스크립트 공개키라고도 함)와 액면가를 가지며, 비트코인의 합의 규칙에 따라 스크립트 공개키는 검증 프로그램을 형성할 수 있다. 즉 공개키에 특정 작업을 수행하는 명령어인 오퍼레이션 코드(OP-Codes)를 더해 잠금을 해제하려면 특정 데이터 집합인 잠금 해제 스크립트, 즉 스크립트 서명(scriptSig)을 제공해야 한다. 전체 스크립트(잠금 해제 스크립트 + 잠금 스크립트 + OP-Codes)가 유효하면 해당 출력은 “잠금 해제”되어 사용할 수 있다.
따라서 비트코인의 스크립트 프로그래밍은 자금 자체를 프로그래밍하여 특정 금액이 입력된 특정 데이터에 반응하도록 하는 것이다. 스크립트 공개키, 오퍼레이션 코드(OP-Codes), 그리고 사용자 간의 상호작용 프로세스를 설계함으로써 비트코인 계약의 핵심 상태 전환에 암호학적 보장을 제공하고 계약의 정상 이행을 보장할 수 있다.
여기에 비트코인의 표준 P2PKH(Pay-to-Public-Key-Hash) 스크립트의 간단한 그림이 있다.

예를 들어 내가 소명에게 1 BTC를 지불하려면, 지갑 내에서 사용 가능한 UTXO를 사용하여 1억 사토시의 UTXO를 생성하고, 해당 UTXO의 잠금 스크립트에 소명의 공개키(서명 검증 연산자 포함)를 입력해야 한다. 이렇게 하면 소명의 개인키가 소명 공개키에 해당하는 서명을 제공할 때만 이 자금을 잠금 해제할 수 있다.
요약하자면 Script, 즉 스크립트 언어는 매우 기본적인 프로그래밍 언어다. 두 가지 유형의 객체로 구성된다: 데이터(Data) - 공개키 및 서명 + 데이터를 조작하는 간단한 함수인 오퍼레이션 코드(목록은 아래 참고: 관련 링크).
비트코인 프로그래밍의 무기고
앞서 언급했듯이 나카모토는 초기에 비트코인 네트워크가 지원하기를 원했던 거래 유형으로 에스크로 거래, 보증 계약, 제3자 중재, 다중 서명 등을 들었다. 그렇다면 이러한 기능을 구현하는 도구는 무엇이며, 어떻게 BTCFI에 활용되는가?
다중 서명(MULTISIG)
- 잠금 스크립트 형식은 M <PUB-1> <PUB-2> ... <PUB-N> N OP_CHECKMULTISIG이며, n개의 공개키를 기록하고 이 중 m개의 공개키 서명을 제공해야 해당 UTXO를 잠금 해제할 수 있다는 의미다.
- 예를 들어, 앨리스, 밥, 클로이 세 사람(또는 세 개의 공개키) 중 두 사람이 서명하면 이 스크립트를 사용할 수 있다. 스크립트 코드는 2 <Alice> <Bob> <Chloe> 3 OP_CHECKMULTISIG이며, OP_CHECKMULTISIG는 제공된 공개키와 서명이 일치하는지 검증하는 오퍼레이션 코드다.
- 용도는 다음과 같다:
- 개인 및 기업 자금 관리: 2-of-3 다중 서명 지갑을 설정하면 두 개만 있으면 자금을 사용할 수 있으며, 지갑 제조업체의 악용을 방지할 수 있다. 자금을 인출하려면 m개의 제조업체가 공모해야 한다.
- 거래 중재:
- 앨리스와 밥이 ordinals NFT를 구매하는 거래를 한다고 가정하자. 그러나 일시불 교환이 어렵기 때문에, 그들은 자금을 다중 서명 출력에 잠그기로 합의한다. 밥이 앨리스로부터 ordinals NFT를 받으면, 자금을 앨리스에게 완전히 지불한다. 물품을 받고 돈을 지불하지 않는 경우를 방지하기 위해 제3자를 도입하여 2-of-3 다중 서명 출력을 형성한다. 거래에 분쟁이 발생하면 제3자에게 공정한 판단을 요청할 수 있다. 제3자가 앨리스가 물품을 발송했다고 판단하면, 앨리스와 공동으로 자금을 이전할 수 있다.
- 제3자가 자신의 공개키를 공개(예: 예측기)하면 거래 당사자는 2-of-3 다중 서명 스크립트에 그들의 공개키를 사용하여 중재자를 포함시킬 수 있다. 체인상 출력에 기록되는 것은 스크립트의 해시값이므로 중재자가 몰라도 가능하다. 하지만 여기서 문제는 제3자 예측기가 특정 계약의 결과를 결정할 수 있어 일정한 리스크가 있으며, 후술할 신중한 로그 계약(DLC)은 이 점을 최적화하여 비트코인 담보대출 등 BTCFI에 진정으로 활용할 수 있게 한다.
타임락
타임락은 거래의 유효성과 출력이 언제 사용될 수 있는지를 제어하는 데 사용되며, 리스테이킹, 스테이킹, 담보 대출 등 BTCFI 시나리오에서 자주 사용되는 비트코인 스크립트 프로그래밍 도구다. 개발자는 상대 타임락(nSequence) 또는 절대 타임락(nLocktime) 중 선택해야 한다.
- 절대 타임락(nLocktime): 특정 시간 이후에만 해당 거래가 유효한 것으로 간주되어 블록에 포함될 수 있다. 스크립트 수준의 절대 타임락은 OP_CLTV 오퍼레이션 코드이며, 특정 시간 이후에만 이 UTXO를 잠금 해제할 수 있다고 검증한다. 예를 들어, 이 자금은 블록 높이 400000 이후에만 사용할 수 있다.
- 상대 타임락(nSequence)은 입력이 이 UTXO를 생성한 거래(즉, 선행 거래)가 블록에서 확인된 후 일정 시간이 지나야 해당 거래가 유효하고 이 UTXO를 잠금 해제할 수 있다는 의미다. 스크립트 수준의 상대 타임락은 OP_CSV이며, 예를 들어 “이 자금은 블록 확인 후 3개의 블록 이후에만 사용할 수 있다.”
해시락(해시 원상 검증)
이 외에도 해시 원상을 검증하는 해시락과 결합된 해시 타임락도 있으며, 이는 비트코인 스테이킹 및 리스테이킹에서도 자주 사용된다.
- 해시락의 잠금 스크립트 형식은 OP_HASH160 <hash> OP_EQUAL이며, 잠금 해제 스크립트의 데이터가 잠금 스크립트의 해시값의 원상인지 검증한다.
- 해시 타임락 계약(HTLC): 수취인이 일정 시간 내에 해시값의 원상을 제공하지 못하면, 자금은 송금인이 회수할 수 있다.
프로세스 제어(병렬 잠금 해제 조건)
OP_IF 오퍼레이션 코드는 잠금 스크립트에서 여러 잠금 해제 경로를 배치할 수 있으며, 어느 한 경로의 조건이 만족되면 이 UTXO를 잠금 해제할 수 있다. 앞서 언급한 해시 타임락 계약도 이러한 프로세스 제어 오퍼레이션 코드를 활용한다.
탭루트 업그레이드 이후, MAST(머클라이즈드 추상 구문 트리) 기능을 통해 서로 다른 잠금 해제 경로를 다른 머클 트리 잎에 둘 수 있으며, 바빌론의 BTC 스테이킹 거래에서도 MAST를 사용하여 거래 효율성과 개인정보 보호 수준을 향상시켰다. 이 내용은 후술하겠다.
SIGHASH 첨부 정보 서명
비트코인 거래 서명 시 SIGHASH 태그를 사용할 수 있는데, 이 태그는 서명의 유효성에 추가적인 지정을 하여 일부 변경을 해도 서명이 무효화되지 않도록 하며, 서명자가 이 서명의 목적이나 위임에 대한 기대를 표현할 수 있다. 예를 들어:
- SIGHASH_SINGLE | ANYONECANPAY는 입력과 동일한 인덱스 번호를 가진 출력만 서명하며, 나머지 입력과 출력은 변경 가능하고 서명은 무효화되지 않는다. 앤디는 1 BTC 가치의 입력과 100개의 어떤 Runes 토큰 출력을 서명할 수 있으며, 1 BTC를 100개의 어떤 Runes 토큰과 교환하려는 누구든지 이 거래를 완성하여 체인에 올릴 수 있다.
다른 예로는 탭루트 업그레이드 후의 Schnorr 서명이 있으며, 신중한 로그 계약(DLC)에 활용된다.
비트코인 프로그래밍의 제약
비트코인 프로그래밍의 기본 패턴은 UTXO 잠금 스크립트가 검증 조건을 나타내고, 잠금 해제 스크립트가 데이터를 제공하며, 잠금 스크립트의 오퍼레이션 코드가 데이터의 검증 프로그램(서명 검증, 해시 원상 검증 등)을 지정하는 것이다. 검증 프로그램을 통과하면 자금을 사용할 수 있으며, 핵심 제약 사항은 다음과 같다.
- 사용 가능한 검증 프로그램은 제한적이다: 제로 난스 증명이나 기타 검증 프로그램을 도입하려면 포크(fork)가 필요하다. 따라서 Unisat이 제안한 BTCFI 확장 방안 Fractal은 비트코인과 100% 호환되지만, OP_CAT, ZK 네이티브 검증 오퍼레이션 코드 등 논란이 있는 오퍼레이션 코드 제안을 구현하기 위해 유동성과 보안 측면에서 비트코인 메인넷과 부분적으로 분리되어 있다.
- 비트코인 스크립트는 계산 능력이 없다: 잠금 해제 경로 중 하나만으로도 자금을 사용할 수 있으며, 자금 사용 방식은 잠금 해제 후 제한할 수 없다. 이는 BTCFI 대출 프로젝트에서 변동 금리 방안을 사용하기 어렵고 고정 금리만 가능하다는 것을 의미한다. 이 문제를 해결하기 위해 비트코인 커뮤니티는 '제한 조항(covenants)' 도입을 논의하고 있으며, 이는 거래의 추가 사용을 제한함으로써 더 많은 BTCFI 응용 시나리오를 열어줄 수 있다. Taproot Wizard가 언급한 BIP-420과 OP_CAT, OP_CTV, APO, OP_VAULT 등이 모두 이와 관련되어 있다.
- UTXO의 잠금 해제 조건은 완전히 독립적이다: 하나의 UTXO는 다른 UTXO의 존재 여부나 그 잠금 조건에 따라 자신이 잠금 해제될 수 있는지를 결정할 수 없다. 이 문제는 BTCFI의 담보 대출 및 스테이킹에서 자주 발생하며, 후술할 부분 서명 비트코인 거래(PSBT)가 이를 해결하기 위해 사용된다.
비트코인 계약의 조정과 진화
계산 기반의 이더리움 계약과 달리 비트코인 계약은 검증 기반이며, 이러한 상태 없는 계약은 BTCFI 제품 개발에 많은 어려움을 안겨주었지만, 비트코인 계약이 발전한 지 10여 년 동안 암호 알고리즘과 서명의 묘용은 개인정보 보호 수준, 효율성, 탈중앙화 정도를 크게 향상시키며 제품화 가능한 BTCFI를 실현 가능하게 했다.
신중한 로그 계약(DLC): BTCFI 시나리오에서의 탈중앙화 정산 문제 해결
대출, 옵션, 선물 계약이 예측기 가격에 따라 사용자 포지션을 정산해야 할 때, 사용자 자산에 대한 조작 권한을 유지할 수밖에 없으며, 이는 사용자가 프로토콜이 악용하지 않을 것이라는 신뢰를 요구하게 만들어 신뢰 비용을 발생시킨다.
이 문제를 해결하기 위해 신중한 로그 계약(DLC)이 도입되었으며, 적응기 서명(adaptor signature)이라는 암호학적 기법을 사용하여 비트코인 스크립트가 외부 사건에 의존하는 금융 계약을 프로그래밍할 수 있도록 하며 개인정보 보호를 완전히 보장한다.
이 기술은 MIT 디지털 화폐 이니셔티브(Digital Currency Initiative)의 Tadge Dryja (연구 과학자)와 Gert-Jaap Glasbergen(소프트웨어 개발자)가 2017년에 제안하였으며, 2018년 3월 19일에 공개 데모를 진행했다.
적응기 서명은 비밀 값(secret value)을 추가해야만 유효한 서명이 되는 서명을 가능하게 한다. 탭루트 업그레이드에서 도입된 Schnorr 서명이 바로 적응기 서명의 예이다.
간단히 말해, Schnorr 서명의 표준 형태는 (R, s)이며, (R, s')가 주어졌을 때, x 즉 비밀 값(secret)을 알면 s = s' + x로 하여 (R, s)를 얻을 수 있다.
다음은 간단한 예를 들어 설명하겠다.
- 앨리스와 밥이 스포츠 경기(무승부 없음)의 반대 결과에 대해 각각 1 $BTC를 베팅한다. 누가 맞추면 2 $BTC의 베팅금을 모두 가져간다. 그들은 베팅금을 다중 서명 지갑에 잠근다. 이 지갑은 다중 서명이 있어야만 자금을 해제할 수 있다.
- 예측기를 선택한다. 예측기는 경기 결과를 발표한다(일반적으로 이러한 정보 출처는 체인 외부에서 찾는다. 예: 거래소, 경기 웹사이트 등).
- 예측기는 베팅에 대한 세부 정보를 알 필요가 없으며, 누가 DLC에 참여했는지도 알 필요 없다. 예측기의 역할은 결과를 제공하는 데 국한되며, 이벤트 발생 후 예측기는 이벤트 결과를 결정했다는 암호학적 증거인 커밋을 게시한다.
- 다중 서명 지갑에 잠긴 자금을 수령하기 위해, 우승자 앨리스는 예측기가 제공한 비밀 값을 사용하여 유효한 개인 키를 생성하고, 이를 통해 지갑 자금을 사용하는 거래에 서명할 수 있다.
- 이 거래는 비트코인 블록체인에 추가되어 정산되며, 서명은 일반적인 서명이기 때문에 이것이 DLC인지 알 수 없다. 이는 일반적인 다중 서명 패턴 — 계약 내용이 완전히 공개되고 예측기가 의사결정에 참여한다 — 과 완전히 다르다.

대출 프로토콜의 정산 메커니즘
앨리스가 $ORDI를 담보 자산으로 하여 0.15 $BTC를 차입한다고 가정하자. $ORDI의 예측기 가격이 225,000 사토시/ordi 미만일 경우에만 이 대출 포지션이 정산 대기 상태로 전환된다. DLC는 정산 대기 상태에서 정산인이 허가 없이 해당 포지션을 정산할 수 있도록 하면서, 가격이 정산 가격에 도달하지 않았을 때는 사용자의 담보 자산을 조작할 수 없도록 보장한다. 위 시나리오에서 앨리스는 $ORDI 가격에 대해 대출 프로토콜과 내기를 한 셈이다.
- 가격이 225,000 사토시/ordi 미만이면 프로토콜이 앨리스의 모든 담보물을 취득하고 상응하는 BTC 부채를 부담한다.
TechFlow 공식 커뮤니티에 오신 것을 환영합니다
Telegram 구독 그룹:https://t.me/TechFlowDaily
트위터 공식 계정:https://x.com/TechFlowPost
트위터 영어 계정:https://x.com/BlockFlow_News
즐겨찾기 추가소셜 미디어 공유














