Sobre o adiamento do Constantinople

Um dos hard forks mais aguardados da rede Ethereum, conhecido como Constantinople, foi adiado, ele é muito aguardado pois traz muitas melhorias como redução drástica nos custos de transação, diminuição da premiação por bloco minerado, a possibilidade de criação de transações off-chain com os state channels, atraso no Difficulty Bomb em 12 meses, ou seja, 12 meses sem alteração na dificuldade na mineração de blocos.

O hard fork aconteceria no dia 16/01/2019 no bloco 7.080.000, e foi adiado, 32 horas antes, do horário planejado para o hard fork.

O comunicado foi feito depois de um alerta sobre uma vulnerabilidade encontada pela empresa ChainSecurity, os detalhes podem ser encontrados nesta publicação do Medium.

De acordo com a empresa, a falha foi encontrada numa feature que seria implementada na Constantinopla, trata-se do EIP (Ethereum Improvement Proposal)  1283, que trata da diminuição em até 10x no valor do gás para algumas operações como armazenamento de dados, desta forma fica barato para um atacante instanciar o Smart Contract que foi criado antes da implementação do Hard Fork Constantinople, efetuar uma chamada de envio de valores e obter de volta estes valores de Ether.

Isto porquê antes do Constantinople, o custo de operações de storage era de cerca de 5000 gás, depois do hard fork o custo ficaria em torno de 200 gás, ou seja, o custo de chamar o método seria ínfimo perto da obtenção dos valores armazenados naquele contrato.

O problema foi apontado durante a madrugada pela empresa ChainSecurity,  às 03:09 Pacific Time, 09:09 horário de brasilia, somente às 14:52 os Core Devs foram alertados e chamados à tomar uma decisão.

A principal reunião foi das 16:15 até às 18:40 (horário de brasilia) , mas às 18:08 a decisão já havia sido tomada, seria adiato o hard fork Constantinople, para evitar possíveis danos aos contratos já publicados.

Todos os principais nós Ethereum, já haviam criado versões específicas para o hard fork, tiveram que criar novas versões de seus softwares, sem os updates do Constantinople:

Geth: 1.8.21
Parity: 2.2.7
Ethereum Harmony: 2.3

A decisão foi importante do ponto de vista de segurança, mostrou zelo com os rumos do Ethereum, o relatório se tornaria público rapidamente, ou ainda a descoberta seria feita por alguma das várias empresas que utilizam Ethereum, e poderia causar um grande problema para todo um ecosistema que utiliza a tecnologia.

Enfim, vamos aguardar os próximos comunicados, assim como as correções propostas para o EIP-1280.

Fontes:
https://blog.ethereum.org/2019/01/15/security-alert-ethereum-constantinople-postponement/
https://medium.com/chainsecurity/constantinople-enables-new-reentrancy-attack-ace4088297d9
https://pages.consensys.net/constantinople

Comentários

Postagens mais visitadas