ブロックチェーン分岐によるセキュリティ上の課題

ブロックチェーン分岐はソフト分岐とハード分岐に分けられる。本文は主にハードフォークを検討し、後方互換性をサポートしないソフトウェアアップグレード方式である。ハードフォークは共通認識の分裂または変化であり、共通認識はブロックチェーンシステムの各ノードがデータの一致性を達成するアルゴリズムであり、通常、各ノードは同じ規則のアルゴリズムを実行する必要があり、例えばビットコインが実行するのはPoW(作業量証明)共通認識に基づいており、イーサ坊もPoW共通認識であったが、最近では「The Merge」を通じてPoS共通認識アルゴリズムに切り替えた。

分岐の原因は多く、ブロックチェーンの中ではよく見られる現象であり、通常は短距離の分岐であり、これは共通認識アルゴリズムと関係があり、同じ高さでは競合するブロックが現れることがあるが、最終的には1つのブロックだけを残して放棄されるブロックがある。しかし、ハードフォークは異なり、計画的で目的のあるフォークであり、一部のノードクライアントは元のネットワークとは異なるプログラムバージョンを配備しており、生産されたブロックはフォークチェーン上でしか検証できず、元のネットワークに受け入れられず、元のネットワークのブロックも受け入れられない。例えば最近話題のEthereumPoW(ETHW)分岐。

ブロックチェーンを分岐させることに成功するのは容易ではなく、元のネットワークのコードを直接コピーすればよいのではなく、安全な動作を保証するために基本的な修正を行う必要があります。そのために、いくつかの一般的な安全問題と保護方法をまとめました。

ネットワーク層

フォークチェーンは元のネットワークから独立したブロックチェーンであるため、まずネットワーク層(P 2 P)で隔離する必要がある:

1、シードノード

シードノード、bootnodeまたはseednodeとも呼ばれ、ブロックチェーンが起動するとネットワークが最初に接続を試みるノードです。分岐チェーンは起動時にまずシードノードリスト内のノードに接続し、ネットワーク内の他のピアノードをさらに発見してから、ブロックをさらに同期し、共通認識を達成することができます。したがって、元のネットワークのノードに接続されないように、シードノードのリストを変更する必要があります。

2、異形攻撃

シードノードのリストが変更されたとしても、双方のP 2 Pプロトコルが同じであるため、分岐ネットワークが元のネットワークに接続されていないわけではありません。一方のノードが意図せずに別のネットワークのノード接続を追加した場合、2つのノードは握手に成功し、相手をノードアドレスプールに追加します。それだけでなく、双方のノードは自分のノードのアドレスを相手に共有し、さらに二国間ネットワークノードプールが互いに汚染されることになる。この問題について、スローミストはこれまで「衝突する公鎖!P 2 Pプロトコルからの異形攻撃の脆弱性」を単独で公開してきた。

アドレスプール相互汚染の問題を解決するためには、通信プロトコル上でネットワーク識別を行う必要があります。初期のイーサ坊ではネットワーク分離はサポートされていなかったが、次のバージョンではプロトコルにネットワーク区分としてNetworkIDが組み込まれている。NetworkIDは通常、イーサ坊のメインネットワークのNetworkIDとChainIDが1であるのに対し、ETHWの初期バージョンではNetworkIDが分岐されておらず、異形攻撃の脆弱性がある可能性がある。

ビットコインネットワークでは、異なるネットワークを識別するためにMagic値が使用されており、通常はchainparamsで定義されています。例えば、ビットコインマスターネットワーク値はF 9 BEB 4 D 9、テストネットワーク値はFABFB 5 DAです。

コンセンサス層

1、取引隔離

通常、ブロックチェーンと相互作用する場合、私たちは独自の秘密鍵で取引に署名する必要があります。その後、この取引はネットワークにブロードキャストされ、鉱山労働者やブロックアウトノードによってブロックにパッケージ化されます。しかし、ブロックチェーンに分岐が発生すると、この取引は2つのネットワークによってそれぞれ異なるブロックにパッケージ化される可能性があり、これが元のチェーンでの振替であると仮定すると、分岐チェーンにも同じ振替があり、明らかにこれは予想外の行為であり、資産損失をもたらすことがあります。

その際には、取引をリプレイ保護する必要があり、初期のイーサ坊のバージョンではこのような保護はされていなかったが、その後EIP 155が取引構造にChainIDを加え、ユーザーが署名した取引が現在のネットワークにのみ使用されるようにした。イーサ坊を分岐する場合は、ChainIDの再定義も必要です。もちろん、これは構成内のChainIDを修正するだけの簡単なものではありません。分岐チェーンは古いブロックに互換性を持つ必要があるので、分岐高さの後に新しいChainIDを使用する必要があり、分岐チェーンが正常に動作することを保証することができます。

ビットコインの取引構造にはChainIDは存在しませんが、どのように再生保護されているのでしょうか。ビットコインはUTXOというモデルを使用しています。簡単に言えば、アカウントに費やすのではなく、1つのトランザクション(UTXO)に費やすのです。通常、新しく起動されたネットワークには同じ2つのトランザクションが存在せず、リプレイのシーンも存在しません。

しかしハードフォークの場合、2017年のBCHフォークやその後のBSVフォークなど、取引再生の問題がある。BCHは、トランザクションデータ署名にSIGHASH _FORKID(0 x 40)は、BCH上のトランザクションとBTCのトランザクションとの互換性がなくなり、リプレイ保護の目的を達成する。

2、計算力調整

分岐する前に、原鎖が全網のすべての計算力を占有していれば、PoW共通認識アルゴリズムによると、そのブロックの計算難易度も比較的に高い。分岐後、計算力が異なるブロックチェーンに分散すると、分岐チェーンは共通認識が不足しているため、通常は新しいブロックを生産するのに十分な計算力を得ることができず、ブロックの成長は停滞することになる。この場合、分岐後の初期計算の難易度を下げ、分岐チェーンに計算力を迅速に調整するためのタイムウィンドウを獲得する必要がある。

3、51%攻撃を防ぐ

ネットワークと取引は分離され、ブロックチェーンが分岐し、新ブロックが順調に産出され、すべてが正常に見える。しかし、セキュリティの問題は依然として際立っており、51%攻撃というより一般的で防御しにくい攻撃が存在している。

鉱山を掘るのは利益を追うもので、分岐貨幣が現れると、どちらの掘削収益が高い鉱山労働者が計算力をそのネットワークに切り替えることになるが、現実には分岐貨幣は往々にして貨幣価格が低く、全体の計算力が非常に低いことになる。ETHW分岐を例にとると、2 minersから見ると、元のETHネットワークの計算力ピークは最高900 TH/sを超えているが、原稿を書く際のETHWの計算力は30 TH/s程度であり、大量の計算力が消えるのは良いことではなく、いつでもETHWに51%攻撃をかけることができる。

この51%攻撃の防止にはあまり良い方法はなく、確認数を増やすことで防ぐしかない。

アプリケーションレイヤ

仮想マシンベースのインテリジェント契約など、取引上に構築されたアプリケーションをアプリケーション層に統合します。ブロックチェーンが分岐する場合、ブロックチェーン上で動作するアプリケーションにも大きな影響を与えることがあります。

1、署名再生

署名リプレイは、前述の取引リプレイと同じ理屈で、Gnosis Safeなどの契約があります。契約にユーザーの署名を検証します。署名にChainIDが含まれていない場合、この署名は2つのチェーンでリプレイでき、資産損失を招く可能性があります。

2、予言機の失効

分岐後のブロックチェーンの多くのインテリジェント契約は依然として正常に動作することができ、例えばトーケン契約、AMM契約、これらの自己実行システムはチェーン下データに依存せずに安定して動作することができるが、MakerDAOなどの貸借システムのように、預言機の価格データに高度に依存しており、チェーン下の供給価格サポートを失った後、それは継続して動作することができない。

3、価格の激変

ブロックチェーンが分岐し、1つのアプリケーションが2つのチェーン上で同時に実行されているが、ユーザーはどのチェーン上のアプリケーションを使用すべきか。どちらが「オーソドックス」なのでしょうか。この問題はまた共通認識に戻り、通常どのブロックチェーンが正統な共通認識を持っていれば、その上の資産は元の価値共通認識を維持し、もう一つのブロックチェーン上の資産は瞬間的に価値を失うことになる。

このような価格上の急激な変化は、DeFi応用の完全な崩壊を招き、貸借応用は永遠に平倉化できず、一部の有識者は分岐の時間窓をつかみ、「ゼロに戻す」資産をAMMなどの応用を通じて主鎖トークンに両替し、それによっていくつかの価値を保持し、ETHW分岐事件では、大量の分岐鎖上の利益獲得行為を観察した。

まとめ

これまで、ネットワーク層、コンセンサス層、アプリケーション層からブロックチェーン分岐のセキュリティを分析してきましたが、その中に存在する技術的リスクが見られ、分岐に対しては慎重に対処する必要があります。また、多くの分岐の背後には技術変革の必要性だけでなく、発起人が分岐で大量の分岐貨幣を直接獲得するなど、ビジネス上の直接的な利益が存在する可能性があり、これらはユーザーが不必要な損失を回避するために正確な認識を必要とする。

ブロックチェーンは脱中心化されたシステムであり、そのアップグレードは単一の個人や組織に依存しないため、ブロックチェーンでは避けられず、コミュニティユーザーに混乱をもたらすが、社会により良いサービスを提供するためにシステムの発展を促進する。