Home / Knowledge / 비트코인 계약: TXHASH 및 CHECKTXHASHVERIFY(BIP 346)

비트코인 계약: TXHASH 및 CHECKTXHASHVERIFY(BIP 346)

비트코인 계약: TXHASH 및 CHECKTXHASHVERIFY(BIP 346) 1

이 기사는 개별 계약 제안에 대한 심층 분석 시리즈의 세 번째 기사입니다.

TXHASH와 CHECKTXHASHVERIFY (TXHASH)는 Steven Roose와 Brandon Black이 제안한 것으로, 현재 BIP 번호가 할당되지 않은 “템플릿 기반” 계약입니다. 이는 CHECKTEMPLATEVERIFY (CTV)의 확장 또는 더 발전된 버전으로 개념적으로 볼 수 있습니다. 

TXHASH의 작동 방식에 대해 자세히 알아보기 전에 비트코인 거래의 데이터 조각을 다시 살펴보겠습니다. 

고수준에서는 출력, 입력 및 증인(입력의 비세그윗 거래에 대한 스크립트 서명)이 있습니다. 

전 세계 거래 필드:

  • 버전
  • 세그윗을 나타내는 플래그 값이 있는 마커
  • 세그윗을 나타내는 플래그 값이 있는 플래그
  • 입력 수
  • 출력 수
  • nLocktime, 타임락에 사용됨

각 입력에는 다음이 포함됩니다:

  • 이전 거래의 TXID
  • 소비되는 거래의 출력 VOUT(인덱스)
  • ScriptSig 크기
  • ScriptSig(비세그윗 거래인 경우)
  • 시퀀스 번호(상대 타임락 및 RBF 플래그 지정에 사용됨).

각 출력에는 다음이 포함됩니다:

  • 출력에 할당된 사토시의 양
  • 잠금 스크립트의 크기인 ScriptPubKeySize
  • 실제 잠금 스크립트인 ScriptPubkey

TXHASH 또는 CHECKTXHASHVERIFY를 고려할 때 증인 필드는 무시할 수 있습니다. 두 개의 opcode 모두 특정 속성을 유지하기 위해 증인 필드를 제약하지 않기 때문입니다. 

TXHASH 작동 방식

TXHASH(탭스크립트 전용)와 CHECKTXHASHVERIFY(레거시 스크립트 및 탭스크립트)는 레거시 스크립트와 탭스크립트 간의 차이로 인해 스택에서 서로 다른 동작을 합니다. 이 기사의 목적상 이러한 차이는 중요하지 않으므로 단순히 무시하겠습니다.

CTV가 비트코인 출력을 단일하고 정확하게 정의된 방식으로만 소비하도록 제약하는 계약 opcode라면, TXHASH는 CTV의 성능을 극대화한 버전으로, 거래의 어떤 조각이 제약되고 정확히 미리 정의된 방식으로 소비되어야 하는지를 선택할 수 있게 해줍니다. 그리고 거래의 어떤 조각은 소비 시점에 원하는 대로 할 수 있습니다. 

이는 계약 제한 코인을 소비할 때 무언가를 요구하면서도 사용자가 그들이 만들고 있는 거래나 사용 가능한 나머지 자금으로 무엇이든 할 수 있도록 허용합니다. 

이는 ‘TxFieldSelector’를 사용하여 달성됩니다. 

CTV는 소비 시점에 확인하기 위해 미리 정의된 거래의 단일 해시를 사용합니다. TXHASH에서는 그 해시가 어떤 정보 조각을 약속하고 있는지, 어떤 정보 조각은 약속하지 않는지를 전달할 방법이 필요합니다. 그것이 TxFieldSelector의 역할입니다. 

TxFieldSelector는 본질적으로 일련의 바이트(길이가 가변적일 수 있음)로, 각 비트는 해시가 확인될 거래에서 어떤 필드가 약속되었는지를 전달합니다. 이를 통해 거래의 특정 필드, nLocktime, 버전 등을 선택할 수 있습니다. 입력 및 출력의 특정 필드를 선택할 수 있으며, 즉 시퀀스 번호, 이전 출력 ID 또는 탭루트 부가 데이터(탭루트 스크립트에 특정한 데이터 필드)를 포함하거나 포함하지 않을 수 있습니다. 출력에 대해서는 ScriptPubkey, 금액 값, 둘 다 또는 둘 다 포함하지 않도록 결정할 수 있습니다. 이러한 제한이 적용되는 특정 출력 및 입력을 결정할 수도 있습니다. 

TxFieldSelector가 구성되는 방식에는 약간의 복잡성과 유연성이 있으며, 이에 대한 모든 세부 사항은 제안된 BIP에서 확인할 수 있지만, 핵심 요점은 누군가가 제한된 출력을 소비할 때 계약에 의해 제한되는 거래의 정확히 어떤 부분인지, 어떤 부분이 아닌지를 매우 세밀하게 선택할 수 있게 해준다는 것입니다. 

TXHASH의 유용성

우선, TXHASH는 CTV로 할 수 있는 모든 것을 수행할 수 있게 해줍니다. 따라서 미리 서명된 거래로 현재 가능한 모든 것의 조정 비용을 최적화하기 위해 CTV가 제공하는 모든 가치도 TXHASH가 제공합니다. 그러나 그 기능을 대폭 강화합니다. 거래 전체에 대해 약속해야 하는 대신, 관심 있는 부분만 약속할 수 있습니다. 

이것은 이론적으로 즉각적으로 두 가지 큰 이점을 제공합니다. 우선, 레이어 2의 대역폭 수수료 관리가 더 쉽게 처리됩니다. 현재 앵커 출력을 사용하여 Child Pays For Parent로 레이어 2 정산 거래의 수수료를 증가시켜야 하며, 이는 확인되지 않은 출력에서 소비되는 거래가 두 거래의 순수 수수료를 추가할 수 있습니다. TXHASH를 사용하면 다자간 거래에서 상대방의 출력만 약속하고, 자신의 출력은 원하는 대로 자유롭게 사용할 수 있습니다(여기서 다른 조치를 취해야 하며, 제3자가 모든 자금을 수수료로 소모할 수 없도록 해야 합니다), 거래를 RBF로 약간 감소시키는 것도 포함됩니다. 

둘째, 이제 다자간 프로토콜이 오프체인 거래가 약속하는 것에 대한 세밀한 보장을 허용할 수 있는 길이 열렸습니다. 일부 사용자는 이제 자신의 코인이 어떻게 소비될 것인지에 대한 보장을 받을 수 있지만, 다른 사용자 그룹이 자신의 코인으로 무엇을 하는지에 대해서는 신경 쓸 필요가 없습니다. 하나의 TxFieldSelector가 내 코인이 적절하게 처리된다는 것을 보장하는 것을 확신할 수 있으며, 다른 사람의 코인이 어디로 가는지에 대해서는 신경 쓸 필요가 없습니다. 

CHECKSIGFROMSTACK (CSFS)와 결합하여 TXHASH는 완전히 일반화된 SIGHASH 시스템을 촉진할 수 있습니다. SIGHASH 플래그는 서명이 어떤 거래 부분을 확인해야 하는지를 전달하는 서명의 일부입니다. 현재는 다음과 같습니다: 

  • SIGHASH_ALL – 모든 입력 및 출력을 서명합니다.
  • SIGHASH_NONE – 모든 입력을 서명하고 출력을 서명하지 않습니다.
  • SIGHASH_SINGLE – 모든 입력과 이 입력과 동일한 인덱스를 가진 출력을 서명합니다.

이 SIGHASH 플래그는 거래에 새로운 입력을 추가할 수 없도록 하며, 각 플래그에는 자신의 입력과 적절한 출력을 서명하여 다른 사람이 새로운 입력과 새로운 출력을 추가할 수 있도록 하는 ANYONECANPAY 버전이 있습니다. SIGHASH_NONE 및 SIGHASH_SINGLE의 ANYONECANPAY 버전입니다.

CSFS를 사용하여 새로운 TxFieldSelectors를 “사이드로드”할 수 있게 되면, 사용자는 서명이 어떤 거래의 개별 조각에 대해 약속하는지 또는 그렇지 않은지를 정확히 선택할 수 있는 SIGHASH 시스템을 에뮬레이트할 수 있습니다. 

TXHASH는 또한 입력과 출력의 값 사이의 동등성을 강제할 수 있으며, 검사하려는 입력 또는 출력의 단일 값 필드에만 약속하는 개별 TxFieldSelectors를 사용하고, 그 해시가 스택에서 동일하도록 보장합니다. 

마무리 생각

TXHASH는 CTV의 성능을 극대화할 수 있는 잠재력을 가지고 있으며, 소비 거래에 대한 매우 세밀한 통찰력을 가능하게 하여 특히 CSFS와 결합할 경우 매우 강력할 수 있습니다. 

그러나 그 힘은 표현력이 충분하여 매우 큰 설계 공간을 열어줍니다. 이는 비트코인의 전체 인센티브에 실질적인 영향을 미칠 수 있는 영역에 가까워지고 있습니다. 출력이나 입력 간의 금액 동등성을 보장하는 것과 같은 것은 신뢰 없는 자동화된 온체인 교환에 필요한 것과 매우 가까워지고 있습니다. 이는 채굴자 추출 가능 가치(MEV)의 심각한 원천으로, 다른 블록체인들이 다루어야 할 매우 심각한 인센티브 및 중앙 집중화 문제입니다. 

TXHASH는 절대 간과되어서는 안 되며, 프로토콜 개발자들이 활용할 수 있는 매우 강력한 원시 요소를 제공합니다. 그러나 사람들이 그것으로 무엇을 구축할 것인지에 대한 잠재적인 2차적 영향은 긍정적인 것과 비교하여 신중하게 고려해야 합니다.

관련 기사

마이애미 IT 직원, 전 상사로부터 190만 달러 비트코인 절도 혐의로 체포 1

마이애미 비트코인 절도, IT 직원 체포

마이애미의 한 남성이 경찰에 따르면 전 직장에서 거의 200만 달러 상당의 비트코인을 훔친 혐의로 여러 중범죄 혐의에 직면해 있습니다. 이

카사, 비트코인 보유자를 겨냥한 증가하는 사회 공학 공격에 대응하기 위해 네 가지 보안 기능 출시 1

사회 공학 공격에 대응하는 카사 기능

비트코인 보안 회사 카사는 2025년 암호화폐 도난의 대부분을 차지하는 공격 벡터인 사회 공학을 겨냥한 네 가지 기능을 출시했습니다. 이 기능은

마스터카드, 디지털 자산 전략을 강화하기 위해 뉴욕 비트라이센스 확보 1

마스터카드, 비트라이센스 획득

마스터카드는 뉴욕주 금융 서비스국(NYDFS)으로부터 비트라이센스를 받았으며, 이는 이 결제 거대 기업이 미국에서 가장 엄격한 암호화 규제 프레임워크 중 하나 아래에서

크라켄, 비트코인 보관소 출시 - BTC 보유에 대한 수익 제공 1

비트코인 보관소 | 크라켄의 새로운 금융 솔루션

크라켄은 고객이 자산을 판매하지 않고도 비트코인 보유량에 대해 BTC 기준 보상을 받을 수 있는 새로운 제품인 비트코인 볼트를 크라켄 어

폴드, 비트코인 신용 카드 성장을 위한 1억 5천만 달러 유치 1

비트코인 신용 카드, Fold의 성장 동력

Fold Holdings, Inc., 최초의 상장된 비트코인 금융 서비스 회사가 Encina Lender Finance, LLC와 4년간의 고정 담보 회전 신용 시설에 진입했습니다.

DDC, 한 주에 비트코인을 두 번 구매하며 자산을 14% 증가시켜 희석 없이 재무를 성장시킵니다. 1

비트코인으로 DDC 자산 14% 증가

DDC Enterprise Limited (NYSE American: DDC)는 수요일에 131 비트코인을 구매하여 기업 비트코인 금고를 2,714 BTC로 확장했다고 발표했습니다. 뉴욕에 본사를 둔