Enquanto o jogo está em andamento: Projetando 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 detecção descentralizada de falhas no ecossistema da superchain e discute a construção e potencial dos jogos de disputa à prova de erros. Este artigo também examina a importância desses jogos na detecção de erros no primeiro sistema à prova de erros da pilha OP.

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

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

Este artigo explora o papel dos jogos de disputa na detecção de falhas descentralizadas 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 de acordos de disputa.

Se você deseja mais detalhes sobre o jogo controverso, leia este post mais detalhado que compartilhei em meu blog pessoal algumas semanas atrás.

O que é um jogo de disputa?

Os jogos de disputa são os fundamentos centrais dos acordos de disputa. Ele simula uma máquina de estados simples e, para qualquer informação cuja validade seja contestada, é inicializada com uma promessa de 32 bytes. Essa informação contém uma função para resolver a verdade ou falsidade dessa promessa, o que é deixado para a implementação do primitivo definir. A primeira implementação de jogo controverso da pilha OP, Jogo de Defesa de Falhas, nã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 Propriedades de Duas Cordas:

O jogo da controvérsia em si depende de dois atributos básicos:

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

Em acordos de disputa, diferentes tipos de jogos de disputa podem ser criados, gerenciados e atualizados atravésDisputeGameFactory. Isso abre a porta para recursos inovadores, como sistemas de prova agregados e protocolos estendidos para acomodar questões controversas fora do status do protocolo da camada 2, como o FaultDefenteGame, que visa 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 para frente e para trás até que cada etapa seja alcançada. Depois que a dicotomia alcançou uma promessa de estado em cada instrução de rastreamento,Jogo de Defesa 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 estado pré-acordado,i = entrada de transição de estado,s= estado de postagem .

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

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 relaciona.A posição é um índice generalizado, que pode ser definido como 2^ {depth} + índice_na_profundidade.

relógio de xadrez

As a 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, para um total de 7 dias de tempo de jogo. Se você criar um novo caminho ou fizer uma afirmação onde já recebeu uma afirmação, é um relógio de xadrez de nível de avô de etapa.

ação

Os jogadores são divididos em dois até que o estado da declaração seja apenas uma instrução VM. Eles então executam essa instrução on-chain para verificar ou falsificar a declaração. As ações podem ser ataque (desafiar a declaração pai) ou defesa (concordar com a declaração pai). Sempre que os jogadores concordam com o hash das declarações que observaram (significando que ambas as partes estão no mesmo estado sob um comando dado) 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 envia o status em apenas uma instrução VM. O único passo restante é executar as instruções VM para provar ou refutar a reivindicação dos pais.

Se a etapa de comando confirmar o estado pós-esperado, então a afirmaçã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

Esse tipo de jogo provavelmente será resolvido depois que todos os relógios de xadrez declarados forem esgotados, com um período mínimo de 3,5 dias.Cada declaração no jogo é a raiz de seu próprio subjogo (Subjogo).O subjogo é um DAG com uma profundidade de 1. Todos os subjogos que apontam para a raiz (que são eles próprios raízes de subjogo) são seus contadores, e o subjogo só pode ser resolvido se todos os seus subjogos filhos também tiverem sido resolvidos. A raiz do subjogo só pode ser considerada contra-atacada se um ou mais dos subjogos da raiz do subjogo 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) sempre faz com que o jogo se resolva suavemente em sua trajetória, independentemente de a declaração subjacente ser honesta ou desonesta. Uma declaração desonesta sempre pode ser contestada por qualquer parte, embora sempre haja apenas uma declaração correta que pode ser feita, uma vez que hashes de declaração repetidos no mesmo lugar no mesmo subjogo não são permitidos.

0:00

Jogue o jogo do alfabeto de dois pontos

Para quem estiver interessado, há também uma ferramenta de visualização para FaultDefenteGame, que visa o rastreamento de execução simulado com apenas 16 instruções de comprimento.Esta simulação utiliza um VM separado com um contexto diferente do thread MIPS, chamado AlphabetVM, que só retorna a próxima letra do alfabeto quando uma letra específica é dada como entrada.

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

Clone o monorepositório do Optimism, instale as dependências e crie a distribuição devnet /cannon/op-program binários.

Dependências necessárias:

  1. Fundição
  2. ferramenta 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 ALFABETO
  1. Navegue até https://disputify.optimism.io/ ou via 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 contestados para ajudar a proteger OP Stack

Em um jogo de dois, todos os mecanismos acima trabalham juntos para criar um sistema que recompensa comportamentos honestos e contraria efetivamente alegações desonestas.

Existem tantas maneiras de construir jogos polêmicos que alcançam os mesmos objetivos. Esperamos que quando o FPS do 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 controversos. Cada jogo controverso criado pode desempenhar um papel na descentralização social do OP Stack e fornecer aos participantes do ecossistema opções sobre como resolver disputas sobre qualquer afirmação sobre determinada informação.

Declaração:

  1. Este artigo foi reproduzido de [ oplabs ], e os direitos autorais pertencem ao autor original [clabby]. Se você tiver alguma objeção à reprodução, entre em contato com a equipe Gate Learn (gatelearn@gate.io),e a equipe lidará com isso o mais rápido possível de acordo com os procedimentos relevantes.
  2. Aviso Legal: As opiniões expressas neste artigo representam apenas as opiniões pessoais do autor e não constituem qualquer conselho de investimento.
  3. Artigos em outros idiomas são traduzidos pela equipe de aprendizado da Gate, e os artigos traduzidos não podem ser copiados, distribuídos ou reproduzidos sem mencionar a Gate.io.

Enquanto o jogo está em andamento: Projetando 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 detecção descentralizada de falhas no ecossistema da superchain e discute a construção e potencial dos jogos de disputa à prova de erros. Este artigo também examina a importância desses jogos na detecção de erros no primeiro sistema à prova de erros da pilha OP.

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

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

Este artigo explora o papel dos jogos de disputa na detecção de falhas descentralizadas 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 de acordos de disputa.

Se você deseja mais detalhes sobre o jogo controverso, leia este post mais detalhado que compartilhei em meu blog pessoal algumas semanas atrás.

O que é um jogo de disputa?

Os jogos de disputa são os fundamentos centrais dos acordos de disputa. Ele simula uma máquina de estados simples e, para qualquer informação cuja validade seja contestada, é inicializada com uma promessa de 32 bytes. Essa informação contém uma função para resolver a verdade ou falsidade dessa promessa, o que é deixado para a implementação do primitivo definir. A primeira implementação de jogo controverso da pilha OP, Jogo de Defesa de Falhas, nã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 Propriedades de Duas Cordas:

O jogo da controvérsia em si depende de dois atributos básicos:

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

Em acordos de disputa, diferentes tipos de jogos de disputa podem ser criados, gerenciados e atualizados atravésDisputeGameFactory. Isso abre a porta para recursos inovadores, como sistemas de prova agregados e protocolos estendidos para acomodar questões controversas fora do status do protocolo da camada 2, como o FaultDefenteGame, que visa 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 para frente e para trás até que cada etapa seja alcançada. Depois que a dicotomia alcançou uma promessa de estado em cada instrução de rastreamento,Jogo de Defesa 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 estado pré-acordado,i = entrada de transição de estado,s= estado de postagem .

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

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 relaciona.A posição é um índice generalizado, que pode ser definido como 2^ {depth} + índice_na_profundidade.

relógio de xadrez

As a 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, para um total de 7 dias de tempo de jogo. Se você criar um novo caminho ou fizer uma afirmação onde já recebeu uma afirmação, é um relógio de xadrez de nível de avô de etapa.

ação

Os jogadores são divididos em dois até que o estado da declaração seja apenas uma instrução VM. Eles então executam essa instrução on-chain para verificar ou falsificar a declaração. As ações podem ser ataque (desafiar a declaração pai) ou defesa (concordar com a declaração pai). Sempre que os jogadores concordam com o hash das declarações que observaram (significando que ambas as partes estão no mesmo estado sob um comando dado) 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 envia o status em apenas uma instrução VM. O único passo restante é executar as instruções VM para provar ou refutar a reivindicação dos pais.

Se a etapa de comando confirmar o estado pós-esperado, então a afirmaçã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

Esse tipo de jogo provavelmente será resolvido depois que todos os relógios de xadrez declarados forem esgotados, com um período mínimo de 3,5 dias.Cada declaração no jogo é a raiz de seu próprio subjogo (Subjogo).O subjogo é um DAG com uma profundidade de 1. Todos os subjogos que apontam para a raiz (que são eles próprios raízes de subjogo) são seus contadores, e o subjogo só pode ser resolvido se todos os seus subjogos filhos também tiverem sido resolvidos. A raiz do subjogo só pode ser considerada contra-atacada se um ou mais dos subjogos da raiz do subjogo 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) sempre faz com que o jogo se resolva suavemente em sua trajetória, independentemente de a declaração subjacente ser honesta ou desonesta. Uma declaração desonesta sempre pode ser contestada por qualquer parte, embora sempre haja apenas uma declaração correta que pode ser feita, uma vez que hashes de declaração repetidos no mesmo lugar no mesmo subjogo não são permitidos.

0:00

Jogue o jogo do alfabeto de dois pontos

Para quem estiver interessado, há também uma ferramenta de visualização para FaultDefenteGame, que visa o rastreamento de execução simulado com apenas 16 instruções de comprimento.Esta simulação utiliza um VM separado com um contexto diferente do thread MIPS, chamado AlphabetVM, que só retorna a próxima letra do alfabeto quando uma letra específica é dada como entrada.

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

Clone o monorepositório do Optimism, instale as dependências e crie a distribuição devnet /cannon/op-program binários.

Dependências necessárias:

  1. Fundição
  2. ferramenta 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 ALFABETO
  1. Navegue até https://disputify.optimism.io/ ou via 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 contestados para ajudar a proteger OP Stack

Em um jogo de dois, todos os mecanismos acima trabalham juntos para criar um sistema que recompensa comportamentos honestos e contraria efetivamente alegações desonestas.

Existem tantas maneiras de construir jogos polêmicos que alcançam os mesmos objetivos. Esperamos que quando o FPS do 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 controversos. Cada jogo controverso criado pode desempenhar um papel na descentralização social do OP Stack e fornecer aos participantes do ecossistema opções sobre como resolver disputas sobre qualquer afirmação sobre determinada informação.

Declaração:

  1. Este artigo foi reproduzido de [ oplabs ], e os direitos autorais pertencem ao autor original [clabby]. Se você tiver alguma objeção à reprodução, entre em contato com a equipe Gate Learn (gatelearn@gate.io),e a equipe lidará com isso o mais rápido possível de acordo com os procedimentos relevantes.
  2. Aviso Legal: As opiniões expressas neste artigo representam apenas as opiniões pessoais do autor e não constituem qualquer conselho de investimento.
  3. Artigos em outros idiomas são traduzidos pela equipe de aprendizado da Gate, e os artigos traduzidos não podem ser copiados, distribuídos ou reproduzidos sem mencionar a Gate.io.
Начните торговать сейчас
Зарегистрируйтесь сейчас и получите ваучер на
$100
!