
Gastei algum tempo analisando o cliente leve Tendermint do Cosmos IBC Eureka no Ethereum. Fiquei curioso para saber se versões mais recentes do SP1 ainda funcionariam com o verificador já implantado sem exigir uma atualização do contrato. Encontrei algumas coisas interessantes. Baixei todos os 4 ELF oficiais de produção e reproduzi suas chaves exatas de verificação de programa usando o SP1 v6.1 e v6.9. Em seguida, gerei um testemunho real de atualização do Cosmos Hub Tendermint e executei o ELF de produção original usando ambas as versões. Ambas as execuções foram bem-sucedidas e produziram saídas públicas idênticas de 768 bytes, mesmo gás de execução e mesmo hash SHA-256. A parte mais interessante: SP1 v6.1, v6.9 e v6.10 ainda relatam a versão do circuito v6.1.0. Comparei os binários da chave de verificação Groth16 reais das versões v6.1 e v6.10. Eles são idênticos byte a byte. Seu SHA-256 também corresponde ao hash do verificador já implantado no Ethereum: 0x4388a21c687fdd5f218d7e3d13190cac4c5355818d3605fd5fb811df468ee696 Portanto, pelo menos no nível de identidade do programa, execução e chave de verificação Groth16, a compatibilidade está sendo mantida entre essas versões. Ainda não gerei uma prova genuína usando o prover mais recente nem testei contra o verificador Ethereum ao vivo. Essa é a próxima etapa. Interessante ver quanto da pilha de prova pode mudar enquanto a interface de verificação permanece a mesma.

