zkMint: O primeiro Tendermint Consensus Engine compatível com ZK

Feb 25 2023
Em nosso post de outubro, compartilhamos nosso compromisso de promover a pesquisa ZK de código aberto. Desde então, fizemos um tremendo progresso em 2 frentes principais: zkTree e... hoje, estamos entusiasmados em apresentar o zkMint, a solução da Polymer que otimiza o IBC em todas as principais cadeias.
zkMint é o fork Tendermint da Polymer que suporta a expansão global da IBC

Em nosso post de outubro, compartilhamos nosso compromisso de promover a pesquisa ZK de código aberto. Desde então, fizemos um tremendo progresso em 2 frentes principais: zkTree e... hoje, estamos entusiasmados em apresentar o zkMint, a solução da Polymer que otimiza o IBC em todas as principais cadeias.

Contexto e antecedentes

Em nosso artigo mais recente , demonstramos como o IBC multi-hop em um hub de transporte IBC como o Polymer pode trazer a camada de transporte IBC para Ethereum e seu ecossistema de rollups. Para trazer o IBC para o Ethereum, precisamos ser capazes de provar o consenso Tendermint no EVM.

Em geral, houve uma mudança em toda a indústria para verificar provas de consenso em vez de soluções mais centralizadas. Isso melhora as suposições de confiança na camada de estado. No entanto, existem 2 desafios principais na verificação de provas de consenso na cadeia:

  1. Existem algoritmos light client eficientes para verificar o estado de uma cadeia de contraparte?
  2. Os custos de gás na cadeia de verificação são práticos?

A jornada

Antes de chegar ao zkMint, nossa equipe avaliou várias soluções possíveis para o problema de provar o consenso do Tendermint no EVM.

Nossa primeira abordagem foi verificar diretamente o consenso Tendermint on-chain. Embora exista uma implementação de cliente leve Tendermint em solidity , é impraticável devido aos custos de gás. A verificação de cabeçalho não adjacente custa mais de 26 milhões de gás por cabeçalho.

Posteriormente, tentamos otimizar o esquema de assinatura do algoritmo light client do tendermint para ser mais amigável ao EVM. Ao trocar as assinaturas ed25519 por assinaturas secp256k1, conseguimos reduzir os custos de gás para 1,3 milhão de gás por cabeçote. Esta foi uma boa melhoria, mas ainda não o suficiente para ser prática.

Além disso, avaliamos assinaturas de limite e agregação de assinatura m-de-n BLS. O algoritmo de assinatura foi dimensionado extremamente mal com o tamanho da assinatura definida nas assinaturas de limite, o que descartou essa opção. Implicava exigir o uso de um pequeno subconjunto de nossos validadores de polímero para cada assinatura. Com as pré-compilações EVM BLS atualmente inexistentes, a verificação on-chain é proibitivamente cara. O uso da agregação de assinaturas BLS também exigia igualar o poder de voto de todos os signatários. Isso exigiria alterações no módulo de staking do CosmosSDK, algo que queríamos evitar.

Por fim, analisamos o uso de provas de conhecimento zero. Houve desafios associados à conversão do algoritmo de cliente leve Tendermint em um circuito. O algoritmo padrão requer serialização protobuf, várias verificações de inclusão de prova merkle, cálculos de raiz merkle e alterações adicionais de material. Em vez disso, modificamos o algoritmo de consenso do Tendermint para ser amigável ao SNARK, criando o que chamamos de zkMint. Isso resultou em custos na cadeia de gás 300k, uma otimização significativa de ~98,8%.

Circuito de verificação do zkMint para algoritmo de verificação de cabeçalho de cliente light tendermint não adjacente

zkMint: a solução para conectar Cosmos e Ethereum

zkMint é o mecanismo de consenso Tendermint BFT multi-assinatura da Polymer que pode produzir vários cabeçalhos assinados por rodada de consenso. Com o zkMint, o Polymer pode otimizar o formato do cabeçalho para qualquer ambiente de execução ao qual o Polymer se conecte. Por exemplo, ao conectar-se ao EVM, o zkMint pode escolher uma curva elíptica compatível com o EVM, como bn128. O zkMint também permite que o Polymer seja compatível com versões anteriores de clientes leves já implantados na natureza . O mecanismo de consenso para um hub de transporte IBC como o Polymer precisa ser adaptável a vários destinos de execução , tornando o zkMint a solução ideal.

Fique atento ao whitepaper zkMint que a Polymer publicará em breve. O documento inclui uma visão geral do consenso Tendermint BFT e provas formais sobre a segurança do Tendermint multi-assinatura. Você também pode encontrar nosso co-fundador Bo Du apresentando o zkMint na ETH Denver em 27 de fevereiro e às 12h20 no #BuidlHUB ​​Mainstage.

Sobre Polímero

Polymer é o primeiro protocolo de rede IBC modular. A cadeia Polymer permitirá a conectividade ZK-IBC em todas as cadeias integradas com uma arquitetura de confiança minimizada com base na verificação leve do estado do cliente. A Polymer acredita em um futuro multicadeia conectado principalmente por um padrão da indústria de código aberto, desenvolvido pela comunidade e mantido, IBC x Polymer.

Siga nosso Twitter , visite nosso site e junte-se à nossa comunidade no Discord !