ライトニングネットワークは少額決済には向かない!?
はじめに
ライトニングネットワーク(以下、LNと略す)発案者の1人であるDryja氏がツイッターで呟いたこの言葉、
(訳)1つのチャネル間での1サトシ決済は問題ないけど、(トランザクション手数料レベル以下での)ホップ付きHTLCは少額決済として機能しない。なんちゃって1サトシHTLCは皆を失望さてているね。
え?LNって少額決済のためじゃないの?と思ってたのですが、どうやら違うみたい。LNは、確かにオンチェーンでの送金よりも決済時間が速く、送金手数料が安いというのがメリットです。それに加えて、オンチェーンではできなかった1円以下での少額決済を可能にする技術だと思っていたのですが、それについて見ていきましょう。
※本記事は以前運営していたサイトからの移設になります。
※本記事は末尾参考に掲載しているbitcoin.stackexchangeの内容を元に書いています。
David A. Harding氏の考察
LNのルールでは、dust limit(現在は294 satoshi)以下の送金ではHTLCを追加するのではなく、それを一時的にトランザクション手数料に追加します。以下の表は、アリスがキャロルへの送金に、ボブを経由して1 satoshi 送金している状態を表していて、in-flightとなっている箇所が「送金中」を表しています。これはアリスの送金が、支払先であるキャロルへ無事辿り着いた時に初めて「送金中」から「送金完了」としてボブのコインとしてチャネル情報を更新することができます。その為、送金中の場合は、この1 satoshi は宙に浮いている形となり、それを一時的にトランザクション手数料と見なしているのです。
もし「送金中」の状態でチャネルが閉じれば、その1satoshiをトランザクション手数料としてマイナーが回収します。しかしHTLCによる送金が成功/失敗した場合は、in-flightで一時的に手数料として換算されていた1satoshiが、成功の場合はボブの残高へ更新され、失敗した場合はアリスの残高へ更新されます。
アリスがボブを経由してキャロルへ送金する場合、一時的にアリス / ボブのチャネル状態が (2 アリス / 0 ボブ fee:1) のようになります。この状態でアリス / ボブのチャネルが閉じると、アリスが送金しようとしていた1satoshiがトランザクション手数料としてマイナーに回収されることになります。これ故に、LNは dust limit 以下での送金をトラストレスに保証していないというのです。
そこでHarding氏は、解決案として、Probabilistic paymentsを提案していますが、この案も根本的な問題を解決していないといっています。そこで次のMaxwell氏の考察についてみてみましょう。
G. Maxwell氏の考察
Maxwell氏によれば、上記で述べたLNのルールがゲーム理論によってセキュリティの担保をしていると考えているみたいです。どういうことかと言うと、もしアリスがボブ経由でキャロルへ送金する場合に、ボブが悪者でキャロルへ中継せずに、(2 アリス / 0 ボブ fee:1) の状態でチャネルを閉じる場合、1satoshiは誰も取得できずに、マイナーが回収するだけになります。ボブがこの送金をルーティングしていればルーティング手数料を得られたはずです。よってボブがこのような悪意ある行為をするインセンティブがないというのです。Maxwell氏はLNの少額決済はこのインセンティブのみで十分合理的だと考えているみたいです。
まとめ
現時点で、294 satoshi は約2円ほどなのでそれ以下のLN送金では、悪意ある中継者によって妨害され、マイナー手数料となってしまう可能性があることが分かりました。しかし、この攻撃は、中継者にも被害が及ぶので攻撃するインセンティブがないことが分かりました。
(参考文献)
https://bitcoin.stackexchange.com/questions/85650/htlcs-dont-work-for-micropayments/85694#85694