最近、第三者のオラクルが発表する結果に応じて二者間で資金を配分するDLCのような機能をライトニングネットワーク上でHodl Invoicesを使って実装した”Hodl Contracts"というコンセプトを見つけました。
現時点では技術デモの領域を超えていませんが、この技術が実際に使い物になるのか、どういうケースで使えるのかを見ていきましょう。
https://github.com/supertestnet/hodlcontracts
DLCおさらい
まず、DLCについて手短におさらいしましょう。DLCとは賭けに使うことができるビットコインを利用したスマートコントラクトの一種で、まず二者が賭ける金額を入金します。賭けの事象について第三者のオラクルが結果に応じた秘密鍵を公開するので、事前に用意しておいた数パターンの結果に応じた資金配布トランザクションを利用して分配を行うのがDLCです。
DLCの興味深いところはオラクルを含め当事者以外がその賭けの存在すら知る必要がないことです。これによってオラクルと参加者の共謀をある程度防ぐことができるほか、賭け自体のプライバシーも改善されます。一方で、同じ賭け全体でのオッズを計算するなどといったことはできません。
しかしながら、参加者からオラクルに共謀を持ちかける場合などが考えられるため、オラクルに対してトラストが必要です。オラクルの選定を工夫したり、複数のオラクルを利用することが推奨されています。(後者に関しては事前に用意するトランザクション数が膨大になりやすいですが…)
HODL CONTRACTS
Hodl Contractsについても、まずはHodl Invoiceのおさらいから始めようと思います。
Hodl invoiceとはライトニングネットワーク上の支払いについて、最終的な宛先となるノードが決済を一時的に保留し、あとで決済するかキャンセルするか選択する仕組みです。クレジットカードのホールド(仮決済)とHODL(ガチホ)をもじって名付けられました。
さて、Hodl Contractsはこの仕組みを使ってどのようにDLCのような機能を実現しているのでしょうか。AliceとBobがHodl Contractを実行する例を考えてみましょう。