Kakarot: uma introdução ao primeiro zkEVM modular

May 09 2023
TL;DR: Kakarot é um zkEVM tipo 3 (em breve tipo 2.5), construído sobre o CairoVM.

TL;DR: Kakarot é um zkEVM tipo 3 (em breve tipo 2.5), construído sobre o CairoVM. O projeto, que começou em outubro de 2022, tem vários objetivos em mente: código aberto desde o primeiro dia, receber contribuições e, mais ambiciosamente, criar um zkEVM em menos de 10.000 linhas de código. Alcançamos essa meta em apenas seis meses. Lançaremos um testnet no final do verão de 2023.

Um glossário está disponível no final do artigo para contextualizar EVM, zkRollups e zkEVM.

Uma cartilha incompleta sobre o CairoVM

O CairoVM é uma máquina virtual que permite a execução comprovável. Ele serve como base para Starknet , um rollup de validade de Camada 2 (L2) de uso geral no ecossistema Ethereum. A capacidade do CairoVM de representar a execução como polinômios permite que cada transação no Starknet seja comprovada usando STARKs. Isso exige que os desenvolvedores criem aplicativos descentralizados (dApps) no Cairo, a linguagem de programação associada.

Nas palavras da equipe por trás do Cairo, Lior Goldberg e Shahar Papini e Michael Riabzev:

Apresentamos o Cairo, uma arquitetura de CPU compatível com STARK completa e praticamente eficiente. Descrevemos um único conjunto de equações polinomiais para a afirmação de que a execução de um programa nessa arquitetura é válida. Dada uma afirmação que se deseja provar, Cairo permite escrever um programa que descreva essa afirmação, em vez de escrever um conjunto de equações polinomiais.

Conclusão: Programas escritos no Cairo são prováveis, o que permite uma vantagem revolucionária: escrever programas prováveis ​​em uma linguagem de alto nível. Como resultado, os desenvolvedores que procuram aproveitar a propriedade de escalabilidade da criptografia de conhecimento zero não precisam mais escrever circuitos.

Então, reescrever a Ethereum Virtual Machine (EVM) no Cairo resultaria em um zkEVM?

O pedido de armas de Shahar ou como tudo começou

Shahar Papini , o co-inventor do Cairo, twittou em 20 de julho de 2022:

A ideia era simples: o EVM é uma arquitetura de VM madura e bem definida. 142 opcodes, 9 pré-compilações e um processo democrático para atualizar esses opcodes ou pré-compilações. Se alguém o construísse no Cairo, obteria um zkEVM “de graça”, ou seja, obteria a propriedade de escalonamento de conhecimento zero como consequência direta? Alerta de spoiler, sim.

A partir daí, a ideia ganhou força na comunidade Starknet. Abdel , líder da equipe de exploração da Starkware e parte da equipe principal de desenvolvedores do Ethereum, começou a implementá-lo em outubro de 2022. Na mesma época, a comunidade de construtores de código aberto da Starknet - reunida com a ajuda de Onlydust - iniciou um projeto semelhante em paralelo . O primeiro absorveu o segundo durante o StarknetCC em Lisboa.

Até o final de 2022, a Kakarot tinha 100% dos Opcodes EVM implementados.

Uma casa hacker em Lisboa, uma semana de trabalho dedicado e cerca de dez pessoas a construir um zkEVM. A equipe principal do Kakarot nasceu. Percebemos que isso era viável e poderoso. Uma implementação ingênua de um zkEVM que cabe em menos de 5.000 linhas de código. Sem circuitos, sem polinômios. Apenas código expressivo de alto nível.

Com a ajuda da Starknet Foundation e da Onlydust, embarcamos nessa aventura. Nossos valores eram código aberto, contribuições abertas e estratégia técnica voltada para a comunidade. Clément e eu lideramos e coordenamos esse esforço. Hoje, Kakarot tem mais de 40 colaboradores únicos. Enquanto Kakarot está incorporando para cristalizar o esforço em torno da construção de um zkEVM de nível de produção, nossos valores perduram: código aberto para sempre e aberto para contribuições externas (+ recompensas por contribuição - junte-se a nós! ) .

Em maio de 2023, Kakarot alcançou 100% de equivalência de bytecode (equivalente ao tipo 3 zkEVM) e implementou 8 de 9 pré-compilações de EVM . Em breve terá todos os nove, atingindo assim o tipo 2.5, conforme a tipologia de Vitalik. Como resultado, os dApps escritos em Solidity ou qualquer outra linguagem compatível com EVM podem ser implantados no Kakarot sem a necessidade de modificações no código existente.

Qual é o próximo? Uma aposta dupla: trazer o EVM para Starknet e construir um produto zkEVM-Rollup-as-a-Service

Quando analisamos o mercado, percebemos que, em comparação com outros zkEVMs, o Kakarot é um azarão - uma equipe de menos de 10 pessoas com orçamento e marca significativamente menores. Implantar como um zkEVM L2 de uso geral parecia arriscado. Então, que outras estratégias pareciam sólidas? Traga compatibilidade EVM para Starknet e aproveite a escala fractal.

Acreditamos firmemente que o Cairo será a melhor caixa de ferramentas para a engenharia de conhecimento zero nos próximos anos. Também acreditamos que o EVM continuará sendo a camada de abstração mais comum para desenvolvedores. É por isso que estamos trazendo compatibilidade EVM para Starknet. Em breve, as equipes poderão implantar seu Solidity dApp na Starknet, por meio do Kakarot.

Além disso, acreditamos que cadeias de aplicativos (ou L3s específicos de aplicativos) surgirão mais cedo do que as pessoas esperam. A tração que a pilha OP vem ganhando é um bom exemplo. Aproveitando a natureza modular do Kakarot (base de código pequena e flexível, adaptável a qualquer rede do Cairo), temos o poder de criar uma ferramenta zkRollup-as-a-service.
Um clique: um zkEVM implantado como L3 em cima do Starknet para um aplicativo específico. Ambiente EVM, baixo gás e execução rápida. Segurança criptográfica.

Para dar uma espiada em nossa pilha, dê uma olhada em Madara , um sequenciador Starknet baseado em substrato. Madara + Kakarot = Substrate & CairoVM baseado em zkEVM L3s !

Contexto & Glossário

  • EVM (Ethereum Virtual Machine): A EVM é uma máquina virtual Turing-complete que executa contratos inteligentes na blockchain Ethereum. Ele serve como ambiente de execução para esses contratos, processando as instruções e gerenciando o estado da rede. Os desenvolvedores podem escrever contratos inteligentes em linguagens como Solidity, que são então compilados para bytecode EVM e executados pela máquina virtual.
  • zkRollups: zkRollups são soluções de dimensionamento de Camada 2 para redes blockchain, particularmente Ethereum. Eles agrupam várias transações em uma única prova, que é então postada na cadeia principal. Ao usar provas de conhecimento zero, o zkRollups permite maior rendimento e custos de transação mais baixos, mantendo um alto nível de segurança e descentralização.
  • zkEVM (Zero-Knowledge Ethereum Virtual Machine): Um zkEVM é uma implementação EVM que incorpora sistemas de prova de conhecimento zero. Ele permite a execução de contratos inteligentes com maior privacidade e escalabilidade, aproveitando técnicas criptográficas para provar a exatidão das transações sem revelar seus detalhes.

Junte-se ao nosso GitHub , temos muitos repositórios para explorar! O principal é o Kakarot (implementação do Cairo 0.x) . Também temos uma comunidade aberta do Telegram:https://t.me/KakarotZkEvm.