ブロックチェーン/レベル IV · プロトコルを深く知る/4.1 Script/レッスン 5
ハッシュロックとHTLC
すべてを解き放つ秘密と、それが永遠に失われるのを防ぐタイマー
用意するものSHA-256に対応したテキストエディタまたはコマンドラインブロックエクスプローラー(例:mempool.space)PoonとDryjaによるLightning Networkのホワイトペーパー
問い
- その人が他の誰も信頼する必要なしに、1人だけが知っている秘密に支払いをロックするには、どうすればよいのでしょうか?
- 自分のお金を取り戻すための秘密を明かせばネットワーク全体に知られてしまうのなら、他の人が先にそれを盗むのを何が止めるのでしょうか?
- なぜマルチノードの支払いパスにおける各ホップには、わずかに異なる期限が必要なのでしょうか?
探究
- ハッシュロックとは、特定のデータであるプリイメージが明かされるまで支出を制限するビットコインスクリプトの条件です。コインはハッシュによってロックされ、そのハッシュは通常、秘密を持っている人が提供します。ここで重要なのは、資金を受け取るためにいずれかの参加者がプリイメージを明かすと、その請求を見るすべての人に明かすことになる点です。オンチェーンであれば全員に、Lightningチャネル内であれば相手方に知られます。
- この公開によって、同じハッシュでロックされたアウトプットを持つ他の当事者も、それらを支出できるようになります。Lightning Networkでは、最終的な受取人(チャーリー)がボブから支払いを受け取るために秘密を明かすと、その同じ秘密によって、アリスがボブのためにロックしたアウトプットも解除されます。この仕組みがアトミック性を実現します。つまり、全員が支払いを受けるか、誰も受けないかのどちらかです。
- しかし、純粋なハッシュロックには欠点があります。チャーリーが姿を消してプリイメージを明かさなければ、資金は永遠に動かせなくなってしまいます。タイムロックを加えると、ハッシュタイムロックコントラクト(HTLC)になります。ボブが提供する最後のホップの場合、スクリプトは次のように定めます。「チャーリーは期限Tまでにプリイメージを明かせばこのコインを請求できる。または、ボブはT以降にこれを取り戻せる。」
- この2経路のロジックにより、トラストレスな運用が保証されます。支払いが成功すれば、チャーリーはタイムアウト期間内に秘密を明かし、ボブからアリスへと請求が連鎖していきます。支払いが失敗したり、チャーリーがオフラインになったりした場合は、各HTLCがタイムアウトし、その提供者(チャーリー向けのものはボブ、ボブ向けのものはアリス)がスクリプトのタイムアウト分岐を通じて資金を取り戻します。
- この公平性プロトコルこそが、マルチホップルーティングを可能にしています。経路上の各HTLCは、その保持者が下流の次のノードに提供するHTLCよりも、わずかに長いタイムアウトを持ちます。この差が各中間ノードを守ります。下流のピアが最後の瞬間にプリイメージを使って請求してきても、中間ノードには、自分が受け取ったHTLCが返金されてしまう前に、そのプリイメージを上流で使う時間が残っているのです。
- スクリプトのパズルは複雑になり得ますが、HTLCのような実際のコントラクトには、ハッシュロックとタイムロックに加えて必ず署名チェックが含まれます。これにより解が特定の当事者に結び付けられ、マイナーによるフロントランニング、つまりマイナーがメンプール内で有効なプリイメージを見つけ、承認される前に支払先を自分に書き換える行為を防ぎます。
重要な事実
- ハッシュロックは、指定されたデータ(プリイメージ)が公開されるまで支出を制限します。
- 特定のハッシュを使ったハッシュロックが1つでも開かれると、明かされたプリイメージによって、同じハッシュを使う他のすべてのハッシュロックも支出可能になります。
- HTLCはハッシュロックとタイムロックを組み合わせ、受取人に期限内の支出を求め、そうでなければ送信者が返金を受けられるようにします。
- HTLCはLightning Networkのコミットメントトランザクションで使われ、アトミック性を備えたトラストレスなマルチホップルーティングを可能にします。
- スクリプトはハッシュロック用にOP_SHA256とOP_HASH160を提供しており、LightningではSHA-256の支払いハッシュが使われます。
- Tier Nolanは2013年に、このハッシュロックの仕組みを使ったクロスチェーンのアトミックスワップを提案しました。
演習 九・六・三・一
9集めるある行為によって秘密が明らかになり、それによって他の複数の行為が可能になる、実世界や暗号技術における9つの事例を挙げてください(例:金庫の開錠、プルーフ・オブ・ワークの公開)。
6まとめる秘密がどのように守られているかによって、9つを6つに分類してください:単一所有者、複数所有者、時間制限付き、空間制限付き、公開だが高コスト、不可逆。
3絞り込む6つを、互いを知らない当事者間でトラストレスな協調を可能にする3つの中核的な仕組みに絞り込んでください。
1結晶化するハッシュがコミットメントであり、プリイメージが鍵である理由と、タイマーがそれらを安全にする仕組みについて、1文で書いてください。
事実確認
日付、数字、主張は、下記に記載された公表資料と照合して確認しました。