Por: Zooko Wilcox, Jason McGee e Taylor Hornby da Shielded Labs
Resumo
A Shielded Labs está trabalhando com a Zcash Foundation, Tachyon Group, Valar Group e o Zcash Open Development Lab (ZODL) em uma proposta chamada "Ironwood" para restaurar a capacidade dos usuários de verificar a solidez da oferta circulante de Zcash.
Na semana passada, uma vulnerabilidade crítica de falsificação foi descoberta no pool Orchard da Zcash. A vulnerabilidade foi corrigida por meio de uma atualização emergencial da rede coordenada pelo ZODL e outros participantes do ecossistema, concluída em 2 de junho.
Embora acreditemos que era improvável que a vulnerabilidade tivesse sido explorada (pelos motivos apresentados em nossa divulgação), as propriedades de privacidade do Orchard impedem que os usuários verifiquem isso por conta própria.
O Ironwood permitiria que os usuários verificassem se a oferta circulante de Zcash está correta. Os usuários ganhariam essa habilidade imediatamente após a ativação do Ironwood, simplesmente somando os saldos dos pools ativos. Eles não precisariam raciocinar sobre os incentivos ou ações de outras pessoas, nem esperar pela migração do pool Orchard, para verificar se a oferta circulante total de Zcash está correta.
Ironwood
O objetivo do Ironwood é restaurar a capacidade de cada usuário da Zcash de verificar a integridade da oferta de Zcash. Essa verificabilidade foi prejudicada pela existência da vulnerabilidade de falsificação. Imediatamente após a ativação, os usuários poderão verificar de forma independente se a oferta circulante de Zcash é sólida, apenas executando um nó.
Para isso, o Ironwood iria:
- Criar um novo pool protegido usando o circuito Orchard com a recente vulnerabilidade de falsificação corrigida.
- Rejeitar como inválida qualquer transação que crie uma nova saída no pool Orchard antigo.
- Aumentar a garantia sobre o código-fonte, usando técnicas como auditoria de segurança assistida por IA e verificação formal, todas visando garantir a ausência de bugs adicionais de falsificação.
Por que o Ironwood Funciona
O Ironwood muda o que pode acontecer dentro do pool Orchard.
Após a ativação, qualquer transação que crie uma nova saída no pool Orchard seria rejeitada. Isso significa que o ZEC não poderia mais continuar circulando dentro desse pool. A partir desse ponto, os fundos no pool Orchard só poderiam se mover saindo do pool através de uma catraca (turnstile).
As catracas são o mecanismo contábil on-chain da Zcash para transferências entre pools. Elas rastreiam quanto ZEC entrou e saiu de cada pool e rejeitam qualquer transação que tente retirar mais ZEC do que entrou legitimamente.
Juntas, essas regras significam que os usuários não precisam esperar pela migração de todos, ou mesmo de qualquer, fundos do Orchard. Assim que o Ironwood for ativado, os usuários podem verificar, a partir das regras de consenso, que não mais do que a quantidade correta de ZEC pode estar em circulação. Isso fornece uma garantia imediata e sem necessidade de confiança da solidez da oferta circulante de Zcash. O ZEC excedente não pode circular secretamente entre os usuários do pool Orchard, nem pode escapar para outro pool.
Gerando Evidências sobre se a Vulnerabilidade Foi ou Não Explorada
O Ironwood também pode fornecer evidências sobre se a vulnerabilidade do Orchard foi ou não explorada, mas atingir seu objetivo não depende do surgimento de tais evidências.
À medida que os usuários migram fundos do pool Orchard existente para o novo pool, qualquer falsificador hipotético enfrenta uma escolha: tentar mover fundos falsificados e arriscar expor sua existência, ou deixá-los para trás e arriscar não poder movê-los no futuro.
Isso cria dois resultados possíveis:
Resultado A: Nenhum ZEC excedente tenta sair do pool Orchard existente. Isso seria uma forte evidência de que a vulnerabilidade nunca foi explorada, já que um falsificador teria um forte incentivo para mover fundos falsificados antes que os usuários legítimos concluíssem suas migrações.
Resultado B: ZEC excedente tenta sair do pool Orchard existente. Nesse caso, os fundos excedentes não conseguiriam sair do pool e seriam efetivamente destruídos. Infelizmente, isso é necessário para preservar a oferta circulante atual em todos os pools. Isso também forneceria evidências publicamente verificáveis de que a falsificação ocorreu. Como acreditamos que a vulnerabilidade não foi explorada, achamos que esse resultado é improvável.
Carteiras
Recomendamos que todas as carteiras que suportam o pool Orchard existente adicionem suporte ao novo pool.
As carteiras devem continuar a suportar o pool Orchard existente normalmente até a ativação do Ironwood e, em seguida, migrar os fundos do usuário do pool Orchard existente para o novo pool. Embora a migração tenha implicações de privacidade (ou seja, expõe a quantidade de ZEC transferida e o momento em que a transferência ocorreu), acreditamos que o impacto na privacidade do usuário é modesto e pode ser ainda mais mitigado pelo comportamento da carteira.
Os receptores Orchard existentes (ou seja, endereços) permanecem válidos e não precisariam ser rotacionados. O ZEC enviado para receptores Orchard criados antes da ativação do Ironwood seria automaticamente recebido como ZEC no novo pool.
Cronograma
Como a maioria das atualizações de rede, o Ironwood exigirá desenvolvimento, teste, revisão e coordenação em todo o ecossistema. A experiência mostrou que esse trabalho geralmente leva mais tempo do que o esperado, portanto, acreditamos que é melhor ser conservador ao discutir prazos do que prometer demais e entregar de menos.
Uma fonte adicional de incerteza é a descontinuação em andamento do zcashd. Embora a Shielded Labs não tenha se envolvido diretamente nesse esforço, a migração de exchanges, pools de mineração, carteiras e outros provedores de infraestrutura para o Zebra pode afetar o cronograma desta atualização de rede.
Esperamos ter uma melhor compreensão do cronograma à medida que os planos de implementação amadurecem e as discussões continuam.
Conclusão
Queremos enfatizar que acreditamos ser improvável a exploração anterior da vulnerabilidade do Orchard. Mas os usuários não devem ter que confiar em nossa avaliação, ou na de qualquer outra pessoa, quando se trata da integridade da oferta de Zcash.
O Ironwood foi projetado para restaurar uma garantia da oferta circulante de Zcash que qualquer um pode verificar por si mesmo. Se a vulnerabilidade foi explorada ou não, o objetivo é o mesmo: tornar a integridade da oferta de Zcash algo que possa ser verificado.
Acreditamos que o Ironwood é o melhor caminho a seguir e estamos ansiosos para discutir esta proposta com a comunidade Zcash.
Agradecimentos
Agradecemos a Sean Bowe, Dev Ojha, David Campbell, Alex Bornstein, Nate Wilcox, Kris Nuttycombe, Vitalik Buterin, Balaji Srinivasan, e Taylor Hornby, Josh Swihart, e Tatyana pela revisão e feedback. Agradecimentos especiais a Kris Nuttycombe por sugerir que a atualização Ironwood desabilite transações que criam saídas no pool Orchard antigo. Isso se mostra crítico para que o Ironwood atinja seu objetivo.





