IPFS ou InterPlanetary File System, é um sistema de arquivos descentralizado que visa garantir a segurança, privacidade e resistência à censura de seus dados.
O projeto InterPlanetary File System ou Sistema de Arquivos Interplanetario é um projeto curioso com um objetivo bastante claro: criar uma rede de computadores com alcance global que permita o armazenamento de informações de forma totalmente descentralizada, com alta escalabilidade e, claro, com grande resistência a censuras de qualquer natureza.
Você pode imaginá-lo como uma enorme rede que contém enormes quantidades de informações espalhadas por todo o mundo e que você pode acessar de forma totalmente transparente e segura. Sem dúvida, o complemento perfeito para a Internet cada vez maior, cujo alcance agora atinge até os menores aparelhos eletrônicos, como relógios, despertadores e até cafeteiras.
IPFS, o início do projeto
IPFS é uma ideia que vem da mente de Juan Benet, um programador que em 2014 fundou a empresa Protocol Labs. No entanto, não foi até 2015, quando Benet apresentou o IPFS ao mundo. A ideia é construir um Rede P2P que permite a quem dela faz parte, armazenar e distribuir informações de forma totalmente descentralizada em todo o planeta. O sistema funciona com base na conhecida tecnologia de tabela de hash distribuída ou DHT, o mesmo que é usado no Protocolo BitTorrent, do qual o IPFS obtém algumas funções para sua rede P2P.
Desde então, o IPFS tem sido um projeto em constante desenvolvimento e a versão 0.26.0 deste sistema está atualmente disponível. Apesar de ser uma versão em desenvolvimento, o IPFS atualmente permite a implantação de muitas de suas funções finais de forma estável, e muitas delas ainda estão em constante aperfeiçoamento, deixando claro que é um sistema que já podemos utilizar hoje.
Um sistema de arquivos para a Internet
Por que o IPFS foi criado? Bem, basicamente a criação do IPFS vem para resolver uma necessidade de espaço de armazenamento gigantesco que está em constante expansão com a Internet atual que temos. Estima-se que em 2019 um total de 42 zettabytes de informação foi gerado em todo o mundo. Ou seja, 42 bilhões de terabytes de informação adicional a todos os dados que já foram gerados nos anos anteriores.
Mas o principal problema com esses dados é que acabam nas mãos de terceiros que geralmente exploram o mesmo para suas diversas atividades econômicas. Por exemplo, não é incomum que empresas como a Meta peguem seus dados em sua rede social e os usem para vendê-los a terceiros interessados em informações que possam advir de seus gostos ou atividades, a fim de criar perfis que lhes permitam oferecer outros produtos e serviços. Pode parecer inocente, mas não é. Na verdade, isso é uma violação da sua privacidade, pois não apenas seus dados na rede social são usados, mas toda a sua atividade dentro e até fora da rede é rastreada, para que possa ser vendida a terceiros.
Outras empresas como o Google Drive, por sua vez, são capazes de analisar o que você escreve e salva em seus servidores, e no caso de encontrar algo que "viole seus regulamentos", eles simplesmente o excluirão de seus servidores, sem lhe dar o direito de proteger essas informações em outro meio. Em suma, as grandes empresas de Internet usam seus dados para vendê-los e praticam uma censura intolerável em todos os sentidos.
O IPFS nasceu para resolver esse problema. A ideia do IPFS é transformar a forma como os dados são armazenados, deixando-os completamente descentralizados, e o controle de acesso a eles está em suas mãos o tempo todo. Além disso, o IPFS permite que nosso computador armazene dados de um site e os forneça a quem precisar. Bom, isso é o IPFS, e se você não está enganado, é parecido com o que o BitTorrent faz para compartilhar arquivos, só que, nesse caso, o protocolo estaria integrado a aplicativos e sites como os que usamos o tempo todo, facilitando a interação com IPFS completamente transparente.
Não apenas isso, com o IPFS, a capacidade de armazenamento mundial aumentaria drasticamente. E isso porque nossos computadores se tornariam parte daquele enorme disco de dados que armazenará informações de toda a Internet. Isso ajudaria a resolver (ou diminuir significativamente) a necessidade de espaço de armazenamento para atender à demanda em todo o mundo. Além disso, ajudaria a descentralizar a rede, e até permitiria manter um histórico completo daquelas informações que nos interessam em uma rede resistente e sem censura.
Como funciona o IPFS?
IPFS é um sistema que funciona sob o esquema de “busca por conteúdo”, ou seja, toda vez que realizamos uma busca no IPFS, devemos informar ao sistema “o que estamos procurando” ao invés de dizer “onde procurar”.
Vamos dar uma olhada no que tudo isso significa por um momento e usar a Internet atual como exemplo. Quando visitamos um site na Internet, o que nosso navegador faz é o seguinte:
- Pegue a URL ou endereço e execute uma consulta DNS, para descobrir em qual endereço IP esse servidor está localizado.
- Depois de ter o endereço IP, o navegador faz uma solicitação de informações ao servidor e começa a baixar as informações.
- Mostra-nos as informações do URL que indicamos.
Esta é uma forma bastante simplificada de tudo o que acontece sempre que usamos nosso navegador da web. Este tipo de operação é chamado"busca por localização”, e é chamado assim porque precisamos saber onde a informação está “localizada” para acessá-la. Essa localização é o endereço IP do servidor, e daí vem aquela situação que ninguém quer, se o servidor cair, você não vai conseguir acessar a informação que procura, pois a localização não está disponível.
No entanto, no caso do IPFS, a "busca por conteúdo" funciona de forma completamente diferente. Na verdade, podemos decompor da seguinte forma:
- Você diz ao sistema qual conteúdo está procurando.
- O sistema recebe sua solicitação de informações e a envia para a rede, onde os nós do sistema começarão a responder a você. Além disso, essas informações são
protegidas por criptografia, um sistema de hashing de dados e assinatura digital, para evitar que alguém acesse sem permissão. - Você receberá a resposta dos nós mostrando as versões do conteúdo disponíveis em toda a rede.
- Se você escolher uma opção, poderá acessar o conteúdo e até mesmo todo o seu histórico, pois se essa opção foi exibida é porque está ativa na rede no momento da sua solicitação.
Isso significa que o IPFS faz pesquisas que são definidas pelo conteúdo e nas quais os nós da rede respondem. Por exemplo, se quiser entrar na Bit2Me Academy em IPFS, basta escrever Bit2Me Academy, e os nós que armazenam informações deste site irão mostrar-lhe todo o conteúdo que guardaram, podendo aceder a qualquer momento.
DHT, o ponto de partida do IPFS
O ponto de partida do IPFS é a tabela de hash distribuída ou DHT. Esta função é responsável por criar um hash único e irrepetível para cada um dos conteúdos dentro do sistema. Além disso, também se encarrega de permitir a criação de um índice de busca global para toda a rede distribuída, garantindo que o conteúdo da rede não seja duplicado e permitindo que as buscas sejam redirecionadas para os nós corretos para que possamos acessar a informação sempre que quisermos.
Simplificando, o DHT cria uma enorme biblioteca de hashes únicos e irrepetíveis que nos permitem pesquisar rapidamente o conteúdo que queremos. Para este sistema, o IPFS usa o conhecido Hash SHA-256, o mesmo usado no Bitcoin e em muitas outras criptomoedas. A razão? É simples de implementar, seguro e o hardware atual pode realizar os cálculos, permitindo que esse trabalho exija pouco poder computacional na geração dos hashes.
Um DAG para gerenciar a rede
Outra parte importante de como o IPFS funciona é que sua rede é estruturada em um enorme DAG ou gráfico acíclico direcionado. Nesse caso, o IPFS DAG é especificamente um Merkle DAG, ou seja, aquele em que cada nó tem um identificador único que é um hash do conteúdo do nó.
O Merkle DAG usado é apenas uma pequena modificação do que seria uma blockchain, onde cada bloco possui um Merke Root e os dados do referido bloco são resumidos. Nesse sentido, a construção DAG foi escolhida em vez da blockchain por uma razão técnica muito poderosa: O IPFS é executado de forma assíncrona e é mais escalável. Além disso, é um design onde a imutabilidade total não é seu objetivo (embora seja possível configurar o sistema para ser imutável) e, claro, não há necessidade de proteção contra ataques como gasto duplo, ataque de 51%, entre outros.
Dado esse cenário técnico, o IPFS DAG foi projetado para permitir o redirecionamento mais eficiente de conteúdo e pesquisa entre os nós. Além disso, um Merkle DAG permite a criação de “históricos de mudança” que permitem rastrear a alteração individual de arquivos em momentos diferentes, permitindo navegar por eles sem problemas. Desta forma, podemos preservar não apenas a versão mais recente de um site, mas também todo o seu histórico desde o seu surgimento até o seu momento mais atual. Além disso, esse recurso permite a aplicação de três funções importantes:
- A primeira é a conhecida "desduplicação" que nos impede de ter conteúdo duplicado no nó e em toda a rede.
- O segundo é conhecido como "armazenamento delta", no qual são criados pequenos arquivos que nos permitem saber exatamente qual conteúdo foi alterado entre as diferentes versões. Assim, tomando um determinado conteúdo de base e adicionando os respectivos deltas, podemos recriar um conteúdo mais atual (ou mais antigo) do que o conteúdo de base que foi obtido.
- Por fim, a terceira função é que este DAG permite que a rede participe do acesso do usuário a determinadas informações. Assim, por exemplo, se um dado está em 2 ou mais nós, o usuário pode iniciar o download das informações de todos esses locais, melhorando o tempo de download e a resposta geral da rede.
Privacidade em IPFS
No entanto, a ideia de armazenar nossos dados em computadores espalhados pelo mundo não é algo que muitos gostam. O perigo que isso pode representar para a nossa privacidade é imenso, então: Como o IPFS resolve esse problema?
Bem, antes de tudo, você deve saber que tudo no IPFS está dentro de uma rede pública. Assim, qualquer um pode acessá-lo tendo um cliente para ele. Portanto, todos os dados que você colocar no IPFS farão parte do DHT e do Merkle DAG da rede, deixando claro que tudo está acessível.
Isso é algo que pode ser resolvido graças ao fato de IPFS ser um sistema de software livre e qualquer pessoa ou grupo de desenvolvedores pode adicionar essa função à rede, permitindo anonimizar os dados e até adicionar criptografia avançada para protegê-los de acessos não autorizados. Este é, de fato, o caso de vários projetos que utilizam o IPFS para sua operação.
Casos de uso IPFS
Agora, vamos conhecer alguns casos de uso bastante marcantes dessa tecnologia:
Filecoin
Em plena febre da ICO de 2017, e procurando uma forma de financiar sua ideia, a ICO de Filecoin, um projeto irmão criado por Juan Benet e sua empresa Protocol Labs. A ideia do Filecoin é criar um Sistema de incentivo pelo qual os usuários do IPFS se sentem incentivados a armazenar os arquivos que outros desejam armazenar. O Filecoin permite que as pessoas aluguem espaço de armazenamento que pode ser pago usando o token FIL.
A história do Filecoin começou em 2017, e só neste dia 29 de outubro de 2020 é que finalmente saiu a sua rede. O lançamento do projeto gerou muita atenção e neste momento a rede já armazena cerca de 1,4 Exabytes de informação. Além de uma capitalização de mercado que excede $ 1200 bilhão e um custo de mais de $ 29 por token FIL.
Audius
Audius é uma plataforma de compartilhamento de música e áudio projetada para fornecer aos artistas um link direto para seus ouvintes. Usando tecnologia descentralizada, Audius é capaz de conceder aos artistas direitos e controle sobre sua própria música. Tudo isso, por meio de uma plataforma resistente à censura para expressão e distribuição de obras e composições artísticas. Para criar uma plataforma de propriedade e operação do usuário, era fundamental ter uma rede de armazenamento em nuvem distribuída como base para o sistema. A Audius usa o IPFS como o componente principal do armazenamento descentralizado em sua missão de dar a todos a liberdade de compartilhar, monetizar e ouvir qualquer áudio.
OpenBazaar
O OpenBazaar é uma plataforma de e-commerce ponto a ponto na qual compradores e vendedores podem participar anonimamente e de forma privada, sem coleta de dados por provedores ou qualquer outra autoridade central. A plataforma OpenBazaar é desenvolvida pela OB1, que também criou o Haven, uma versão móvel do OpenBazaar que oferece compras, bate-papo e a capacidade de enviar criptomoedas de forma privada.
IPFS serve como camada de armazenamento de dados para OpenBazaar e Haven. Na rede, comerciantes e compradores podem executar nós de armazenamento, eliminando a necessidade de um servidor central. Ao usar o IPFS para criar esta rede colaborativa, o OpenBazaar permite que compradores e vendedores negociem sem risco. Riscos como coleta de dados centralizada ou ameaça de invasão de suas informações pessoais.
A OB1 tem desenvolvido com sucesso o IPFS desde 2015. A rede ponto a ponto habilitada pelo IPFS permite que a equipe forneça uma plataforma onde as pessoas troquem mercadorias livremente. Além de permitir que a OB1 seja apenas um provedor de tecnologia. Isso significa não um vendedor de produtos, "dono" da rede ou parte em questões comerciais entre pares.
Prós e contras do IPFS
Entre os prós do IPFS podemos citar:
- O sistema de armazenamento é totalmente descentralizado.
- A rede é construída para ser altamente escalonável.
- A rede pode resistir a ataques de negação de serviço, entre outros, porque é totalmente descentralizada. Desta forma, o acesso oportuno às informações é garantido em todos os momentos.
- Seu uso é totalmente gratuito, e o código-fonte está disponível sob licença de software livre.
- É extensível, o que permite a qualquer pessoa adaptar novas funções sem maiores problemas. Por exemplo, podem ser adicionados módulos de privacidade, conexão a TOR, I2P, entre outros.
Por seus contras, podemos citar:
- É um desenvolvimento ainda em evolução, por isso a sua utilização na produção ainda não é muito extensa.
- É complexo de usar para usuários inexperientes neste tipo de sistema.
- Ele não tem extensões de privacidade por padrão.
- Ao contrário de projetos como o SIA, o IPFS não foi projetado com um modelo de incentivo em seu núcleo. Por causa disso, eles tiveram que desenvolver projetos separados como o Filecoin, que são limitados em sua integração.