カルダノ(ADA)はステーク攻撃の影響を受けない
2019年1月29日、
IOHKの公式ブログに書かれた内容である。
和訳文章 まとめ
※Google翻訳 全文
スマホユーザー向けに
まとめております。
多少の誤変換にはご了承ください。
カルダノはフェイクのステーク攻撃に対して安全です
公式IOHKブログは コチラ
ピアレビューされたデザインは、
Ouroborosが多くのステークの証明ブロックチェーンに
影響を及ぼす欠陥から解放されていることを意味します。
ADAは先週、
米国の研究者らが「フェイクのステーク」攻撃に対して
脆弱であると認定した26の暗号通貨には含まれていない。
ADAの基礎となるカルダノブロックチェーンは、
証明書(PoS)に基づいているが、
Ouroboros(ウロボロス)プロトコルは
ビットコインコードを使用しない。
これは単なる幸運なことではありませんが、
Cardanoの開発中に行われた正式に検証された
徹底的なアプローチの結果です。
脆弱性
この脆弱性は元の記事で詳しく説明されています。
なぜCardanoがそれに影響されないのかを理解するために、
ここで脆弱性の本質を要約します。
すべての脆弱なシステムはPoSv3を使用しています。
これは、
誰がブロックを作成する資格があるかを判断する目的で
ハッシュ力を利害関係に置き換えることを目的とした
ビットコインコードの修正です。
元のビットコインコードでは、
誰が次のブロックを作成するかの決定は
純粋にハッシュ力に基づいています。
適切な乱数を見つけて、
正しいハッシュを最初に取得した人が勝ちとなります。
↑PoW(プルーフ・オブ・ワーク)
ただし、PoSv3では、
ステークの概念をシミュレートするために
追加の変数が追加されています。
PoSシステムでは、ブロックを作成する可能性は、
システムに対する
ユーザーのステークスの大きさに比例します。
ユーザーのステークが多いほど、
次のブロックを作成する可能性が高くなります。
この機能を模倣するために、
PoSv3ではユーザーが「ステークトランザクション」の形で
候補ブロックに追加情報を追加することができます。
彼らがステークトランザクションで使用できるトークンが
多ければ多いほど、
正しいハッシュを取得することが容易になり、
したがって次のブロックを作成する権利を獲得できます。
PoSv3はこのようにして
ブロック作成権を利害関係に結び付けることに成功していますが、
ブロック検証をより困難にします。
(ビットコインのように)
ブロック自体のハッシュを検証する必要があるだけでなく、
ユーザーのフェイクトランザクションも
検証する必要があります。
つまり、
実際にユーザーがフェイクトランザクションで
使用したトークンを所有していたことになるのだろうか。
この情報を検証するには、
ブロックチェーンノードは
元帳を参照できなければなりません。
ブロックが現在のチェーンを単純に拡張するのではなく
フォークを導入した場合は、元帳の履歴も参照できます。
これはキャッシュも計算も安価でもないので、
PoSv3システムのブロックはすぐには検証されず、
ヒューリスティックに合格すると、
むしろ(少なくとも部分的に)
メモリまたはディスクに格納されます。
元の記事で説明した脆弱性は
さまざまな方法で悪用される可能性がありますが、
最終的にそれらのヒューリスティックを欺いて
多数の無効なブロックをノードに提示し、
ノードがメモリ不足になりクラッシュ無効です。
なぜカルダノは違うのか
Cardanoにとって、IOHKは異なるアプローチを取った。
ビットコインの
最小限のバリエーションを見つけるのではなく、
ビットコインと同等(またはそれ以上)の
セキュリティ保証を提供する必要がありますが、
完全に頼りにするという要件で、
ゼロから新しいプロトコルとコードベースを作成する。
その結果、
カルダノが構築された最初の証明可能な
セキュアPoSプロトコルである
Ouroborosプロトコル3が完成しました。
Ouroborosの基本設計は非常に単純です。
時間はスロットと呼ばれる個別の増分に分割され、
スロットはエポックと呼ばれる
より長い期間にグループ化されます。
各エポックの開始時に、クジは
誰が各スロットのブロックを作成するかを決定します。
このクジが暗黙のうちに、
すなわち最初に正しいハッシュを得た者が勝つのではなく、
クジは明確です。
生成された乱数は各スロットのスロットリーダーを決定し、
そしてあるスロットで勝つチャンスは
ステーク数に比例します。
このプロトコルでは、
ブロックが正しいステークホルダーによって
署名されていることの検証も簡単です。
現在のエポックのリーダースケジュール
(一時的なフォークの場合は変更されません)と
署名の確認のみが必要です。
フェイクのステーク攻撃に対して
脆弱なPoSv3システムとは対照的に、
これはブロックヘッダーを取得した後で
各ノードによって実行されることができ、
また行われるでしょう。
要するに、
カルダノは根本的に異なるシステムに基づいているため、
フェイクのステーク攻撃に対して安全です。
暗黙のリーダー選挙で
ステークを考慮に入れるように修正された
PoSv3暗号通貨は、
作業証明(PoW)システム上で実行され、
問題の脆弱性はその修正、
およびそれが伴う追加の複雑さの結果です。
Cardanoは根本的に異なる基盤を持っているだけでなく、
その基盤は複数の査読付き学術論文、
および研究者と開発者の間の前例のない共同作業の結果です。
Cardanoの次期Shelleyリリースの作成に
関わる正式および準正式な方法は、
コードレベルでのその構築が、
査読付き研究論文に記載されたプロトコルと明らかに一致し、
設計による信頼性とセキュリティの構築、
およびPoSv3の問題の回避、これは、
Ouroborosのように徹底的に証明された特注のプロトコルを
作成する代わりに既存のプロトコルを
修正した結果として生じました。
脚注
1.イリノイ大学の分散システム研究室の
Sanket Kanjalkar、
Yunqi Li、
Yuguang Chen、
Joseph Kuo、
およびAndrew Millerによる
「チェーンベースのProof-of-Stake暗号通貨に対するフェイクステーク攻撃」。
2.正確には、次の説明は、
今後のShelleyのCardanoリリースを対象としています。
現在配備されているByronリリースは
連携環境で動作しているため、
とにかくこの種の攻撃から運用上保護されています。
3.これまでに、
Ouroborosプロトコルには
さまざまなバリエーションがあります。
ここでは
Ouroborosの古典的なバージョンのみを説明しますが、
一般的な議論はすべての亜種、
特にShelleyリリースで使用されるプロトコルとなる
Ouroboros Praosに当てはまります。
4.正確には、あるエポックのリーダー選挙では、
エポックが始まる前の時点でステーク分布を使用して、
粉砕攻撃やエポック境界での一時的なフォークの場合の
スケジュールの再計算を防止します。
参照記事:https://iohk.io/blog/cardano-is-secure-against-fake-stake-attacks/