本稿について
ÆTERNITYのメインネットリリース前から行われているセキュリティ監査報告のv0.5について見ていきます。今回の範囲は「4. Protocol」の「4.1 Proof of Work with Cuckoo Cycles」です。
原文はこちらになります。
スポンサードサーチ
今回のまとめ
- Cuckooサイクルは大量のメモリとノードへのランダムアクセスが必要となるように設計することでASIC耐性を向上させたPoWアルゴリズムである。ASIC耐性のほかにCuckooサイクルの利点と言われるものに電力消費の少なさが挙げられている。
- 利点1のASIC耐性については、既にASIC実装が報告されている。
- 利点2については、電力消費が少なくなればその分をマイニング機器に回せるともとれることから必ずしも利点とは言えない(とcnlabは考えている。)
- Cuckooサイクル問題の困難性については(暗号パズルを解く難しさについては)Bitcoinで用いられているようなSHA256ハッシュベースのPoWと等価なので、厳密な証明が論文上でなされていないものの問題はないと考えている。ただし、高速に解く手法が一部のみが知っているような状態があると、攻撃が可能になる。
- cnlabはCuckooサイクルベースのPoWは相応しい選択であると考えている。ただし、期待されているようなアドバンテージが保証されていない点に鑑みてこのリスクをとってもCuckooサイクルPoWを用いるかは慎重に検討すべきである。
※以下、今回まとめた範囲の和訳になりますので詳細をご覧になりたい方は読み進めてください。
4. プロトコル
本章では概念レベルでÆTERNITYプロトコルの様々な側面を説明する。このアセスメントの焦点はÆTERNITYがBitcoinブロックチェーンと異なる点である。Bitcoinは数年にわたる稼働実績がありこれまでかなりの期間セキュリティコミュニティの議論とレビューを受けてきたことから基準点として相応しいと考えている。
4.1 Cuckooサイクルのプルーフオブワーク
ブロックチェーンベースのプロトコルとしてÆTERNITYはマイニングアルゴリズムを採用している。本プロジェクトはCuckooサイクルベースのPoW(プルーフオブワーク)を使うことを選択した。このPoWはJohn Tromp1が提案したアルゴリズムである。Bitcoinで使われていることから知られる単なるハッシュベースPoWとは対照的に、Cuckooマイニングはいくつかのステップから成る。
- ブロックヘッダを生成し、そのハッシュ値を計算する。
- 決定論的手法を用いてブロックハッシュ(ランダムなナンス)からランダムグラフを生成する。
- グラフ生成中にこのグラフにおいて明らかに長さが最小となるサイクルを見つける。
- グラフと得たサイクルをハッシュ化し、出てきたハッシュ値がディフィカルティの目標値の要件を満たすか確認する。
旧来の総当たり方式のSHA256を用いたハッシュ化ではなくこのアルゴリズムを選ぶ動機はいくつかある。グラフの表現には大量のメモリが必要であることが予想される。サイクルの探索にはグラフの多くのノードへのランダムアクセスが求められるので、この問題を解く者のパフォーマンスはCPUリソースよりもメモリサイズやレイテンシにより制限される。
Cuckooサイクルアルゴリズムは、アプリケーション特化の集積回路(ASIC, application-specific integrated circuit)にこのアルゴリズムを効率的に実装できないようにするという目標をもって設計された。他のPoWアルゴリズムが全く同じ動機で以前のブロックチェーンプロジェクトで用いられた。Litecoinにおける"scrypt"はその例である。しかし、過去に提案されたあらゆるPoWアルゴリズムと同様に、Cuckooサイクル用のASIC実装が既に報告されている。
Cuckooサイクルを利用するもう一つの動機は単なるSHA256ベースマイニングよりもエネルギー消費が少ないという主張である。私たちはこの主張には疑問がある。エネルギー価格が間イングの主たる制約事項であるのでエネルギー消費が少なくなることはマイニング機器の追加につながるということができる。唯一の制限は、旧来の単なるハッシュベースPoWに比べて機器コストとエネルギーコストの間に配給量の差があるかもしれないということだけだ。
脚注1:https://github.com/tromp/cuckoo
4.1.1 Cuckooサイクル問題の困難性
Cuckooサイクル問題の困難性はJon Trompのホワイトペーパーで証明されてはいない。これは問題であるようには思われない。なぜなら、このアルゴリズムは暗黙的にSHA256ベースのマイニングに帰結するとも言えるからだ。グラフ生成とCuckooサイクル探索が効率的に演算可能であるということであっても、マイナーは依然として最終的なSHA256ハッシュがディフィカルティの目標値の要件を満たすまで大量のナンスを試さなければならない。しかしこの仮定はCuckooサイクル問題を解くことに関するアルゴリズム的な改善方法が全体に知られている限りにおいてしか成立しない。もっと複雑なPoWスキームが常に潜在的な弱点を増やし続け、場合によってはひとつのパーティがショートカットする手法を発見してしまうかもしれない。たったひとつのパーティだけがPoW計算を大幅に加速させる手法を知っているとすれば、秘密裏にブロックチェーンのフォークを行って別種の攻撃を実行することができてしまう。
cnlabはCuckooサイクルベースのPoWは相応しい選択であると考えている。
推奨案1:期待されているようなアドバンテージが保証されていないことを考えると、本プロジェクトはこれに関連するリスクをとっても新しいPoWスキーム(CuckooサイクルPoW)を用いるかどうかについて慎重にアセスメントすべきである。
(ÆTERNITYのセキュリティ監査報告を読んでみる3 ←← 前)|(次 →→ ÆTERNITYのセキュリティ監査報告を読んでみる5)
免責
邦訳には誤りがある場合がございます。予めご承知おき下さい。
確実な情報を知るためには冒頭に示した原文をご参照くださいますようお願いいたします。