バビロンのノードについて。多くの人は、Vigilante(監視員)を走らせるには、ビットコインのフルノードを1台用意しないと遊べない(うまく動かない)と思っています。私も最初はそう考えていました。ですが公式ドキュメントを読み進めると、Vigilante の層は実はライトクライアントモードで動かせることが分かりました。ディスクは節約できますが、自検証能力は少し落ちます。

Babylon の BTC Light Client モジュールは完全なブロックを保持せず、ブロックヘッダチェーンだけを同期します。ライトクライアントは SPV(簡略支払い検証)でメルクリーブ分岐を検証し、現在のメインネットの高さと、ヘッダチェーンが連続しているかを確認できます。Vigilante がやることは2つです。1つ目は Finality Provider の二重署名による不正(衝突)ブロックがないかを監視し、見つけたら悪行に対する EOTS の2つの署名を使って秘密鍵を解き、ペナルティの没収トランザクションをブロードキャストします。秘密鍵の解出は純粋に暗号計算で、フルノードの履歴に依存しません。ライトクライアントでも実行できます。

ただし、ライトクライアント単独では「ある UTXO が本当に Babylon のスクリプトにロックされたのか」を独立に検証することはできません。これはフルノードまたはインデクサーの協力が必要で、ライトクライアントはヘッダチェーンだけを信頼します。

公式ドキュメントの Vigilante インストール手順では「同期済みのビットコインフルノード」が必要だとされています。しかし実際には、Bitcoin Core のライトモード(prune=1)で Vigilante スクリプトをテストしたところ、0.05 テストネット BTC をロックしてから、FP(ファイナリティプロバイダ)スキップの署名エラーが1回出ただけで、漏れはありませんでした。

メインネットで深いリオーグ(>6 ブロック)が発生した場合、ライトクライアントは一時的にタイムスタンプ位置を誤判定する可能性があります。フルノードは先にそれを察知します。ライトクライアントで節約できるのはディスク(約 80MB/年)で、代償として、ヘッダソースが汚染されていると連れていかれる可能性があります。個人で Vigilante を運用するなら、ライトクライアントで十分ですが、前提として自分が選んだヘッダソースを信頼できることです。几帳面にフルノード+インデクサーで自分で全てを検証するなら、別の選択になります。

どちらも二択ではなく、コストとセルフホスティングの度合いのトレードオフです。
#baby $BABY @BabylonLabs_io