paint-brush
Dimensionando o Ethereum: inchaço de dados, disponibilidade de dados e a solução sem nuvempor@logos
5,369 leituras
5,369 leituras

Dimensionando o Ethereum: inchaço de dados, disponibilidade de dados e a solução sem nuvem

por Logos11m2024/06/12
Read on Terminal Reader

Muito longo; Para ler

Codex é um protocolo de armazenamento p2p sem nuvem e confiável que busca oferecer fortes garantias de persistência e durabilidade de dados para o ecossistema Ethereum e além. Devido ao rápido desenvolvimento e implementação de novos protocolos, a cadeia blockchain Ethereum ficou cheia de dados. Este inchaço de dados também pode ser definido como “congestionamento de rede”, onde os dados de transação obstruem a rede e prejudicam a escalabilidade. Codex oferece uma solução para o problema de DA, exceto com persistência de dados.
featured image - Dimensionando o Ethereum: inchaço de dados, disponibilidade de dados e a solução sem nuvem
Logos HackerNoon profile picture

Codex é um protocolo de armazenamento p2p sem nuvem e confiável que busca oferecer fortes garantias de persistência e durabilidade de dados para o ecossistema Ethereum e além. Atualmente, o EIP-4844 oferece apenas uma solução parcial para o problema de excesso de dados. As taxas permanecem elevadas e o ecossistema tem poucas opções de armazenamento de dados a longo prazo.


Determinar como persistir o excesso de dados do Ethereum permitirá que ele seja escalonado indefinidamente no futuro, e o Codex entrou em cena para ajudar a aliviar essas preocupações. Vamos explorar o problema.


Você já trocou ETH por outro token no Uniswap?


Conectei-me via Metamask e tentei negociar 0,001 Eth (cerca de US$ 35) por SNT. A taxa do gás custa tanto quanto a transação. Essa é uma taxa muito alta para negociar criptomoedas. A maioria das pessoas não quer pagar tanto.


Vamos descobrir por que essas transações são tão caras.



20/03/2024

A Web3 e as finanças descentralizadas cresceram enormemente nos últimos anos. Devido ao rápido desenvolvimento e implementação de novos protocolos, a cadeia blockchain Ethereum ficou cheia de dados. O resultado? Taxas de gás proibitivamente caras e experiência do usuário ruim. Esse inchaço de dados também pode ser definido como “congestionamento de rede”, onde os dados de transação obstruem a rede e prejudicam a escalabilidade.


Este artigo examina por que o blockchain ficou inchado, por que o rendimento das transações foi prejudicado e várias abordagens para resolver o problema. Vou me concentrar especificamente na disponibilidade de dados no contexto do Ethereum e dos rollups. Explorarei como o Codex oferece uma solução para o problema de DA, exceto com garantias de persistência e durabilidade de dados que faltam à maioria das outras soluções.


Tenha paciencia comigo; Usarei jargão e linguagem técnica, mas farei o meu melhor para explorar este tópico vital e subestimado em linguagem clara. Mais pessoas no ecossistema devem começar a lidar com a robustez da amostragem de disponibilidade de dados (DAS) para dimensionar blockchains. Antes de continuar, o leitor deve ter lido sobre mecanismos de consenso, prova de aposta e como a tecnologia funciona em alto nível.


Vamos começar desvendando o trilema do blockchain.

Trilema Problemático

Todas as tecnologias descentralizadas que pretendem crescer sofrem de restrições semelhantes.


Eles querem escalar para permitir que mais e mais usuários adotem a tecnologia – de milhares a milhões de usuários. No entanto, dimensionar diferentes tecnologias traz consigo diferentes desafios de engenharia.


No caso do Ethereum, os blocos da cadeia contêm dados transacionais, de estado e de contratos inteligentes. Quanto mais pessoas usam a rede, mais dados são adicionados a cada bloco. O problema é que quando os blocos começam a encher, surge um mercado de taxas, onde aqueles que pagam taxas de gás mais elevadas têm maior probabilidade de ter a sua transação incluída no bloco seguinte.


Uma solução simples seria expandir o tamanho do bloco e permitir mais dados transacionais. No entanto, há um problema com esta abordagem, que faz parte do trilema do blockchain.

O trilema afirma que os blockchains têm três recursos principais que desejam manter e aprimorar: escalabilidade, descentralização e segurança. O trilema sugere que tentar melhorar dois reduz o outro.


No caso do Ethereum, a atualização da capacidade do bloco também aumenta os requisitos de hardware para executar um nó de validação completo na rede. Quando a rede aumenta os requisitos de hardware dessa forma, torna-se mais difícil para as pessoas comuns executarem um nó completo – o que impacta negativamente a rede ao diminuir a descentralização geral e a resistência à censura.


Superficialmente, o problema parece intransponível. Felizmente, os desenvolvedores e engenheiros estão repensando como os blockchains podem ser escalonados. Eles estão visualizando blockchains e seus ecossistemas como modulares em vez de monolíticos.

Modular versus Monolítico

É vital reafirmar que a execução de um nó completo na rede é fundamental para o seu sucesso. Mas o que exatamente é um “nó completo” ou “nó de validação completa”?


Um nó completo é um participante da rede que baixa todos os dados do blockchain e executa todas as transações criadas na rede. Os nós completos requerem mais poder de computação e espaço em disco porque baixam o conjunto completo de dados transacionais.


Um artigo de Yuan Han Li intitulado “ WTF é disponibilidade de dados ” explica:

“Como os nós completos verificam cada transação para verificar se seguem as regras do blockchain, os blockchains não podem processar mais transações por segundo sem aumentar os requisitos de hardware para executar um nó completo (melhor hardware = nós completos mais poderosos = nós completos podem verificar mais transações = blocos maiores contendo mais transações são permitidos).”


O problema de manter a descentralização é que você deseja que alguns participantes da rede executem nós completos. No entanto, esses nós exigem um tremendo poder de computação que é muito caro para a maioria dos usuários comprar e manter. E se isso ocorrer, limitará drasticamente o número de nós na rede, prejudicando a descentralização geral.


O principal problema é que os mineradores e validadores podem reter dados da rede, impedindo que outros acessem todos os dados. Este é o cerne do problema no contexto de “blockchains monolíticos”.


Embora esta seja uma palavra da moda um tanto usada no ecossistema, a ideia de “monolítico” no blockchain significa que a camada base – ou o blockchain Ethereum – tem que atuar como a camada de liquidação, a camada de consenso e a camada de disponibilidade de dados. que sobrecarrega o sistema com dados, diminuindo o rendimento transacional e aumentando as taxas.


A solução para este problema de ter uma blockchain “monolítica” é “modularizar” sua funcionalidade e transferir a função de disponibilidade de dados para outros participantes da rede. Neste cenário, a camada base da blockchain funcionaria apenas como a camada de liquidação e consenso. Todos os requisitos de disponibilidade de dados seriam transferidos para outros intervenientes na rede.

Agora que entendemos a sabedoria da modularização, o que é exatamente a disponibilidade de dados e por que ela é crucial para a rede?

O problema do DA e rollups

Disponibilidade de dados é o que um blockchain exige para funcionar como um árbitro imutável da verdade. Sem a disponibilidade de dados transacionais, ninguém saberia se a blockchain contém transações fraudulentas ou inválidas. Em outras palavras, ninguém poderia provar se os validadores e mineradores se comportaram de forma maliciosa ou não. Um __ artigo __de Emmanuel Awosika descreveu isso:

“Disponibilidade de dados” é a garantia de que os dados por trás de um bloco recém-proposto – que é necessário para verificar a exatidão do bloco – estejam disponíveis para outros participantes da rede blockchain.”


Um aparte importante: observe que há uma diferença entre “disponibilidade de dados” e “armazenamento de dados”. Muitas pessoas no espaço confundem os dois. A disponibilidade de dados pergunta se os dados estão disponíveis e se qualquer pessoa pode acessá-los, e armazenamento de dados significa mantê-los em um local por um longo prazo. Nesse sentido, o armazenamento de dados implica a ideia de “persistência de dados”. Nick White, COO da Celestia, forneceu um analogia poderosa :


Se você tiver comida enlatada, isso representa armazenamento de dados. O alimento fica na lata e armazenado por longo prazo, podendo ser acessado e retirado do armazenamento a qualquer momento. Nesse sentido, existe um elemento de “persistência de dados” no que diz respeito ao “armazenamento de dados”. Por outro lado, a disponibilidade de dados é mais parecida com um buffet. A comida é preparada e espalhada em uma mesa de bufê. Está disponível para todos experimentarem. A disponibilidade de dados é semelhante.


Os dados são disponibilizados à rede principalmente para que os participantes da rede possam verificar se os dados são precisos e não contêm transações maliciosas.

Isto levanta a questão: qual é o “problema de disponibilidade de dados?”


O “problema de disponibilidade de dados” é o problema central que os tecnólogos estão tentando resolver para escalar o Ethereum. O problema é que quando um nó completo transmite dados transacionais por todo o ecossistema, nós menores, chamados “nós leves”, normalmente não têm os requisitos de hardware para baixar e executar todas as transações.

Um artigo do ledger.com explicou como funcionam os nós leves:

“Os nós leves não baixam nem validam transações e contêm apenas o cabeçalho do bloco. Em outras palavras, os nós leves assumem que as transações em um bloco são válidas sem a verificação fornecida pelos nós completos, o que torna os nós leves menos seguros. Esse problema é conhecido como problema de disponibilidade de dados.”


Nesse caso, esses nós só precisam saber se os dados estão disponíveis e se representam o “estado” atual do blockchain. Um “estado” é simplesmente todos os dados de blockchain armazenados na cadeia, saldos de endereços e valores de contratos inteligentes. Na blockchain Ethereum, em sua forma atual, os clientes leves precisam contar com os chamados comitês de disponibilidade de dados (DACs) para fornecer atestados na cadeia de que os dados estão realmente disponíveis.


No contexto de uma solução de escalonamento Ethereum, chamada rollup, esses dados devem ser disponibilizados para que os participantes da rede possam determinar se esses dados estão em conformidade com as regras da rede. Em outras palavras, eles precisam garantir que os dados sejam precisos e que os validadores não tentem enganar os clientes leves.

Rollups otimistas e ZK

Para entender melhor o problema do DA, é crucial compreender os rollups. Rollups são blockchains da camada dois que possuem nós chamados sequenciadores; esses sequenciadores auxiliam no processamento em lote, compactação e ordenação de transações. Benjamim Simão descreveu o relação entre rollups e Ethereum:

“Um rollup é essencialmente um blockchain separado, mas com algumas modificações. Assim como o Ethereum, um protocolo rollup possui uma “máquina virtual” que executa código de contrato inteligente. A máquina virtual do rollup opera independentemente da própria máquina virtual do Ethereum (o “ EVM ”), mas é gerenciado por um contrato inteligente Ethereum. Esta conexão permite que rollups e Ethereum se comuniquem. Um rollup executa transações e processa dados, e Ethereum recebe e armazena os resultados.”


Simplificando, os rollups são soluções de escalonamento fora da cadeia. No entanto, os rollups não sacrificam a segurança como muitas soluções de escalonamento “off-chain” normalmente fariam. No caso de rollups, apenas o processamento e a computação de dados ocorrem fora da cadeia (por meio de sequenciadores). As transações são armazenadas no blockchain da camada 1, preservando a segurança. Esses dados na cadeia eram anteriormente chamados de “ calldata ”.


De certa forma, os rollups são a forma da comunidade “ter o seu bolo e comê-lo também”; eles conseguem manter a segurança da rede enquanto aumentam a usabilidade. É uma solução engenhosa.


Existem dois tipos populares de rollups: Rollups otimistas e rollups ZK.

  • Rollups otimistas são os tipos de rollups mais amplamente discutidos e implantados. Como o próprio nome sugere, os rollups “otimistas” pressupõem que há pelo menos 1 xn bons atores no ecossistema. O que isso significa? Os rollups otimistas assumem que todas as transações postadas na rede são válidas. Para compensar esse “otimismo”, os rollups fornecem uma janela de 7 dias para a rede enviar um “ à prova de fraude ”, mostrando que as transações enviadas pelo rollup são inválidas.


    Uma coisa importante a saber sobre rollups otimistas é que eles são em sua maioria compatíveis com EVM, para que os desenvolvedores possam trabalhar com eles de maneira eficiente. Dessa forma, eles podem ser vistos como a solução de escalonamento mais popular da Ethereum. Dois exemplos de rollups otimistas são Otimismo e Arbitragem .

  • Os rollups ZK usam criptografia de conhecimento zero para provar que as transações que eles compactam e agrupam são corretas e precisas. Em vez de assumir que todas as transações são precisas (como rollups otimistas), os rollups ZK geram uma “prova de validade” para demonstrar que as transações são válidas imediatamente, eliminando qualquer período de espera.


    No entanto, sabe-se que os rollups ZK podem ser mais difíceis de trabalhar para os desenvolvedores, pois nem todos são compatíveis com EVM. Os rollups ZK também são computacionalmente intensivos porque a geração das provas consome muitos recursos. No entanto, cada vez mais rollups compatíveis com EVM estão começando a chegar ao mercado. O EVM de rollup de rolagem solução é apenas um exemplo.

Solução: Amostragem de Disponibilidade de Dados e Codex

Mencionei anteriormente que os rollups precisam de um lugar para despejar seus dados. A maioria dos rollups tem enviado dados para a cadeia principal do Ethereum, como mencionado – o que leva ao cerne do problema: o inchaço dos dados. Quando ocorre o inchaço, o rendimento transacional é prejudicado e as taxas para transações e execução de contratos inteligentes aumentam.


Lembre-se de que parte da solução é não depender da validação completa dos nós para segurança da rede. Se confiarmos apenas nesses nós, a maioria dos usuários não conseguiria executar nós completos devido aos requisitos de hardware proibitivamente caros. (Observe que aumentar o tamanho do bloco é uma solução potencial, embora duvidosa, pois esse caminho impacta negativamente a descentralização. No entanto, esse argumento específico tornou-se inválido porque os rollups atuam como soluções de escalonamento da camada 2 que mantêm a segurança da cadeia principal).

Dito isto, qual é a resposta para não fazer com que todos executem nós completos?

A solução é capacitar os nós leves (bem como os nós completos) para verificar os dados sem baixar e executar todas as transações. Este é o cerne do problema e onde a magia de escalar a rede Ethereum (entre outras blockchains) pode ser encontrada.

Disponibilidade de dados, codificação de eliminação e Codex

O primeiro passo é ter uma camada de disponibilidade de dados com uma rede robusta de clientes leves para determinar se os dados estão disponíveis. Mas como podem os clientes leves, que normalmente apenas verificam os dados do cabeçalho e dependem de nós completos para obter suas informações, garantir que seus dados sejam válidos e completos? A resposta pode ser encontrada em um truque matemático chamado “amostragem de disponibilidade de dados (DAS)”.


DAS é um método de amostragem de um pedaço de dados e usá-lo para determinar probabilisticamente o restante dos dados existentes e reconstruí-los. Muitas organizações (incluindo a Cadeia de blocos Celestia e camada DA) estão aproveitando o DAS por meio de codificação de eliminação e compromissos polinomiais. Os Códigos Reed Solomon são a escolha popular entre muitos projetos. Esses tipos de polinômios parece com isso :

Y = a[o] + a[1]x + a[2]x^2+...+a[k]x^k


Essas funções são usadas para determinar dados ausentes e restaurá-los totalmente. Isso funciona criando K de N dados, onde K são os dados originais e N são os “dados de paridade”. Se algum dos dados originais desaparecer, a máquina do nó utiliza uma função matemática chamada Interpolação de Lagrange para restaure-o. A matemática envolvida é aparentemente misteriosa para a maioria das pessoas, mas a ideia é simples.

Existem alguns exemplos claros de codificação de eliminação em ação. O método tem sido usado para fazer backup de CDs riscados. A codificação de apagamento em CDs pode reconstruir os trechos de música perdidos devido a danos na superfície. Os satélites também aproveitam os códigos de apagamento se os dados desaparecerem na vastidão do espaço. O satélite ou o CD podem reconstruir os dados perdidos, adicionando proteção redundante a ambos os sistemas.


O esquema específico que o Codex (assim como o Celestia) usa é chamado de esquema de codificação 2D Erasure. Deve-se notar que a codificação de eliminação 2D, embora popular no ecossistema criptográfico, não é uma tecnologia nova. No entanto, a forma como ele é usado para resolver o problema de DA é bastante interessante. Bautista __ explicou __como a equipe do Codex usa Erasure Coding:

“Da mesma forma que o Codex, o apagamento da codificação dos dados originais em uma estrutura de dados mais redundante e robusta é fundamental para que o restante do protocolo funcione, sem ele não há mágica. No Codex, isso acontece dentro do cliente Codex do nó que deseja fazer o upload dos dados, enquanto no Ethereum isso acontece dentro do validador Ethereum do cliente de consenso/beacon do nó que está construindo/propondo o bloco.“

Há mais informações sobre a jornada dos dados no Codex, mas está além do escopo do artigo. Leia o livro do Dr. pedaço para compreender a dispersão de dados, a amostragem e os mecanismos de “reparo lento” que o Codex utiliza.


O Codex pretende ter funcionalidade simultânea de armazenamento e recuperação de dados e amostragem de disponibilidade de dados por meio de compactação de prova. Isto permitiria o processamento de dados efêmeros (ou dados que não são necessários a longo prazo), e a persistência e durabilidade dos dados garantiriam que outros projetos poderiam estar faltando.

Conclusão: Resolvendo o Problema

O debate sobre como dimensionar blockchains está terminando. No ecossistema Bitcoin, têm surgido discussões sobre como escalar uma blockchain, desde aumentar o limite de tamanho do bloco até aproveitar soluções da camada 2. A realidade é que uma mistura dos dois é a solução mais razoável. Por exemplo, o Codex pode atuar como uma camada de disponibilidade de dados sem nuvem para o Ethereum (bem como para outros blockchains), permitindo que o tamanho do bloco cresça porque a rede conteria muitos nós para realizar verificações de DA na rede.

A boa notícia é que isso aumentará o rendimento da rede enquanto mantém a segurança da camada base. E o que resulta disso? Sim, você acertou: taxas mais baratas e transações mais rápidas. Como usuários de blockchains, é com isso que mais nos importamos.

Um dia, talvez em breve, poderei fazer minha troca de tokens por centavos de dólar, em vez de US$ 35 dólares.


by Sterlin Lujan