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 verificarem 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 remediada 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 ser improvável que a vulnerabilidade tenha 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 capacidade imediatamente após a ativação do Ironwood, bastando somar os saldos dos pools ativos. Eles não precisariam raciocinar sobre incentivos ou ações de terceiros, 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 do 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, que 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 a base de código, usando técnicas como auditoria de segurança assistida por IA e verificação formal, todas visando assegurar 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 um turnstile.
Turnstiles são o mecanismo de contabilidade on-chain do Zcash para transferências entre pools. Eles rastreiam quanto ZEC entrou e saiu de cada pool e rejeitam qualquer transação que tente mover mais ZEC para fora do que entrou legitimamente.
Juntas, essas regras significam que os usuários não precisam esperar que todos, ou mesmo alguns, fundos do Orchard migrem. 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 sobre a solidez da oferta circulante de Zcash. O excesso de ZEC não pode circular secretamente entre 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 migrarem 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 excesso de ZEC 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: O excesso de ZEC 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 esse resultado improvável.
Carteiras
Recomendamos que todas as carteiras que suportam o pool Orchard existente adicionem suporte para o novo pool.
As carteiras devem continuar suportando 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, testes, revisão e coordenação em todo o ecossistema. A experiência tem mostrado que esse trabalho geralmente leva mais tempo do que o esperado, por isso 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 amadurecerem e as discussões continuarem.
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. Quer a vulnerabilidade tenha sido 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, 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 acaba sendo crítico para o Ironwood atingir seu objetivo.





