Vamos falar sobre outro projeto de armazenamento desenvolvido pela equipe @SuiNetwork, o @WalrusProtocol 🧐🧐
A empresa desenvolvedora do Sui, a Mysten Labs, na verdade, também desenvolveu um projeto de camada de dados, o @WalrusProtocol.
Walrus é um projeto focado em armazenamento de dados e disponibilidade de dados. Após minha pesquisa, a única sensação que tive foi – "incrível". Este é o melhor projeto de armazenamento que já vi.
Abaixo está o texto principal,
Os projetos de armazenamento descentralizado podem ser divididos em duas categorias principais.
A primeira categoria adota o método de replicação completa (full replication), trocando eficiência por segurança, ou seja, cada nó armazena uma cópia completa dos dados, representando os projetos @Filecoin e Arweave.
A segunda categoria utiliza o método de código de correção de erros Reed-Solomon, que divide os dados originais em fragmentos, representando projetos como @Storj e Sia.
————————————————————————————————
Explicando os códigos de correção de erros (Erasure Codes) de forma simples
A forma de armazenamento dos códigos de correção de erros (Erasure Codes) precisa ser explicada. Para ser rigoroso, ela divide o arquivo original em f+1 fragmentos originais, gerando 2f fragmentos adicionais de reparo (repair slivers), onde cada nó de armazenamento guarda um fragmento diferente, e qualquer f+1 fragmentos podem reconstruir o arquivo original.
Ok, você pode pular esta parte técnica e olhar para a próxima.
Suponha que precisamos armazenar 4 números importantes: [3, 7, 2, 5], esses 4 números são nossos "fragmentos originais".
Em seguida, precisamos gerar fragmentos adicionais,
Fragmento de reparo 1 = 3 + 7 + 2 + 5 = 17
Fragmento de reparo 2 = 3×1 + 7×2 + 2×3 + 5×4 = 47
Fragmento de reparo 3 = 3×1² + 7×2² + 2×3² + 5×4² = 131
Agora temos 7 fragmentos: [3, 7, 2, 5, 17, 47, 131], certo?
Suponha que o sistema tenha 7 nós, e distribuímos assim,
Zhang San: 3
Li Si: 7
Wang Wu: 2
Zhao Liu: 5
Qian Qi: 17
Sun Ba: 47
Zhou Jiu: 131
Suponha que Li Si, Zhao Liu e Zhou Jiu perderam os dados, e temos apenas: [3, _, 2, _, 17, 47, _].
Como podemos recuperar os dados originais?
Lembra-se da fórmula dos fragmentos adicionais? Exato, resolvemos um sistema de equações lineares.
3 + X + 2 + Y = 17
3×1 + X×2 + 2×3 + Y×4 = 47
Assim, obtemos X=7, Y=5.
Claro, este é apenas um exemplo muito simples.
Você só precisa lembrar do efeito que os códigos de correção de erros alcançam. O efeito é que, desde que mais de 1/3 dos nós estejam funcionando, os dados podem ser recuperados.
Em outras palavras, em um sistema de códigos de correção de erros, os nós só precisam armazenar fragmentos de dados, e desde que mais de 1/3 dos nós estejam operacionais, os dados podem ser recuperados, mas os nós precisam ser estáveis, pois o custo de substituição é alto.
Mas em um sistema de replicação completa, é necessário ter nós completos que baixem todas as cópias dos dados.
O primeiro sacrifica parte da segurança em troca de baixo custo, enquanto o segundo sacrifica redundância em troca de segurança e estabilidade do sistema.
————————————————————————————————
Inovação dos códigos de correção de erros bidimensionais (two-dimensional, 2D) do Walrus
A abordagem do Walrus, na verdade, elimina o ponto intermediário, alcançando um certo equilíbrio entre os dois. O núcleo também utiliza códigos de correção de erros, mas criou uma tecnologia inovadora chamada Red Stuff.
O Red Stuff utiliza uma forma de codificação mais inteligente para fragmentar os dados. Lembra-se do exemplo anterior dos códigos de correção de erros?
Para armazenar 4 números importantes: [3, 7, 2, 5], precisamos gerar fragmentos adicionais e, por fim, resolver um sistema de equações lineares.
Vamos usar este exemplo para explicar o Red Stuff. O método de codificação do Red Stuff é um algoritmo de codificação bidimensional (two-dimensional, 2D), que você pode imaginar como um "sudoku".
3 7 25 na codificação do Red Stuff se torna,
[3 7]
[2 5]
Suponha que a regra de codificação seja,
A 3ª coluna = A 1ª coluna + A 2ª coluna
A 4ª coluna = A 1ª coluna×2 + A 2ª coluna×2
A 3ª linha = A 1ª linha + A 2ª linha
A 4ª linha = A 1ª linha×2 + A 2ª linha×2
Os fragmentos adicionais se tornam
[3 7 10 20]
[2 5 7 14]
[5 12 18 34]
[10 24 34 68]
Em seguida, distribuímos de acordo com linhas e colunas para os nós,
Zhang San: 3 7 10 20, ou seja, a primeira linha
Li Si: 2 5 7 14, a segunda linha
Wang Wu: 5 12 18 34,…
Zhao Liu: 10 24 35 68,…
Qian Qi: 3 2 5 10, a primeira coluna
Sun Ba: 7 5 12 24,…
Zhou Jiu: 10 7 18 34,…
Zheng Shi: 20 14 34 68,…
Suponha que Wang Wu perdeu os dados, ou seja, os dados da 3ª linha foram perdidos. Na verdade, ele só precisa perguntar a Zhang San da primeira linha e a Li Si da segunda linha, pedindo os números 10 e 7, respectivamente.
Novamente, resolvemos um sistema de equações lineares para obter o resultado.
A partir dos exemplos acima, que são simples, mas não tão rigorosos, podemos resumir as características do Red Stuff,
Ao recuperar dados, não é necessário ter linhas ou colunas completas, apenas os dados de posições específicas são suficientes. Essa característica pode ser chamada de "localidade".
Além disso, um número pode ser recuperado a partir de duas dimensões, ou seja, "reutilização de informações".
Além disso, para dados complexos, pode-se primeiro recuperar a dimensão que é mais "fácil" de calcular, e depois usar os dados já recuperados para calcular a dimensão mais difícil, ou seja, "progressividade".
Na prática, suponha que um arquivo, sob a arquitetura de códigos de correção de erros, seja codificado em 301 fragmentos.
Em sistemas de códigos de correção de erros comuns, para recuperar 1 fragmento, são necessários 101 fragmentos, enquanto no Red Stuff, para recuperar 1 par de fragmentos, são necessários apenas cerca de 200 símbolos individuais.
Suponha que estamos armazenando um arquivo de 1GB, e o sistema tem 301 nós. Em sistemas comuns de códigos de correção de erros, após a falha de um nó, é necessário baixar 1GB para recuperar o fragmento, enquanto no Red Stuff, cada nó armazena: fragmento principal (3.3MB) + fragmento secundário (3.3MB) = 6.6MB.
Na recuperação, é necessário baixar apenas cerca de 10MB de dados simbólicos, economizando 99% da largura de banda.
Esse design permite que o Walrus mantenha uma rede de armazenamento descentralizada em grande escala com um custo de largura de banda extremamente baixo, reduzindo o custo de recuperação de O(|blob|) para O(|blob|/n). É por isso que o Red Stuff é chamado de "auto-reparável".
Além disso, o Walrus incorporou muitas características de segurança, como ser o primeiro protocolo a suportar desafios de armazenamento em redes assíncronas.
O que se chama de "desafio" aqui é semelhante a uma verificação aleatória da situação de armazenamento de dados dos nós, como um mecanismo otimista.
O Red Stuff adiciona compromissos criptográficos verificáveis (commitments) a cada fragmento, e cada símbolo pode ser verificado independentemente, etc.
Resumindo as características,
1) Primeiro a ser seguro em assíncrono: resolve o problema de confiança dos nós em armazenamento distribuído;
2) Auto-verificável: mecanismo de anti-falsificação embutido;
3) Progressivo: lida com mudanças dinâmicas nos nós;
4) Escalável: suporta de centenas a milhares de nós;
Encontrando o melhor equilíbrio entre segurança e eficiência.
(Parte 1 deste artigo)
Mostrar original29,03 mil
13
O conteúdo apresentado nesta página é fornecido por terceiros. Salvo indicação em contrário, a OKX não é o autor dos artigos citados e não reivindica quaisquer direitos de autor nos materiais. O conteúdo é fornecido apenas para fins informativos e não representa a opinião da OKX. Não se destina a ser um endosso de qualquer tipo e não deve ser considerado conselho de investimento ou uma solicitação para comprar ou vender ativos digitais. Na medida em que a IA generativa é utilizada para fornecer resumos ou outras informações, esse mesmo conteúdo gerado por IA pode ser impreciso ou inconsistente. Leia o artigo associado para obter mais detalhes e informações. A OKX não é responsável pelo conteúdo apresentado nos sites de terceiros. As detenções de ativos digitais, incluindo criptomoedas estáveis e NFTs, envolvem um nível de risco elevado e podem sofrer grandes flutuações. Deve considerar cuidadosamente se o trading ou a detenção de ativos digitais é adequado para si à luz da sua condição financeira.