ライトニングネットワークなどについてアカデミックな論文が発表されても、ツイッターなどで話題になることはそれほどありません。そもそも論文を読みたい人、読める人が少ないということもあるでしょうが、学者タイプとOSS開発者タイプのオーバーラップが小さいことも理由かもしれません。実際、論文の多くは「ビットコインをこう変えたら」「LNをこう変えたら」実現できるという、少し厳し目の前提を必要とするものが多いように思います。(LNに関しては今からでも将来の方向性に大きな影響を及ぼし得ると思いますが)
さて、今日はその中で面白いと思った、LNのマルチパスペイメントのトータルでの安定性を向上させる2つの提案、BoomerangとSpearについて書きます。現在のLNでそのまま使うことはできませんが、思考実験や可能性の探究としてお楽しみください。
マルチパスペイメントの課題
LNで送金をする際に、まるごとの金額を中継するために十分な流動性のある経路が存在しない場合があります。このとき、支払いをいくつかの小さな支払いに分割し、様々な経路を通して送金することをマルチパスペイメントといいます。これは既に利用できる機能です。
マルチパスペイメントはLNで安定して送金できる金額を増やしましたが、いくつか課題があります。たくさんの支払いに分割することによって手数料が少し余分にかかるのは安定性向上の対価として仕方ないとしても、一番問題なのは「一部の送金が失敗したり時間がかかると、全額の送金に時間がかかる、または失敗する」ことです。せっかくのライトニングネットワークですが、中継ノードが落ちていたりして途中で送金が引っかかってしまう(stuck payment)と解消に数分かかることもあり、アプリケーションもこれを前提とした設計が必要になったり、UX面で問題になります。そしてマルチパスペイメントは多数の支払いに分割するため、引っ掛かりが発生する確率も高くなってしまいやすいです。
送金相手をトラストできる場合は引っかかったりした分があっても足りるように少し余分に送金をして、実際の請求額より多く支払った分はキャンセルしてもらうことはできるでしょう。しかし、送金相手をトラストできないシチュエーションも数多くあります。
したがってマルチパスペイメントにとって、分割した送金の一部がスタックしたりすることは大きな課題なのです。
秘密分散を利用するBOOMERANG
上で実際より少し余分に送金をするアプローチを紹介しましたが、実際に受け取られる金額が正確な金額になることをトラストレスに保証できないか?というのがBoomerangとSpearの発想です。Boomerangにおいては、秘密分散を利用します。