Clientes sem Estado: Um Caminho para a Descentralização no Ethereum

PrincipianteDec 25, 2023
Este artigo fornece uma introdução detalhada à solução descentralizada da Ethereum, o cliente sem estado, e também explica o que é o estado, bem como os seus antecedentes, princípios e soluções.
Clientes sem Estado: Um Caminho para a Descentralização no Ethereum

À medida que a utilização do Ethereum aumenta, a execução de um nó completo torna-se mais intensiva em recursos e uma utilização intensiva de largura de banda. Isso resulta em menos pessoas conseguindo executar nós completos, reduzindo a descentralização da rede. Além disso, o Ethereum luta para escalar à medida que a procura de transações aumenta, levando ao congestionamento da rede e a altas taxas de gás.

Os clientes sem estado propostos pela Vitalik em 2017 oferecem uma solução potencial para ambos os desafios de descentralização que o Ethereum enfrenta. A ideia chave por trás dos clientes sem estado é reduzir os requisitos de armazenamento e largura de banda para a execução de um nó completo, tornando viável que mais pessoas participem e descentralizem a rede. Este ensaio fornecerá uma análise aprofundada de como os clientes apátridas funcionam e dos seus potenciais benefícios e desvantagens.

O que é o Estado Ethereum?

Para entender os clientes apátridas, primeiro precisamos entender o conceito de “estado” no Ethereum. O estado Ethereum refere-se ao estado atual de todas as contas, contratos, saldos, nonces e armazenamento no mundo Ethereum. Pode ser pensado como uma base de dados que armazena toda a informação relevante sobre a rede Ethereum num determinado momento.

O estado persiste numa trie Merkle Patricia, que é essencialmente uma árvore Merkle modificada que armazena pares de valor-chave. O hash raiz desta trie resume todo o estado. Após cada novo bloco, o estado é atualizado com base nas transações nesse bloco. O novo hash raiz de estado está incluído no cabeçalho do bloco.

À medida que mais contas, contratos e transações são adicionados ao longo do tempo, o estado Ethereum fica cada vez maior. Hoje, o tamanho do estado é superior a 1 TB e aumenta dezenas de gigabytes por ano. Este estado em crescimento está na base dos problemas com a descentralização.

Porque é que o crescimento do Estado causa problemas

O aumento do tamanho do estado Ethereum causa vários problemas chave:

  • Tempos de sincronização mais longos para novos nós - Demora muito tempo para um novo nó sincronizar processando todas as alterações de estado históricas. Isto dificulta a descentralização ao dificultar a execução de novos nós completos. A sincronização de um novo nó da génese leva atualmente vários dias, até semanas, no hardware do consumidor. Isso representa uma grande barreira para a criação eficiente de novos nós e para permitir que mais participantes se juntem à rede.
  • Requisitos de hardware aumentados - Um estado maior requer mais armazenamento, memória e poder de processamento para armazenar, aceder e atualizar. Isso bloqueia utilizadores com menos recursos de executar nós. No mínimo, executar um nó Ethereum totalmente sincronizado requer agora um SSD com 1-2TB de capacidade. Isto está fora do alcance de muitos potenciais operadores de nós.
  • Mais uso de largura de banda - As transmissões de novos blocos também devem incluir o estado atualizado, exigindo mais largura de banda. Isto aumenta os custos para os operadores de nós. Atualmente, o estado domina a maioria das transmissões em bloco, então os tamanhos dos blocos continuam a crescer. Mais largura de banda traduz-se em custos mais elevados para os operadores de nós.
  • Verificação de bloco mais lenta - Ler e atualizar um estado maior torna a verificação do bloco mais lenta, limitando a taxa de transferência da transação. Cada transação requer várias leituras e gravações de armazenamento para atualizar saldos, nonces, estado do contrato, etc. Um estado maior significa mais leituras/gravações por bloco, reduzindo quantas transações podem ser processadas por segundo.
  • Custos de armazenamento permanente - Uma vez que os dados são adicionados ao estado, devem ser armazenados para sempre. Isto cria um crescimento ilimitado do Estado. Atualmente, não existe nenhum mecanismo para apagar ativamente dados de estado antigos e não utilizados. Portanto, os custos de retenção do estado aumentam indefinidamente enquanto o Ethereum continuar a operar.

Clientes sem Estado Explicados

Os clientes sem estado fornecem uma maneira de verificar novos blocos sem precisar de acesso ao estado Ethereum completo. Utilizam provas criptográficas chamadas “testemunhas” que provam a validade das alterações de estado num bloco, sem ter os dados do estado subjacentes.

Veja como os clientes apátridas trabalham a um nível elevado:

  • O cliente armazena apenas cabeçalhos de bloco e raízes de estado, não dados de estado completos. Os cabeçalhos de bloco contêm metadados como o hash raiz do estado trie depois que esse bloco é processado.
  • Ao verificar um novo bloco, o cliente recebe uma “testemunha” junto com o bloco. Esta testemunha é um conjunto de provas da Merkle que demonstram que as atualizações de estado específicas das transações são válidas.
  • A testemunha contém provas Merkle de valores estatais específicos necessários para processar transações. Por exemplo, saldos de conta ou armazenamento de contrato atualizados.
  • O cliente usa a testemunha para garantir que as transações são válidas contra a última raiz de estado conhecida. As provas autenticam que as alterações de estado correspondem à raiz anterior.
  • Se válido, o cliente atualiza para a nova raiz de estado fornecida no cabeçalho do bloco. Esta nova raiz de estado será usada para verificar o próximo bloco.

Ao usar testemunhas para verificar o estado em vez de armazenar o estado completo localmente, os clientes apátridas ganham várias vantagens:

  • Tempo de sincronização muito rápido - não há necessidade de reproduzir alterações históricas de estado. Um cliente sem estado pode sincronizar quase instantaneamente apenas com os cabeçalhos de bloco.
  • Requisitos baixos de armazenamento - as raízes estaduais são apenas 32 bytes. Em vez de centenas de GB de estado, apenas são necessários cabeçalhos de bloco.
  • Menos largura de banda - apenas cabeçalhos de bloqueio e testemunhas transferidos, não estado completo. O uso da largura de banda é minimizado.
  • Verificação rápida - as testemunhas contêm apenas pequenos subconjuntos estaduais relevantes. Apenas as contas atualizadas/armazenamento tocadas são provadas.
  • Suporte fácil ao cliente leve - os clientes leves podem verificar facilmente as provas. O modelo de cliente leve é muito compatível com a verificação sem estado.

Desafios com Clientes sem Estado

Embora os clientes apátridas possibilitem alguns benefícios importantes, também existem desafios técnicos significativos a superar:

  • Tamanho da testemunha - as testemunhas podem ser demasiado grandes para transmitir eficientemente. Se forem utilizadas provas completas da Merkle, podem exceder os limites de tamanho do bloco.
  • Criação de testemunhas - gerar testemunhas ideais é complexo para proponentes de blocos. Os proponentes devem montar os fragmentos de prova certos para verificar cada transação.
  • Sem incentivos a testemunhas - fornecer testemunhas não ganha recompensas diretas. Ao contrário da mineração, não existe uma estrutura de incentivo integrada para a criação de testemunhas.
  • Dados temporários - testemunhas provam o estado num determinado momento, exigindo regeneração. As testemunhas não podem ser reutilizadas à medida que o estado avança.
  • Armazenamento estatal - alguém ainda precisa manter o estado completo para produzir testemunhas. A verificação apátrida depende da geração de testemunhas com estado.
  • Aplicações complexas - alguns contratos podem depender de grandes subconjuntos estatais, testemunhas inchadas. Por exemplo, contratos que atualizam muitos slots de armazenamento por transação.

Possíveis soluções

Os investigadores propuseram várias soluções para enfrentar estes desafios:

  • Verkle trees - estruturas de dados especiais para reduzir o tamanho das testemunhas. As árvores Verkle usam compromissos criptográficos sucintos para minimizar o tamanho da prova.
  • Caches de testemunhas - os proponentes podem manter testemunhas recentes para reutilizar. O armazenamento em cache de testemunhas que provavelmente serão relevantes novamente amortiza os custos de criação.
  • Incentivos de protocolo - mecanismos de recompensa para fornecer testemunhas úteis. Novas estruturas de incentivo podem compensar a criação de testemunhas.
  • Raízes de estado intermédio - rastreie raízes ao longo do tempo para evitar a regeneração de provas. Manter raízes parciais pode reutilizar fragmentos de testemunhas.
  • Renda estatal - exigir pagamentos para manter o estado a longo prazo, podando o estado não utilizado. O aluguel força a limpeza do armazenamento obsoteado para limitar o tamanho da prova.
  • Modelo de testemunha particionada - tratamento de estado dividido entre proponentes e verificadores. Alguns nós proponentes dedicados geram testemunhas.

Existem compensações entre estas abordagens e são necessárias mais pesquisas para descobrir implementações ideais. Felizmente, a rápida inovação que acontece na criptografia de conhecimento zero pode abrir novas possibilidades para clientes sem estado eficientes.

Impacto Potencial

Se os obstáculos técnicos puderem ser superados, os clientes apátridas poderão avançar significativamente o Ethereum:

  • Sincronizações e verificações mais rápidas para suportar maior taxa de transferência de transações. A validação sem estado irá acelerar drasticamente o processamento de blocos.
  • Requisitos de recursos reduzidos para executar nós, melhorando a descentralização. Computadores portáteis e entusiastas podem executar nós completos de forma realista.
  • Melhor suporte para clientes leves como carteiras móveis. As provas de estado são altamente compatíveis com o modelo de cliente leve.
  • Introdução mais suave de sharding, com verificação apátrida entre estilhaços. As transações entre estilhaços podem utilizar provas de estado eficientes.
  • Capacidade de apagar e remover dados antigos do estado que já não são úteis. O crescimento do Estado pode ser gerido ativamente em vez de ilimitado.
  • Mais flexibilidade para os operadores de nós personalizarem o estado com base nas necessidades. Os nós poderiam adaptar as políticas de retenção do estado aos casos de uso.
  • Transição para um modelo em que a computação e a largura de banda são mais importantes do que o armazenamento. A arquitetura muda para um modelo mais compatível com a nuvem.

Existem também alguns riscos potenciais, como o aumento da vulnerabilidade a ataques DDoS e o histórico de blockchain sendo apenas armazenado de forma fiável por alguns operadores de nós. No entanto, as provas criptográficas podem reduzir esses riscos. No geral, os clientes apátridas são uma das abordagens mais promissoras para superar as limitações atuais do Ethereum.

Conclusão

O crescente tamanho do estado do Ethereum coloca desafios para a descentralização à medida que a adoção aumenta. Os clientes sem estado apresentam uma saída ao permitir que os nós verifiquem transações sem o estado completo da cadeia de blocos. Isto poderá eventualmente permitir que os telemóveis executem nós Ethereum, aumentando muito a descentralização.

Isenção de responsabilidade:

  1. Este artigo foi reimpresso do [Espelho]. Todos os direitos de autor pertencem ao autor original [YQ]. Se houver objeções a esta reimpressão, contacte a equipa do Gate Learn, e eles tratarão disso imediatamente.
  2. Isenção de responsabilidade: As opiniões e opiniões expressas neste artigo são exclusivamente do autor e não constituem nenhum conselho de investimento.
  3. As traduções do artigo para outras línguas são feitas pela equipa do Gate Learn. A menos que mencionado, é proibido copiar, distribuir ou plagiar os artigos traduzidos.

Clientes sem Estado: Um Caminho para a Descentralização no Ethereum

PrincipianteDec 25, 2023
Este artigo fornece uma introdução detalhada à solução descentralizada da Ethereum, o cliente sem estado, e também explica o que é o estado, bem como os seus antecedentes, princípios e soluções.
Clientes sem Estado: Um Caminho para a Descentralização no Ethereum

À medida que a utilização do Ethereum aumenta, a execução de um nó completo torna-se mais intensiva em recursos e uma utilização intensiva de largura de banda. Isso resulta em menos pessoas conseguindo executar nós completos, reduzindo a descentralização da rede. Além disso, o Ethereum luta para escalar à medida que a procura de transações aumenta, levando ao congestionamento da rede e a altas taxas de gás.

Os clientes sem estado propostos pela Vitalik em 2017 oferecem uma solução potencial para ambos os desafios de descentralização que o Ethereum enfrenta. A ideia chave por trás dos clientes sem estado é reduzir os requisitos de armazenamento e largura de banda para a execução de um nó completo, tornando viável que mais pessoas participem e descentralizem a rede. Este ensaio fornecerá uma análise aprofundada de como os clientes apátridas funcionam e dos seus potenciais benefícios e desvantagens.

O que é o Estado Ethereum?

Para entender os clientes apátridas, primeiro precisamos entender o conceito de “estado” no Ethereum. O estado Ethereum refere-se ao estado atual de todas as contas, contratos, saldos, nonces e armazenamento no mundo Ethereum. Pode ser pensado como uma base de dados que armazena toda a informação relevante sobre a rede Ethereum num determinado momento.

O estado persiste numa trie Merkle Patricia, que é essencialmente uma árvore Merkle modificada que armazena pares de valor-chave. O hash raiz desta trie resume todo o estado. Após cada novo bloco, o estado é atualizado com base nas transações nesse bloco. O novo hash raiz de estado está incluído no cabeçalho do bloco.

À medida que mais contas, contratos e transações são adicionados ao longo do tempo, o estado Ethereum fica cada vez maior. Hoje, o tamanho do estado é superior a 1 TB e aumenta dezenas de gigabytes por ano. Este estado em crescimento está na base dos problemas com a descentralização.

Porque é que o crescimento do Estado causa problemas

O aumento do tamanho do estado Ethereum causa vários problemas chave:

  • Tempos de sincronização mais longos para novos nós - Demora muito tempo para um novo nó sincronizar processando todas as alterações de estado históricas. Isto dificulta a descentralização ao dificultar a execução de novos nós completos. A sincronização de um novo nó da génese leva atualmente vários dias, até semanas, no hardware do consumidor. Isso representa uma grande barreira para a criação eficiente de novos nós e para permitir que mais participantes se juntem à rede.
  • Requisitos de hardware aumentados - Um estado maior requer mais armazenamento, memória e poder de processamento para armazenar, aceder e atualizar. Isso bloqueia utilizadores com menos recursos de executar nós. No mínimo, executar um nó Ethereum totalmente sincronizado requer agora um SSD com 1-2TB de capacidade. Isto está fora do alcance de muitos potenciais operadores de nós.
  • Mais uso de largura de banda - As transmissões de novos blocos também devem incluir o estado atualizado, exigindo mais largura de banda. Isto aumenta os custos para os operadores de nós. Atualmente, o estado domina a maioria das transmissões em bloco, então os tamanhos dos blocos continuam a crescer. Mais largura de banda traduz-se em custos mais elevados para os operadores de nós.
  • Verificação de bloco mais lenta - Ler e atualizar um estado maior torna a verificação do bloco mais lenta, limitando a taxa de transferência da transação. Cada transação requer várias leituras e gravações de armazenamento para atualizar saldos, nonces, estado do contrato, etc. Um estado maior significa mais leituras/gravações por bloco, reduzindo quantas transações podem ser processadas por segundo.
  • Custos de armazenamento permanente - Uma vez que os dados são adicionados ao estado, devem ser armazenados para sempre. Isto cria um crescimento ilimitado do Estado. Atualmente, não existe nenhum mecanismo para apagar ativamente dados de estado antigos e não utilizados. Portanto, os custos de retenção do estado aumentam indefinidamente enquanto o Ethereum continuar a operar.

Clientes sem Estado Explicados

Os clientes sem estado fornecem uma maneira de verificar novos blocos sem precisar de acesso ao estado Ethereum completo. Utilizam provas criptográficas chamadas “testemunhas” que provam a validade das alterações de estado num bloco, sem ter os dados do estado subjacentes.

Veja como os clientes apátridas trabalham a um nível elevado:

  • O cliente armazena apenas cabeçalhos de bloco e raízes de estado, não dados de estado completos. Os cabeçalhos de bloco contêm metadados como o hash raiz do estado trie depois que esse bloco é processado.
  • Ao verificar um novo bloco, o cliente recebe uma “testemunha” junto com o bloco. Esta testemunha é um conjunto de provas da Merkle que demonstram que as atualizações de estado específicas das transações são válidas.
  • A testemunha contém provas Merkle de valores estatais específicos necessários para processar transações. Por exemplo, saldos de conta ou armazenamento de contrato atualizados.
  • O cliente usa a testemunha para garantir que as transações são válidas contra a última raiz de estado conhecida. As provas autenticam que as alterações de estado correspondem à raiz anterior.
  • Se válido, o cliente atualiza para a nova raiz de estado fornecida no cabeçalho do bloco. Esta nova raiz de estado será usada para verificar o próximo bloco.

Ao usar testemunhas para verificar o estado em vez de armazenar o estado completo localmente, os clientes apátridas ganham várias vantagens:

  • Tempo de sincronização muito rápido - não há necessidade de reproduzir alterações históricas de estado. Um cliente sem estado pode sincronizar quase instantaneamente apenas com os cabeçalhos de bloco.
  • Requisitos baixos de armazenamento - as raízes estaduais são apenas 32 bytes. Em vez de centenas de GB de estado, apenas são necessários cabeçalhos de bloco.
  • Menos largura de banda - apenas cabeçalhos de bloqueio e testemunhas transferidos, não estado completo. O uso da largura de banda é minimizado.
  • Verificação rápida - as testemunhas contêm apenas pequenos subconjuntos estaduais relevantes. Apenas as contas atualizadas/armazenamento tocadas são provadas.
  • Suporte fácil ao cliente leve - os clientes leves podem verificar facilmente as provas. O modelo de cliente leve é muito compatível com a verificação sem estado.

Desafios com Clientes sem Estado

Embora os clientes apátridas possibilitem alguns benefícios importantes, também existem desafios técnicos significativos a superar:

  • Tamanho da testemunha - as testemunhas podem ser demasiado grandes para transmitir eficientemente. Se forem utilizadas provas completas da Merkle, podem exceder os limites de tamanho do bloco.
  • Criação de testemunhas - gerar testemunhas ideais é complexo para proponentes de blocos. Os proponentes devem montar os fragmentos de prova certos para verificar cada transação.
  • Sem incentivos a testemunhas - fornecer testemunhas não ganha recompensas diretas. Ao contrário da mineração, não existe uma estrutura de incentivo integrada para a criação de testemunhas.
  • Dados temporários - testemunhas provam o estado num determinado momento, exigindo regeneração. As testemunhas não podem ser reutilizadas à medida que o estado avança.
  • Armazenamento estatal - alguém ainda precisa manter o estado completo para produzir testemunhas. A verificação apátrida depende da geração de testemunhas com estado.
  • Aplicações complexas - alguns contratos podem depender de grandes subconjuntos estatais, testemunhas inchadas. Por exemplo, contratos que atualizam muitos slots de armazenamento por transação.

Possíveis soluções

Os investigadores propuseram várias soluções para enfrentar estes desafios:

  • Verkle trees - estruturas de dados especiais para reduzir o tamanho das testemunhas. As árvores Verkle usam compromissos criptográficos sucintos para minimizar o tamanho da prova.
  • Caches de testemunhas - os proponentes podem manter testemunhas recentes para reutilizar. O armazenamento em cache de testemunhas que provavelmente serão relevantes novamente amortiza os custos de criação.
  • Incentivos de protocolo - mecanismos de recompensa para fornecer testemunhas úteis. Novas estruturas de incentivo podem compensar a criação de testemunhas.
  • Raízes de estado intermédio - rastreie raízes ao longo do tempo para evitar a regeneração de provas. Manter raízes parciais pode reutilizar fragmentos de testemunhas.
  • Renda estatal - exigir pagamentos para manter o estado a longo prazo, podando o estado não utilizado. O aluguel força a limpeza do armazenamento obsoteado para limitar o tamanho da prova.
  • Modelo de testemunha particionada - tratamento de estado dividido entre proponentes e verificadores. Alguns nós proponentes dedicados geram testemunhas.

Existem compensações entre estas abordagens e são necessárias mais pesquisas para descobrir implementações ideais. Felizmente, a rápida inovação que acontece na criptografia de conhecimento zero pode abrir novas possibilidades para clientes sem estado eficientes.

Impacto Potencial

Se os obstáculos técnicos puderem ser superados, os clientes apátridas poderão avançar significativamente o Ethereum:

  • Sincronizações e verificações mais rápidas para suportar maior taxa de transferência de transações. A validação sem estado irá acelerar drasticamente o processamento de blocos.
  • Requisitos de recursos reduzidos para executar nós, melhorando a descentralização. Computadores portáteis e entusiastas podem executar nós completos de forma realista.
  • Melhor suporte para clientes leves como carteiras móveis. As provas de estado são altamente compatíveis com o modelo de cliente leve.
  • Introdução mais suave de sharding, com verificação apátrida entre estilhaços. As transações entre estilhaços podem utilizar provas de estado eficientes.
  • Capacidade de apagar e remover dados antigos do estado que já não são úteis. O crescimento do Estado pode ser gerido ativamente em vez de ilimitado.
  • Mais flexibilidade para os operadores de nós personalizarem o estado com base nas necessidades. Os nós poderiam adaptar as políticas de retenção do estado aos casos de uso.
  • Transição para um modelo em que a computação e a largura de banda são mais importantes do que o armazenamento. A arquitetura muda para um modelo mais compatível com a nuvem.

Existem também alguns riscos potenciais, como o aumento da vulnerabilidade a ataques DDoS e o histórico de blockchain sendo apenas armazenado de forma fiável por alguns operadores de nós. No entanto, as provas criptográficas podem reduzir esses riscos. No geral, os clientes apátridas são uma das abordagens mais promissoras para superar as limitações atuais do Ethereum.

Conclusão

O crescente tamanho do estado do Ethereum coloca desafios para a descentralização à medida que a adoção aumenta. Os clientes sem estado apresentam uma saída ao permitir que os nós verifiquem transações sem o estado completo da cadeia de blocos. Isto poderá eventualmente permitir que os telemóveis executem nós Ethereum, aumentando muito a descentralização.

Isenção de responsabilidade:

  1. Este artigo foi reimpresso do [Espelho]. Todos os direitos de autor pertencem ao autor original [YQ]. Se houver objeções a esta reimpressão, contacte a equipa do Gate Learn, e eles tratarão disso imediatamente.
  2. Isenção de responsabilidade: As opiniões e opiniões expressas neste artigo são exclusivamente do autor e não constituem nenhum conselho de investimento.
  3. As traduções do artigo para outras línguas são feitas pela equipa do Gate Learn. A menos que mencionado, é proibido copiar, distribuir ou plagiar os artigos traduzidos.
Comece agora
Registe-se e ganhe um cupão de
100 USD
!