Uma Nova Maneira de Armazenar Grandes Dados em Blockchains
Apresentando uma solução de armazenamento feita sob medida para blockchains de consórcio como o Hyperledger Fabric.
― 10 min ler
Índice
- O Desafio de Armazenar Big Data na Blockchain
- Nossa Contribuição
- Aplicação Amigável
- Comparando DBNode com Soluções Existentes
- Soluções Existentes
- Entendendo a Blockchain de Consórcio
- Componentes Chaves no Hyperledger Fabric
- Canais e Contratos Inteligentes
- Erasure Coding
- Estrutura do DBNode
- Visão Geral do Sistema
- Arquitetura do DBNode
- Mecanismo de Controle de Acesso
- Avaliação do Sistema
- Visão Geral dos Experimentes
- Resultados dos Experimentos
- Conclusão
- Fonte original
- Ligações de referência
Armazenar grandes quantidades de dados em blockchains pode ser complicado. Blockchains precisam manter tudo em ordem entre todos os computadores conectados, o que dificulta o armazenamento de arquivos grandes. Muitos pesquisadores tentaram achar soluções para esse problema, focando especialmente em sistemas de armazenamento descentralizados. A maioria desses esforços busca criar uma solução de armazenamento que sirva para diferentes tipos de blockchains. No entanto, blockchains de consórcio têm necessidades especiais, incluindo privacidade e Controle de Acesso, que muitas vezes são ignoradas.
Esse trabalho apresenta um novo sistema de armazenamento voltado para o Hyperledger Fabric, uma blockchain de consórcio popular. O sistema usa uma técnica chamada erasure coding para dividir arquivos em pedaços menores e organiza esses pedaços de um jeito que torna o armazenamento eficiente e confiável. Além disso, propomos um novo método de controle de acesso usando Contratos Inteligentes para gerenciar quem pode ver e usar os arquivos.
O Desafio de Armazenar Big Data na Blockchain
A tecnologia blockchain oferece várias vantagens, como ser à prova de manipulações e descentralizada, mas ainda tem algumas desvantagens. Um dos maiores problemas é a sua capacidade de armazenamento. Certas aplicações precisam manter arquivos grandes e big data, e os métodos tradicionais de blockchain enfrentam dificuldades com isso.
Várias soluções surgiram, cada uma com seus próprios pontos fortes e fracos. Alguns métodos podem causar atrasos, não têm o controle de acesso adequado ou criam problemas de segurança e privacidade. Uma solução comum é depender de sistemas de armazenamento externos, mas isso também traz suas desvantagens.
Este artigo apresenta uma nova solução que aborda diretamente os problemas de armazenamento dentro dos nós da blockchain, permitindo uma abordagem mais tranquila sem precisar de tecnologias adicionais.
Nossa Contribuição
Nossa pesquisa gira em torno de duas ideias principais. Primeiro, criamos um método único para armazenar arquivos grandes dentro do ecossistema da blockchain, focando em segurança e integridade dos dados, garantindo também que falhas nos nós não resultem em perda de dados.
A segunda ideia envolve usar contratos inteligentes para permitir que os usuários especifiquem regras de acesso para seus arquivos. Isso significa que os clientes podem definir quem pode acessar os arquivos, com que frequência e estabelecer limites para a recuperação.
Para colocar essas ideias em prática, usamos o Hyperledger Fabric e incorporamos a tecnologia de erasure coding. Também apresentamos o "DBNode", um novo tipo de nó projetado para esse sistema. Para atender nossos objetivos, desenvolvemos um sistema de slots de hash em duas camadas e uma estratégia de espelhamento, que explicaremos mais adiante.
Aplicação Amigável
Desenvolvemos também uma aplicação fácil de usar para o Hyperledger Fabric que permite aos clientes armazenar arquivos grandes. Os usuários não precisam se preocupar com como seus arquivos estão armazenados separadamente; eles podem simplesmente enviar seus arquivos junto com os parâmetros necessários, e a blockchain cuida do resto.
Comparando DBNode com Soluções Existentes
Para avaliar a eficácia do DBNode, realizamos testes comparando-o ao InterPlanetary File System (IPFS), uma solução de armazenamento off-chain conhecida.
Os resultados mostraram que o DBNode superou o IPFS em velocidade de recuperação de arquivos e adaptabilidade a mudanças na largura de banda da rede.
Soluções Existentes
A questão de armazenar big data na blockchain é um tópico significativo que vem sendo explorado há um tempo. Várias soluções foram propostas, incluindo o aumento do tamanho do bloco para acomodar arquivos maiores. No entanto, isso pode levar a atrasos e aumentar os recursos necessários dos nós.
Outra abordagem envolve o uso de nós leves que não armazenam a blockchain inteira. Isso pode aliviar alguns fardos de armazenamento, mas coloca pressão sobre os nós completos, o que pode levar a custos de comunicação aumentados.
Alguns pesquisadores integraram bancos de dados tradicionais com blockchain para aproveitar suas capacidades de manipulação de grandes dados. Por exemplo, o BigchainDB combina recursos do MongoDB com atributos de blockchain, enquanto outros usam Apache Cassandra ou HBase.
Embora servidores em nuvem possam armazenar arquivos grandes, eles vêm com riscos devido à sua natureza centralizada. Para resolver isso, muitos pesquisadores exploraram opções de armazenamento off-chain como o IPFS. Embora esses métodos ajudem a reduzir o tamanho da blockchain e a carga na rede, também carecem de controle de acesso forte, que é crucial para a privacidade.
Entendendo a Blockchain de Consórcio
Uma das principais diferenças entre blockchains públicas e de consórcio é a acessibilidade. Blockchains públicas são abertas a todos, enquanto blockchains de consórcio limitam o acesso a membros convidados. Esta pesquisa se concentra especificamente no Hyperledger Fabric, uma blockchain de consórcio gerida pela Linux Foundation.
No Hyperledger Fabric, as organizações precisam ser convidadas para acessar a rede. No entanto, nossa pesquisa é adaptável a outros tipos de blockchain também. Ao aproveitar os vários componentes do Hyperledger Fabric, conseguimos criar uma solução de armazenamento mais eficaz.
Componentes Chaves no Hyperledger Fabric
O Hyperledger Fabric possui vários componentes essenciais, incluindo canais, organizações e nós. Existem três tipos de nós:
Peers: Esses nós recebem transações e as verificam. Se forem válidas, os peers as armazenam e atualizam o livro-razão. Eles também podem atuar como endossadores, avaliando transações para confirmar a autorização do cliente antes de executá-las.
Clientes: Esses são os iniciadores das transações. Os clientes submetem propostas de transação para peers de endosse.
Orderers: Esses nós criam blocos de transações e os distribuem para os peers, ajudando a manter o consenso na rede.
Canais e Contratos Inteligentes
Um canal no Hyperledger Fabric é um subconjunto do livro-razão, permitindo que apenas membros selecionados acessem seus dados. Isso é útil quando há interesses competitivos ou quando as transações precisam de acesso restrito.
Dentro de cada canal, os desenvolvedores podem criar contratos inteligentes, que são conjuntos de regras que executam automaticamente. Neste contexto, contratos inteligentes ajudam a gerenciar o armazenamento e a acessibilidade de arquivos.
Erasure Coding
Erasure coding é uma técnica usada para backup de dados em sistemas de armazenamento. A ideia é dividir os dados em partes menores, permitindo que os dados originais sejam reconstruídos mesmo que algumas partes sejam perdidas.
Esse método pode tolerar falhas nos nós enquanto mantém a quantidade de dados duplicados mínima. Erasure coding é amplamente utilizado em sistemas de armazenamento populares, como o Google File System e o Hadoop.
Estrutura do DBNode
Para entender melhor a estrutura do nosso DBNode, precisamos olhar primeiro para os problemas potenciais com sistemas de armazenamento off-chain. Embora sistemas como o IPFS possam abordar as limitações de armazenamento da blockchain, eles também trazem desafios como redução de segurança e preocupações com a privacidade.
Em contraste, nossa solução mantém tudo dentro da rede da blockchain, garantindo melhor controle e privacidade.
Visão Geral do Sistema
Este artigo apresenta um nó único chamado "DBNode", projetado para armazenar arquivos grandes de forma eficiente dentro do framework do Hyperledger Fabric.
Inicialmente, cada organização envolvida nesta rede configura um ou mais DBNodes. Entre esses nós, o que tiver as melhores condições de rede é designado como nó mestre.
Quando os clientes enviam arquivos grandes, a aplicação divide esses arquivos em pedaços usando erasure coding. Cada pedaço recebe um identificador único, que é organizado em uma estrutura definida. A aplicação gerencia o armazenamento desses pedaços em vários DBNodes.
Um contrato inteligente também é estabelecido para acompanhar quais pedaços estão armazenados onde e para gerenciar o controle de acesso aos arquivos.
Arquitetura do DBNode
O Papel dos Slots de Hash
No nosso sistema, usamos duas camadas de slots de hash para organizar o armazenamento de dados. A primeira camada gerencia a comunicação entre organizações, enquanto a segunda camada foca na comunicação dentro de uma organização.
O nó mestre em cada organização supervisiona o armazenamento e a distribuição dos pedaços de dados, garantindo uso eficiente dos recursos.
A Estratégia de Espelhamento
Ao distribuir os pedaços de dados, podemos encontrar conflitos onde dois pedaços deveriam ir para o mesmo nó. Para resolver isso, implementamos uma estratégia de "espelhamento". Isso nos permite armazenar um pedaço em um nó diferente enquanto mantemos um link para ele no nó mestre.
Essa estratégia não só preserva a redundância dos dados, mas também permite que os clientes mantenham a privacidade controlando onde seus dados são armazenados.
Mecanismo de Controle de Acesso
No nosso sistema, usamos contratos inteligentes para definir regras de acesso. Essas regras permitem que os clientes especifiquem quem pode ver ou usar seus arquivos. Os clientes podem estabelecer listas de permissão, listas de negação e até regras de acesso baseadas em tokens.
Isso garante controle extra sobre seus dados, assegurando que informações sensíveis permaneçam seguras e acessíveis apenas para usuários autorizados.
Avaliação do Sistema
Visão Geral dos Experimentes
Para testar nosso sistema DBNode, realizamos vários experimentos. O primeiro focou em medir a sobrecarga de armazenamento causada pela estratégia de espelhamento.
Também comparamos as velocidades de leitura e escrita do nosso sistema DBNode contra o IPFS. Finalmente, testamos como nosso sistema se adaptou a mudanças na largura de banda da rede.
Resultados dos Experimentos
Sobrecarga de Armazenamento: Descobrimos que o número de links armazenados aumentou linearmente com o número de pedaços salvos. Isso significa que, quando 1.000 pedaços são armazenados, a sobrecarga para um único nó permanece gerenciável em comparação ao tamanho total do arquivo.
Latências de Escrita e Leitura: Em termos de velocidade de escrita, o DBNode levou mais tempo que o IPFS, principalmente devido à forma como distribui os dados para maior disponibilidade. No entanto, a velocidade de leitura foi notavelmente melhor com o DBNode, especialmente para arquivos maiores.
Quando testamos sob diferentes condições de largura de banda, os resultados mostraram que o sistema DBNode poderia lidar eficientemente com velocidades mais baixas sem impactos significativos no desempenho.
Conclusão
Nossa pesquisa introduz uma solução inovadora para armazenar arquivos grandes em blockchains. Ao integrar métodos de armazenamento diretamente nos nós da blockchain, reduzimos a complexidade para os usuários enquanto preservamos as qualidades da tecnologia blockchain. Durante nossos testes, notamos pequenas sobrecargas no armazenamento e na velocidade de escrita, mas essas foram mínimas em comparação com os benefícios de usar o DBNode.
Os clientes ganham maior privacidade e controle sobre seus arquivos através do uso de contratos inteligentes e técnicas de erasure coding. Como a recuperação de arquivos é comum e crítica, nossos achados afirmam que o DBNode é superior a soluções existentes como o IPFS para recuperar arquivos grandes.
Trabalhos futuros vão focar em comparar o DBNode com outras soluções de armazenamento e melhorar as velocidades de escrita.
Título: DBNode: A Decentralized Storage System for Big Data Storage in Consortium Blockchains
Resumo: Storing big data directly on a blockchain poses a substantial burden due to the need to maintain a consistent ledger across all nodes. Numerous studies in decentralized storage systems have been conducted to tackle this particular challenge. Most state-of-the-art research concentrates on developing a general storage system that can accommodate diverse blockchain categories. However, it is essential to recognize the unique attributes of a consortium blockchain, such as data privacy and access control. Beyond ensuring high performance, these specific needs are often overlooked by general storage systems. This paper proposes a decentralized storage system for Hyperledger Fabric, which is a well-known consortium blockchain. First, we employ erasure coding to partition files, subsequently organizing these chunks into a hierarchical structure that fosters efficient and dependable data storage. Second, we design a two-layer hash-slots mechanism and a mirror strategy, enabling high data availability. Third, we design an access control mechanism based on a smart contract to regulate file access.
Autores: Narges Dadkhah, Xuyang Ma, Katinka Wolter, Gerhard Wunder
Última atualização: 2024-09-30 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2409.20123
Fonte PDF: https://arxiv.org/pdf/2409.20123
Licença: https://creativecommons.org/licenses/by-nc-sa/4.0/
Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.
Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.