Kernel Ventures: Disponibilidade de dados e design histórico da camada de dados

IntermediárioJan 11, 2024
Este artigo explora e interpreta indicadores de desempenho da, tecnologias relacionadas à DA e soluções de armazenamento em camada DA.
Kernel Ventures: Disponibilidade de dados e design histórico da camada de dados
  1. Na fase inicial do blockchain, manter a consistência dos dados é considerado extremamente importante para garantir a segurança e a descentralização. No entanto, com o desenvolvimento do ecossistema blockchain, a pressão de armazenamento também está a aumentar, levando a uma tendência de centralização na operação dos nós. Sendo esse o caso, o problema do custo de armazenamento trazido pelo crescimento do TPS na Camada1 precisa de ser resolvido com urgência.
  2. Perante este problema, os programadores devem propor uma solução que tenha em conta a segurança, o custo de armazenamento, a velocidade de leitura de dados e a versatilidade da camada DA.
  3. No processo de resolução deste problema, surgiram muitas novas tecnologias e ideias, incluindo Sharding, DAS, Verkle Tree, componentes intermédios DA e assim por diante. Tentam otimizar o esquema de armazenamento da camada DA reduzindo a redundância de dados e melhorando a eficiência da validação de dados.
  4. As soluções DA são amplamente categorizadas em dois tipos do ponto de vista do local de armazenamento de dados, nomeadamente, DAs da cadeia principal e DAs de terceiros. Os DAs da cadeia principal são concebidos a partir da perspetiva da limpeza regular de dados e do armazenamento de dados em fatias para reduzir a pressão de armazenamento nos nós, enquanto os DAs de terceiros são concebidos para servir as necessidades de armazenamento e têm soluções razoáveis para grandes quantidades de dados. Como resultado, trocamos principalmente entre compatibilidade de cadeia única e compatibilidade multi-cadeia em DAs de terceiros e propomos três tipos de soluções: DAs específicos da cadeia principal, DAs modularizados e DAs de cadeia pública de armazenamento.
  5. As cadeias públicas do tipo pagamento têm requisitos muito elevados para a segurança dos dados históricos e, portanto, são adequadas para utilização na cadeia principal como a camada DA. No entanto, para cadeias públicas que estão a funcionar há muito tempo e têm um grande número de mineiros a gerir a rede, é mais adequado adotar um DA de terceiros que não envolva a mudança de camada de consenso com segurança relativamente alta. Para cadeias públicas abrangentes, é mais adequado usar o armazenamento AD dedicado da cadeia principal com maior capacidade de dados, menor custo e segurança. No entanto, considerando a procura de cross-chain, o DA modular também é uma boa opção.
  6. No geral, a blockchain está a avançar no sentido de reduzir a redundância de dados, bem como a divisão de trabalho em várias cadeias.

1. Antecedentes

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

2. Indicadores de desempenho da

2.1 Segurança

Em comparação com estruturas de armazenamento de banco de dados ou listas vinculadas, a não comparabilidade 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.

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

2.2 Custo de armazenamento

Com a premissa de garantir a segurança básica, o próximo objetivo 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.

2.3 Velocidade de leitura de dados

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

2.4 Generalização DA

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.

3. Técnicas Relativas à DA

3.1 Sharding

  1. Num sistema distribuído tradicional, um ficheiro não é armazenado de forma completa num determinado nó. Em vez disso, os dados originais são divididos em vários Blocos e um Bloco é armazenado em cada nó. Os blocos muitas vezes não são armazenados apenas num nó mas deixam cópias de segurança apropriadas noutros nós. Nos sistemas distribuídos convencionais existentes, este número de cópias de segurança é normalmente definido como 2. Este mecanismo de Sharding pode reduzir a pressão de armazenamento de um único nó, expandir a capacidade total do sistema para a soma da capacidade de armazenamento de cada nó e, ao mesmo tempo, garantir a segurança do armazenamento através da redundância de dados apropriada. O esquema Sharding adotado na cadeia de blocos é geralmente semelhante, mas os detalhes específicos serão diferentes. Em primeiro lugar, porque cada nó na cadeia de blocos não é confiável por padrão, o processo de implementação do Sharding requer uma quantidade suficientemente grande de backup de dados para julgamento subsequente da autenticidade dos dados, portanto, o número de backups para este nó precisa ser muito mais do que 2. Idealmente, num sistema blockchain que utiliza este esquema de armazenamento, se o número total de nós de verificação for T e o número de estilhaços for N, então o número de cópias de segurança deve ser T/N. O segundo é o processo de armazenamento do Bloco. Há menos nós nos sistemas distribuídos tradicionais, pelo que um nó adapta-se frequentemente a vários blocos de dados. Primeiro, os dados são mapeados para o hash ring através do algoritmo de hash consistente e, em seguida, cada nó Armazena blocos de dados numerados num determinado intervalo e pode aceitar que um nó não aloque tarefas de armazenamento durante determinado armazenamento. Na cadeia de blocos, a atribuição de um Bloco a cada nó já não é um evento aleatório mas sim um evento inevitável. Cada nó selecionará aleatoriamente um Bloco para armazenamento. Este processo combina os dados originais com o bloco e as informações do nó. O resultado do hash dos dados é completado tomando o módulo do número de estilhaços. Supondo que cada pedaço de dados seja dividido em N Blocos, o tamanho real de armazenamento de cada nó é apenas 1/N do original. Ao definir N adequadamente, pode ser alcançado um equilíbrio entre o aumento do TPS e a pressão de armazenamento dos nós.

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

3.2 DAS(Amostragem de Disponibilidade de Dados)

A tecnologia DAS 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.

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

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

A validação de dados garante que os dados chamados de um nó 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

3.4 Middleware GENÉRICO DA

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.

4. Métodos de armazenamento de DA

4.1 Cadeia principal DA

4.1.1 Como o DankSharding-like

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.

4.1.2 Armazenamento temporário

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.

4.2 DA de terceiros

4.2.1 DA específico da cadeia principal: ETHStorage

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

Contrato ETHStorage, fonte da imagem: Kernel Ventures

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

4.2.2 Modularização DA: Celestia

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

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

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

4.2.3 Cadeia de Armazenamento DA

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

5. Comparação sintetizada

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.

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

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

6. Sumário

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.

Isenção de responsabilidade:

  1. Este artigo foi reimpresso de [espelho]. Todos os direitos autorais pertencem ao autor original [Kernel Ventures Jerry Luo]. Se houver objeções a esta reimpressão, contacte a equipa do Gate Learn, e eles tratarão disso imediatamente.
  2. Isenção de responsabilidade: As opiniões e opiniões expressas neste artigo são exclusivamente do autor e não constituem nenhum conselho de investimento.
  3. As traduções do artigo para outras línguas são feitas pela equipa do Gate Learn. A menos que mencionado, é proibido copiar, distribuir ou plagiar os artigos traduzidos.
Şimdi Başlayın
Kaydolun ve
100 USD
değerinde Kupon kazanın!
Üyelik oluştur