Para discutir a temática de vulnerabilidades na rede Ethereum, foi realizado um Meetup sobre Segurança em Blockchain, que foi uma live ao vivo realizada gratuitamente na segunda 26 de novembro de 2018.
O especialista em Ethereum, Fábio Hildebrand, explicou que apesar de a maturidade do ecossistema ter aumentado, ataques a smart contracts continuam acontecendo. Ataques recentes à SpankChain, Useless Ethereum Token, e Fomo3d foram mencionados..
De acordo com Fábio, desenvolvedores de SM devem sempre testar a segurança de suas aplicações, escrever as documentações de forma detalhada, e se necessário (para contratos que transacionem altos valores), contratar auditores externos para conferir o código ou ainda abrir um processo de Bug Bounties.
Uma dica de Fábio também, é procurar se engajar com a comunidade de desenvolvedores, que em alguns casos fazem uma auditoria de qualidade e de forma grátis nos diversos projetos criados que tenham um impacto positivo para a comunidade.
Abrir um canal para receber notificações de ameaças no código para todas as iniciativas é importante, mesmo que apenas um e-mail (básico), pois abrir um Issue no GitHub e tornar a vulnerabilidade pública pode ser prejudicial para projetos, principalmente até que os mesmos sejam resolvidos, podendo ser explorados por atacantes externos atentos.
Para melhorar a segurança dos SC, foi criada em 2017 a iniciativa Solidified, que confere a segurança e auditoria dos contratos, sendo Fábio um dos técnicos da iniciativa que trabalha direto do Brasil. Qualquer especialista em segurança blockchain pode ser um auditor e receber recompensas pelo seu trabalho. O processo hoje é executado de forma manual, mas uma Dapp está em desenvolvimento, com previsão de lançamento em 2020. A solução acompanhará a plataforma de bug bounties (já em funcionamento em web.solidified.io) e dum mercado de predição de bugs.
A Solidified criou um ambiente na Amazon AWS para desenvolvedores interessados em auditar códigos como treino, que é um projeto educacional no estilo capture the flag.
Outro palestrante do Meetup sobre segurança foi o Everton Melo, que detectou um Bug na OmiseGo e outro na PIVX, e recebeu os créditos por seu trabalho de ambas as equipes.
Everton, que palestrou também na Roadsec 2018 em São Paulo com a palestra “Como hackear uma blockchain“, falou também sobre a proposta da ISO / TC 307, que é uma proposta para padronizar aplicações blockchain e DLTs.
Um outro ponto de sua fala é a analise do Github do Bitcoin Core, Bitcoin Cash e Bitcoin Gold, que de acordo com o analista possuem muitas diferenças, destacando que o Core possui inúmeras vantagens no ambiente open, além de controle de versão superior a seus forks.
De acordo com Everton, as tecnologias devem ser sempre analisadas por seu GitHub, visto que o ponto forte das criptomoedas é o seu código fonte aberto, e que quando detectadas falhas nos projetos, as comunidades devem aceitar e buscar corrigir os problemas sem ataques ao desenvolvedor auditor. O palestrante citou o problema com uma comunidade ao indagar as bases da cripto, que além de não ter acatado as suas críticas, atacou pessoalmente o desenvolvedor.
De acordo com Everton, o Bitcoin Core possui uma enorme lentidão ao confirmar falhas devido a complexidade do projeto, e quando detectadas devem ser apontadas pelo auditor a versão do código do qual foram detectadas falhas, para facilitar o trabalho de correção das mesmas e dar mais credibilidade ao seu trabalho.
Além disso, destacou o problema do OverFlow presente no código do Bitcoin, que inclusive foi destaque em um Twitter de Jimmy Song recentemente.
Para finalizar, Everton destacou que dentre os inúmeros projetos que existem no cenário atual, o que ele mais acredita no longo prazo seria o que une o Ethereum com a Zcash, chamado projeto Alchemy.
Em um mercado com inúmeras criptomoedas, existem várias com boas ideias, mas com execuções que não são boas, logo ficar atento ao investir em projetos é importante, destaca Melo.
Para quem possui o interesse em aprender a linguagem de programação Solidity há várias opções na web gratuitas, e tende a ser uma das linguagens mais utilizadas por desenvolvedores de blockchain nos próximos anos.
Estudar segurança da informação também é muito importante, a fim de evitar problemas com Dapps e Smart Contracts, pois como a Blockchain é imutável, após finalizar a programação e colocar os mesmos na rede fica difícil a correção de bugs no ambiente.
Para Fábio, o ataque em contratos na TestNet é difícil, mas no ambiente da MainNet e principalmente que envolve valores, os atacantes podem ter mais incentivos nas suas ações, de qualquer forma cautela nunca é demais.
O encontro ainda foi disponibilizado na íntegra no YouTube para quem quiser acompanhar, e o estudo sobre segurança e blockchain no Brasil é super importante e ganha mais um grande capítulo.