Durante o jogo está em andamento: Design de um jogo modular controverso para o sistema à prova de falhas do OP Stack

Avançado12/17/2023, 6:13:44 PM
Este artigo analisa o papel dos jogos de disputa na deteção de falhas descentralizada no ecossistema da superchain e discute a construção e o potencial dos jogos de disputa à prova de erros. Este artigo também examina a importância destes jogos na deteção de erros no primeiro sistema à prova de erros da OP Stack.

Uma análise aprofundada do jogo controverso e do seu papel na deteção de falhas no primeiro sistema à prova de erros da pilha OP.

Não é por acaso que um dos componentes mais interessantes do Sistema de Prova de Falhas (FPS) do Stack da OP é o seu jogo controverso. O artigo anterior sobre o FPS delineou como a modularidade do stack da OP desacopla o programa de prova de falhas (FPP) da máquina virtual de prova de falhas (FPVM), permitindo o próximo nível de composabilidade e atualizações paralelas eficientes dos dois componentes. Não é exagero dizer que este também é o caso dos jogos controversos.

Este artigo explora o papel dos jogos de disputa na deteção de falhas descentralizada no ecossistema da supercadeia, como construir jogos de disputa à prova de erros em cima de acordos de disputa e a possibilidade de tais jogos surgirem devido à escalabilidade dos acordos de disputa.

Se quiser mais detalhes sobre o jogo controverso, leia este post mais detalhado que partilhei no meu blog pessoal há algumas semanas.

O que é um jogo de disputa?

Os jogos de disputa são os fundamentos essenciais dos acordos de disputa. Simula uma máquina de estados simples e, para qualquer informação cuja validade seja contestada, é inicializada com uma promessa de 32 bytes. Esta informação contém uma função para resolver a verdade ou falsidade desta promessa, que é deixada à implementação do primitivo para definir. A primeira implementação de jogo controverso da pilha OP.Jogo de Defesa de Falhasnão foi licenciado porque sua função de resolução foi determinada pelos resultados de um programa à prova de erros executado em cima de uma máquina virtual simulada.

Pesquisas Jogos Curiosos sobre as Propriedades de Duas Cordas:

O jogo da controvérsia em si baseia-se em dois atributos básicos:

  1. Incentivar a compatibilidade: O sistema puneafirmações falsas e recompensa afirmações verdadeiras para garantir uma participação justa.
  2. Solução:Cada jogo tem um mecanismo para validar ou invalidar explicitamente reivindicações fundamentais.

Em acordos de disputas, diferentes tipos de jogos de disputa podem ser criados, geridos e atualizados através de DisputeGameFactory. Isto abre a porta a funcionalidades inovadoras, como sistemas de prova agregados e protocolos estendidos para acomodar questões controversas fora do estado do protocolo de camada 2, como FaultDefenteGame, que se concentra na verificação binária on-chain.

Jogo de dois pontos

É um jogo de disputa específico do gênero e o primeiro a ser construído no acordo de disputa da pilha OP. Neste jogo, o jogador divide a trajetória de execução de um lado para o outro até que cada etapa seja alcançada. Após a dicotomia alcançar uma promessa de estado em cada instrução de rastreamento,Jogo Defente de Falhasusa uma máquina virtual genérica para executar um passo de instrução único na cadeia. A função de transição de estado da VM (vamos chamá-laT ) pode ser qualquer função, desde que siga a formaT (s, i) - > s',onde está= o acordo pré-estabelecido,i = estado de transição de entrada,s= estado a seguir .

Para a nossa primeira implementação completa de uma VM genérica num jogo de dois, implementamos um único contexto de thread MIPS em cima do EVM para executar uma única instrução no rasto de execução geradoporCannon e programa op.

declarações

Uma instrução indica um compromisso com o estado da máquina virtual de back-end sob uma determinada instrução. Estes podem ser reais ou falsos, e a autenticidade é determinada após a fase de resolução. Se não houver contra-ataque, a afirmação é considerada correta. ,

Localização

Declara a posição que existe na árvore binária. Esta posição indica a qual instrução a declaração se refere.A posição é um índice generalizado, que pode ser definido como 2^ {profundidade} + índice_na_profundidade.

relógio de xadrez

As ações do jogador são limitadas no tempo. Este jogo não requer licença e qualquer pessoa pode participar. Cada lado começa com 3,5 dias de jogo, num total de 7 dias de tempo de jogo. Se crias um novo caminho ou fazes uma declaração onde já recebeste uma declaração, é um relógio de xadrez de nível de avô passo.

ação

Os jogadores são divididos em dois até que o estado da declaração seja apenas para uma instrução VM. Em seguida, executam essa instrução on-chain para verificar ou falsificar a declaração. As ações podem ser ataque (desafiar a declaração principal) ou defesa (concordar com a declaração principal). Sempre que os jogadores concordam com o hash das declarações que observaram (o que significa que ambas as partes estão no mesmo estado sob um determinado comando), mas discordam do resultado final que estão tentando alcançar com base no acordo relativo da declaração observada, a declaração subjacente é usada para se defender.

Passos de comando

No nó folha da árvore de localização, cada declaração submete o estado em apenas uma instrução VM. O único passo restante é executar instruções VM para provar ou refutar a reivindicação dos pais.

Se a etapa de comando confirmar o estado de pós-expectativa, então a declaração não se mantém. Se houver um status de liberação inesperado ou código de saída, a reivindicação principal será contestada.

soluções

Este tipo de jogo provavelmente será resolvido depois de todos os relógios de xadrez declarados terem sido esgotados, com um período mínimo de 3.5 dias.Cada declaração no jogo é a raiz do seu próprio subjogo (Sub Jogo).O subgame é um DAG com uma profundidade de 1. Todos os subgames apontando para a raiz (que são por si só raízes de subgames) são seus contadores, e o subgame só pode ser resolvido se todos os seus subgames filhos também tiverem sido resolvidos. A raiz do subgame só pode ser considerada contra-atacada se um ou mais dos subgames da raiz do subgame forem resolvidos e não contra-atacados, e este atributo continua a permear a declaração raiz do jogo.

A presença de jogadores honestos (assim que todas as suas ações tenham sido esgotadas) também sempre faz com que o jogo se resolva suavemente na sua trajetória, independentemente de a declaração subjacente ser honesta ou desonesta. Uma declaração desonesta pode sempre ser refutada por qualquer das partes, embora apenas uma declaração correta possa ser feita, uma vez que declarações repetidas na mesma posição no mesmo subjogo não são permitidas.

0:00

Jogue o jogo do alfabeto de dois pontos

Para quem estiver interessado, também há uma ferramenta de visualização para FaultDefenteGame, que visa o rastreamento da execução simulada com apenas 16 instruções de comprimento. Esta simulação utiliza uma VM separada com um contexto diferente do fio MIPS, chamado AlphabetVM, que apenas retorna a próxima letra do alfabeto quando uma determinada letra é fornecida como entrada.

Se estiver interessado em explorar as regras do jogo com um backend mais leve, aqui está como jogar:

Clonar o monorrepositório do Optimism, instalar dependências e criar a distribuição do devnet /cannon/op-program binários.

Dependências necessárias:

  1. Fundição
  2. Ferramentas do 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

Execute o jogo do alfabeto:

CD OP-CHALLENCHER & & FAÇA O ALFABETO
  1. Navegue até https://disputify.optimism.io/ ou por meio de clone https://github.com/clabby/dispute-viz Execute o front-end visual localmente e insira o endereço do agente FaultDefenteGame implantado na rede de desenvolvimento local acima.

Acordos disputados para ajudar a proteger o OP Stack

Num jogo a dois, todos os mecanismos acima trabalham juntos para criar um sistema que recompensa o comportamento honesto e contraria eficazmente as reivindicações desonestas.

Existem tantas maneiras de construir jogos controversos que atinjam os mesmos objetivos. Esperamos que, quando o FPS da OP Stack for implantado no OP Goerli, os construtores em nosso ecossistema se divirtam e sejam criativos na construção de seus próprios jogos polêmicos. Cada jogo controverso criado pode desempenhar um papel na descentralização social da OP Stack e fornecer aos participantes do ecossistema opções sobre como resolver disputas sobre qualquer declaração específica sobre determinada informação.

Declaração:

  1. Este artigo foi reproduzido de [oplabs], e os direitos de autor pertencem ao autor originalclabby]. Se tiver alguma objeção à reimpressão, entre em contato com a equipa Gate Learn (gatelearn@gate.io),e a equipa lidará com isso o mais rápido possível de acordo com os procedimentos relevantes.
  2. Aviso: As visões e opiniões expressas neste artigo representam apenas as opiniões pessoais do autor e não constituem nenhum conselho de investimento.
  3. Os artigos noutras línguas são traduzidos pela equipa Gate Learn, e os artigos traduzidos não podem ser copiados, distribuídos ou copiados sem mencionar a Gate.io.

Durante o jogo está em andamento: Design de um jogo modular controverso para o sistema à prova de falhas do OP Stack

Avançado12/17/2023, 6:13:44 PM
Este artigo analisa o papel dos jogos de disputa na deteção de falhas descentralizada no ecossistema da superchain e discute a construção e o potencial dos jogos de disputa à prova de erros. Este artigo também examina a importância destes jogos na deteção de erros no primeiro sistema à prova de erros da OP Stack.

Uma análise aprofundada do jogo controverso e do seu papel na deteção de falhas no primeiro sistema à prova de erros da pilha OP.

Não é por acaso que um dos componentes mais interessantes do Sistema de Prova de Falhas (FPS) do Stack da OP é o seu jogo controverso. O artigo anterior sobre o FPS delineou como a modularidade do stack da OP desacopla o programa de prova de falhas (FPP) da máquina virtual de prova de falhas (FPVM), permitindo o próximo nível de composabilidade e atualizações paralelas eficientes dos dois componentes. Não é exagero dizer que este também é o caso dos jogos controversos.

Este artigo explora o papel dos jogos de disputa na deteção de falhas descentralizada no ecossistema da supercadeia, como construir jogos de disputa à prova de erros em cima de acordos de disputa e a possibilidade de tais jogos surgirem devido à escalabilidade dos acordos de disputa.

Se quiser mais detalhes sobre o jogo controverso, leia este post mais detalhado que partilhei no meu blog pessoal há algumas semanas.

O que é um jogo de disputa?

Os jogos de disputa são os fundamentos essenciais dos acordos de disputa. Simula uma máquina de estados simples e, para qualquer informação cuja validade seja contestada, é inicializada com uma promessa de 32 bytes. Esta informação contém uma função para resolver a verdade ou falsidade desta promessa, que é deixada à implementação do primitivo para definir. A primeira implementação de jogo controverso da pilha OP.Jogo de Defesa de Falhasnão foi licenciado porque sua função de resolução foi determinada pelos resultados de um programa à prova de erros executado em cima de uma máquina virtual simulada.

Pesquisas Jogos Curiosos sobre as Propriedades de Duas Cordas:

O jogo da controvérsia em si baseia-se em dois atributos básicos:

  1. Incentivar a compatibilidade: O sistema puneafirmações falsas e recompensa afirmações verdadeiras para garantir uma participação justa.
  2. Solução:Cada jogo tem um mecanismo para validar ou invalidar explicitamente reivindicações fundamentais.

Em acordos de disputas, diferentes tipos de jogos de disputa podem ser criados, geridos e atualizados através de DisputeGameFactory. Isto abre a porta a funcionalidades inovadoras, como sistemas de prova agregados e protocolos estendidos para acomodar questões controversas fora do estado do protocolo de camada 2, como FaultDefenteGame, que se concentra na verificação binária on-chain.

Jogo de dois pontos

É um jogo de disputa específico do gênero e o primeiro a ser construído no acordo de disputa da pilha OP. Neste jogo, o jogador divide a trajetória de execução de um lado para o outro até que cada etapa seja alcançada. Após a dicotomia alcançar uma promessa de estado em cada instrução de rastreamento,Jogo Defente de Falhasusa uma máquina virtual genérica para executar um passo de instrução único na cadeia. A função de transição de estado da VM (vamos chamá-laT ) pode ser qualquer função, desde que siga a formaT (s, i) - > s',onde está= o acordo pré-estabelecido,i = estado de transição de entrada,s= estado a seguir .

Para a nossa primeira implementação completa de uma VM genérica num jogo de dois, implementamos um único contexto de thread MIPS em cima do EVM para executar uma única instrução no rasto de execução geradoporCannon e programa op.

declarações

Uma instrução indica um compromisso com o estado da máquina virtual de back-end sob uma determinada instrução. Estes podem ser reais ou falsos, e a autenticidade é determinada após a fase de resolução. Se não houver contra-ataque, a afirmação é considerada correta. ,

Localização

Declara a posição que existe na árvore binária. Esta posição indica a qual instrução a declaração se refere.A posição é um índice generalizado, que pode ser definido como 2^ {profundidade} + índice_na_profundidade.

relógio de xadrez

As ações do jogador são limitadas no tempo. Este jogo não requer licença e qualquer pessoa pode participar. Cada lado começa com 3,5 dias de jogo, num total de 7 dias de tempo de jogo. Se crias um novo caminho ou fazes uma declaração onde já recebeste uma declaração, é um relógio de xadrez de nível de avô passo.

ação

Os jogadores são divididos em dois até que o estado da declaração seja apenas para uma instrução VM. Em seguida, executam essa instrução on-chain para verificar ou falsificar a declaração. As ações podem ser ataque (desafiar a declaração principal) ou defesa (concordar com a declaração principal). Sempre que os jogadores concordam com o hash das declarações que observaram (o que significa que ambas as partes estão no mesmo estado sob um determinado comando), mas discordam do resultado final que estão tentando alcançar com base no acordo relativo da declaração observada, a declaração subjacente é usada para se defender.

Passos de comando

No nó folha da árvore de localização, cada declaração submete o estado em apenas uma instrução VM. O único passo restante é executar instruções VM para provar ou refutar a reivindicação dos pais.

Se a etapa de comando confirmar o estado de pós-expectativa, então a declaração não se mantém. Se houver um status de liberação inesperado ou código de saída, a reivindicação principal será contestada.

soluções

Este tipo de jogo provavelmente será resolvido depois de todos os relógios de xadrez declarados terem sido esgotados, com um período mínimo de 3.5 dias.Cada declaração no jogo é a raiz do seu próprio subjogo (Sub Jogo).O subgame é um DAG com uma profundidade de 1. Todos os subgames apontando para a raiz (que são por si só raízes de subgames) são seus contadores, e o subgame só pode ser resolvido se todos os seus subgames filhos também tiverem sido resolvidos. A raiz do subgame só pode ser considerada contra-atacada se um ou mais dos subgames da raiz do subgame forem resolvidos e não contra-atacados, e este atributo continua a permear a declaração raiz do jogo.

A presença de jogadores honestos (assim que todas as suas ações tenham sido esgotadas) também sempre faz com que o jogo se resolva suavemente na sua trajetória, independentemente de a declaração subjacente ser honesta ou desonesta. Uma declaração desonesta pode sempre ser refutada por qualquer das partes, embora apenas uma declaração correta possa ser feita, uma vez que declarações repetidas na mesma posição no mesmo subjogo não são permitidas.

0:00

Jogue o jogo do alfabeto de dois pontos

Para quem estiver interessado, também há uma ferramenta de visualização para FaultDefenteGame, que visa o rastreamento da execução simulada com apenas 16 instruções de comprimento. Esta simulação utiliza uma VM separada com um contexto diferente do fio MIPS, chamado AlphabetVM, que apenas retorna a próxima letra do alfabeto quando uma determinada letra é fornecida como entrada.

Se estiver interessado em explorar as regras do jogo com um backend mais leve, aqui está como jogar:

Clonar o monorrepositório do Optimism, instalar dependências e criar a distribuição do devnet /cannon/op-program binários.

Dependências necessárias:

  1. Fundição
  2. Ferramentas do 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

Execute o jogo do alfabeto:

CD OP-CHALLENCHER & & FAÇA O ALFABETO
  1. Navegue até https://disputify.optimism.io/ ou por meio de clone https://github.com/clabby/dispute-viz Execute o front-end visual localmente e insira o endereço do agente FaultDefenteGame implantado na rede de desenvolvimento local acima.

Acordos disputados para ajudar a proteger o OP Stack

Num jogo a dois, todos os mecanismos acima trabalham juntos para criar um sistema que recompensa o comportamento honesto e contraria eficazmente as reivindicações desonestas.

Existem tantas maneiras de construir jogos controversos que atinjam os mesmos objetivos. Esperamos que, quando o FPS da OP Stack for implantado no OP Goerli, os construtores em nosso ecossistema se divirtam e sejam criativos na construção de seus próprios jogos polêmicos. Cada jogo controverso criado pode desempenhar um papel na descentralização social da OP Stack e fornecer aos participantes do ecossistema opções sobre como resolver disputas sobre qualquer declaração específica sobre determinada informação.

Declaração:

  1. Este artigo foi reproduzido de [oplabs], e os direitos de autor pertencem ao autor originalclabby]. Se tiver alguma objeção à reimpressão, entre em contato com a equipa Gate Learn (gatelearn@gate.io),e a equipa lidará com isso o mais rápido possível de acordo com os procedimentos relevantes.
  2. Aviso: As visões e opiniões expressas neste artigo representam apenas as opiniões pessoais do autor e não constituem nenhum conselho de investimento.
  3. Os artigos noutras línguas são traduzidos pela equipa Gate Learn, e os artigos traduzidos não podem ser copiados, distribuídos ou copiados sem mencionar a Gate.io.
Lancez-vous
Inscrivez-vous et obtenez un bon de
100$
!