Na LOAD temos aplicado a tecnologia blockchain em diversos projetos, explorando diferentes formas de utilização, testando diferentes arquiteturas e mantendo-nos atualizados para melhor responder aos novos desafios. Este artigo é a conclusão da nossa última sessão de investigação e formação focada em Web 3.0.
Para esta formação, começámos por relembrar o estado atual da Web 3.0, os seus fundamentos básicos sem aprofundarmos muito na parte técnica da blockchain (já tínhamos realizado algumas formações sobre os conceitos sobre Bitcoin, desenvolvimento de smart contracts em EOS e Solana). Decidimos focar mais nos prós e contras, bem como nos desafios que a Web 3.0 precisa de ultrapassar para deixar de ser o futuro e virar o presente. Com base nesta análise, apresentamos as diferentes arquiteturas para desenvolvimento de Dapps, aquelas que já implementamos e o que podemos estudar mais para aplicar no futuro com base nas tecnologias disponíveis para desenvolvimento.
Então, a Web 1.0 foi a primeira versão da internet. As suas origens remetem a um projeto chamado Advanced Research Projects Agency Network (ARPANET), que foi a primeira wide-area packet switched network. Foi inventada para descentralizar informações devido ao receio de um ataque nuclear durante a Guerra Fria.
A principal característica da Web 1.0 é que ela é baseada em dados somente de leitura, informações estáticas e hiperligações para navegação. Pode, portanto, ser encarada como uma digitalização de um dicionário ou enciclopédia do mundo real.
A Web 2.0 é a evolução da Web 1.0 e visa adicionar recursos de interação do utilizador e a criação de conteúdo para a web. Atualmente, vivemos na era Web 2.0, sendo esta a era dominante. A Web 2.0 caracteriza-se pelo facto de se concentrar verdadeiramente no design UX/UI para o utilizador final e oferecer uma variedade de novas formas de interação com a web, como, por exemplo: redes sociais, sistemas de reputação, comentários, meios de comunicação ou blogs.
Então, se tudo na Web 2.0 parece estar bem, por que precisamos de uma terceira?
Bem, existem algumas desvantagens que precisam ser ultrapassadas. Na Web 2.0, muitos dados são centralizados em enormes data centers de propriedade pertencente a apenas algumas grandes empresas de tecnologia. Já foram revelados imensos escândalos sobre a venda de dados de utilizadores sem o seu consentimento. Por causa destes dois problemas existe a lei RGPD na Europa que obriga as empresas a não utilizarem indevidamente os dados dos utilizadores, mas seria muito melhor se os utilizadores não dependessem do bom comportamento das grandes empresas e se conseguissem assumir o controlo das suas vidas.
A Web 3.0 foi criada com base nos problemas de centralização que mencionei anteriormente. A Web 3.0 não está totalmente definida e continuamos a enfrentar inúmeros problemas que não permitem a sua adoção em massa. Podemos dizer que a base da Web 3.0 é a blockchain, pois esta tecnologia permite-nos resolver alguns dos problemas previamente definidos. A blockchain é uma rede descentralizada na qual é possível reduzir a dependência das grandes empresas e devolver o poder ao utilizador. Com a Web 3.0, os utilizadores podem decidir por si que dados desejam partilhar.
Blockchains sem permissão (permissionless blockchains) são públicas e eliminam a necessidade de ter terceiros a mediar as operações. Estas permitem novas formas de monetização onde os utilizadores podem ser pagos pela criação de conteúdo e todos os dados são resistentes à censura e completamente verificáveis.
Tendo em consideração os problemas da Web 2.0 e o que a Web 3.0 acarreta, será a Web 3.0 per si uma solução para todos os problemas associados à propriedade de dados e às questões de privacidade?
Bem, do ponto de vista da propriedade dos dados, talvez possamos concordar que isto resolve o problema quase diretamente. Os utilizadores podem recuperar o poder e decidir por si como desejam partilhar os seus dados e até mesmo se desejam receber uma compensação por fazê-lo. Se pensarmos do ponto de vista da política de proteção de dados, isto não está totalmente correto e ainda existem alguns problemas por resolver. A própria Web 3.0 traz consigo muito mais responsabilidade para os utilizadores, o que é ótimo por si só e um problema ao mesmo tempo. Parece ser mais difícil interagir com as tecnologias e, por vezes, é muito difícil recuperar algumas perdas (em alguns casos até impossível).
Portanto, é muito importante que possamos proteger os utilizadores e cumprir as regulamentações de privacidade atuais para tornar a participação das pessoas mais segura. Ouvimos muitas vezes que a blockchain é anónima, mas isso não é totalmente verdade. A maioria das blockchains são pseudónimas, o que significa que o nosso utilizador ou nós mesmos somos representados por algo (geralmente endereços), dificultando conectar todos os dados armazenados à própria pessoa. Porém, como a blockchain é pública e todos os registos podem ser rastreados, se houver uma conexão entre um pseudónimo e a pessoa por trás dele, todos os dados tornam-se automaticamente públicos e conectados à identidade real da pessoa. Esta é uma das questões que precisa de ser resolvida. Então, como podemos armazenar dados numa blockchain pública que deve ser verificável sem que os próprios dados e a sua afiliação se tornem conhecidos? Como podemos utilizar a blockchain para cumprir as regras do RGPD?
Para solucionar estes problemas, já existem diversos projetos e arquiteturas para desenvolvimento de Dapps.
Eis alguns exemplos:
Para conseguirmos isso, podemos usar diferentes abordagens: armazenamento de dados numa base de dados descentralizada, armazenamento de arquivos num armazenamento de arquivos descentralizado ou armazenamento de dados numa base de dados centralizada.
Os dois primeiros fariam mais sentido, mas por serem descentralizados e públicos, provavelmente teríamos o mesmo problema. Possivelmente, com a criptografia poderíamos armazenar dados encriptados e desencriptá-los somente quando necessário, mas pelo menos teríamos um carimbo (hash) dos dados armazenados que poderíamos armazenar na cadeia e manter a auditabilidade geral dos dados. A última solução é uma forma mais centralizada de resolver o problema. Por um lado, se formos explícitos e comunicarmos como é que o utilizador pode confirmar que os dados foram mantidos, fornecendo-lhe a fórmula para calcular o hash, podemos manter a veracidade e toda a rastreabilidade necessária. Por outro lado, se o servidor deixa de estar disponível, os dados ficam perdidos para sempre.
Com base nas informações anteriores, é possível entender as diferentes tecnologias que podemos utilizar para tornar as Dapps mais competentes no tratamento de questões de privacidade. Algumas das próximas tecnologias que partilhamos já foram utilizadas em alguns dos nossos projetos e outras precisamos de aprofundar mais para podermos implementar nas nossas próximas Dapps.
Com base nesta formação, foi-nos possível identificar os desafios que existem na perspetiva de proteção de dados na Web 3.0. Conseguimos identificar diferentes pontos de vista e soluções para os problemas apresentados e entendemos o que fizemos corretamente até agora e o que podemos melhorar no futuro. Além de resolver problemas, devemos sempre tentar melhorar e aprender as melhores abordagens para a resolução de problemas, e a nossa metodologia de aprendizagem e formação traz precisamente isso para a nossa abordagem.