É preciso replicar os dados suficientemente para garantir sua entrega ao mesmo tempo que é preciso desincentivar o spam na rede sem comprometer a privacidade dos usuários. Por isso, o CachePoW vêm com uma proposta mais adequada à estas necessidade, armazenando os dados com maior eficiência e privacidade.
Ao mandar um arquivo para a rede, o usuário envia também a hash checksum do mesmo (que garante sua integridade) e uma prova de trabalho proporcional ao tamanho do arquivo. Quanto maior o arquivo, mais processamento ele empregará, desincentivando assim o abuso do armazenamento da rede.
Essa prova de trabalho trata-se de um “puzzle” matemático que exige uma certa quantidade de processamento para ser resolvido, assim demandando tempo e energia elétrica. No entanto sua validação é instantânea e não exige significativa computação dos nodes.
Um algorítimo útil para tal funcionalidade seria o blake2b, usado na criptomoeda Nano para evitar spam de transações, já que a mesma não possui taxas. O sistema é inspirado no Hashcash, um algoritimo de prova de trabalho criado inicialmente para impedir ataques spam e Denial of Service em serviços de email; também serviu para a mineração do Bitcoin. Com Blake2b podemos adicionar 2 parametros: hash e dificuldade. O dispositivo do usuário então realiza diversas tentativas até conseguir um resultado válido que satisfaça a dificuldade. Quanto maior a dificuldade, mais tempo leva-se pra obter o trabalho, porém a verificação continua sendo instantânea. O Blake2b, em particular usado pela Nano (com certa modificação), também possui a vantagem de, até o momento, ser resistente à ASICs (super computadores especializados em resolver esses tipos de cálculos matemáticos).
No sistema do CachePoW, cada nó pode ter um nounce específico pra Prova de Trabalho ou fazer parte de uma federação de nodes, que usariam o mesmo nounce e demais regras de armazenamento e poderiam sincronizar-se automaticamente uns com os outros. Assim estes exigiriam sua própria prova-de-trabalho e então segurariam o arquivo do usuário pelo tempo combinado.
O armazenamento dos dados é adequado sob demanda, pois caso os usuários não atualizem o PoW do arquivo, ele simplesmente poderá ser deletado para dar espaço a novos arquivos. Porém, os usuários não precisam ficar online 100% do tempo, apenas eventualmente mandarem a nova prova de trabalho, isto permite, por exemplo, que os arquivos mais acessados continuam sempre online.
Cada node definir por quanto tempo cada arquivo com um PoW padrão ficará online, assim rejeitando novos arquivos.
O PoW pode estar associado também à um timestamp, que cada node aceita se considerar numa faixa de sincronização adequada e/ou cada node/federação de nodes pode impedir acumulação de PoW criando nounces dinamicos.
Ao exigir nada mais que o conteúdo do arquivo, a hash e a prova de trabalho do mesmo, nenhuma informação extra é exigida do usuário, assim se o mesmo utilizar proxies como Tor, VPN e etc poderá armazenar seus dados de forma totalmente anônima na rede.
O CachePoW pode ser comparável à um CDN descentralizado, distribuindo conteúdo em diversos servidores espalhados geograficamente pelo mundo, anônimos ou não. De fato, nada impede os nodes de também estarem anônimos, talvez com a desvantagem de uma pequena perda de velocidade na rede.
Tudo isso garante não só a privacidade do usuário, como bloqueia a tirânica censura que tanto vivemos nos dias atuais. Sistemas de moderação autônomos e descentralizados podem continuar existindo, mas individuais ou por consenso (voluntário) por meio de blacklists compartilhadas... este processo pode ser delegado e em alguns casos automatizado por inteligencia artificial.
Pela simplicidade do protocolo, ao exigir apenas a hash e prova de trabalho, diversas camadas de protocolos podem ser desenvolvidas encima do CachePoW, como adicionar metadados aos arquivos, permitindo que diversas aplicações encontre-os facilmente usando seu próprio protocolo.
Chats, redes sociais, blogs, trackers p2p, plataformas de download P2P e de streaming que usem os CachePoW para armazenar os metadados das midias, jogos online e etc são exemplos de usos; as possibilidades são inimagináveis.
Qualquer um pode desenvolver seu protocolo encima do CachePoW, seja deixando os dados “crus” e transparentes, seja usando métodos de encapsulamento de dados, escolhendo seus proprios algoritimos de criptografia, assinaturas para garantir autenticidade dos dados, usando links e hashs referentes de outras redes e etc.
Um dos problemas da descentralização é que ela multiplica os custos computacionais. Enquanto que num sistema centralizado a informação pode ser armazenada num único computador com ou sem backup, numa rede descentralizada costuma-se replicar o conteúdo para todos os nós.