Hodl ContractsでDLCライクな体験を
最近、第三者のオラクルが発表する結果に応じて二者間で資金を配分する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を実行する例を考えてみましょう。
まず、AliceとBobはそれぞれオラクルに対して送金します。この送金をオラクルが受け取るために必要なPreimageはBob、Aliceがそれぞれ持っています。つまり、この時点でオラクルがAliceからの送金を受け取るにはBobが持っているPregimageが、Bobからの送金を受け取るにはAliceが持っているPreimageが必要です。
次に、オラクルからAlice、Bobに送金するHTLCをそれぞれ作りますが、このとき金額をまだ決めません(HTLCを途中まで作ります)。Aliceに送金するHTLCはAliceの持つPreimageで、Bobに送金するHTLCはBobの持つPreimageで決済できるように作ります。
最後に賭けの対象となっている事象が発生したときに、オラクルが勝者を選択し、勝者に支払うHTLCに入金します。例えばAliceが勝ったとすると、AliceはPreimageを開示して賞金をオラクルから受け取り、オラクルはそのPreimageを使ってBobから賭け金を没収します。これでHodl Contractが完成しました。
DLCと比較してHodl Contractが劣る点はオラクルがコントラクトの存在や参加者について知識を得るためにオラクルから共謀を提案できうる点と、オラクルが結果を配信しないため過去に不正な配信をしていないか確認することが難しい点です。さらに、ライトニングを使うのと引き換えに、HTLCの期限があるため短期間(最大数日)で決着する賭けにしか向きません。
オラクルが勝者に支払うHTLCの作成方法に対応するには少しノードのカスタマイズが必要ですが、その点を除けば現在のLNで簡単で実行できるところは長所といえます。LNで実行できることでオンチェーンのDLCと比較して手数料も安く済み、少額の賭けで利用しやすいです。
まとめ
個人的に、2020年はDLCがもう少し注目され、ウォレットの対応が始まり、プロダクトも出てくると考えています。しかし、Hodl Invoiceで大まかに似たことが実現できるという今回の提案も大変興味深く思います。Hodl Contractsに対応したLNノードプラグインやアプリなどが必要になると思われますが、オラクルに対するトラストの度合いによってはアリな選択肢としていずれは採用するLappsが出てくるかもしれません。
LN上で一般的な支払いやDLCのみならず、LNノード同士がP2Pで多様な支払いや契約、決済を行うことができるようになり、LN自体が他のプロトコルの土台としてより成熟していくことに期待している今日この頃です。
追記:LightningEscrowというプロダクトとしてローンチする予定のようです。
次の記事
読者になる
一緒に新しい世界を探求していきましょう。
ディスカッション