Com o lançamento muito antecipado da fase 0 do Eth2, uma das etapas principais é a comunidade decidir sobre um endereço de contrato de depósito canônico para iniciar o processo de gênese. Atualmente, há uma instância do bytecode de contrato de depósito implantado anonimamente na rede principal no endereço 0x00000000219ab540356cbb839cbe05303d7705fa. Membros da comunidade Ethereum estão tentando chegar a um consenso social sobre este endereço de contrato ser o endereço canônico para as fases Eth2 daqui em diante. Até onde sabemos, esta é a primeira e única instância do bytecode do contrato de depósito atualmente na rede principal Ethereum.
Este artigo é um anúncio das equipes Status e Nimbus sinalizando apoio para o contrato implantado no endereço acima para ser o contrato de depósito canônico para Eth2. Chegamos a essa decisão depois de verificarmos, independentemente, que o bytecode implantado no endereço do contrato é exatamente o mesmo que poderíamos reproduzir compilando o código-fonte do Solidity do contrato em uma construção local.
Estamos publicando este anúncio importante para notificar que estamos nos juntando a outros membros da comunidade Ethereum para apoiar o uso deste endereço de contrato de depósito Eth2 para o processo de gênese e além.
Verificação Independente
O contrato no endereço acima foi criado na data / hora Oct-14-2020 09:22:52 AM + UTC de acordo com Etherscan por uma transação com hash 0xe75fb554e433e03763a1560646ee22dcb74e5274b34c5ad644e7c0f619a7e1d0. O código-fonte do contrato foi verificado no Etherscan, onde observa que o contrato foi compilado usando o compilador Solidity versão v0.6.11 + commit.5ef660b1 e a otimização habilitada com 5000000 execuções.
As etapas a seguir descrevem nosso processo de verificação:
- Obtivemos o bytecode neste endereço na blockchain Ethereum usando o método eth_getCode (via Infura).
- Clonamos o repositório eth2.0-specs de https://github.com/ethereum/eth2.0-specs e seguimos as instruções de compilação do contrato de depósito.
- Baixamos a versão do compilador Solidity v0.6.11 + commit.5ef660b1 para Linux daqui.
- Compilamos deposit_contract.sol no repositório eth2.0-specs com este comando: solc --optimize --optimize-runs 5000000 --metadata-literal --bin-runtime deposit_contract.sol que nos deu o bytecode de tempo de execução para este contrato.
- Comparamos o bytecode obtido na Etapa (1) com o da Etapa (4) e descobrimos que são iguais.
Conclusão
O contrato de depósito Eth2 (que foi originalmente escrito em Vyper) foi reescrito em Solidity, revisado por especialistas em Solidity e depois verificado formalmente por Runtime Verification, conforme explicado nesta postagem do blog pela Ethereum Foundation. Agora ele foi implantado na rede principal no endereço 0x00000000219ab540356cbb839cbe05303d7705fa.
As equipes Status e Nimbus apoiam o contrato implantado neste endereço como o contrato de depósito canônico para Eth2.