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
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.
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.
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
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.
Método de armazenamento de dados após Sharding, fonte da imagem: Kernel Ventures
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.
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
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.
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.
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.
Contrato EthStorage, fonte da imagem: Kernel Ventures
Método de leitura de dados Celestia, fonte da imagem: Celestia Core
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
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.
Comparação de desempenho da solução de armazenamento, fonte da imagem: Kernel Ventures
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.
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
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.
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.
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
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.
Método de armazenamento de dados após Sharding, fonte da imagem: Kernel Ventures
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.
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
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.
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.
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.
Contrato EthStorage, fonte da imagem: Kernel Ventures
Método de leitura de dados Celestia, fonte da imagem: Celestia Core
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
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.
Comparação de desempenho da solução de armazenamento, fonte da imagem: Kernel Ventures
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.