DeFi tem o potencial de ser um lugar selvagem às vezes. Protocolos aparentemente à prova de balas podem resistir em um instante ou sofrer explorações das quais os preços dos tokens nunca se recuperarão.
De acordo com a missão de conscientização de segurança do The Defiant , vou descrever algumas dicas sobre como identificar um desastre potencial antes que ele aconteça. Passo meus dias identificando como os projetos conduzem o desenvolvimento e medindo como eles acabam implantando seu código. Depois de avaliar mais de 200 protocolos, coletamos alguns insights para identificar práticas de desenvolvimento ruins em DeFi.
CONFIRA: Cotações das criptomoedas
A Inverse Finance e a Axie Infinity sofreram recentemente explorações que resultaram em perdas significativas de fundos. Katana, a única exchange descentralizada na cadeia Ronin da Axie que foi desenvolvida pela mesma equipe (com as mesmas práticas de desenvolvimento), obteve 5% em nossa avaliação. Inverse marcou muito melhor , mas ainda ficou para trás em algumas áreas críticas. Ambos não foram auditados, não tinham recompensas de bugs e forneceram provas extremamente limitadas de teste ou nenhuma. Katana era especialmente opaca quando se tratava de explicar como funcionava. Apesar de identificar esses problemas, essas explorações ainda aconteceram e os usuários ainda perderam suas economias de vida.
Com esta lista de verificação, quero armar você – o humilde macaco/agricultor/degen – com algumas dicas e truques personalizados para seu perfil de risco enquanto você navega no campo minado DeFi.
Observe que nenhuma dessas verificações é a solução perfeita que pode garantir uma experiência DeFi completamente segura. DeFi continua sendo um local incrivelmente arriscado e um protocolo pode facilmente atender a todas essas verificações e ainda assim ser explorado. Por favor, use esta lista de verificação como uma lista não prescritiva e certifique-se de sempre conduzir sua própria diligência antes de fazer o macaco.
Posso encontrar o repositório do GitHub? Está bem delineado?
Vamos começar com a pergunta mais fundamental que você deve se fazer antes de interagir com qualquer contrato. Posso encontrar o repositório do GitHub que o protocolo usa?
Para os não iniciados, o GitHub é um site que as equipes usam para coordenar o desenvolvimento de software. Você deve encontrar facilmente o GitHub de uma equipe pesquisando o nome de um protocolo, seguido por GitHub.
A principal pergunta que você deve fazer aqui é se é público. Vamos comparar os exemplos do repositório GitHub do Bancor e o do Grim Finance , que foi explorado por US$ 30 milhões em dezembro de 2021. Veja como o repositório do Bancor é bem desenvolvido: várias pastas, uma visão geral do protocolo README.md, colaboradores públicos, 4000 + submissões. Compare isso com o da Grim Finance – é privado. Você não tem ideia com quais contratos está interagindo.
O que é especialmente importante notar é que os repositórios privados tornam as auditorias inúteis, porque você nunca pode ter certeza de que os contratos que os desenvolvedores implantaram são os mesmos que os auditores analisaram se você não puder verificá-los por conta própria. A transparência é uma parte importante do desenvolvimento DeFi: leva a um código mais forte, permitindo que todos o examinem. Os repositórios privados impedem a transparência e minam o espírito de código aberto da web3.
O protocolo está bem documentado?
A propriedade do contrato é identificada? Uma segunda etapa é navegar pela documentação do protocolo. Isso geralmente é vinculado à página principal do site e pode ser escrito no GitBook ou em um meio semelhante. Ele deve fornecer uma visão geral de alto nível de como o protocolo funciona e outras informações relevantes escritas em linguagem simples para que você ou eu possamos entender o que estamos prestes a usar.
Um bom exemplo disso é o PancakeSwap: veja como são fofos e compreensíveis os pequenos wabbits!
Uma boa documentação significa que o protocolo conhece seu código de dentro para fora. Os protocolos podem facilmente bifurcar outros protocolos com pouca ideia de como as coisas funcionam, o que pode aumentar a probabilidade de um incidente. Documentação relevante geralmente significa que eles a entendem, pois podem sintetizar a informação em algo mais digerível.
Uma área-chave para permanecer especialmente vigilante é se os proprietários e as permissões dos contratos com os quais você está interagindo estão listados ou não. Alguns contratos podem ser alterados à vontade, o que pode expor seus fundos a novos riscos. Certifique-se de se sentir confortável com quem está no controle: só porque você vê outras pessoas confiando em um protocolo não significa que é seguro. Veja como o Tracer declara explicitamente que seu DAO é o proprietário de seus contratos.
Você também deve ficar atento aos endereços do contrato. Verifique se eles são os mesmos com os quais você está interagindo no site do protocolo. A Gearbox declara e vincula-os explicitamente ao etherscan para que você mesmo possa verificá-los. Essa ação simples poderia ter ajudado os usuários a evitar o ataque de front-end do BadgerDAO no qual US$ 120 milhões foram levados.
O código é auditado?
Uma terceira verificação que você deve realizar é ver se o código foi auditado. As firmas de auditoria fornecem um novo par de olhos valiosos sobre o código que você deseja usar. A auditoria deve ser pública e os contratos revisados pelos auditores devem ser listados. Veja se a auditoria destacou algum problema e se foi resolvido, como a auditoria do 0x Protocol onde um problema foi identificado e depois corrigido.
Destacado em vermelho está um problema importante que foi identificado e em verde que foi corrigido. Os principais problemas podem resultar na perda de fundos do usuário, por isso é fundamental que o 0x Protocol tenha um segundo par de olhos para verificar seu código.
Outras perguntas que você pode considerar fazer são:
- A auditoria é detalhada ou uma inspeção superficial?
- Quantas pessoas trabalharam na auditoria?
- Quanto tempo a auditoria levou para ser realizada?
- A auditoria foi realizada antes da implantação do código?
- Existe um detalhamento técnico dos problemas encontrados?
Embora as auditorias não sejam infalíveis, elas fornecem uma camada adicional de segurança.
Existe um Bug Bounty?
A penúltima verificação que você deve executar é se há uma recompensa por bug. Os protocolos geralmente reservam fundos para que os hackers tenham uma maneira de identificar explorações para os desenvolvedores sem realmente usá-los. Ao executar esses programas, exércitos de hackers de chapéu branco são direcionados para testar os protocolos. Recompensas maiores atraem mais atenção, levando a mais testes e, eventualmente, a um código melhor. Esses valores costumam ser de dar água nos olhos para garantir que os hackers usem esses programas.
Como prova da eficácia desses programas, veja como a armor.fi aumentou sua recompensa de US$ 27 mil para US$ 700 mil . Um dia depois, um bug que poderia ter travado o protocolo foi identificado e corrigido. Esses programas ajudam bastante a garantir que o código se torne mais seguro, o que significa que seus fundos também estarão mais seguros.
A equipe de desenvolvimento é pública e se envolve proativamente com sua comunidade? A verificação final que você deve fazer é na própria equipe de desenvolvimento. Alguns desenvolvedores permanecem anônimos, enquanto outros revelam suas identidades. As equipes de desenvolvimento público hesitarão antes de roubar seus fundos, pois seus nomes serão manchados por isso para sempre. As equipes anônimas não têm o mesmo desincentivo. Embora seja importante lembrar que alguns desenvolvedores anônimos são os contribuidores mais valiosos do DeFi, você deve equilibrar isso com sua capacidade de desaparecer. Em suma, os desenvolvedores públicos são responsabilizados por meio de suas identidades públicas.
Boas equipes também devem valorizar a comunicação e facilitar o contato com elas. É uma válvula de escape importante para reclamações e sugestões – tudo isso fortalece o protocolo. Um canal de discórdia ou telegrama da comunidade deve ser vinculado em seu site, permitindo que você faça perguntas. Você consegue ver alguém tentando entrar em contato com um gerente de comunidade ou até mesmo um desenvolvedor? Eles são úteis/amigáveis? Eles descartam suas preocupações? Todas essas são considerações importantes.
Usando este guia, você poderá concluir algumas verificações rápidas de última hora antes de aprovar suas transações e, com sorte, ficar um pouco mais seguro como resultado.