Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OP_CTV(BIP-119)

 OP_CTV(BIP-119)

GBECの解説動画の資料です。
https://goblockchain.network/2022/07/op_cvt/

shigeyuki azuchi

July 06, 2022
Tweet

More Decks by shigeyuki azuchi

Other Decks in Technology

Transcript

  1. OP_CTV (BIP-0119)


  2. 1 OP_CTV (BIP-0119)
 コインの使用方法を制限できるようにする新しい opcode
 OP_CHECKTEMPLATEVERIFY (OP_CTV)の提案
 https://github.com/bitcoin/bips/blob/master/bip-0119.mediawiki 
 


    【従来のBitcoin Script】
 
 
 
 
 
 
 Parent Tx
 In
 Out
 ロック条件
 Prev UTXO 
 Child Tx
 In
 Out
 Parent TxのUTXO 
 ロック条件
 アンロック要素 
 UTXOのscriptPubkeyにロックされたコインは、
 それをアンロック可能な要素(署名など)を
 提供することで、そのUTXOのコインを使用可能になる
 アンロックしたコインをどう使うか(どこに送金するか)は、
 ユーザーが自由に決められる
 OP_CTVは、この送金先(アウトプット)の制御を可能にする

  3. 2 OP_CTVの仕様
 OP_CHECKTEMPLATEVERIFYは、既存の予約opcode OP_NOP4を置き換える
 ※ 新しいsegwit versionを導入することなく、従来のBitcoin Scriptでも利用可能
 
 OP_CTVの挙動:


    1. スタック上に少なくとも1つの要素があることをチェック 
 2. スタック上の最上位の要素が32バイトかどうかチェック 
 3. 実行中のインプットにおいて、トランザクションのハッシュ値が 
 スタック上の要素と一致するかチェック 
 Child Tx
 In
 Out
 アンロック要素 
 ロック条件
 Hash(Child Tx)がxxxと一致することを検証
 
 つまり、OP_CTVを利用する際は、そのUTXOを作成する段階で、
 子Txの構成を定める必要がある。
 将来のTxにコミットしたアウトプット
 Parent Tx
 In
 Out
 xxx OP_CTV … 
 Prev UTXO 

  4. 3 OP_CTVのユースケース例
 • 輻輳制御
 取引所が多くのユーザーに対して一括して出金する際の、手数料効率の向上 
 
 
 
 


    
 
 
 • Vault
 Withdraw Tx
 In
 Out
 xxx OP_CTV … 
 取引所のUTXO 
 Child Tx
 In
 Out
 アンロック要素 
 ユーザーAへの出金 
 ユーザーBへの出金 
 ユーザーZへの出金 
 ︙
 • Withdraw Txはサイズが小さいため低手数料で素早く承認
 • 各ユーザーへの出金はChild Txで
 ◦ 手数料市場が安くなった際にチェーンに取り込まれる
 ◦ OP_CTVによりコミットされているため、
 Withdraw Txがチェーンに入れば二重使用リスクはなくなる
 
 Vault Tx
 In
 Out
 【Vault Script】 
 xxx OP_CTV … 
 入金するコイン 
 Unvault Tx
 In
 Out
 • x日後に入手可能 
 OR
 • 【To cold Script】 
 xxx OP_CTV … 
 Vault UTXO 
 ToCold Tx
 In
 Out
 To cold pubkey 
 Unvault UTXO 
 出金方法にルールのある金庫の実現 
 • タイムロック付きのホットウォレット 
 • コールドウォレット