Enquanto explorava o eco da @boundless_xyz, descobri um caso de uso interessante nas aplicações do @RiscZero R0VM: ZK Proof of Exploit - zkPoEx. Entre todos os bugs, os mais críticos são aqueles que existem em produtos ao vivo. No mundo cripto, uma vez que vulnerabilidades críticas levam imediatamente a explorações de fundos, o valor monetário de bugs ao vivo é muito alto. Normalmente, quando tais bugs são encontrados, plataformas de recompensas por bugs como @immunefi ou @HackenProof atuam como intermediárias para verificar a autenticidade e a gravidade do bug e negociar a recompensa. Esta estrutura tem um problema: os detalhes do bug devem ser divulgados antes que o whitehat receba a recompensa. Do ponto de vista do projeto, após receber o relatório do bug e revisá-lo, eles poderiam corrigir o problema e depois alegar que está "fora do escopo" ou rebaixar sua gravidade. Em casos muito extremos, os intermediários poderiam ver a vulnerabilidade e explorá-la primeiro. O zkPoEx, através do R0VM da RiscZero, permite provar a existência de uma vulnerabilidade com prova ZK sem revelar os detalhes do bug. Como pode provar que um bug que satisfaz certas condições existe, os descobridores de bugs podem esperar respostas mais cooperativas dos projetos, como pedir um pagamento parcial antecipado. Para explicar com mais detalhes, o repórter usa calldata/contrato de exploração como entrada privada e o estado no momento do ataque como entrada pública para alterar os valores de estado do contrato-alvo dentro do R0VM. Após a execução, o recibo da tx e a prova gerada pelo Prover do R0VM podem verificar se o ataque satisfez condições específicas, como mudanças de saldo. Pessoalmente, acho que este método é bastante útil para relatar vulnerabilidades ao vivo, mas ainda não vi casos em que bugs tenham sido relatados usando esta abordagem. Parece que isso se deve ao fato de que os projetos precisam fornecer as condições com antecedência... Se tal sistema é realmente difícil de implementar na prática, gostaria de saber quais seriam os desafios.
890