ライトニングルーティング自動運用で目指せ年利1%【DHメソッド5.0】
Diamond Handsコミュニティの皆さん、最近ルーティングの調子はどうですか?
去年6月にDiamond Handsコミュニティの案内をして、気づいたらちょうど今1年ほど経過しましたが、当時国内でルーティングノードの運用をしている人がせいぜい20人程度くらいのところから、今時点で日本だけでもおそらく200人以上がUmbrelなどでフルノードを運用し、ルーティングに挑戦しています。
まだこれからやりたいと考えているもの、今仕込んでいるものも多いですが、この1年で少なくとも日本のビットコインやライトニングを盛り上げる、という部分は一定以上の成果が上げられたと思います。
しかし、同時にあまり上手くいっていない大きな課題がまだ残されています。新しくフルノードを立ててみたものも、ほとんどライトニングのルーティングが発生せずに、その後何もせずに放置してしまう人が圧倒的に多いことです。
初心者ノードでルーティングがなかなか発生しない理由
初心者ノードでルーティングが発生しない理由は主に以下の3つだと考えています。
- チャネルを貼るノードの選択が良くない
新しくルーティングを始める人は、どのノードにどれくらいの大きさのチャネルを貼るべきかわからないのでとりあえずBitfinexやAcinqなど、ランキング上位でキャパシティやチャネル数が大きいノードにまずはチャネルを貼ることが多いです。
ただししばらく運用すればわかりますが、上位のノードの多くはチャネルを貼ると、反対側(例えばBitfinex側)にキャパシティが一方方向に動いた後、自分方向には中々お金が返って来ないので、キャパシティが吸い取られる形になってしまいます。戦略に寄ってはこのようなノードにも利用価値はありますが、特に資金量も限られる初心者ノードにとっては片方向にしかお金が流れないノードは扱いづらいです。
つまり、有名で大きなノードだから自分にとって優良なノードであるとは限らないのです。
ではどのように優良ノードを見極めるかというと、正攻法で行くと多くのノードにチャネルを貼り、それらのチャネルのお金の動きを観察しながら優良ノードやお金の動きの傾向を自分で把握していく必要があります。
ただし、これにはおそらく最低でもルーティング用に0.5BTC以上の資金の準備と、常に変化していくルーティングネットワークのお金の流れを把握するために頻繁なデータチェックや根気も必要になってきます。大部分の初心者ノードはこの障壁をクリアする前にほとんどルーティングが発生しないまま、諦めてしまうことが今まで多かったです。 - 手数料の設定が良くない
ノード選択以外に重要な要素は手数料の調整です。
これを読んでいる人はおそらくすでに理解していると思いますが、ライトニング上では各チャネルごとに送金中継にかかる手数料を自由に設定することが出来ます。これは手数料収益を得る以外にも、ルーティングノードにとっては手数料を調整することでお金の流れを上手くコントロールする、という役割が大きいです。
初心者ノードはおそらく最初の方はルーティングの結果などを目視しながら、手動で各チャネルへの手数料を変更しながら勉強することが多いと思いますが、段々チャネル数が増えてくると手動で対応するには限界がありますし、どこをどう調整すればいいかわからなくなって、結局何もしないまま固定手数料放置になってしまい、ルーティングもほとんど発生しなくなってしまう、というループに陥りがちです。 - 良質なインバウンドキャパシティが足りない
最後に、そして実は多分最も大きな問題がインバウンドキャパシティ不足問題です。
初めてルーティングノードを運用する人のイメージとしては、例えばルーティング用に1BTCを用意して、多数のノードに対してチャネルを貼りまくればルーティングもたくさん発生するだろう、という印象を持つと思いますが、実際にはこれだと何もルーティングは発生しません。これがライトニングルーティングの非常に特徴的かつ難しい部分ですね。
なぜか?
これは俗に言うアウトバウンドとインバウンド両方のキャパシティがルーティングには必要だからです。自分のビットコインをロックして他のノードにチャネルを貼る行為はアウトバウンドの補充で、自分でいくらでもコントロール出来ます。しかしいくら大量にチャネルを開設しても、インバウンドがゼロの場合ルーティングは一件も発生しません。
一方、インバウンドは簡単に言えば、他のノードが自分のノードに向けていくら資金をロックアップしてくれたか、の数値です。
インバウンドキャパシティの入手にはいくつか方法がありますが、Diamond Handsノードのようにある程度界隈で知名度があるノードの方がインバウンドは入手が簡単で、逆に言うと新しくノードを立てた人は待っていても他のノードがチャネルを貼ってきてくれることはほとんどなく、結果としてアウトバウンドに対してインバウンドが不足している状態なのでルーティングもほとんど発生しません。
では、インバウンドキャパシティを提供してくれるLNBigやBitrefillなどのサービスがあるから、ここから例えばアウトバウンド(自分の手持ちのビットコイン予算)と同量のインバウンドキャパシティを購入すれば問題解決か、というと実はそれもまだ甘いです。LNBigなどは①で開設した一方方向にしか流れないタイプのノードで、ここからインバウンドキャパシティを入手しても経験的にはルーティングはほとんど発生しません。
つまりインバウンドキャパシティには金額の問題もありますが、どのノードからインバウンドを提供してもらうのか、どこのチャネルにインバウンドキャパシティを貯めるのか、同じインバウンドキャパシティでも質の違いが存在するということです。
さて、ここまで読んで、「なるほど、わからん」もしくは、「わかったけどめんどすぎる」そういう風に思った人も結構いると思います。
実際上記のような話は本来色々試行錯誤しながら自分で経験的に学んで行くことなので、理論を言われても自分で経験しないと腹落ちはしないでしょう。また、そこまで理解するのに多くの時間や実験をしていく必要があるので、本業で忙しい人は興味があってもそこまで出来ない人がほとんどだと思います。
「あー、めんどくさいこと考えずに、何かどのノードにどれくらいの大きさのチャネルを貼るべきか教えてもらって、手数料も自動的にいい感じに調整してくれて、誰かがインバウンドキャパシティもいい感じに提供してくれないかなー」
という素直な心の叫びを出来るだけ簡単に実現するのがDHメソッド5.0の要点です。
DHメソッド5.0概要
- 資金量や技術レベル、コミットメンドレベルなどをベースに、DHノード、リーダーノード、コミュニティノードの3つのカテゴリに分ける。
- DHノードはリーダーノードをサポートし、リーダーノードはコミュニティノードをサポートする
- DHノードの運用実績やデータを参考に、DHコミュニティ内のノード向けに優良なノードに関するリストを作成して公開する
- charge-lndというツールを使ってキャパシティの変化に応じてチャネルごとに手数料の自動調整機能を設定し、基本的に普段は放置でも自動的に手数料が調整され、ルーティングが安定して発生するようになる
- DHノードはリーダーノードにインバウンドキャパシティを提供し、リーダーノードはコミュニティノードにインバウンドキャパシティを提供する
- DHメソッドに参加するリーダーノードやコミュニティノードには、DHノードからルーティング量や、チャネルサイズ、貢献に応じてルーティング報酬を配布する。
上記がDHメソッドの大まかな概要です。
すでに上記の要領で数ヶ月前か約15人ほどのリーダーノードのテスターと運用テストをしており、ある程度効果が実証出来たのでこのタイミングでより多くの人に参加してもらうべく、コミュニティノードというカテゴリを作って一般公開します。ちなみに元々のDHメソッドを1.0として、そこから何回か2.0と3.0と細かい修正を重ね、4.0は飛ばして今回5.0という仕組みで一般公開します。
まだ実験的な手法ではありますが、DHメソッド参加前はほとんどルーティングが発生していなかったノードも、最低限の資本(0.1〜0.2BTCほど)と基本放置の自動運用で月に500〜1000トランザクションほど、取引高としては0.5〜2BTCほどルーティングが発生している、という結果も出ています。
また、ルーティングによる手数料収入と、DHノードからの追加のルーティングボーナスを追加すると、年換算すると大体年利0.6%くらいの利率が得られている人もいる計算になります。
DHメソッドは初心者ノードの運用や調査負担を大幅にカットしつつ、さらに追加でルーティング報酬をDHノードから配布することで、基本的に自動運用かつノンカストディアルな形で年利換算1%くらいのルーティング収益を得られる形を最終目標として実験していこうと思います。
フルノードの用意やルーティングには手間やセキュリティリスクも存在はしますが、ノンカストディアルな形で年利1%ビットコインで利率を稼げる、ということになったら、これはかなり画期的だと思いますし、ルーティングに参加する現実的な意味も出てくるんじゃないかと思います。(DHノード視点でなぜわざわざこんなことをしようとしているのか、は後述)
DHメソッド コミュニティノードの具体的参加方法
- コミュニティノード参加フォームに記入
こちらのGoogleフォームから参加登録をしてください↓
https://forms.gle/rXRzkcjxj29bwEsB7
これは参加コミュニティノードに番号を振り分け、担当リーダーノードにアサインする為の情報です(それぞれのコミュニティノードに対してリーダーノードがメンター的な感じでフォローしてくれます) - 0.1BTC以上のビットコインを用意
DHメソッドに参加するには最低でも4〜5つチャネルを開設する必要があります。資金に余裕があまりない、という人もいるかもしれませんが、今までの運用上の経験だとこのために出来れば0.1BTCくらいはビットコインを用意してもらう必要があります。
0.1BTC用意できない人も参加自体は問題なく出来ますが、不安な場合はテレグラムなどで個別に連絡してもらえれば個別に指示、判断します。
以下は予算0.1BTCを前提で説明していきます。 - DHノードへチャネル開設
これはDHコミュニティ立ち上げの時から変わらず、DHノードへチャネルを貼ってください。チャネルサイズは100万Sats以上なら自由ですが、チャネルサイズに応じてDHノードからのルーティング報酬も変わってくるので、予算次第ですが出来れば最低でも300万Sats、もしくは500万SatsくらいをDHノードに貼ることをおすすめします。 - charge-lndでDHメソッドの手数料設定
charge-lndは、指定した条件に従ってLNDノードの各チャネルの手数料を自動的に設定してくれる便利なツールです。
例えば、特定のチャネル上のアウトバウンドが減ってきたら1時間に一回などの頻度で自動的にそのチャネルの手数料を引き上げて、チャネルのバランスが崩れないように調整してくれます。理論上は、この手数料を上手く自動設定出来ればノードを放置していても、状況に応じてチャネルの手数料が自動的に変化していき、ぐるぐるルーティングをしてくれることになります。
charge-lndを設定するにはUmbrelなどを使って一部コマンドラインの利用が必要になりますが、Hidekichiさんがやり方についてチュートリアル記事を書いているのでこれに沿って設定してください。
charge-lndチュートリアルhttps://spotlight.soy/detail?article_id=kdj20m58d - ホワイトリストから3つノードを選択してチャネル開設
以下のドキュメントのホワイトリストのDiamond Tierから2つ、Gold Tierから最低一つ好きなノードを選択してチャネルを開設してください。
https://docs.google.com/spreadsheets/d/1M-611-Qom-B7kyCY7JeJCanvaHAV1KXTrAP39_2k5r8/edit?usp=sharing
チャネルサイズは出来れば最低200万Satsで開いてください。
よくわからない場合やエラーが出てしまう場合は、DHテレグラムグループ内で相談、もしくは担当リーダーノードの人に聞いてください。
なお、上記のドキュメントではキャパシティを一方的に吸われてしまう可能性が高いノードのブラックリストも作っています。中級者以上になるとこれらのノードの使い道が出てくる可能性はありますが、まだよくわかってない人たちは資金効率が悪くなるのでこれらのノードにチャネルを貼るのは避けてください。 - Wallet of Satoshiに送金してインバウンドキャパシティを合成する
具体的な仕組みの説明は割愛しますが、例えば合計0.1BTCの資金をルーティング用に用意していたら、その内0.03〜0.05BTCをWallet of Satoshiに送金してください。
こうすることで上述したインバウンドキャパシティを合成し、ルーティングが発生しやすい環境を作れます。
チャネルのリソース分配によっては0.03BTC以上送金しようとするとエラーが発生する可能性がありますが、よくわからない人は参考として0.1BTCのうち0.03BTCをDHノードにチャネルを貼り、その分を丸々Wallet of Satoshiに送ってしまえばいいです。
なお、Wallet of Satoshiに送ったビットコインはそのままライトニング決済用にウォレットに入れてライトニング決済用にとっておいてもいいかもしれませんし、オンチェーンでウォレットから引き出して手元に回収してもいいです。
やり方などは以下の記事などを参考にしてください。
https://spotlight.soy/detail?article_id=cji646fh2 - 以上!
上記で最低限のセットアップは完了です。
全て問題なく設定出来ている場合は、自然とルーティングが発生し始め、手数料がそれに応じて自動で調整されるので後は放置していても毎日ある程度ルーティングが発生し始めると思います。
また、コミュニティノードは特に具体的な作業は不要ですが、裏で担当リーダーノードが追加でコミュニティノードに対しチャネルを開いてインバウンドキャパシティを提供してサポートしてくれます。
DHノード視点でDHメソッドをやる理由
さて、上記の方法に沿ってやっていけば初心者でもある程度ルーティングが発生するはずですが、そもそもなんでわざわざこんなことしてくれるの?という疑問もあると思うので一応最後に補足説明しておきます。
DHノードの視点から上記のようなスキームを実行するモチベーションとして、
- コミュニティの活性化
ルーティングノードを立ち上げても大部分の人が途中で何もしなくなってしまう現状は、コミュニティ活性化の点でイマイチです。せっかくラズパイを買ってフルノード建てるところまで行けたなら、出来るだけ低リソースでルーティングに貢献できたいたほうが楽しいと思いますし、コミュニティ全体も盛り上がると思うので、初心者向けのテンプレートとしてDHメソッドを公開しています。また、コミュニティ内でアクティブなノードが増えれば、海外向けへのアピールにもなるので、日本のビットコイン&ライトニングの市場の存在感をキープするためにも全体の底上げは必要です - DHノードのパフォーマンス向上
現在DHノードは約500ほどのチャネルを持つ比較的大きなルーティングノードになっています。しかし、ルーティングの仕組み上、繋がっているノードやチャネルがインアクティブな場合、DHノード自体の外部からの評価が下がったり、チャネル数が増えるに連れルーティングノード運用のコストが上がったりする問題が出てきています。DHノード視点で言えば、動きがない小規模なチャネルに関してはどんどん閉じていってスリム化した方がメリットも大きいのですが、コミュニティの性質上個人ノードからチャネルは出来るだけ閉じたくはないです。なので、今非アクティブになってしまっているノードをDHメソッドで活発化させることで、DHノード自体のパフォーマンス向上を狙っています。 - ルーティングによる手数料収益モデルの検証
DHメソッドのスキームは平たく言えば、DHノードの運用経験や知見を利用して、初心者でも学習コストが低い形でノンカストディアルに収益を上げるための実験とも言えます。現状はルーティングから獲得できる手数料収入は大したことではなく、DHノードが補助金を配布しているような形ですが、多くのノードへ同様の手法を採用してもらい、データを共有し、やり方を改善していけば、いずれルーティングだけでノンカストディアルにある程度のビットコインの利率を稼げる日が来るかもしれません。仮にその状態まで行ければそのような手法や環境の提供を有料で提供する。というモデルも出てくるかもしれませんし、そのためのあくまで実験としてこのようなモデルを当面運用してみようと思っています。
とりあえず以上です。
7月からこれから数ヶ月はDHノード自身のルーティング戦略を改善しつつ、コミュニティ内のノードを活性化させる両輪を回していくことで、更にルーティングの取引高や収益性を引き上げられるかを主な方向性として回していこうと思うので、以前脱落してしまった人も是非この機会にルーティング再挑戦してみてください!
No Routing ⚡️ No Life 💎🙌