ちょうど今日、AlbyからSatoshi's Auction HouseというHodlインボイスを使ったノンカストディアルなオークションサイトのローンチがアナウンスされました。Hodlインボイスはクレジットカードでいう「仮決済」のような状態で一定期間留め置かれるライトニング送金のことをいいます。

Satoshi’s Auction House

このコンセプトにピンときた読者もいらっしゃるかもしれません。そう、私が2021年の初めに公開したオークションサイトpaddle.bidと同じコンセプト、そして仕組みになっているようです。

Paddle - Lightning Auctions

Paddleの開発・運営を通してHodlインボイスの短所について考えることが多々あり、結果的には継続する意味がないと判断し閉鎖に至りました。

長時間のHodlインボイスは多くの問題を抱えている反面、短時間のHodlインボイスはライトニングネットワークにとってなくてはならない存在になりました。Boltzなどのアトミックスワップ系のサービスで広く利用されています。

今日はそんなHodlインボイスについて、基本的な仕組みからネットワークでの使われ方まで説明し、ライトニングの技術がどのように応用されているか紹介させていただきます。

・Hodlインボイスの仕組みと特長

・短時間のHodlインボイスはスワップサービスなどで活用され、ノンカストディアルなライトニング利用に貢献している

・長時間のHodlインボイスはデメリットが上回り、滅多に使われない

Hodlインボイスの仕組みと特長

Hodlインボイスについては2019年に本稿で解説しています。当時は「ライトニング送金をオフラインのユーザーも受信できるようにする」方法の1つとして、中間ノードが送金の中継を一定期間保留する「Lightning Rod」という技術が提案されていました。

オフラインの相手にもLNで支払えるようにする提案:Lightning Rod
ライトニングネットワークは多くの点で画期的ですが、送る側も受け取る側も同時にノードがオンラインでないと支払いが成功しないというちょっとした不便があります。今回紹介するLightning Rodは、LNの支払いにおけるノード間のバケツリレーを途中で一旦停止して、最終目的地がオンラインになったときに続行させることができるようにする、という提案です。 LIGHTNING ROD 10月にベルリンで開催されたLightning Conferenceで提案されたLightning Rodは、hodl-invoiceという特殊なインボイスを使うことによって支払いが経由するルーティングノードのうちLightning Rod (避雷針)という特殊なもので一時的に支払いを留め置くことで、最終目的地がインボイスの支払い期限までにオンラインになれば支払い時点でオンラインでなくてもよい仕組みを作るものです。 メリットとしては、カストディの形を取らずにオフラインでの受け取りが可能になることが何より大きいです。(LNの普通の支払いの流れに、途中で待つ機能がつくだけのため) 一方でデメリットとしては、受け取り

Lightning Rodが提案されたときの記事

結果的にこの後、いわゆるLSP型のライトニングウォレットにおいてHodlインボイスを使ったオフライン受金ができるものが多くなりました。例えばPhoenix WalletやBreez、Zeusなどが該当します。

ライトニング送金において、すべての送金は最初に「送金を受け取るユーザー」がプリイメージ(Preimage)と呼ばれる秘密データを生成し、そのハッシュ値を含めたインボイスを送金者に伝達します。送金者は受金者までの経路を選択し、実際の送金はバケツリレーのようにこの経路を伝って受金者までたどり着きます。

送金者から受金者まで順にPreimageでロックされた送金が連なっていく図

受金者にたどり着くまでの送金はすべて先述の「Preimage」によってロックされているため、最終的に受金者がビットコインを受け取るにはPreimageを直前のノードに伝える必要があります。このようにPreimageが最終的に送金者まで伝わったら、送金者にとって送金が完了します。

受金者から送金者まで順にPreimageが伝わって送金が決済されていく図

このとき、受金者がすぐさまPreimageを伝えて送金を決済せず、例えば在庫を確認したり、何らかの行動を取る間一時的に決済を保留すること(あるいは、その目的で発行されたインボイス自体)を「Hodlインボイス」と呼びます。実はLNの正式な仕様ではなく、発想の転換、あるいはハックとも呼ぶべき工夫です。

大きなメリットとしては、もし何らかの理由で決済したくない場合は受金者はそのまま「キャンセル」して送金者に返金することができます。Preimageではなくキャンセルが返ってきた場合は、中継ノードもキャンセルを伝達し、送金がすべて巻き戻されます。このとき、一切手数料がかからないという特徴もあります。

短時間のHodlインボイスはスワップサービスなどで活用され、ノンカストディアルなライトニング利用に貢献している

私たちは普段意識していませんが、Hodlインボイスは年々使用される頻度が高まっていると思われます。なぜなら、近年増加している「ライトニングウォレットだが、ユーザーの資産はLiquid NetworkやSpark、Arkなどライトニングチャネルではない場所に存在する」形のウォレットがほぼ例外なく採用しているBoltzというスワップサービスが利用しているためです。

Breez Nodeless, Wallet of Satoshi - Self Custody Wallet, AQUA, ArkadeなどのウォレットでLN経由で受け取るとき、Hodlインボイスが使われているのです。

Liquid Networkはライトニングのライトユーザーの受け皿になりうるのか?試算してみた
ライトニングノードやチャネルの維持には費用がかかります。現行のノンカストディアルウォレットはLSP型が主流ですが、エンドユーザーがLSPに支払う手数料は足りているのでしょうか。この夏の記事でも紹介したように、そんなことはないという事例が蓄積してきています。 LSPは儲からない?ノンカストディアル・ライトニングウォレットを支えるインフラからVoltageが撤退皆さんが主に使われているライトニングウォレットはノンカストディ型のものでしょうか? ライトニングウォレットは大別するとカストディ型・ノンカストディ型に分けられますが、一般的にはカストディ型のもののほうが人気があります。ライトニングノードほどではなくとも、初めて使うときにチャネルの開設が必要であったり、ときどき起動して同期しないといけないなど、多少の不便やコストがあるためです。 とはいえ、ノンカストディ型のライトニングウォレットにも需要はあり、大きな金額を安心して使いたいユーザーが使っていたり、カストディ型のウォレット運営が規制面などで難しい地域で提供されていたりします。昔はスマホにがっつりライトニングノードを丸ごと載せてしまうアプ

ユーザー資産はLiquid Network上にあるライトニングウォレットについての記事

その大きな理由として、プリイメージとそのハッシュ値を使ってロックされる仕組みがアトミックスワップを行う上で非常に扱いやすいことと、Hodlインボイスをキャンセルした場合は即時、手数料無料で返金ができることが挙げられます。

今後も多くのウォレットでLNとの接点がいわゆるSubmarine Swap(LN↔チェーンのスワップ)になっていくにつれ、この傾向はますます強化されるでしょう。Hodlインボイスはカストディ型のウォレットを使うよりは自己主権性が守られるビットコインの使い方を多くの人に広げています。

💡
Boltzの仕組みについては以前にも紹介していますが、近い将来に図を含めて改めて記事化する予定です。

長時間のHodlインボイスはデメリットが上回り、滅多に使われない

一方で、長時間滞留するHodlインボイスはネットワークにとって害になります。Hodlインボイスが決済またはキャンセルされるまで、その送金が経由するチャネルすべてで送金の中継に使える流動性は減少し、また偶発的なチャネル閉鎖につながる可能性も送金にかかる時間が長い分だけ上がってしまいます。

実際に、ライトニングウォレットのZeusと(今はなき)Mutiny Walletの間の送金の多くが、ZeusのHodlインボイスの扱いとMutinyの仕様の相性の悪さによってチャネル閉鎖につながった事件があり、オンラインで論争を巻き起こしました。

その当時も、本稿でHodlインボイスのデメリットについて解説しています。

ライトニングネットワークで大半のユーザーがオフラインでも送金できる未来は果たして実現できるのか?
今週、比較的ポピュラーなノンカストディアルライトニングウォレットの1つであるZeusがバージョン0.8をリリースし、様々な機能が追加されました。 Our embedded node, LSP, and self-custodial lightning addresses are now available for everyone to test.https://t.co/3BwkXmM4bM pic.twitter.com/TeEalTjRkR — ZEUS (@ZeusLN) October 23, 2023 その中に非同期ペイメントの受け取りという機能があり、賛否両論を呼んでいます。非同期ペイメントとは送金者・宛先のどちらかがオフラインでも送金が可能になる(オンライン復帰するまで仮決済状態になる)という機能で、ライトニングのUXを改善するものですが、なぜ否定的な意見があるのでしょうか? それには非同期ペイメントを実現する方法が関係しています。否定派の1人、Matt Corallo氏は以下の指摘をしています: Don’t use this. Holding

Hodlインボイスのデメリットについて解説した記事

まとめ

このように、Hodlインボイスは非常に便利なテクニックとして使われていますが、長時間のものほど負の側面が大きくなってしまう特徴があります。Paddleでは最長で数日のHodlインボイスも扱っていましたが、冒頭で紹介したSatoshi's Auction Houseは今のところオークションの開催期間を数時間に限定しているようです。

送金者のウォレット側でHodlインボイスが意図的なものなのか、それとも普通の送金が途中で引っかかっているのか判断できないこともUX面での課題になっており、中継ネットワークへの負の影響とあわせて、Hodlインボイスは数秒程度でなければ事実上使わないほうがいいと私は考えています。

ライトニングならではの取り組みなので、Satoshi's Auction Houseがどんなアイデアを仕掛けてくるかは興味を持って見ていきたいと思います。ノンカストディアルな形で入札できることは、オークションサイトに求められる価値としては3番手以下なのが実情だとは思いますが…。(多数の入札者がいること、出品者が信用できることが圧倒的な1位2位なのではないかと思います)

PSBTを利用したOrdinal Inscriptionsのダッチオークション
オークションって面白いですよね。アート、中古車、不用品、鮮魚、公共事業など様々なものがオークションで値付けされています。ゲーム理論を勉強するのにうってつけの題材でもあります。 自分はこの興味からライトニングのいわゆるHodl Invoiceを利用したオークションサイトを作ったりしました。(今はたぶん改修しないと使えません) さて、オークションといえばアートと連想する方も少なくないように、NFTなどの世界でも日常的にオークションが開催されていて、最近ではBitcoin上のOrdinal Inscriptionもオークションで売買されていたりします。その中で面白いと思ったのはPSBTを使ったダッチオークションです。詳細を見ていきましょう。 PSBTとは PSBTとはPartially Signed Bitcoin Transaction (部分的に署名されたビットコイントランザクション)の略で、複数のウォレットが1つのトランザクションに署名する際に署名途中のトランザクションデータをやり取りするための規格のことです(BIP-174)。シンプルな利用例の1つにマルチシグからの送金があ

オークションというテーマに関連して、PSBTを使ったOrdinal Inscriptionsのオークションについての記事も合わせてご覧ください。