Quando comecei a criar o Curve Finance em 2019, tive a opção de fazer. Eu poderia ter seguido a tendência fashionable e usado a solidez, que é sem dúvida o idioma mais fashionable para contratos inteligentes do Ethereum. Mas, em vez disso, decidi escolher uma rota diferente, seguindo Vyper.
O idioma foi criado pela Vitalik Buterin para tornar o desenvolvimento do contrato inteligente o mais legível e conciso possível. Isso me lembrou a filosofia de Python, mas adaptada aos contratos inteligentes da Ethereum. E, como eu já period um grande fã de Python desde 2005, a decisão parecia óbvia.
É certo que não foi incontestado – havia muitos investidores que sugeriram que eu deveria reescrever tudo em solidez para obter seu apoio. Mas eu recusei e fiquei com a minha escolha. A segurança e a clareza do meu código eram mais importantes do que investimentos de curto prazo.
Por que não solidez, então?
Neste ponto, provavelmente é apropriado para muitos dos leitores perguntarem: Então, o que havia de errado com a solidez que eu não queria ir com isso?
Minha resposta para isso – já está mostrando rachaduras.
É verdade que a pura popularidade da solidez não pode ser ignorada – hoje, controla
Falando praticamente, o compilador da Solity é frequentemente atormentado por vários bugs, e eles parecem piorar a cada nova atualização. Por exemplo, o otimizador de bytecode da Solidity geralmente leva a erros inesperados. E embora haja tentativas de corrigir esses problemas, as soluções oferecidas até agora parecem correções temporárias mais do que qualquer coisa. E eles correm o risco de complicar ainda mais a máquina digital do Ethereum (EVM), empurrando -a em direção a uma dívida mais técnica.
O problema da dívida técnica
O acúmulo de “dívida técnica” é uma questão significativa em grandes projetos. Simplificando, trata-se de tomar atalhos-quando o código é escrito rapidamente, mas ineficazmente, para atingir as metas de curto prazo. Muitas vezes, significa pular estrutura e teste adequados e, com o tempo, esses atalhos se acumulam.
Camadas de código mal organizado e excessivamente complexo tornam o sistema mais difícil de manter e mais propenso a quebrar. Ao mesmo tempo, o custo de realmente consertar o código se torna enorme – e é quando a dívida técnica começa a arrastar todo o projeto para baixo.
Um dos exemplos mais conhecidos de como a dívida técnica pode sufocar até um projeto em larga escala é o Yahoo. Apesar de seu sucesso inicial, ao longo dos anos, a infraestrutura do Yahoo ficou sobrecarregada com sistemas herdados e correções rápidas. Eventualmente, a empresa não conseguiu acompanhar os concorrentes que estavam construindo bases de código mais limpas e mais ágeis. Até os desenvolvedores que trabalharam lá citaram dívidas técnicas e gerenciamento de código ruim, entre os motivos pelos quais o Yahoo perdeu sua vantagem competitiva.
A solidez corre o risco de seguir um caminho semelhante, uma vez que essa dívida tem crescido constantemente, especialmente dentro do próprio compilador. Em vez de refatorar a base de código e melhorar a lógica do núcleo, algumas correções – como a proposta do formato de objeto Ethereum (EOF) – visam corrigir questões como o erro “Stack muito profundo”, aumentando a complexidade no nível do EVM (ou, se é que alguma coisa, fixar a pilha “muito profunda” não é a melhor maneira de defender um graduado muito complexo de EVM inteiro). Mas isso adiciona apenas mais camadas a um sistema já complexo, aumentando apenas o risco de bugs futuros.
Vyper, em comparação, conseguiu manter a dívida técnica no mínimo. Houve alguns, mas foi gradualmente resolvido entre as versões 0.3.1 e 0.4.0. E a partir da versão 0.3.7, o idioma passou por melhorias significativas, incluindo refatoração interna completa e inúmeras auditorias de segurança.
A Fundação Ethereum (EF) também é ativamente
Projetado para ser claro
O que faz Vyper se destacar é o seu foco na clareza. Diferentemente da solidez, que geralmente exige que os desenvolvedores saltem entre diferentes partes do código para entender a imagem completa, o Vyper mantém o código relacionado em uma estrutura lógica e fácil de seguir. Essa abordagem facilita o entendimento e a auditoria. Essa clareza estrutural reduz o risco de erros, tornando o código mais seguro.
À medida que Vyper continua a melhorar, o idioma está ganhando mais atenção. Com o apoio da EF e mais financiamento injetado em seu desenvolvimento, Vyper agora é um candidato muito mais forte no mundo dos contratos inteligentes. Eu não ficaria surpreso se vissemos a criação de um compilador formalmente verificado em breve, em breve – se isso acontecer, ele poderá definir um novo padrão de segurança no ecossistema Ethereum.
E não são apenas os desenvolvedores que vêem o valor de Vyper. Pelo que posso dizer, muitos auditores que trabalham com o idioma preferem seu design e estrutura clara, pois facilita a identificação de problemas e o design de falhas. Seria mais difícil identificar em um código mais complicado.
Vyper também possui suporte robusto de ferramentas. Existem estruturas de teste como Titanoboa, APE, MOX e Brownie que facilitam a redação e o teste de código do vyper, usando bibliotecas Python para otimizar o processo.
Isso não quer dizer que Vyper não tenha mais desafios a serem superados. Não é tão amplamente utilizado quanto a solidez, e menos desenvolvedores estão escrevendo nele. Mas esta não é a primeira vez que uma língua minoritária enfrenta esse tipo de luta. Em 2005, Python period uma linguagem relativamente nicho, enquanto Java e PHP dominavam. Mas, com o tempo, a simplicidade e o poder de Python conquistaram a comunidade de desenvolvimento, especialmente com a ascensão da IA e da ciência de dados. Acredito que Vyper poderia seguir uma trajetória semelhante, especialmente quando mais pessoas começam a reconhecer seus benefícios.
Pensamentos finais
Se eu estivesse lançando uma nova empresa hoje, faria a mesma escolha. Eu ainda escolheria o Vyper porque me dá confiança de que meu código é seguro e legível. Pode não ser a opção mais fashionable no momento, mas Vyper é construído para o futuro. Se queremos mover o ecossistema Ethereum para o desenvolvimento de contratos inteligentes mais claros e seguros, o Vyper é uma ótima ferramenta para nos levar até lá.