Direito Cripto/Nível V · Quem cria e quem lança/5.3 Promoção e responsabilidade/Lição 5
Auditorias de contratos inteligentes e o que elas prometem
O que uma auditoria de código realmente abrange, por que “auditado” não é uma garantia, quem pode confiar no relatório e como as afirmações sobre auditorias criam responsabilidade para os projetos.
É educação, não aconselhamento jurídico, tributário ou de investimento. O direito cripto varia entre países e estados e muda com frequência. Antes de agir, confirme as regras vigentes onde você mora com um advogado ou consultor tributário habilitado.
O caminho enxuto
A rota mais barata, com menos impostos, mais simples e mais privada que a lei permite, da melhor para a pior. Cada passo indica a regra em que se apoia e a condição que o mantém dentro da lei.
- Publique o código-fonte verificado em um block explorer e o hash do commit revisado. É gratuito e torna verificável qualquer alegação de auditoria, mas a alegação deve corresponder ao código implantado e não atualizado.
- Se você usar a palavra 'auditado', vincule o relatório completo e liste as constatações que permanecem em aberto. Omitir constatações graves não resolvidas pode ser enganoso nos termos do §5 do FTC Act, da Rule 10b-5 ou do artigo 7 do MiCA.
- Um projeto menor pode delimitar a revisão de forma estreita, apenas aos contratos implantados, e acrescentar um bug bounty público. As ressalvas do relatório limitam o que ele prova, então afirme apenas o que ele cobre.
- Uma empresa de auditoria só deve deveres de negligência ordinária ao seu cliente, nos termos de Bily (Cal. 1992), de modo que os compradores raramente conseguem se ressarcir junto aos auditores; os projetos continuam responsáveis por suas próprias alegações.
- Uma DAO de Utah precisa de uma revisão de segurança de seu código público para obter reconhecimento legal. Preveja orçamento para a revisão apenas se escolher esse invólucro.
MateriaisUma análise de segurança de contrato inteligente publicada, com sua seção de isenção de responsabilidade, como o relatório FraxGov de maio de 2023 da Trail of BitsO código-fonte verificado e o endereço do contrato implantado em um explorador de blocosBily v. Arthur Young & Co., 3 Cal. 4th 370 (1992), sobre a responsabilidade dos auditores perante terceiros
Curiosidade
- Se um contrato auditado for hackeado, os compradores podem processar o auditor?
- Uma auditoria abrange o código que está realmente em execução na cadeia?
- Um projeto pode ter problemas legais só por dizer que foi auditado?
Explorar
- Uma auditoria de contrato inteligente é uma revisão de segurança de uma versão específica do código de um projeto, feita por uma empresa externa e paga pelo projeto. Ela gera um relatório que lista as constatações por gravidade e, muitas vezes, as correções do projeto. A palavra vem da auditoria financeira, mas o produto é diferente: escopo, prazo e método são definidos por um contrato privado entre o revisor e o projeto. Os compradores geralmente veem apenas o relatório público. Os relatórios de prova de reservas, que algumas corretoras também chamam de auditorias, são outra coisa (lição 4.1.6).
- O próprio relatório declara seus limites. A revisão do FraxGov feita pela Trail of Bits em maio de 2023, por exemplo, diz que o trabalho seguiu uma declaração de escopo (statement of work), que as avaliações têm “tempo limitado” e dependem de informações do cliente, e que as constatações “não devem ser consideradas uma lista completa de problemas de segurança”. Também observa que as ferramentas automatizadas têm limites. As correções são rastreadas por commit, o identificador de uma versão específica do código, como em “Resolved in commit ed4e708”. Uma auditoria descreve, portanto, um código específico em um momento específico, e não o que for implantado ou atualizado depois.
- Código auditado ainda pode falhar. Em 13 de março de 2023, o protocolo de empréstimos Euler Finance perdeu cerca de 197 milhões de dólares. A causa foi a falta de uma verificação de saúde (health check) em uma função chamada donateToReserves, que havia sido acrescentada como parte da correção de um problema anterior e havia sido ela mesma auditada. A Euler disse que tinha sido auditada muito mais vezes do que o usual e que mantinha um programa de recompensa por bugs (bug bounty) de 1 milhão de dólares. Até 3 de abril de 2023, o atacante devolveu fundos no valor de cerca de 240 milhões de dólares, após semanas de negociação. As auditorias reduzem o risco; não o eliminam.
- Para um comprador que pensa em processar um revisor de código, o direito aplicável aos auditores financeiros mostra os obstáculos prováveis. Em Bily v. Arthur Young & Co. (1992), a Suprema Corte da Califórnia decidiu que a responsabilidade do auditor por negligência simples alcança apenas seu cliente. Terceiros só podem processar por declaração falsa negligente (negligent misrepresentation) se forem beneficiários do relatório especificamente visados e conhecidos pelo auditor, e por fraude intencional se fossem razoavelmente previsíveis. Um comprador de tokens que lê um relatório público geralmente precisaria de mais do que a prova de que o revisor foi descuidado.
- As palavras do próprio projeto sobre uma auditoria trazem mais risco. Dizer “auditado” ou “seguro” omitindo constatações graves não resolvidas, ou rodando um código diferente, pode ser uma afirmação enganosa. Se o token for valor mobiliário, isso pode fundamentar pedidos com base na Regra 10b-5 da SEC ou na seção 12(a)(2) (lição 5.3.2). Caso contrário, o FTC Act proíbe “atos ou práticas desleais ou enganosos” (lição 5.1.7), e, na UE, o artigo 7 do MiCA exige que o marketing seja “imparcial, claro e não enganoso”. O DAO Act de Utah, em vigor desde 1º de janeiro de 2024, chega a exigir uma revisão de segurança do código de uma DAO para o reconhecimento jurídico.
- Leia uma auditoria como um contrato, não como um selo. Verifique quem pagou, o que estava no escopo, quais constatações foram corrigidas, quais foram “reconhecidas” (acknowledged) e deixadas em aberto, e se os contratos podem ser atualizados ou pausados por uma chave de administrador (lição 5.1.5). Uma verificação prática: pegue o identificador do commit no relatório, abra o contrato implantado em um explorador de blocos e confirme que o código-fonte verificado corresponde à versão revisada e que nenhuma atualização posterior o substituiu. Se não corresponderem, o relatório diz pouco sobre o código em uso.
Fatos-chave
- Uma auditoria de contrato inteligente revisa uma versão específica do código, sob um contrato privado entre o revisor e o projeto.
- O relatório FraxGov de maio de 2023 da Trail of Bits afirma que suas constatações não devem ser consideradas uma lista abrangente de problemas de segurança.
- A Euler Finance perdeu cerca de 197 milhões de dólares em 13 de março de 2023 devido a uma falha em uma função auditada, e os fundos foram devolvidos até 3 de abril de 2023.
- Em Bily v. Arthur Young & Co. (1992), a Suprema Corte da Califórnia limitou a responsabilidade por negligência comum dos auditores aos seus clientes.
- Sob a jurisprudência de Bily, terceiros podem processar um auditor por declarações falsas por negligência somente nos casos em que sejam beneficiários especificamente previstos e conhecidos pelo auditor, ou por fraude intencional.
- O Decentralized Autonomous Organizations Act de Utah, em vigor desde 1º de janeiro de 2024, exige que o código publicamente disponível de uma DAO tenha passado por uma revisão de segurança.
Exercício nove, seis, três, um
Verificação de fatos
Datas, números e afirmações verificados com as fontes publicadas listadas abaixo.
- Trail of Bits: FraxGov Security Assessment (May 2023)
- Euler Finance: War & Peace, behind the scenes of Euler's $240M exploit recovery
- Bily v. Arthur Young & Co., 3 Cal. 4th 370 (1992), CourtListener
- 15 U.S.C. 45 (FTC Act s.5), Cornell LII
- Utah H.B. 357 (2023), Decentralized Autonomous Organizations Amendments
- Regulation (EU) 2023/1114 (MiCA), EUR-Lex