ビットコイン・インスティテュート

ピーター・トッドが​BIP 65: OP_CHECKLOCKTIMEVERIFYを​提案

ビットコインのタイムロック付きトランザクションスクリプトを表した紺色の技術図解。錠前アイコンが施錠状態から解除可能な状態へ移り変わる様子、時計の文字盤、条件を積んだスタックの箱、そしてエスクローと返金の流れでつながる2つのシルエット人物が描かれている。

2014年10月1日、ピーター・トッドはBIP 65を提案し、ビットコインのスクリプトシステムに新しいオペコードOP_CHECKLOCKTIMEVERIFYを導入した。この提案は既存のNOP2オペコードを再定義し、指定されたブロック高またはタイムスタンプに達するまで使用できないタイムロック付きトランザクション出力を可能にした。

仕組み

このオペコードはスクリプトスタック上の値をトランザクションのnLockTimeフィールドと比較する。nLockTimeに達していなければスクリプトは失敗し、トランザクションは拒否される。これにより、将来の特定時点まで資金がロックされたままであることを、スクリプトで強制できる。

ユースケース

  • 遅延アクセス付きエスクロー:三者間エスクローで、弁護士がタイムアウト後にのみ資金にアクセスできるようにし、即時の窃盗を防止する
  • 二要素ウォレット:2-of-2マルチシグでコインを保持するサービスが、サービス停止時に自動返金を実装できる
  • ペイメントチャネル:トランザクション展性の回避策に依存しない非対話型の返金メカニズム
  • 資金凍結:指定時刻まで証明可能にビットコインをロックし、強迫や没収のリスクを軽減する

意義

BIP 65はコンセンサスレベルのソフトフォークとしてデプロイされた。そのタイムロック出力は非対話型ペイメントチャネルの構成要素となった。このペイメントチャネルが、後にLightning Networkが築かれる土台になった。Lightning Networkのチャネル構造全体や、ビットコインの基盤層の上に築かれたサイドチェーン・マイニングプールなどのエコシステムについては、ビットコインのエコシステム設計で詳しく扱っている。OP_CHECKLOCKTIMEVERIFY自体は、相対タイムロックを担うOP_CSVと並んで、トランザクション設計文書のスクリプトレベルタイムロック比較表に記載されている。