Kernel Ventures: Disponibilidade de dados e design de camada de dados históricos

intermediárioJan 11, 2024
Este artigo explora e interpreta indicadores de desempenho de DA, tecnologias relacionadas a DA e soluções de armazenamento em camada de DA.
Kernel Ventures: Disponibilidade de dados e design de camada de dados históricos
  1. Na fase inicial do blockchain, manter a consistência dos dados é considerado extremamente importante para garantir a segurança e a descentralização. No entanto, com o desenvolvimento do ecossistema blockchain, a pressão de armazenamento também está aumentando, levando a uma tendência de centralização na operação dos nós. Sendo este o caso, o problema do custo de armazenamento trazido pelo crescimento do TPS na Camada 1 precisa ser resolvido urgentemente.
  2. Diante desse problema, os desenvolvedores devem propor uma solução que leve em consideração a segurança, o custo de armazenamento, a velocidade de leitura de dados e a versatilidade da camada DA.
  3. No processo de resolução deste problema, surgiram muitas novas tecnologias e ideias, incluindo Sharding, DAS, Verkle Tree, componentes intermediários DA e assim por diante. Eles tentam otimizar o esquema de armazenamento da camada DA reduzindo a redundância de dados e melhorando a eficiência da validação de dados.
  4. As soluções DA são amplamente categorizadas em dois tipos do ponto de vista do local de armazenamento de dados, ou seja, DAs da cadeia principal e DAs de terceiros. Os DAs da cadeia principal são projetados a partir das perspectivas de limpeza regular de dados e armazenamento de dados fatiados para reduzir a pressão de armazenamento nos nós, enquanto os DAs de terceiros são projetados para atender às necessidades de armazenamento e ter soluções razoáveis para grandes quantidades de dados. Como resultado, compensamos principalmente entre compatibilidade de cadeia única e compatibilidade de cadeia múltipla em DAs de terceiros e propomos três tipos de soluções: DAs específicos da cadeia principal, DAs modularizados e DAs de cadeia pública de armazenamento.
  5. As cadeias públicas do tipo pagamento têm requisitos muito elevados para a segurança de dados históricos e, portanto, são adequadas para uso na cadeia principal como camada DA. No entanto, para cadeias públicas que já funcionam há muito tempo e têm um grande número de mineradores administrando a rede, é mais adequado adotar um DA de terceiros que não envolva a mudança da camada de consenso com segurança relativamente alta. Para cadeias públicas abrangentes, é mais adequado usar o armazenamento DA dedicado da cadeia principal com maior capacidade de dados, menor custo e segurança. Porém, considerando a demanda por cross-chain, o DA modular também é uma boa opção.
  6. No geral, o blockchain está avançando no sentido de reduzir a redundância de dados, bem como a divisão do trabalho em várias cadeias.

1. Fundo

Como um livro-razão distribuído, o blockchain precisa armazenar dados históricos em todos os nós para garantir a segurança e a descentralização suficiente do armazenamento de dados. Como a exatidão de cada mudança de estado está relacionada ao estado anterior (fonte da transação), para garantir a exatidão das transações, uma blockchain deve, em princípio, armazenar todos os registros históricos desde a primeira transação até a transação atual. Tomando o Ethereum como exemplo, mesmo que o tamanho médio do bloco seja estimado em 20 kb, o tamanho total atual dos blocos Ethereum atingiu 370 GB. Além do bloco em si, um nó completo também precisa registrar o status e os recebimentos das transações. Contando essa parte, a capacidade total de armazenamento de um único nó ultrapassou 1 TB, o que concentra a operação do nó para poucas pessoas.

Altura de bloco mais recente do Ethereum, fonte da imagem: Etherscan

2. Indicadores de desempenho DA

2.1 Segurança

Em comparação com estruturas de armazenamento de banco de dados ou listas vinculadas, a não comparabilidade do blockchain vem da capacidade de verificar dados recém-gerados por meio de dados históricos. Portanto, garantir a segurança dos dados históricos é a primeira questão a ser considerada no armazenamento da camada DA. Ao julgar a segurança dos dados dos sistemas blockchain, muitas vezes a analisamos a partir da quantidade de redundância de dados e do método de verificação da disponibilidade dos dados.

  1. Quantidade de redundância: Em relação à redundância de dados no sistema blockchain, ela pode desempenhar principalmente as seguintes funções: Primeiro, se o número de redundâncias na rede for maior, quando o verificador precisar visualizar o status da conta em um determinado bloco histórico para verificar Quando uma transação está sendo verificada, ela pode obter o maior número de amostras para referência e selecionar os dados registrados pela maioria dos nós. Em bancos de dados tradicionais, como os dados são armazenados apenas na forma de pares de valores-chave em um determinado nó, as alterações nos dados históricos só podem ser feitas em um único nó e o custo do ataque é extremamente baixo. Em teoria, quanto maior o número de despedimentos, menor será a probabilidade dos dados. Quanto maior o grau de credibilidade. Ao mesmo tempo, quanto mais nós forem armazenados, menor será a probabilidade de os dados serem perdidos. Isso também pode ser comparado ao servidor centralizado que armazena jogos Web2. Assim que todos os servidores back-end forem desligados, o servidor será completamente desligado. Porém, quanto mais, melhor, porque cada redundância trará espaço de armazenamento adicional. A redundância excessiva de dados trará pressão excessiva de armazenamento ao sistema. Uma boa camada DA deve escolher uma adequada. A abordagem redundante equilibra segurança e eficiência de armazenamento.
  2. Verificação de disponibilidade de dados: O número de redundâncias garante que haja registros suficientes de dados na rede, mas a precisão e integridade dos dados a serem utilizados devem ser verificadas. O método de verificação comumente usado no blockchain atual é o algoritmo de compromisso criptográfico, que retém um pequeno compromisso criptográfico para ser registrado por toda a rede. Este compromisso é obtido através da mistura de dados de transações. Quando se deseja testar a autenticidade de um determinado dado histórico, é necessário restaurar o comprometimento criptográfico através dos dados e verificar se o comprometimento criptográfico obtido por essa restauração é consistente com os registros de toda a rede. Se for consistente, a verificação foi aprovada. Algoritmos de verificação de criptografia comumente usados incluem Verkle Root e Verkle Root. O algoritmo de verificação de disponibilidade de dados de alta segurança requer apenas uma pequena quantidade de dados de verificação e pode verificar rapidamente os dados históricos.

2.2 Custo de armazenamento

Com a premissa de garantir a segurança básica, o próximo objetivo principal que a camada DA precisa alcançar é reduzir custos e aumentar a eficiência. A primeira é reduzir os custos de armazenamento, independentemente das diferenças de desempenho do hardware, ou seja, reduzir o uso de memória causado pelo armazenamento de dados do tamanho da unidade. Nesta fase, as principais formas de reduzir os custos de armazenamento em blockchain são adotar a tecnologia de sharding e usar o armazenamento baseado em recompensas para garantir que os dados sejam armazenados de forma eficaz e reduzir o número de backups de dados. No entanto, não é difícil ver, a partir dos métodos de melhoria acima, que existe uma relação de jogo entre o custo de armazenamento e a segurança dos dados. Reduzir a ocupação do armazenamento muitas vezes significa uma diminuição na segurança. Portanto, uma excelente camada DA precisa alcançar um equilíbrio entre custo de armazenamento e segurança de dados. Além disso, se a camada DA for uma cadeia pública separada, ela precisará reduzir o custo minimizando o processo intermediário de troca de dados. Em cada processo de transferência, os dados do índice precisam ser deixados para chamadas de consulta subsequentes. Portanto, quanto mais longo o processo de chamada, mais dados de índice sobrarão e o custo de armazenamento aumentará. Finalmente, o custo do armazenamento de dados está diretamente ligado à durabilidade dos dados. De modo geral, quanto maior o custo de armazenamento dos dados, mais difícil será para a cadeia pública armazenar dados de forma persistente.

2.3 Velocidade de leitura de dados

Após alcançar a redução de custos, o próximo passo é aumentar a eficiência, que é a capacidade de chamar rapidamente os dados para fora da camada DA quando eles precisam ser usados. Este processo envolve duas etapas. A primeira é procurar nós que armazenam dados. Este processo é principalmente para cadeias públicas que não alcançaram consistência de dados em toda a rede. Se a cadeia pública conseguir a sincronização de dados para nós em toda a rede, isso poderá ser ignorado. O consumo de tempo de um processo. Em segundo lugar, nos atuais sistemas blockchain convencionais, incluindo Bitcoin, Ethereum e Filecoin, o método de armazenamento de nós é o banco de dados Leveldb. No Leveldb, os dados são armazenados de três maneiras. Primeiro, os dados gravados imediatamente serão armazenados em arquivos do tipo Memtable. Quando o armazenamento do Memtable estiver cheio, o tipo de arquivo será alterado de Memtable para Immutable Memtable. Ambos os tipos de arquivos são armazenados na memória, mas os arquivos Immutable Memtable não podem mais ser alterados, apenas os dados podem ser lidos deles. O armazenamento quente usado na rede IPFS armazena dados nesta parte. Quando é chamado, pode ser lido rapidamente da memória. No entanto, a memória móvel de um nó comum geralmente tem nível de GB e é fácil de gravar lentamente. Quando um nó trava ou ocorre outra situação anormal, os dados na memória serão perdidos permanentemente. Se quiser que os dados sejam armazenados de forma persistente, você precisará armazená-los na forma de um arquivo SST em uma unidade de estado sólido (SSD). No entanto, ao ler os dados, você precisa primeiro ler os dados na memória, o que reduz bastante a velocidade de indexação dos dados. Finalmente, para sistemas que utilizam armazenamento compartilhado, a restauração de dados requer o envio de solicitações de dados a vários nós e sua restauração. Este processo também reduzirá a velocidade de leitura de dados.

Método de armazenamento de dados Leveldb, fonte da imagem: Leveldb-handbook

2.4 Generalização DA

Com o desenvolvimento do DeFi e vários problemas com o CEX, os requisitos dos utilizadores para transacções entre cadeias de activos descentralizados também estão a crescer. Independentemente do mecanismo de bloqueio de hash entre cadeias, notário público ou cadeia de retransmissão, a determinação simultânea de dados históricos em ambas as cadeias não pode ser evitada. A chave para este problema reside na separação dos dados nas duas cadeias, e a comunicação direta não pode ser alcançada em diferentes sistemas descentralizados. Portanto, uma solução é proposta nesta fase, alterando o método de armazenamento da camada DA, que não apenas armazena os dados históricos de múltiplas cadeias públicas na mesma cadeia pública confiável, mas só precisa chamar os dados nesta cadeia pública durante a verificação. Pode. Isto exige que a camada DA seja capaz de estabelecer métodos de comunicação seguros com diferentes tipos de cadeias públicas, o que significa que a camada DA tem boa versatilidade.

3. Técnicas relativas à DA

3.1 Fragmentação

  1. Em um sistema distribuído tradicional, um arquivo não é armazenado de forma completa em um determinado nó. Em vez disso, os dados originais são divididos em vários blocos e um bloco é armazenado em cada nó. Muitas vezes, os blocos não são armazenados em apenas um nó, mas deixarão backups apropriados em outros nós. Nos sistemas distribuídos convencionais existentes, esse número de backups geralmente é definido como 2. Esse mecanismo de fragmentação pode reduzir a pressão de armazenamento de um único nó, expandir a capacidade total do sistema para a soma da capacidade de armazenamento de cada nó e, no ao mesmo tempo, garantir a segurança do armazenamento através de redundância de dados adequada. O esquema de Sharding adotado no blockchain é geralmente semelhante, mas os detalhes específicos serão diferentes. Em primeiro lugar, como cada nó no blockchain não é confiável por padrão, o processo de implementação do Sharding requer uma quantidade grande o suficiente de backup de dados para posterior julgamento da autenticidade dos dados, portanto, o número de backups para este nó precisa ser muito maior que 2 Idealmente, em um sistema blockchain usando esse esquema de armazenamento, se o número total de nós de verificação for T e o número de fragmentos for N, então o número de backups deverá ser T/N. O segundo é o processo de armazenamento do Bloco. Existem menos nós em sistemas distribuídos tradicionais, portanto, um nó geralmente se adapta a vários blocos de dados. Primeiro, os dados são mapeados para o anel hash por meio do algoritmo hash consistente e, em seguida, cada nó armazena blocos de dados numerados em um determinado intervalo e pode aceitar que um nó não aloque tarefas de armazenamento durante determinado armazenamento. No blockchain, a atribuição de um bloco a cada nó não é mais um evento aleatório, mas um evento inevitável. Cada nó selecionará aleatoriamente um bloco para armazenamento. Este processo combina os dados originais com as informações do bloco e do nó. O resultado do hash dos dados é concluído tomando o módulo do número de fragmentos. Supondo que cada dado seja dividido em N blocos, o tamanho real de armazenamento de cada nó é apenas 1/N do original. Ao definir N adequadamente, é possível alcançar um equilíbrio entre o crescimento do TPS e a pressão de armazenamento do nó.

Método de armazenamento de dados após Sharding, fonte da imagem: Kernel Ventures

3.2 DAS(Amostragem de Disponibilidade de Dados)

A tecnologia DAS é baseada na otimização adicional dos métodos de armazenamento Sharding. Durante o processo de Sharding, devido ao simples armazenamento aleatório dos nós, um determinado Bloco pode ser perdido. Em segundo lugar, para dados fragmentados, também é muito importante confirmar a autenticidade e integridade dos dados durante o processo de restauração. No DAS, esses dois problemas são resolvidos por meio do código Eraser e do comprometimento polinomial KZG.

  1. Código apagador: Considerando o grande número de nós de verificação no Ethereum, a probabilidade de um determinado bloco não ser armazenado por nenhum nó é quase 0, mas teoricamente ainda existe a possibilidade de tal situação extrema acontecer. Para mitigar esta possível ameaça de perda de armazenamento, neste esquema, os dados originais muitas vezes não são diretamente divididos em blocos para armazenamento. Em vez disso, os dados originais são primeiro mapeados para os coeficientes de um polinômio de ordem n e, em seguida, 2n é retirado do polinômio. pontos e deixe o nó selecionar aleatoriamente um deles para armazenamento. Para este polinômio de ordem n, apenas n+1 pontos são necessários para restaurá-lo. Portanto, apenas metade dos blocos precisa ser selecionada pelos nós e podemos restaurar os dados originais. Através do código Eraser, a segurança do armazenamento de dados e a capacidade de recuperação de dados da rede são melhoradas.
  2. Um aspecto muito importante do armazenamento de dados é a verificação da autenticidade dos dados. Em redes que não usam o código Eraser, vários métodos podem ser usados para verificação, mas se o código Eraser acima for introduzido para melhorar a segurança dos dados, então é mais apropriado usar o compromisso polinomial KZG, que pode verificar o conteúdo de um único bloco diretamente na forma de um polinômio, eliminando assim a necessidade de reduzir o polinômio a dados binários. O compromisso polinomial KZG pode verificar diretamente o conteúdo de um único bloco na forma de polinômios, eliminando assim a necessidade de reduzir os polinômios a dados binários, e a forma geral de verificação é semelhante à da Merkle Tree, mas não requer específico Dados do nó do caminho e requer apenas a raiz KZG e os dados do bloco para verificar a autenticidade do bloco.

3.3 Método de validação de dados em DA

A validação de dados garante que os dados chamados de um nó sejam precisos e completos. Para minimizar a quantidade de dados e o custo computacional necessários no processo de validação, a camada DA agora usa uma estrutura em árvore como método de validação principal. A forma mais simples é usar Merkle Tree para verificação, que usa a forma de registros completos de árvore binária, só precisa manter uma Merkle Root e o valor hash da subárvore do outro lado do caminho do nó pode ser verificado, o a complexidade de tempo da verificação é de nível O (logN) (o logN é o log2 (N) padrão). Embora o processo de validação tenha sido bastante simplificado, a quantidade de dados para o processo de validação em geral ainda cresce com o aumento dos dados. Para resolver o problema do aumento do volume de validação, outro método de validação, Verkle Tree, é proposto nesta fase, em que cada nó da Verkle Tree não apenas armazena o valor, mas também anexa um Vector Commitment, que pode validar rapidamente a autenticidade do dados utilizando o valor do nó original e a prova de compromisso, sem a necessidade de chamar os valores de outros nós irmãos, o que torna o cálculo de cada validação mais fácil e rápido. Isso faz com que o número de cálculos para cada verificação esteja relacionado apenas à profundidade da Árvore Verkle, que é uma constante fixa, acelerando bastante a velocidade de verificação. Porém, o cálculo do Vector Commitment requer a participação de todos os nós irmãos na mesma camada, o que aumenta muito o custo de gravação e alteração de dados. Porém, para dados como dados históricos, que são armazenados permanentemente e não podem ser adulterados, mas também podem ser lidos, mas não gravados, a Árvore Verkle é extremamente adequada. Além disso, Merkle Tree e Verkle Tree em si possuem uma forma K-ary de variantes, a implementação específica do mecanismo é semelhante, basta alterar o número de subárvores em cada nó, a comparação específica de desempenho pode ser vista na tabela a seguir.

Comparação de desempenho de tempo de métodos de verificação de dados, fonte da imagem: Verkle Trees

3.4 Middleware DA genérico

A expansão contínua do ecossistema blockchain trouxe um aumento contínuo no número de cadeias públicas. Devido às vantagens e à insubstituibilidade de cada cadeia pública em seus respectivos campos, é quase impossível para as cadeias públicas da Camada 1 se unificarem em um curto espaço de tempo. No entanto, com o desenvolvimento do DeFi e vários problemas com o CEX, os requisitos dos utilizadores para ativos de negociação descentralizados entre cadeias também estão a crescer. Portanto, o armazenamento de dados multicadeia da camada DA, que pode eliminar problemas de segurança nas interações de dados entre cadeias, tem recebido cada vez mais atenção. No entanto, para aceitar dados históricos de diferentes cadeias públicas, a camada DA precisa fornecer um protocolo descentralizado para armazenamento padronizado e verificação de fluxos de dados. Por exemplo, kvye, um middleware de armazenamento baseado em Arweave, captura ativamente dados da cadeia e todos os dados na cadeia são armazenados em Arweave em um formato padrão para minimizar diferenças no processo de transmissão de dados. Relativamente falando, a Camada2, que fornece especificamente armazenamento de dados da camada DA para uma determinada cadeia pública, interage com os dados por meio de nós compartilhados internos. Embora reduza o custo de interação e melhore a segurança, tem limitações relativamente grandes e só pode fornecer dados a cadeias públicas específicas que prestam serviços.

4. Métodos de armazenamento de DA

4.1 Cadeia principal DA

4.1.1 Tipo DankSharding

Este tipo de solução de armazenamento ainda não tem nome definido, e o representante mais proeminente é DankSharding no Ethereum, portanto este artigo utiliza a classe DankSharding para se referir a este tipo de solução. Este tipo de solução utiliza principalmente as duas tecnologias de armazenamento DA mencionadas acima, Sharding e DAS. Primeiro, os dados são divididos em compartilhamentos apropriados por meio de Sharding e, em seguida, cada nó extrai um bloco de dados na forma de DAS para armazenamento. Se houver nós suficientes em toda a rede, podemos escolher um número maior de fragmentos N, de modo que a pressão de armazenamento de cada nó seja apenas 1/N do original, alcançando assim uma expansão N vezes do espaço de armazenamento geral. Ao mesmo tempo, para evitar a situação extrema de um determinado bloco não ser armazenado em nenhum bloco, DankSharding codifica os dados usando um Eraser Code, e apenas metade dos dados pode ser completamente restaurado. A última etapa é o processo de verificação de dados, que utiliza a estrutura em árvore Verkle e o comprometimento polinomial para obter uma verificação rápida.

4.1.2 Armazenamento temporário

Para o DA da cadeia principal, um dos métodos mais simples de processamento de dados é armazenar dados históricos no curto prazo. Em essência, o blockchain desempenha o papel de um livro-razão público, permitindo que alterações no conteúdo do livro-razão sejam testemunhadas por toda a rede, sem a necessidade de armazenamento permanente. Tomando Solana como exemplo, embora seus dados históricos estejam sincronizados com o Arweave, o nó principal da rede retém apenas os dados de transações dos últimos dois dias. Na cadeia pública baseada em registros de contas, os dados históricos a cada momento mantêm o status final da conta no blockchain, o que é suficiente para fornecer uma base de verificação para alterações no momento seguinte. Para projetos que tenham necessidades especiais de dados antes deste período, eles próprios podem armazená-los em outras cadeias públicas descentralizadas ou por terceiros de confiança. Em outras palavras, aqueles que têm necessidades adicionais de dados precisam pagar pelo armazenamento de dados históricos.

4.2 DA de terceiros

4.2.1 DA específico da cadeia principal: EthStorage

  1. DA específico da cadeia principal: A coisa mais importante sobre a camada DA é a segurança da transmissão de dados. O mais seguro neste momento é o DA da cadeia principal. No entanto, o armazenamento da cadeia principal está sujeito a limitações de espaço de armazenamento e à competição por recursos. Portanto, quando a quantidade de dados da rede cresce rapidamente, o DA de terceiros será uma escolha melhor se for alcançado o armazenamento de dados a longo prazo. Se o DA terceirizado tiver maior compatibilidade com a rede principal, poderá realizar o compartilhamento de nós, e também terá maior segurança durante o processo de interação de dados. Portanto, sob a premissa de considerar a segurança, o DA específico da cadeia principal terá enormes vantagens. Tomando o Ethereum como exemplo, um requisito básico para DA específico da cadeia principal é ser compatível com EVM e garantir a interoperabilidade com dados e contratos do Ethereum. Projetos representativos incluem Topia, EthStorage, etc. Entre eles, o EthStorage é atualmente o mais desenvolvido em termos de compatibilidade, pois além da compatibilidade no nível EVM, também configurou interfaces relevantes especialmente para se conectar com ferramentas de desenvolvimento Ethereum, como Remix e Hardhat, para obter compatibilidade no Nível da ferramenta de desenvolvimento Ethereum.
  2. EthStorage: EthStorage é uma cadeia pública independente do Ethereum, mas os nós executados nela são superiores aos nós do Ethereum. Ou seja, os nós que executam o EthStorage também podem executar o Ethereum ao mesmo tempo. Através dos códigos de operação no Ethereum, você pode acessar diretamente o EthStorage. EthStorage executa operações. No modelo de armazenamento do EthStorage, apenas uma pequena quantidade de metadados é retida na rede principal do Ethereum para indexação, criando essencialmente um banco de dados descentralizado para o Ethereum. Na solução atual, o EthStorage implementa a interação entre a rede principal Ethereum e o EthStorage, implantando um contrato EthStorage na rede principal Ethereum. Se o Ethereum quiser armazenar dados, ele precisará chamar a função put() no contrato. Os parâmetros de entrada são variáveis de dois bytes chave e dados, onde data representa os dados a serem armazenados, e a chave é sua localização na rede Ethereum. A identificação pode ser considerada semelhante à existência de CID no IPFS. Depois que o par de dados (chave, dados) for armazenado com sucesso na rede EthStorage, o EthStorage irá gerar um kvldx e devolvê-lo à rede principal Ethereum, e corresponderá à chave no Ethereum. Este valor corresponde ao endereço de armazenamento dos dados no EthStorage, portanto é originalmente possível. O problema de precisar armazenar grandes quantidades de dados agora passa a ser o armazenamento de um único par (chave, kvldx), reduzindo bastante o custo de armazenamento da rede principal Ethereum . Se precisar chamar dados armazenados anteriormente, você precisa usar a função get() no EthStorage e inserir o parâmetro key. Você pode pesquisar rapidamente os dados no EthStorage por meio do kvldx armazenado no Ethereum.

Contrato EthStorage, fonte da imagem: Kernel Ventures

  1. Em termos de como os nós armazenam dados especificamente, o EthStorage baseia-se no modelo Arweave. Primeiro, um grande número de pares (k, v) da ETH são fragmentados. Cada Sharding contém um número fixo de (k, v) pares de dados. Há também um limite para o tamanho específico de cada par (k, v). Desta forma, é garantida a equidade da carga de trabalho subsequente dos mineiros no processo de recompensa de armazenamento. Para a emissão das recompensas, é necessário primeiro verificar se o nó armazena dados. Durante este processo, o EthStorage dividirá um Sharding (tamanho do nível de TB) em vários pedaços e manterá uma raiz Verkle na rede principal Ethereum para verificação. Então o minerador precisa primeiro fornecer um nonce para gerar os endereços de vários pedaços através de um algoritmo aleatório com o hash do bloco anterior no EthStorage. O minerador precisa fornecer os dados desses pedaços para provar que realmente armazena todo o Sharding. Mas este nonce não pode ser selecionado arbitrariamente, caso contrário, o nó selecionará um nonce adequado que corresponda apenas ao seu pedaço armazenado e passará na verificação. Portanto, esse nonce deve ser tal que o valor de dificuldade do pedaço gerado possa atender aos requisitos da rede após mixagem e hash, e apenas o primeiro nó a enviar o nonce e a prova de acesso aleatório pode obter a recompensa.

4.2.2 Modularização DA: Celestia

  1. Módulo Blockchain: Nesta fase, as transações que devem ser realizadas pela cadeia pública da Camada 1 são divididas principalmente nas seguintes quatro partes: (1) Projetar a lógica subjacente da rede, selecionar nós de verificação de uma determinada maneira, escrever blocos e alocar recompensas aos mantenedores da rede; (2) Empacotar e processar transações e publicar transações relacionadas; (3) Verificar as transações a serem carregadas na cadeia e determinar o status final; (4) Armazenar e manter dados históricos na blockchain. De acordo com as diferentes funções concluídas, podemos dividir o blockchain em quatro módulos, nomeadamente a camada de consenso, a camada de execução, a camada de liquidação e a camada de disponibilidade de dados (camada DA).
  2. Design modular de blockchain: Por muito tempo, esses quatro módulos foram integrados a uma cadeia pública. Esse blockchain é chamado de blockchain único. Esta forma é mais estável e mais fácil de manter, mas também exerce enorme pressão sobre uma única cadeia pública. Durante a operação real, esses quatro módulos restringem-se mutuamente e competem pelos recursos limitados de computação e armazenamento da cadeia pública. Por exemplo, aumentar a velocidade de processamento da camada de processamento trará maior pressão de armazenamento para a camada de disponibilidade de dados; para garantir a segurança da camada de execução, é necessário um mecanismo de verificação mais complexo, mas diminui a velocidade de processamento da transação. Portanto, o desenvolvimento de cadeias públicas enfrenta frequentemente compromissos entre estes quatro módulos. Para romper o gargalo da melhoria do desempenho da cadeia pública, os desenvolvedores propuseram uma solução modular de blockchain. A ideia central do blockchain modular é separar um ou mais dos quatro módulos mencionados acima e implementá-los em uma cadeia pública separada. Desta forma, a cadeia pública só pode se concentrar em melhorar a velocidade das transações ou a capacidade de armazenamento, rompendo as limitações anteriores no desempenho geral do blockchain devido a deficiências.
  3. DA modular: O método complexo de separar a camada DA do negócio blockchain e entregá-la a uma cadeia pública é considerado uma solução viável para os crescentes dados históricos da Camada 1. A exploração nesta área ainda está nos estágios iniciais nesta fase , e o projeto mais representativo atualmente é o Celestia. Em termos de método de armazenamento específico, Celestia baseia-se no método de armazenamento Danksharding, que também divide os dados em vários blocos, e cada nó extrai uma parte para armazenamento e usa o compromisso polinomial KZG para verificar a integridade dos dados. Ao mesmo tempo, Celestia usa um código de eliminação RS bidimensional avançado, os dados originais são reescritos na forma de uma matriz k e apenas 25% dos dados originais podem ser recuperados. No entanto, o armazenamento por fragmentação de dados basicamente apenas multiplica a pressão de armazenamento de todo o nó da rede por um coeficiente no volume total de dados. A pressão de armazenamento do nó e o volume de dados ainda mantêm um crescimento linear. À medida que a Camada 1 continua a melhorar sua velocidade de transação, a pressão de armazenamento dos nós ainda poderá um dia atingir um nível crítico inaceitável. Para resolver este problema, o componente IPLD é introduzido no Celestia para processamento. para kOs dados na matriz k não são armazenados diretamente no Celestia, mas são armazenados na rede LL-IPFS, e apenas o código CID dos dados no IPFS é retido no nó. Quando um usuário solicita um dado histórico, o nó enviará o CID correspondente ao componente IPLD, e os dados originais serão chamados no IPFS através deste CID. Se os dados existirem no IPFS, eles serão retornados através do componente e nó IPLD; se não existir, os dados não poderão ser retornados.

Método de leitura de dados Celestia, fonte da imagem: Celestia Core

  1. Celestia: Tomando Celestia como exemplo, podemos ter uma ideia da aplicação do blockchain modular na solução do problema de armazenamento do Ethereum. O nó Rollup enviará os dados da transação empacotados e verificados para o Celestia e armazenará os dados no Celestia. Durante este processo, a Celestia apenas armazena os dados sem consciência excessiva. Finalmente, o nó Rollup será rolado de acordo com o tamanho do espaço de armazenamento. Os tokens tia correspondentes serão pagos à Celestia como taxas de armazenamento. O armazenamento no Celstia utiliza DAS e códigos de eliminação semelhantes aos do EIP4844, mas os códigos de eliminação polinomiais no EIP4844 são atualizados e os códigos de eliminação RS bidimensionais são usados para atualizar a segurança do armazenamento novamente. Apenas 25% das fraturas podem restaurar todos os dados da transação. É essencialmente apenas uma rede pública de PDV com baixos custos de armazenamento. Se for usado para resolver o problema histórico de armazenamento de dados do Ethereum, muitos outros módulos específicos serão necessários para cooperar com o Celestia. Por exemplo, em termos de rollup, um modo roll-up altamente recomendado no site oficial da Celestia é o Sovereign Rollup. Diferente do Rollup comum na Camada 2, as transações são apenas calculadas e verificadas, ou seja, as operações da camada de execução são concluídas. O Sovereign Rollup inclui todo o processo de execução e liquidação, o que minimiza o processamento das transações no Celestia. Quando a segurança geral da Celestia é mais fraca que a do Ethereum, esta medida pode maximizar a segurança do processo geral de transação. Em termos de garantir a segurança dos dados chamados pela Celestia, principal rede do Ethereum, a solução mais popular no momento é o contrato inteligente de ponte de gravidade quântica. Para os dados armazenados no Celestia, ele irá gerar um Verkle Root (prova de disponibilidade de dados) e mantê-lo no contrato de ponte de gravidade quântica da rede principal Ethereum. Cada vez que o Ethereum chama os dados históricos do Celestia, seu resultado de hash será comparado com o Verkle Root usado para comparação e, se corresponder, significa que são de fato dados históricos reais.

4.2.3 Cadeia de armazenamento DA

Em termos de princípios técnicos de DA da cadeia principal, muitas tecnologias semelhantes ao Sharding são emprestadas da cadeia pública de armazenamento. Entre os DAs de terceiros, alguns usam diretamente a cadeia pública de armazenamento para concluir algumas tarefas de armazenamento. Por exemplo, os dados de transações específicas no Celestia são colocados na rede LL-IPFS. Na solução DA de terceiros, além de construir uma cadeia pública separada para resolver o problema de armazenamento da Camada1, uma maneira mais direta é conectar diretamente a cadeia pública de armazenamento à Camada1 para armazenar os enormes dados históricos na Camada1. Para blockchains de alto desempenho, o volume de dados históricos é ainda maior. Ao funcionar a toda velocidade, o volume de dados da cadeia pública de alto desempenho Solana é próximo de 4 PG, o que está completamente além da faixa de armazenamento dos nós comuns. A solução escolhida por Solana é armazenar dados históricos na rede de armazenamento descentralizada Arweave e reter apenas 2 dias de dados nos principais nós da rede para verificação. Para garantir a segurança do processo armazenado, Solana e Arweave Chain projetaram especialmente um protocolo de ponte de armazenamento, Solar Bridge. Os dados verificados pelo nó Solana serão sincronizados com o Arweave e a tag correspondente será retornada. Somente através desta tag o nó Solana pode visualizar os dados históricos do blockchain Solana a qualquer momento. No Arweave, não há necessidade de todos os nós da rede manterem a consistência dos dados e usarem isso como limite para participar nas operações da rede. Em vez disso, é adotado o armazenamento de recompensas. Em primeiro lugar, Arweave não usa uma estrutura de cadeia tradicional para construir blocos, mas é mais semelhante a uma estrutura de gráfico. No Arweave, um novo bloco não apenas apontará para o bloco anterior, mas também apontará aleatoriamente para um bloco gerado Recall Block. A localização específica do bloco de recuperação é determinada pelo resultado hash do bloco anterior e pela altura do bloco. A localização do Bloco de Recall é desconhecida até que o bloco anterior seja extraído. Porém, no processo de geração de um novo bloco, o nó precisa ter dados de Recall Block para usar o mecanismo POW para calcular o hash da dificuldade especificada. Somente o primeiro minerador a calcular o hash que atenda à dificuldade poderá receber a recompensa, o que incentiva os mineradores a armazenar o máximo possível. data histórica. Ao mesmo tempo, quanto menos pessoas armazenarem um determinado bloco histórico, os nós terão menos concorrentes na geração de nonces que atendam à dificuldade, incentivando os mineradores a armazenar menos blocos na rede. Finalmente, para garantir que os nós armazenem dados permanentemente no Arweave, ele introduz o mecanismo de pontuação de nós do WildFire. Os nós tenderão a se comunicar com os nós que podem fornecer mais dados históricos mais rapidamente, enquanto os nós com classificações mais baixas muitas vezes são incapazes de obter os dados mais recentes de blocos e transações o mais rápido possível e, portanto, não podem tirar vantagem da competição POW…

Método de construção de bloco Arweave, fonte da imagem: Arweave Yellow-Paper

5. Comparação Sintetizada

A seguir, compararemos as vantagens e desvantagens das cinco soluções de armazenamento com base nas quatro dimensões dos indicadores de desempenho de DA.

  1. Segurança: A maior fonte de problemas de segurança de dados é a perda causada durante o processo de transmissão de dados e a adulteração maliciosa de nós desonestos. No processo cross-chain, devido à independência e ao estado das duas cadeias públicas, a segurança da transmissão de dados é uma das áreas mais atingidas. Além disso, a camada 1, que atualmente requer uma camada DA dedicada, geralmente possui um forte grupo de consenso e sua segurança será muito maior do que a das cadeias públicas de armazenamento comuns. Portanto, a solução DA da cadeia principal possui maior segurança. Depois de garantir a segurança da transmissão dos dados, o próximo passo é garantir a segurança dos dados da chamada. Se forem considerados apenas os dados históricos de curto prazo usados para verificar as transações, os mesmos dados são armazenados em backup por toda a rede na rede de armazenamento temporário. Em uma solução do tipo DankSharding, o número médio de backups de dados é de apenas 1/N do número de nós em toda a rede. , mais redundância de dados pode diminuir a probabilidade de perda de dados e também pode fornecer mais amostras de referência durante a verificação. Portanto, o armazenamento temporário terá relativamente maior segurança de dados. Na solução DA de terceiros, o DA específico da cadeia principal usa nós públicos com a cadeia principal, e os dados podem ser transmitidos diretamente através desses nós de retransmissão durante o processo de cadeia cruzada, portanto, terá segurança relativamente maior do que outras soluções DA. .
  2. Custos de armazenamento: O maior fator que afeta os custos de armazenamento é a quantidade de redundância de dados. Na solução de armazenamento de curto prazo da cadeia principal DA, ele é armazenado na forma de sincronização de dados de todos os nós da rede. Quaisquer dados recém-armazenados precisam fazer backup em todo o nó da rede, que tem o custo de armazenamento mais alto. O alto custo de armazenamento, por sua vez, determina que este método seja adequado apenas para armazenamento temporário em redes de alto TPS. O segundo é o método de armazenamento de Sharding, incluindo Sharding na cadeia principal e Sharding em DA de terceiros. Como a cadeia principal geralmente tem mais nós, um bloco correspondente também terá mais backups, portanto a solução de fragmentação da cadeia principal terá custos mais elevados. O menor custo de armazenamento é a cadeia pública de armazenamento DA que adota o método de armazenamento de recompensa. Sob este esquema, a quantidade de redundância de dados frequentemente flutua em torno de uma constante fixa. Ao mesmo tempo, um mecanismo de ajuste dinâmico também é introduzido na cadeia pública de armazenamento DA para atrair nós para armazenar menos dados de backup, aumentando as recompensas para garantir a segurança dos dados.
  3. Velocidade de leitura de dados: A velocidade de armazenamento de dados é afetada principalmente pelo local de armazenamento dos dados no espaço de armazenamento, pelo caminho do índice de dados e pela distribuição dos dados nos nós. Dentre eles, o local de armazenamento dos dados no nó tem maior impacto na velocidade, pois o armazenamento dos dados na memória ou SSD pode fazer com que a velocidade de leitura difira dezenas de vezes. O armazenamento da cadeia pública DA usa principalmente armazenamento SSD, porque a carga nesta cadeia não inclui apenas os dados da camada DA, mas também inclui dados pessoais com alto uso de memória, como vídeos e fotos enviados pelos usuários. Se a rede não usar SSD como espaço de armazenamento, será difícil suportar uma enorme pressão de armazenamento e atender às necessidades de armazenamento de longo prazo. Em segundo lugar, para DA de terceiros e DA da cadeia principal que usam o estado da memória para armazenar dados, o DA de terceiros primeiro precisa pesquisar os dados do índice correspondentes na cadeia principal e, em seguida, transferir os dados do índice através da cadeia para o terceiro -party DA e retorne-o por meio dos dados da ponte de armazenamento. Em contraste, o DA da cadeia principal pode consultar dados diretamente dos nós e, portanto, tem velocidade de recuperação de dados mais rápida. Finalmente, dentro da cadeia principal DA, o método Sharding requer a chamada de Block de vários nós e a restauração dos dados originais. Portanto, em comparação com o armazenamento de curto prazo sem armazenamento fragmentado, a velocidade será mais lenta.
  4. Universalidade da camada DA: A universalidade DA da cadeia principal é próxima de zero porque é impossível transferir dados de uma cadeia pública com espaço de armazenamento insuficiente para outra cadeia pública com espaço de armazenamento insuficiente. No DA de terceiros, a versatilidade de uma solução e sua compatibilidade com uma cadeia principal específica são indicadores contraditórios. Por exemplo, na solução DA específica da cadeia principal projetada para uma determinada cadeia principal, muitas melhorias foram feitas no tipo de nó e no nível de consenso da rede para se adaptar à cadeia pública. Portanto, essas melhorias desempenharão um papel importante na comunicação com outras redes públicas. um enorme obstáculo. No DA de terceiros, o DA de cadeia pública de armazenamento tem melhor desempenho em termos de versatilidade em comparação com o DA modular. A cadeia pública de armazenamento DA possui uma comunidade de desenvolvedores maior e mais instalações de expansão, que podem se adaptar às condições de diferentes cadeias públicas. Ao mesmo tempo, a cadeia pública de armazenamento DA adquire dados de forma mais ativa por meio da captura de pacotes, em vez de receber passivamente informações transmitidas de outras cadeias públicas. Portanto, ele pode codificar dados à sua maneira, alcançar o armazenamento padronizado de fluxos de dados, facilitar o gerenciamento de informações de dados de diferentes cadeias principais e melhorar a eficiência do armazenamento.

Comparação de desempenho da solução de armazenamento, fonte da imagem: Kernel Ventures

6. Resumo

O blockchain atual está passando por uma transformação da Crypto para a Web3 mais inclusiva. Esse processo traz não apenas uma riqueza de projetos no blockchain. Para acomodar a operação simultânea de tantos projetos na Layer1 e ao mesmo tempo garantir a experiência dos projetos Gamefi e Socialfi, a Layer1 representada pela Ethereum adotou métodos como Rollup e Blobs para melhorar o TPS. Entre as novas blockchains, o número de blockchains de alto desempenho também está crescendo. Mas um TPS mais elevado não significa apenas um desempenho mais elevado, mas também uma maior pressão de armazenamento na rede. Para dados históricos massivos, vários métodos de DA baseados na cadeia principal e em terceiros são atualmente propostos para se adaptarem ao aumento da pressão de armazenamento na cadeia. Cada método de melhoria tem vantagens e desvantagens e tem diferentes aplicabilidades em diferentes situações.

Blockchains que se concentram em pagamentos têm requisitos extremamente elevados para a segurança de dados históricos e não buscam TPS particularmente elevados. Se este tipo de cadeia pública ainda estiver em fase de preparação, um método de armazenamento semelhante ao DankSharding poderá ser adotado, o que pode alcançar um enorme aumento na capacidade de armazenamento e, ao mesmo tempo, garantir a segurança. No entanto, se for uma cadeia pública como o Bitcoin que já tomou forma e tem um grande número de nós, há enormes riscos de melhorias precipitadas na camada de consenso. Portanto, o DA dedicado da cadeia principal com maior segurança no armazenamento fora da cadeia pode ser usado para equilibrar questões de segurança e armazenamento… No entanto, é importante notar que as funções do blockchain não são estáticas, mas estão em constante mudança. Por exemplo, as primeiras funções do Ethereum limitavam-se principalmente a pagamentos e processamento automatizado simples de ativos e transações usando contratos inteligentes. No entanto, à medida que o cenário do blockchain continua a se expandir, vários projetos Socialfi e Defi foram gradualmente adicionados ao Ethereum. Faça o Ethereum se desenvolver em uma direção mais abrangente. Recentemente, com a explosão da ecologia de inscrições no Bitcoin, as taxas de transação da rede Bitcoin aumentaram quase 20 vezes desde agosto. Isto reflecte que a velocidade de transacção da rede Bitcoin nesta fase não pode satisfazer a procura de transacção, e os comerciantes só podem aumentar as taxas para tornar as transacções processadas o mais rapidamente possível. Agora, a comunidade Bitcoin precisa fazer uma escolha: aceitar taxas altas e velocidades de transação lentas ou reduzir a segurança da rede para aumentar a velocidade de transação, mas anular a intenção original do sistema de pagamento. Se a comunidade Bitcoin escolher a última opção, diante da crescente pressão de dados, a solução de armazenamento correspondente também precisará ser ajustada.

As taxas de transação da mainnet Bitcoin flutuam, fonte da imagem: OKLINK

As cadeias públicas com funções abrangentes têm uma busca maior pelo TPS e o crescimento dos dados históricos é ainda maior. É difícil adaptar-se ao rápido crescimento do TPS no longo prazo adotando uma solução semelhante ao DankSharding. Portanto, uma forma mais adequada é migrar os dados para um DA de terceiros para armazenamento. Entre eles, o DA específico da cadeia principal tem a maior compatibilidade e pode ter mais vantagens se forem consideradas apenas as questões de armazenamento de uma única cadeia pública. Mas hoje, quando as cadeias públicas da Camada 1 estão florescendo, a transferência de ativos entre cadeias e a interação de dados tornaram-se uma busca comum da comunidade blockchain. Se o desenvolvimento a longo prazo de todo o ecossistema blockchain for levado em consideração, o armazenamento de dados históricos de diferentes cadeias públicas na mesma cadeia pública pode eliminar muitos problemas de segurança no processo de troca e verificação de dados. Portanto, a diferença entre DA modular e DA de cadeia pública de armazenamento pode ser uma escolha melhor. Sob a premissa de versatilidade próxima, o DA modular se concentra em fornecer serviços da camada DA de blockchain, introduzindo dados históricos de gerenciamento de dados de índice mais refinados, que podem classificar razoavelmente diferentes dados da cadeia pública e armazenar dados da cadeia pública. Tem mais vantagens do que. No entanto, a solução acima não leva em conta o custo de ajustar a camada de consenso na cadeia pública existente. Este processo é extremamente arriscado. Quando ocorrem problemas, isso pode levar a vulnerabilidades sistêmicas e fazer com que a cadeia pública perca o consenso da comunidade. Portanto, se for uma solução transitória durante o processo de expansão da blockchain, o armazenamento temporário mais simples da cadeia principal pode ser mais adequado. Finalmente, a discussão acima é baseada no desempenho durante a operação real. No entanto, se o objectivo de uma determinada cadeia pública é desenvolver a sua ecologia e atrair mais partes e participantes do projecto, ela também pode preferir projectos que sejam apoiados e financiados pela sua fundação… Por exemplo, quando o desempenho global é equivalente ou mesmo ligeiramente inferior ao das soluções de armazenamento em cadeia pública, a comunidade Ethereum também tenderá a projetos de Camada 2 apoiados pela Fundação Ethereum, como o EthStorage, para continuar a desenvolver o ecossistema Ethereum.

Em suma, as funções da blockchain atual estão se tornando cada vez mais complexas, o que também traz maiores requisitos de espaço de armazenamento. Quando há nós de verificação de Camada 1 suficientes, os dados históricos não precisam ser copiados por todos os nós em toda a rede. Somente quando o número de backups atinge um determinado valor é que a segurança relativa pode ser garantida.. ao mesmo tempo, A divisão do trabalho nas cadeias públicas também se tornou cada vez mais detalhada., A camada 1 é responsável pelo consenso e execução, o Rollup é responsável pelo cálculo e verificação e um blockchain separado é usado para armazenamento de dados. Cada parte pode se concentrar em uma determinada função sem ser limitada pelo desempenho de outras partes. No entanto, quanta quantidade específica de armazenamento ou que proporção de nós deve ser permitida para armazenar dados históricos pode alcançar um equilíbrio entre segurança e eficiência, e como garantir a interoperabilidade segura entre diferentes blockchains, esta é uma questão que exige que os desenvolvedores de blockchain pensem sobre e melhorar continuamente. Investidores, ainda prestem atenção ao principal projeto DA específico da cadeia no Ethereum, porque o Ethereum já tem apoiadores suficientes nesta fase e não precisa depender de outras comunidades para expandir sua influência. O que é mais necessário é melhorar e desenvolver a sua comunidade e atrair mais projetos para o ecossistema Ethereum. No entanto, para cadeias públicas em posição de catch-up, como Solana e Aptos, a cadeia única em si não tem uma ecologia tão completa, por isso pode estar mais inclinada a unir forças com outras comunidades para construir uma enorme ecologia entre cadeias. para expandir a influência. Assim, o emergente Layer1, DA geral de terceiros, merece mais atenção.


Kernel Ventures é um fundo de capital de risco criptográfico impulsionado pela comunidade de pesquisa e desenvolvimento com mais de 70 investimentos em estágio inicial focados em infraestrutura, middleware, dApps, especialmente ZK, Rollup, DEX, blockchains modulares e integração de áreas verticais para bilhões de usuários criptográficos em o futuro, como abstração de contas, disponibilidade de dados, escalabilidade, etc. Nos últimos sete anos, temos o compromisso de apoiar o crescimento das principais comunidades de desenvolvimento e associações universitárias de blockchain em todo o mundo.

Isenção de responsabilidade:

  1. Este artigo foi reimpresso de [espelho]. Todos os direitos autorais pertencem ao autor original [Kernel Ventures Jerry Luo]. Se houver objeções a esta reimpressão, entre em contato com a equipe do Gate Learn e eles cuidarão disso imediatamente.
  2. Isenção de responsabilidade: As opiniões e pontos de vista expressos neste artigo são exclusivamente do autor e não constituem qualquer conselho de investimento.
  3. As traduções do artigo para outros idiomas são feitas pela equipe do Gate Learn. A menos que mencionado, é proibido copiar, distribuir ou plagiar os artigos traduzidos.
เริ่มตอนนี้
สมัครและรับรางวัล
$100
ลงทะเบียนทันที