paint-brush
予測不可能な状況を保護する: Web3 ゲームの乱数テクノロジー@felixarpa
1,065 測定値
1,065 測定値

予測不可能な状況を保護する: Web3 ゲームの乱数テクノロジー

Felix Xu6m2024/01/16
Read on Terminal Reader

長すぎる; 読むには

この記事では、Web3 でランダム性が果たす役割、乱数生成器 (RNG) に勝つことが可能かどうか、そして RNG をクラッキングする方法について探ります。
featured image - 予測不可能な状況を保護する: Web3 ゲームの乱数テクノロジー
Felix Xu HackerNoon profile picture
0-item

すべてのプレーヤーは、オッズを打ち破りたいと考えています。しかし、実際にそうする人はほとんどいません。カジノのスロットマシンがどうやって勝つことができるか考えたことはありますか?あるいは、偶然に依存する Web3 ゲームで勝つにはどうすればよいでしょうか?この記事では、Web3 でランダム性が果たす役割、乱数生成器 (RNG) に勝つことが可能かどうか、そして RNG をクラッキングする方法について探ります。


Web3 の広大な広がりにおいて、ランダム性は単なる偶然ではありません。これはさまざまなシナリオにおいて極めて重要な要素であり、ゲーム体験から重要なブロックチェーン機能に至るまでの結果に影響を与えます。

Web3 でランダム性が役割を果たす場所

Web3 では、ランダム性がさまざまな側面に影響を与える基本的な力として機能します。 1 つの顕著な領域はゲーム領域内にあり、特定の場所でレアなゲーム内アイテムが公開される可能性は、乱数発生器のメカニズムに依存します。


これらのランダムな遭遇は、多くの場合、対戦相手を倒したときのプレイヤーのやりがいのある経験を左右します。


宝くじはランダム性の典型的な例であり、特に公平性と公開性が最優先される Web3 エコシステム内では、明確に透明で検証可能なランダム プロセスが必要です。そうでない場合、宝くじの抽選は特定のグループまたはプレーヤーのみに有利となる可能性があります。


さらに、特定のレイヤー 1 ブロックチェーンでは、RNG を介したブロックプロデューサーのランダムな選択が重要です。この選択プロセスに検証可能なランダム性が欠けており、識別可能なパターンが示されている場合、ブロック作成者はこれを有利に利用して、自分たちの利益にかなうブロックを戦略的に作成する可能性があります。このような行為はネットワークのセキュリティを侵害し、Web3 ブロックチェーンの運用における真にランダムで偏りのない選択メカニズムの重要な役割を強調します。


Web3 ゲームや自律世界ではランダム性が非常に重要な役割を果たしていますが、予測可能なパターンを生成できるアルゴリズムを使用する疑似乱数ジェネレーター (PRNG) と、物理プロセスを使用する真の乱数ジェネレーター (TRNG) を区別することが重要です。より高いセキュリティのために。 Web3 の RNG 脆弱性のほとんどは、PRNG の決定論的な性質から発生します。

乱数の予測が可能な理由

PRNG 内の特定の脆弱性とパターンにより、乱数を予測することはもっともらしい成果です。 PRNG の生成プロセスは、ジェネレーターの初期シード (開始点) と状態 (現在の状態) がわかっている場合に利用できるパターンに従います。


この文脈における「シード」と「状態」が何を意味するのかをさらに詳しく見てみましょう。シードは重要な入力であり、乱数生成プロセスを開始します。現在時刻のような単純なものでもかまいません。状態はジェネレーターの現在の状態を指し、生成される数値ごとに変化します。したがって、初期状態がわかっていれば、その後に続く数値シーケンス全体を予測できます。この決定論的な性質は、高度なセキュリティのランダム性が必要なシナリオでは重大なリスクを引き起こします。


RNG の仕組み


さらに、RNG に集中ソースを使用すると、さらなる脆弱性が生じます。集中管理されたシステムは単一障害点となり、悪意のある攻撃の主な標的となります。過去の事件により、ブルート フォース攻撃によってこれらのシステムが侵害される可能性があることが実証されています。


攻撃者は中央サーバーに多数のランダムな推測を大量に送り込み、段階的に調整を加えて予測を微調整することで、最終的に次に生成される乱数の推測の精度を高めることができます。


これらの脆弱性は、さまざまなアプリケーション、特にデータの整合性とランダム性が最も重要である Web3 環境における、より安全で分散化された RNG ソリューションの必要性を強調しています。

RNG の脆弱性の悪用: 理論的手法

仮説検証で種を見つける

RNG を悪用する最初のステップは、番号生成の開始点であるシードを明らかにすることです。このプロセスには、潜在的な種子源に関するさまざまな仮説の策定とテストが含まれます。たとえば、シードの仮説が RNG 操作の時間である場合、一定の時間に数値を生成し、パターンの出力を分析することで、この仮説を確認または反駁できます。高度な統計手法を適用すると、すぐには分からない微妙なパターンを検出できるため、シード予測の精度が向上します。


状態分析とリバースエンジニアリング

シードを特定する以上に、RNG アルゴリズム内の状態遷移を理解することが重要です。生成された各数値によって状態がどのように変化するかを分析することで、RNG アルゴリズムをリバース エンジニアリングすることができます。この方法には、RNG の複雑さに応じて、アルゴリズム分析や場合によっては暗号リバース エンジニアリングなど、高度な数学的および計算的手法が含まれます。


機械学習をパターン認識に活用する

人工知能 (AI) のサブセットである機械学習は、大規模なデータセット内の複雑なパターンを解読することに優れています。この機能は単純なパターン認識を超えて拡張され、明示的なプログラミングを行わずにアルゴリズムを学習して適応させることができます。この顕著な例は、Google の AlphaGo です。ボードゲームの囲碁で訓練されたこの AI システムは、膨大な量のゲームデータから学習することで囲碁をマスターし、最終的に世界チャンピオンの手を先読みすることで優れた成績を収めました。


この原則は、RNG 出力の分析に直接適用できます。機械学習アルゴリズムは、RNG で生成された数値の広範なデータセットを処理して、従来の分析方法では明らかでなかった微妙な不規則性やアルゴリズムのリセットなど、根底にあるパターンを検出できます。


十分に大きなデータセットでトレーニングすることにより、機械学習モデルは、リセット ポイントや出力パターンを含む、これらの RNG の周期的な性質を識別できます。これらのパターンを理解すると、将来の RNG 出力の予測が可能になり、場合によっては操作も可能になります。この機能は、ゲームや暗号アプリケーションなど、予測可能性がセキュリティの脆弱性や不当な利益につながる可能性がある環境で RNG を使用する場合に特に重要です。


写真提供:ミゲル・アパドリニャン: https://www.pexels.com/photo/dominoes-585293/


暗号解析

RNG の暗号分析は、暗号設計と実装のあらゆる側面を精査する多面的なアプローチです。このプロセスは、ランダム性の原料であるエントロピー ソースを徹底的に調べることから始まります。エントロピーの品質、その収集方法、収集速度は重要な要素です。低品質のエントロピーや予測可能な収集方法により、RNG の出力が弱くなる可能性があります。


次に、暗号アルゴリズム自体が既知の攻撃に対する耐性を調べられます。これには、時間の経過とともに現れるバイアスやパターンを検出するための統計分析や、差分暗号解読や線形暗号解読などの既知の暗号解読技術に対するアルゴリズムのテストが含まれます。ここでの目標は、アルゴリズムがシードまたは状態の特定のビットによって過度に影響を受ける出力を生成しないようにすることです。


さらに、ソフトウェアまたはハードウェアに RNG を実装すると、さらなる脆弱性が発生する可能性があります。分析のこの部分には、ランダム性を損なう可能性のあるバグや見落としを見つけるためのコード監査が含まれます。エントロピーの不十分な混合、状態変数の予測可能な増分、不適切なシードなどの欠陥は、攻撃者によって悪用される可能性があります。暗号分析は RNG の動作環境にも拡張され、タイミング攻撃や電力分析などのサイドチャネルの脆弱性をチェックします。攻撃者はシステムの間接的な特性を観察することで内部状態を推測できます。

検証可能なランダムかつ改ざん防止の RNG

このプロセスは、Randcast アダプター コントラクトが DApp または Web3 ゲームからランダム性リクエストを受信したときに開始されます。次に、BLS-TSS (Boneh-Lynn-Shacham Threshold Signature Scheme) タスクを開始し、これらのタスクを実行できる複数のノードで構成される ARPA ネットワークにオンチェーン イベントを送信します。


ネットワークはこのイベントを確認してタスクを完了し、その後、ランダム シードとして署名をランドキャスト アダプター コントラクトに返します。このシードは、サイコロの目、シャッフルされた配列、その他の形式など、目的のランダム性タイプに変換され、後続の DApp または Web3 ゲーム ロジックで利用されます。


ランドキャストの違い

Randcast のアプローチは、信頼性の高いランダム性が不可欠なシナリオでは特に重要です。スマート コントラクトの結果が入力に左右されるブロックチェーンの決定論的環境では、乱数の生成は簡単に操作できます。たとえば、ランダム性のソースとしてブロック ハッシュやタイムスタンプを使用すると、マイナーが利益のために悪用する可能性があります。ランドキャストは、分散型ネットワークを通じて乱数を生成することでこの問題を回避し、プロセスの透明性と検証可能性を確保します。


Randcast の設計の重要な側面は、改ざんに対する復元力です。従来の単一エンティティのランダム生成には操作のリスクがあります。ランドキャストは、ARPA ネットワークの総合的な機能を利用することで、この問題を回避します。 BLS しきい値署名タスクを通じて、個々のノードが最終的なランダム性の結果に影響を与えることができないようにします。この分散型アプローチはセキュリティを強化するだけでなく、生成されたランダム性の完全性と公平性を維持するため、Randcast を Web3 開発者の武器庫に不可欠なツールにしています。


参考リンク