Uma das primeiras linguagens de contratos inteligentes da Ethereum pode se aposentar

A Serpent, uma das primeiras linguagens contratuais inteligentes da Ethereum, não é mais segura de usar.

Esse pode ser o maior takeaway de uma auditoria da linguagem compilada da serpent Ethereum, lançada na semana passada pela empresa de segurança em blockchain Zeppelin Solutions. Os resultados apontam dezenas de problemas, incluindo oito vulnerabilidades críticas.

Zeppelin foi contratado pelo Augur, um negociador de Ethereum, para realizar a auditoria há dois meses. Com quase US $ 2 milhões de seu token (REP) em um contrato escrito na Serpent, Augur teve boas razões para se preocupar com a segurança da linguagem compilada.

Augur foi um dos primeiros projetos de ethereum, e no momento em que seu contrato foi escrito, a Serpent era a principal linguagem inteligente disponível. Mas logo depois, a Solidity foi introduzida e assumiu a linguagem de programação do contrato inteligente da ethereum.

Mesmo assim, o CEO da Augur, Joey Krug, disse que havia poucas advertências públicas sobre possíveis problemas que impediriam que a Serpent executasse o código como esperado.

Ele disse ao CoinDesk:

“Ninguém nunca disse que a Serpent era insegura ou depreciada. Só não era tão popular como a Solidity”.

Assim que o Zeppelin notificou a Augur dos problemas de segurança envolvidos, a empresa moveu-se rapidamente para migrar seus tokens REP para um contrato de token ERC-20 seguro escrito em Solidity.

‘Baixa qualidade’ e ‘defeituoso’

Para outros, se perguntando se eles deveriam seguir o exemplo, a Zeppelin Solutions divulgou os resultados completos de sua auditoria em um relatório de 36 páginas.

Em uma postagem no blog, Zeppelin chamou o projeto Serpent de “baixa qualidade” e “defeituoso” e advertiu os desenvolvedores a não usar o idioma até que seus muitos problemas críticos fossem corrigidos.

A notícia levou o fundador do ethereum, Vitalik Buterin, a enviar um tweet, chamando a linguagem de programação de “tecnologia desatualizada” e advertindo que não possuía “proteções de segurança” adequadas.

Quanto ao Augur, a vulnerabilidade Serpent mais crítica era a que permitia um hacker mudar a data em que o contrato token REP foi criado, essencialmente congelando o fornecimento de token.

Se a Serpent tivesse apenas esse único problema, Krug disse que teria consertado o código e continuou usando o idioma por enquanto. Mas o número de problemas revelados pela auditoria foi muito alto.

Então, em vez disso, seguindo um caminho de atualização delineado por Zeppelin, Augur mudou-se para reescrever o seu antigo token REP em Solidity e implementar o novo contrato ERC-20 no ethereum. Em seguida, efetivamente pirateou seu próprio contrato inteligente Serpent, congelando o token REP, antes de migrar o saldo do REP congelado para o novo contrato.

Em uma postagem de blog separada, Zeppelin pediu que todos os projetos de ethereum que ainda utilizem a Serpent migrem seus tokens para um contrato mais seguro com a Solidity.

Zeppelin escreveu em seu relatório:

“Menos olhos no código significam menos erros sendo percebidos”.

O relatório Zeppelin afirma que a Solidity é a melhor empresa disponível hoje. No entanto, também sugere que os desenvolvedores considerem Viper, um sucessor da Serpent, afirmando que a Viper “parece superior” à Serpent. Mas em um tweet, os desenvolvedores recomendados pela Buterin impedem que a Viper passe uma auditoria externa primeiro.

Auditoria da Solidity?

Mas um ponto de atenção é que a Zeppelin não auditou a Solidity. E dado que milhões de dólares de tokens são atualmente administrados por contratos inteligentes escritos em Solidity, alguns, inclusive Krug, acham que as notícias são inquietantes.

Adicionando às preocupações sobre a Solidity, a auditoria do compilador do Zeppelin encontrou um salto de US $ 30 milhões da carteira Parity, onde um erro no código Parity permitiu essencialmente ao hacker transformar três carteiras de assinatura múltipla em carteiras de assinatura zero e drenar os fundos.

Em uma postagem no blog após esse ataque, Parity apontou que “algumas culpas por este erro reside na linguagem Solidity e a dificuldade com a qual podem entender as permissões de execução sobre as funções”.

Mas um roubo de ethereum ainda maior ocorreu um pouco mais do que um ano atrás, quando um hacker aproveitou uma lacuna no código da Solidity para retirar US $ 50 milhões em ethereum de um projeto chamado The DAO. O dano foi considerado tão extenso, que os desenvolvedores por trás do ethereum implementaram um hard fork no protocolo para reverter seu histórico de transações.

As auditorias de código de software são um requisito em muitas indústrias críticas, e Demian Brener, CEO da Zeppelin, pensa que o mesmo caso deve ser feito para o código do contrato inteligente.

“Dado o número de vulnerabilidades descobertas na Serpent, acreditamos que auditorias de compilação, juntamente com auditorias de código, devem se tornar uma prática recomendada”, ele escreveu em um e-mail para o CoinDesk. E acrescentou que o Zeppelin está atualmente conversando com a Fundação Ethereum para fazer isso acontecer.

Enquanto isso, Krug resumiu seus próprios pensamentos sobre o assunto dizendo: “No geral, muito mais coisas devem ser auditadas”.

 

Fonte: Coindesk