Como um livro-razão distribuído, a blockchain precisa de armazenar dados históricos em todos os nós para garantir a segurança e a descentralização suficiente do armazenamento de dados. Uma vez que a exatidão de cada alteração de estado está relacionada com o estado anterior (fonte da transação), para garantir a exatidão das transações, uma cadeia de blocos deve, em princípio, armazenar todos os registos 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. Para além do próprio bloco, um nó completo também precisa de registar o estado e os recebimentos da transação. Contando esta parte, a capacidade total de armazenamento de um único nó excedeu 1 TB, o que concentra o funcionamento do nó a algumas pessoas.
A última altura de bloco do Ethereum, fonte da imagem: Etherscan
Em comparação com estruturas de armazenamento de banco de dados ou listas vinculadas, a não comparabilidade da blockchain vem da capacidade de verificar dados recém-gerados através de dados históricos. Portanto, garantir a segurança dos dados históricos é o primeiro problema a ser considerado no armazenamento da camada DA. Ao julgar a segurança dos dados dos sistemas blockchain, analisamo-la frequentemente a partir da quantidade de redundância de dados e do método de verificação da disponibilidade de dados.
Com a premissa de garantir a segurança básica, o próximo objetivo central que a camada DA precisa atingir é 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 na 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 pelos 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 significa muitas vezes uma diminuição da segurança. Portanto, uma excelente camada DA precisa alcançar um equilíbrio entre o custo de armazenamento e a segurança dos dados. Além disso, se a camada DA for uma cadeia pública separada, precisa de reduzir o custo minimizando o processo intermédio de troca de dados. Em cada processo de transferência, os dados do índice têm de ser deixados para chamadas de consulta subsequentes. Portanto, quanto mais longo for o processo de chamada, mais dados de índice serão deixados e o custo de armazenamento aumentará. Finalmente, o custo do armazenamento de dados está diretamente ligado à durabilidade dos dados. De um modo geral, quanto maior o custo de armazenamento de dados, mais difícil é para a cadeia pública armazenar dados de forma persistente.
Depois de atingir a redução de custos, o próximo passo é aumentar a eficiência, que é a capacidade de retirar rapidamente os dados da camada DA quando precisam de ser utilizados. 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 pode 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 ficheiros do tipo Memtable. Quando o armazenamento Memtable estiver cheio, o tipo de ficheiro será alterado de Memtable para Immutable Memtable. Ambos os tipos de ficheiros são armazenados na memória, mas os ficheiros Memtable imutáveis já não podem ser alterados, apenas os dados podem ser lidos a partir deles. O armazenamento quente utilizado na rede IPFS armazena dados nesta parte. Quando se chama, pode ser lido rapidamente da memória. No entanto, a memória móvel de um nó comum é muitas vezes no nível de GB, e é fácil escrever lentamente. Quando um nó falha 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, precisa armazená-los na forma de um ficheiro SST numa unidade de estado sólido (SSD). No entanto, ao ler os dados, precisa primeiro ler os dados na memória, o que reduz muito a velocidade de indexação dos dados. Finalmente, para sistemas que utilizam armazenamento partilhado, a restauração de dados requer o envio de pedidos de dados para vários nós e a 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 DeFie e vários problemas com o CEX, os requisitos dos utilizadores para transações entre cadeias de ativos descentralizados também estão a crescer. Independentemente do mecanismo de cadeia cruzada de bloqueio de hash, 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 de 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 só armazena os dados históricos de várias 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 requer 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 baseia-se na otimização adicional dos métodos de armazenamento Sharding. Durante o processo de Sharding, devido ao simples armazenamento aleatório de 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, estes dois problemas são resolvidos através do código Eraser e do compromisso polinomial KZG.
A validação de dados garante que os dados chamados de um nó são precisos e completos. Para minimizar a quantidade de dados e o custo computacional necessários no processo de validação, a camada DA usa agora uma estrutura em árvore como o método de validação convencional. A forma mais simples é usar a Merkle Tree para verificação, que usa a forma de registos completos da árvore binária, só precisa manter uma raiz Merkle e o valor de hash da subárvore do outro lado do caminho do nó pode ser verificado, a complexidade de tempo da verificação é o nível O (LogN) (o logN é logN padrão log2 (N)). Embora o processo de validação tenha sido bastante simplificado, a quantidade de dados para o processo de validação em geral continua a crescer com o aumento dos dados. Para resolver o problema do aumento do volume de validação, é proposto outro método de validação, Verkle Tree, nesta fase, em que cada nó na Árvore Verkle não só armazena o valor mas também anexa um Compromisso Vector, que pode validar rapidamente a autenticidade dos dados usando 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. Isto faz com que o número de cálculos para cada verificação esteja relacionado apenas com a profundidade da Árvore Verkle, que é uma constante fixa, acelerando assim muito a velocidade de verificação. No entanto, o cálculo do Compromisso Vector 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. No entanto, para dados como dados históricos, que são armazenados permanentemente e não podem ser adulterados, também, só podem ser lidos mas não escritos, a Árvore Verkle é extremamente adequada. Além disso, a Merkle Tree e a própria Verkle Tree têm uma forma de variantes K-ary, a implementação específica do mecanismo é semelhante, basta alterar o número de subárvores sob cada nó, a comparação de desempenho específica pode ser vista na tabela a seguir.
Comparação de desempenho temporal 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 nos seus respectivos campos, é quase impossível que as cadeias públicas de Camada 1 se unifiquem num curto espaço de tempo. No entanto, com o desenvolvimento do DeFie e vários problemas com o CEX, os requisitos dos utilizadores para ativos de negociação cross-chain descentralizados também estão a crescer. Portanto, o armazenamento de dados multi-cadeia 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, o kvye, um middleware de armazenamento baseado no Arweave, pega ativamente os dados da cadeia e todos os Dados na cadeia são armazenados no Arweave de uma forma padrão para minimizar as 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 através de nós partilhados internos. Embora reduza o custo da interação e melhore a segurança, tem limitações relativamente grandes e só pode fornecer dados a cadeias públicas específicas que fornecem serviços.
Este tipo de solução de armazenamento ainda não tem um nome definido, e o representante mais proeminente é o DankSharding no Ethereum, pelo que 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 partilhas apropriadas através da 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 estilhaços N, de modo que a pressão de armazenamento de cada nó seja apenas 1/N do original, conseguindo assim N vezes a expansão do espaço de armazenamento total. Ao mesmo tempo, para evitar a situação extrema em que um determinado Bloco não está armazenado em nenhum bloco, o DankSharding codifica os dados usando um Código Eraser, e apenas metade dos dados podem ser completamente restaurados. O último passo é o processo de verificação de dados, que utiliza a estrutura da árvore Verkle e o compromisso polinomial para conseguir uma verificação rápida.
Para o DA da cadeia principal, um dos métodos de processamento de dados mais simples é armazenar dados históricos a curto prazo. Em essência, a 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 os seus dados históricos estejam sincronizados com o Arweave, o nó da rede principal apenas retém os dados da transação dos últimos dois dias. Na cadeia pública com base nos registos da conta, os dados históricos em cada momento mantêm o estado final da conta na cadeia de blocos, o que é suficiente para fornecer uma base de verificação para as alterações no momento seguinte. Para projetos que tenham necessidades especiais de dados antes deste período, podem armazená-los eles próprios noutras cadeias públicas descentralizadas ou por um terceiro de confiança. Por outras palavras, aqueles que têm necessidades de dados adicionais precisam de 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 da cadeia principal, muitas tecnologias semelhantes ao Sharding são emprestadas da cadeia pública de armazenamento. Entre os anúncios de terceiros, alguns utilizam diretamente a cadeia pública de armazenamento para concluir algumas tarefas de armazenamento. Por exemplo, os dados específicos da transação 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 com a 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 gama de armazenamento dos nós comuns. A solução que Solana escolheu é armazenar dados históricos na rede de armazenamento descentralizada Arweave, e apenas reter 2 dias de dados nos principais nós da rede para verificação. Para garantir a segurança do processo armazenado, a Solana e a Arweave Chain conceberam especialmente um protocolo de ponte de armazenamento, Solar Bridge. Os dados verificados pelo nó Solana serão sincronizados com o Arweave e a etiqueta correspondente será devolvida. Só através desta etiqueta, o nó Solana pode ver os dados históricos da cadeia de blocos Solana a qualquer momento. No Arweave, não há necessidade de todos os nós de rede manterem a consistência dos dados e usarem isso como um limite para participar nas operações de rede. Em vez disso, o armazenamento de recompensas é adotado. Em primeiro lugar, o Arweave não usa uma estrutura de cadeia tradicional para construir blocos mas é mais semelhante a uma estrutura gráfica. No Arweave, um novo bloco não só apontará para o bloco anterior, mas também apontará aleatoriamente para um bloco de recall gerado. A localização específica do Bloco de Recall é determinada pelo resultado hash do seu bloco anterior e pela altura do bloco. A localização do Bloco de Recall é desconhecida até que o bloco anterior seja extraído. No entanto, no processo de geração de um novo bloco, o nó precisa de ter dados do Bloco de Recall para usar o mecanismo POW para calcular o hash da dificuldade especificada. Só o primeiro mineiro a calcular o hash que satisfaz a dificuldade pode obter a recompensa, o que incentiva os mineiros a armazenar o máximo possível. dados históricos. Ao mesmo tempo, quanto menos pessoas armazenarem um determinado bloco histórico, os nós terão menos concorrentes ao gerar nonces que satisfaçam a dificuldade, incentivando os mineiros a armazenar menos blocos na rede. Finalmente, para garantir que os nós armazenem dados permanentemente no Arweave, introduz o mecanismo de pontuação de nós do WildFire. Os nós tenderão a comunicar com nós que podem fornecer mais dados históricos mais rapidamente, enquanto os nós com classificações mais baixas são muitas vezes incapazes de obter os dados mais recentes de bloco e transação o mais rápido possível e, portanto, não podem tirar proveito da competição de POW...
Método de construção do bloco Arweave, fonte da imagem: Arweave Yellow-Paper
Em seguida, vamos comparar as vantagens e desvantagens das cinco soluções de armazenamento com base nas quatro dimensões dos indicadores de desempenho DA.
Comparação do desempenho da solução de armazenamento, fonte da imagem: Kernel Ventures
A blockchain atual está a passar por uma transformação da Crypto para a Web3 mais inclusiva. Este processo traz não só uma riqueza de projetos na cadeia de blocos. Para acomodar a operação simultânea de tantos projetos na Camada1 enquanto garante 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 os novos blockchains, o número de blockchains de alto desempenho também está a crescer. Mas um TPS mais elevado não significa apenas um desempenho superior, 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 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 aplicabilidade diferente em diferentes situações.
Os blockchains que se concentram no pagamento têm requisitos extremamente elevados para a segurança dos dados históricos e não perseguem TPS particularmente elevado. Se este tipo de cadeia pública ainda estiver em fase de preparação, pode ser adoptado um método de armazenamento semelhante ao Danksharding-, que pode alcançar um enorme aumento na capacidade de armazenamento enquanto garante a segurança. No entanto, se for uma cadeia pública como a Bitcoin que já tomou forma e tem um grande número de nós, existem enormes riscos em melhorias precipitadas na camada de consenso. Portanto, a cadeia principal dedicada da DA com maior segurança no armazenamento fora da cadeia pode ser usada para equilibrar problemas de segurança e armazenamento... No entanto, vale a pena notar que as funções da blockchain não são estáticas mas mudam constantemente. 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 blockchain continua a expandir-se, vários projetos Socialfi e Defi foram gradualmente adicionados ao Ethereum. Faça o Ethereum desenvolver-se numa direção mais abrangente. Recentemente, com a explosão da ecologia da inscrição no Bitcoin, as taxas de transação da rede Bitcoin subiram quase 20 vezes desde agosto. Isso reflete que a velocidade de transação da rede Bitcoin nesta fase não pode atender à demanda de transação, e os comerciantes só podem aumentar as taxas para fazer as transações processadas o mais rápido possível. Agora, a comunidade Bitcoin precisa de fazer uma troca, seja para aceitar taxas elevadas e velocidades de transação lentas ou reduzir a segurança da rede para aumentar as velocidades de transação mas derrotar a intenção original do sistema de pagamento. Se a comunidade Bitcoin escolher o último, então, face ao aumento da pressão dos dados, a solução de armazenamento correspondente também precisará ser ajustada.
Taxas de transação da rede principal Bitcoin flutuam, fonte da imagem: OKLINK
As cadeias públicas com funções abrangentes têm uma maior procura de TPS, e o crescimento dos dados históricos é ainda maior. É difícil adaptar-se ao rápido crescimento do TPS a longo prazo através da adoção de uma solução tipo Danksharding. Portanto, uma maneira mais apropriada é migrar os dados para um AD de terceiros para armazenamento. Entre eles, o DA principal específico da cadeia tem a maior compatibilidade e pode ter mais vantagens se apenas forem considerados os problemas de armazenamento de uma única cadeia pública. Mas hoje, quando as cadeias públicas de Camada 1 estão a florescer, a transferência de ativos entre cadeias e a interação de dados tornaram-se uma perseguição comum da comunidade blockchain. Se o desenvolvimento a longo prazo de todo o ecossistema blockchain for levado em consideração, armazenar 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 o DA modular e o modo AD de cadeia pública de armazenamento pode ser a melhor escolha. Sob a premissa de uma grande versatilidade, o DA modular concentra-se no fornecimento de serviços de camada de DA blockchain, introduzindo dados históricos de gestão 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 tem em conta o custo de ajustar a camada de consenso na cadeia pública existente. Este processo é extremamente arriscado. Uma vez que os problemas ocorrem, 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 baseia-se no desempenho durante a operação real. No entanto, se o objetivo de uma determinada cadeia pública é desenvolver a sua ecologia e atrair mais partes do projeto e participantes, também pode preferir projetos que são apoiados e financiados pela sua fundação... Por exemplo, quando o desempenho geral é 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 de hoje estão a tornar-se 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 de ser copiados por todos os nós em toda a rede. Só quando o número de cópias de segurança 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 uma cadeia de blocos separada é usada para armazenamento de dados. Cada parte pode concentrar-se numa 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 uma interoperabilidade segura entre diferentes blockchains, este é um problema que exige que os desenvolvedores de blockchain pensem e melhorem continuamente. Investidores, mas prestem atenção ao principal projeto de DA específico da cadeia no Ethereum, porque o Ethereum já tem apoiantes suficientes nesta fase e não precisa de depender de outras comunidades para expandir a 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 recuperação, 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 de cadeia cruzada para expandir a influência. Assim, o emergente Layer1, AD geral de terceiros merece mais atenção.
O Kernel Ventures é um fundo de capital de risco cripto impulsionado pela comunidade de investigação e desenvolvimento com mais de 70 investimentos em fase inicial focados em infraestruturas, middleware, DApps, especialmente ZK, Rollup, DEX, blockchains modulares e onboarding Áreas verticais para milhares de milhões de utilizadores de cripto no futuro, tais 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, a blockchain precisa de armazenar dados históricos em todos os nós para garantir a segurança e a descentralização suficiente do armazenamento de dados. Uma vez que a exatidão de cada alteração de estado está relacionada com o estado anterior (fonte da transação), para garantir a exatidão das transações, uma cadeia de blocos deve, em princípio, armazenar todos os registos 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. Para além do próprio bloco, um nó completo também precisa de registar o estado e os recebimentos da transação. Contando esta parte, a capacidade total de armazenamento de um único nó excedeu 1 TB, o que concentra o funcionamento do nó a algumas pessoas.
A última altura de bloco do Ethereum, fonte da imagem: Etherscan
Em comparação com estruturas de armazenamento de banco de dados ou listas vinculadas, a não comparabilidade da blockchain vem da capacidade de verificar dados recém-gerados através de dados históricos. Portanto, garantir a segurança dos dados históricos é o primeiro problema a ser considerado no armazenamento da camada DA. Ao julgar a segurança dos dados dos sistemas blockchain, analisamo-la frequentemente a partir da quantidade de redundância de dados e do método de verificação da disponibilidade de dados.
Com a premissa de garantir a segurança básica, o próximo objetivo central que a camada DA precisa atingir é 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 na 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 pelos 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 significa muitas vezes uma diminuição da segurança. Portanto, uma excelente camada DA precisa alcançar um equilíbrio entre o custo de armazenamento e a segurança dos dados. Além disso, se a camada DA for uma cadeia pública separada, precisa de reduzir o custo minimizando o processo intermédio de troca de dados. Em cada processo de transferência, os dados do índice têm de ser deixados para chamadas de consulta subsequentes. Portanto, quanto mais longo for o processo de chamada, mais dados de índice serão deixados e o custo de armazenamento aumentará. Finalmente, o custo do armazenamento de dados está diretamente ligado à durabilidade dos dados. De um modo geral, quanto maior o custo de armazenamento de dados, mais difícil é para a cadeia pública armazenar dados de forma persistente.
Depois de atingir a redução de custos, o próximo passo é aumentar a eficiência, que é a capacidade de retirar rapidamente os dados da camada DA quando precisam de ser utilizados. 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 pode 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 ficheiros do tipo Memtable. Quando o armazenamento Memtable estiver cheio, o tipo de ficheiro será alterado de Memtable para Immutable Memtable. Ambos os tipos de ficheiros são armazenados na memória, mas os ficheiros Memtable imutáveis já não podem ser alterados, apenas os dados podem ser lidos a partir deles. O armazenamento quente utilizado na rede IPFS armazena dados nesta parte. Quando se chama, pode ser lido rapidamente da memória. No entanto, a memória móvel de um nó comum é muitas vezes no nível de GB, e é fácil escrever lentamente. Quando um nó falha 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, precisa armazená-los na forma de um ficheiro SST numa unidade de estado sólido (SSD). No entanto, ao ler os dados, precisa primeiro ler os dados na memória, o que reduz muito a velocidade de indexação dos dados. Finalmente, para sistemas que utilizam armazenamento partilhado, a restauração de dados requer o envio de pedidos de dados para vários nós e a 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 DeFie e vários problemas com o CEX, os requisitos dos utilizadores para transações entre cadeias de ativos descentralizados também estão a crescer. Independentemente do mecanismo de cadeia cruzada de bloqueio de hash, 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 de 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 só armazena os dados históricos de várias 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 requer 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 baseia-se na otimização adicional dos métodos de armazenamento Sharding. Durante o processo de Sharding, devido ao simples armazenamento aleatório de 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, estes dois problemas são resolvidos através do código Eraser e do compromisso polinomial KZG.
A validação de dados garante que os dados chamados de um nó são precisos e completos. Para minimizar a quantidade de dados e o custo computacional necessários no processo de validação, a camada DA usa agora uma estrutura em árvore como o método de validação convencional. A forma mais simples é usar a Merkle Tree para verificação, que usa a forma de registos completos da árvore binária, só precisa manter uma raiz Merkle e o valor de hash da subárvore do outro lado do caminho do nó pode ser verificado, a complexidade de tempo da verificação é o nível O (LogN) (o logN é logN padrão log2 (N)). Embora o processo de validação tenha sido bastante simplificado, a quantidade de dados para o processo de validação em geral continua a crescer com o aumento dos dados. Para resolver o problema do aumento do volume de validação, é proposto outro método de validação, Verkle Tree, nesta fase, em que cada nó na Árvore Verkle não só armazena o valor mas também anexa um Compromisso Vector, que pode validar rapidamente a autenticidade dos dados usando 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. Isto faz com que o número de cálculos para cada verificação esteja relacionado apenas com a profundidade da Árvore Verkle, que é uma constante fixa, acelerando assim muito a velocidade de verificação. No entanto, o cálculo do Compromisso Vector 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. No entanto, para dados como dados históricos, que são armazenados permanentemente e não podem ser adulterados, também, só podem ser lidos mas não escritos, a Árvore Verkle é extremamente adequada. Além disso, a Merkle Tree e a própria Verkle Tree têm uma forma de variantes K-ary, a implementação específica do mecanismo é semelhante, basta alterar o número de subárvores sob cada nó, a comparação de desempenho específica pode ser vista na tabela a seguir.
Comparação de desempenho temporal 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 nos seus respectivos campos, é quase impossível que as cadeias públicas de Camada 1 se unifiquem num curto espaço de tempo. No entanto, com o desenvolvimento do DeFie e vários problemas com o CEX, os requisitos dos utilizadores para ativos de negociação cross-chain descentralizados também estão a crescer. Portanto, o armazenamento de dados multi-cadeia 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, o kvye, um middleware de armazenamento baseado no Arweave, pega ativamente os dados da cadeia e todos os Dados na cadeia são armazenados no Arweave de uma forma padrão para minimizar as 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 através de nós partilhados internos. Embora reduza o custo da interação e melhore a segurança, tem limitações relativamente grandes e só pode fornecer dados a cadeias públicas específicas que fornecem serviços.
Este tipo de solução de armazenamento ainda não tem um nome definido, e o representante mais proeminente é o DankSharding no Ethereum, pelo que 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 partilhas apropriadas através da 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 estilhaços N, de modo que a pressão de armazenamento de cada nó seja apenas 1/N do original, conseguindo assim N vezes a expansão do espaço de armazenamento total. Ao mesmo tempo, para evitar a situação extrema em que um determinado Bloco não está armazenado em nenhum bloco, o DankSharding codifica os dados usando um Código Eraser, e apenas metade dos dados podem ser completamente restaurados. O último passo é o processo de verificação de dados, que utiliza a estrutura da árvore Verkle e o compromisso polinomial para conseguir uma verificação rápida.
Para o DA da cadeia principal, um dos métodos de processamento de dados mais simples é armazenar dados históricos a curto prazo. Em essência, a 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 os seus dados históricos estejam sincronizados com o Arweave, o nó da rede principal apenas retém os dados da transação dos últimos dois dias. Na cadeia pública com base nos registos da conta, os dados históricos em cada momento mantêm o estado final da conta na cadeia de blocos, o que é suficiente para fornecer uma base de verificação para as alterações no momento seguinte. Para projetos que tenham necessidades especiais de dados antes deste período, podem armazená-los eles próprios noutras cadeias públicas descentralizadas ou por um terceiro de confiança. Por outras palavras, aqueles que têm necessidades de dados adicionais precisam de 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 da cadeia principal, muitas tecnologias semelhantes ao Sharding são emprestadas da cadeia pública de armazenamento. Entre os anúncios de terceiros, alguns utilizam diretamente a cadeia pública de armazenamento para concluir algumas tarefas de armazenamento. Por exemplo, os dados específicos da transação 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 com a 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 gama de armazenamento dos nós comuns. A solução que Solana escolheu é armazenar dados históricos na rede de armazenamento descentralizada Arweave, e apenas reter 2 dias de dados nos principais nós da rede para verificação. Para garantir a segurança do processo armazenado, a Solana e a Arweave Chain conceberam especialmente um protocolo de ponte de armazenamento, Solar Bridge. Os dados verificados pelo nó Solana serão sincronizados com o Arweave e a etiqueta correspondente será devolvida. Só através desta etiqueta, o nó Solana pode ver os dados históricos da cadeia de blocos Solana a qualquer momento. No Arweave, não há necessidade de todos os nós de rede manterem a consistência dos dados e usarem isso como um limite para participar nas operações de rede. Em vez disso, o armazenamento de recompensas é adotado. Em primeiro lugar, o Arweave não usa uma estrutura de cadeia tradicional para construir blocos mas é mais semelhante a uma estrutura gráfica. No Arweave, um novo bloco não só apontará para o bloco anterior, mas também apontará aleatoriamente para um bloco de recall gerado. A localização específica do Bloco de Recall é determinada pelo resultado hash do seu bloco anterior e pela altura do bloco. A localização do Bloco de Recall é desconhecida até que o bloco anterior seja extraído. No entanto, no processo de geração de um novo bloco, o nó precisa de ter dados do Bloco de Recall para usar o mecanismo POW para calcular o hash da dificuldade especificada. Só o primeiro mineiro a calcular o hash que satisfaz a dificuldade pode obter a recompensa, o que incentiva os mineiros a armazenar o máximo possível. dados históricos. Ao mesmo tempo, quanto menos pessoas armazenarem um determinado bloco histórico, os nós terão menos concorrentes ao gerar nonces que satisfaçam a dificuldade, incentivando os mineiros a armazenar menos blocos na rede. Finalmente, para garantir que os nós armazenem dados permanentemente no Arweave, introduz o mecanismo de pontuação de nós do WildFire. Os nós tenderão a comunicar com nós que podem fornecer mais dados históricos mais rapidamente, enquanto os nós com classificações mais baixas são muitas vezes incapazes de obter os dados mais recentes de bloco e transação o mais rápido possível e, portanto, não podem tirar proveito da competição de POW...
Método de construção do bloco Arweave, fonte da imagem: Arweave Yellow-Paper
Em seguida, vamos comparar as vantagens e desvantagens das cinco soluções de armazenamento com base nas quatro dimensões dos indicadores de desempenho DA.
Comparação do desempenho da solução de armazenamento, fonte da imagem: Kernel Ventures
A blockchain atual está a passar por uma transformação da Crypto para a Web3 mais inclusiva. Este processo traz não só uma riqueza de projetos na cadeia de blocos. Para acomodar a operação simultânea de tantos projetos na Camada1 enquanto garante 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 os novos blockchains, o número de blockchains de alto desempenho também está a crescer. Mas um TPS mais elevado não significa apenas um desempenho superior, 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 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 aplicabilidade diferente em diferentes situações.
Os blockchains que se concentram no pagamento têm requisitos extremamente elevados para a segurança dos dados históricos e não perseguem TPS particularmente elevado. Se este tipo de cadeia pública ainda estiver em fase de preparação, pode ser adoptado um método de armazenamento semelhante ao Danksharding-, que pode alcançar um enorme aumento na capacidade de armazenamento enquanto garante a segurança. No entanto, se for uma cadeia pública como a Bitcoin que já tomou forma e tem um grande número de nós, existem enormes riscos em melhorias precipitadas na camada de consenso. Portanto, a cadeia principal dedicada da DA com maior segurança no armazenamento fora da cadeia pode ser usada para equilibrar problemas de segurança e armazenamento... No entanto, vale a pena notar que as funções da blockchain não são estáticas mas mudam constantemente. 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 blockchain continua a expandir-se, vários projetos Socialfi e Defi foram gradualmente adicionados ao Ethereum. Faça o Ethereum desenvolver-se numa direção mais abrangente. Recentemente, com a explosão da ecologia da inscrição no Bitcoin, as taxas de transação da rede Bitcoin subiram quase 20 vezes desde agosto. Isso reflete que a velocidade de transação da rede Bitcoin nesta fase não pode atender à demanda de transação, e os comerciantes só podem aumentar as taxas para fazer as transações processadas o mais rápido possível. Agora, a comunidade Bitcoin precisa de fazer uma troca, seja para aceitar taxas elevadas e velocidades de transação lentas ou reduzir a segurança da rede para aumentar as velocidades de transação mas derrotar a intenção original do sistema de pagamento. Se a comunidade Bitcoin escolher o último, então, face ao aumento da pressão dos dados, a solução de armazenamento correspondente também precisará ser ajustada.
Taxas de transação da rede principal Bitcoin flutuam, fonte da imagem: OKLINK
As cadeias públicas com funções abrangentes têm uma maior procura de TPS, e o crescimento dos dados históricos é ainda maior. É difícil adaptar-se ao rápido crescimento do TPS a longo prazo através da adoção de uma solução tipo Danksharding. Portanto, uma maneira mais apropriada é migrar os dados para um AD de terceiros para armazenamento. Entre eles, o DA principal específico da cadeia tem a maior compatibilidade e pode ter mais vantagens se apenas forem considerados os problemas de armazenamento de uma única cadeia pública. Mas hoje, quando as cadeias públicas de Camada 1 estão a florescer, a transferência de ativos entre cadeias e a interação de dados tornaram-se uma perseguição comum da comunidade blockchain. Se o desenvolvimento a longo prazo de todo o ecossistema blockchain for levado em consideração, armazenar 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 o DA modular e o modo AD de cadeia pública de armazenamento pode ser a melhor escolha. Sob a premissa de uma grande versatilidade, o DA modular concentra-se no fornecimento de serviços de camada de DA blockchain, introduzindo dados históricos de gestão 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 tem em conta o custo de ajustar a camada de consenso na cadeia pública existente. Este processo é extremamente arriscado. Uma vez que os problemas ocorrem, 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 baseia-se no desempenho durante a operação real. No entanto, se o objetivo de uma determinada cadeia pública é desenvolver a sua ecologia e atrair mais partes do projeto e participantes, também pode preferir projetos que são apoiados e financiados pela sua fundação... Por exemplo, quando o desempenho geral é 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 de hoje estão a tornar-se 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 de ser copiados por todos os nós em toda a rede. Só quando o número de cópias de segurança 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 uma cadeia de blocos separada é usada para armazenamento de dados. Cada parte pode concentrar-se numa 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 uma interoperabilidade segura entre diferentes blockchains, este é um problema que exige que os desenvolvedores de blockchain pensem e melhorem continuamente. Investidores, mas prestem atenção ao principal projeto de DA específico da cadeia no Ethereum, porque o Ethereum já tem apoiantes suficientes nesta fase e não precisa de depender de outras comunidades para expandir a 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 recuperação, 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 de cadeia cruzada para expandir a influência. Assim, o emergente Layer1, AD geral de terceiros merece mais atenção.
O Kernel Ventures é um fundo de capital de risco cripto impulsionado pela comunidade de investigação e desenvolvimento com mais de 70 investimentos em fase inicial focados em infraestruturas, middleware, DApps, especialmente ZK, Rollup, DEX, blockchains modulares e onboarding Áreas verticais para milhares de milhões de utilizadores de cripto no futuro, tais 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.