Hashed Timelock Contracts (HTLCs)とは?
Hashed Timelock Contracts (HTLCs)は、決められた期限までに秘密が明かされた場合にのみ資金が移動するスマートコントラクトの仕組みです。タイマーが切れると、資金は送金者に戻ります。コードで開くロッカーがカウントダウン後に自動で閉まるようなイメージです。
「HTLCsはライトニングネットワークだけのものだ。」というのは誤りです。Hashed Timelock Contracts (HTLCs)は、アトミックスワップや複数のチェーン上の他の支払いチャネルの仕組みでも使われます。
Hashed Timelock Contracts (HTLCs)の仕組み
二人が時間付きで宝を明かす仕組みを作り、領収のような記録があると考えてください。流れは次のとおりです:
- ステップ1:二人がピアツーピアの方式で資金交換に合意します。受取人はランダムな秘密を作り、その指紋だけを送金者と共有します。
- ステップ2:送金者は、受取人が共有された指紋と一致する秘密を明かした場合に支払われるように資金を契約にロックします。その指紋は暗号学的ハッシュで作られます。
- ステップ3:受取人はタイマーが切れる前に秘密を公開して資金を使います。契約は一致を確認して支払いを解放します。
- ステップ4:もし先に時間切れになれば、資金は自動的に送金者へ戻ります。
- ステップ5:複数経路を経由するルーティングでは、全員が同じ秘密の指紋を使います。最終受取人がそれを明かすと、各中継点が順番に支払われます。これで完了です。
はい、それが全てです。
Hashed Timelock Contracts (HTLCs)が重要な理由
これが、暗号資産が信頼を置かずに価値を移転する方法だからです。
- 利点:両者にとってトラストレスに感じられる、全か無かの決済。
- 観点:即時ルーティング、クロスチェーンスワップ、ヘルプデスクを必要としないインターネット規模の支払いを可能にします。
- 関連性:支払いチャンネル、DEXスワップ、チャンネルベースのアプリで、Bitcoinなどの仕組みの中で見かけるでしょう。
上流側のタイムアウトは下流側より長めに設定し、秘密を再利用しないでください。これらをプログラム可能なエスクローのような仕組みとして扱い、タイマーが皆の行動を正す役割を果たします。
Key Characteristics of Hashed Timelock Contracts (HTLCs)
特徴は次の通りです:
- Hashlock:正しい秘密が明かされた場合にのみ資金が解除されます。
- Timelock:期限内に公開がない場合、資金は送金者に戻ります。
- Atomicity:複数ホップの経路では、すべてがまとめて決済されるか、まったく動かないかのどちらかです。
- Portability:基本的なスクリプトやコントラクトをサポートする異なるチェーン間で動作します。
Variations
同じ考え方で、異なるバリエーション:
- Hash:指紋にはSHA256やKeccakなど、さまざまなアルゴリズムが使われます。
- Script:Bitcoinではスクリプトベース、Ethereumではスマートコントラクトで実装されます。
- Timeout:相対時間か絶対時間かを、ルーティングのリスクや手数料に応じて選びます。
- Routing:単一ホップ支払いか長距離向けの複数ホップ経路か。
支払いが請求されると、秘密は公開されます。異なる Hashed Timelock Contracts (HTLCs)で再利用しないでください。またタイムアウトは常にずらして設定してください。
例
カフェでの例では、店舗が秘密を明かした瞬間にHashed Timelock Contracts (HTLCs)で経路支払いが決済され、すべての中継ノードが自動的に決済されます。
豆知識
この概念は初期のBitcoinの支払いチャネルのアイデアで描かれ、後にLightningのホワイトペーパーで広まりました。類似の仕組みを使った最初の公開アトミックスワップは2017年にDecredとLitecoin間で行われました。オタクっぽいですが歴史的です。
まとめ
短く言うと:プログラム可能なタイマーと秘密のコードにより、仲介者なしで信頼を持って資金を移動させられます。
