ゲームが進行中の間:OP Stackの障害証明システム用のモジュラーな論争のあるゲームを設計する

上級12/17/2023, 6:13:44 PM
この論文は、スーパーチェーンエコシステムにおける分散型障害検知における紛争ゲームの役割を分析し、エラープルーフな紛争ゲームの構築とポテンシャルについて論じています。この記事では、OP Stackの初のエラープルーフシステムにおけるエラー検出の重要性も検討しています。

OPスタックの初のエラープルーフシステムにおける論争のあるゲームとその役割について詳しく見てみましょう。

OPスタックのFault Proof System(FPS)の最も興味深いコンポーネントの1つがその物議を醸すゲームであることは偶然ではありません。前回のFPSの記事では、OPスタックのモジュラリティが、故障証明プログラム(FPP)を故障証明仮想マシン(FPVM)から切り離し、両コンポーネントの効率的な並列アップグレードと合成可能性の次のレベルを実現しています。これは物議を醸すゲームにも同様であると言っても過言ではありません。

この記事では、分散型の故障検出における紛争ゲームの役割、紛争契約の上にエラープルーフな紛争ゲームを構築する方法、およびそのようなゲームが紛争契約のスケーラビリティによって生じる可能性について探求します。

もし議論の的となっているゲームについて詳細を知りたい場合は、数週間前に私の個人ブログで共有したこのさらに詳細な投稿を読んでください。

紛争ゲームとは何ですか?

紛争ゲームは紛争契約の基本原則です。シンプルな状態機械をシミュレートし、有効性が争われる情報のいずれかについて、32バイトのプロミスで初期化されます。この情報には、このプロミスの真偽を解決する機能が含まれており、その定義はプリミティブの実装に任されています。OP Stackの最初の物議を醸すゲームの実装、FaultDefenteGame、エラープルーフプログラムの結果によって決定された解像度関数にライセンスが付与されていませんでした。このプログラムはシミュレートされた仮想マシンの上で実行されました。

Two Stringsプロパティで興味深いゲームを検索します

論争そのものは、2つの基本的な属性に依存しています。

  1. 互換性を促進します: システムは罰しますfalse claims and rewards true claims to ensure fair participation.
  2. 解決:すべてのゲームには、根拠の主張を明示的に検証または無効にするメカニズムがあります。

紛争解決協定では、さまざまなタイプの紛争ゲームを作成、管理、およびアップグレードすることができます。DisputeGameFactory.これにより、集約された証明システムやレイヤー2プロトコル状態外の論争事項に対応するための拡張プロトコルなど、革新的な機能への扉が開かれます。これには、オンチェーンのバイナリ検証を対象とするFaultDefenteGameなどが含まれます。

2点ゲーム

これはジャンル固有の紛争ゲームであり、OPスタック紛争契約上に構築された最初のゲームです。このゲームでは、プレイヤーは各ステップが達成されるまで実行軌道を前後に分割します。二分割が各追跡指示ごとに状態の約束を達成した後、FaultDefenteGameチェーン上で単一の命令ステップを実行するために汎用仮想マシンを使用します。 VMの状態遷移関数(ここではそれを呼びましょうT)は、形式に従っていれば、どんな関数でもかまいませんT (s、i) -> s'、where s= 合意された事前状態,i= 状態遷移入力,s= ポスト状態 .

2つのゲームでの一般的なVMの最初の完全な実装のために、私たちはEVMの上に単一のMIPSスレッドコンテキストを実装し、生成された実行トレースで単一の命令を実行しましたbyキャノンそしてopプログラム。

ステートメント

ステートメントは、特定の命令の下でのバックエンド仮想マシンの状態へのコミットメントを示します。これらは本物または偽物である可能性があり、信憑性は解決フェーズの後に決定されます。反撃がなければ、その発言は正しいとみなされます。,

場所

バイナリツリー内に存在する位置を宣言します。この位置は、文が関連する命令を示します。ポジションは、{depth}で定義されることができる一般化されたインデックスであり、2 ^ {depth} + index_at_depth と定義されます。

チェスクロック

プレーヤーの行動は時間制限があります。このゲームにはライセンスが必要ありません、誰でも参加できます。各サイドはプレイ時間が3.5日分、合計7日間のプレイ時間でスタートします。新しいパスを作成したり、すでにステートメントを受け取っている場所でステートメントを行った場合、それは祖父レベルのチェスクロックです。

アクション

プレイヤーは、ステートメントの状態が1つのVM命令になるまで2つに分かれます。その後、ステートメントを検証または偽装するために、それをオンチェーンで実行します。アクションには攻撃(親ステートメントに対する挑戦)または防御(親ステートメントに同意)があります。プレイヤーが観測したステートメントのハッシュに同意すると(つまり、両者が特定のコマンドの下で同じ状態にあることを意味する)、しかし、相対的な同意に基づいてドライブしようとしている最終的な結果に同意しない場合、基になるステートメントが使用されます。

コマンドステップ

ロケーションツリーの葉ノードでは、各ステートメントが唯一のVM命令での状態を提出します。残された唯一のステップは、親の主張を証明または反論するためにVM命令を実行することだけです。

コマンドステップが予想されるポスト状態を確認した場合、そのステートメントは成立しません。予期しないリリースステータスや終了コードがある場合、親のクレームは否定されます。

ソリューション

この種のゲームは、すべての指定されたチェスクロックが使い果たされた後に解決される可能性があります。最短で3.5日間の期間があります。ゲーム内のすべての文は、それ自体が独自のサブゲーム(サブゲーム)のルートです。サブゲームは深さ1のDAGです。 ルートを指すすべてのサブゲーム(それ自体がサブゲームのルートである)はそのカウンターであり、サブゲームは、すべての子サブゲームが解決された場合にのみ解決できます。 サブゲームのルートは、サブゲームのルートの1つ以上が解決され、反撃されていない場合にのみ反撃されたと見なすことができ、この属性はゲームのルートステートメントに浸透し続けます。

正直なプレイヤーの存在(彼らのすべての行動が尽くされた時点で)は、基礎となる声明が正直であるか不正直であるかに関わらず、常にゲームが円滑に解決するようにもたらします。不正直な声明はいつでもどの当事者に対しても対抗できますが、同じサブゲーム内で同じ場所に繰り返し宣言のハッシュがある場合は許されていませんので、できる正しい声明は常に1つだけです。

0:00

2点アルファベットゲームをプレイする

興味がある方のために、16の命令のみを対象としたFaultDefenteGameのための可視化ツールもあります。 このシミュレーションは、MIPSスレッドとは異なるコンテキストを持つ別のVM、AlphabetVMを使用しています。このVMは、入力として与えられた文字に対して次のアルファベットを返すだけです。

もしゲームのルールをより軽量なバックエンドで探求したい場合は、以下の方法でプレイしてください。

Optimismモノレポをクローンし、依存関係をインストールし、devnetディストリビューション/cannon/op-programバイナリを作成します。

必要な依存関係:

  1. ファウンドリー
  2. Golangツールチェーン
  3. Docker
git clone git@github.com: ethereum-optimism/optimism.git & &\\ cd optimism & &\\ pnpm i & &\\ (cd packages/contracts-bedrock & & forge install) & &\\ Make up cannon-prestate & &\\ Make up devnet-allocs

アルファベットゲームを実行する:

CD OP-CHALLENCHER & & MAKE ALPHABET
  1. https://disputify.optimism.io/ に移動します または、クローンhttps://github.com/clabby/dispute-vizを介してローカルでビジュアルフロントエンドを実行し、ローカル開発ネットワークに展開されたFaultDefenteGameエージェントのアドレスを入力します。

紛争中の契約によってOPスタックを保護するのを手助けする

2人のゲームでは、上記のすべてのメカニズムが協力して、正直な行動を報われ、不正な主張に効果的に対抗するシステムが作られます。

同じ目標を達成するために論争の多いゲームを構築する方法はたくさんあります。私たちは、OP StackのFPSがOP Goerliに展開されると、当社のエコシステムのビルダーが楽しみながら創造的に自分自身の論争の多いゲームを構築することを願っています。作成されたすべての論争ゲームは、OP Stackの社会的分散化において役割を果たし、エコシステム参加者に特定の情報に関するあらゆる主張についての紛争を解決する方法に関する選択肢を提供します。

ステートメント:

  1. この記事は[から転載されましたoplabs], そして著作権は元の著者に帰属します[クラビー]. もし転載に異議がある場合は、Gate Learnチームにご連絡ください(gatelearn@gate.io),そして、関連手続きに従ってチームができるだけ早く対処します。
  2. 免責事項:この記事に表れている見解や意見は著者個人のものであり、投資アドバイスを構成するものではありません。
  3. 他の言語の記事は、Gate Learnチームによって翻訳されます。翻訳された記事は、Gate.ioを記載せずにコピー、配布、転載することはできません。

ゲームが進行中の間:OP Stackの障害証明システム用のモジュラーな論争のあるゲームを設計する

上級12/17/2023, 6:13:44 PM
この論文は、スーパーチェーンエコシステムにおける分散型障害検知における紛争ゲームの役割を分析し、エラープルーフな紛争ゲームの構築とポテンシャルについて論じています。この記事では、OP Stackの初のエラープルーフシステムにおけるエラー検出の重要性も検討しています。

OPスタックの初のエラープルーフシステムにおける論争のあるゲームとその役割について詳しく見てみましょう。

OPスタックのFault Proof System(FPS)の最も興味深いコンポーネントの1つがその物議を醸すゲームであることは偶然ではありません。前回のFPSの記事では、OPスタックのモジュラリティが、故障証明プログラム(FPP)を故障証明仮想マシン(FPVM)から切り離し、両コンポーネントの効率的な並列アップグレードと合成可能性の次のレベルを実現しています。これは物議を醸すゲームにも同様であると言っても過言ではありません。

この記事では、分散型の故障検出における紛争ゲームの役割、紛争契約の上にエラープルーフな紛争ゲームを構築する方法、およびそのようなゲームが紛争契約のスケーラビリティによって生じる可能性について探求します。

もし議論の的となっているゲームについて詳細を知りたい場合は、数週間前に私の個人ブログで共有したこのさらに詳細な投稿を読んでください。

紛争ゲームとは何ですか?

紛争ゲームは紛争契約の基本原則です。シンプルな状態機械をシミュレートし、有効性が争われる情報のいずれかについて、32バイトのプロミスで初期化されます。この情報には、このプロミスの真偽を解決する機能が含まれており、その定義はプリミティブの実装に任されています。OP Stackの最初の物議を醸すゲームの実装、FaultDefenteGame、エラープルーフプログラムの結果によって決定された解像度関数にライセンスが付与されていませんでした。このプログラムはシミュレートされた仮想マシンの上で実行されました。

Two Stringsプロパティで興味深いゲームを検索します

論争そのものは、2つの基本的な属性に依存しています。

  1. 互換性を促進します: システムは罰しますfalse claims and rewards true claims to ensure fair participation.
  2. 解決:すべてのゲームには、根拠の主張を明示的に検証または無効にするメカニズムがあります。

紛争解決協定では、さまざまなタイプの紛争ゲームを作成、管理、およびアップグレードすることができます。DisputeGameFactory.これにより、集約された証明システムやレイヤー2プロトコル状態外の論争事項に対応するための拡張プロトコルなど、革新的な機能への扉が開かれます。これには、オンチェーンのバイナリ検証を対象とするFaultDefenteGameなどが含まれます。

2点ゲーム

これはジャンル固有の紛争ゲームであり、OPスタック紛争契約上に構築された最初のゲームです。このゲームでは、プレイヤーは各ステップが達成されるまで実行軌道を前後に分割します。二分割が各追跡指示ごとに状態の約束を達成した後、FaultDefenteGameチェーン上で単一の命令ステップを実行するために汎用仮想マシンを使用します。 VMの状態遷移関数(ここではそれを呼びましょうT)は、形式に従っていれば、どんな関数でもかまいませんT (s、i) -> s'、where s= 合意された事前状態,i= 状態遷移入力,s= ポスト状態 .

2つのゲームでの一般的なVMの最初の完全な実装のために、私たちはEVMの上に単一のMIPSスレッドコンテキストを実装し、生成された実行トレースで単一の命令を実行しましたbyキャノンそしてopプログラム。

ステートメント

ステートメントは、特定の命令の下でのバックエンド仮想マシンの状態へのコミットメントを示します。これらは本物または偽物である可能性があり、信憑性は解決フェーズの後に決定されます。反撃がなければ、その発言は正しいとみなされます。,

場所

バイナリツリー内に存在する位置を宣言します。この位置は、文が関連する命令を示します。ポジションは、{depth}で定義されることができる一般化されたインデックスであり、2 ^ {depth} + index_at_depth と定義されます。

チェスクロック

プレーヤーの行動は時間制限があります。このゲームにはライセンスが必要ありません、誰でも参加できます。各サイドはプレイ時間が3.5日分、合計7日間のプレイ時間でスタートします。新しいパスを作成したり、すでにステートメントを受け取っている場所でステートメントを行った場合、それは祖父レベルのチェスクロックです。

アクション

プレイヤーは、ステートメントの状態が1つのVM命令になるまで2つに分かれます。その後、ステートメントを検証または偽装するために、それをオンチェーンで実行します。アクションには攻撃(親ステートメントに対する挑戦)または防御(親ステートメントに同意)があります。プレイヤーが観測したステートメントのハッシュに同意すると(つまり、両者が特定のコマンドの下で同じ状態にあることを意味する)、しかし、相対的な同意に基づいてドライブしようとしている最終的な結果に同意しない場合、基になるステートメントが使用されます。

コマンドステップ

ロケーションツリーの葉ノードでは、各ステートメントが唯一のVM命令での状態を提出します。残された唯一のステップは、親の主張を証明または反論するためにVM命令を実行することだけです。

コマンドステップが予想されるポスト状態を確認した場合、そのステートメントは成立しません。予期しないリリースステータスや終了コードがある場合、親のクレームは否定されます。

ソリューション

この種のゲームは、すべての指定されたチェスクロックが使い果たされた後に解決される可能性があります。最短で3.5日間の期間があります。ゲーム内のすべての文は、それ自体が独自のサブゲーム(サブゲーム)のルートです。サブゲームは深さ1のDAGです。 ルートを指すすべてのサブゲーム(それ自体がサブゲームのルートである)はそのカウンターであり、サブゲームは、すべての子サブゲームが解決された場合にのみ解決できます。 サブゲームのルートは、サブゲームのルートの1つ以上が解決され、反撃されていない場合にのみ反撃されたと見なすことができ、この属性はゲームのルートステートメントに浸透し続けます。

正直なプレイヤーの存在(彼らのすべての行動が尽くされた時点で)は、基礎となる声明が正直であるか不正直であるかに関わらず、常にゲームが円滑に解決するようにもたらします。不正直な声明はいつでもどの当事者に対しても対抗できますが、同じサブゲーム内で同じ場所に繰り返し宣言のハッシュがある場合は許されていませんので、できる正しい声明は常に1つだけです。

0:00

2点アルファベットゲームをプレイする

興味がある方のために、16の命令のみを対象としたFaultDefenteGameのための可視化ツールもあります。 このシミュレーションは、MIPSスレッドとは異なるコンテキストを持つ別のVM、AlphabetVMを使用しています。このVMは、入力として与えられた文字に対して次のアルファベットを返すだけです。

もしゲームのルールをより軽量なバックエンドで探求したい場合は、以下の方法でプレイしてください。

Optimismモノレポをクローンし、依存関係をインストールし、devnetディストリビューション/cannon/op-programバイナリを作成します。

必要な依存関係:

  1. ファウンドリー
  2. Golangツールチェーン
  3. Docker
git clone git@github.com: ethereum-optimism/optimism.git & &\\ cd optimism & &\\ pnpm i & &\\ (cd packages/contracts-bedrock & & forge install) & &\\ Make up cannon-prestate & &\\ Make up devnet-allocs

アルファベットゲームを実行する:

CD OP-CHALLENCHER & & MAKE ALPHABET
  1. https://disputify.optimism.io/ に移動します または、クローンhttps://github.com/clabby/dispute-vizを介してローカルでビジュアルフロントエンドを実行し、ローカル開発ネットワークに展開されたFaultDefenteGameエージェントのアドレスを入力します。

紛争中の契約によってOPスタックを保護するのを手助けする

2人のゲームでは、上記のすべてのメカニズムが協力して、正直な行動を報われ、不正な主張に効果的に対抗するシステムが作られます。

同じ目標を達成するために論争の多いゲームを構築する方法はたくさんあります。私たちは、OP StackのFPSがOP Goerliに展開されると、当社のエコシステムのビルダーが楽しみながら創造的に自分自身の論争の多いゲームを構築することを願っています。作成されたすべての論争ゲームは、OP Stackの社会的分散化において役割を果たし、エコシステム参加者に特定の情報に関するあらゆる主張についての紛争を解決する方法に関する選択肢を提供します。

ステートメント:

  1. この記事は[から転載されましたoplabs], そして著作権は元の著者に帰属します[クラビー]. もし転載に異議がある場合は、Gate Learnチームにご連絡ください(gatelearn@gate.io),そして、関連手続きに従ってチームができるだけ早く対処します。
  2. 免責事項:この記事に表れている見解や意見は著者個人のものであり、投資アドバイスを構成するものではありません。
  3. 他の言語の記事は、Gate Learnチームによって翻訳されます。翻訳された記事は、Gate.ioを記載せずにコピー、配布、転載することはできません。
Empieza ahora
¡Registrarse y recibe un bono de
$100
!