Funcionamento IPFS - questão de integridade

O IPFS é um sistema interplanetário de arquivos totalmente distribuído, sem um servidor central. Todo arq que tem seu upload no IPFS fica em mais de uma maquina por toda a rede, assim não será mais apagado, é imutável e totalmente seguro.

Em diversas pesquisas aprendi que muitos arquivos, além de estarem em multiplicidade em diferentes maquinas, o próprio arquivo é quebrado em partes e criptografado, assim apenas o cidadão de posse da chave privada pode acessar as pequenas partes do arquivo em diferentes maquinas, uni-las e ler por completo. Sei que a maioria dos arquivos em IPFS é transparente, ou seja, acessível por qualquer um da rede, então creio q essa parte da criptografia que comentei é uma “funcionalidade diferente em algum IPFS diferente”, não sei bem como funciona e em que situação.

É muitíssimo importante esse tipo de rede pois NFTs e arquivos compartilhados em blockchains nada mais são que hashs apontando para um hash de endereço em um IPFS, sendo assim, no registro da transação que ficará na blockchain estará apenas um JSON com vários hashs e valores, sendo um deles o endereçamento criptografado da NFT. O arquivo real da NFT está no IPFS e ele tem a função distribuir em várias maquinas.

Por esse motivo acredito que o IPFS é a rede mais importante para storage de arquivos, pois a blockchain que segurará a integridade de transferências entre as carteiras, mas será o IPFS que cria o banco de dados em diversas maquinas controlando as cópias.

Uma situação também importante de comentar é a forma que diversas maquinas possuem o mesmo arquivo. No momento em que vc está na rede IPFS e acessa um arquivo, esse arquivo agora passa a fazer parte do cache de sua maquina, sendo vc um nodo-servidor desse arquivo acessado. Nessa questão existem alguns questionamentos:

  1. Minha maquina como servidor possuirá uma base limite para storage de dados, sendo assim os arquivos acessados por ultimo não ficarão mais disponíveis na minha maquina como servidor, já que os novos acessados vão “sobrescrevendo o acesso” a eles?
  2. Continuando a questão 1, e se um arquivo não é acessado por muitas maquinas dentro da rede IPFS, sendo assim não haverá local para esse arquivo ficar… onde ele ficará? haverá o perigo de ficar em apenas uma maquina e assim não será mais descentralizado? (pois só uma maquina, ou nenhuma, terá o arquivo)…
  3. Continuando o pensamento, se os arquivos nessa rede são imutáveis, pois seus acessos são via hashs, significa que a carga desse banco de dados descentralizado só aumenta e depende de nodos presentes na rede, computadores de usuarios mesmo, para a rede estar de pé. Por isso, será que a quebra dessa rede não pode vir a acontecer daqui uns anos? Já que é muito arquivo, muita memoria sendo utilizada e nenhuma parte sequer dela pode ser deletada… é carga infinita…
1 curtida

Pontos 1 e 2, essa é uma característica do protocolo IPFS, para alguém armazenar um arquivo no cache da sua máquina é necessário algum incentivo para isso, logo a tendência é que apenas conteúdos com acessos constantes sejam mantidos em memória, conteúdos perenes que são acessados por longos períodos de tempo tenderiam a permanecer em memória, o quanto que conteúdos de “vida curta”, como notícia, tendem sair pool de memória.

Ponto 3, existe esse tendência do quantidade de memória aumentar indefinidamente, como resultado anteriormente os conteúdos podem ser “apagados”, no caso substituídos por outros conteúdos, o protocolo tem meios de poupar armazenamento sem que aja perca de informação, como por exemplo, se eu mando um texto 1 para a rede e posteriormente eu manda um texto 2 com pequenas alterações, como correções ortográficas, o texto 2 não é salvo por completo, é salvo apenas as alterações e o que é igual é referenciado.

Não creio que o protocolo seja largamente adotado pois ele acaba dependendo de “solidariedade espontânea”, ou seja, que as pessoal optem por ceder cachê para o protocolo ou que existam varias aplicações que usem o protocolo, o que me parece difícil devido ao fato de um conteúdo poder ser perdido, exemplo, o Twitter poderia funcionar no protocolo IPFS e quem quisesse usar o app seria abrigado a ceder algum cachê, problema, ou o conteúdo antigo acabaria sendo perdido ou o Twitter teria que obrigar os usuários a cederem cada vez mais cachê.

Eu acredito que possa haver futuramente um protocolo semelhante ao IPFS que se utiliza-se de incentivos econômicos para o armazenamento, exemplo, IPFS poderia operar em uma segunda camada para a lightning network, onde quem enviasse um conteúdo para o pool de memória do protocolo pudesse também enviar um valor monetário em BTC para garantir a perpetuidade do conteúdo, semelhante a contratar hospedagem, mas de modo anônimo, por fim, o valor em BTC vai sendo enviado aos poucos para quem fizer o armazenamento do conteúdo que não estive sendo demandado, desse modo aplicações como o Twitter passariam a considerar migrar para o protocolo, pois para que o conteúdo não seja perdido basta eles gastarem o que eles já gastam com os servidores deles, mais a vantagem do conteúdo ser incensurável e vantagem associadas ao fato de o conteúdo ser acessado de n servidores ao invés de apenas um, o que dentre outras vantagens resulta em economia de banda. Outras aplicações que também seriam possíveis seriam drives pessoais ou de empresas, onde os dados estariam criptografados, naturalmente ninguém teria interesse em armazenar dados ilegíveis, porém, seria possível pagar uma assinatura em BTC para o drive e o drive usaria parte do valor arrecado para garantir o armazenamento, de modo totalmente anônimo e descentralizado, praticamente qualquer tipo de aplicação atual, ao meu ver, seria possível de ser implementado nesse protocolo.

2 curtidas

Nunca tinha ouvido falar no IPFS. Numa leitura simples de poucas linhas do resumo que tem no GitHub consta que a intenção do projeto é ser uma nova plataforma WEB. A ideia de arquivos distribuídos é bem antiga, como tiozão da turma me lembro da época em que a internet era discada e acessada via linha telefônica (por fios) e internet a gente usava da meia noite em diante até as 6 da manhã, quando a tarifa era única enquanto no resto do dia se pagava pelo tempo conectado… não existia spotify, deezer etc… mas existia Kazaa, Emule etc…

Com base no que foi exposto até aqui pelos colegas, em princípio, me pareceu apenas e tão somente um sistema parecido com a nuvem com a finalidade “apenas” de “guardar” arquivos de forma distribuída sem que se saiba quem é o autor ou dono do arquivo. Sob este ponto de vista bem limitado concordo com o Pedro que a falta de incentivo é um ponto a ser melhorado.

Por outro lado, falando como alguém que não conhece o IPFS, me preocuparia mais com o fato de abrir uma porta no meu PC/Notebook para que outras pessoas desconhecidas, de qualquer local do mundo e nem sempre bem intencionadas possam guardar arquivos sob minha responsabilidade. O que me garante que não vou guardar em casa ou no escritório coisas como pornografia infantil (não é quem e sim o que)? Criptografia por si só não garante a inviolabilidade dos arquivos. Tanto pode ser revelado sob pressão, exposto sem querer ou quebrado no curso de alguma investigação. E se gente com muito poder de investigação por acaso descobrir que no meu equipamento tem coisas deste tipo. Me parece que estando no meu equipamento a responsabilidade será minha e vou pagar o pato.

Apenas com o intuito de colaborar com a discussão e para os eventuais interessados em se aprofundar no assunto posto alguns links:

É possível baixar o paper do projeto no link:
IPFS - Content Addressed, Versioned, P2P File System.

GitHub:

2 curtidas

Mas ai temos um ponto. Quem está fazendo upload dos arquivos não pode escolher as maquinas que serão os servidores, além de que o arquivo é quebrado em partes e disponibilizado apenas com identificadores únicos. Sendo assim, quem acessar as partes servirá a partir desse ponto como servidor da parte acessada, não sendo sua responsabilidade caso o arq seja, como citou, de pornografia infantil.
Aqui tem um pouco sobre essa divisão do arquivo em partes e como gateways trabalham: 🥇 ▷ Como o Sistema Interplanetário de Arquivos (IPFS) pode descentralizar uma rede » ✅

2 curtidas

Perfeito!
Mas se for assim (pontos 1 e 2), toda documentação disponibilizada de blockchains está em risco, e essa prática aumenta a cada dia.
Imagina uma NFT de macaquinho não ser acessada por muito tempo e sair do cache de tds as maquinas IPFS, o comprador dessa NFT de 40000eth perde o endereço do hash que esta citado no contrato inteligente e simplesmente perde td.

2 curtidas

Sim, ao meu ver esse é um problema da rede, lembrando que, individualmente, qualquer um pode escolher o que manter em cache, de modo que se você for um dos principais interessados em manter aquela informação, você pode individualmente manter ela independente da quantidade de acessos.

2 curtidas

Se eu não me engano (essa não é minha área de especialidade), existe jurisprudência no Brasil para que você não seja penalizados nesses casos, por causa de outros protocolos p2p.

https://youtu.be/wmVX7AzF2H4

Nesse vídeo do Peter do canal safesrc, ele fala de um vpn p2p gratuito, onde você acessa conteúdo pela máquina de outras pessoas e o mesmo da contra parte, no vídeo ele explica brevemente que em caso da justiça ir atrás de você por conteúdo ilegal acessado da sua máquina, bastaria comprovar que você apenas estava se utilizando de sistema p2p legalizado que você não teria maiores problemas.

2 curtidas