Como implementar blockchain numa aplicação web
Fica a saber como blockchain e o bitcoin podem ser úteis para não seres enganado pelos sites de avaliações.
[Update - Ver final do post] O nosso requisito inicial era garantir um timestamp confiável. Uma prova irrefutável de que uma avaliação foi publicada em determinado momento e que está disponível para verificação. Esta prova é necessária porque:
-
Alegadamente é normal outras plataformas apagarem avaliações negativas. Ainda que juram a pés juntos que não o fazem, há centenas de relatos na internet.
-
Datas de publicações alteradas para manter o conteúdo aparentemente recente.
-
Informações removidas, ou edições abusivas, dos textos pelas equipas editoriais.
Os 3 pontos são facilmente resolvidos com blockchain. Como leigos na matéria tivemos de fazer uma pesquisa sobre as várias alternativas disponíveis. Deste ter uma implementação própria, ou usar tecnologias como o Hyperledger, Bigchain DB ou serviços como o Originstamp ou Poet.
Optamos pelo último porque é a solução que oferece menor impacto na arquitectura que já temos desenvolvida e dispõe do código open source (MIT License).
De forma simplificada, o Teamlyzer (editor), uma vez por dia, cria um pedido para cada nova avaliação através da API.
O texto de cada avaliação e os respectivos metadados vão ser guardados numa rede distribuída chamada IPFS - sistema de ficheiros peer to peer, semelhante à rede bittorrent. Nesse momento o pedido vai receber um hash que funciona como identificador único para cada avaliação.
Internamente um nó do Poet vai combinar múltiplos pedidos de múltiplos editores. Junta-os numa transacção única que ancora todos os pedidos recebidos num determinado espaço de tempo e envia-a para a blockchain do Bitcoin. A partir desse momento fica impossível alterar o timestamp.
O que é armazenado no blockchain é apenas um hash que agrega os outros hashes do directório IPFS.
O conteúdo em si, e os metadados, são arquivados na rede IPFS. O motivo é ser extremamente caro guardar informação directamente na blockchain do Bitcoin, e também, devido às limitações de protocolo.
Agregando múltiplos hashes de diferentes pedidos na mesma transacção os custos são reduzidos.
Em resumo, o Poet usa a blockchain do Bitcoin para garantir que o hash do arquivo é permanentemente armazenado em uma estrutura de dados imutável, sem a necessidade de uma autoridade central de registro de data e hora.
Com esta implementação garantimos dois aspectos importantes. Primeiro conseguimos provar-te que as avaliações do Teamlyzer não são adulteradas. Segundo, conseguimos usar blockchain com um esforço reduzido de desenvolvimento, e assim, concentrar esforços em melhorar o site.
Update 04-04-2022
Depois de um inicio fulgurante, onde constava uma equipa tecnológica de topo, o projecto Poet foi descontinuado depois de esgotar o financiamento. Uma a uma, as várias pessoas foram saindo do projecto que culminou em final de 2020 com a integração das sobras numa pequena startup chamada MadNetwork.
Por esse motivo, por agora, ainda não dispomos de uma alternativa para implementar blockchain.