A segurança e a precisão dos dados são sempre um tópico importante, mesmo no ambiente Web3, pois são um dos principais fundamentos. Neste artigo, mostraremos como você pode usar a Chainstack e o novo cliente leve (light client) Helios para não precisar confiar em terceiros.
O que é Helios
O Helios é um cliente leve Ethereum sem necessidade mínima de confiança, escrito em Rust pela a16z. Um cliente leve pode participar da rede blockchain sem precisar executar um hardware potente, mas não participa do consenso e não pode ser um validador.
Um nó leve fará download apenas dos cabeçalhos de bloco que contêm um resumo do conteúdo do bloco e verificará aleatoriamente alguns deles e, em seguida, confiará nos nós completos (full nodes) para recuperar o restante dos dados. Essa é uma observação importante porque muitos usuários e DApps dependem do provedor de nós para recuperar dados da blockchain e confiam que recebem as informações legítimas.
Mas agora, você não precisa confiar em ninguém; você pode operar sem necessidade mínima de confiança com o Helios.
Como o Helios funciona
O Helios é um cliente leve muito eficiente; ele sincroniza em poucos segundos e não exige nenhum armazenamento do seu computador, pois usa um ponto de extremidade (endpoint) de nó RPC completo para recuperar os dados necessários e fornecer acesso à blockchain.
O cliente Helios implementa camadas de execução e consenso, como a maioria dos clientes Ethereum, mas as duas camadas trabalham em conjunto, de modo que você só precisa instalar e usar um software.
A camada de consenso
O cliente leve da camada de consenso está em conformidade com as especificações do cliente leve da Beacon Chain e tem acesso aos comitês de sincronização da Beacon Chain. O comitê de sincronização é um grupo de 512 validadores selecionados aleatoriamente a cada 256 epochs (épocas), o que equivale a cerca de 27 horas. Isso é útil porque um validador que faz parte do comitê de sincronização assinará cada cabeçalho de bloco da Beacon Chain. Assim, se um número suficiente de validadores assinar um cabeçalho de bloco específico, é provável que o bloco seja o correto.
Dessa forma, o Helios pode rastrear o topo da cadeia solicitando uma assinatura do comitê de sincronização de um ponto de extremidade RPC não confiável.
A camada de execução
O objetivo da camada de execução aqui é usar os cabeçalhos de bloco provenientes da Beacon Chain e usá-los junto com uma camada de execução RPC não confiável para fornecer dados verificados. Este é um bom momento para mencionar que a Ethereum armazena todo o seu estado na forma de uma árvore Merkle-Patricia (MPT) gigante. Em poucas palavras, uma MPT nos dá uma maneira de verificar deterministicamente a autenticidade de pequenos pedaços de dados.
Uma árvore Merkle Patricia funciona de tal forma que, se sua raiz for publicamente conhecida e de confiança, a autenticidade de qualquer par chave-valor do banco de dados poderá ser verificada chamando uma "prova de Merkle". Isso nos permite autenticar pequenas quantidades de dados de cada vez, o que teoricamente poderia ser reproduzido para autenticar pedaços muito maiores de dados por meio de repetição e randomização.
O Helios usa uma raiz de estado autenticada da camada de consenso. Comparando-o com a camada de execução RPC não confiável, o Helios pode verificar os dados localmente.
Então, por que você usaria o Helios? Em teoria, um provedor de nós mal-intencionado poderia enviar-lhe os dados errados, comprometendo suas transações e sua experiência; observe que não há registro de tais ações por parte dos provedores de nós, mas isso é possível.
O uso do Helios como proxy entre você e o provedor de nós pode garantir que você esteja recebendo dados precisos.
Observe que o software do Helios ainda é experimental, e você deve ter cuidado ao usá-lo como seu principal método de comunicação com a blockchain ou para grandes transações, conforme mencionado no repositório do github do Helios.
Use a Chainstack com o Helios
Então, agora é hora da parte prática: mostraremos como você pode usar o Helios com um nó Chainstack e implementá-lo na MetaMask para usar somente dados verificados em suas transações.
Instale o Helios:
Faça download do instalador do Helios.
curl https://raw.githubusercontent.com/a16z/helios/master/heliosup/install | bash
A seguir, execute o instalador.
heliosup
Quando o processo for concluído, o Helios será instalado e você poderá verificar isso executando o comando -h
.
helios -h
Esse comando exibirá as opções disponíveis, como usá-las e como criar variáveis de ambiente.
cli
USAGE:
helios [OPTIONS]
OPTIONS:
-c, --consensus-rpc <CONSENSUS_RPC> [env: CONSENSUS_RPC=]
-d, --data-dir <DATA_DIR> [env: DATA_DIR=]
-e, --execution-rpc <EXECUTION_RPC> [env: EXECUTION_RPC=]
-h, --help Print help information
-n, --network <NETWORK> [default: mainnet]
-p, --rpc-port <RPC_PORT> [env: RPC_PORT=]
-w, --checkpoint <CHECKPOINT> [env: CHECKPOINT=]
Configure seu nó Chainstack
Agora que temos o Helios instalado, precisamos de um nó Ethereum da Chainstack para executá-lo. Você pode implantar um gratuitamente no plano de desenvolvedor.
Siga estas etapas simples.
- Inscreva-se com a Chainstack.
- Implante um nó.
- Visualize o acesso ao nó e cadastre-se com as credenciais da Chainstack.
Quando você tiver acesso ao Execution client HTTPS endpoint
(ponto de extremidade HTTPS do cliente de execução) e ao Consensus client HTTPS endpoint
(ponto de extremidade HTTPS do cliente de consenso) da Chainstack, estará pronto para iniciar o cliente Helios e configurá-lo na MetaMask.
Inicie o cliente leve Helios
Você pode iniciar o cliente Helios com o seguinte comando:
helios --execution-rpc EXECUTION_CLIENT_HTTPS_URL --consensus-rpc CONSENSUS_CLIENT_HTTPS_URL
Isso iniciará o cliente Helios e disponibilizará seu ponto de extremidade RPC em http://127.0.0.1:8545
.
O painel mostra onde o servidor RPC está sendo executado, o status e a estimativa de confiança entre as informações exibidas.
O campo “confidence” (confiança) mostra uma medida da porcentagem do comitê de sincronização que assinou o cabeçalho do bloco. Qualquer coisa abaixo de 66% é rejeitada, pois apenas um validador precisaria assinar o cabeçalho, o que é relativamente simples de falsificar. Acima de 66%, isso se torna exponencialmente mais complicado, portanto, essa é uma boa medida.
Observe que, nesse momento, o Helios requer o uso de RPCs de execução e de consenso. Você pode iniciá-lo apenas com o sinalizador --execution-rpc
; isso usará um cliente de consenso padrão fornecido pelo Helios.
helios --execution-rpc EXECUTION_CLIENT_HTTPS_URL
Observe que você também pode executar o Helios na Goerli; basta usar um nó Goerli da Chainstack e adicionar o sinalizador de rede --network
no final do comando.
helios --execution-rpc EXECUTION_CLIENT_HTTPS_URL --consensus-rpc CONSENSUS_CLIENT_HTTPS_URL --network goerli
Use o Helios com a MetaMask
Neste ponto, seu cliente leve Helios está em execução e pronto para interagir com a rede Ethereum, graças ao ponto de extremidade RPC da Chainstack. Agora podemos implementá-lo na MetaMask para garantir que os dados que usamos para enviar transações sejam verificados.
Neste exemplo, configurei uma rede Goerli.
Clique na aba Networks (redes) na MetaMask e clique em Add network
(Adicione uma rede) e depois em Add a network manually
(Adicione uma rede manualmente).
Preencha os parâmetros:
- Network name (pode ser o nome que quiser):
Goerli Helios Chainstack
- New RPC URL (Novo URL RPC):
http://127.0.0.1:8545
- Chain ID (ID da Cadeia):
5
para a Goerli e1
para a mainnet - Currency symbol (Símbolo da Moeda):
ETH
- URL do Explorador de Blocos(Opcional): o URL do Etherscan ou deixe-o em branco
Depois de salvar a nova rede, você poderá alternar para ela na MetaMask e usar seu ponto de extremidade seguro.
Não apenas MetaMask
A MetaMask é, de longe, a extensão de carteira mais comum, mas há outras opções disponíveis que você pode usar com a Chainstack. Portanto, agora vamos ver como podemos usar a Chainstack e o Helios com outras extensões de carteira.
Carteira Trust
A Trust é outra carteira popular de conta de propriedade externa (EOA) e você pode baixá-la no site da Trust Wallet. Como a MetaMask, a carteira Trust permite aos usuários configurar redes usando pontos de extremidade RPC personalizados. Assim, você pode usá-la facilmente com a Chainstack e o Helios.
Siga estas etapas para adicionar uma nova rede personalizada à sua carteira Trust.
- Vá até Settings (Configurações)
- Clique na aba Network (Rede)
- Clique em Add custom network (Adicione uma rede customizada)
A página com os detalhes da rede será aberta. Os campos a serem preenchidos são os mesmos da MetaMask, portanto, vamos configurar o RPC Helios na carteira Trust.
- Network name (pode ser o nome que quiser):
Goerli Helios Chainstack
- New RPC URL (Novo URL RPC):
http://127.0.0.1:8545
- Chain ID (ID da Cadeia):
5
para a Goerli e1
para a mainnet - Currency symbol (Símbolo da Moeda):
ETH
- Block explorer URL (Opcional): o URL do Etherscan ou deixe-o em branco
Agora você está preparado e pronto para usar a Chainstack e o Helios com a carteira Trust. O Site de suporte da carteira Trust informa que não mantém nenhuma informação pessoal, portanto, essa extensão pode ser uma boa opção se você estiver preocupado com a privacidade.
Frame
Frame é uma carteira Ethereum orientada à privacidade; Ela é executada como um aplicativo de desktop disponível no macOS, Linux e Windows e se conecta à extensão do navegador, permitindo que você interaja com DApps. Em sua maior parte, a Frame funciona como qualquer outra carteira EOA. Ainda assim, ela inclui recursos extras valiosos, como contas só de leitura e a capacidade de ser injetada como um emulador MetaMask.
As contas somente de leitura permitem essencialmente que você defina as permissões dos DApps. Por exemplo, você pode configurar uma conta que pode interagir com um DApp, mas não pode assinar transações, aumentando a segurança.
A extensão Frame pode ser injetada em seu navegador "como a MetaMask". Isso significa que ela pode emular a MetaMask, permitindo que você interaja com qualquer Dapp, mas com a segurança e as funções extras da carteira Frame.
A carteira Frame oferece muitas ferramentas para proteger e personalizar sua experiência Web3, incluindo a possibilidade de ativar/desativar redes e configurar pontos de extremidade RPC primários e secundários.
Para usar a Frame com o Helios e a Chainstack, basta configurar uma rede personalizada em seu aplicativo Frame para desktop.
Depois de configurar sua conta, clique no ícone Chains e clique em ADD CHAIN. Os campos a serem preenchidos são os mesmos, mas com a possibilidade adicional de acrescentar um ponto de extremidade RPC secundário para redundância e selecionar o tipo de cadeia.
No exemplo a seguir, configurei a rede de teste Goerli na Frame, usando o Helios como ponto de extremidade primário e um ponto de extremidade Chainstack como um secundário.
Observe que a Frame ainda está na versão beta, portanto, pode ser difícil usá-la em algumas situações.
Conclusão
Softwares como o Helios têm um excelente potencial para melhorar a segurança e a experiência geral da Web3, pois podem ser integrados diretamente em DApps e carteiras graças ao suporte do Rust para WebAssembly
. Isso permite que os desenvolvedores incorporem o Helios em aplicativos JavaScript.
- Descubra como economizar milhares em custos de infraestrutura todos os meses com nossos preços imbatíveis, na mais completa plataforma de desenvolvimento Web3.
- Insira sua carga de trabalho e veja como a Chainstack é acessível comparada a outros provedores de nó RPC.
- Conecte-se às redes principais e de teste Ethereum, Polygon, BNB Smart Chain, Avalanche, Arbitrum, Optimism, Oasis Sapphire, NEAR, Aurora, Solana, Polygon zkEVM, Aptos, Gnosis Chain, Cronos, Filecoin, Fantom, StarkNet, Harmony, Tezos e Fuse por meio de uma interface projetada para ajudá-lo a realizar o trabalho.
- Para saber mais sobre a Chainstack, visite nosso Portal do Desenvolvedor ou junte-se a nosso Discord e Telegram.
Você já explorou o que pode conseguir com a Chainstack? Comece hoje gratuitamente.
Esse artigo foi escrito por Davide Zambiasi e traduzido por Fátima Lima. O original pode ser lido aqui.
Oldest comments (0)