Em agosto do ano passado, lançamosZeth, o primeiro Tipo-1 zkEVM construído usando o RISC Zero zkVM, que permitiu aos desenvolvedores consagrar a execução EVM em ZK. Então este anoem maio, atualizamos Zethpara apoiar rollups otimistas como parte doRFP da Fundação Optimism, capacitando os desenvolvedores a gerar provas de validade que consagram a derivação de rollup em conhecimento zero.
Hoje, estamos anunciando Kailua, um conjunto de software para atualizar rollups otimistas para rollups híbridos ZK, com sua primeira implementação apoiada pela Optimism.Konamecanismo de transição de estado rollup. Kailua não apenas executa transparentemente o Kona sem modificações no zkVM, mas também introduz seu próprio jogo à prova de falhas inovador que avança o estado da arte na resolução de disputas, reduzindo os requisitos de garantia e os atrasos de finalidade!
Para não ser confundido com a cidade no distrito havaiano de Kona, Kailua é um conjunto de ferramentas e contratos para migrar rollups de sistemas longos de prova de falha interativa para provas de falha ZK não interativas geradas usando o RISC Zero zkVM. Seus principais componentes são:
Nota: A versão mínima da pilha OP necessária para usar Kailua é V1.4, pois ela utiliza o contrato DisputeGameFactory em vez do contrato L2OutputOracle obsoleto.
O jogo de disputa de Kailua combina a prova de conhecimento zero com o paradigma de rollup otimista em um sistema híbrido inovador que melhora a segurança e o desempenho, reduzindo os custos operacionais e os atrasos de finalidade! Isso está resumido na tabela abaixo:
ㅤ | Rollups Otimistas | ZK Rollups | Hybrid Rollups (Kailua) |
Garantia para N Desafios | N depósitos | N/A | 1 depósito |
Colateral para N Propostas | N depósitos | N/A | 1 depósito |
Custo de propor N blocos | 1 transação | 1 transação Provas de N blocos | 1 transação ≤ hashes N/K |
Custo máximo de desafiar uma proposta de bloco N | D + log(N) transações D é a profundidade máxima da comp. | N/A | 3 transações Provas de bloco K |
Atraso mínimo de finalidade para uma proposta de bloco N | D + log(N) time-outs * D é a profundidade máxima de compressão | N vezes de prova | 1 tempo esgotado K bloqueia vezes de prova |
Ao contrário dos ZK Rollups, o paradigma híbrido do Kailua permite que os rollups operem normalmente sem se preocupar com custos e tempos de prova constantes, mas também para aliviar seus usuários de quaisquer custos adicionais de prova, que se acumulam e se tornam não negligíveis em casos onde:
No novo design de Kailua, os custos para resolver uma disputa usando ZK são totalmente suportados pelas partes desonestas, quer sejam um proponente ou validador com falhas!
Um rollup usando Kailua pode manter com segurança a sua segurança ao terceirizar quaisquer cargas de trabalho de provas! Isto deve-se ao facto de que os validadores de Kailua ainda podem emitir as transações de desafio necessárias para garantir a segurança dos seus rollups mesmo antes de terem computado as provas para as justificar. Consequentemente, isto significa que, em vez de se preocupar com a configuração de infraestruturas de prova potencialmente complexas e dispendiosas, os Kailua Hybrid Rollups podem depender de infraestruturas de mercado de prova descentralizadas comoRISC Zero’s Boundlessem tempos de necessidade com garantias de segurança e vivacidade para os seus pedidos de prova!
Custos operacionais de execução reduzidos em comparação com os ZK Rollups são ótimos, mas fica ainda melhor! Kailua também reduz os custos de garantia necessários para executar um rollup de ‘linear no número de propostas/desafios’ para constante! Isso significa que mesmo sob períodos longos de finalidade, a garantia mínima exigida por partes honestas para manter a segurança e a vitalidade do sistema pode ser reduzida em ordens de magnitude de dezenas de milhares para centenas (em USD)!
Primeiro, vamos recapitular o mecanismo central por trás dos jogos de disputa de rollup atuais. O jogo de bissecção da Truebit introduziu a capacidade de resolver disputas sobre o resultado de um longo cálculo determinístico através de repetidas rodadas de interações de desafio-resposta. Esse mecanismo tem sido a base de segurança nos rollups otimistas, que concedem uma oportunidade sensível ao tempo para jogar o jogo e garantir a integridade do livro de contas de segunda camada. A sensibilidade ao tempo garante a vivacidade do rollup, mas carrega um risco para sua segurança, já que jogadores honestos no jogo de bissecção podem não fazer seus movimentos a tempo ou não ter fundos suficientes para jogar tantas instâncias do jogo quanto jogadores desonestos podem. No entanto, suas suposições criptográficas subjacentes são mínimas, o que o tornou uma escolha muito prática.
As regras para jogar jogos de disputa baseados em dissecção envolvem vários tipos de períodos de “timeout” concedidos aos jogadores para fazerem jogadas. Os dois mais notáveis são:
Essas duas timeouts contribuem para o que é comumente chamado de “Período de Finalização”. Nos designs atuais, um atacante poderia sacrificar sua própria garantia para acionar a última timeout várias vezes, potencialmente esgotando até mesmo os recursos dos defensores. Esse vetor de ataque tem sido central para a segurança de rollups, incluindo Arbitrum, que está atualmente adotando um novo protocolo de disputa (BoLD) que tem como objetivo definir de forma comprovada um limite superior constante de ~6,3 dias para o prazo de resposta para disputas em aberto.
Spoiler: Kailua reduz este tempo limite para apenas uma hora! E remove o potencial para ataques de exaustão de recursos!
Provas de conhecimento zero podem ser usadas em vez do jogo de biseção como um mecanismo não interativo para resolver qualquer disputa sobre o estado do rollup. A natureza de uma única vez significa que o tempo alocado para a resolução de disputas pode ser drasticamente reduzido para apenas o tempo necessário para provar um único bloco!
Embora tal mudança na mecânica possa parecer razoável, ainda não é uma introdução ideal de ZK no jogo de disputa otimista! Em vez de exigir provas apenas para demonstrar que um estado de rollup proposto é inválido, pode-se também aproveitar as provas zk para demonstrar validade, mesmo em um cenário otimista! Com a dualidade de provas em mente, Kailua exige apenas que os desafiantes sinalizem sua “intenção” de contestar uma proposta, impedindo a finalização dessa proposta até que uma prova de falha ou validade seja submetida para refutar o desafiante ou o proponente, e remover suas respetivas ações do jogo. Consequentemente, isso permite que Kailua alivie o rollup de se preocupar em provar que os tempos potencialmente não são tão curtos quanto o último timeout.
Mas Kailua não apenas elimina longos atrasos de finalidade devido a transações de desafio-resposta interativas, mas também elimina grande parte do colateral necessário para manter os rollups! Os jogadores no jogo de biseção têm que apostar peças separadas de colateral em cada instância do jogo que jogam. Isto deve-se principalmente ao facto de um jogador poder perder numa instância do jogo simplesmente por não responder a tempo, o que nada diz sobre a sua honestidade em geral. Notavelmente, Kailua supera esta limitação com disputas ZK! Em Kailua, se um jogador desafiar uma proposta, e essa proposta mais tarde for provada válida, então Kailua desqualifica esse jogador devido à sua desonestidade comprovada! Esta simples mudança significa que os desafiantes agora apenas precisam de colocar colateral para assumir o papel de desafiante e depois emitir tantos desafios quantos necessários, em vez de colocar colateral separado por desafio ou jogo. Notavelmente, a mesma redução de colateral aplica-se com segurança também aos proponentes devido à mesma razão, sem medo de ataque por um proponente rico que possa inundar o sistema.
No entanto, raramente tantas vantagens vêm de graça! Comparado aos rollups otimistas, há um custo adicional de publicação de dados neste design híbrido que é necessário para remover as interações requeridas num jogo de dissecção. Projetamos Kailua para tornar este custo DA overhead negligível em comparação com os custos de prova completa num ZK Rollup, levando o custo overhead por transação em Kailua a ser inversamente relacionado com TPS!
Num rollup de Kailua em que um desafio/prova diz respeito a uma sequência de blocos de rollup K, o proponente de Kailua tem de publicar no máximo N/K hashes como “dados de checkpoint” ao propor uma transição de estado que avança o rollup por N blocos. K é o número de blocos não vazios cobertos por cada desafio/prova, e é um parâmetro configurável que determina os custos de disputa. Dizemos no máximo N/K, porque o número de checkpoints necessários pode ser largamente reduzido se houver muitos blocos vazios numa proposta.
No caso de um rollup relativamente ativo com muito poucos blocos vazios, o overhead acima seria negligenciável, pois seria um custo adicional de publicar apenas 32/K bytes adicionais por bloco. Com K=1, por exemplo, para a mainnet da Optimism, isso equivale a publicar um único blob a cada 2 horas e 15 minutos, o que está em paralelo comtaxa de proposta existente da mainnet OP, e bem abaixo doCustos da DA para tal período. Com o TPS atual e um custo de $3 por blobo, isso é menos de $0.0001 por tx!
No entanto, no caso de um rollup que experimenta baixa utilidade de espaço de bloco (por exemplo, devido a tempos de bloco muito baixos), a sobrecarga de publicar ingenuamente hashes N/K pode ser impraticável, mas Kailua não é ingênuo! Neste caso, a condição para criar um ponto de verificação pode utilizar um segundo parâmetro, E, que denota o número máximo de blocos vazios que o ponto de verificação pode cobrir. Um ponto de verificação de 32 bytes (hash de bloco/estado) é então necessário para cobrir uma sequência de blocos contendo no máximo blocos vazios E ou blocos K não vazios. Felizmente, E pode ser um número significativamente maior do que K, dependendo de quão barato é provar blocos vazios.
Kailua está atualmente passando por um rápido desenvolvimento e é adequado apenas para ambientes de teste e não em produção. Continuaremos a melhorar e evoluir Kailua adicionando novos recursos, otimizando custos e desempenho e, possivelmente, suportando mais pilhas de rollup! Kailua é um projeto totalmente open-source publicado sob RISC ZeroGithub.
O Kailua CLI permite que você implante facilmente uma rede de desenvolvimento OP local e a atualize para usar provas de falhas ZK com apenas alguns comandos. Em seguida, você pode usar a CLI para iniciar o proponente e o validador e interagir com sua rede de desenvolvimento local como normalmente faria. Se você estiver interessado em testar o próprio jogo de disputa em caso de falhas, você pode usar a CLI para interagir anormalmente como você não faria e induzir algumas propostas defeituosas e observar o desafio do validador e derrubá-las usando o RISC Zero zkVM!
Finalmente, este não seria um post de blog RISC Zero sobre um novo lançamento sem algumas contagens de ciclos! A tabela abaixo mostra alguns benchmarks da Mainnet OP, que vêm com algumas ressalvas.
Bloco | Ciclos | Transações | Custo de Prova de Bonsai |
126223114 | 17,121,252,466 | 108 | $22 |
126223244 | 16,202,792,886 | 98 | $21 |
126223597 | 15,194,355,377 | 85 | $20 |
126229327 | 14,245,181,555 | 81 | $19 |
126210813 | 10,663,051,955 | 43 | $14 |
126210550 | 10,596,525,804 | 37 | $14 |
Apesar do aumento quase quádruplo nos contadores de ciclo em comparação com op-zeth, os custos de prova por transação nesta tabela são duas a cinco vezes melhores devido a melhorias no provador RISC Zero.
Em agosto do ano passado, lançamosZeth, o primeiro Tipo-1 zkEVM construído usando o RISC Zero zkVM, que permitiu aos desenvolvedores consagrar a execução EVM em ZK. Então este anoem maio, atualizamos Zethpara apoiar rollups otimistas como parte doRFP da Fundação Optimism, capacitando os desenvolvedores a gerar provas de validade que consagram a derivação de rollup em conhecimento zero.
Hoje, estamos anunciando Kailua, um conjunto de software para atualizar rollups otimistas para rollups híbridos ZK, com sua primeira implementação apoiada pela Optimism.Konamecanismo de transição de estado rollup. Kailua não apenas executa transparentemente o Kona sem modificações no zkVM, mas também introduz seu próprio jogo à prova de falhas inovador que avança o estado da arte na resolução de disputas, reduzindo os requisitos de garantia e os atrasos de finalidade!
Para não ser confundido com a cidade no distrito havaiano de Kona, Kailua é um conjunto de ferramentas e contratos para migrar rollups de sistemas longos de prova de falha interativa para provas de falha ZK não interativas geradas usando o RISC Zero zkVM. Seus principais componentes são:
Nota: A versão mínima da pilha OP necessária para usar Kailua é V1.4, pois ela utiliza o contrato DisputeGameFactory em vez do contrato L2OutputOracle obsoleto.
O jogo de disputa de Kailua combina a prova de conhecimento zero com o paradigma de rollup otimista em um sistema híbrido inovador que melhora a segurança e o desempenho, reduzindo os custos operacionais e os atrasos de finalidade! Isso está resumido na tabela abaixo:
ㅤ | Rollups Otimistas | ZK Rollups | Hybrid Rollups (Kailua) |
Garantia para N Desafios | N depósitos | N/A | 1 depósito |
Colateral para N Propostas | N depósitos | N/A | 1 depósito |
Custo de propor N blocos | 1 transação | 1 transação Provas de N blocos | 1 transação ≤ hashes N/K |
Custo máximo de desafiar uma proposta de bloco N | D + log(N) transações D é a profundidade máxima da comp. | N/A | 3 transações Provas de bloco K |
Atraso mínimo de finalidade para uma proposta de bloco N | D + log(N) time-outs * D é a profundidade máxima de compressão | N vezes de prova | 1 tempo esgotado K bloqueia vezes de prova |
Ao contrário dos ZK Rollups, o paradigma híbrido do Kailua permite que os rollups operem normalmente sem se preocupar com custos e tempos de prova constantes, mas também para aliviar seus usuários de quaisquer custos adicionais de prova, que se acumulam e se tornam não negligíveis em casos onde:
No novo design de Kailua, os custos para resolver uma disputa usando ZK são totalmente suportados pelas partes desonestas, quer sejam um proponente ou validador com falhas!
Um rollup usando Kailua pode manter com segurança a sua segurança ao terceirizar quaisquer cargas de trabalho de provas! Isto deve-se ao facto de que os validadores de Kailua ainda podem emitir as transações de desafio necessárias para garantir a segurança dos seus rollups mesmo antes de terem computado as provas para as justificar. Consequentemente, isto significa que, em vez de se preocupar com a configuração de infraestruturas de prova potencialmente complexas e dispendiosas, os Kailua Hybrid Rollups podem depender de infraestruturas de mercado de prova descentralizadas comoRISC Zero’s Boundlessem tempos de necessidade com garantias de segurança e vivacidade para os seus pedidos de prova!
Custos operacionais de execução reduzidos em comparação com os ZK Rollups são ótimos, mas fica ainda melhor! Kailua também reduz os custos de garantia necessários para executar um rollup de ‘linear no número de propostas/desafios’ para constante! Isso significa que mesmo sob períodos longos de finalidade, a garantia mínima exigida por partes honestas para manter a segurança e a vitalidade do sistema pode ser reduzida em ordens de magnitude de dezenas de milhares para centenas (em USD)!
Primeiro, vamos recapitular o mecanismo central por trás dos jogos de disputa de rollup atuais. O jogo de bissecção da Truebit introduziu a capacidade de resolver disputas sobre o resultado de um longo cálculo determinístico através de repetidas rodadas de interações de desafio-resposta. Esse mecanismo tem sido a base de segurança nos rollups otimistas, que concedem uma oportunidade sensível ao tempo para jogar o jogo e garantir a integridade do livro de contas de segunda camada. A sensibilidade ao tempo garante a vivacidade do rollup, mas carrega um risco para sua segurança, já que jogadores honestos no jogo de bissecção podem não fazer seus movimentos a tempo ou não ter fundos suficientes para jogar tantas instâncias do jogo quanto jogadores desonestos podem. No entanto, suas suposições criptográficas subjacentes são mínimas, o que o tornou uma escolha muito prática.
As regras para jogar jogos de disputa baseados em dissecção envolvem vários tipos de períodos de “timeout” concedidos aos jogadores para fazerem jogadas. Os dois mais notáveis são:
Essas duas timeouts contribuem para o que é comumente chamado de “Período de Finalização”. Nos designs atuais, um atacante poderia sacrificar sua própria garantia para acionar a última timeout várias vezes, potencialmente esgotando até mesmo os recursos dos defensores. Esse vetor de ataque tem sido central para a segurança de rollups, incluindo Arbitrum, que está atualmente adotando um novo protocolo de disputa (BoLD) que tem como objetivo definir de forma comprovada um limite superior constante de ~6,3 dias para o prazo de resposta para disputas em aberto.
Spoiler: Kailua reduz este tempo limite para apenas uma hora! E remove o potencial para ataques de exaustão de recursos!
Provas de conhecimento zero podem ser usadas em vez do jogo de biseção como um mecanismo não interativo para resolver qualquer disputa sobre o estado do rollup. A natureza de uma única vez significa que o tempo alocado para a resolução de disputas pode ser drasticamente reduzido para apenas o tempo necessário para provar um único bloco!
Embora tal mudança na mecânica possa parecer razoável, ainda não é uma introdução ideal de ZK no jogo de disputa otimista! Em vez de exigir provas apenas para demonstrar que um estado de rollup proposto é inválido, pode-se também aproveitar as provas zk para demonstrar validade, mesmo em um cenário otimista! Com a dualidade de provas em mente, Kailua exige apenas que os desafiantes sinalizem sua “intenção” de contestar uma proposta, impedindo a finalização dessa proposta até que uma prova de falha ou validade seja submetida para refutar o desafiante ou o proponente, e remover suas respetivas ações do jogo. Consequentemente, isso permite que Kailua alivie o rollup de se preocupar em provar que os tempos potencialmente não são tão curtos quanto o último timeout.
Mas Kailua não apenas elimina longos atrasos de finalidade devido a transações de desafio-resposta interativas, mas também elimina grande parte do colateral necessário para manter os rollups! Os jogadores no jogo de biseção têm que apostar peças separadas de colateral em cada instância do jogo que jogam. Isto deve-se principalmente ao facto de um jogador poder perder numa instância do jogo simplesmente por não responder a tempo, o que nada diz sobre a sua honestidade em geral. Notavelmente, Kailua supera esta limitação com disputas ZK! Em Kailua, se um jogador desafiar uma proposta, e essa proposta mais tarde for provada válida, então Kailua desqualifica esse jogador devido à sua desonestidade comprovada! Esta simples mudança significa que os desafiantes agora apenas precisam de colocar colateral para assumir o papel de desafiante e depois emitir tantos desafios quantos necessários, em vez de colocar colateral separado por desafio ou jogo. Notavelmente, a mesma redução de colateral aplica-se com segurança também aos proponentes devido à mesma razão, sem medo de ataque por um proponente rico que possa inundar o sistema.
No entanto, raramente tantas vantagens vêm de graça! Comparado aos rollups otimistas, há um custo adicional de publicação de dados neste design híbrido que é necessário para remover as interações requeridas num jogo de dissecção. Projetamos Kailua para tornar este custo DA overhead negligível em comparação com os custos de prova completa num ZK Rollup, levando o custo overhead por transação em Kailua a ser inversamente relacionado com TPS!
Num rollup de Kailua em que um desafio/prova diz respeito a uma sequência de blocos de rollup K, o proponente de Kailua tem de publicar no máximo N/K hashes como “dados de checkpoint” ao propor uma transição de estado que avança o rollup por N blocos. K é o número de blocos não vazios cobertos por cada desafio/prova, e é um parâmetro configurável que determina os custos de disputa. Dizemos no máximo N/K, porque o número de checkpoints necessários pode ser largamente reduzido se houver muitos blocos vazios numa proposta.
No caso de um rollup relativamente ativo com muito poucos blocos vazios, o overhead acima seria negligenciável, pois seria um custo adicional de publicar apenas 32/K bytes adicionais por bloco. Com K=1, por exemplo, para a mainnet da Optimism, isso equivale a publicar um único blob a cada 2 horas e 15 minutos, o que está em paralelo comtaxa de proposta existente da mainnet OP, e bem abaixo doCustos da DA para tal período. Com o TPS atual e um custo de $3 por blobo, isso é menos de $0.0001 por tx!
No entanto, no caso de um rollup que experimenta baixa utilidade de espaço de bloco (por exemplo, devido a tempos de bloco muito baixos), a sobrecarga de publicar ingenuamente hashes N/K pode ser impraticável, mas Kailua não é ingênuo! Neste caso, a condição para criar um ponto de verificação pode utilizar um segundo parâmetro, E, que denota o número máximo de blocos vazios que o ponto de verificação pode cobrir. Um ponto de verificação de 32 bytes (hash de bloco/estado) é então necessário para cobrir uma sequência de blocos contendo no máximo blocos vazios E ou blocos K não vazios. Felizmente, E pode ser um número significativamente maior do que K, dependendo de quão barato é provar blocos vazios.
Kailua está atualmente passando por um rápido desenvolvimento e é adequado apenas para ambientes de teste e não em produção. Continuaremos a melhorar e evoluir Kailua adicionando novos recursos, otimizando custos e desempenho e, possivelmente, suportando mais pilhas de rollup! Kailua é um projeto totalmente open-source publicado sob RISC ZeroGithub.
O Kailua CLI permite que você implante facilmente uma rede de desenvolvimento OP local e a atualize para usar provas de falhas ZK com apenas alguns comandos. Em seguida, você pode usar a CLI para iniciar o proponente e o validador e interagir com sua rede de desenvolvimento local como normalmente faria. Se você estiver interessado em testar o próprio jogo de disputa em caso de falhas, você pode usar a CLI para interagir anormalmente como você não faria e induzir algumas propostas defeituosas e observar o desafio do validador e derrubá-las usando o RISC Zero zkVM!
Finalmente, este não seria um post de blog RISC Zero sobre um novo lançamento sem algumas contagens de ciclos! A tabela abaixo mostra alguns benchmarks da Mainnet OP, que vêm com algumas ressalvas.
Bloco | Ciclos | Transações | Custo de Prova de Bonsai |
126223114 | 17,121,252,466 | 108 | $22 |
126223244 | 16,202,792,886 | 98 | $21 |
126223597 | 15,194,355,377 | 85 | $20 |
126229327 | 14,245,181,555 | 81 | $19 |
126210813 | 10,663,051,955 | 43 | $14 |
126210550 | 10,596,525,804 | 37 | $14 |
Apesar do aumento quase quádruplo nos contadores de ciclo em comparação com op-zeth, os custos de prova por transação nesta tabela são duas a cinco vezes melhores devido a melhorias no provador RISC Zero.