予測不可能なものを確保する:Web3ゲームにおける乱数技術

初級編1/26/2024, 6:03:41 AM
この記事では、Web3での真のランダムナンバージェネレータ(TRNG)の必要性について説明し、疑似ランダムナンバージェネレータ(PRNG)を破るための理論的な方法について簡単に概説します。

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

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

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

Web3では、ランダム性がさまざまな側面に影響を与える基本的な力として機能します。その中でも目立つのは、ゲームの領域で、特定の場所でのレアなゲームアイテムの発見の可能性が乱数生成器のメカニズムに依存しています。

これらのランダムエンカウンターは、敵を倒した際のプレイヤーの報酬的な体験をしばしば左右します。

抽選はランダム性の典型的な例であり、特にWeb3エコシステム内で公正さとオープンさが最も重要視される中で、明確に透明で検証可能なランダムなプロセスが必要とされます。さもなければ、抽選は特定のグループやプレイヤーのみを有利にする可能性があります。

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

ランダムネスはWeb3ゲームやAutonomous Worldで非常に重要な役割を果たしていますが、疑似乱数生成器(PRNGs)と真の乱数生成器(TRNGs)の違いを明確にすることが重要です。PRNGsはアルゴリズムを使用してランダムな数列を生成するのに対し、TRNGsは物理的なプロセスを使用してより高いセキュリティを実現します。

ランダムな数字を予測することが可能な理由

疑似乱数生成器(PRNG)によって生成される数字を予測することは、それらのアルゴリズムに固有の脆弱性やパターンによって実現可能である可能性があります。PRNGの生成プロセスは、ジェネレータの初期シード(開始点)や状態(現在の状態)が既知である場合に悪用される可能性があるパターンに従います。

この文脈では、「シード」と「状態」が意味するものについて詳しく見てみましょう。重要な入力であるシードは、乱数生成プロセスを開始します。現在の時刻など、単純なものであることがあります。状態は、ジェネレータの現在の状態を指し、生成される数値ごとに変化します。初期状態を知ることで、その後の数値を予測することができ、予測不可能性が重要なシナリオで、重大なセキュリティリスクを提示します。

RNGの仕組み

さらに、RNGに中央集権的なソースを使用すると、さらなる脆弱性が生じます。中央集権的なシステムは単一障害点となり、悪意のある攻撃の格好の標的となります。過去のインシデントは、ブルートフォース攻撃がこれらのシステムを危険にさらす可能性があることを示しています。

攻撃者は、中央サーバーに無数のランダムな推測を送り、その予測を微調整して次に生成されるランダムな数値を当てる正確さを高めるために、徐々に調整することができます。

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

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

仮説検定を通じてシードを見つける

RNGを活用する上での最初のステップは、番号生成の出発点であるシードを明らかにすることです。このプロセスには、潜在的なシードソースに関するさまざまな仮説を立ててテストすることが含まれます。たとえば、シードの仮説がRNG操作の時間である場合、一貫した時間に番号を生成し、パターンを分析することで、この仮説を確認または否定できます。高度な統計技術を適用して、すぐには明らかにならない微妙なパターンを検出することで、シード予測の正確性を高めることができます。

ステート分析とリバースエンジニアリング

種子を特定するだけでなく、RNGアルゴリズム内の状態遷移を理解することが重要です。生成された各番号で状態がどのように変化するかを分析することで、RNGアルゴリズムを逆に解析することが可能です。この方法には、アルゴリズムの解析と、RNGの複雑さに応じて、高度な数学的および計算技術、および暗号解読が含まれる場合があります。

パターン認識のための機械学習を活用する

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

この原則は、RNGの出力を分析する際に直接適用されます。 機械学習アルゴリズムは、RNGが生成した数値の大規模なデータセットを処理して、伝統的な分析方法では明らかにならない、微妙な不規則性やアルゴリズムのリセットなどの潜在的なパターンを検出できます。

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

Miguel Á. Padriñán氏による写真:https://www.pexels.com/photo/dominoes-585293/

暗号解析

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

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

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

検証可能なランダムで改ざん防止されたRNGs

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

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

Randcastの違い

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

Randcastの設計の重要な側面は、改ざんに対する強さです。従来の単一エンティティのランダム性生成は操作のリスクを伴います。Randcastは、ARPA Networkの集合的な能力を活用することで、この問題を回避します。BLS Threshold署名タスクを通じて、個々のノードが最終的なランダム性の結果に影響を与えることがないようにします。この分散型アプローチは、セキュリティを向上させるだけでなく、生成されたランダム性の完全性と公平性を維持し、RandcastをWeb3開発者の必須ツールにします。

参照リンク

免責事項:

  1. この記事は[から転載されましたhackernoon]. すべての著作権は元の著者に帰属します[Felix Xu]. If there are objections to this reprint, please contact the Gate Learnチームが迅速に対処します。
  2. 責任免除: Th
    この記事に表れる見解や意見はすべて著者個人のものであり、投資アドバイスには該当しません。
  3. 他の言語への記事の翻訳はGate Learnチームによって行われます。記載されていない限り、翻訳された記事のコピー、配布、または盗用は禁止されています。

予測不可能なものを確保する:Web3ゲームにおける乱数技術

初級編1/26/2024, 6:03:41 AM
この記事では、Web3での真のランダムナンバージェネレータ(TRNG)の必要性について説明し、疑似ランダムナンバージェネレータ(PRNG)を破るための理論的な方法について簡単に概説します。

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

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

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

Web3では、ランダム性がさまざまな側面に影響を与える基本的な力として機能します。その中でも目立つのは、ゲームの領域で、特定の場所でのレアなゲームアイテムの発見の可能性が乱数生成器のメカニズムに依存しています。

これらのランダムエンカウンターは、敵を倒した際のプレイヤーの報酬的な体験をしばしば左右します。

抽選はランダム性の典型的な例であり、特にWeb3エコシステム内で公正さとオープンさが最も重要視される中で、明確に透明で検証可能なランダムなプロセスが必要とされます。さもなければ、抽選は特定のグループやプレイヤーのみを有利にする可能性があります。

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

ランダムネスはWeb3ゲームやAutonomous Worldで非常に重要な役割を果たしていますが、疑似乱数生成器(PRNGs)と真の乱数生成器(TRNGs)の違いを明確にすることが重要です。PRNGsはアルゴリズムを使用してランダムな数列を生成するのに対し、TRNGsは物理的なプロセスを使用してより高いセキュリティを実現します。

ランダムな数字を予測することが可能な理由

疑似乱数生成器(PRNG)によって生成される数字を予測することは、それらのアルゴリズムに固有の脆弱性やパターンによって実現可能である可能性があります。PRNGの生成プロセスは、ジェネレータの初期シード(開始点)や状態(現在の状態)が既知である場合に悪用される可能性があるパターンに従います。

この文脈では、「シード」と「状態」が意味するものについて詳しく見てみましょう。重要な入力であるシードは、乱数生成プロセスを開始します。現在の時刻など、単純なものであることがあります。状態は、ジェネレータの現在の状態を指し、生成される数値ごとに変化します。初期状態を知ることで、その後の数値を予測することができ、予測不可能性が重要なシナリオで、重大なセキュリティリスクを提示します。

RNGの仕組み

さらに、RNGに中央集権的なソースを使用すると、さらなる脆弱性が生じます。中央集権的なシステムは単一障害点となり、悪意のある攻撃の格好の標的となります。過去のインシデントは、ブルートフォース攻撃がこれらのシステムを危険にさらす可能性があることを示しています。

攻撃者は、中央サーバーに無数のランダムな推測を送り、その予測を微調整して次に生成されるランダムな数値を当てる正確さを高めるために、徐々に調整することができます。

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

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

仮説検定を通じてシードを見つける

RNGを活用する上での最初のステップは、番号生成の出発点であるシードを明らかにすることです。このプロセスには、潜在的なシードソースに関するさまざまな仮説を立ててテストすることが含まれます。たとえば、シードの仮説がRNG操作の時間である場合、一貫した時間に番号を生成し、パターンを分析することで、この仮説を確認または否定できます。高度な統計技術を適用して、すぐには明らかにならない微妙なパターンを検出することで、シード予測の正確性を高めることができます。

ステート分析とリバースエンジニアリング

種子を特定するだけでなく、RNGアルゴリズム内の状態遷移を理解することが重要です。生成された各番号で状態がどのように変化するかを分析することで、RNGアルゴリズムを逆に解析することが可能です。この方法には、アルゴリズムの解析と、RNGの複雑さに応じて、高度な数学的および計算技術、および暗号解読が含まれる場合があります。

パターン認識のための機械学習を活用する

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

この原則は、RNGの出力を分析する際に直接適用されます。 機械学習アルゴリズムは、RNGが生成した数値の大規模なデータセットを処理して、伝統的な分析方法では明らかにならない、微妙な不規則性やアルゴリズムのリセットなどの潜在的なパターンを検出できます。

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

Miguel Á. Padriñán氏による写真:https://www.pexels.com/photo/dominoes-585293/

暗号解析

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

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

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

検証可能なランダムで改ざん防止されたRNGs

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

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

Randcastの違い

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

Randcastの設計の重要な側面は、改ざんに対する強さです。従来の単一エンティティのランダム性生成は操作のリスクを伴います。Randcastは、ARPA Networkの集合的な能力を活用することで、この問題を回避します。BLS Threshold署名タスクを通じて、個々のノードが最終的なランダム性の結果に影響を与えることがないようにします。この分散型アプローチは、セキュリティを向上させるだけでなく、生成されたランダム性の完全性と公平性を維持し、RandcastをWeb3開発者の必須ツールにします。

参照リンク

免責事項:

  1. この記事は[から転載されましたhackernoon]. すべての著作権は元の著者に帰属します[Felix Xu]. If there are objections to this reprint, please contact the Gate Learnチームが迅速に対処します。
  2. 責任免除: Th
    この記事に表れる見解や意見はすべて著者個人のものであり、投資アドバイスには該当しません。
  3. 他の言語への記事の翻訳はGate Learnチームによって行われます。記載されていない限り、翻訳された記事のコピー、配布、または盗用は禁止されています。
Start Now
Sign up and get a
$100
Voucher!