現在のアプローチのレビュー
乱数ジェネレーター (RNG) は、ブロックチェーン テクノロジーの重要なコンポーネントです。これらは、ブロックチェーン ネットワークを保護する暗号キーを生成するために使用されます。ブロックチェーン技術における RNG にはいくつかのアプローチがあり、それぞれに長所と短所があります。
1 つのアプローチは、単一のエンティティによって制御される集中型 RNG を使用することです。このアプローチはシンプルで実装が簡単ですが、攻撃に対して脆弱です。また、生成された乱数に偏りがないことを保証することも困難です。このような集中型 RNG では、通常、システム管理者が RNG の結果を操作する全権限を持っています。たとえば、管理者はいくつかの乱数をフィルタリングし、自分たちに利益をもたらすものだけを公開する場合があります。理論的には、これらの数値はランダムであり検証可能ですが、プロセス全体が検閲されており、好意的なコンテンツのみが公開されています。
もう 1 つのアプローチは、ネットワーク全体に分散される分散型 RNG を使用することです。このアプローチはより安全ですが、実装に時間がかかり、より複雑になる可能性があります。このアプローチの一例は、コンセンサス アルゴリズムを使用して乱数を生成することです。別の例は、検証可能なランダム関数 (VRF) の使用です。 VRF は、一連の入力を取得して計算し、擬似ランダム出力と誰でも検証できる信頼性の証明を生成する暗号関数です。 VRF は、ランダム ビーコンやプルーフ オブ ステーク コンセンサス プロトコルなど、ブロックチェーン設計に不可欠な用途を見出しています。
これらの分散型 RNG は安全で、予測不可能で、公平です。ただし、実装するには時間がかかり、複雑すぎます。さらに、実装はチェーンのコア レベルで行う必要がありますが、これを Polygon、BNB チェーン、Avalanche などのさまざまな既存のブロックチェーン プラットフォームにまたがって移行するのは明らかに困難です。
RNG を実装するには、ブロック時間とブロック ハッシュに基づく他のアプローチもあります。時間ベースのアプローチは実装が簡単で、高度なランダム性を実現できます。ただし、ブロックのタイムスタンプに影響を与える可能性のあるマイナー/バリデーターによる操作に対して脆弱になる可能性があります。一方、ブロック ハッシュ ベースのアプローチは操作に対してより耐性がありますが、ブロック時間が短すぎる場合、または十分なランダム性を提供するのに十分なトランザクションがブロック内にない場合、エントロピーが低下する可能性があります。さらに、トランザクションは現在のブロックのハッシュにはアクセスできませんでしたが、前のブロックにはアクセスできました。これにより、ブロック ハッシュ ベースのアプローチが攻撃に対して脆弱になります。
有望な分散型 RNG アプローチは、RANDAO プロトコルです。これは、イーサリアム ブロックチェーンの RNG として機能する分散型自律組織 (DAO) です。このプロトコルは、関係者全員の参加を得て、透過的かつ安全な方法で乱数を生成するように設計されています。
RANDAO プロトコルの基本プロセスは、次のフェーズに分割できます。
コミットフェーズ 乱数生成に参加したい人は、 sのハッシュ(通常は sha3 関数によってハッシュされる) を使用してトランザクションを RANDAO コントラクトに送信する必要があります。ここで、 sは参加者が選択した秘密の番号です。 S は、参加者のマシンでローカルに生成された擬似乱数である可能性があります。コミットフェーズは、RANDAO 契約によって制御される、事前定義された期間継続しました。
公開フェーズ 最初のフェーズの後、 sのハッシュの送信に成功した参加者は、秘密のs番号を使用して別のトランザクションを RANDAO コントラクトに送信する必要があります。コントラクトは、s に対して sha3 を実行し、その結果を以前にコミットされたデータと比較することによってsが有効であることを検証します。有効なs値は、最終的な乱数を生成するために保存されます。同様に、このフェーズの期間も RANDAO 契約によって事前定義され、制御されます。
計算フェーズ すべての秘密番号が収集された後。 RANDAO コントラクトは、関数 f(s1, s2,..., sn) を使用して乱数を計算します。結果はコントラクトのストレージに書き込まれ、乱数を要求した他のコントラクトに供給されます。 RANDAO プロトコルは、多数の参加者が参加することでセキュリティを実現します。参加者の数が増えるほど、単一の参加者または参加者のグループが乱数生成の結果を操作することが難しくなります。ただし、これは、十分な参加者がプロトコルに参加し、秘密番号を提供するまでに時間がかかることも意味します。
RANDAO プロトコルは、さまざまな EVM 互換チェーンで使用できるようになっており、そのRANDAOプロトコルを、Oasysチェーン上でも同様な動作がされるよう改変したものがRNGDAOとなります。スマート コントラクトと連携して動作するように設計されており、安全かつ透過的に乱数を生成する方法を提供します。ただし、十分な参加者が参加して秘密番号をプロトコルに提供するには時間がかかるため、ブロックごとに乱数を提供するのには適していません。プロトコルの整合性と生成される数値のランダム性を確保するには、セキュリティと速度の間のこのトレードオフが必要です。
Last updated