ビットコインの複数の実装を持つことは危険ですか? PlatoBlockchain データ インテリジェンス。 垂直検索。 あい。

ビットコインの複数の実装を持つことは危険ですか?

これはによる意見編集です ビットコインベースの中小企業のオーナーであり、ビットコインのセルフカストディに関するいくつかのガイドのライターであるビル・スコアズビー。

最近、多くの LND ノードがビットコイン ブロックチェーンと同期しなくなる原因となったバグは、 おそらく別の実装が原因です.

おそらく、あなたは疑問に思っているでしょう。 Bitcoin Core?」 Bitcoin の他の実装が存在することを知らなかったかもしれません。 異なる実装が何を意味するのかさえわからないかもしれません。

Bitcoin Core は、 聡中本 C++ で記述し、世界にリリースしました。 それは現在につながる新しいバージョンで更新されました。 代替の実装は、Bitcoin Core と同じことを行うソフトウェアであり、同じコンセンサス ルールを適用しますが、異なるコーディング言語で書かれていることがほとんどです。

代替実装はどのようにしてライトニング ネットワークのノードを壊したのでしょうか?

Lightning Network ノードの主要なバージョンの XNUMX つ (LND) は、btcd と呼ばれる別のビットコイン実装に依存しています。 開発者が非常に大きなマルチシグ トランザクションを作成したとき、btcd はそれが有効であると見なしませんでした。 他のビットコインの実装 (最も重要なビットコイン コア) では、Taproot のトランザクション監視データにそのような制限がなかったため、トランザクションとそれを含むブロックを有効なものとして受け入れました。

その結果、マイナーは btcd を使用していないためチェーンに新しいブロックを追加し続け、ルールによれば何も問題はありませんでしたが、LND ライトニング ノードはこれらの新しいブロックを認識できませんでした。彼らが無効と見なしたそのXNUMXつのトランザクション。

1 月 XNUMX 日にバグが再び発生したとき、影響を受けたのは LND ノードだけではありませんでした。 一部の electrs インスタンス (Electrum Wallet のバックエンド サーバーの実装) も、チェーンの残りの部分との合意に達しませんでした。 LND ノードは btcd での同様の問題のためにコンセンサスから外されましたが、それは Rust で書かれたビットコインの実装でした。 エレクトノードが遅れる原因となった、いくつかの非常に目に見えるサーバーを含む mempool.space で実行.

証人データのサイズ制限あり DoS攻撃を防ぐためにであり、Bitcoin Core の一部でもあります (ただし、Core には Taproot トランザクションの上限があります)。 同期が取れなくなった他の XNUMX つの実装には、次のようなコードが含まれていたようです。 より小さい制限を維持.

実装における非常に小さな違いが、コンセンサスの欠如につながる可能性があります。

ビットコインを複数実装するのは危険

ビットコインの複数の実装のアイデアが好きではありませんでした. 「互換性のあるビットコインの第 XNUMX の実装が良いアイデアになるとは思えません。」 彼が挙げた理由は、「設計の多くは、すべてのノードがロックステップでまったく同じ結果を得ることに依存しているため、XNUMX 番目の実装はネットワークへの脅威になるだろう」というものでした。

脅威? 大したことは何ですか?

プルーフ・オブ・ワークが最も多いチェーンが真のチェーンであると聞いたことがあるでしょう。 XNUMX 人の異なるマイナーが同時にブロックを見つけると、チェーンが分割され、他のマイナーは最初に聞いたブロックに基づいて構築を開始します。

新しいブロックが分割の片側に追加されるとすぐに、ほとんどのノードとマイナーはそれを新しい真のチェーンとして受け入れ、分割の反対側を放棄します。 これらのブロックは古いブロックと呼ばれますが、孤立したブロックと呼ぶ人もいます。

ビットコインのブロック間の平均時間は 10 分であるため、分割の負け側にブロックが追加される前に、ネットワーク全体がこの新しいブロックについて学習する可能性が高く、最も作業量の多いチェーンが勝ちます。

「ノードは、ほとんどの作業で有効なチェーンに従います…ここでのキーワードは有効です。 ノードが無効と判断したブロックを受け取った場合、そのブロックに対してどれだけの作業が行われても、ノードはそのチェーンを受け入れません。」 — アンドリュー・チョウ

キーワードは「有効」です。 マイナーが、他のマイナーやノードが有効ではないと考えるブロックを発見すると、脅威が現れます。 それが有効だと考えるマイナーは、そのチェーン上に新しいブロックを構築しようとします。 それが有効ではないと考えるマイナーは、彼らが知っている最後の有効なブロックに基づいて構築しようとします。 結果: XNUMX つのチェーンがあり、どちらが正しいかを知る方法はありません。

どうしてそんなことが起こるのでしょうか?

最近の LND ノードのバグのケースで見たように、Bitcoin の XNUMX つの実装に他の実装にはないバグがある場合、ブロックが有効かどうかについてのコンセンサスの欠如につながる可能性があります。

ビットコインには、これを修正するメカニズムがありません。 プロトコル外のコミュニティは、次に何が起こるかを決定する必要があります。 とても不快に聞こえます。

ビットコインの開発者であるピーター・トッド氏は、次のように述べています。 他の実装は、Bitcoin Core のバグごとに一致する必要があります.

なるほど: 複数の実装は危険です!

ビットコインの他の実装とは何ですか?なぜそれらが存在するのですか?

まず、ほとんどの人が Bitcoin Core を実行しています。

Luke Dashjr は、約 43,000 のノードを見ています。 その 98% は Bitcoin Core を実行しています Coin Dance と呼ばれるものは 15,000 近くのノードを見ます。 その 96% は Bitcoin Core を実行しています. そのため、現時点では、代替の実装を使用している人はほとんどないようです。

それにもかかわらず、Bitcoin プロトコルを実装する他のコードベースを構築および維持しようとしているアクティブなプロジェクトがあります。 それらには以下が含まれます:

ジェイムソン・ロップは、 優れたページ より網羅的なリストと、他のすべての実装へのリンクがあります。

これらのプロジェクトはすべて非常に才能のある開発者が取り組んでおり、それぞれが数年以上存在しています。 このような問題のように見えるものに、なぜそれほどの労力を費やすのでしょうか。

ビットコインはパーミッションレスです。 誰でもチェーンをダウンロードできます。 誰でもネットワークと対話できます。 また、代替実装のコーディングや実行を誰も止めることはできません。

それでも、明らかに 何人かが担当 ビットコインのリポジトリに変更を加えるプロセスと、それらを選択するプロセスは非公式に見えます。 がある一方で、 ビットコイン改善提案 (BIP) プロセス ビットコイン コアへの変更を提案することについては、かなり非公式でもあります。

これは直接的な問題ではありません。 マーティ・ベントが指摘するように、 大まかなコンセンサスは強みになり得る. ビットコインを変更するプロセスが困難で不明確である場合、それは変更がより徹底的に精査されることを意味します。

大まかなコンセンサスの次のステップは、複数の一般的な実装を持つことです。

複数の実装がない方が危険かもしれない

ビットコイン コアへのコミット アクセスを持つ人々の XNUMX 人になることは、すでに非常に困難な仕事であることは間違いありません。 ビットコインが通貨手段として中心的な役割を果たす世界では、この仕事はさらに困難になります。 少数の開発者グループは、非常に価値のある標的になる可能性があります。 少なくとも、次のソフトウェア リリースでのさまざまな組み込みまたは除外についてロビー活動を行うために、彼らの注意を引くことが求められます。

現在政治に存在するロビー活動について考えてみてください。 ビットコイン プロトコルの唯一の実装にコミット アクセスできる人々の周りで、なぜそのようなことが発展しないのでしょうか?

現在の政治家のように、彼らは権力にアクセスできると認識されるでしょう。 そのため、これらの開発者が国を守る力を持っていない場合を除いて、人々はそれらを標的にします。 それはどのような人生になるのでしょうか? 誰が自発的にそれを選ぶでしょうか?

結局のところ、グローバル金融システムは、XNUMX つの GitHub リポジトリへのコミット アクセス権を持つ少数の人々の肩にかかっているのはかなりの重荷です。 おそらく、人々の金融の未来が少数の中央銀行の決定にかかっている世界から逃れようとしている世界の金融システムとそれほど変わらないでしょう。

救助のための複数の実装!

ビットコイン ネットワーク上に複数の実装が存在し、広く使用されていることで、悪意のあるアクターがビットコイン プロトコルを変更することがはるかに困難になり、これらの圧力が軽減されます。

ビットコイン ネットワークの参加者がさまざまな実装間でより均等に分散されている場合、優れたアイデアが表面化する余地が大きくなります。 ビットコインへの変更の提案または拒否は、すべてが XNUMX つの陣営で行われない場合、より分散化されます。

明らかに、Bitcoin の異なる実装を使用すると、チェーン分割のリスクが高まります。 ノードとマイナーのかなりの部分が誤って分岐した壊滅的なチェーン分割は、ビットコインにとって良いことではなく、確かにその価格にとっても良いことではありません. しかし、ビットコインの無許可の性質を脅かすことはありません。

全員がビットコイン コアのみで構築する集中型の開発環境は、無許可性を脅かす可能性があります。 このトピックに関する会話では、別の実装によって引き起こされる可能性のある問題だけに焦点を当てるのではなく、Bitcoin Core に大きく依存するリスクに対処する必要があります。

素晴らしい、古いがあります この議論に関する記事 アーロン・ヴァン・ウィドゥム著。 また、最近の記事を読むこともできます。 有益なスレッド それについて。

これは Bill Scoresby によるゲスト投稿です。 表明された意見は完全に独自のものであり、必ずしも BTC Inc または Bitcoin Magazine の意見を反映するものではありません。

タイムスタンプ:

より多くの Bitcoin Magazine