分散型プルーフオブオーソリティ・コンセンサス
分散型権威証明コンセンサスとは?
DPoAコンセンサスの利点
DPoA コンセンサスと一般的な攻撃手段
IBAX における DPoA コンセンサスの実装
このセクションでは、分散型認証コンセンサス(Decentralized Proof-of-Authority consensus)とそのIBAXでの実装について説明します。
分散型権威証明コンセンサスとは?{#what-is-decentralized-proof-of-authority-consensus}
IBAX Networkは、商用アプリケーションのシナリオや実環境を考慮し、新しいコンセンサスメカニズムであるDPoA(Decentralized Proof of Authority)を構築しました。
分散化は、常に私たちの確固たる信念です。それは、IBAXのインフラ・ネットワーク環境だけを指すのではありません。IBAXネットワークで作られたそれぞれのecoLibに分散を根付かせ、それぞれのecoLibで高度な自己統治を実現するための技術的な解決策を講じていくのです。高度に分散した自治を実現するために、全体のアーキテクチャや技術的な実装に多くの変更を加えています。しかし、実際には、中央集権的な管理概念を避けることはできません。中央集権と分散化のバランスをとるために、DPoAコンセンサスメカニズムに加えて、一定の報酬とインセンティブプログラムを策定しました。
IBAX Networkは、分散、弱い中央集権、認証局を組み合わせた新しい合意メカニズムを構築しました。それをDPoA(Decentralized Proof of Authority)と呼んでいます。IBAX Network全体の継続性を確保するため、コンセンサスはIBAX Public Networkだけでなく、各ユーザーやユーザーグループが作成したecoLibsも対象とします。これにより、真に自治され、分散化され、公正で透明性が高く、不正のない分散型自律組織(DAO)を実現します。
DPoAには、ネットワーク攻撃に対する予防メカニズムがあり、ネットワークを守り、新しいIBXCコインを鋳造するMint Nodeの作成が可能です。IBAXCoinの保有者は、IBXCの流動性残高の一部をミントノードにステークして、ミント&ステーク排出リワードを得ることができます。ミントとステークは、攻撃のコストと難易度を高め、IBXCコインの総価値を比例して増加させる役割を果たします。このメカニズムにより、あらゆる攻撃の確率と被害は限りなくゼロに近くなります。
DPoAコンセンサスの利点
DPoAコンセンサスは、PoW(Proof-of-Work)やPoS(Proof-of-Stake)コンセンサスと比較して、以下のような利点がある:
高性能なハードウェアを必要としない。PoWコンセンサスと比較して、DPoAコンセンサスを実装するノードは、複雑な数学的論理タスクを解くために計算資源を費やす必要がありません;
新しいブロックを生成する間隔は予測可能だが、PoWコンセンサスとPoSコンセンサスでは異なる;
高いトランザクションレート。認可されたネットワークノードが指定された時間間隔でブロックを生成するため、取引検証の速度が向上する。
51%のノードが危険でない限り、危険なノードや悪意のあるノードに対する耐性がある。IBAXは、ノードを禁止し、ブロック生成権を剥奪するメカニズムを実装しています。
DPoAのコンセンサスと共通の攻撃手段
DoS
攻撃者は、ネットワーク上の標的となるノードに大量のトランザクションやブロックを送信し、その動作を妨害してサービスを利用できなくすることを試みることがある。
DPoA機構はDoS攻撃から防御することが可能である:
51%攻撃
DPoAコンセンサスのシナリオでは、51%攻撃は攻撃者が51%のネットワークノードを制御する必要があります。しかし、PoWコンセンサスのシナリオは異なり、攻撃者はネットワークの51%の計算能力を得る必要がある。許可されたブロックチェーン・ネットワークでノードの制御を得ることは、計算能力を得ることよりもはるかに困難である。
例えば、PoWコンセンサスを実装したネットワークでは、攻撃者は制御されるネットワークセグメントの計算能力(性能)を高めることができ、制御されるノードの割合を増やすことができます。DPoAコンセンサスでは、ノードの計算能力はブロックチェーン・ネットワークの決定に影響を与えないため、このようなことは意味がない。
IBAXにおけるDPoAコンセンサスの実装
名誉ノード
IBAXでは、新しいブロックを生成するのは名誉ノードのみであり、彼らがブロックチェーンネットワークと分散台帳を維持しています。
名誉ノードのリストはブロックチェーンのレジストリに保持されています。ノードの順序は、ノードが新しいブロックを生成する順序を決定します。
リーダーノード
以下の式により、現在のリーダーノード、すなわち現在の時刻に新しいブロックを生成する必要があるノードが決定されます。
リーダー
時間
最初
ステップ
ノード
新しいブロックの生成
新しいブロックは、現在の時間間隔のリーダーノードによって生成されます。各時間間隔で、リーダーの役割はリーダーノードリストから次のリーダーノードに渡されます。
a) 新しいブロックの生成手順
新しいブロックを生成するための主な手順は次のとおりです:
ノードのトランザクションキューからすべての新しいトランザクションを収集します。
トランザクションを1つずつ実行します。無効または実行不可能なトランザクションは拒否されます。
ブロック生成制限を満たしているかどうかを確認します。
有効なトランザクションを含むブロックを生成し、ECDSAアルゴリズムを使用してリーダーノードの秘密鍵で署名します。
このブロックを他のリーダーノードに送信します。
b) 新しいブロックの検証
他のリーダーノードで新しいブロックを検証する手順:
新しいブロックを受信して検証します:
– 新しいブロックが現在の時間間隔のリーダーノードによって生成されたものかどうかを確認します。
– 他のブロックが現在の時間間隔のリーダーノードによって生成されたものがないかどうかを確認します。
– 新しいブロックが正しく署名されているかどうかを確認します。
ブロックからトランザクションを1つずつ実行します。トランザクションが正常に実行され、ブロック生成制限の範囲内であるかどうかを確認します。
前のステップに基づいて、ブロックを追加または拒否します:
– ブロックの検証が成功した場合、新しいブロックを現在のノードのブロックチェーンに追加します。
– ブロックの検証に失敗した場合、ブロックを拒否して「不正なブロック」トランザクションを送信します。
– この無効なブロックを生成したリーダーノードが引き続き不正なブロ
フォークス
フォークは、ブロックチェーンの残りとは独立して生成された1つ以上のブロックを含む、ブロックチェーンの代替バージョンです。
フォークは通常、ネットワークの一部が同期解除されたときに発生します。フォークの原因となる可能性のある要素は、高いネットワークの遅延、意図的または意図しない時間制限の違反、ノード間の時刻の非同期です。ネットワークノードが著しい地理的分布を持つ場合、ブロック生成間隔を増やす必要があります。
フォークは、最も長いブロックチェーンのルールに従って解決されます。2つのブロックチェーンバージョンが検出された場合、リーダーノードは短いバージョンをロールバックし、長いバージョンを受け入れます。