率直に言えば、Babylon のアーキテクチャは発想としては確かに美しい——「ビットコインのセキュリティを他のネットワークに拡張するために設計された、ネイティブの Bitcoin ステーキングプロトコル」。$BTC の保有者が、ブリッジも、ラップも、カストディも介さずに、そのまま BTC をステークする。——しかし、美しさと安全性の間には、まだ埋まっていない“いくつかの穴”が延々と横たわっている。
Babylon は BTC のライトノードだけを動かし、外部のリレーがビットコインのブロックヘッダを更新することに依存している。Zellic が明らかにしたシナリオを見て、背筋が凍った:Babylon のチェーンが停止している間も、ビットコインネットワークは出力を続ける。ノードが再起動されると、ライトクライアントは最新の高さを“停止前の状態”だと誤って認識したままになる。悪意あるマイニングプールが先回りしてフォークチェーンを提出すると、Babylon ノードは一時的にそれをメインチェーンだと誤認する。攻撃者は算力でビットコインのメインネットに勝つ必要はなく、再起動後に誠実なリレーより速く動くだけでよい。
EOTS のワンタイム署名も、私は安心できなかった。Zellic は、Babylon の Secp256k1 ベースの署名方式がすべて、可変時間のスカラー乗算によって実装されていることを発見した。これに時間サイドチャネルの脆弱性があり、nonce が漏れて秘密鍵の復元につながる可能性がある。さらに GitHub のセキュリティ公告は、署名リプレイの脆弱性も追加で開示している——攻撃者は無効な PubRand のコミットメントを注入できる。
ビットコインスクリプトのロック境界も同様に脆い。GHSA-4rmq-mc2c-r495 が露呈した不具合では、アクティブセットから FP が外れるのと同じブロック高において、BTC の委任者として完全に切り離されたはずでも、非ゼロの ActiveSatoshis が残っている——0 BTC のステークでも報酬が継続して受け取られる。
2 つのチェーンのブロック生成速度はまったく異なり、ステーク状態にも数分の時間差が生じる。Babylon の zoneconcierge モジュールは IBC パケットを処理する際に、Go の非決定的な map イテレーションを使用するため、異なるノードで探索順序が異なり、その結果、チェーン全体が halt する。
最後は、BTC ネットワークの混雑による連鎖反応だ。2024 年 8 月の Cap-1 段階では、ビットコインのガス代が 0.5 ドルから 132 ドルへ急騰した。ステーキング上限は 1000 BTC、約 21000 件の取引でようやく 6 ブロック分を埋め切って完了。アンロック(解押)スクリプトは手数料率をハードコードしており、アンロック費用は一時期、ビットコインネットワークの手数料の 45% を占めていた。
BTC ネットワークの混雑状況に“生死”を左右されるプロトコルが、次のガス大戦を耐えられると本気で言えるのか?
#baby $BABY @BabylonLabs_io
Babylon は BTC のライトノードだけを動かし、外部のリレーがビットコインのブロックヘッダを更新することに依存している。Zellic が明らかにしたシナリオを見て、背筋が凍った:Babylon のチェーンが停止している間も、ビットコインネットワークは出力を続ける。ノードが再起動されると、ライトクライアントは最新の高さを“停止前の状態”だと誤って認識したままになる。悪意あるマイニングプールが先回りしてフォークチェーンを提出すると、Babylon ノードは一時的にそれをメインチェーンだと誤認する。攻撃者は算力でビットコインのメインネットに勝つ必要はなく、再起動後に誠実なリレーより速く動くだけでよい。
EOTS のワンタイム署名も、私は安心できなかった。Zellic は、Babylon の Secp256k1 ベースの署名方式がすべて、可変時間のスカラー乗算によって実装されていることを発見した。これに時間サイドチャネルの脆弱性があり、nonce が漏れて秘密鍵の復元につながる可能性がある。さらに GitHub のセキュリティ公告は、署名リプレイの脆弱性も追加で開示している——攻撃者は無効な PubRand のコミットメントを注入できる。
ビットコインスクリプトのロック境界も同様に脆い。GHSA-4rmq-mc2c-r495 が露呈した不具合では、アクティブセットから FP が外れるのと同じブロック高において、BTC の委任者として完全に切り離されたはずでも、非ゼロの ActiveSatoshis が残っている——0 BTC のステークでも報酬が継続して受け取られる。
2 つのチェーンのブロック生成速度はまったく異なり、ステーク状態にも数分の時間差が生じる。Babylon の zoneconcierge モジュールは IBC パケットを処理する際に、Go の非決定的な map イテレーションを使用するため、異なるノードで探索順序が異なり、その結果、チェーン全体が halt する。
最後は、BTC ネットワークの混雑による連鎖反応だ。2024 年 8 月の Cap-1 段階では、ビットコインのガス代が 0.5 ドルから 132 ドルへ急騰した。ステーキング上限は 1000 BTC、約 21000 件の取引でようやく 6 ブロック分を埋め切って完了。アンロック(解押)スクリプトは手数料率をハードコードしており、アンロック費用は一時期、ビットコインネットワークの手数料の 45% を占めていた。
BTC ネットワークの混雑状況に“生死”を左右されるプロトコルが、次のガス大戦を耐えられると本気で言えるのか?
#baby $BABY @BabylonLabs_io