こんにちは。

渡辺水華です。

2019年2月3日に公開したYouTube動画です。

【引用元】
(英文記事)
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
https://iohk.io/blog/launching-plutus-and-marlowe-at-the-inaugural-plutusfest/

記事の内容

カルダノはフェイク・ステーク攻撃に対するセキュリティを備えたプラットフォーム

設計が査読済みであるということは、ウロボロスが多くのプルーフ・オブ・ステークブロックチェーンに影響を及ぼす欠陥とは無縁であることと同義である。

2019月1月29日
Philipp Kant博士
フォーマルメソッド責任者

ADAは、先週、アメリカの研究者らが「フェイク・ステーク」攻撃に対する脆弱性があるとして割り出した26種類の暗号通貨には挙げられないコインである。ADAの基礎となるカルダノブロックチェーンは、プルーフ・オブ・ステークに基づくものであるが、ウロボロスプロトコルはビットコインのコードを使っておらず、PoSv3問題の影響を受けることはない。これは単に運がいいというのではなく、カルダノの開発中に徹底して正式な検証を受けたことによる結果である。

脆弱性

脆弱性については最初の記事で詳しく説明している。カルダノがその影響を受けない理由を理解するため、ここでは脆弱性の本質を要約しておく。

PoSv3は、誰がブロックを生成する資格があるかを判定する目的でハッシュパワーをステークに置き換えることを試みるビットコインコードを改良したもので、先の脆弱なシステムはいずれもPoSv3を使用している。元のビットコインコードでは、誰が次のブロック生成に取り掛かるかの決断が純粋にハッシュパワーに基づいており、適切なランダム数字を見つけて最初に正しいハッシュを獲得する者がその資格を勝ち取ることができる。

PoSシステムでは、ブロック生成ができる確率は、ユーザーがシステム中で所有するステークの量に比例する。つまり、ユーザーの所有するステークが多ければ多いほど、次のブロック生成にこぎつける確率が高くなる。この機能性を模倣するため、PoSv3は、「ステーキングトランザクション」というかたちで、ユーザーが候補となるブロックに追加情報を付加することができるようにする。自らのステーキングトランザクションで使えるトークンが多ければ多いほど、正しいハッシュを獲得できるようになるため、次のブロックを生成する権利が得やすくなる。

PoSv3はこのようにブロック生成の権利とステークを上手く結びつけはするものの、ブロックの検証も難しくなる。(ビットコインと同じく)ブロックそのもののハッシュに検証が必要なだけでなく、ユーザーのステーキングトランザクションにも検証が必要となる。ということは、ユーザーがステーキングトランザクションに使ったトークンは実際にユーザーが所有していたことになるのだろうか。この情報を検証するには、ブロックチェーンノードがレジャーを参照し、また、ブロックが単に現在のチェーンを拡張するのみならず、分岐を導入する場合はレジャーの履歴を参照することができる必要がある。それはキャッシュもされなければ、計算費用も安価ではないため、PoSv3システムのブロックがすぐには検証されず、いくらかの試行錯誤を通過する場合、(少なくとも一部は)メモリかディスク上に保存されることになる。

最初の記事で考察された脆弱性は多くの方法で検討することができるが、最終的には先のような試行錯誤を無駄に重ね、多くの無効なブロックをノードに提示することになり、そうなればノードのメモリやキャッシュが尽きて、ブロックが無効であることを正しく確認することができなくなってしまう。

カルダノが他とは一線を画す理由

IOHKは、カルダノに関しては違う手法を採っている。ビットコインからの微々たる変更を目指すのではなく、世界的な学者や研究者らが新しいプロトコルやデータベースをゼロから作り出すことに懸け、ビットコインと同等以上のセキュリティを提供し、全面的にステークに依存するようなプロトコルにすることを要件とした。その成果物がウロボロスプロトコルであり、カルダノが構築される基礎となるおそらく最初の安全なPoSプロトコルである。

ウロボロスの基本設計はきわめてシンプルで、時間はスロットと呼ばれる分離した増分に分割され、スロットはそれよりも長いエポックと呼ばれる期間にグループ分けされる。それぞれのエポックの始めに、クジによって全スロットにつき、ブロックを生成する人を決める。このクジは陰関数表示ではなく、つまり、最初に正しいハッシュを獲得した人が勝つものであり、クジが陽関数表示ということは、生成されたランダム数字によって各スロットのスロットリーダーが決まる。また、定められたスロットで勝てる確率は管理しているステークに比例する。

このプロトコルでは、ブロックが正しいステークホルダーに署名されていることを検証することも簡単で、(一時的な分岐の場合は変化しない)現在のエポックに関するリーダーのスケジュールだけが求められる。このことは、フェイク・ステーク攻撃に脆弱性のあるPoSv3システムとは対照的に、ブロックヘッダーを獲得すれば、各ノードによって実現される。

要するに、カルダノは根本的に異なるシステムに基づくものであるため、フェイクステーク攻撃に対するセキュリティがある。PoSv3の暗号通貨が陰関数表示によるリーダー選挙でステークが考慮されるよう修正されたプルーフ・オブ・ワーク(PoW)のシステム上で実行されると、問題となっている脆弱性がその修正の結果発生し、さらに複雑な問題を抱えることになる。

カルダノには根本的に異なる基礎があるだけでなく、その基礎が多くの査読を経た学術論文の賜物であり、研究者と開発者との間の前代未聞の協力体制の結果である。カルダノの来たるShelleyリリースの創出に関与する正式な方法とそれに準ずる方法によって、そのコードレベルでの構成が明らかに査読を経た研究論文に記載されたプロトコルに見合うものであることが保証されており、そのことが設計による信頼性とセキュリティの構築につながり、ひいては、ウロボロスのように徹底的に証明され、求められたプロトコルを創出することのない既存のプロトコルの修正の結果発生してきたPoSv3の問題を回避することにもなる。

脚注

1. イリノイ大学アーバナ・シャンペーン校分散型システムラボ、Sanket Kanjalkar、Yunqi Li、Yuguang Chen、Joseph KuoおよびAndrew Miller著、チェーンベースのプルーフ・オブ・ステークの暗号通貨に対する「フェイクステーク」攻撃

2. 正確に言えば、カルダノの来るShelleyリリースでは下記の考察を目標とする。現在展開されているByronのリリースは連動設定で実行されているため、いずれにしてもこの種の攻撃からは操作上保護されている。

3. 現在ウロボロスプロトコルにはいくつかのバリエーションがある。ここではウロボロスの旧バージョンに絞って考察しているが、一般論としては全バリエーションについて述べたものであり、特にウロボロス・プラオスはShelleyリリースに使われるプロトコルである。

4. 正確に言えば、定められたエポックのためのリーダー選挙では、エポックが開始される前の時点でのステーク配分を使用することにより、エポックの境界線で一時的な分岐があった場合の過酷な攻撃とスケジュールの再計算を防ぐ。

要約:渡辺水華
(注:要約文の二次利用はご遠慮ください。)

免責事項

【免責】投資は自己責任でお願いします。
【免責事項】
・本動画の内容については正当性を保証するものではありません。
・本YouTubeチャンネルを利用して損失を被った場合でも一切の責任を負いません。
・内容によっては期限が限られているため、ご自身で問題ないことを確認してください。
・最終的な決定は、ご自身の判断(自己責任)でお願いします。