フルノードの重要性とフルノードが広がった世界について改めて考える
昨日ビットコイナー反省会の方でフルノードに関してなぜ改めて最近自分はその重要性をすごい感じているのか、今後フルノードの役割がどのように変わっていくか、などについて動画で説明しました。本当は10分強くらいで話すつもりだったのですが、結構熱く色々話していたら25分以上と長くなってしまったので、要点はブログでもまとめてもおきます。
フルノードとは?
- 全てのブロックとトランザクション情報をダウンロードして、検証するノード(コンピューター)
- 他にもフルノードはトランザクションをリレーしたり、ネットワークの分散性や検閲耐性を維持する上で非常に重要な役割を果たす
- フルノードを自分のPCで立てる人もいれば、Raspberry piのような専用の端末を用意する人もいれば、開発用にAWSやAzureなどクラウド上で立てる人たちも
- フルノードは全ての履歴を持っていて、自分で検証する、というのが重要
- よく「Don't Trust, Verify」とか言われることがあるが、(基本的には)フルノードになることで誰も信頼することなくトランザクションなどを検証して分散性を保つ、してというのは、フルノードを自分で建てる前提である。
- (フルノードに関するもう少し詳細な解説はこちらの記事などを参照)
一般ユーザーがフルノードを立てるメリットは?
- プライバシーの向上
フルノードを自分で立てているユーザーが少ないと、Monacoinのノード伝播の仕組みを利用したIPアドレスの特定手法、など犯罪者などでなくてもプライバシーが侵害される可能性が。 - 第三者を信頼しないで自分でTxを検証可能。セキュリティーの向上
- ネットワーク参加、ネットワークへの意思表示
ビットコインとビットコインキャッシュ、SegWit2x、UASFの時なども、フルノードが支持するチェーンを表明出来たりするだけでなく、特定のブロックの伝播を拒否したりすることで、分裂時などにおいて一定の方向付けや役割を果たすこともある。 - 逆に言うと、フルノードを立てる明確なメリットは他にはなかった⇒が、それが新しいレイヤーの出現などで少しづつ変わってきている(後述)
フルノードを立てるのが困難になるとどうなるか?(Ethereumのケース)
- Ethereumはビットコインより多くの情報を記録する必要があるため、フルノードの肥大化のスピードがビットコインより比較して早く、最新状態にノードを同期するのが難しくなってきている。
単純なディスク容量の問題ではなく、署名の検証と最新Stateへの同期が主な課題。通常のスペックのPCやクラウド上でも、最新Stateに中々追いつかない状態が頻発している。SSDなどを使えばいいがコストがどんどんかさんできている。
(これはArchival node(1.5テラ)の問題で、Fast syncのフルノードは大丈夫!という人もいるが、Full nodeでもかなりきつくなってきているという話を自分はよく聞く) - フルノードを自分で維持するのが難しくなると、結局Infuraなどよりリソースを持っている第三者を信頼する必要があり、分散性、検閲耐性が損なわれる
そもそもそれなら最初からクラウド、コンソーシアムチェ―ン、Private chainでいいじゃないか、問題が発生しかねない - ここら辺については、The Blockの記事でよくまとめている記事があったので、詳しくはそちらで。
フルノード立てるのは難しくなってきているのか?
- コインによる。
- ビットコインのフルノードの数は微増傾向で今合計一万ほど。一方Ethereumは数え方次第の部分はあるがこの1年でもかなり減った。
- 最近だとBTCPayserverなど誰でも割と簡単にクラウド上でビットコインノードを構築できるようになってきている
- 他にもCasa Nodeなどノードをパソコンなどにぶっさすだけで使えるボックス型のノードみたいなものも出てきており、比較的安価に具体的知識不要でフルノードを持てる環境が出来ている。(端末は1万円程度)
- EOSなどはEthereumよりさらにサイズが大きくなっていくので、フルノードを立てられるのは事実上Block Producersのみ、などになると思う。元々EOSはBPへの信頼で成り立っているので、これは設計通りでもあるが。
(Coin.danceのビットコインフルノード数の推移データ)
(The Block集計のビットコインとEthereumノード数の推移比較)
フルノードがなぜ改めて重要だと最近思っているか?
- フルノードが重要という話は以前からあるし、ある程度詳しい人なら特に違和感はないと思う。なぜ今さら注目?
- 今までフルノードを立てるメリットやインセンティブがあまりなかった、と言われていたところから、だんだんこのフルノード運用のインセンティブ構造が変わってきているから。
具体例 Lightning Network
* Lightning NetworkではNetworkというように、LN上でビットコインを経由するフルノードのネットワークが非常に重要になる。
* また、Lightningのユーザビリティの課題の一つに、トラストレスに運用するにはユーザーは常にオンラインでいなくてはいけないこと。また、オンラインではないと支払いの自動受け取りが簡単に出来ない、などの課題がある。
*これらの問題は仮に全員がフルノードを持っていたとしたら容易に解決できる問題だが、フルノード構築や維持は面倒なので、自分はこの世界線は今まで来ないと思っていた。
* ただし、LNのフルノードになることで、前述したプライバシーの改善だけでなく、LN上のビットコインのルーティング手数料を稼げるようになる。それだけではなく、フルノードを常に自前でオンラインにしている場合、ルーティングの手数料だけでなく、例えばオンラインの広告を見る代わりに自分のフルノード向けにマイクロペイメントが少しづつ自動的に振り込まれたり、LN上の新しいサービスや収益化の恩恵を預かりやすくなる(これはフルノードなしでも可能ではあるが、サービスの幅が狭くなったり、中間業者を信頼したり、費用を払わなくてはいけなくなると思う)
* 要はよくわからなくても、とりあえずLNのフルノードを立てておいた方がエンドユーザーとしても経済的なメリット、インセンティブが大きくなってくれば、自然とフルノードを立てる人が増え、フルノード保有を前提とした多様なサービスが広がる可能性。インターネットのルーターみたいなイメージで、最終的にはスマホみたいな小型端末に最初からビルトインされたりもありえる。
まとめると、Lightning networkの利用が広がってきた時に、Lightningに対応しているフルノードを自前で立てるか、もしくはCasa nodeみたいなものを買ってくることで、実は何かしらの収益がスムーズに入ってくるような日が来る気がしている
*Lightningの他にもProof of StakeのコインでStaking報酬を得る為にフルノードを構築したいという需要も出てきており、それに対応するサービスや市場も出始めている。利子収入みたいなのがみんななんだかんだ好き。(昔からクラウドマイニングが好きな人多いのもこの辺)
まとめ
- 自分は一般の人がフルノードを運用しよう、みたいな日はほぼ永遠に来ないのではないか、と思っていたが、ここ最近自分の意見も変わってきている部分があり、フルノード維持のインセンティブ構造が変わってきたことで、広くフルノードを持つ人が増えるのではないか、と思ってきた。
- フルノードがもっと一般的に使われることで、長期的に見てよりトラストレスで自由な基盤やサービスを広げる前提となるし、単純にそちらの方が自分の信条、思想とも近いし、是非そういう流れを推進したい。
- 偉そうなことを言っているが自分自身も今フルノードを構築、運用していないので、今月~来月くらいにネット環境なども整えて再チャレンジしようと計画中(それに関してまた何か情報を共有するかも)
- ちなみに、ビットコイン、Lightning Network、Liquidサイドチェーンの具体的なノードのセットアップ方法などは、大石さんがかなり前からビットコイン研究所内のスタートアップマニュアルみたいなものでわかりやすく手順や概要を説明してくれているレポートがすでにあるので、興味のある人はそれを見るのが一番良いと思う(有料グループです)