エルサルバドルでのビットコインの法定通貨採用にも一役買ったStrikeというライトニングネットワーク関連企業があります。Strikeは銀行口座と連携し米ドルやUSDTでライトニングのインボイスを支払ったり、ビットコインを買ったり、一度ビットコインに変換することで異なる通貨間で国際送金することができるサービスを提供しています。
Strikeが代わりにビットコインを買って送金してくれるため、ビットコイン支払いに関する税金関連の煩わしさがなくなる点が強調されています。
さて、ライトニング上でルーティングをしている方はこのような決済事業者を見かけると中継手数料を得るチャンスに見えてくるかもしれません。残念ながらStrikeのノードはどれかも非公開で、たとえインボイスなどの情報からノードの情報やチャネルのUTXOを知ったとしても、勝手にStrike相手にチャネルの開設ができないように設定されています。
本日はなぜStrikeがそこまでしてノードを隠し、チャネルを開設できる相手を厳選するのか、その理由を説明します。
取引数の多いノードの運営は大変
Strikeのユーザー数やトランザクション数のデータは公開されておらず、詳しいことはわかりませんが、ユーザーの反響やエコシステム内での勢いを見るからに多数のトランザクションをさばいていることが推測されます。
ライトニングのペイメントを行うにあたって、送金するノードが毎回経路を指定する必要があります。Strikeを使った送金の場合は、Strikeのノードが経路を指定します。そして高速に、安定して送金を成功させるにはこの経路選択が非常に重要になってきます。
送金に時間がかかったり成功率が低いとユーザーエクスペリエンスが損なわれるのみでなく、ノードのリソースが圧迫されサービスの提供に影響が出るという負のスパイラルに陥ることも考えられます。
特に、レスポンスが遅い・オフラインのことが多い・チャネルのリバランスをしていないなど、質の悪いノードへの接続によってルーティングの失敗率が増加しやすいです。この問題に対して、Strikeはチャネルを張る相手のノードを厳選することで対処しているというわけです。
実際、昨夏にインバウンドにチャネルを張ることのできるノードを限定し、支払い経路の選択方法も信頼性重視に変えたところ、ユーザーの増加に伴って増えていた送金失敗が完全になくなったそうです。
https://twitter.com/JackMallers/status/1291403523880636416
同様の選択を取るノードは多い
Strikeに限らず、接続しているノードやチャネルの品質がサービスの提供に影響を及ぼすため、インバウンドのチャネル開設に何らかの制限をかけている事業者は多いです。一番多いのは、チャネルの最低金額の設定です。
レスポンス時間やオフライン率が支払いの失敗率に影響すると書きましたが、チャネルのサイズも支払いの成功にとって重要です。なにせ、チャネルの容量が小さいほど、現実的に中継できる金額が小さくなるからです。例えば0.01BTCのチャネルがあっても、半々にリバランスされていて中継できる送金は最大0.005BTC、現実的にはそれでも成功率はあまり高くないでしょう。一方で0.1~1BTCのチャネルであれば大抵のライトニング送金に対応できます。したがって本気でルーティングに取り組むならチャネルあたり0.1BTCが最低ラインでしょうか。
実際、Bitfinexやfixedfloatなどの取引所のノードや、カストディアルウォレットのノードのように、リバランス需要で大きな金額が動きやすいノードほど高めのチャネル最低金額を設定しているような印象があります。