Esta é a última parte da série de entrevistas Rollup Descentralizado. Este episódio explora a descentralização rollup sob a perspectiva de "Disponibilidade de dados e armazenamento descentralizado". Convidamos Qi Zhou, fundador do EthStorage, para discutir como o DA pode reutilizar os atributos de segurança da rede principal Ethereum, EIP-4844 e danksharding, e a comparação de segurança de diferentes modelos de DA. O professor Zhou também apresentou como o EthStorage pode ser combinado com o EIP-4844 na próxima atualização do Ethereum.
Apresentação do convidado
Estou muito feliz em compartilhar com vocês alguns de nossos pensamentos sobre toda a tecnologia Ethereum DA e o armazenamento descentralizado que fizemos nela. Entrei na indústria Web3 em tempo integral em 2018. Eu trabalhava como engenheiro em grandes empresas como Google e Facebook. E tem doutorado pelo Georgia Institute of Technology. Desde 2018, acompanho e trabalho com infraestrutura Web3. A principal razão é que eu também fiz isso em grandes fábricas antes, incluindo sistemas distribuídos e armazenamento distribuído. Além disso, também acho que ainda há muito espaço para melhorias nesse aspecto de toda a blockchain. Não importa o que fizemos no início, como a tecnologia chamada fragmentação de execução. Portanto, este é o sharding 1.0 do Ethereum, e agora a tecnologia chamada fragmentação de dados do sharding 2.0 do Ethereum e a subsequente disponibilidade de dados. Na verdade, são todas algumas inovações e trabalhos que são comprovados em toda a infraestrutura Web3.
Portanto, também estamos acompanhando de perto o roteiro do Ethereum, estudando e pesquisando, participando e melhorando esse caminho da comunidade. No final do ano passado, ficamos muito honrados em receber o apoio da Ethereum Foundation para nossa pesquisa sobre "Data Availability Sampling". Ajude a Ethereum Foundation a fazer algum trabalho teórico, algum trabalho de pesquisa sobre danksharding, incluindo como recuperar dados de forma eficaz. Ao mesmo tempo, também estamos desenvolvendo o EthStorage, uma camada de dados Ethereum baseada na tecnologia DA da Ethereum. Podemos usar os contratos inteligentes da Ethereum para verificar o armazenamento de dados fora da cadeia em escala. Isso também é muito significativo para o Ethereum. Portanto, estou muito feliz em compartilhar com vocês hoje, incluindo como o EthStorage pode construir melhor uma rede de camadas de armazenamento de dados com base na tecnologia DA.
Seção de entrevista
Parte 1: Discussão sobre a definição de DA
Como a disponibilidade de dados (DA) mantém os rollups seguros
Em primeiro lugar, no processo de pesquisa de DA, também descobri que muitas pessoas não entendem a definição de DA. Também estou muito feliz em discuti-lo hoje. Antes disso, também discuti o DA com muitos membros da Ethereum Foundation, como Dankrad Feist, e o importante papel que o DA desempenha em todo o Ethereum L2.
Mencionei alguns mecanismos básicos de trabalho do rollup Ethereum, como mover as transações na cadeia para fora da cadeia e, em seguida, usar uma série de métodos de prova (prova de fraude e prova de validade) para informar ao contrato inteligente L1 que os resultados da execução são aceitáveis. Prove que é verdade por meio dessas provas.
Então, um núcleo muito importante é que eles esperam reutilizar a segurança da própria rede Ethereum, mas ao mesmo tempo expandir bastante todo o poder de computação do Ethereum. Há pouco eu disse que a expansão do poder de computação está realmente colocando o cálculo na cadeia fora da cadeia, então como a segurança do Ethereum pode ser realizada ao mesmo tempo.
Por exemplo, no caso do Optimistic Rollup, como garantir que alguém possa desafiar o sequenciador a fazer coisas maliciosas?É muito importante saber como é a transação original específica sob a cadeia. Se as transações originais específicas da cadeia não estiverem disponíveis, não consigo encontrar os registros de transação originais para desafiar o sequenciador na cadeia. Portanto, DA pode garantir segurança porque precisa permitir que os metadados de cada transação fora da cadeia estejam disponíveis na cadeia.
Amplie o espaço do bloco
Como todos os nossos dados de transação devem ser carregados na cadeia, mesmo que nenhum cálculo seja necessário, ainda geraremos enormes dados de transação. Então, o problema central que ele precisa resolver, todos podem entender que é uma tecnologia muito eficaz para expandir o espaço do bloco. Se você tiver um bom entendimento da estrutura de todo o blockchain, cada bloco contém muito conteúdo de transação. O próprio bloco desta transação, nós o chamamos de espaço do bloco.
Atualmente, o espaço de cada bloco no Ethereum é de cerca de 2.300 KB. Mas tal número é obviamente incapaz de atender às necessidades da próxima expansão do Ethereum. Um cálculo muito rápido pode ser feito aqui: divida o espaço de 200 kB pelo número de cada transação é de cerca de 100 bytes e obtenha o número de 2000 transações. Divida 2.000 transações pelo tempo de bloqueio do Ethereum 12, o que significa que o limite superior do TPS do Ethereum é limitado a cerca de 100. Bem, este é realmente um número muito pequeno para todo o plano de expansão do Ethereum.
Portanto, o que preocupa o Ethereum L2 é como garantir a segurança e como colocar uma grande quantidade de dados de bloco no espaço do bloco. Então, seja uma prova de fraude ou uma prova de validade, os dados no espaço de bloco do Ethereum podem ser reutilizados para verificações correspondentes. Finalmente, a segurança dos resultados do cálculo das transações fora da cadeia pode ser garantida pelo Ethereum. Portanto, esta é basicamente a relação entre DA e a segurança do Ethereum.
Entenda DA da perspectiva do custo de largura de banda de rede e custo de armazenamento
O custo principal do DA tem dois aspectos, um é chamado de custo de largura de banda da rede e o outro é o custo de armazenamento.
Em termos de custo de largura de banda de rede, por exemplo, na rede P2P, o atual método de transmissão de bloco de Bitcoin e Ethereum é enviar todos os nós P2P por meio de fofoca (transmissão) para dizer a todos que tenho um novo bloco. A vantagem dessa abordagem de rede é que ela é muito segura e todos os nós da rede eventualmente receberão um backup.
A desvantagem é que ele tem uma grande sobrecarga na largura de banda e na latência da rede. Sabemos que o Ethereum produz um bloco em 12 segundos, após a atualização do POS. Portanto, se o bloco for muito grande e levar mais de 12 segundos, um grande número de blocos não poderá ser gerado e, finalmente, toda a largura de banda da rede cairá para um nível inaceitável. Portanto, você pode pensar no DA como uma solução para o problema de largura de banda de uma grande quantidade de dados no blockchain.
Depois, o segundo é o custo de armazenamento.Na verdade, a Ethereum Foundation tem muitas discussões sobre esse aspecto. No projeto da solução principal, não permitirá que os dados do bloco carregados por todo o DA sejam salvos o tempo todo.
Isso leva a outra questão. Quando eu tiver tantos dados na cadeia, mas depois de uma ou duas semanas, eles serão descartados pelo protocolo Ethereum. Portanto, neste processo, temos algumas soluções descentralizadas melhores para salvar esses dados DA.
Essa também é uma de nossas intenções originais ao projetar o EthStorage. Primeiro, muitos Rollups precisam salvar dados por um longo período de tempo. No segundo aspecto, com esses dados, posso realmente usar o DA para concluir melhor alguns aplicativos de cadeia completa. Por exemplo, o NFT de toda a cadeia, ou o front end de muitos DApps, inclusive incluindo um grande número de artigos ou comentários escritos por todos nas redes sociais. Em seguida, eles podem ser carregados em todo o blockchain por meio da rede DA a um custo menor e podem obter a mesma segurança do Ethereum L1.
Isso foi depois que pesquisamos toda a tecnologia do Ethereum DA, inclusive discutindo com muitos funcionários centrais do Ethereum, descobrimos que, a esse respeito, o Ethereum precisa ter uma camada de armazenamento e é descentralizada que não precisa ser responsável por Ethereum em si. Uma camada de armazenamento que atualiza o protocolo, ou o que chamamos de camada de armazenamento modular, para resolver o problema de armazenamento de dados de longo prazo.
Parte II: Discussão sobre diferentes esquemas DA
A relação entre EIP-4844 e Danksharding e por que o EIP-4844 precisa ser implantado
Proto-danksharding também é chamado de EIP-4844, que eu acho que pode ser considerado a próxima grande atualização do Ethereum. Há uma razão muito importante pela qual 4844 é feito. Quando o Ethereum Gene estima a rota de atualização do Ethereum sharding, ou seja, o tempo de Danksharding, eles acham que todo o tempo de atualização é bastante longo, por exemplo, pode levar três anos para cinco anos. Era 2021, 2020.
Então, no processo, eles prevêem que haverá muito Rollup rodando no Ethereum em breve, mas por causa do Danksharding, a interface de dados fornecida por ele é completamente diferente da interface de dados Calldata usada atualmente pelo Rollup. Isso fará com que um grande número de aplicativos Ethereum não consigam atualizar rapidamente devido à nova interface e possam obter os benefícios trazidos a eles pelo Danksharding.
Quando fui ao Devcon no ano passado, Vitalik também mencionou que esperava que o Ethereum pudesse atender melhor a esses Layer 2, para que eles pudessem desenvolver seus contratos usando a mesma interface Danksharding. Quando o Danksharding é atualizado, eles podem herdar diretamente os novos benefícios fornecidos pelo Danksharding sem precisar atualizar seus contratos existentes e testados.
Portanto, o EIP-4844 é na verdade uma versão super simplificada do Danksharding, que fornece a mesma interface de aplicativo do Danksharding, incluindo um novo opcode chamado Data Hash; e um novo objeto de dados chamado Binary Large Objects, que é Blob.
Esses objetos de dados são projetados para tornar o rollup compatível com a estrutura de dados fornecida pelo Danksharding antecipadamente, ou seja, o Danksharding fornecerá conceitos semelhantes, como o mesmo Data Hash e Blob. Mas por meio do EIP-4844, eles implementaram essas ideias na próxima atualização do Ethereum com antecedência. Portanto, em toda a função de design do EIP-4844, você pode observar suas interfaces e, por exemplo, pré-compilar e instruções recém-adicionadas, então você já pode ver vagamente o futuro de todo o Danksharding, como aplicá-lo no Ethereum Um processo de interação de camadas.
Nesse sentido, o Ethereum também pensa do ponto de vista do aplicativo, como algumas atualizações podem ser feitas com antecedência para permitir que os aplicativos aproveitem melhor várias tecnologias de expansão no Ethereum, e não há necessidade de custos adicionais de atualização.
Mas há um problema que o EIP-4844 não resolve o problema de expandir todo o espaço do bloco, e o Danksharding pode resolvê-lo. O espaço atual do bloco Ethereum é de cerca de 200 KB. Depois do Danksharding, o tamanho planejado na especificação é de 32 megabytes, uma melhoria de quase 100 vezes. Portanto, o atual EIP-4844 não resolve o problema de largura de banda do blockchain no bloco.
Como o Danksharding resolve o problema de expansão do espaço em bloco
Sob o design do 4844, durante o processo de transmissão dos dados na cadeia, ele ainda usa o mesmo método do calldata anterior e transmite pela rede P2P. Então, esse método de transmissão acabará sendo limitado pelo gargalo físico de toda a largura de banda da rede P2P. O método de design do Danksharding mudou a transmissão da rede P2P e, em seguida, através da tecnologia de amostragem de dados, para que todos não precisem baixar todos os dados do bloco, mas também saibam que esses dados do bloco podem ser baixados.
Na verdade, em certo sentido, é um pouco como o método ZK. Através da amostragem de dados, sei que a rede contém (32 megabytes/bloco) dados de blocos trazidos por Danksharding. Mas não preciso baixar todos os 32 megabytes de dados para salvar localmente. Isso também pode ser feito se houver largura de banda de máquina suficiente e desempenho de espaço de armazenamento suficiente, mas para um verificador comum, ele não precisa baixar todos os 32 megabytes de dados.
Algum desenvolvimento e experiência da rede de teste EIP-4844
Executamos recentemente nossa rede interna de teste EIP-4844 e implantamos o contrato correspondente para teste, incluindo upload de dados blob, chamada de contrato e verificação de dados, todos nós passamos. Assim que o EIP-4844 estiver online, podemos implantar nossos contratos o mais rápido possível.
Ao mesmo tempo, também esperamos que, por meio de nossa cooperação atual com alguns desenvolvedores do Ethereum, bem como alguns de nossos contratos desenvolvidos, possamos fornecer tempo para o desenvolvimento de vários rollups no Ethereum, bem como aprendizado e várias ferramentas.
Portanto, recentemente enviamos muito código para Ethereum, o conjunto de ferramentas para EIP-4844, incluindo novos contratos inteligentes para oferecer suporte ao opcode, porque a solidez ainda não pode suportar o opcode do hash de dados. Então, todo o trabalho, já estamos sincronizando com alguns desenvolvedores da Ethereum Foundation.
Aplicações e limitações do Comitê de Disponibilidade de Dados (DAC)
Porque mais de 90% das despesas pagas pelos usuários L2 são pagas pela disponibilização de dados.Para reduzir melhor o custo de upload de dados, muitos projetos L2, incluindo ZKSync, lançaram ZKPorter e Arbitrum Made Arbitrum Nova. Eles fornecem sua própria camada de dados, fornecendo seu próprio DAC Data Availability Committee.
Este comitê de dados trará alguma confiança adicional para alcançar o mesmo nível adicional de segurança do Ethereum. Portanto, quando eles selecionam o comitê de dados, eles geralmente escolhem alguns provedores de serviços de dados de grande nome ou grandes empresas para participar da preservação desses dados. Mas, na verdade, haverá muitos desafios e dúvidas, porque todos pensam que isso é realmente uma violação do princípio de não acesso à descentralização, o que significa que todos podem participar. Mas a situação atual é que a maioria dos comitês de dados são algumas organizações que estão muito próximas da parte do projeto Layer2.
Como o Arbitrum Nova, da última vez que olhei para ele, provavelmente havia seis ou sete desses nós. Por exemplo, os nós do comitê de dados em execução na nuvem do Google ou na nuvem da Amazon podem salvar esses dados e fornecer todos os custos de execução no Arbitrum Nova. Uma vantagem disso é que seu custo de execução atual é cerca de um milésimo do custo do Ethereum. Porque ele não precisa gravar todos os dados na camada 1 do Ethereum. Mas agora ainda é relativamente centralizado, então haverá mais preocupações com aplicativos de valor relativamente alto, porque se houver uma grande quantidade de fundos, dezenas de milhões ou centenas de milhões de fundos, ele deve acreditar que os dados do comitê de dados é utilizável.
Então, quando projetamos o EthStorage, não tínhamos nenhum conceito de comitê de dados. Durante o processo de design, esperamos que todos possam participar e se tornar um provedor de dados. E eles usam provas criptografadas para provar que realmente armazenaram esses dados. Por causa desse modelo do comitê de dados em teoria, embora eu tenha dito que tenho sete e oito nós do comitê de dados, na verdade, posso salvar apenas um dado físico, mas posso mostrar que tenho sete ou oito endereços. fornecer esses dados.
Então, como provar que meus dados têm cópias físicas suficientes para garantir a segurança dos dados. Na verdade, é uma inovação muito importante quando estamos fazendo o EthStorage, e também é o que enfatizamos quando vamos pregar na Fundação Ethereum ESP (Programa de Apoio Ecológico). Usamos a tecnologia de criptografia ZK usada pelo EthStorage para proteger os nós fornecidos pelos dados da Camada2. Eles podem ingressar sem permissão e podem provar que possuem tantas cópias de armazenamento e podem garantir melhor a segurança dos dados.
Portanto, acho que o DAC é de fato uma solução muito temporária para o custo de upload de dados para a Camada1. Acreditamos que podemos fornecer uma solução de armazenamento de dados melhor por meio de algumas tecnologias de criptografia do EthStorage, juntamente com alguns métodos de verificação de prova em contratos de Camada 1 baseados em Ethereum. Em seguida, com o lançamento do Ethereum 4844, tomaremos a iniciativa de compartilhar com você esses conteúdos inovadores e os resultados de sua execução na rede.
Diferença entre EthStorage e DAC
EthStorage é, na verdade, um acúmulo de armazenamento Ethereum, acúmulo de armazenamento. Então podemos supor que uma Camada 2 não é uma implementação do Ethereum EVM, mas um banco de dados muito grande ou um banco de dados de chave-valor. Pode ser de até 10 TB, centenas de TB ou até milhares, que é um banco de dados no nível PB.
Então, como garantir que os dados em meu banco de dados possam obter a mesma segurança do Ethereum. Em primeiro lugar, o primeiro passo é que precisamos publicar todos esses dados em grande escala no banco de dados na camada 1 do Ethereum por meio do DA, para que todos possam ver que esses dados estão disponíveis em toda a camada DA do Ethereum. Mas não podemos garantir que possa ser obtido permanentemente, porque o Ethereum DA descartará os dados em cerca de duas ou quatro semanas.
A segunda etapa é depois de carregarmos os dados e, em seguida, salvá-los em nossos nós da Camada 2. Ao contrário do DAC, nossos nós de armazenamento de dados não têm permissão e qualquer pessoa pode participar. E prova seu armazenamento e recebe a recompensa correspondente. Esse método é feito por meio de um conjunto de mecanismos de prova de armazenamento que estabelecemos. Claro, esse mecanismo de prova de armazenamento também é inspirado por alguns esquemas de design de sistemas de prova de armazenamento, como Filecoin e Arweave. No entanto, precisamos de uma rede e um sistema de prova para a estrutura DA da Ethereum e os contratos inteligentes da Ethereum para fazer as provas de armazenamento correspondentes. Portanto, a esse respeito, acreditamos que temos uma contribuição única para toda a ecologia do Ethereum e até para todo o armazenamento descentralizado.
Mecanismo de Comprovação de Armazenamento
Basicamente, todos os mecanismos de prova de armazenamento, incluindo Filecoin e Arweave, precisam primeiro codificar os metadados do usuário. Mas esse processo de codificação precisa ser codificado de acordo com o endereço do provedor de dados, ou seja, cada provedor de dados precisa ter seu próprio endereço diferente e depois codificar de acordo com seu endereço e metadados para salvar uma réplica única. (somente copiar) coisas. Por exemplo, os dados de hello world podem ser armazenados em quatro ou cinco máquinas físicas diferentes em um banco de dados centralizado tradicional ou em um sistema distribuído tradicional, cada uma das quais é hello world. Mas no EthStorage, ele salva quatro ou cinco ou dez ou vinte, e seu hello world será codificado em dados diferentes de acordo com o endereço de cada provedor de dados e, em seguida, armazenado em locais diferentes.
A vantagem disso é que podemos usar mecanismos criptográficos para provar que existem tantos endereços diferentes, que são provedores de armazenamento diferentes. Eles codificaram os dados e fizeram as provas de armazenamento correspondentes com base nos dados codificados. Basicamente, Filecoin e Arweave são semelhantes a isso. Mas eles são apenas para dados estáticos, agora estamos visando os dados quentes do Ethereum DA. E pode ser verificado através do contrato inteligente Ethereum que existem tantas cópias físicas desses dados. Ou seja, para cada dado codificado, provaremos que esses dados codificados são armazenados nesta rede, e os dados correspondentes a cada dado codificado são diferentes, porque são codificados pelos endereços de provedores de armazenamento diferentes.
Basicamente, otimizamos e melhoramos algumas ideias de armazenamento descentralizado existentes durante o processo de design. Mas, ao mesmo tempo, também precisamos fazer muita otimização na solução DA da Ethereum, incluindo a modificação de dados dinâmicos, como provar e otimizar efetivamente as despesas de gás nos contratos da Ethereum. Portanto, há muitas tecnologias de ponta e pesquisas que precisam ser feitas.
Como o EthStorage mantém a prova de armazenamento sem permissão
Existe um tipo de nó no Ethereum chamado nó de arquivo, que salvará os registros históricos de todas as transações no Ethereum, incluindo o estado do mundo. Mas um grande desafio no Danksharding é que o plano Danksharding gerará cerca de 80 TB de dados por ano. Portanto, supondo que o Ethereum esteja em execução por três a quatro anos, ele gerará de 200 a 300 TB de dados e continuará a aumentar. Bem, isso representará muitos desafios para o nó de arquivo, porque no processo de execução do nó de arquivo, ele não possui uma economia de token adicional para motivar todos a salvar esses dados.
O EthStorage primeiro precisa resolver o problema de incentivos de token para armazenamento permanente de dados. Nesse sentido, adotamos o modelo de fluxo de caixa descontado da Arweave para realizar os incentivos. E, ao mesmo tempo, é muito eficiente deixá-lo executar todo o contrato inteligente.
A segunda é sua abordagem sem permissão. Porque nosso design de incentivo incentiva 10, 50 ou até 100 nós para salvar dados na rede. Portanto, para qualquer nó, ele pode entrar em contato com qualquer um deles, sincronizar os dados correspondentes e, em seguida, tornar-se uma parte do armazenamento de dados. Também pode haver alguns designs otimizados para mais incentivos de dados.
Em terceiro lugar, como o nó de armazenamento precisa salvar todos os dados de uma só vez, pode haver centenas de terabytes ou até mesmo um nível de PB de dados a longo prazo. Portanto, para um único nó, o custo é muito alto. Então, fizemos mais uma coisa chamada fragmentação de dados aqui. Desta forma, para nós comuns, ele só precisa ter um espaço de capacidade de 4 TB (nosso projeto atual é de 4 TB, é claro, pode ser atualizado para 8 TB no futuro) e pode salvar parte do arquivado dados na rede, mas alguns mecanismos de incentivo também são usados para garantir que, depois que todos finalmente reunirem todos esses dados, todos possam ser salvos em nossa rede de camada 2.
Portanto, existem muitos problemas aqui, como o problema de muitos dados causados por nós de arquivamento; o problema de incentivo de tokens; e o problema de acesso descentralizado... Podemos resolver esses problemas através do Ethereum O contrato inteligente é implantado na camada 1 para percebê-lo automaticamente. Então, para nós, apenas fornecemos uma rede de dados, para que todos possam baixar dados e gerar um certificado de armazenamento, desde que tenham custos de dados suficientes, enviá-lo à rede Ethereum e, em seguida, obter o retorno correspondente. Todo o nosso contrato foi basicamente projetado e começamos a depuração no 4844 Devnet da Ethereum.
Ver original
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
Fundador da EthStorage: Disponibilidade de dados e armazenamento descentralizado
Introdução
Esta é a última parte da série de entrevistas Rollup Descentralizado. Este episódio explora a descentralização rollup sob a perspectiva de "Disponibilidade de dados e armazenamento descentralizado". Convidamos Qi Zhou, fundador do EthStorage, para discutir como o DA pode reutilizar os atributos de segurança da rede principal Ethereum, EIP-4844 e danksharding, e a comparação de segurança de diferentes modelos de DA. O professor Zhou também apresentou como o EthStorage pode ser combinado com o EIP-4844 na próxima atualização do Ethereum.
Apresentação do convidado
Estou muito feliz em compartilhar com vocês alguns de nossos pensamentos sobre toda a tecnologia Ethereum DA e o armazenamento descentralizado que fizemos nela. Entrei na indústria Web3 em tempo integral em 2018. Eu trabalhava como engenheiro em grandes empresas como Google e Facebook. E tem doutorado pelo Georgia Institute of Technology. Desde 2018, acompanho e trabalho com infraestrutura Web3. A principal razão é que eu também fiz isso em grandes fábricas antes, incluindo sistemas distribuídos e armazenamento distribuído. Além disso, também acho que ainda há muito espaço para melhorias nesse aspecto de toda a blockchain. Não importa o que fizemos no início, como a tecnologia chamada fragmentação de execução. Portanto, este é o sharding 1.0 do Ethereum, e agora a tecnologia chamada fragmentação de dados do sharding 2.0 do Ethereum e a subsequente disponibilidade de dados. Na verdade, são todas algumas inovações e trabalhos que são comprovados em toda a infraestrutura Web3.
Portanto, também estamos acompanhando de perto o roteiro do Ethereum, estudando e pesquisando, participando e melhorando esse caminho da comunidade. No final do ano passado, ficamos muito honrados em receber o apoio da Ethereum Foundation para nossa pesquisa sobre "Data Availability Sampling". Ajude a Ethereum Foundation a fazer algum trabalho teórico, algum trabalho de pesquisa sobre danksharding, incluindo como recuperar dados de forma eficaz. Ao mesmo tempo, também estamos desenvolvendo o EthStorage, uma camada de dados Ethereum baseada na tecnologia DA da Ethereum. Podemos usar os contratos inteligentes da Ethereum para verificar o armazenamento de dados fora da cadeia em escala. Isso também é muito significativo para o Ethereum. Portanto, estou muito feliz em compartilhar com vocês hoje, incluindo como o EthStorage pode construir melhor uma rede de camadas de armazenamento de dados com base na tecnologia DA.
Seção de entrevista
Parte 1: Discussão sobre a definição de DA
Como a disponibilidade de dados (DA) mantém os rollups seguros
Em primeiro lugar, no processo de pesquisa de DA, também descobri que muitas pessoas não entendem a definição de DA. Também estou muito feliz em discuti-lo hoje. Antes disso, também discuti o DA com muitos membros da Ethereum Foundation, como Dankrad Feist, e o importante papel que o DA desempenha em todo o Ethereum L2.
Mencionei alguns mecanismos básicos de trabalho do rollup Ethereum, como mover as transações na cadeia para fora da cadeia e, em seguida, usar uma série de métodos de prova (prova de fraude e prova de validade) para informar ao contrato inteligente L1 que os resultados da execução são aceitáveis. Prove que é verdade por meio dessas provas.
Então, um núcleo muito importante é que eles esperam reutilizar a segurança da própria rede Ethereum, mas ao mesmo tempo expandir bastante todo o poder de computação do Ethereum. Há pouco eu disse que a expansão do poder de computação está realmente colocando o cálculo na cadeia fora da cadeia, então como a segurança do Ethereum pode ser realizada ao mesmo tempo.
Por exemplo, no caso do Optimistic Rollup, como garantir que alguém possa desafiar o sequenciador a fazer coisas maliciosas?É muito importante saber como é a transação original específica sob a cadeia. Se as transações originais específicas da cadeia não estiverem disponíveis, não consigo encontrar os registros de transação originais para desafiar o sequenciador na cadeia. Portanto, DA pode garantir segurança porque precisa permitir que os metadados de cada transação fora da cadeia estejam disponíveis na cadeia.
Amplie o espaço do bloco
Como todos os nossos dados de transação devem ser carregados na cadeia, mesmo que nenhum cálculo seja necessário, ainda geraremos enormes dados de transação. Então, o problema central que ele precisa resolver, todos podem entender que é uma tecnologia muito eficaz para expandir o espaço do bloco. Se você tiver um bom entendimento da estrutura de todo o blockchain, cada bloco contém muito conteúdo de transação. O próprio bloco desta transação, nós o chamamos de espaço do bloco.
Atualmente, o espaço de cada bloco no Ethereum é de cerca de 2.300 KB. Mas tal número é obviamente incapaz de atender às necessidades da próxima expansão do Ethereum. Um cálculo muito rápido pode ser feito aqui: divida o espaço de 200 kB pelo número de cada transação é de cerca de 100 bytes e obtenha o número de 2000 transações. Divida 2.000 transações pelo tempo de bloqueio do Ethereum 12, o que significa que o limite superior do TPS do Ethereum é limitado a cerca de 100. Bem, este é realmente um número muito pequeno para todo o plano de expansão do Ethereum.
Portanto, o que preocupa o Ethereum L2 é como garantir a segurança e como colocar uma grande quantidade de dados de bloco no espaço do bloco. Então, seja uma prova de fraude ou uma prova de validade, os dados no espaço de bloco do Ethereum podem ser reutilizados para verificações correspondentes. Finalmente, a segurança dos resultados do cálculo das transações fora da cadeia pode ser garantida pelo Ethereum. Portanto, esta é basicamente a relação entre DA e a segurança do Ethereum.
Entenda DA da perspectiva do custo de largura de banda de rede e custo de armazenamento
O custo principal do DA tem dois aspectos, um é chamado de custo de largura de banda da rede e o outro é o custo de armazenamento.
Em termos de custo de largura de banda de rede, por exemplo, na rede P2P, o atual método de transmissão de bloco de Bitcoin e Ethereum é enviar todos os nós P2P por meio de fofoca (transmissão) para dizer a todos que tenho um novo bloco. A vantagem dessa abordagem de rede é que ela é muito segura e todos os nós da rede eventualmente receberão um backup.
A desvantagem é que ele tem uma grande sobrecarga na largura de banda e na latência da rede. Sabemos que o Ethereum produz um bloco em 12 segundos, após a atualização do POS. Portanto, se o bloco for muito grande e levar mais de 12 segundos, um grande número de blocos não poderá ser gerado e, finalmente, toda a largura de banda da rede cairá para um nível inaceitável. Portanto, você pode pensar no DA como uma solução para o problema de largura de banda de uma grande quantidade de dados no blockchain.
Depois, o segundo é o custo de armazenamento.Na verdade, a Ethereum Foundation tem muitas discussões sobre esse aspecto. No projeto da solução principal, não permitirá que os dados do bloco carregados por todo o DA sejam salvos o tempo todo.
Isso leva a outra questão. Quando eu tiver tantos dados na cadeia, mas depois de uma ou duas semanas, eles serão descartados pelo protocolo Ethereum. Portanto, neste processo, temos algumas soluções descentralizadas melhores para salvar esses dados DA.
Essa também é uma de nossas intenções originais ao projetar o EthStorage. Primeiro, muitos Rollups precisam salvar dados por um longo período de tempo. No segundo aspecto, com esses dados, posso realmente usar o DA para concluir melhor alguns aplicativos de cadeia completa. Por exemplo, o NFT de toda a cadeia, ou o front end de muitos DApps, inclusive incluindo um grande número de artigos ou comentários escritos por todos nas redes sociais. Em seguida, eles podem ser carregados em todo o blockchain por meio da rede DA a um custo menor e podem obter a mesma segurança do Ethereum L1.
Isso foi depois que pesquisamos toda a tecnologia do Ethereum DA, inclusive discutindo com muitos funcionários centrais do Ethereum, descobrimos que, a esse respeito, o Ethereum precisa ter uma camada de armazenamento e é descentralizada que não precisa ser responsável por Ethereum em si. Uma camada de armazenamento que atualiza o protocolo, ou o que chamamos de camada de armazenamento modular, para resolver o problema de armazenamento de dados de longo prazo.
Parte II: Discussão sobre diferentes esquemas DA
A relação entre EIP-4844 e Danksharding e por que o EIP-4844 precisa ser implantado
Proto-danksharding também é chamado de EIP-4844, que eu acho que pode ser considerado a próxima grande atualização do Ethereum. Há uma razão muito importante pela qual 4844 é feito. Quando o Ethereum Gene estima a rota de atualização do Ethereum sharding, ou seja, o tempo de Danksharding, eles acham que todo o tempo de atualização é bastante longo, por exemplo, pode levar três anos para cinco anos. Era 2021, 2020.
Então, no processo, eles prevêem que haverá muito Rollup rodando no Ethereum em breve, mas por causa do Danksharding, a interface de dados fornecida por ele é completamente diferente da interface de dados Calldata usada atualmente pelo Rollup. Isso fará com que um grande número de aplicativos Ethereum não consigam atualizar rapidamente devido à nova interface e possam obter os benefícios trazidos a eles pelo Danksharding.
Quando fui ao Devcon no ano passado, Vitalik também mencionou que esperava que o Ethereum pudesse atender melhor a esses Layer 2, para que eles pudessem desenvolver seus contratos usando a mesma interface Danksharding. Quando o Danksharding é atualizado, eles podem herdar diretamente os novos benefícios fornecidos pelo Danksharding sem precisar atualizar seus contratos existentes e testados.
Portanto, o EIP-4844 é na verdade uma versão super simplificada do Danksharding, que fornece a mesma interface de aplicativo do Danksharding, incluindo um novo opcode chamado Data Hash; e um novo objeto de dados chamado Binary Large Objects, que é Blob.
Esses objetos de dados são projetados para tornar o rollup compatível com a estrutura de dados fornecida pelo Danksharding antecipadamente, ou seja, o Danksharding fornecerá conceitos semelhantes, como o mesmo Data Hash e Blob. Mas por meio do EIP-4844, eles implementaram essas ideias na próxima atualização do Ethereum com antecedência. Portanto, em toda a função de design do EIP-4844, você pode observar suas interfaces e, por exemplo, pré-compilar e instruções recém-adicionadas, então você já pode ver vagamente o futuro de todo o Danksharding, como aplicá-lo no Ethereum Um processo de interação de camadas.
Nesse sentido, o Ethereum também pensa do ponto de vista do aplicativo, como algumas atualizações podem ser feitas com antecedência para permitir que os aplicativos aproveitem melhor várias tecnologias de expansão no Ethereum, e não há necessidade de custos adicionais de atualização.
Mas há um problema que o EIP-4844 não resolve o problema de expandir todo o espaço do bloco, e o Danksharding pode resolvê-lo. O espaço atual do bloco Ethereum é de cerca de 200 KB. Depois do Danksharding, o tamanho planejado na especificação é de 32 megabytes, uma melhoria de quase 100 vezes. Portanto, o atual EIP-4844 não resolve o problema de largura de banda do blockchain no bloco.
Como o Danksharding resolve o problema de expansão do espaço em bloco
Sob o design do 4844, durante o processo de transmissão dos dados na cadeia, ele ainda usa o mesmo método do calldata anterior e transmite pela rede P2P. Então, esse método de transmissão acabará sendo limitado pelo gargalo físico de toda a largura de banda da rede P2P. O método de design do Danksharding mudou a transmissão da rede P2P e, em seguida, através da tecnologia de amostragem de dados, para que todos não precisem baixar todos os dados do bloco, mas também saibam que esses dados do bloco podem ser baixados.
Na verdade, em certo sentido, é um pouco como o método ZK. Através da amostragem de dados, sei que a rede contém (32 megabytes/bloco) dados de blocos trazidos por Danksharding. Mas não preciso baixar todos os 32 megabytes de dados para salvar localmente. Isso também pode ser feito se houver largura de banda de máquina suficiente e desempenho de espaço de armazenamento suficiente, mas para um verificador comum, ele não precisa baixar todos os 32 megabytes de dados.
Algum desenvolvimento e experiência da rede de teste EIP-4844
Executamos recentemente nossa rede interna de teste EIP-4844 e implantamos o contrato correspondente para teste, incluindo upload de dados blob, chamada de contrato e verificação de dados, todos nós passamos. Assim que o EIP-4844 estiver online, podemos implantar nossos contratos o mais rápido possível.
Ao mesmo tempo, também esperamos que, por meio de nossa cooperação atual com alguns desenvolvedores do Ethereum, bem como alguns de nossos contratos desenvolvidos, possamos fornecer tempo para o desenvolvimento de vários rollups no Ethereum, bem como aprendizado e várias ferramentas.
Portanto, recentemente enviamos muito código para Ethereum, o conjunto de ferramentas para EIP-4844, incluindo novos contratos inteligentes para oferecer suporte ao opcode, porque a solidez ainda não pode suportar o opcode do hash de dados. Então, todo o trabalho, já estamos sincronizando com alguns desenvolvedores da Ethereum Foundation.
Aplicações e limitações do Comitê de Disponibilidade de Dados (DAC)
Porque mais de 90% das despesas pagas pelos usuários L2 são pagas pela disponibilização de dados.Para reduzir melhor o custo de upload de dados, muitos projetos L2, incluindo ZKSync, lançaram ZKPorter e Arbitrum Made Arbitrum Nova. Eles fornecem sua própria camada de dados, fornecendo seu próprio DAC Data Availability Committee.
Este comitê de dados trará alguma confiança adicional para alcançar o mesmo nível adicional de segurança do Ethereum. Portanto, quando eles selecionam o comitê de dados, eles geralmente escolhem alguns provedores de serviços de dados de grande nome ou grandes empresas para participar da preservação desses dados. Mas, na verdade, haverá muitos desafios e dúvidas, porque todos pensam que isso é realmente uma violação do princípio de não acesso à descentralização, o que significa que todos podem participar. Mas a situação atual é que a maioria dos comitês de dados são algumas organizações que estão muito próximas da parte do projeto Layer2.
Como o Arbitrum Nova, da última vez que olhei para ele, provavelmente havia seis ou sete desses nós. Por exemplo, os nós do comitê de dados em execução na nuvem do Google ou na nuvem da Amazon podem salvar esses dados e fornecer todos os custos de execução no Arbitrum Nova. Uma vantagem disso é que seu custo de execução atual é cerca de um milésimo do custo do Ethereum. Porque ele não precisa gravar todos os dados na camada 1 do Ethereum. Mas agora ainda é relativamente centralizado, então haverá mais preocupações com aplicativos de valor relativamente alto, porque se houver uma grande quantidade de fundos, dezenas de milhões ou centenas de milhões de fundos, ele deve acreditar que os dados do comitê de dados é utilizável.
Então, quando projetamos o EthStorage, não tínhamos nenhum conceito de comitê de dados. Durante o processo de design, esperamos que todos possam participar e se tornar um provedor de dados. E eles usam provas criptografadas para provar que realmente armazenaram esses dados. Por causa desse modelo do comitê de dados em teoria, embora eu tenha dito que tenho sete e oito nós do comitê de dados, na verdade, posso salvar apenas um dado físico, mas posso mostrar que tenho sete ou oito endereços. fornecer esses dados.
Então, como provar que meus dados têm cópias físicas suficientes para garantir a segurança dos dados. Na verdade, é uma inovação muito importante quando estamos fazendo o EthStorage, e também é o que enfatizamos quando vamos pregar na Fundação Ethereum ESP (Programa de Apoio Ecológico). Usamos a tecnologia de criptografia ZK usada pelo EthStorage para proteger os nós fornecidos pelos dados da Camada2. Eles podem ingressar sem permissão e podem provar que possuem tantas cópias de armazenamento e podem garantir melhor a segurança dos dados.
Portanto, acho que o DAC é de fato uma solução muito temporária para o custo de upload de dados para a Camada1. Acreditamos que podemos fornecer uma solução de armazenamento de dados melhor por meio de algumas tecnologias de criptografia do EthStorage, juntamente com alguns métodos de verificação de prova em contratos de Camada 1 baseados em Ethereum. Em seguida, com o lançamento do Ethereum 4844, tomaremos a iniciativa de compartilhar com você esses conteúdos inovadores e os resultados de sua execução na rede.
Diferença entre EthStorage e DAC
EthStorage é, na verdade, um acúmulo de armazenamento Ethereum, acúmulo de armazenamento. Então podemos supor que uma Camada 2 não é uma implementação do Ethereum EVM, mas um banco de dados muito grande ou um banco de dados de chave-valor. Pode ser de até 10 TB, centenas de TB ou até milhares, que é um banco de dados no nível PB.
Então, como garantir que os dados em meu banco de dados possam obter a mesma segurança do Ethereum. Em primeiro lugar, o primeiro passo é que precisamos publicar todos esses dados em grande escala no banco de dados na camada 1 do Ethereum por meio do DA, para que todos possam ver que esses dados estão disponíveis em toda a camada DA do Ethereum. Mas não podemos garantir que possa ser obtido permanentemente, porque o Ethereum DA descartará os dados em cerca de duas ou quatro semanas.
A segunda etapa é depois de carregarmos os dados e, em seguida, salvá-los em nossos nós da Camada 2. Ao contrário do DAC, nossos nós de armazenamento de dados não têm permissão e qualquer pessoa pode participar. E prova seu armazenamento e recebe a recompensa correspondente. Esse método é feito por meio de um conjunto de mecanismos de prova de armazenamento que estabelecemos. Claro, esse mecanismo de prova de armazenamento também é inspirado por alguns esquemas de design de sistemas de prova de armazenamento, como Filecoin e Arweave. No entanto, precisamos de uma rede e um sistema de prova para a estrutura DA da Ethereum e os contratos inteligentes da Ethereum para fazer as provas de armazenamento correspondentes. Portanto, a esse respeito, acreditamos que temos uma contribuição única para toda a ecologia do Ethereum e até para todo o armazenamento descentralizado.
Mecanismo de Comprovação de Armazenamento
Basicamente, todos os mecanismos de prova de armazenamento, incluindo Filecoin e Arweave, precisam primeiro codificar os metadados do usuário. Mas esse processo de codificação precisa ser codificado de acordo com o endereço do provedor de dados, ou seja, cada provedor de dados precisa ter seu próprio endereço diferente e depois codificar de acordo com seu endereço e metadados para salvar uma réplica única. (somente copiar) coisas. Por exemplo, os dados de hello world podem ser armazenados em quatro ou cinco máquinas físicas diferentes em um banco de dados centralizado tradicional ou em um sistema distribuído tradicional, cada uma das quais é hello world. Mas no EthStorage, ele salva quatro ou cinco ou dez ou vinte, e seu hello world será codificado em dados diferentes de acordo com o endereço de cada provedor de dados e, em seguida, armazenado em locais diferentes.
A vantagem disso é que podemos usar mecanismos criptográficos para provar que existem tantos endereços diferentes, que são provedores de armazenamento diferentes. Eles codificaram os dados e fizeram as provas de armazenamento correspondentes com base nos dados codificados. Basicamente, Filecoin e Arweave são semelhantes a isso. Mas eles são apenas para dados estáticos, agora estamos visando os dados quentes do Ethereum DA. E pode ser verificado através do contrato inteligente Ethereum que existem tantas cópias físicas desses dados. Ou seja, para cada dado codificado, provaremos que esses dados codificados são armazenados nesta rede, e os dados correspondentes a cada dado codificado são diferentes, porque são codificados pelos endereços de provedores de armazenamento diferentes.
Basicamente, otimizamos e melhoramos algumas ideias de armazenamento descentralizado existentes durante o processo de design. Mas, ao mesmo tempo, também precisamos fazer muita otimização na solução DA da Ethereum, incluindo a modificação de dados dinâmicos, como provar e otimizar efetivamente as despesas de gás nos contratos da Ethereum. Portanto, há muitas tecnologias de ponta e pesquisas que precisam ser feitas.
Como o EthStorage mantém a prova de armazenamento sem permissão
Existe um tipo de nó no Ethereum chamado nó de arquivo, que salvará os registros históricos de todas as transações no Ethereum, incluindo o estado do mundo. Mas um grande desafio no Danksharding é que o plano Danksharding gerará cerca de 80 TB de dados por ano. Portanto, supondo que o Ethereum esteja em execução por três a quatro anos, ele gerará de 200 a 300 TB de dados e continuará a aumentar. Bem, isso representará muitos desafios para o nó de arquivo, porque no processo de execução do nó de arquivo, ele não possui uma economia de token adicional para motivar todos a salvar esses dados.
O EthStorage primeiro precisa resolver o problema de incentivos de token para armazenamento permanente de dados. Nesse sentido, adotamos o modelo de fluxo de caixa descontado da Arweave para realizar os incentivos. E, ao mesmo tempo, é muito eficiente deixá-lo executar todo o contrato inteligente.
A segunda é sua abordagem sem permissão. Porque nosso design de incentivo incentiva 10, 50 ou até 100 nós para salvar dados na rede. Portanto, para qualquer nó, ele pode entrar em contato com qualquer um deles, sincronizar os dados correspondentes e, em seguida, tornar-se uma parte do armazenamento de dados. Também pode haver alguns designs otimizados para mais incentivos de dados.
Em terceiro lugar, como o nó de armazenamento precisa salvar todos os dados de uma só vez, pode haver centenas de terabytes ou até mesmo um nível de PB de dados a longo prazo. Portanto, para um único nó, o custo é muito alto. Então, fizemos mais uma coisa chamada fragmentação de dados aqui. Desta forma, para nós comuns, ele só precisa ter um espaço de capacidade de 4 TB (nosso projeto atual é de 4 TB, é claro, pode ser atualizado para 8 TB no futuro) e pode salvar parte do arquivado dados na rede, mas alguns mecanismos de incentivo também são usados para garantir que, depois que todos finalmente reunirem todos esses dados, todos possam ser salvos em nossa rede de camada 2.
Portanto, existem muitos problemas aqui, como o problema de muitos dados causados por nós de arquivamento; o problema de incentivo de tokens; e o problema de acesso descentralizado... Podemos resolver esses problemas através do Ethereum O contrato inteligente é implantado na camada 1 para percebê-lo automaticamente. Então, para nós, apenas fornecemos uma rede de dados, para que todos possam baixar dados e gerar um certificado de armazenamento, desde que tenham custos de dados suficientes, enviá-lo à rede Ethereum e, em seguida, obter o retorno correspondente. Todo o nosso contrato foi basicamente projetado e começamos a depuração no 4844 Devnet da Ethereum.