O conteúdo aqui exposto resume o conhecimento existente sobre a rede Blockchain e outras tecnologias distribuídas enquanto espinha dorsal da Web3, e contextualiza as implicações socioeconómicas das aplicações Web3 desde Contratos Inteligentes, Tokens, DAOs até aos conceitos de dinheiro, economia, governança e finanças descentralizadas (DeFi). 

Como funciona a Blockchain

Contratos Inteligentes

Blockchain: Porque é realmente importante?

Blockchain e Contratos Inteligentes

O que são e para que servem. Descubra como a tecnologia Blockchain está a reinventar as relações entre os agentes económicos

O white paper da Bitcoin não apareceu do nada e as redes P2P não são um fenómeno novo. Têm as suas raízes na história inicial do computador e da Internet, assentando em décadas de pesquisa de redes de computadores, criptografia e teoria dos jogos.

Nessas redes de computadores de primeira geração, o foco principal era conectar uma rede pública de computadores entre si, e resolver a questão de endereçar computadores e transmitir dados. A arquitetura de rede ainda era baseada na lógica cliente-servidor, e a comunicação segura nunca foi um foco principal nos primeiros tempos da Internet, mas certos investigadores ficaram intrigados exatamente por esta questão. A pesquisa criptográfica de Ralph Merkle no início da década de 70 lançou as bases da comunicação segura através de redes P2P. O seu trabalho conceptualizou como resolver a “comunicação segura sobre canais inseguros” em cima de uma rede de computadores, e lançou as bases para a criptografia moderna de chaves públicas. Na sua dissertação, descreveu ainda um método de construção de funções de hash criptográficas resistentes à colisão. Ele também registou uma patente para um tipo especial de tabela de hash chamada Merkle Tree que permitiu uma verificação mais eficiente e segura do conteúdo de grandes estruturas de dados.

Em 1976, Whitfield Diffie e Martin Hellman construíram em cima de algumas das suas ideias e criaram um mecanismo para a troca segura de chaves criptográficas através de uma rede pública. Foi um dos primeiros exemplos implementados de troca de chaves públicas, e também introduziu o conceito de assinaturas digitais. Antes da invenção dos métodos de chave pública, as chaves criptográficas tinham que ser transmitidas fisicamente, pelo que a troca segura de chaves digitais por redes públicas terá sido um trabalho pioneiro, sem o qual a Bitcoin e as tecnologias subsequentes não funcionariam. Em 1978, Ron Rivest, Adi Shamir e Leonard Adleman encontraram uma maneira de criar uma função criptográfica unidirecional que era difícil de ser invertida. O seu algoritmo – agora conhecido como RSA – induziu a era da criptografia assimétrica, que então evoluiu para o uso de curvas elípticas na criptografia – sugeridas de forma independente por Neal Koblitz e Victor S. Miller em 1985, também uma tecnologia chave em Bitcoin.

Em redes públicas de computadores, a estrutura do sistema – topologia da rede, latência da rede e número de computadores – não é conhecida antecipadamente. A rede de computadores pode, portanto, consistir em computadores e links de rede desconhecidos e não confiáveis. O tamanho e a composição da rede também podem mudar a qualquer momento durante a execução de um programa distribuído. A capacidade de fornecer e manter um nível de serviço aceitável diante de processos falíveis é, portanto, essencial para a resiliência de uma rede. O foco da época era a transmissão de dados numa rede pública, o que já era um problema difícil de resolver. Nem o TCP nem o IP resolveram a questão de onde armazenar e como gerir os dados. Por razões económicas, o armazenamento e a gestão centralizada de dados tornou-se um problema comum. O problema com as redes cliente-servidor é que os administradores de sistemas, ou instituições que controlam os servidores, têm controlo exclusivo sobre os dados, o que torna esses sistemas propensos à censura, corrupção e ataque.

Entretanto, com o crescimento dos computadores pessoais e a introdução do Internet Protocol Suite, a Internet tornou-se mais difundida. Apesar disso, a usabilidade ainda era um problema. Tinha-se que navegar na Internet usando linhas de comando, também conhecidas como linguagem de computador. Tim Berners-Lee resolveu este problema com a sua visão para a World Wide Web. Ele introduziu um padrão para criar sites visuais com uma linguagem de markup relativamente simples, e navegar na Web com links, que apontam para outros sites com um simples clique. Do ponto de vista da publicação, a WWW permitiu que todos contribuíssem facilmente para a informação disponível na Internet. No entanto, os dados ainda eram armazenados e geridos por detrás do jardim murado dos servidores.

Em 1982, David Chaum introduziu o conceito de Blind Signatures (assinaturas cegas), que garantiu a privacidade do remetente da informação. Ele foi conceptualizado para uso em sistemas de votação e sistemas digitais de dinheiro. Chaum introduziu a ideia do Ecash” como um sistema de dinheiro eletrónico criptográfico anónimo ou sistema de dinheiro eletrónico, que foi comercializado através de sua empresa “Digicash” e utilizado como um sistema de micropagamentos num banco dos EUA de 1995 a 1998. O sistema foi dissolvido em 1998, possivelmente porque ele estava à frente de seu tempo, já que as aplicações de comércio eletrónico ainda não eram tão amplamente difundidas.

Em 1991, Stuart Haber e W. Scott Stornetta introduziram um sistema em que os carimbos temporais dos documentos não podiam ser adulterados, introduzindo os primeiros trabalhos académicos sobre uma cadeia de blocos criptografados. O seu objetivo era certificar quando um documento era criado ou modificado “num mundo em que todos os documentos de texto, áudio, imagens e vídeo estão em formato digital e em meios facilmente modificáveis”. Nas suas propostas iniciais, eles usaram serviços de timestamping (carimbos de tempo) centralizados. Eles tentaram então distribuir confiança, exigindo que vários utilizadores – que foram selecionados através de geradores de números pseudoaleatórios – imprimissem o hash, ao invés de uma instituição centralizada. Um ano depois, em 1992, Bayer, Haber e Stornetta escreveram outro artigo onde incluíam Merkle Trees no mecanismo. Isso melhorou a eficiência do sistema ao permitir que vários certificados de documentos pudessem ser coletados num bloco.

Em 1997, Adam Back introduziu o “Hashcash, a primeira função de Proof-of-Work, para limitar o spam de e-mail e os ataques de negação de serviço, forçando os computadores a investir com trabalho computacional. A ideia original foi proposta por Cynthia Dwork e Moni Naor em seu trabalho de 1992, “Pricing via Processing or Combatting Junk Mail“.

Em 2004, o conceito introduzido pela Hashcash foi também utilizado como mecanismo de mineração em “B-money”, uma proposta da Wei Dai para um “sistema de dinheiro eletrónico anónimo e distribuído”. Foi proposto na “cypherpunk mailing list“, que representava um grupo de ativistas que defendiam o uso de criptografia forte e tecnologias que melhoravam a privacidade através da Internet. Muitos dos indivíduos acima mencionados que contribuíram com tecnologias chave que mais tarde foram usadas em Bitcoin eram “cypherpunks” ativos.

Em 1998, Nick Szabo projetou um mecanismo para uma moeda digital descentralizada – BitGold” – onde ele implementou muitas das suas ideias anteriores sobre contratos inteligentes e adicionou um algoritmo de consenso baseado em PoW onde o poder computacional seria gasto para resolver enigmas criptográficos. BitGold nunca foi implementado, possivelmente porque ele não conseguia resolver o problema do gasto duplo de uma forma totalmente descentralizada e resistente a ataques sybil. Szabo foi alvo de especulação por muitos como sendo Satoshi Nakamoto, o criador anónimo da Bitcoin, mas tal é um rumor que ele sempre negou.

Em 1999, a “Napster“, uma aplicação de partilha de música, introduziu o conceito de redes P2P que mudou a forma como os dados eram armazenados e distribuídos através da Internet. A Napster criou uma rede virtual para aplicações descentralizadas de compartilhamento de ficheiros, que era independente da rede física da Internet, removendo o “ponto único de falha” dos sistemas de dados centralizados. No entanto, Napster dependia do funcionamento de servidores de indexação central, sendo assim suscetível ao encerramento, após reclamações de violação de direitos autorais e uma disputa legal.

Uma nova família de protocolos de compartilhamento de ficheiros liderada pela Gnutella em 2000 eliminou esses pontos centrais de falha. Ela permitiu que os utilizadores se encontrassem e se conectassem remotamente, buscando cada nó da rede e, portanto, era mais descentralizada e resistente à censura. Pese embora que Gnutella tenha resolvido o problema de descentralização, o problema de privacidade, porém não ficou resolvido. As redes de compartilhamento de ficheiros de terceira geração como BitTorrent utilizavam tabelas de hash distribuídas para armazenar locais de recursos em toda a rede, de forma criptografada e segura. Tabelas de hash distribuídas não apenas substituíram servidores de indexação, mas também garantiram o anonimato de seus atores de rede e todos os dados sendo compartilhados pela rede. Estas tabelas de hash distribuídas são agora também usadas por redes Blockchain e outros protocolos Web3 como IPFS e Ethereum. Embora as redes P2P, desde o surgimento do Napster, tenham resolvido o problema da distribuição eficiente de dados dentro de uma rede, elas não resolveram a validação ou verificação descentralizada dos dados. Também não resolveram o problema do free-rider, o facto de que um grande número de utilizadores usaria recursos compartilhados por outros utilizadores, sem contribuir com os próprios ficheiros. Os utilizadores não tinham um incentivo económico de curto prazo para carregar ficheiros e ao invés disso consumiam recursos enquanto degradavam o seu próprio desempenho.

Em 2004, Hal Finney introduziu um sistema PoW reutilizável (RPoW), um conceito onde o valor de um token é garantido pelo valor dos recursos do mundo real necessários para “cunhar” um token PoW. O facto de Finney ter recebido a primeira transação Bitcoin de Satoshi Nakamoto em 2009, e de aparentemente ter vivido na mesma cidade que uma pessoa chamada “Dorian Satoshi Nakamoto“, levou à especulação de que ele poderia ter sido o próprio Satoshi, um rumor que ele sempre negou.

Redes P2P modernas, como a Napster, sofreram com a falta de um mecanismo de incentivo para as contribuições das redes, e as ideias iniciais do e-cash não foram capazes de se defender contra os ataques sybil. O white paper da Bitcoin, publicado em 2008 sob o pseudónimo de Satoshi Nakamoto, resolveu essas questões propondo um mecanismo de incentivo resistente a ataques sybil para validação coletiva de dados. A Proof-of-Work resolveu o problema do free-rider das redes P2P anteriores, introduzindo incentivos tokenizados para motivar todos os atores a contribuir para o sistema de uma forma verdadeira. A Bitcoin foi proposta na sequência da crise financeira de 2008 e do colapso de grandes bancos como o Lehman Brothers. O objetivo era fornecer um sistema de dinheiro eletrónico P2P sem bancos. Enquanto as primeiras especificações foram implementadas por Satoshi, um grupo de indivíduos dedicados assumiu gradualmente a implementação de um maior desenvolvimento do código, que foi finalizado e implementado no início de 2009. Curiosamente, o white paper da Bitcoin mencionava apenas uma “cadeia de blocos”. O termo “blockchain” tornou-se generalizado anos depois, quando as pessoas começaram a replicar o código fonte da Bitcoin para desenvolver protocolos similares baseados em protocolos Blockchain.

Embora a Blockchain Bitcoin nunca tenha sido projetada com o compartilhamento de ficheiros em mente, ela acabou por inspirar uma nova classe de frameworks de armazenamento P2P, um bloco de construção crucial para a Web3. Tais redes de armazenamento descentralizadas podem agora usar o poder dos tokens para construir sobre o legado de protocolos anteriores de compartilhamento de dados, usando uma Blockchain como uma camada de estado universal. A Bitcoin também estimulou muitas pesquisas sobre mecanismos de consenso resistentes a ataques sybil. A resistência a ataques sybil, no entanto, também depende da resiliência das suposições feitas sobre como os atores da rede reagirão aos incentivos económicos. A forma como as pessoas reagem aos incentivos há muito que tem sido um campo de estudo em economia. Em 2007, Hurwicz, Maskin e Myerson ganharam o Prémio Nobel de Economia pelas suas pesquisas sobre Design de Mecanismos, um campo de pesquisa emergente.

O conteúdo aqui apresentado foi retirado do livro “Token Economy” de Shermin Voshmgir, traduzido e adaptado para português por mim, José Rui Sousa, em conjunto com António Chagas, Courtnay Guimarães e Joana Camilo, publicado sob uma licença Creative Commons CC BY-NC-SA apenas para uso não-comercial.

Se assumirmos que a WWW revolucionou a informação e que a Web2 revolucionou as interações, a Web3 tem o potencial de revolucionar os acordos e as trocas de valor. A Web3 altera as estruturas de dados na infraestrutura da Internet, introduzindo uma camada de Estado universal, muitas vezes, incentivando os atores de rede com um token. A espinha dorsal desta Web3 é representada por uma série de redes Blockchain ou outras ledgers distribuídas similares.

A Internet que temos hoje anda à deriva. Não controlamos os nossos dados, nem temos uma camada nativa de compensação de valores. Trinta anos após a adoção em massa da Internet, as nossas arquiteturas de dados ainda são baseadas no conceito do computador autónomo, onde os dados são armazenados e geridos centralmente num servidor e enviados ou recuperados por um cliente. Cada vez que interagimos através da Internet, cópias dos nossos dados são enviados para o servidor de um fornecedor de serviços e de cada vez que isso acontece, perdemos o controlo sobre os nossos dados. Como resultado e mesmo que vivamos num mundo cada vez mais conectado, os nossos dados são armazenados essencialmente de forma centralizada: em servidores locais ou remotos, nos nossos computadores pessoais, dispositivos móveis, flash drives e cada vez mais também nos nossos relógios, carros, TVs ou frigoríficos. Isto levanta questões de confiança. Posso confiar nas pessoas e instituições que armazenam e gerem os meus dados contra qualquer forma de corrupção, interna ou externa, de propósito ou por acidente? Estruturas centralizadas de dados não só levantam questões de segurança, privacidade e controlo de dados pessoais, mas também produzem muitas ineficiências ao longo da cadeia de fornecimento de bens e serviços.

As raízes históricas para estas questões remetem para a altura em que o computador precedeu a Internet. Nos primeiros dias dos computadores pessoais, uma pessoa não poderia enviar ficheiros de um computador para o outro. Seria preciso gravar o ficheiro numa disquete, dirigirmo-nos até à pessoa que precisava do ficheiro e copiar o ficheiro para o seu computador para que esta pudesse usá-lo. Se essa pessoa estivesse noutro país, seria preciso ir aos correios e enviar a disquete. O surgimento do Protocolo Internet (IP) pôs um fim a isso, conectando todos os computadores autónomos com um protocolo de transmissão de dados, o que tornou a transferência de dados mais rápida e cortou os custos de transação do intercâmbio de informações. No entanto, a Internet que usamos hoje ainda é predominantemente construída sobre a ideia do computador independente, onde a maioria dos dados são armazenados e geridos centralmente nos servidores de instituições (ditas) confiáveis. Os dados nesses servidores são protegidos por firewalls e os administradores de sistema são necessários para gerir a segurança dos dados armazenados nos servidores.

O surgimento da WWW no início dos anos 90 aumentou a usabilidade da Internet com sites visualmente atraentes e fáceis de navegar. Dez anos depois, a Internet tornou-se mais madura e programável. Assistimos à ascensão da chamada Web2, que nos trouxe redes sociais, comércio eletrónico e plataformas de conhecimento. A Web2 revolucionou as interações sociais, aproximando produtores e consumidores de informação, bens e serviços. A Web2 permitiu-nos desfrutar de interações peer-to-peer (P2P) a uma escala global, mas sempre com um intermediário: uma plataforma atuando como um intermediário confiável entre duas pessoas que não se conhecem ou confiam uma na outra. Apesar de essas plataformas de Internet terem feito um trabalho fantástico de criar uma economia P2P, elas também ditam todas as regras e controlam os dados dos seus utilizadores.

Neste contexto, as redes Blockchain parecem ser uma força motriz da próxima geração de Internet, a que alguns se referem como a Web3. Reinventam a forma como os dados são armazenados e geridos através da Internet, fornecendo um conjunto único de dados, uma camada universal de Estados – que é gerido coletivamente por todos os nós da rede. Esta camada de Estados única, é capaz de fornecer pela primeira vez à Internet uma camada de consenso quanto ao valor nativo de um ativo na ausência de intermediários. Ela permite transações verdadeiramente P2P e tudo começou com o surgimento da Bitcoin.

Enquanto a Web2 era uma revolução de front-end, a Web3 é uma revolução de back-end. A Web3 reinventa como a Internet é conectada na infraestrutura, combinando as funções de sistema da Internet com as funções de sistema dos computadores. No entanto, nada vai mudar no front-end da Internet para o utilizador comum. A Web3 representa um conjunto de protocolos, com os livros-razão distribuídos como sua espinha dorsal. A informação é gerida de forma colaborativa por uma rede P2P de computadores. As regras de gestão são formalizadas no protocolo e garantidas por maioria de consenso de todos os participantes da rede, que são incentivados com um token de rede em prol de suas atividades. O protocolo formaliza as regras de governança da rede e garante que as pessoas que não se conhecem ou confiam umas nas outras alcancem e estabeleçam acordos através da Web. O ato de tentar manipular dados num servidor centralizado assemelha-se a invadir uma casa, onde a segurança é fornecida por uma vedação e um sistema de alarme; a Web3 é projetada de tal maneira que seria necessário invadir várias casas ao redor do planeta simultaneamente, cada uma com sua própria vedação e sistema de alarme. Isto pode ser possível, pelo menos em teoria, mas proibitivamente caro.

O conteúdo aqui apresentado foi retirado do livro “Token Economy” de Shermin Voshmgir, traduzido e adaptado para português por mim, José Rui Sousa, em conjunto com António Chagas, Courtnay Guimarães e Joana Camilo, publicado sob uma licença Creative Commons CC BY-NC-SA apenas para uso não-comercial.

 

A Internet que usamos está “sem Estados”. Não tem um mecanismo nativo para transferir o que a ciência da computação se refere como “Estados”. Estados refere-se à informação, ou o status de “Quem é quem?”; “Quem detém o quê?” e “Quem tem o direito de fazer o quê?” numa rede. A capacidade de transferir valor facilmente e P2P é essencial para mercados eficientes, e os “Estados” são uma propriedade chave para gerir e transferir valores. Na Web3, os valores são representados por tokens criptograficamente seguros.

Se não se puder manter os Estados na Internet, não se pode transferir valor sem a existência de instituições centralizadas que atuem como entidades de compensação. Embora a Internet de hoje tenha acelerado a transferência de informação por ordens de magnitude como nunca foi possível antes, ainda precisamos de instituições confiáveis, como fornecedores de plataforma de Internet para mediar as nossas ações como uma solução para esta falta de Estados. Protocolos apátridas como a Web atual só gerem a transferência de informação, onde o remetente ou recetor dessa informação não tem conhecimento do Estado do outro. Esta falta de Estados é baseada na simplicidade dos protocolos em que a Web é construída, tais TCP/IP, SMTP ou HTTP. Esta família de protocolos regula a transmissão de dados, mas não como os dados são armazenados. Os dados podem ser armazenados centralmente ou de forma descentralizada. Por muitas razões, o armazenamento centralizado de dados tornou-se a forma principal de armazenamento e gestão de dados.

A introdução de cookies de sessão e prestadores de serviços centralizados ofereceu soluções de trabalho para esta Web sem Estados. Os cookies de sessão foram inventados para que as aplicações baseadas na web pudessem preservar os Estados nos dispositivos locais. Antes dos cookies de sessão, nos primeiros dias da WWW, não tínhamos histórico de navegação, nenhum site favorito salvo e nenhuma ferramenta de “auto-complete”, o que significava que tínhamos de voltar a apresentar as nossas informações de utilizador cada vez que voltávamos a usar um site. Apesar dos cookies de sessão oferecerem uma melhor usabilidade, estes cookies são criados e controlados por um fornecedor de serviços, como Google, Amazon, Facebook, o seu banco, a sua Universidade, etc., cujo papel é fornecer e gerir os Estados do seu utilizador.

As plataformas Web2 introduziram muitos serviços benéficos e criaram um valor social e económico considerável ao longo dos anos. No entanto, a riqueza foi acumulada principalmente pelas empresas que oferecem os serviços, e menos pelo público em geral que contribui com conteúdo e valor para esses serviços. Em vez de descentralizar o mundo, as plataformas Web2 contribuíram para uma recentralização da tomada de decisões económicas, de decisões de Investigação & Desenvolvimento, e, posteriormente, para uma enorme concentração de poder em torno desses fornecedores de plataformas. Além disso, uma vez que o início da Internet foi criado em torno da ideia de informação livre, os clientes muitas vezes não estavam dispostos a pagar por conteúdo on-line com uma taxa de assinatura recorrente e, na maioria dos casos, os micropagamentos ainda não eram viáveis. Portanto, muitas dessas plataformas Web2 precisavam encontrar formas alternativas de lucrar com os serviços gratuitos que forneciam e essa alternativa era a publicidade. O que se seguiu foi a publicidade orientada com base no comportamento do utilizador e a mercantilização de dados privados. Os modelos de negócio desenvolveram-se, portanto, em torno de publicidade orientada que se baseia nos conjuntos de dados recolhidos, que fornecem “Estados” para estas plataformas. Como resultado disso, os utilizadores estão a pagar por serviços através dos seus dados privados.

A rede Bitcoin introduziu um mecanismo para que cada nó da rede possa enviar e receber tokens, e em que os Estados dos tokens ficam permanentemente gravados digitalmente num formato nativo. O protocolo de consenso da rede Bitcoin é projetado de forma a que a rede possa coletivamente lembrar eventos anteriores ou interações de utilizadores, resolvendo o problema do “gasto duplo”, fornecendo uma única fonte de referência para quem recebeu o quê e quando. O protocolo Bitcoin pode, portanto, ser visto como uma mudança de paradigma, abrindo caminho para uma Web mais descentralizada. O White Paper da Bitcoin de 2008 iniciou uma nova forma de infraestrutura pública, onde os Estados de todos os tokens bitcoin são mantidos coletivamente.

As redes Blockchain, tal como a rede Bitcoin, são apenas a espinha dorsal e o ponto de partida, mas não o único bloco de construção nesta nova Web descentralizada. A arquitetura Web3 alavanca os Estados universais mantidos coletivamente para a computação descentralizada. Aplicações descentralizadas podem gerir alguns ou todos os seus conteúdos e lógica de negócio através de uma rede Blockchain ou outra ledger de registos distribuídos. Mas outros protocolos também são necessários. Muitos desenvolvedores começaram a construir redes Blockchain alternativas, bem como protocolos complementares para a Web3.

 

Outros Protocolos Web3

Blockchain não é a única tecnologia necessária para descentralizar a Web. Uma infinidade de outros protocolos é necessária para criar uma aplicação descentralizada. No entanto, o termo “blockchain” parece ser usado como um sinónimo para muitos protocolos Web3[1] ou a própria Web3, pelo menos para alguns jornalistas e público em geral. Além da computação, precisamos de armazenamento de ficheiros, mensagens, identidades, acesso a dados externos (oráculos) e muitos outros serviços descentralizados. Uma rede Blockchain é simplesmente o processador para aplicações descentralizadas que operam no topo da Web3. Ela funciona como uma máquina de contabilidade distribuída registando todas as transações de tokens e executando computação.

As redes Blockchain não são ideais para armazenar dados, por duas razões principais: (i) as redes públicas de Blockchain são muito lentas e muito caras para armazenar grandes conjuntos de dados; e (ii) armazenar dados de texto simples em redes Blockchain não permite a chamada “privacy by design[2]. Para criar um YouTube descentralizado, por exemplo, é necessário o armazenamento descentralizado de ficheiros para gerir os ficheiros de vídeo. Uma panóplia de soluções de redes de armazenamento descentralizadas têm vindo a surgir, tais como “IPFS”, “Filecoin”, “Swarm”, “Storj”, ou “Sia”. Redes de armazenamento descentralizadas incentivam os nós da rede a compartilhar o espaço de armazenamento, com um token nativo, transformando o armazenamento em nuvem em mercados algorítmicos. Elas diferem nos seus níveis de descentralização, privacidade e na sua escolha de mecanismos de incentivo. Algumas podem mesmo nem ter uma camada de incentivo, como a IPFS, por exemplo. Protocolos como o “Golem”, por outro lado, fornecem poder de renderização descentralizado, recompensando as contribuições na rede com o seu token de protocolo nativo. A comunidade de desenvolvedores Web3 tem evoluído ao longo dos últimos anos. Diferentes equipes estão a trabalhar em vários componentes desta Web emergente; no entanto, muitos desses protocolos encontram-se ainda em desenvolvimento. Aplicações Web3 tipicamente estabelecem comunicação com pares que são desconhecidos à partida e têm qualidade variável em termos de velocidade e confiabilidade. Novas bibliotecas e APIs (Application Programming Interface) são necessárias para navegar por entre essas complexidades. Não está claro quando irá ser alcançada massa crítica para possivelmente substituir as atuais aplicações Web em maior escala, ou quais os padrões que prevalecerão em última instância. A transição da “web cliente-servidor” para a “web descentralizada” será, portanto, gradual em vez de radical. Parece mais estar a passar de centralizado para parcialmente descentralizado e por fim totalmente descentralizado.

Uma das questões de pesquisa aplicada mais prementes ao desenvolver tecnologias complementares para a Web3 é a questão de como recompensar os participantes da rede com um token, para que a rede permaneça resistente a ataques. Exemplos disso seriam mecanismos de incentivo para soluções descentralizadas de armazenamento de ficheiros, computação descentralizada, análise de dados ou reputação. Muitos mecanismos de consenso diferentes estão a ser experimentados atualmente, como: “prova de recuperabilidade”, “prova de armazenamento” e “prova de espaço-tempo”. Soluções totalmente descentralizadas, tais como IPFS e Swarm, ainda não se encontram funcionalmente implementadas.

Pese embora as arquiteturas descentralizadas serem mais resistentes do que seus antecessores centralizados (Web2), elas também são mais lentas. Velocidade, desempenho e usabilidade são pontos de estrangulamento na Web3 que muito provavelmente serão resolvidos ao longo do tempo, logo que os componentes principais da Web3 estejam em pleno funcionamento. É provável que o futuro da Internet seja mais descentralizado, mas isso não significa que nos vamos livrar completamente dos sistemas centralizados. Os sistemas centralizados têm vantagens e provavelmente prevalecerão, pelo menos para casos de uso específicos.

[1] Note que termos semelhantes, como a Web 3.0, são usados noutros domínios, fazendo muitas das vezes referência a uma Web mais inteligente ou Web Semântica, incluindo “machine learning” e Inteligência Artificial, focando na convergência de várias tecnologias-chave emergentes. No contexto da Blockchain, o termo é usado por muitos para se referir a uma Internet mais descentralizada e é geralmente referido como Web3 (e não, Web 3.0).

 

[2] “Privacy by Design” refere-se a “data protection through technology design.” (https://gdpr-info.eu/issues/privacy-by-design)

 

O conteúdo aqui apresentado foi retirado do livro “Token Economy” de Shermin Voshmgir, traduzido e adaptado para português por mim, José Rui Sousa, em conjunto com António Chagas, Courtnay Guimarães e Joana Camilo, publicado sob uma licença Creative Commons CC BY-NC-SA apenas para uso não-comercial.

Ao contrário de aplicações centralizadas que funcionam num único computador, aplicações descentralizadas funcionam numa rede P2P de computadores. Elas existem desde o advento das redes P2P e não precisam necessariamente de correr em cima de uma rede Blockchain. “Tor”, “BitTorrent”, “Popcorn Time” e “BitMessage,” são exemplos de aplicações descentralizadas que são executados numa rede P2P e não numa rede Blockchain, que é um tipo específico de rede P2.

Aplicações tradicionais usam HTML, CSS, ou javascript para renderizar uma página web ou uma aplicação móvel. O front-end de uma página web ou uma aplicação móvel interage com uma ou mais bases de dados centralizadas. Quando se usa um serviço como Twitter, Facebook, Amazon, ou Airbnb, por exemplo, a página web vai chamar uma API para processar os seus dados pessoais e outras informações necessárias armazenadas em seus servidores, para exibi-los no front-end. O ID do utilizador e as respetivas senhas são usados para identificação e autenticação, com baixos níveis de segurança, uma vez que os dados personalizados são armazenados no servidor do fornecedor de serviços (ISP).

As aplicações descentralizadas não se aparentam diferentes dos sites atuais ou aplicativos móveis. O front-end representa o que se vê e o back-end de uma aplicação descentralizada representa toda a lógica de negócio. Uma aplicação descentralizada é um cliente Blockchain chamado “wallet” (carteira). Ela usa as mesmas tecnologias para renderizar uma página web ou uma aplicação móvel (como HTML, CSS, Javascript), mas a comunicação é estabelecida através duma rede Blockchain em vez de um servidor e, no caso de redes de contratos inteligentes, através dos chamados “smart contracts”. A carteira também gere o par de chaves público-privadas e o endereço Blockchain, para fornecer uma identidade única aos nós da rede para que eles possam interagir de forma segura com a rede. Os contratos inteligentes representam a lógica de negócio principal da aplicação descentralizada e processa os “feeds” de dados de dentro e fora da rede para gerir os Estados de todos os atores da rede. De forma simples, um nó de rede é o ponto onde uma mensagem pode ser criada, recebida ou transmitida. Se um determinado nó for um “full node” (nó completo), ele também irá gerir os Estados completos de toda a Blockchain desde a sua génese. Neste caso, o nó executa as funções de um cliente HTTP e um servidor, sendo todos os dados armazenados no lado do cliente. Os dados front-end, incluindo ficheiros de áudio ou vídeo e outros documentos, poderiam ser coletivamente armazenados e gerenciados por redes de armazenamento descentralizadas como “Swarm” ou “IPFS”.” No momento de redação deste livro, esses dados ainda são, na maioria das vezes, armazenados e geridos por servidores.

Para o utilizador comum, as aplicações descentralizadas precisam ser vistas e sentidas da mesma forma que as aplicações existentes, o que significa que elas precisam ser tão fáceis e intuitivas de usar para serem adotadas em maior escala. Atualmente, software de carteiras e gestão de chaves ainda são difíceis de serem usadas e percebidas por parte do utilizador comum, o que pode ser um fator de estrangulamento para a adoção em massa de aplicações Web3. Além disso, a adoção em larga escala só pode acontecer se a desconfiança em relação às soluções centralizadas for suficientemente elevada para justificar o “trade-off” de usabilidade.


O conteúdo aqui apresentado foi retirado do livro “Token Economy” de Shermin Voshmgir, traduzido e adaptado para português por mim, José Rui Sousa, em conjunto com António Chagas, Courtnay Guimarães e Joana Camilo, publicado sob uma licença Creative Commons CC BY-NC-SA apenas para uso não-comercial.

O conceito de “blocos em cadeia” foi introduzido no “White Paper” da Bitcoin em outubro de 2008, com o objetivo de criar “dinheiro P2P sem bancos”. O artigo, publicado sob o pseudónimo de Satoshi Nakamoto, propôs um sistema onde todos os computadores na rede possuem uma cópia idêntica de um livro-razão de transações, que atua como um único ponto de referência para todos na rede. Todos os nós da rede atualizam e gerem coletivamente esta ledger, que representa um conjunto de dados universal em que todos os atores podem confiar, mesmo que eles possam não se conhecer ou confiar uns nos outros. As pessoas e instituições que não conhecem ou não confiam uns nos outros, que residam em países diferentes, que estejam sujeitas a diferentes jurisdições, e que não têm acordos juridicamente vinculativos uns com os outros, podem agora interagir através da Internet, sem a necessidade de terceiros confiáveis, como bancos, plataformas de Internet, ou outros tipos de instituições de compensação.

O Problema do Gasto Duplo: esta nova forma de gestão de dados distribuídos veio resolver o “problema do gasto duplo”. Da forma como a Internet é concebida hoje, pode-se gastar o mesmo valor emitido como um ficheiro digital várias vezes, porque a informação digital pode ser copiada e cópias do mesmo ficheiro digital podem ser enviadas de um computador para vários outros computadores ao mesmo tempo. Antes do surgimento da Bitcoin, ideias em torno de redes P2P criptograficamente seguras tinham sido discutidas em diferentes etapas evolutivas, principalmente em artigos teóricos, desde a década de 1980. No entanto, nunca houve uma implementação prática de uma rede P2P que conseguisse evitar o problema do gasto duplo, sem a necessidade de intermediários confiáveis, por exemplo, os bancos, que garantissem a troca de valores. O protocolo Bitcoin introduziu um mecanismo de tornar absurdamente caro copiar valores digitais.

Cadeia de Blocos: numa rede Blockchain, as transações são registadas em lotes de dados chamados “blocos”, que por sua vez são sujeitos a um processo criptográfico chamado “hash”. Este hash criptográfico cria uma impressão digital do bloco. Cada bloco inclui o hash do bloco anterior, ligando assim os blocos entre si numa cadeia de blocos. Este processo garante a integridade e imutabilidade histórica de todos os blocos até ao primeiro bloco criado, também referido como o bloco génesis. Se os dados num bloco são alterados, o valor de hash do bloco e todos os blocos subsequentes mudará, e cada nó na rede saberá que os dados foram adulterados. Esta crescente lista de blocos acorrentados entre si é também referida como ledger ou livro-razão.

Ledger: é um ficheiro que mantém uma lista incremental de registos de transações, em blocos “acorrentados” criptograficamente e protegidos de adulteração e revisão. Se tentativas de manipulação fossem feitas, o valor do hash da ledger manipulada não coincidiria com o valor do hash gravado nas cópias da ledger em todos os outros nós. O valor do hash de um bloco serve, portanto, como uma proteção que pode ser usada para verificar a autenticidade de uma transação registada numa ledger.

Ledger Distribuída: uma cópia da ledger é armazenada em múltiplos nós de uma rede P2P de segurança criptográfica. A fim de alterar os registos em todas as cópias da ledger presentes na rede, os nós de rede precisam chegar a um acordo mútuo sobre essa alteração. Uma ledger distribuída é um livro de transações partilhado, de confiança e público, que todos podem inspecionar/auditar, mas que nenhum utilizador controla. Cada nó independente tem a última versão da ledger, que contém todas as transações alguma vez jáfeitas, e pode verificar as transações. Este processo é referido como “consenso”, e torna-se particularmente útil em configurações interorganizacionais onde nenhuma instituição quer confiar a outra instituição a gestão dos seus dados.

Token: o termo “token” é, em termos simples, uma metáfora. Ao contrário do que a metáfora poderia sugerir, um token não representa um ficheiro digital que é enviado de um dispositivo para o outro. Em vez disso, manifesta-se como uma entrada na ledger que pertence a um endereço Blockchain. Apenas a pessoa que tem a chave privada para esse endereço pode aceder aos respetivos tokens, usando um software chamado de carteira (“wallet”), que atua como uma porta de comunicação com a rede Blockchain.

Ao contrário das bases de dados distribuídas, onde os dados são distribuídos, mas geridos e controlados por uma única entidade, as redes Blockchain permitem o controlo distribuído. Diferentes pessoas e instituições que não confiam umas nas outras compartilham informações sem necessidade de um administrador central.

Como uma folha de cálculo na cloud: a ledger pode ser descrita como uma folha de cálculo na cloud. Pense em aplicações em nuvem como “Google Sheets“, onde todos podem aceder e editar um ficheiro em simultâneo. Mas, ao contrário do Google Sheets, onde esse ficheiro é armazenado centralmente nos servidores da Google, a ledger de uma rede Blockchain não é armazenada centralmente. Em vez disso, cada nó da rede mantém uma cópia idêntica da mesma ledger em todos os momentos (com exceções temporárias cada vez que um novo bloco é criado).

Estados Universais: cada computador na rede gere a sua própria cópia da ledger, idêntica a todas as outras cópias distribuídas pelos restantes nós (computadores), que atua como um conjunto universal de dados em toda a rede, garantindo que cada token é transferido apenas uma vez num determinado momento. A ledger representa, portanto, o estado universal da rede, com que todos os nós na rede concordam. Como analogia, ela será como um notário digital com um “timestamp” – ou carimbo temporal – publicamente verificável.

Transações Bitcoin: ao usar a rede Bitcoin, em vez de termos uma unidade central (como um banco) a validar as transações financeiras, todos os computadores na rede (nós) verificam as suas cópias da ledger para a validade da transação, e confirmam coletivamente as transações por maioria de consenso. Nenhum utilizador é mais confiável do que qualquer outro. Em vez de haver um único terceiro confiável a validar as transações através de seus servidores (voto único), uma rede P2P de computadores executando o protocolo Blockchain, valida as transações por consenso (votação por maioria).

 

O protocolo é um conjunto de regras e processos que definem como todos os nós (anónimos) da rede podem chegar a um acordo sobre os verdadeiros Estados da rede. O protocolo define como os participantes na rede interagem entre si: (i) em que condições o envio de tokens de A para B é válido; (ii) as recompensas económicas para a validação de transações com um token criptográfico; (iii) como referenciar identidades e assinar transações; e (iv) quem decide sobre atualizações da rede.

Criptoeconomia: a criptografia transfere segurança à rede e proporciona total transparência para todos os participantes, mantendo ao mesmo tempo a privacidade de cada ator individual. Ela garante também que as transações passadas são, de facto, válidas e verdadeiras. A teoria dos jogos é aplicada para garantir que as transações futuras serão conduzidas de uma forma verdadeira por consenso maioritário de todos os atores de rede, assumindo que todos os atores de rede poderiam potencialmente ser corruptos. Em termos práticos, significa que o custo de manipulação de registos passados em proveito próprio é incomensuravelmente superior ao ganho da não manipulação. O mecanismo de consenso é assim concebido para dificultar a manipulação do livro-razão.

Consenso: “Proof-of-Work” (Prova-de-Trabalho) é o mecanismo de consenso usado pela rede Bitcoin que tem como objetivo orientar a ação coletiva de um conjunto desconhecido de atores anónimos. Baseia-se em princípios criptoeconómicos. A teoria retroativa dos jogos é usada para recompensar os atores de rede com um token de rede nativo. No caso da rede Bitcoin, este seria o token bitcoin. Este mecanismo de recompensa é projetado para tornar economicamente inviável enganar a rede, devido à quantidade proibitivamente grande de poder de computação que seria necessário para fazê-lo, e tendo em conta cenários de ataque extremos. As regras de consenso são projetadas de forma a tornar a rede resistente a ataques, apesar da falta de partes centralizadas para governar a veracidade das atividades da rede.

Identidades: um endereço Blockchain, que é derivado da chave privada, representa uma identidade digital pseudónima do proprietário do token. Os tokens são vistos como pertencentes a um determinado endereço no livro-razão público. Só o proprietário desse endereço pode pedir para enviar esses tokens para outro endereço. A fim de provar a sua propriedade a outros participantes da rede, os titulares de token precisam assinar as transações com a sua chave privada. Esta forma de gestão de identidade é puramente baseada em funções matemáticas, permitindo que outros computadores na rede confirmem a validade de uma transação sem precisar conhecer a pessoa real ou sua chave privada secreta.

Prestação de Contas e Governança: as redes Blockchain também podem ser descritas como sistemas de contabilidade distribuídos, ou sistemas de governança supranacional, públicas e transparentes. À falta de uma entidade central, eles fornecem uma camada de governança para a Internet. Todos os participantes da rede têm acesso igual aos mesmos dados em (quase) tempo real. As transações são geridas coletivamente, transparentes para todos os atores e podem ser rastreadas até à sua origem.

Organizações Autónomas Descentralizadas (DAO): todos os registos são geridos de forma coletiva por nós autónomos da rede, sendo por isso também anunciada uma nova forma de infraestrutura organizacional, muitas vezes referida como Organização Autónoma Descentralizada.

Block-Explorer: devido à natureza pública das redes Blockchain, todos podem executar operações de pesquisa na rede, como rastrear todas as transações de tokens, taxa de hash total da rede, balanço corrente de tokens, crescimento das transações, etc. No entanto, pese embora todos os registos na rede Blockchain serem públicos, poucas pessoas têm os conhecimentos necessários para executar análises de dados avançadas na Blockchain. Os exploradores de blocos são aplicações de terceiros que permitem a qualquer um explorar publicamente todas as transações de uma determinada rede, como Bitcoin ou outras redes públicas de Blockchain. Os exploradores de blocos são como um motor de busca dedicado para dados relacionados à Blockchain. No entanto, este nível de transparência também levanta questões relacionadas com a privacidade. Estas questões relacionadas com a privacidade têm vindo a ser abordadas com novos protocolos Blockchain que usam métodos criptográficos de maior preservação da privacidade.

 

O conteúdo aqui apresentado foi retirado do livro “Token Economy” de Shermin Voshmgir, traduzido e adaptado para português por mim, José Rui Sousa, em conjunto com António Chagas, Courtnay Guimarães e Joana Camilo, publicado sob uma licença Creative Commons CC BY-NC-SA apenas para uso não-comercial.

O desafio subjacente a uma rede P2P com um conjunto de nós de rede anónimos é lidar com nós de rede maliciosos na ausência de partes centralizadas para proteger o sistema. Devemos sempre assumir que haverá atores maliciosos a tentar perturbar qualquer rede pública e aberta. Noutros termos, como tornar possível que uma rede distribuída possa chegar a um consenso sobre que dados estão corretos ou quais os que não estão corretos, ou que processo é verdadeiro ou falso em tal configuração não confiável? Isto é conhecido como o “problema dos generais bizantinos”: um nó malicioso, também chamado de nó Bizantino, pode intencionalmente enviar informações erradas para todos os outros nós envolvidos no processo de consenso. As falhas bizantinas são consideradas a classe mais difícil de falhas quando se fala em redes distribuídas. Mecanismos de consenso confiáveis devem ser resilientes contra ataques DDoS (Distributed Denial of Service), ataques Sybil[1], e outros ataques cibernéticos. Antes do surgimento da Bitcoin, acreditava-se ser impossível alcançar um consenso tolerante a falhas e resistente a ataques entre nós não confiáveis numa rede P2P.

Pela primeira vez na história da computação distribuída, o protocolo Bitcoin introduziu uma solução matemática para este problema, com um mecanismo de consenso chamado “Proof-of-Work”, ou Prova-de-Trabalho, que faz com que o custo económico de atacar o sistema seja desproporcional em relação ao benefício de fazê-lo. Ele gerou um novo campo de ciência em torno de jogos de coordenação económica usando ferramentas criptográficas, também referido como “Criptoeconomia”. Criptoeconomia pode ser definida como o estudo da interação económica em ambientes não confiáveis, onde cada ator pode potencialmente ser corrupto. É interdisciplinar, e requer uma compreensão profunda da criptografia, economia e redes P2P, e o que motiva os atores da rede. A infraestrutura público-privada garante um controlo de acesso resistente a ataques dos tokens. As funções de Hashing permitem aos nós verificar as transações que são feitas através da rede. Tanto as funções de hashing como a criptografia de chave público-privada também são necessárias para o jogo de coordenação económica chamado “Prova-de-Trabalho” para recompensar os mineradores por adicionarem blocos de transação verdadeiros ao livro-razão. Mecanismos criptoeconómicos podem fornecer um equilíbrio de segurança para tornar a rede tolerante a falhas, e resistente a ataques e colusões. Isso permite que nós de rede anónimos alcancem consenso sobre os Estados de todas as interações da rede. A rede Bitcoin é a primeira instância prática da Criptoeconomia. Produz “confiança pela matemática” ao invés de “confiança por contrato legal”.

No entanto, a segurança depende da resiliência dos pressupostos sobre a forma como os intervenientes na rede reagirão aos incentivos económicos. A forma como as pessoas reagem aos incentivos tem sido há muito um campo de estudo em Economia. A Criptoeconomia tem então muito em comum com o chamado design de mecanismos, um campo da economia relacionado com a teoria dos jogos. A teoria dos jogos analisa interações estratégicas, que são referidas como jogos. Ela tenta entender as melhores estratégias para cada jogador num ambiente em que ambos os jogadores tentam maximizar o melhor resultado para si mesmos. O design do mecanismo define resultados desejáveis e trabalha para trás para criar um jogo que incentiva os jogadores em direção a esse resultado desejado. A Criptoeconomia enquanto interdisciplinar, é uma disciplina que foi predominantemente desenvolvida na comunidade da ciência da computação. Parece que ainda há muito espaço para incorporar métodos de várias disciplinas económicas, e outras disciplinas (mais no próximo capítulo e na Parte 4 – Tokens Orientados a um Propósito).

 

 

 

 

 

O “ Proof-of-Work ” (PoW) é o mecanismo de consenso utilizado na rede Bitcoin e em redes Blockchain similares para garantir que uma transação de um “token” enviado através da rede seja válida. O mecanismo baseia-se no pressuposto de que todos os nós da rede podem ser potencialmente corruptos, e que o mínimo denominador comum é o dinheiro. O Proof-of-Work é projetado de forma que (i) ao aplicar dinheiro e jogar pelas regras, poderá ganhar tokens de rede; (ii) não compensa enganar o sistema, uma vez que a mineração requer hardware especialmente desenhado para cálculos computacionais de força bruta e que consome grandes quantidades de energia.

Quando os tokens são enviados à rede, cada nó da rede pode propor novas entradas a serem adicionadas à ledger. Estes nós validam as transações e competem entre si para resolver um complexo quebra-cabeça computacional. Neste processo, eles têm que coletar todas as transações recentes da rede, incluindo alguns metadados adicionais, verificar as transações, adivinhar um número pseudoaleatório (“nonce“), e executar todos os dados através de um algoritmo criptográfico (SHA-256) para encontrar o hash do novo bloco. Isto significa que eles têm que realizar um trabalho computacional, razão pela qual este processo é referido como “Proof-of-Work“.

Se um determinado nó na rede for o primeiro a encontrar esse valor de hash, ele pode adicionar o bloco à sua ledger e transmitir ao resto da rede o valor de hash do novo bloco, incluindo todos os dados do bloco. Os outros nós podem agora verificar a validade do hash. Se eles aceitarem este bloco de transações adicionado como válido, eles adicionam o novo bloco à sua cópia da ledger. O Proof-of-Work é desenhado de forma a que muito embora o hash seja difícil de encontrar, a solução encontrada é facilmente verificada como verdadeira. Imagine por exemplo um cubo mágico, onde a resolução é difícil, mas a solução é facilmente verificada.  Ao participar nesta competição de encontrar o valor do hash em primeiro lugar, os nós de mineração coletivamente asseguram que todas as transações incluídas num bloco são válidas. O nó vencedor é recompensado com a “recompensa do bloco” na forma de tokens de rede acabados de ser criados para o efeito (mais possíveis taxas de transação). Esta é a razão pela qual o processo é referido como “mineração”. O hash de um bloco validado representa, portanto, o trabalho realizado pelo minerador. No momento da redação deste livro, a recompensa pela criação bem-sucedida de um bloco na rede Bitcoin é de 6,25 BTC por bloco. A recompensa do bloco é reduzida em 50% a cada 210.000 blocos, cerca de quatro em quatro anos. A próxima “redução pela metade” da recompensa por bloco será em 2024.

Encontrar o valor correto do hash requer algum trabalho, na forma do tempo de processamento de um computador, que também é chamado de “função de custo do CPU”. Se um minerador malicioso fosse eventualmente o computador mais rápido a encontrar o hash (situação pouco provável, mas teoricamente possível), o resto da rede não aceitaria o seu bloco de transações. O minerador batoteiro não receberia, portanto, a recompensa do bloco, mesmo que investisse potência e energia computacional suficiente para o efeito. Esta é uma medida económica para dissuadir os ataques à rede. Um ator económico racional abster-se-ia, portanto, de enganar o sistema, pois isso resultaria em custos irrecuperáveis de investimento em energia e infraestrutura. Através da porta traseira dos custos de infraestrutura e eletricidade, os ataques à rede tornam-se proibitivamente dispendiosos. Um ataque bem-sucedido exigiria muito poder computacional, consumo de energia e tempo, e mesmo assim, poderia nem sequer compensar, isto se o intuito do ator malicioso fosse puramente financeiro. Devido à sua intensidade computacional, a rede Bitcoin também é muito consumidora de energia.

 

A “dificuldade” de encontrar esse valor de hash, e portanto criar um bloco, é ajustável com o tempo para manter o tempo entre blocos de 10 minutos[2] relativamente constante. Ela é ajustada periodicamente em função de quanto “hash power” (potência de hash) tem sido empregada pela rede de mineradores. Se os blocos forem criados em menos do que 10 minutos, a dificuldade aumenta. Da mesma forma, se os blocos demorarem mais de 10 minutos para serem criados, a dificuldade diminui. A dificuldade também aumenta com o nível de competição – o número de outros computadores que competem para validar um bloco.

[1] Numa rede anónima, o chamado ataque sybil é um ataque onde um único utilizador poderia gerar múltiplas entidades (sob pseudónimos) para influenciar o processo de consenso.

[2] A rede Bitcoin, como rede mundial de computadores, tem latências de rede (atrasos no processamento de dados de rede). Para ter em conta as latências, o protocolo Bitcoin especifica que deve ser criado um bloco a cada 10 minutos, em média.

O conteúdo aqui apresentado foi retirado do livro “Token Economy” de Shermin Voshmgir, traduzido e adaptado para português por mim, José Rui Sousa, em conjunto com António Chagas, Courtnay Guimarães e Joana Camilo, publicado sob uma licença Creative Commons CC BY-NC-SA apenas para uso não-comercial.

A rede Bitcoin é (i) de código aberto, (ii) pública, e (iii) não-permissionada. A natureza de código aberto refere-se ao facto de permitir que qualquer pessoa com skills adequados possa contribuir para o protocolo de forma pública. Além disso, qualquer pessoa pode obter o código, modificá-lo e criar sua própria versão de uma rede de pagamentos P2P. “Público” refere-se ao facto de que qualquer pessoa pode usar a rede como um sistema de pagamento (utilizador), e que qualquer pessoa pode baixar o protocolo e a ledger e verificar transações (nós completos). “Não-permissionada” refere-se ao facto de que qualquer pessoa pode baixar o protocolo e a respetiva ledger e “escrever” as transações na ledger (mineradores). Na Rede Bitcoin, existem quatro tipos de nós: “full nodes” (nós completos), “mining nodes” (nós de mineração), “mining pools” (pools de mineração) e “light nodes” (nós leves).

Os full nodes gerem todo o histórico da rede Bitcoin (a ledger, ou livro-razão) e validam novas transações à medida que vão sendo adicionadas à ledger. Qualquer pessoa que execute um nó completo pode enviar e receber tokens bitcoin, e verificar a integridade das transações, sem ter que confiar em terceiros. A verificação das transações é uma função complementar à mineração de bitcoin. Enquanto que a mineração de bitcoin é feita quase exclusivamente em hardware para fins especiais, um nó completo que só valida as transações pode ser executado num PC doméstico normal com hardware de processamento padrão. Nos primeiros dias da rede Bitcoin, todos tinham de descarregar a ledger completa para poderem enviar as transações. Hoje, os desenvolvedores de “software wallets” (software de carteiras) também oferecem a opção de nós leves (veja abaixo).

Os mining nodes (miners) competem pelo direito de criar novos blocos e adicionar transações à ledger. Eles podem praticar “solo mine” ou “pool mine”. Se eles minerarem sozinhos, precisam manter sua própria cópia completa da ledger. Os mineradores vencedores são recompensados com tokens bitcoin por criarem novos blocos – “block reward”. O mecanismo exato da recompensa é especificado no protocolo. Além da recompensa do bloco, os mineradores também podem ganhar custos de transação. No entanto, estes custos de transação não são exigidos pelo protocolo, mas podem ser exigidos por um minerador no mercado livre. As taxas de transação geralmente aumentam quando o tráfego da rede é alto e a rede fica congestionada.

Mining pools: ao longo dos anos, os mineradores individuais começaram a colaborar e a formar cartéis de nós mineradores. Num cenário de mining pool, os mineradores individuais colaboram com outros mineradores para escrever na ledger e receber a recompensa do bloco. O operador da mining pool mantém um nó completo e os mineradores individuais contribuem com o seu CPU (também chamado de hash-power). Ao usar o poder cumulativo de hash-power de todos os mineradores individuais, eles podem aumentar suas hipóteses de serem o computador mais rápido a resolver o quebra-cabeça e escrever um bloco de transações na ledger. No entanto, o White Paper original do Bitcoin não entrava em linha de conta com esta forma de colaboração entre os mineradores. Os pressupostos económicos baseiam-se na “teoria do jogo simples”, e não na “teoria do jogo colaborativo”. Como resultado, a rede Bitcoin tornou-se um sistema muito mais centralizado do que o pretendido originalmente. Algumas pessoas argumentam que a realidade do mecanismo de consenso da Bitcoin pode ser descrita como uma “Prova-de-Trabalho Delegada” e tornou-se um oligopólio de um punhado de mining pools, o que pode não refletir as intenções originais do criador da Bitcoin, Satoshi Nakamoto.

Os light nodes foram criados para verificação simplificada de pagamentos (SPV) de software wallets para smartphones. Por isso também são chamados de nós SPV ou SPV-clients. Ao contrário dos nós completos, eles não mantêm a ledger completa e apenas armazenam as cópias de todos os cabeçalhos dos blocos de transações. Estes não podem verificar as transações de forma autónoma, pois não têm acesso a todas as informações armazenadas na ledger. Os nós leves dependem das informações fornecidas por outros pares na rede que têm acesso a todos os dados da ledger. Ao contrário dos nós de mineração, os nós completos não têm um incentivo económico direto para validar as transações. No entanto, existem incentivos indiretos para operar um nó completo ao invés de um nó leve. No possível caso de uma atualização de protocolo, um nó completo é a única maneira de votar sobre como a rede deve ser atualizada. Outro motivo para executar um nó completo é o maior grau de privacidade, já que os nós completos mantêm a ledger completa e todos os dados de transação no seu próprio dispositivo. Isto é bem diferente de como os nós leves funcionam. Os nós leves dependem de servidores de terceiros para transmitir transações para a rede, o que significa que os servidores desses serviços de terceiros conhecem o histórico de transações do nó leve.

O conteúdo aqui apresentado foi retirado do livro “Token Economy” de Shermin Voshmgir, traduzido e adaptado para português por mim, José Rui Sousa, em conjunto com António Chagas, Courtnay Guimarães e Joana Camilo, publicado sob uma licença Creative Commons CC BY-NC-SA apenas para uso não-comercial.

Todas as entradas na ledger são apenas de leitura. Uma vez que um bloco de transações é aceite pela rede, ele não pode ser facilmente modificado ou removido. Todos os blocos teriam de ser recalculados para que isso acontecesse, o que exigiria que a maioria dos participantes da rede concordasse com tais alterações. Um atacante precisaria refazer o trabalho computacional de todos os blocos sucessores, na maioria dos nós da rede. Isso exigiria controlo sobre, ou suborno da maioria dos nós da rede. Mesmo que fosse possível realizar esses cálculos dentro do período de criação do bloco (~10 minutos), o custo seria muito maior do que as recompensas por atacar a rede. Embora a manipulação seja possível, o mecanismo é desenhado para torná-la inviável.

Os websites abaixo fornecem informação em tempo real sobre quanto custa atualmente atacar diferentes redes Blockchain num chamado “ataque de 51%”. Uma rede de Proof-of-Work é considerada segura desde que mais de 50% do trabalho esteja a ser levado a cabo por mineradores honestos. Um “ataque de 51%” acontece quando uma única pessoa ou instituição é capaz de controlar a maioria da taxa de hash ou do poder computacional para manipular a rede. Nos dez anos de história da Bitcoin, nenhuma manipulação feita por atacantes externos foi bem-sucedida.

* Ferramenta online para verificar quanto custaria atacar a rede Bitcoin:
https://gobitcoin.io/tools/cost-51-attack/

* Ferramenta online para verificar quanto custaria atacar diferentes redes Blockchain:
 https://www.crypto51.app/

 

Um ataque de 51% bem-sucedido poderia ter o seguinte impacto: permitiria (i) alterar blocos, adicionando ou removendo transações, o que exigiria um PoW adicional (quanto mais antiga for uma transação, mais difícil será um ataque); (ii) censurar participantes e, portanto, as transações desses participantes; (iii) enviar transações e depois revertê-las; e (iv) alterar as regras do protocolo.

O que um ataque de 51% não pode fazer é alterar transações existentes ou transações falsas, como por exemplo: (i) alterar a quantia enviada numa transação existente; (ii) alterar o destinatário de uma transação existente; ou (iii) enviar os tokens de alguém sem a sua aprovação. Isto porque todas as transações precisam ser assinadas com a chave privada do proprietário do token, que não pode ser revelada por acordo da maioria da rede. Alterar um detalhe numa transação existente tornaria a ledger “ilegítima”, pois uma transação sem assinatura válida estaria contida nela. Estes tipos de manipulação só podem ser conseguidos através de força bruta computacional de adivinhação das chaves privadas de um ator da rede. Alternativamente, pode-se também quebrar o algoritmo criptográfico (SHA) para atacar a rede, razão pela qual é essencial usar algoritmos criptográficos que tenham sido devidamente testados.

O conteúdo aqui apresentado foi retirado do livro “Token Economy” de Shermin Voshmgir, traduzido e adaptado para português por mim, José Rui Sousa, em conjunto com António Chagas, Courtnay Guimarães e Joana Camilo, publicado sob uma licença Creative Commons CC BY-NC-SA apenas para uso não-comercial.

Em engenharia de software, “software forks” referem-se ao facto de qualquer software livre e de código aberto poder ser copiado e modificado sem permissão prévia da equipa de desenvolvimento original e sem violar a lei de direitos autorais. O termo por vezes também se refere a uma divisão na comunidade de desenvolvedores de um projeto existente, ao invés de apenas o código. A natureza de código aberto de redes públicas em Blockchain permite que qualquer pessoa baixe o código, o modifique e comece a criar uma rede separada baseada num pedaço de código distinto.

Desta forma, pode-se (i) criar uma nova rede a partir do zero simplesmente copiando a base de código existente e modificando-a para construir uma nova rede (“Zcash” e “Litecoin“, por exemplo, são baseados na base de código Bitcoin), ou (ii) bifurcar uma rede existente, incluindo a ledger existente e a comunidade, numa continuação diferente a bem de uma atualização do protocolo. Essas atualizações de protocolo podem causar uma divisão da rede como resultado de disputas de atualização de protocolo (como foi o caso com “Bitcoin Cash” e “Ethereum Classic“) ou secessão deliberada por razões económicas, que muitas vezes são projetadas para extrair valor económico acima de qualquer discussão filosófica de protocolo (como foi o caso com “Bitcoin Gold“, “Bitcoin Diamond“, e “Bitcoin Platinum“). Os tipos e regras dos forks de software dependem dos protocolos formais e informais de cada rede. A rede Bitcoin e redes similares distinguem entre “hard forks” e “soft forks“. Um fork será, na prática, uma divisão da rede.

Um “hard fork” é um tipo de mudança de protocolo que não é retrocompatível. Nós que não atualizam a nova versão do protocolo não serão capazes de processar transações. Todos os nós que validam transações de acordo com o protocolo antigo tratarão os blocos produzidos de acordo com o novo protocolo como inválidos. Os nós que quiserem adotar o novo protocolo precisarão, portanto, atualizar o seu software.

Um “soft fork” é um tipo de mudança de protocolo que é retrocompatível. Os nós que não atualizaram o protocolo ainda são capazes de processar transações se não quebrarem as regras do novo protocolo. Os blocos produzidos pelos mineradores que executam o protocolo atualizado são aceites por todos os nós da rede. Blocos produzidos por mineradores executando a versão antiga são rejeitados pelos nós que executam a nova versão do protocolo. Se os mineradores da versão antiga receberem seus blocos rejeitados por parte da rede, eles podem estar inclinados a atualizar também. Os soft forks são, portanto, um pouco mais graduais no seu processo de votação do que os hard forks e demoram várias semanas. Se a maioria dos mineradores fizer o upgrade para o novo protocolo, ele é chamado de soft forks ativados pelos mineradores (MASF). Se os nós se coordenarem entre si por completo, sem o apoio dos mineradores, tal é referido como um soft fork ativado pelo utilizador (UASF). Em termos práticos, um soft fork não resulta numa divisão da rede – dando lugar a uma nova cadeia de blocos “a par” da anterior (hard fork) – mas apenas numa atualização do protocolo da rede.

Uma divisão pode ocorrer quando alguns nós da rede continuam a usar o protocolo antigo enquanto todos os outros usam o novo protocolo. As atualizações técnicas do protocolo acontecem com bastante frequência, e normalmente não criam muita controvérsia, especialmente quando envolvem pequenas atualizações técnicas. A cadeia mais curta morre e o token deixa de ter valor de mercado. No entanto, a curta história das redes Blockchain tem mostrado que decisões mais politizadas sobre atualizações de protocolo podem levar a uma divisão na rede, onde a cadeia minoritária tem seguidores suficientes ou narrativa política para manter uma economia própria. Um aspeto chave disto é uma divisão no “poder cerebral” dos desenvolvedores que suportam uma ou outra rede. Como a comunidade se divide, os desenvolvedores muitas vezes têm que tomar uma posição por uma ou outra rede, o que pode resultar numa falta de poder por parte do desenvolvedor. Os mineradores também têm que escolher qual a rede que irão continuar a apoiar.

No caso de um hard fork, qualquer pessoa que possuísse tokens na rede antiga também possuiria uma quantidade equivalente de tokens na nova rede minoritária, que pode então vender ou manter. Isto, no entanto, requer pelo menos uma troca de tokens para listar o novo token da rede minoritária; caso contrário, não há mercado para o token dessa rede e, como resultado, a rede cai em esquecimento. Um hard fork politizado é um “evento de cisne negro” e pode ter um efeito sério no valor dos tokens, dependendo de qual rede ganhará tração a longo prazo. Exemplos de forks politizados que dividem a rede são o “Ethereum Classic” (ETC)[1]  e o “Bitcoin Cash” (BCH)[2]. Como resultado desses forks proeminentes da rede Bitcoin e da rede Ethereum, a questão da governança tem provocado um debate contínuo na comunidade, e parece ser uma das questões de pesquisa mais proeminentes para os próximos anos.

Além disso, as divisões temporais na rede podem acontecer acidentalmente, devido às latências da rede. Se dois mineradores encontrarem soluções diferentes para o mesmo bloco ao mesmo tempo, ambas válidas, é possível que a rede se divida temporariamente. Quando isso acontece, os nós do diagrama de rede têm duas versões alternativas da ledger em diferentes partes do diagrama de rede. Isto cria dois diagramas de rede paralelos na Blockchain. O protocolo Bitcoin estabelece uma provisão para resolver essas divisões temporais de modo que apenas um ramo da rede sobreviva. Numa rede Proof-of-Workcomo a Bitcoin, a rede com o “Proof-of-Work mais cumulativo”, também referido como “potência de hashing” ou “potência de rede”, é sempre considerada a válida pelos nós da rede. Neste processo, a versão vencedora da ledger é determinada por um “voto” maioritário da rede. Os nós votam por uma versão, atualizando o protocolo (ou não). O “comprimento da cadeia de blocos” refere-se ao ramo da rede com o Proof-of-Work mais cumulativo, não aquele com o maior número de blocos.

[1] O hard fork da Ethereum resultou do incidente “TheDAO”, em que cerca de 50 milhões de dólares foram drenados como resultado de uma vulnerabilidade no código. O hard fork, que censurou retroativamente a transação que conduziu à drenagem, foi altamente politizado. Os opositores ao hard fork insistiram na imutabilidade da ledger. Como resultado, o símbolo da rede minoritária que se opunha ao hard fork duro – Ethereum Classic – fez história por ser o primeiro símbolo de rede minoritária a ser listado numa troca.

 

[2] O aumento das taxas de transação na rede Bitcoin devido ao congestionamento da rede foi a motivação para uma proposta de alguns desenvolvedores da comunidade para aumentar o tamanho do bloco numa atualização de protocolo que exigiu um hard fork. A proposta enfrentou considerável oposição de outros desenvolvedores de rede. Após um debate de dois anos, o controverso hard fork foi levado a cabo em julho de 2017, e levou à formação de uma nova comunidade com uma proposta diferente, chamada Bitcoin Cash. Em 1 de Agosto de 2017, a Bitcoin Cash começou a ser negociada a cerca de 240 USD, enquanto a Bitcoin era negociada a cerca de 2700 USD.

 

O conteúdo aqui apresentado foi retirado do livro “Token Economy” de Shermin Voshmgir, traduzido e adaptado para português por mim, José Rui Sousa, em conjunto com António Chagas, Courtnay Guimarães e Joana Camilo, publicado sob uma licença Creative Commons CC BY-NC-SA apenas para uso não-comercial.

Os forks mencionados acima são o resultado de atualizações de protocolo de uma rede Blockchain existente, que levou a uma divisão dos nós de rede existentes em dois grupos. Essa divisão pode influenciar o preço de mercado do token da rede, já que ambas as redes são menores do que a rede original. Outra forma de fork seria um simples típico fork de software para projetos de código aberto. Como a base de código Bitcoin é aberta, qualquer um pode usar essa base de código como modelo para criar uma Blockchain alternativa, adaptando algumas variáveis, parâmetros ou funções.

Ao longo dos anos, o protocolo Bitcoin foi modificado centenas de vezes para criar versões alternativas da Bitcoin mais rápidas ou mais anónimas, como “Litecoin” ou “Zcash“. A dado momento, ficou claro que um protocolo Blockchain fornece um sistema operacional que permite que um grupo de pessoas que não se conhecem ou não confiam umas nas outras se organizem em torno de objetivos específicos, não apenas “dinheiro sem bancos”. Muitos projetos, portanto, tentaram modificar a base de código Bitcoin para facilitar outros tipos de transferências de valor P2P, como o armazenamento descentralizado de ficheiros sem Amazon Web Services, como no caso de “Sia”, ou redes sociais sem Facebook, Twitter, e similares, como no caso de “Steemit“. A ideia surgiu do intuito de haver um afastamento das redes de propósito único que têm apenas um contrato inteligente[1] e, em vez disso, criar um protocolo onde se possa realizar qualquer tipo de transação de valor P2P sobre a mesma rede. Alguns dos projetos iniciais mais interessantes foram “Colored Coins” e “Mastercoin“. Eles usaram o token bitcoin como um veículo “a reboque” para qualquer tipo de transferência de valor ou contrato legal. Vitalik Buterin, que esteve envolvido nesses projetos por um curto período, percebeu que essas adaptações do protocolo Bitcoin eram possíveis, mas não suficientemente eficientes ou flexíveis. Posteriormente, ele introduziu a ideia de desacoplar as funcionalidades de contrato inteligente das funcionalidades de processamento da rede e iniciou o projeto Ethereum. Isto permitiu um ambiente de desenvolvimento mais flexível do que a rede Bitcoin e outras redes Blockchain com fins especiais. A rede Ethereum, pela primeira vez, introduzia uma rede descentralizada que permitia o processamento de qualquer tipo de transferência de valor utilizando contratos inteligentes. Estes contratos inteligentes podem ser facilmente criados com algumas linhas de código e são processados pela rede Ethereum, sem a necessidade de criar a sua própria infraestrutura de Blockchain. Ao contrário da rede Bitcoin, que é projetada para um único contrato inteligente que liquida remessas P2P, fazendo apenas e só isso, a rede Ethereum é projetada como uma rede descentralizada de computadores na qual qualquer tipo de contrato inteligente pode ser processado usando a Máquina Virtual Ethereum (EVM) e qualquer tipo de ativo tokenizado pode ser transferido, como por exemplo uma obra de arte.

O surgimento da Ethereum inspirou muitos projetos mais recentes no desenvolvimento de redes de contratos inteligentes similares. Exemplos de tais projetos incluem: “Cardano”, “Neo”, “EOS”, “Hyperledger Fabric”, “Ontology”, e muitos mais. Existem vários fatores que serão relevantes para a avaliação da sua viabilidade, tais como fatores técnicos, económicos e legais. Ainda não está claro que soluções alternativas à rede Ethereum poder-se-ão tornar populares e se haverá um cenário “o vencedor leva tudo” ou uma coexistência de múltiplas redes. Por enquanto, a comunidade Ethereum parece ter a maior tração, com a vantagem de ser a primeira, juntamente com uma panóplia alargada de desenvolvedores, mas isso pode mudar.

Além disso, surgiram sistemas alternativos de ledger distribuídas com tipos completamente diferentes de mecanismos de consenso, tais como gráficos acíclicos dirigidos (DAGs – directed acyclic graphs) que não requerem a criação de uma cadeia de blocos e, em vez disso, utilizam mecanismos criptoeconómicos alternativos para chegar a um consenso. Exemplos de redes que usam DAGs como mecanismo de consenso são “IOTA”, “Byteball” ou “Nano”.

Por outro lado, instituições privadas como bancos, companhias de seguros e muitas indústrias da cadeia de abastecimento perceberam que o conceito de gestão coletiva de dados através de um sistema de ledger distribuído poderia ser uma ferramenta útil de colaboração da indústria. Ao contrário das redes Blockchain públicas e não-permissionadas, a indústria começou a projetar “ledgers permissionadas”, onde todos os validadores são membros de um consórcio da indústria, ou pelo menos pessoas juridicamente separadas da mesma organização. No entanto, o termo “blockchain” no contexto de redes permissionadas e privadas é altamente controverso e disputado. Os críticos questionam se um livro-razão permissionado, onde se tem “confiança por autoridade”, pode ser considerado “de facto” e de “per si”, uma rede Blockchain. Os defensores das ledgers permissionadas argumentam que o termo “blockchain” aplica-se a toda e qualquer estrutura de dados distribuídos onde as transações são registadas em blocos interligados através de um “hash” e, da mesma forma, também a redes permissionadas que efetuem transações em lote para uma cadeia de blocos.

As redes públicas utilizam mecanismos criptoeconómicos (confiança por matemática) para manter a rede segura com um mecanismo de consenso que incentiva o comportamento individual (esforços computacionais) para alcançar um objetivo coletivo. O mecanismo de incentivo está estritamente ligado ao token da rede. É essencial colocar essa rede de atores não confiáveis a salvo de ataques e manipulações. As redes permissionadas, por outro lado, são geridas coletivamente por um conjunto de atores de rede que conhecem e confiam uns nos outros e não precisam de mecanismos de consenso computacionalmente intensos, como o Proof-of-Work, e logo, não precisam de um token como incentivo a fazer o que é correto. A confiança depende do sistema legal e da reputação dos atores conhecidos da rede (confiança por contrato legal). O denominador comum destas redes é a existência de um livro-razão distribuído. É por isso que o termo “ledger distribuída” surgiu como um termo mais geral para descrever tecnologias que derivaram da rede Bitcoin. Elas podem ser transações com ou sem permissão, agrupadas em cadeias de blocos ou, como no caso da IOTA, não usar sequer uma cadeia de blocos.

Protocolos Blockchain e ledgers distribuídas similares operam em cima da Internet e podem ser materializados  em vários componentes: (i) rede física: representada por uma rede P2P de computadores que executam o mesmo protocolo; (ii) protocolo: define as regras da rede e fá-las cumprir por consenso[2] de todos os nós da rede. Isto inclui incentivos económicos vinculados ao token nativo; (iii) ledger: gestão de todos os ativos na forma de um livro-razão compartilhado e público de todas as transações desde o bloco de génese até hoje; (iv) identificação e endereçamento: os ativos pertencem a identidades que precisam ser tratadas para que possamos transferir ativos de um para o outro. Estas identidades podem ser mais ou menos anónimas, dependendo dos tipos de algoritmos criptográficos utilizados; no caso das redes de contratos inteligentes como a Ethereum os (v) contratos inteligentes gerem as relações dos atores envolvidos, e representam a lógica de negócio ou de governança.

[1] Contratos Inteligentes são programas de computador que regulam, auditam e executam regras arbitrárias de transferência de token que foram escritas no código. Essas regras são executáveis por consenso de todos os computadores da rede, a rede Blockchain.

[2] “Consenso” é um termo usado na ciência da computação que se refere a como uma rede distribuída de computadores pode concordar com um valor específico que é necessário durante um processo de computação distribuída, pelo qual uma maioria especificada de nós de rede deve concordar com o mesmo valor que foi proposto por pelo menos um outro nó.

 

O conteúdo aqui apresentado foi retirado do livro “Token Economy” de Shermin Voshmgir, traduzido e adaptado para português por mim, José Rui Sousa, em conjunto com António Chagas, Courtnay Guimarães e Joana Camilo, publicado sob uma licença Creative Commons CC BY-NC-SA apenas para uso não-comercial.

O mecanismo de consenso Proof-of-Work (Prova-de-Trabalho) da Bitcoin é inovador, mas envolve um custo. Embora garanta a segurança numa rede não confiável, é lenta, intensa, e favorece aqueles que têm mais recursos económicos para gastar. É por isso que muitos investigadores e programadores começaram a explorar mecanismos alternativos de consenso para tentar enfrentar alguns dos principais desafios do Bitcoin. As questões de pesquisa que precisam ser resolvidas são:

* Como chegar a um consenso sobre uma versão da história que a maioria aceita como verdadeira?

* Como alinhar recursos naturais escassos (como eletricidade e CPU) com os recursos da rede para evitar que atores maliciosos enviem spam para o sistema?

* Quais são os riscos de segurança e os vetores de ataque?

Apesar de muitos algoritmos de consenso diferentes estarem a ser experimentados, o Proof-of-Work e o Proof-of-Stake (Prova-de-Participação) são atualmente os mais difundidos. Contudo, é importante notar que as redes Blockchain que utilizam o mesmo mecanismo de consenso geral podem ter especificações diferentes[1]. As redes Bitcoin e Ethereum utilizam diferentes variantes do Proof-of-Work.

O mesmo é válido para o Proof-of-Stake, um mecanismo de consenso onde apenas os atores da rede que têm uma participação financeira na rede podem adicionar os blocos à ledger. Ao contrário do Proof-of-Work, os validadores não competem entre si para criar um bloco de transações. Em vez de sacrificar energia para validar um bloco, os utilizadores devem provar que possuem uma certa quantidade dos tokens da rede para gerar um bloco. Os tokens na sua carteira representam a sua aposta. Existem diversas variantes de implementações de Proof-of-Stake.

Propostas de Proof-of-Stake mais antigas assumiam que aqueles que têm maior participação no sistema (ou seja, que apostam mais) têm um incentivo natural para agir de forma verdadeira ao validar transações e escrever blocos. Foi assumido que os detentores de tokens teriam um interesse natural no sucesso de longo prazo da rede; de forma oposta, sua “aposta” perderia valor caso contribuíssem de forma maliciosa. Adicionalmente, assumiu-se que quanto mais tokens se possuísse, mais estaria em jogo se a rede fosse atacada. Os direitos de voto foram, portanto, concebidos proporcionalmente à quantidade de tokens de rede detidos. No entanto, existe um problema no mecanismo original do Proof-of-Stake: ao contrário da Proof-of-Work, onde a mineração é cara e, portanto, não é inteligente desperdiçar energia num fork que não renderá nenhum dinheiro, o Proof-of-Stake não requer um trabalho computacionalmente intensivo para criar um bloco. A presunção base é a de que o validador não tem nada a perder a não ser muito a ganhar.

A rede “Peercoin” foi o primeiro projeto a introduzir a Proof-of-Stake. Outras redes seguiram com suas próprias variantes de Proof-of-Stake, tais como “Tendermint” (“Cosmos“), “Ouroboros” (“Cardano”), “Tezos”, “Dfinity”, “Nxt”, “BlackCoin”, “NuShares/NuBits” e “Qora”, cada uma das quais com propriedades diferentes. Algumas, como “Decred”, combinam elementos tanto de Proof-of-Work como de Proof-of-Stake. O projeto Ethereum está a planear a transição do Proof-of-Work para o Proof-of-Stake com um hard fork (Casper). Os desenvolvedores da Ethereum desenvolveram diferentes propostas de como isso deve ser feito.

Delegated Proof-of-Stake (DPoS) é uma variação do Proof-of-Stake, implementado pela primeira vez por “BitShares”. É uma variação mais radical, uma espécie de democracia representativa onde os donos de tokens podem transferir os seus votos para que os chamados “delegados” validem em seu nome. Há geralmente entre 21 e 101 delegados eleitos que podem ser selecionados de forma aleatória periodicamente ou receber uma ordem para entregar os seus blocos. Esses delegados podem criar blocos e impedir que partidos não confiáveis criem blocos. Eles não podem alterar as transações, mas podem vetar transações específicas de serem incluídas no próximo bloco da rede. Diferentes redes adotaram a sua própria versão de DPoS, de que são exemplos “Steemit”, “EOS”, e “Lisk”. Ao invés de competir na validação de blocos, cada delegado tem um espaço de tempo para publicar o seu bloco. Os portadores de Tokens podem retirar seu voto em relação a um delegado, se os delegados falharem continuamente seus blocos ou publicarem transações inválidas. Esta centralização parcial da criação de blocos resulta em melhor rendimento de transações (também chamada de “escalabilidade”) do que a maioria dos outros mecanismos de consenso.

Existem ainda mais variações do Proof-of-Work, a maioria das quais são apenas conceptuais ou foram implementadas por uma única rede: “Leased Proof-of-Stake“, “Transactions as Proof-of-Stake“, “Proof-of-Importance“, “Proof-0f-Capacity“, “Proof-of-Weight“, “Proof-of-Authority” e “Proof-of-Elapsed-Time“.

Byzantine Fault Tolerance (BFT): outro grupo de mecanismos de consenso são derivações da Tolerância de Falhas Bizantinas (BFT) como os Acordos Bizantinos Federados (FBA), implementados por exemplo por “Ripple” ou “Stellar“, Tolerância a Falhas Bizantinas Práticas (pBFT) como implementado por “Hyperledger Fabric“, e Tolerância a Falhas Bizantinas Delegadas (dBFT) como utilizado em “NEO”. Outro grupo de protocolos utiliza uma combinação de mecanismos, como o “Hashgraph, que combina a Tolerância a Falhas Bizantinas Assíncronas com mecanismos de “gossip protocols” e “virtual voting”.

Directed Acyclic Graphs (DAG): adicionalmente, existe toda uma série de protocolos que utilizam Gráficos Acíclicos Dirigidos, tais como “IoT Chain”, “Byteball”, “Nano” (Block Lattice), eIOTA” (Tangle). O mecanismo de consenso dos DAG é fundamentalmente diferente das cadeias de blocos. Em vez de agrupar os dados em blocos que são então confirmados um após o outro, Gráficos Acíclicos Dirigidos requerem dados recém adicionados para referenciar e validar dados passados. Normalmente, cada nova transação teria de referenciar e validar duas transações que vieram antes. Ao fazer isso, a rede vai formando um gráfico de transações convergentes e confirmadas. Se um nó validar incorretamente uma transação passada, a transação desse nó não será confirmada por outros participantes.

Explicar em detalhe cada um dos mecanismos de consenso referidos acima está para além do âmbito deste livro e exigiria uma ou várias publicações dedicadas. A literatura sobre estes protocolos no contexto de ledgers distribuídas ainda é escassa, mas está em crescimento. No entanto, muitos destes protocolos ainda se encontram numa fase conceptual, sem documentação adequada. Em muitos casos são implementados por um único projeto, por vezes sem serem devidamente pesquisados, ou sem terem sido submetidos ao processo académico de revisão pelos seus pares.

[1] O Proof-of-Work em Bitcoin e Ethereum são diferentes. Exemplos de tais diferenças são: variação no tipo de algoritmos de hashing (SHA-256 vs. Ethash), variação do tempo médio do bloco alvo (10 minutos vs. ~15 segundos), e esquemas de pagamento variáveis (apenas produtores de blocos reais vs. alguns blocos não aceites são recompensados, por exemplo, Uncles).

 

O conteúdo aqui apresentado foi retirado do livro “Token Economy” de Shermin Voshmgir, traduzido e adaptado para português por mim, José Rui Sousa, em conjunto com António Chagas, Courtnay Guimarães e Joana Camilo, publicado sob uma licença Creative Commons CC BY-NC-SA apenas para uso não-comercial.

Com o advento de tecnologias que utilizam regras de governança derivadas do protocolo Bitcoin original, torna-se pertinente classificar os diferentes sistemas de ledgers distribuídas. A principal distinção é concebida em torno da questão de quem pode (i) validar transações, (ii) escrever transações na ledger, (iii) ler transações, e (iv) usar a rede. Dependendo do tipo de ledger, a resposta irá variar. Para manter as coisas simples, podemos dizer que em redes públicas, qualquer pessoa pode ler, escrever e validar transações e usar a rede. Enquanto que em redes privadas, apenas membros convidados podem ler, escrever e validar transações e usar a rede. Variações híbridas também são possíveis. Um exemplo seria um convidado que poderia validar e escrever transações, mas ler (certas) transações seria do âmbito público. Ou vice-versa. Em redes públicas e não-permissionadas, todos os nós que participam do protocolo de consenso não são confiáveis, pois não são conhecidos de antemão. Sem a permissão de uma entidade centralizada, qualquer pessoa pode baixar o protocolo e a versão atual da ledger para:

* Executar um nó completo no seu dispositivo local, validando as transações na rede.

* Minerar um bloco de transações, adicionando dados à ledger, participando assim do processo de consenso (Proof-of-Work) e ganhando tokens de rede nesse processo.

* Enviar tokens através da rede e esperar vê-los incluídos na ledger se a transação for válida.

* Utilizar software público de explorador de blocos para aferir sobre todos os dados relacionados com transações na rede, ou realizar análises de cadeia (big data) em todos os dados relacionados com a cadeia de blocos armazenados num nó completo.

O mecanismo de consenso para tal configuração tem de levar em linha de conta comportamentos maliciosos. O token é um componente essencial para tornar esta rede de atores não confiáveis resistente a ataques. Embora os incentivos tokenizados tornem as redes não confiáveis seguras, eles também as tornam mais lentas. Redes públicas e não-permissionadas só podem lidar com algumas transações por segundo, o que as torna inviáveis para aplicações de larga escala com alto volume de transações. Entretanto, várias soluções tecnológicas têm vindo a ser propostas e implementadas atualmente para resolver esses problemas de escalabilidade.

As ledgers privadas e permissionadas, por outro lado, têm uma configuração federada com acordos contratuais bilaterais. É um clube de sócios apenas por convite. A rede não é acessível a participantes arbitrários. Os sócios confiam uns nos outros porque têm acordos contratuais bilaterais uns com os outros, e se alguma coisa correr mal, sabem quem processar. Portanto, os registos autorizados não precisam de um token para incentivar a ação coordenada, tal como acontece nas redes não-permissionadas. O facto de as identidades de todos os nós participantes serem conhecidas de antemão fornece uma proteção natural contra “ataques sybil“. As ledgers privadas e permissionadas podem, portanto, liquidar muito mais transações por segundo, já que não precisam lidar com uma quantidade desconhecida de nós anónimos. Elas fornecem também mais privacidade do que mesmo as redes Blockchain públicas de última geração, uma vez que os dados da ledger não são acessíveis ao público. As ledgers permissionadas estão a ser desenvolvidas na sua maioria por consórcios industriais. A verificação das transações é realizada por um conjunto pré-selecionado de participantes, por exemplo, sessenta instituições financeiras, cada uma das quais opera um nó, e onde quarenta devem assinar cada bloco para que o bloco seja válido. Dependendo do setor e do caso de uso, o direito de ler os dados da ledger pode ser público, parcialmente público ou restrito aos participantes.

Apesar da maior parte da literatura sobre Blockchain fazer uma distinção vincada entre ledgers permissionadas e não-permissionadas, eu gostaria de argumentar que não existe tal coisa como “100% sem permissão”. Todo o mecanismo de consenso requer um limite mínimo de investimento que se precisa fazer para se poder validar transações ou escrever na ledger. No entanto, a maioria da população mundial não tem os meios económicos para comprar hardware especializado suficientemente poderoso para extrair tokens Bitcoin, ou outros. Mesmo para um nó completo que só valida transações numa rede pública de Blockchain e não requer o mesmo nível de investimento em hardware que um nó de mineração, seria necessário investir num PC comum. No momento em que este livro é redigido, comprar um PC significa gastar pelo menos algumas centenas de euros[1] para validar as transações. Embora 500 EUR não seja muito dinheiro para uma família europeia média, ultrapassa o rendimento mensal de uma parte considerável da população mundial. Para não falar dos custos acessórios que um hardware de mineração envolve.

Além disso, embora, por exemplo, um consenso baseado em “Proof-of-Stake” seja público, ele não é totalmente não-permissionado. O mecanismo de consenso exige que se possua uma quantidade mínima de tokens de rede para se ser elegível para validar as transações. “Sem Permissão” é, portanto, um termo relativo que não podemos usar de forma binária, mas sim como um gradiente, variando de “menos permitido” a “totalmente permitido”. Num estágio tão precoce dos sistemas de ledger distribuída, soluções permissionadas podem ser úteis em indústrias altamente regulamentadas que querem construir sobre uma ledger distribuída, mas que estão sujeitas à regulamentação do Governo. Os defensores do setor alegam que soluções federadas podem proporcionar níveis mais altos de eficiência e segurança e diminuir os problemas de fraude das instituições financeiras tradicionais. Não é muito provável que as Blockchains privadas revolucionem o sistema financeiro, mas elas podem substituir os sistemas legados, tornando o setor mais eficiente. As ledger permissionadas podem também ser um passo para uma adoção mais ampla de redes públicas e não-permissionadas, uma vez que a tecnologia subjacente se torne mais escalável e madura, e melhor compreendida pelos reguladores.

Ainda não está claro como a tecnologia Blockchain irá evoluir a médio e longo prazo. Alguns preveem que as ledgers permissionadas possam sofrer o mesmo destino que as “Intranets” no início dos anos 90, quando as empresas privadas construíam as suas próprias redes privadas, porque tinham medo de se conectar com a Internet pública. Com o tempo, esse medo desapareceu. Hoje, as Intranets são utilizadas em casos muito específicos, onde são necessários altos níveis de segurança.

[1] É possível executar um nó completo num Raspberry PI (um minicomputador acessível) e um cartão SD, que seria inferior a 100 EUR. No entanto, você ainda precisa de um PC normal para fazer o download da Blockchain completa (pelo menos BTC e ETH). Uma vez que a ledger é descarregada, pode-se executar um nó completo num Raspberry PI.

O conteúdo aqui apresentado foi retirado do livro “Token Economy” de Shermin Voshmgir, traduzido e adaptado para português por mim, José Rui Sousa, em conjunto com António Chagas, Courtnay Guimarães e Joana Camilo, publicado sob uma licença Creative Commons CC BY-NC-SA apenas para uso não-comercial.

As redes Blockchain e os sistemas de ledgers distribuídas derivados, fornecem uma infraestrutura para a gestão de direitos. Cada processo, tarefa e pagamento engloba um registo e uma assinatura digital que pode ser identificado, validado, armazenado e compartilhado. Muitas tarefas de intermediários como advogados, corretores, banqueiros e repartições públicas podem ser substituídas por sistemas de ledger distribuídas. Os indivíduos, organizações, máquinas, e algoritmos podem agora interagir uns com os outros com pouco ou nenhum atrito e a uma fração dos custos de transação atuais. Esta nova infraestrutura permite muitas novas aplicações, as mais importantes das quais sendo:

  • Transparência e controlo: as redes Blockchain e outros sistemas de ledger distribuídas permitem mais transparência e controlo ao longo da cadeia de abastecimento de bens e serviços, incluindo serviços financeiros que foram tokenizados, o que resolveria muitas questões sobre transparência na cadeia de abastecimento, redução da corrupção e mais controlo sobre o que acontece com os nossos dados privados.
  • Redução de burocracia: contratos inteligentes e soluções similares de gestão de direitos têm o potencial de reduzir a burocracia e os custos de coordenação das transações comerciais.
  • Resolver o “problema do principal-agente” das organizações[1]: os sistemas de ledger distribuídas também fornecem uma ferramenta de coordenação global para novos tipos de organizações descentralizadas e às vezes também autónomas.
  • Tokens como “killer-app”: os tokens criptográficos enquanto aplicação de redes Blockchain e sistemas de ledgers distribuídas derivados podem ser tão revolucionários quanto o surgimento da WWW, que permitiu a criação de páginas web visualmente atraentes com apenas algumas linhas de código, e navegar na Internet seguindo links em vez de usar interfaces de linha de comando. Torna-se agora fácil criar um token com algumas linhas de código de um contrato inteligente.

Um dos mais importantes casos de uso de sistemas de ledgers distribuídas é a transparência e a proveniência ao longo da cadeia de abastecimento de bens e serviços. As cadeias de abastecimento representam uma rede complexa de entidades geograficamente distantes e legalmente independentes que trocam bens, pagamentos e documentos através de uma rede dinâmica, onde todos os documentos são mantidos e geridos em silos centralizados de dados. Como resultado, os sistemas de tratamento de documentos ao longo dessas redes da cadeia de abastecimento são muitas vezes ineficientes, têm interfaces complexas e são de custo intensivo. O comportamento sustentável tanto de empresas como de indivíduos é difícil de rastrear e não é recompensado da melhor forma. Clientes e fornecedores têm pouca ou nenhuma informação sobre a proveniência dos produtos que transacionam, incluindo possíveis fraudes, poluição ou abusos dos direitos humanos.

 Ledgers distribuídas permitem que um grupo díspar de atores da rede ao longo de uma cadeia de abastecimento troque dados de forma contínua. Documentos e transações podem ser processados em tempo quase real, uma vez que a auditoria e a fiscalização podem ser automatizadas, ao mitigar desafios como múltiplas cópias de documentos e inconsistências de dados. O rastreamento da proveniência de bens e serviços ao longo das cadeias de abastecimento globais pode-se tornar muito mais viável do que nos dias de hoje. Soluções baseadas na Web3 podem proporcionar (i) maior transparência dos impactos ambientais e (ii) origem, tipo de produção e ingredientes dos alimentos que consumimos, e condições sob as quais as plantas são cultivadas ou como os animais são tratados. Muitas empresas e iniciativas industriais, tais como “Provenance“, “Ambrosus, “Modum, “OriginTrail, “Vechain, “Wabi” ou “Wantonchain“, começaram a implementar infraestruturas baseadas na Web3 para otimizar as suas cadeias de valor, melhorar as ineficiências, libertar capital de trabalho e tornar os bens e serviços mais acessíveis. Tais soluções, no entanto, exigem sempre a combinação de um conjunto de tecnologias, incluindo algoritmos de aprendizagem de máquinas (machine learning) e dados da Web física, a Internet das Coisas. Aplicações de ledgers distribuídas podem também fornecer uma melhor responsabilidade em relação aos direitos humanos, como condições gerais de trabalho, trabalho infantil ou salários justos. Projetos a trabalhar em tais soluções: “bext360”, “fairfood”, e “Namahe”. Elas podem ainda ser usadas para fornecer mais controlo sobre os nossos dados privados e criar mercados de dados P2P (Ocean Protocol). Embora, em teoria, este nível de transparência do que acontece com os dados privados pudesse também ser fornecido com soluções atuais, tal obrigar-nos-ia a confiar numa instituição centralizada.

[1] Em ciência política e em economia, o problema do principal–agente ou dilema da agência, ocorre quando uma pessoa ou entidade (o “agente“) está apto a tomar decisões ou a promover iniciativas em nome de, ou com impactos, relativos a outra pessoa ou entidade (o “principal”). Este dilema surge, em determinadas circunstâncias, quando a motivação dos “agentes” vai no sentido de agirem de acordo com os seus interesses próprios, contrários aos dos “principais” que os recrutaram.

O conteúdo aqui apresentado foi retirado do livro “Token Economy” de Shermin Voshmgir, traduzido e adaptado para português por mim, José Rui Sousa, em conjunto com António Chagas, Courtnay Guimarães e Joana Camilo, publicado sob uma licença Creative Commons CC BY-NC-SA apenas para uso não-comercial.

As cifras foram uma das primeiras técnicas de encriptação desenvolvidas para encriptar texto simples com cifras de substituição (onde as unidades de texto simples são substituídas por letras simples, pares de letras ou trigémeos de letras) ou cifras de transposição (onde as unidades de texto simples são reordenadas numa ordem diferente e geralmente bastante complexa). A descodificação é o processo de conversão do texto criptográfico ilegível de volta ao texto original. Uma cifra é, portanto, um par de algoritmos que cria a criptografia, bem como a desencriptação inversa: é projetada de uma forma que facilita a criptografia de uma mensagem, mas muito difícil de reverter se não se conhecer o código.

Historicamente, a criptografia tem sido usada de várias formas, como por exemplo um texto criptográfico esculpido numa pedra no Egito. Outras formas de cifras remontam à Pérsia Sassânida, Grécia Antiga, Império Romano, Índia, etc. Desde o desenvolvimento da máquina enigma (uma máquina de cifras de rotor) na Primeira Guerra Mundial, e o surgimento dos computadores na Segunda Guerra Mundial, as aplicações e métodos criptográficos têm evoluído radicalmente. As cifras clássicas tornaram-se redundantes porque eram muito fáceis de adivinhar com simples “ataques de força bruta”, onde um algoritmo de computador executa todas as combinações possíveis até adivinhar o código certo. Os computadores não só aumentaram as possibilidades de criptoanálise, o que se refere ao processo de quebra de criptografia, como também tornaram possíveis cifras mais complexas. Algoritmos criptográficos modernos são projetados para ser inviável em termos de tempo e dinheiro quebrá-los aplicando a força bruta. No entanto, tais “suposições de força computacional” têm de considerar o aumento contínuo do poder de processamento dos computadores.

Para além disso, os computadores introduziram novas formas de criptografia de qualquer tipo de informação digital, e não apenas pedaços de texto. Com o advento dos computadores quânticos, muitos investigadores estão a estudar a relação entre problemas criptográficos e a física quântica. A criptografia pós-quântica está a ser desenvolvida por alguns investigadores e engenheiros que já começaram a considerar os efeitos potenciais da computação quântica ao projetar novos algoritmos. Na era da informação, o uso da criptografia também levanta muitas questões legais. Alguns governos limitam ou proíbem o uso da criptografia e, em alguns casos, até a classificam como uma arma. Certas jurisdições podem permitir que as autoridades governamentais ordenem a divulgação de chaves de criptografia para documentos que possam ser relevantes para uma investigação. Além disso, a criptografia pode ser um factor interessante ao discutir os direitos humanos numa era digital. A questão de como garantir a privacidade na era da máquina está lentamente a tornar-se uma discussão liderada por um público em geral mais amplo, e provavelmente tornar-se-á mais dominante nos anos vindouros. A questão crucial, neste contexto, é se e como o direito constitucional à privacidade da comunicação, ou a santidade da própria casa, poderia corresponder ao direito à comunicação criptografada ou a trilhas de dados criptografados.

Embora as primeiras tentativas de criptografar a comunicação eletrónica tenham-se concentrado em proporcionar sigilo e preservar tecnologias para as comunicações das instituições governamentais, o espectro tem-se vindo a expandir. Nas últimas décadas, as tecnologias de criptografia foram aplicadas em vários outros domínios, como comércio eletrónico, pagamentos digitais, gestão de direitos digitais, gestão de senhas, verificação de integridade de mensagens, autenticação de identidade, assinaturas digitais, provas interativas e computação segura. No contexto de redes Blockchain e outros registos distribuídos, a criptografia é utilizada para fins de identificação, verificação e segurança ao nível do protocolo central. Três camadas relevantes na construção criptográfica são usadas no contexto de redes públicas de Blockchain e outras tecnologias Web3: (i) funções hash, (ii) criptografia simétrica, e (iii) criptografia assimétrica (criptografia de chave pública).

Funções Hash são algoritmos matemáticos que convertem qualquer tipo de dados de tamanho arbitrário (mensagem) em dados de tamanho fixo (valor hash ou hash). A única maneira de recriar os dados originais (mensagem) a partir do hash é tentar todas as variações possíveis para ver se elas produzem uma correspondência. Embora isso seja possível, é demorado e, portanto, caro, e é por isso que é referido como uma função unidirecional. As funções de hash podem ser usadas para assegurar a integridade dos dados transmitidos e a privacidade. As suas aplicações passam por assinaturas digitais, serviços de autenticação, impressão digital, deteção de duplicados, identificação única de ficheiros ou a criação de checksums (somas de controlo) para detetar a corrupção de dados. Para serem consideradas resilientes, as funções criptográficas de hash precisam cumprir determinadas propriedades: precisam ser projetadas de forma que sejam (i) fáceis de calcular; (ii) determinísticas, significando que a mesma mensagem resulta sempre no mesmo hash; (iii) suficientemente demoradas e caras para gerar uma mensagem a partir de seu valor de hash com pura força bruta; (iv) as mais pequenas alterações no valor de entrada original devem alterar o valor de hash. Além disso, deve ser (v) inviável encontrar duas mensagens diferentes (input) com o mesmo valor de hash (output).

Sistemas simétricos: antes do surgimento da criptografia de chave pública, duas partes confiavam numa chave criptográfica que trocavam por um método não criptográfico, tal como reuniões secretas, envelopes selados, ou mensageiros de confiança. Se alguém quisesse comunicar-se de forma privada com outro, seria preciso encontrar-se fisicamente e concordar com uma chave secreta. No mundo das comunicações modernas, onde é necessário haver coordenação no meio de uma rede de muitos atores não confiáveis (a Internet), tais métodos não seriam viáveis. É por isso que a criptografia simétrica não é utilizada para a comunicação em redes públicas. É, no entanto, mais rápida e eficiente do que a criptografia assimétrica e, portanto, usada para criptografar grandes quantidades de dados, certas aplicações de pagamento ou geração de números aleatórios.

Sistemas Assimétricos, também conhecidos como criptografia de chave pública, vieram resolver o problema de coordenação através da introdução de duas chaves, uma pública e uma privada. A chave privada só é conhecida pelo proprietário da mesma e precisa de ser mantida privada, enquanto que a chave pública pode ser fornecida a qualquer pessoa. A chave pública pode ser transmitida à rede, o que permite que qualquer pessoa na rede utilize as chaves públicas para enviar uma mensagem criptografada ao “proprietário” da chave pública. Esta mensagem criptografada só pode ser desencriptada com a chave privada do recetor. Os remetentes podem agregar a sua chave privada à mensagem para criar uma assinatura digital na mensagem. Agora, qualquer pessoa pode verificar com a chave pública correspondente à chave privada se a assinatura é válida. A forma como as chaves são geradas depende dos algoritmos criptográficos utilizados. Exemplos de sistemas assimétricos incluem RSA (Rivest-Shamir-Adleman) e ECC (Elliptic-Curve Cryptography), que também é usado em Bitcoin. O uso de criptografia assimétrica aumentou a segurança da comunicação em redes não confiáveis, como a Internet, de uma forma escalável[1]. Os capítulos seguintes focar-se-ão no modo como a criptografia é utilizada na rede Bitcoin e em redes Blockchain similares.

 

 

 

A rede Bitcoin utiliza fundamentalmente hashes em combinação com assinaturas digitais para proteger a integridade dos dados que fluem através da rede utilizando criptografia de chave pública. Além disso, os hashes são utilizados no contexto do protocolo de consenso “Proof-of-Work”. A Bitcoin usa criptografia de chave pública, e mais especificamente, criptografia de curva elíptica. Por favor note que, redes alternativas de Blockchain e outros sistemas de ledgers distribuídas podem usar ferramentas criptográficas alternativas às descritas abaixo. Algumas redes Blockchain, por exemplo, utilizam criptografia mais orientada à preservação da privacidade, como “Zcash” (Zero-Knowledge-Proof)[2] e “Monero” (Ring Signatures)[3] . A própria comunidade Bitcoin está atualmente à procura de esquemas alternativos de assinatura criptográfica que sejam mais preservadores da privacidade e mais escaláveis, por exemplo, com “Mimblewimble”.

[1] Embora a criptografia de curvas elípticas forneça o mesmo nível de segurança que a RSA, ela precisa de menos computação e menor tamanho de chave, reduzindo assim os requisitos de armazenamento e transmissão. Portanto, permite a redução dos requisitos de armazenamento e transmissão.

 

[2] A criptografia de provas de conhecimento zero permite a validação da informação sem revelar essa informação com o verificador da mesma.

 

[3] As assinaturas em anel podem ser usadas para ofuscar a identidade dos proprietários de tokens, combinando um grupo de assinaturas digitais parciais de várias transações enviadas por diferentes usuários, para formar uma assinatura única que é usada para assinar uma transação.

O conteúdo aqui apresentado foi retirado do livro “Token Economy” de Shermin Voshmgir, traduzido e adaptado para português por mim, José Rui Sousa, em conjunto com António Chagas, Courtnay Guimarães e Joana Camilo, publicado sob uma licença Creative Commons CC BY-NC-SA apenas para uso não-comercial.

A rede Bitcoin usa criptografia de chaves públicas para criar uma referência digital segura sobre a identidade de um utilizador com um conjunto de chaves criptográficas: uma chave privada e uma chave pública. Referências digitais seguras sobre quem é quem, e quem possui o quê, são a base para as transações P2P. Em combinação com uma transação, essas chaves criam uma assinatura digital que prova a propriedade dos tokens e permite o controlo dos mesmos com uma “wallet” (software de carteira). À semelhança de um cheque que é assinado à mão, e das senhas que são usadas para autenticação nos “home banking”, a criptografia de chaves públicas é usada para autenticar e assinar transações na Blockchain.

A chave pública é gerada matematicamente a partir da chave privada. Embora seja muito fácil calcular a chave pública a partir da chave privada, o inverso só é possível com pura força bruta; adivinhar a chave é possível, mas proibitivamente caro. Mesmo o supercomputador mais poderoso do mundo levaria triliões de anos para tal, tornando-o praticamente impossível. Isto significa que, embora a chave pública seja conhecida por todos, ninguém pode derivar dela a sua chave privada. Uma mensagem que é criptografada com a chave pública pode agora viajar com segurança até ao proprietário da chave privada e apenas o proprietário desta chave privada é capaz de decifrar a mensagem. Este método também funciona de forma inversa. Qualquer mensagem com uma chave privada pode ser verificada com a chave pública correspondente.

Um exemplo análogo para uma chave pública seria o exemplo de um cadeado. Se Bob quiser enviar uma mensagem a Alice, mas tiver medo que alguém a intercete e a leia, ele pedirá a Alice para enviar o cadeado dela (destrancado) para ele, e para manter a chave do cadeado. Bob pode agora colocar a sua carta numa pequena caixa e trancá-la com o cadeado que Alice lhe enviou, fechando-o com um simples empurrão. A carta pode agora ser enviada ao redor do mundo sem ser intercetada por uma pessoa não autorizada. Somente Alice, que tem a chave do cadeado dela, pode abrir a carta. Claro que alguém poderia tentar partir a caixa com pura força bruta, em vez de usar a chave. Embora seja possível, a dificuldade dependeria da resiliência da caixa e da força da fechadura. Os mesmos princípios básicos aplicam-se à criptografia moderna.

O conteúdo aqui apresentado foi retirado do livro “Token Economy” de Shermin Voshmgir, traduzido e adaptado para português por mim, José Rui Sousa, em conjunto com António Chagas, Courtnay Guimarães e Joana Camilo, publicado sob uma licença Creative Commons CC BY-NC-SA apenas para uso não-comercial.

A questão crucial na criptografia de chave pública gira em torno de suposições de dureza computacional: como se pode alargar o esforço computacional entre derivar a chave privada através da chave pública, em comparação com derivar a chave pública através da chave privada? Quão difícil é quebrar a criptografia adivinhando o resultado, quanto tempo levaria para adivinhar a chave privada, e quão caro seria? A chave privada é representada por um número, o que significa que quanto maior for o número, mais difícil é adivinhar esse número (aleatório) por alguém que não sabe o número. Se forem necessárias algumas décadas para adivinhar um número aleatório, o número é considerado seguro. No entanto, todo e qualquer algoritmo criptográfico é vulnerável a ataques de força bruta, o que se refere a adivinhar a chave privada de alguém tentando todas as combinações possíveis até que uma solução seja encontrada. À medida que os computadores se vão tornando mais rápidos e eficientes, é preciso criar algoritmos mais sofisticados, seja usando números maiores ou inventando algoritmos mais resilientes.

Para garantir que seja difícil adivinhar o número, uma chave privada resiliente tem requisitos mínimos: temde ser (i) um número gerado aleatoriamente; precisa de ser (ii) um número muito grande; tem de usar (iii) um algoritmo seguro para a geração das chaves. A aleatoriedade é importante, pois não queremos que nenhuma outra pessoa ou máquina utilize a mesma chave, e é sabido que os humanos não lidam bem com a aleatoriedade. Os tamanhos grandes das chaves permitem uma maior distribuição da aleatoriedade, e são muito mais difíceis de quebrar com força bruta, mas também mais lentos de calcular. Devido à sua complexidade, algoritmos seguros precisam de ser cientificamente comprovados e testados contra violações de segurança. Deve-se evitar inventar o próprio algoritmo. Esta questão tornou-se óbvia quando a equipe que desenvolveu a rede IOTA decidiu implementar a sua própria função de hash, chamada Curl. A IOTA é uma solução alternativa de ledger distribuído para Blockchain, que alega resolver o problema de escalabilidade da Bitcoin com um mecanismo de consenso alternativo e criptografia alternativa. No entanto, foi posteriormente descoberto que a função Curl era “não resistente à colusão”[1]. Desde o surgimento da Bitcoin, os algoritmos criptográficos usados na rede Bitcoin têm resistido a todas as tentativas de adulteração de dados.

Sem criptografia, não poderia haver consenso distribuído numa rede de atores que não se conhecem ou não confiam uns nos outros. À medida que os computadores ficam mais poderosos e conseguem adivinhar números mais rapidamente, os algoritmos utilizados terão de aguentar o tempo necessário e fazer face aos padrões tecnológicos em rápida evolução para manter o nível atual de segurança. Muitos investigadores e desenvolvedores argumentam que os supercomputadores, em particular os computadores quânticos, mais cedo do que tarde serão capazes de quebrar a maioria dos algoritmos convencionais de criptografia através da força bruta. Isto não é inteiramente verdade e depende do algoritmo criptográfico. Embora os computadores quânticos não sejam significativamente melhores em quebrar hashes, eles são muito mais poderosos quando se trata de curvas elípticas e factorização primária. As respostas são complexas e ainda não totalmente resolvidas. Os algoritmos criptográficos resistentes a computadores quânticos são, portanto, uma área crítica de pesquisa.

[1] As funções de hashing tomam uma entrada de comprimento arbitrário e retornam uma saída aparentemente aleatória, mas de comprimento fixo. Quando mais de uma entrada é solução para a mesma saída, graves problemas podem resultar de tal colusão. Uma equipe de investigadores do MIT e da Universidade de Boston encontrou exatamente tais falhas na função CURL da rede IOTA. Apesar da equipe da IOTA ter corrigido essas vulnerabilidades, eles alegaram que essas falhas foram introduzidas de propósito, o que foi altamente criticado pela comunidade de código aberto.

O conteúdo aqui apresentado foi retirado do livro “Token Economy” de Shermin Voshmgir, traduzido e adaptado para português por mim, José Rui Sousa, em conjunto com António Chagas, Courtnay Guimarães e Joana Camilo, publicado sob uma licença Creative Commons CC BY-NC-SA apenas para uso não-comercial.

Hashing é um método para transformar grandes quantidades de dados em números curtos e difíceis de adivinhar. Pode-se converter um texto ou uma figura, que representa uma sequência de bits de comprimento variável, para produzir uma sequência de bits de comprimento fixo na forma de um hash. Estas funções garantem a integridade dos dados. A rede Bitcoin usa Algoritmos de Hash Seguro (SHA), como o SHA-256. Uma propriedade importante dos hashes é que se um único bit de dados de entrada for alterado, a saída muda por completo, o que facilita a deteção de pequenas alterações em ficheiros de texto grandes, por exemplo. Como você pode ver no exemplo abaixo[1], um hash totalmente diferente é gerado quando mudamos apenas um símbolo. Isto é baseado no “efeito avalanche”, e é útil para fornecer facilmente a integridade dos dados. Um string completamente diferente resulta do hash.

~

Hash da frase Como comprar bitcoin?

7aad18ae046a7d61e4ac036e5a4c80e219a82afbe512eb68cc2af9023bd58b16

Hash da frase Como comprar bitcoin

ce30373bb1abc6569b1b0c44b4dccb88804ae4dfd6810b28b68bd5d390ebd897

Hashing do Hash produz:

c7937d9e01560029b6584395dc96a2f219f22b8c91afe74fdc806a663bbc4efc

~

O efeito avalanche descreve o comportamento de uma função matemática onde mesmo uma ligeira alteração numa cadeia de entrada deve causar uma mudança drástica no valor do hash resultante. Isto significa que se alguém adicionar apenas uma palavra, ou mesmo uma vírgula, a um documento de várias centenas de páginas, o hash desse documento irá mudar. O valor de hash de um documento pode, portanto, servir como um gémeo criptográfico do documento, e é por isso que ele é frequentemente referido como “impressão digital”. Como resultado disso, não é necessário encriptar o documento inteiro com a chave privada do remetente, pois isso consome tempo, largura de banda e dinheiro. Em vez disso, é possível calcular o valor do hash do documento.

O Hashing na rede Bitcoin faz parte dos seguintes processos: (i) codificação de endereços de carteiras; (ii) codificação de transações entre carteiras; (iii) verificação e validação dos saldos de contas de carteiras; e para o mecanismo de consenso (iv) Proof-of-Work.

[1] Calcule aqui os valores de hash: https://www.browserling.com/tools/all-hashes

O conteúdo aqui apresentado foi retirado do livro “Token Economy” de Shermin Voshmgir, traduzido e adaptado para português por mim, José Rui Sousa, em conjunto com António Chagas, Courtnay Guimarães e Joana Camilo, publicado sob uma licença Creative Commons CC BY-NC-SA apenas para uso não-comercial.

Uma carteira de Blockchain (wallet) é um software que armazena a sua chave privada, chave pública e endereço de Blockchain, e que se comunica com a rede Blockchain. Este software de carteira pode correr num computador ou num telemóvel (comoBitcoin Core”, Electrum”) ou num dispositivo de hardware dedicado (como “Trezor” ou “Ledger“). O software de carteira permite a autenticação do utilizador e a gestão de tokens. Com um software de carteira é possível enviar tokens e inspecionar os recibos de tokens que foram enviados para si. Cada vez que se envia tokens bitcoin, é necessário usar uma carteira para assinar a transação com a chave privada. Subsequentemente, o saldo pessoal de tokens é ajustado em todas as cópias do livro razão, que é distribuído através da rede de computadores P2P.

Quando lançada pela primeira vez, uma carteira Bitcoin, ou Blockchains similares, gera um par de chaves composto por uma chave privada e uma chave pública. Num primeiro passo, a chave privada – um integral de 256 bits – é gerada aleatoriamente. A chave pública é então derivada matematicamente a partir da chave privada, usando criptografia de chave elíptica. Num segundo passo, o endereço da Blockchain é derivado da chave pública, usando um tipo de função criptográfica diferente daquela que foi usada para derivar a chave pública, adicionando metadados como checksums (somas de controlo) e prefixos. Usar um tipo diferente de função criptográfica para derivar o endereço adiciona um nível extra de segurança: se a primeira camada de segurança, criptografia de chave elíptica, for corrompida, então alguém que tem a chave pública seria capaz de decifrar a chave privada. Isto é importante, pois a criptografia de chaves elípticas é especialmente vulnerável a ser corrompida se os computadores quânticos se tornarem numa realidade, enquanto o hashing, que é usado numa segunda camada para derivar o endereço, não é tão vulnerável a ataques de força bruta de computadores quânticos. Isto significa que se alguém tiver o endereço da Blockchain, e tiver quebrado a criptografia elíptica, essa pessoa ainda terá que passar pela segunda camada de segurança que foi usada para derivar o endereço a partir da chave pública. Isto é semelhante ao trancar a sua bicicleta duas vezes; usar duas fechaduras diferentes que têm mecanismos de segurança diferentes (chave ou numérica), dá-lhe uma camada adicional de segurança ao trancar a sua bicicleta. Como resultado disso, o endereço funciona como uma impressão digital da chave pública, mas não dá nenhuma informação sobre a chave pública da pessoa (a menos que ela envie a primeira transação). Os endereços Blockchain têm uma função semelhante a um número de conta bancária no contexto das transações financeiras tradicionais, ou a um endereço de e-mail quando as pessoas querem enviar-lhe um correio eletrónico.

As assinaturas digitais na rede Bitcoin e em redes Blockchain similares são realizadas através de um software de carteira. Similar a uma assinatura manuscrita, uma assinatura digital é usada para verificar que você é realmente quem diz ser. Implementadas corretamente, são mais difíceis de forjar do que assinaturas manuscritas. As assinaturas digitais são utilizadas há décadas, principalmente no contexto de transações financeiras, licenças de software ou software de gestão de contratos. Em redes Blockchain, as assinaturas digitais são usadas para a autenticação (prova de que o remetente dos tokens é, de facto, o remetente) e integridade da transação (ou seja, a quantidade de tokens enviados). A chave privada é usada para assinar transações de tokens. A chave pública é utilizada pelos nós de validação na rede para verificar a assinatura. Desta forma, uma carteira não pode fingir ser outra carteira. Isto também é referido como “não-repúdio”. Praticamente falando, isto significa que outra pessoa não pode fingir que controla a sua carteira, a menos que tenha a sua chave privada.

O conteúdo aqui apresentado foi retirado do livro “Token Economy” de Shermin Voshmgir, traduzido e adaptado para português por mim, José Rui Sousa, em conjunto com António Chagas, Courtnay Guimarães e Joana Camilo, publicado sob uma licença Creative Commons CC BY-NC-SA apenas para uso não-comercial.

A chave privada deve ser sempre mantida em segredo e não deve ser compartilhada com outras pessoas, a menos que você queira dar-lhes acesso deliberado aos seus tokens. Devido ao processo em duas etapas de obtenção da chave pública a partir da chave privada e do endereço a partir da chave pública, basta fazer uma cópia de segurança da chave privada; tudo o resto pode ser derivado da chave privada com o algoritmo criptográfico utilizado na rede. Se perder o acesso à sua carteira, sem ter uma cópia de segurança da sua frase[1] ou da sua chave privada, perderá o acesso aos seus tokens. Os seus tokens ainda existirão na rede, mas passará a não ter acesso aos mesmos.

Ao contrário da crença popular, uma carteira Blockchain não armazena qualquer token. Esta apenas armazena o par de chaves público-privadas associado ao seu endereço. Também mantém um registo de todas as transações em que as chaves públicas da carteira estão envolvidas, juntamente com alguns outros dados. Portanto, o termo “carteira” é enganoso. A palavra “porta-chaves” seria mais apropriada, pois no fundo funciona como um armazenamento seguro de chaves, e como uma ferramenta de comunicação com a rede do porta-chaves. À semelhança das chaves de casa, se você as perder, a casa ainda é sua, mas você não pode entrar em casa enquanto não as encontrar; talvez você tenha uma chave de reserva que deixou com um vizinho, amigo ou membro da família, ou encontre um serralheiro para ajudá-lo a invadir sua própria casa. Arrombar a sua fechadura traduzir-se-ia num ataque de força bruta para adivinhar a sua chave particular.

Existem dois tipos diferentes de carteira, carteira de custódia e carteira não-custodial:

Carteiras controladas pelo utilizador oferecem controlo pessoal sobre os tokens de cada um. As chaves privadas estão sob a custódia e responsabilidade exclusiva dos utilizadores e as transações são assinadas diretamente dos dispositivos dos utilizadores. Com carteiras controladas pelo utilizador, no entanto, o utilizador torna-se num ponto único de falha em caso de perda ou roubo das suas chaves.

As carteiras hospedadas são serviços de custódia online, oferecidos pelas Exchanges, onde o provedor de serviços gere a carteira de alguém nos seus servidores. Na maioria dos casos, as chaves privadas relacionadas com a carteira são também geridas por esses intermediários. O software da carteira replica a chave privada do utilizador de tal forma que um terceiro pode submeter transações em nome do utilizador. Muitas pessoas, portanto, preferem hospedar os seus tokens em exchanges online e delegar a responsabilidade de gestão das chaves a essas instituições confiáveis. Similar aos bancos de hoje, esses serviços de troca de tokens atuam como custodiantes dos fundos do utilizador.

Uma solução mais autónoma para o problema da perda das chaves privadas poderia ser as chamadas “soluções de recuperação de chaves sociais”, onde pode nomear um conjunto de amigos, familiares ou instituições de confiança para confirmar a sua identidade e permitir a recuperação de chaves num processo com várias assinaturas. Em tal configuração, você poderia, por exemplo, nomear cinco pessoas de confiança que poderiam ser contactadas em caso de perda da sua chave particular. Três em cada cinco pessoas poderiam ser definidas para assinar com suas chaves privadas para recuperar a sua chave privada. Desta forma, você define em quem confia, sem fazer de si mesmo um ponto único de falha. No entanto, se estas pessoas se conhecerem, podem conspirar ou ser subornadas para conspirar contra si. A fim de permitir uma verdadeira economia de tokens P2P, onde as pessoas podem enviar e receber tokens de carteiras para carteiras, sem a necessidade de terceiros de confiança, vamos precisar de melhores soluções de gestão de carteiras, onde o indivíduo é soberano dos seus tokens, sem descurar altos níveis de segurança e usabilidade. Uma solução menos sofisticada para a recuperação de chaves seria criar automaticamente um backup num serviço de nuvem, como o Google Drive. Embora isto não seja de todo aconselhável, por razões de conveniência, parece ter-se tornado uma tendência com algumas Exchanges de tokens, como a “Coinbase“.

 

 

À data de redação deste livro, a maioria das carteiras só permite a gestão de um tipo de token, e em alguns casos, de um número limitado de tokens. Isso deve-se ao facto de diferentes sistemas de ledgers distribuídos não serem, na maioria das vezes, interoperáveis. A maioria dos sistemas token têm especificações técnicas diferentes que dependem do tipo de ledger distribuída em que são emitidos e, portanto, requerem o desenvolvimento de carteiras individualizadas. Carteiras multiledger compatíveis são demoradas e dispendiosas de desenvolver. Outro aspeto do design da carteira é se uma carteira (em combinação com a ledger distribuída subjacente) permite a coassinatura de transações. Muitas das redes Blockchain, como a Ethereum, não permitem transações nativas com várias assinaturas. No caso da Ethereum, é necessário resolver isso através de um contrato inteligente, que tem sido sujeito a questões de segurança.

Assinaturas em anel, assinaturas coletivas e “Shamir’s Secret Sharing[2] são exemplos de algoritmos criptográficos alternativos que precisam ser habilitados pelas redes Blockchain e suportados pelo software de carteira para permitir a coassinatura de transações. As coassinaturas são uma característica importante que permite transferir a custódia dos seus tokens para outra pessoa (um banco ou uma Exchange que gere os seus tokens), gestão coletiva de ativos (em casos de propriedade coletiva do mesmo ativo ou gestão coletiva como no caso de uma DAO – Organização Autónoma Descentralizada), ou recuperação de chave social. Os Capítulos 3 e 4 deste livro aprofundarão os aspetos da gestão de tokens e casos de uso de tokens, onde o papel das carteiras se tornará mais tangível.

[1] Uma frase semente, também chamada de “semente mnemônica”, é um método para recuperar as chaves privadas com uma combinação de palavras fáceis de lembrar, que pode ser fornecida e gerida pelo seu software de carteira. A “mnemónica” é uma técnica de mapeamento que ajuda a reproduzir algo que é difícil de lembrar, com palavras aleatórias que são fáceis de lembrar.

[2] Shamir’s Secret Sharing é um algoritmo criptográfico que divide um segredo (chave) em partes, distribuindo fragmentos do segredo por entre diferentes pessoas. Para reconstruir o segredo, todos os fragmentos têm de ser adicionados. Na configuração “limiar”, apenas um certo número de partes é necessário para reconstruir o segredo.

O conteúdo aqui apresentado foi retirado do livro “Token Economy” de Shermin Voshmgir, traduzido e adaptado para português por mim, José Rui Sousa, em conjunto com António Chagas, Courtnay Guimarães e Joana Camilo, publicado sob uma licença Creative Commons CC BY-NC-SA apenas para uso não-comercial.

Se Alice quiser enviar tokens bitcoin para Bob, ela vai usar um software de carteira para se autenticar, especificar a quantidade que ela quer enviar e indicar o endereço do Bob. O software de carteira dela transmite a transação para todos os computadores da rede. Todos os computadores da rede podem agora verificar se a transação é válida, de acordo com as regras da rede. Os passos são os seguintes:

* Alice usa um software de carteira que gere a sua chave privada. Ao realizar operações matemáticas padrão, o software de carteira pode sempre derivar sua chave pública e seu endereço a partir da chave privada.

* Se Alice quiser enviar tokens para Bob, ela usa a sua carteira para criar uma transação que inclua todos os detalhes necessários: sua chave pública. Alice precisa especificar o endereço de Bob, e o número de tokens que ela quer enviar. Alice então cria uma assinatura digital desta transação, um hash (realizado pelo software de carteira dela).

* A fim de provar ao resto da rede que ela é a proprietária do endereço e, portanto, dos tokens, Alice assina o hash com a sua chave privada (executada automaticamente pelo seu software de carteira).

* Alice transmite agora esta transação para qualquer computador da rede: ela envia tanto a transação de texto simples como o hash assinado (realizado automaticamente pelo seu software de carteira).

* Qualquer computador na rede que recebe a transação pode agora verificar a validade da transação. Eles podem usar a chave pública de Alice para verificar matematicamente se o hash assinado foi realmente assinado por ela. Eles podem proceder a operações de hash na sua transação legível e receberão o mesmo valor de hash. Eles podem também usar a chave pública de Alice para verificar se o hash assinado foi realmente assinado por ela.

* Depois de confirmar todos estes detalhes, por consenso de todos os atores da rede, as transações validadas são armazenadas num bloco e hasheadas. Este bloco torna-se parte da ledger atualizada se outros computadores da rede validarem que o número de hash no bloco é válido. Este processo de criação de novos blocos de transações está sujeito ao mecanismo de consenso Proof-of-Work.

* Todos os nós da rede irão alterar a sua ledger de acordo com a criação do próximo bloco, para que Bob seja agora dono dos fundos que Alice lhe enviou. Esta transação torna-se parte dos Estados universais da rede Bitcoin e é resistente à adulteração. A informação na ledger pode ser alterada, mas a custos proibitivamente elevados.

O conteúdo aqui apresentado foi retirado do livro “Token Economy” de Shermin Voshmgir, traduzido e adaptado para português por mim, José Rui Sousa, em conjunto com António Chagas, Courtnay Guimarães e Joana Camilo, publicado sob uma licença Creative Commons CC BY-NC-SA apenas para uso não-comercial.

A gestão da identidade refere-se ao processo pelo qual organizações, indivíduos e objetos podem ser identificados, autenticados e certificados de forma confiável. Serviços de identidade confiáveis são a base para a gestão de direitos de acesso pela Internet e um pré-requisito necessário para muitas atividades socioeconómicas em geral – offline ou online. Casos de uso relacionados à identidade podem ser encontrados no Governo (certidões de nascimento, cartões de identidade nacional, passaportes ou cartas de condução), educação (certificações e licenças), saúde (registos de dados pessoais relacionados à saúde), comércio eletrónico, bancos ou finanças (dados de clientes, B2B e funcionários). Na Internet das coisas, um número crescente de objetos que estão ligados à Internet também necessita de sistemas de identificação adequados (tais como números de série). Do ponto de vista da informática, o termo “identidade” pode ser reduzido aos elementos de dados relacionados com o processo de gestão da identidade: “identificador”, “autenticação” e “credenciais”.

São necessários “identificadores” para identificar de forma única uma pessoa, instituição ou objeto. Um número de telefone ou um endereço de e-mail é único por natureza e qualificar-se-ia como um identificador. O nome de uma pessoa não é necessariamente único e nem sempre se qualifica como um identificador. Por outro lado, embora o endereço residencial e o número de telefone de uma pessoa sejam únicos por natureza, eles podem mudar com o tempo. Idealmente, um identificador precisa ser único e persistente ao longo do tempo. Um número de segurança social, número de passaporte ou número de carta de condução pode ser um identificador único para uma pessoa, se ele não mudar com o tempo. Se esses identificadores persistem ou não ao longo do tempo depende do país em questão e se os números dos documentos expiram ou não. Também existem identificadores únicos para objetos e empresas: um número de série é um identificador único para um objeto. O número de contribuinte de uma empresa é um identificador único para uma organização com fins lucrativos, pelo que as autoridades públicas sabem como identificar empresas para cobrança de impostos ou concessão de subsídios.

A “autenticação” é o processo através do qual uma pessoa, instituição ou objeto pode provar que é quem afirma ser. Uma pessoa pode autenticar-se provando a propriedade de um objeto (cartão de cidadão, carteira de hardware, carteira de software), conhecimento (senha ou PIN), ou por uma propriedade pessoal (dados biométricos, assinatura). Muitas vezes, é usada a combinação destes sistemas. Pelo menos um método forte e confiável deve existir para autenticar uma pessoa, instituição ou objeto. A biometria é a forma mais forte para provar a autenticação de pessoas. Um cartão de identificação é uma forma análoga de autenticação, já que a fotografia e a assinatura manuscrita no cartão de identificação são métodos de autenticação. Na Internet atual, as senhas são o equivalente digital a uma assinatura manuscrita. No entanto, nomes de utilizador, senhas e todos os outros dados pessoais são controlados principalmente por instituições privadas, como os bancos, universidades, ou Facebook, Twitter e Google. Redes Blockchain e outros sistemas de ledgers distribuídas popularizaram sistemas de identidade mais centrados no utilizador, aplicando criptografia de chave pública como um método de autenticação.

Alegações e Credenciais: uma identidade é inútil sem ligar informações relevantes a uma pessoa (dados pessoais), instituição (dados institucionais), ou objeto (dados relacionados ao objeto) ao identificador. Dados pessoais, por exemplo, envolvem alegações feitas pela própria pessoa (alegação) ou por outras pessoas ou instituições (credencial). Tais alegações podem incluir informações sobre quem sou, onde vivo, onde nasci ou que diplomas completei com sucesso e que precisam ser atestados por autoridades confiáveis. Os dados pessoais podem também incluir dados adicionais, tais como históricos pessoais de navegação, atividades em redes sociais ou geolocalizações, que são automaticamente autenticados por máquinas e também vinculados ao identificador pessoal.

Historicamente, os processos de identidade, tais como passaportes, cartas de condução, cartões da segurança social ou números de série de bens, têm sido emitidos por instituições centralizadas, tais como governos locais e nacionais e outras instituições confiáveis. O surgimento da Internet criou a necessidade de sistemas de identificação digital. No entanto, a Internet atual não fornece uma camada de identidade nativa para pessoas, instituições ou objetos que não sejam os nós operacionais numa rede de computadores. O protocolo de Internet ainda não soube resolver problemas como “Posso confiar que o meu cliente me vai pagar?” ou “Posso confiar que o fornecedor vai entregar a minha encomenda?”. Empresas e instituições públicas começaram a implementar soluções de trabalho na camada de aplicação da Internet – muitas vezes utilizando bases de dados internas e combinações de password / username – o tipo de sistemas de identificação que tem vindo a ser usado desde a época dos computadores mainframe e antes do surgimento da Internet.

Identidades Centradas no Servidor

O Protocolo Internet não tem um formato nativo para gerir as identidades de pessoas, organizações e objetos. Soluções alternativas foram construídas na camada de aplicação usando bases de dados internas (infraestrutura privada) para fazer face a todos os dados envolvidos com os processos de gestão de identidade digital. Devido à estrutura cliente-servidor da Internet, qualquer serviço baseado na Web – desde sites universitários até sites de bancos online, redes sociais e comércio eletrónico – fornece o seu próprio serviço de gestão de identidade, o que significa que todos os dados relacionados ao utilizador são geridos pelo fornecedor de serviços, em sua infraestrutura informática privada. Todos os elementos relacionados com o processo de gestão de identidade – como a emissão de um identificador, o fornecimento de um método de autenticação, o fornecimento das credenciais e a gestão dos dados relacionados com o utilizador – são centralizados. O resultado é uma série de silos de dados muitas vezes incompatíveis com serviços de gestão de identidade proprietários, que criam custos e trade-offs consideráveis, tanto para empresas como para utilizadores, como por exemplo:

Caos de senhas: ao longo das décadas, à medida que o número de serviços de Internet crescia, a gestão de senhas tornou-se uma tarefa caótica. Os utilizadores têm que gerir centenas de nomes de utilizador e senhas para cada aplicação ou novo serviço online para o qual se registam. Fragmentos dos seus dados pessoais estão espalhados por toda a Web. Nos primeiros tempos da Internet, cada serviço online exigia que os utilizadores se registassem com um nome de utilizador e palavra-passe nos seus serviços, incluindo mais dados se necessário. Hoje, os utilizadores podem usar “soluções de single sign-on” fornecidas por empresas como Google, Facebook ou Twitter, com a desvantagem de que essas identidades podem ser observadas e revogadas unilateralmente por esse fornecedor de serviços a qualquer momento, o que pode ter efeitos de bloqueio em cascata de todos os outros serviços que se usa com esse login.

Proteção contra atores maliciosos: numa configuração de comércio eletrónico, as empresas precisam identificar atores maliciosos que possam encomendar bens pelos quais nunca irão pagar, de forma a evitar potenciais perdas comerciais. Devido à natureza fragmentada dos atuais sistemas de identidade digital, o processo de identificação de maus agentes para proteção contra a fraude é uma sobrecarga de custos para os negócios. “82% das empresas lutam contra contas de utilizadores falsas e, em média, 10% da base de utilizadores de uma organização voltada para a web será falsa”. O custo médio para cada registo roubado contendo informações sensíveis e confidenciais é de $165. $15 biliões em perdas de 13,1 milhões de consumidores em 2015 apenas nos EUA”.[1]

Proteção de dados e custos de custódia: os utilizadores têm de confiar nos fornecedores de serviços para manter a integridade e privacidade dos seus dados. Um número crescente de dados pessoais está frequentemente sob custódia de instituições privadas que administram uma quantidade crescente de dados de clientes nos seus servidores privados, o que resulta no que muitos ativistas de privacidade têm chamado de “Capitalismo de Vigilância”[2]. As combinações de palavras-passe usadas são muitas vezes comprometidas por violações internas ou externas de dados. Soluções como métodos de autenticação multi-factor têm sido introduzidas para mitigar este problema. Mas a gestão da segurança dos dados relacionados à identidade contra roubo ou perda continua a ser uma tarefa dispendiosa e fragmentada. Com o surgimento de um corpo crescente de leis de proteção de dados, e à luz de potenciais processos judiciais e multas governamentais, a recolha de informações sensíveis sobre os seus utilizadores e o armazenamento desses dados nos seus servidores tornou-se um risco comercial crescente para as empresas.

Portabilidade de dados: em aplicações Business-to-Business, a portabilidade é especialmente relevante ao longo da cadeia de fornecimento de bens e serviços para processar a proveniência de bens e serviços e reduzir os custos de manuseamento de documentos. Nas aplicações Business-to-Consumer, a nova legislação, como o artigo 20º do Regulamento Geral de Proteção de Dados da União Europeia refere que concede aos utilizadores o direito de terem os seus dados pessoais portados de uma empresa para outra, e obriga as empresas a providenciar essa portabilidade de dados. No entanto, numa configuração cliente-servidor, essa portabilidade de dados com outras instituições envolve custos operacionais elevados.

Falta de controlo e soberania: os utilizadores não têm controlo direto sobre o que acontece com os seus dados, e não sabem se, e para quem, eles foram transmitidos. Dependendo da regulamentação de um país, os utilizadores de serviços baseados na Internet podem ser impedidos de usar os serviços (e seus dados) a qualquer momento. A proteção de dados depende da ética empresarial aplicada da empresa que presta os serviços de identidade, e está também sujeita à jurisdição do país no qual a empresa se insere.

Recentralização da Internet: os efeitos de rede têm a tendência de condicionar clientes e parceiros de negócios ao usar apenas um fornecedor de serviços. Tomemos o exemplo da Amazon ou do eBay. Uma vez que os utilizadores passam pelo processo de autenticação com a Amazon ou eBay, eles tendem a ficar na Amazon ou eBay, em vez de comprar produtos noutras lojas online. Comprar um produto no site duma loja de bairro exigiria um processo de autenticação separado no site dessa loja e criaria uma nova identidade (nome de utilizador e senha) incluindo informações de pagamento, o que muitas pessoas tendem a evitar devido à natureza demorada desse processo. Por outro lado, quantos mais utilizadores a Amazon e o eBay têm, mais esses serviços se tornam atraentes para os vendedores, e vice-versa. Como resultado de tais efeitos de rede, o poder começou a acumular-se em torno destas redes. Isso levou a uma recentralização da Internet em torno de fornecedores de plataformas de Internet, que não só gerem as identidades dos seus utilizadores, como também controlam todos os outros dados relacionados aos utilizadores. A “pegada digital” de todos os utilizadores é muitas vezes armazenada em texto puro (não criptografado) nos servidores das empresas e usada para mineração de dados que cria algoritmos de recomendação, algoritmos de publicidade e outras formas de perfil de utilizador que geram mais rendimentos para essas plataformas de Internet.

História da Gestão da Identidade Digital

Ao longo das décadas, várias iniciativas tentaram encontrar soluções alternativas para uma gestão centralizada da identidade. Em 1999, o “Microsoft Passport” lançou uma iniciativa para fornecer uma “solução de identidade federada” que as pessoas poderiam usar em vários serviços da Internet. A ideia principal era fornecer um serviço de identidade online que mitigasse o caos de senhas para os utilizadores. No entanto, esta solução colocou a Microsoft no centro da federação. A Sun Microsoft iniciou a “Liberty Alliance” em 2001 como uma solução mais distribuída, onde o controlo sobre identidades digitais era agora dividido entre várias instituições, mas os dados pessoais ainda permaneciam sob a autoridade de cada site individual. Em 2001, a “Identity Commons” começou a consolidar todos os trabalhos sobre identidade digital com foco na descentralização, o que levou à criação da “Internet Identity Workshop“, em 2005. A comunidade de programadores de código aberto começou a trabalhar em conceitos alternativos, como o “OpenID“, que contrariava o “modelo centrado no servidor” com um “modelo centrado no utilizador”, onde os indivíduos podiam controlar a sua identidade usando seu próprio nome de domínio pessoal, e criar a sua própria base de dados com dados pessoais que poderiam ser fornecidos a outras organizações com a permissão do indivíduo. No entanto, estas soluções não eram muito amigáveis e exigiam algum know-how técnico.

Enquanto isso, empresas como o Facebook adotaram a ideia do “OpenID“, mas proporcionaram uma melhor usabilidade, razão pela qual o “Facebook Connect” tornou-se mais bem-sucedido do que o “OpenID” por volta de 2008. Qualquer pessoa poderia usar a sua identidade no Facebook para se inscrever noutros serviços da Internet, que agora poderia usar uma API do Facebook, em vez de gerir as suas próprias identidades. Isso foi muito útil para pequenas empresas iniciantes na Internet, que podiam economizar custos na gestão de identidades, e para utilizadores que podiam economizar tempo e dores de cabeça na gestão de senhas. Logo mais à frente, a Google, Amazon, Apple e Twitter vieram fornecer soluções de identidade similares “centradas no servidor” – todas elas controlam a maioria do mercado de identidade online hoje. Isso também inclui o histórico de navegação pessoal, comportamento nas médias sociais e geolocalizações de seus utilizadores.

Entretanto, um conjunto crescente de iniciativas continuou a trabalhar na ideia de soluções de identidade mais “centradas no utilizador”, como a iniciativa Web-of-Trust, que teve as suas raízes no movimento Pretty Good Privacy (PGP). Eles propuseram o uso de criptografia assimétrica onde qualquer pessoa poderia ser um validador de identidades. Infelizmente, ambas as iniciativas concentravam-se em endereços de e-mail como identificadores, o que significava que ainda dependiam de instituições como a ICANN[3] para emitir os nomes de domínio em que esses endereços de e-mail se baseiam. Por uma variedade de razões, o PGP nunca se tornou amplamente adotado.

Anos mais tarde, indivíduos como Christopher Allen e iniciativas como a Rebooting-the-Web-of-Trust retomaram esses esforços, especialmente à medida que surgiram redes Blockchain e permitiram o uso de criptografia de chave pública para pseudoidentificação anónima, sem vincular identidades a um endereço de e-mail. O surgimento de redes Blockchain e outros registos distribuídos proporcionou uma continuação natural dos esforços de descentralização anteriores. Christopher Allen e outros indivíduos elevaram a fasquia da discussão sobre gestão de identidade a um nível político e propuseram o conceito de “Identidade Auto-Soberana”, um tipo de sistema de gestão de identidade centrado no utilizador que precisa atender a uma série de princípios orientadores, dos quais de salientam:

Acesso e Controlo: controlo direto dos dados de identidade pessoal, onde os utilizadores são a autoridade máxima e têm controlo sobre o nível de anonimato dos seus dados.

Transparência e Interoperabilidade: os algoritmos que regem os dados relacionados com a identidade devem ser transparentes, de código aberto e independentes de qualquer infraestrutura em particular. Os dados relacionados com a identidade devem ser de longa duração e de preferência durar para sempre ou pelo menos o tempo que o utilizador desejar.

Portabilidade: os dados relacionados com a identidade devem poder ser transferíveis para outros serviços, caso contrário, estão sujeitos a censura ou controlo. As identidades portáteis asseguram que os utilizadores permanecem no controlo das suas identidades independentemente dos serviços que utilizam.

Consentimento e Minimização: os utilizadores devem, a qualquer momento, concordar com o acesso de terceiros aos seus dados pessoais. Além disso, quando os dados pessoais são divulgados, essa divulgação deve envolver apenas a quantidade mínima de dados necessários.

No seu manifesto, Allen esboçou o delicado equilíbrio entre o direito à privacidade e a necessidade de revelar certas informações para a segurança de toda a rede de pessoas. Ele alertou que estes princípios podem ser uma faca de dois gumes, utilizável para fins benéficos e malévolos, e concluiu que um sistema de identidade deve equilibrar transparência, justiça e apoio aos interesses comuns de um grupo, ao mesmo tempo em que garante a proteção do indivíduo. Contudo, tais discussões não são novas e têm sido objeto de ciência política, assim como de séculos de debates que têm sido resolvidos em diferentes graus, dependendo do regime político e das leis que regem o Estado-Nação em questão. O equilíbrio entre privacidade individual versus interesse público tem sido – e ainda é – um tema de direito constitucional em muitos países democráticos, sujeito a regulamentação em torno do “sigilo da correspondência” ou “santidade do lar”.

Os princípios acima mencionados foram incorporados numa série de iniciativas e grupos de trabalho centrados no utilizador ao longo dos anos, tais como “Social Linked Data“, “Rebooting the Web of Trust“, “WebIDs” e, mais recentemente, o “W3C Working Group on Decentralized Identifiers (DIDs)“. O objetivo de todas essas iniciativas tem sido fornecer padrões abertos internacionais que dissociam o processo de emissão e alegação de uma credencial, da verificação dessas alegações sobre um conjunto de atores, o que faz eliminar muitas das questões que a solução centrada no servidor enfrenta.

 

 

Identidades Centradas no Utilizador através de DIDs

As redes Blockchain oferecem atualmente apenas um conjunto mínimo de atributos de identidade que não são suficientes para muitas das interações socioeconómicas presentes na Web. Entretanto, se configurado corretamente, a ledger pode oferecer componentes críticos para um sistema de gestão de identidade centrado no utilizador e preservador da privacidade, proporcionando menos atrito e custos mais baixos para todos os envolvidos. Os identificadores descentralizados (DID) em combinação com as ledgers distribuídas permitem um sistema de gestão de identidade mais sofisticado.

Um Identificador Descentralizado (DID) é um identificador digital público e pseudoanónimo único para uma pessoa, empresa ou objeto que concede controlo pessoal sobre a sua identidade digital sem a necessidade de instituições centralizadas que gerem esses identificadores. Para garantir a independência dos registos centralizados, os DIDs precisam de ter determinadas propriedades. Eles precisam ser permanentes, de modo que não possam ser reatribuídos a outras entidades por quem quer que esteja no controlo. Eles precisam de atuar de tal forma que todos entendam como interagir com o sujeito identificado pelo DID, de serem criptografados e passíveis de verificação.

 A infraestrutura de chave pública, inerente aos sistemas distribuídos, permite o registo de DIDs de todos os atores envolvidos de uma forma passível de ser verificável publicamente. Qualquer utilizador pode criar e registar um DID ao ativar uma nova carteira de chave pública, que cria um par de chaves públicas e privadas. Qualquer DID pode ser interligado a credenciais que são emitidas por outras pessoas e instituições que atestam características específicas para um proprietário de identidade (alegações que fazem sobre si mesmos), tais como nome, endereço, e-mail, idade, diplomas existentes, ou outras certificações, como uma carta de condução.

A carteira é o equivalente digital a uma carteira física que, além de armazenar o próprio dinheiro, também funciona como um recipiente para cartões de identificação, tais como carta de condução, cartão de crédito, inscrição num ginásio, cartão de cidadão, cartão de segurança social ou cartões de fidelização. Uma carteira Web3 pode ser utilizada para gerir todas as suas credenciais digitais criptografadas que outros emitiram sobre si, credenciais tokenizadas que representam a versão digital da sua carta de condução, cartão de crédito, inscrição num ginásio, cartão de cidadão, cartão da segurança social, cartões de fidelização, etc. Assim como alguém abre a sua carteira para revelar o seu cartão de identidade, da mesma forma é preciso ativar a sua carteira Web3 para revelar as suas credenciais digitais a terceiros (usando uma senha). Ninguém pode ver o conteúdo da sua carteira da Web3 sem o seu consentimento. O conteúdo da carteira permanece oculto até que você opte por revelar algo. Os intervenientes envolvidos em tal configuração são:

Emissores de identidade: instituições de confiança, como setor público local, universidades e outras instituições públicas e privadas e, em alguns casos, até indivíduos privados. Esses emissores de identidade podem fornecer credenciais para um proprietário de identidade (como nome, idade e data de nascimento) e atestar a validade dos dados pessoais.

Titulares de identidade: gerem as credenciais que foram emitidas por terceiros mencionados acima, na sua carteira Web3, e podem utilizá-las em qualquer momento para provar declarações sobre a sua identidade a outro terceiro.

Verificadores de identidade: são terceiros que prestam serviços através da verificação de certos atributos relacionados com a identidade. Por exemplo, se houver um limite de idade para comprar álcool, ou para ver um filme, o verificador de identidade (a loja ou o cinema) pode validar a assinatura do governo que emitiu e atestou essa credencial. Mais, uma loja de bebidas apenas precisa validar a idade, sem ter que saber exatamente a mesma ou outros dados desnecessários para o efeito sobre o comprador, tal como onde mora ou onde nasceu.

As credenciais são assinadas pelos seus emissores utilizando criptografia de chave pública. Uma vez assinadas por um emissor, as credenciais podem ser geridas pelo proprietário da identidade para fazer alegações, simplesmente usando a sua carteira. Os proprietários da identidade usam a carteira para divulgar quais os dados que querem compartilhar com o mundo exterior. Eles decidem e controlam não só com quem querem compartilhar os seus dados, mas também quando compartilhar esses dados. Para fazer isso, eles precisam atestar à rede o seu consentimento para compartilhar dados selecionados com instituições autorizadas.

Tanto os emissores de identidade como os proprietários de identidade precisam de estar registados num sistema distribuído público com os seus DIDs. Em tal configuração, ledgers distribuídas podem ser utilizadas para atestar a autenticidade dos dados, usando apenas “apontadores” indiretos para fins de verificação. As ledgers distribuídas podem ser utilizadas como uma infraestrutura pública para facilitar a verificação de dados relacionados com a identidade. Qualquer pessoa de uma rede Blockchain pode agora verificar se uma determinada alegação feita por um proprietário de identidade é válida e que instituições atestam a validade da alegação, sem ter que revelar os dados propriamente ditos.

O emparelhamento da chave privada com um DID permite ao proprietário da identidade criar um código QR, por exemplo, que representa esse identificador verificado. Ao digitalizar o código QR, um fornecedor de serviços pode agora executar os dados através de uma rede de Blockchain ou de uma ledger distribuída similar e verificar se um atestado está associado ao DID dessa pessoa. A chave pública é utilizada para atestar a autenticidade da assinatura da autoridade emitente associada a uma credencial. Se o atestado e o DID coincidirem, o acesso é concedido e uma pessoa pode qualificar-se para comprar álcool, alugar um carro, etc. Além de tais atestados, quaisquer outros dados também podem ser associados a um DID e controlados diretamente pelo proprietário da identidade através do software da carteira. Exemplos de tais dados “não-atestados” são históricos pessoais de navegação ou mensagens nas redes sociais. Em tal configuração, não se confiaria mais em fornecedores de identidade digital de terceiros, como o Google ou o Facebook. O “Brave Browser” é um exemplo prático de como uma carteira da Web3 permite o controlo direto da sua pegada digital.

Os registos de revogação dão aos emissores de identidade a possibilidade de revogar uma alegação, uma vez que determinados dados relacionados com a identidade podem mudar com o tempo. Dados pessoais tais como endereço, estado civil e número de filhos podem mudar ao longo do tempo e, portanto, precisam ser atualizados.

Separar o processo de (i) emitir uma credencial, (ii) fazer uma alegação, e (iii) validar essas alegações consoante as credenciais é crucial para uma configuração centrada no utilizador. Pode ser visto como um sistema de verificações e equilíbrios numa economia baseada em dados que garante o nível de autonomia e privacidade sobre a própria pegada digital, e é muito contrário à forma como a Internet é configurada atualmente.

KERI (Key Event Receipt Infrastructure) é uma nova tecnologia, um tipo de rede de consenso, que permite mover certas funções de sistemas descentralizados de gestão de identidade para uma camada diferente, e minimizar o papel da ledger distribuída. O objetivo é fornecer um sistema de gestão de identidade simples, escalável, mais modular e mais interoperável entre diferentes redes Blockchain e outras ledgers distribuídas. Esta tecnologia está a ser adotada atualmente por muitos “players” no espaço de identidade centrada no utilizador e mostra um potencial enorme para atuar como um catalisador de identidades centradas no utilizador.

 

 

Perspetivas Futuras

Soluções de identidade centradas no utilizador baseadas em ledgers e DIDs distribuídos podem desintermediar a indústria da identidade. Elas podem aumentar a eficiência operacional com auditoria e acesso direto aos dados em tempo real, ao mesmo tempo que reduzem custos. Se configuradas corretamente, elas fornecem maior segurança e proteção de dados contra falsificadores de identidade, e proporcionam uma conformidade regulatória mais eficiente, concedendo maior controlo aos proprietários dos dados. Soluções de identidade centradas no utilizador podem proporcionar portabilidade de dados, onde indivíduos e instituições podem facilmente reutilizar credenciais para se reidentificarem perante novos serviços. Para as empresas, isso pode reduzir os custos e o tempo envolvidos com as taxas de adesão e desistência do cliente, bem como os custos gerais de oportunidade relacionados com os processos de Know-Your-Customer (KYC).

Para o armazenamento de dados pessoais, as soluções de identidade centradas no utilizador podem usar quer armazenamento de dados pessoais, quer redes de armazenamento de ficheiros distribuídos. As credenciais podem ser armazenadas diretamente no dispositivo do utilizador, ou com segurança numa loja de identidade privada, ou num hub de identidade, como “TrustGraph” ou “3Box“. Dados menos sensíveis à privacidade podem ser geridos coletivamente por redes distribuídas de armazenamento de ficheiros, como o “InterPlanetary File System” (IPFS) ou “OrbitDB“, para reduzir redundâncias de dados e desintermediar o processo de gestão de identidade. Em ambas as configurações, os dados são projetados em torno do utilizador e, portanto, mais interoperáveis entre vários fornecedores de serviços que podem usar o mesmo conjunto de informações para fins diferentes. Os dados do utilizador não estão “fechados” numa plataforma.

Embora algumas formas de criptografia de prova de conhecimento zero (zero-knowledge proof) já estejam a ser usadas em soluções de identidade centradas no utilizador, há mais espaço para melhorar ainda mais as ferramentas criptográficas de preservação da privacidade. Um conjunto de redes Web3 já está a trabalhar para incorporar mais mecanismos criptográficos de preservação da privacidade em ledgers distribuídas, tais como “Zero-Knowledge Proofs” como implementado por “Zcash“, ou “Ring Signatures” como implementado por “Monero“, ou para realizar cálculos em informações criptografadas usando “Secure-Multi-Party-Computation“. O KERI pode também ser uma mudança de paradigma nesse aspeto.

Um dos casos mais interessantes de uso futuro será a identificação digital de objetos. Atualmente, a maioria dos dispositivos da Internet das Coisas (IoT) não tem identidade digital segura e capacidade de gestão de acesso. Um número de série alimentado por DID pode tornar qualquer objeto na Web3 endereçável. Quando começamos a etiquetar objetos com minicomputadores (aceleradores criptográficos) que vêm com um número de série alimentado por DID e se comunicam com uma rede de ledgers distribuídas, qualquer objeto ao longo da cadeia de abastecimento pode provar propriedade e credencial para outros na rede através de provas criptográficas. Objetos que têm a sua própria identidade Web3 e carteira Web3 podem-se tornar entidades económicas autónomas e confiáveis. Essa “ligação ciberfísica” entre os objetos e o DID permite o rastreamento eficaz de produtos e compartilhamento de dados sobre a proveniência de bens e serviços entre produtores e consumidores.

[1] https://sovrin.org/wp-content/uploads/2017/07/The-Inevitable-Rise-of-Self-Sovereign-Identity.pdf

[2] Tais como Zuboff, Shoshana em “A Era do Capitalismo de Vigilância”: “A Luta por um Futuro Humano na Nova Fronteira do Poder”. Nova Iorque: PublicAffairs, 2019. Zuboff descreve a mercantilização de informações pessoais. Ela descreve a tendência de acumulação de dados, criticando que muitas empresas e instituições recolhem e capitalizam dados pessoais sem mecanismos de consentimento. Ela compara “capitalismo industrial” e “capitalismo de vigilância”, explicando “capitalismo industrial” como exploração da natureza, e “capitalismo de vigilância” como exploração da natureza humana.

[3] A ICANN (Internet Corporation for Assigned Names and Numbers) é uma organização sem fins lucrativos que coordena a manutenção e os procedimentos de várias bases de dados relacionadas aos espaços de nomes e espaços numéricos da Internet, garantindo o funcionamento estável e seguro da rede. É um grupo multi-stakeholder sediado nos Estados Unidos.

O conteúdo aqui apresentado foi retirado do livro “Token Economy” de Shermin Voshmgir, traduzido e adaptado para português por mim, José Rui Sousa, em conjunto com António Chagas, Courtnay Guimarães e Joana Camilo, publicado sob uma licença Creative Commons CC BY-NC-SA apenas para uso não-comercial.

Faria um contrato com alguém que nunca conheceu e, consequentemente, não conhece e não confia? Investiria numa pequena empresa num país estrangeiro? Aceitaria emprestar dinheiro a um estranho, como um agricultor na Guatemala, um professor na China ou um operador de caixa no Reino Unido? Ou estabeleceria um contrato legal para uma compra de 1 euro na Internet para comprar uma música de determinado artista? A resposta a todos os casos mencionados acima é provavelmente não, pois o custo de estabelecer o contrato legal necessário para garantir a sua transação é muito alto. Como alternativa, pode usar intermediários confiáveis para liquidar esses contratos, pagando-lhes taxas de liquidação pelos seus serviços. Os modelos de negócios de muitos gigantes da tecnologia Web2 como Amazon, eBay, Airbnb e Uber resultam da falta de uma camada de liquidação de valor nativa confiável e de sistemas de identidade centrados no utilizador. Os contratos inteligentes em combinação com sistemas de identidade centrados no utilizador podem fornecer uma solução para ambos os problemas. Estes podem formalizar as relações entre pessoas e instituições e os ativos que possuem, totalmente P2P (Peer-to-Peer), sem a necessidade de intermediários de confiança.

Embora o conceito de contratos inteligentes não seja novo, as redes Blockchain parecem ser o catalisador para a implementação de contratos inteligentes. Uma forma mais primitiva de um contrato inteligente é uma máquina de venda automática. As regras de uma transação são programadas numa máquina. Seleciona-se um produto pressionando um número relacionado com o produto que se pretende e insere-se dinheiro. Se inserir dinheiro suficiente, a máquina é programada para libertar o produto. Caso contrário, não receberá o produto, ou se a máquina esgotar o produto, receberá o seu dinheiro de volta. As máquinas de venda automática tornaram obsoletos certos vendedores de rua, mas também expandiram o serviço, oferecendo uma disponibilidade 24 horas por dia em vez do horário de abertura limitado de um ponto de venda operado por humanos.

 

 

Acordos autoexecutáveis

Um contrato inteligente é um acordo de autoexecução, materializado na forma de um software. O código contém um conjunto de regras segundo as quais as partes desse contrato inteligente concordam em interagir umas com as outras. Em qualquer altura, no momento em que as regras predefinidas forem cumpridas, o acordo é automaticamente executado por consenso maioritário da rede Blockchain. Os contratos inteligentes fornecem mecanismos para a gestão eficiente de ativos tokenizados e direitos de acesso entre duas ou mais partes. Pode-se pensar nisto como uma caixa criptográfica que desbloqueia valor ou acesso, se e quando condições específicas pré-definidas forem cumpridas. Os contratos inteligentes fornecem, portanto, uma forma pública e verificável de incorporar regras de governança e lógica de negócio em algumas linhas de código, que podem ser auditadas e aplicadas pelo consenso maioritário de uma rede P2P.

Um contrato inteligente pode ser invocado de entidades dentro (de outros contratos inteligentes) e fora (fontes de dados externas) de uma rede Blockchain. Alimentadores de dados externos, os chamados “oráculos”, inserem dados off-chain (externos à cadeia) que são relevantes para o contrato inteligente. Podem acompanhar o desempenho do contrato em tempo real e podem, portanto, poupar custos, uma vez que o cumprimento e o controlo ocorrem em tempo real. Os contratos inteligentes reduzem os custos de transação dos acordos. Especificamente, reduzem os custos de (i) chegar a um acordo, (ii) formalização, e (iii) execução. Se implementados corretamente, os contratos inteligentes podem proporcionar uma segurança de transação superior à lei contratual tradicional, reduzindo assim os custos de coordenação da auditoria e aplicação de tais acordos. Os contratos inteligentes também contornam o dilema do “principal-agente” das organizações, proporcionando mais transparência e responsabilidade, e reduzindo a burocracia (ler mais: Parte 2 – Economia Institucional das DAO).

O próprio termo “contrato inteligente” é um pouco infeliz, uma vez que os contratos inteligentes não são particularmente inteligentes nem refletem contratos legais: (i) um contrato inteligente só pode ser tão inteligente quanto as pessoas que o codificam, tendo em conta toda a informação disponível no momento da codificação; (ii) embora os contratos inteligentes possam ter o potencial de fazer cumprir contratos legais se certas condições forem cumpridas, precisamos primeiro de resolver muitas questões técnico-jurídicas, o que exigirá tempo e um discurso interdisciplinar entre advogados e programadores de software.

Além disso, a segurança contratual inteligente é ainda uma questão que precisa de ser resolvida a um nível técnico. É necessário implementar cláusulas contratuais mais sofisticadas para tornar os contratos inteligentes em conformidade com os contratos legais, incluindo mecanismos descentralizados de resolução de litígios. Embora tais desenvolvimentos possam levar mais tempo a amadurecer, algumas soluções interessantes de resolução de disputas já estão em desenvolvimento, cujos exemplos são “Kleros,” “Openlaw,” ou “Jur“. Veremos provavelmente uma fusão de contratos legais e contratos inteligentes a emergir nos próximos anos. Na altura da redação deste livro, as melhores práticas ainda são raras e exigirão um processo de aprendizagem coletiva. A tecnologia ainda é incipiente, e as normas legais precisam de ser adotadas.

 

Casos Práticos na Indústria

Os casos de utilização de contratos inteligentes variam de simples a complexos. Podem ser utilizados para transações económicas simples como o envio de dinheiro de A para B. Os contratos inteligentes também podem ser utilizados para registar qualquer tipo de propriedade e direitos de propriedade, como registos de propriedade e propriedade intelectual, ou para gerir o controlo de acesso inteligente para a economia de partilha. Podem ser encontrados casos de utilização na banca, seguros, energia, governo eletrónico, telecomunicações, indústria musical e cinematográfica, artes plásticas, mobilidade, educação, e muito mais. Cada acordo, processo, tarefa, ou pagamento pode ser gerido coletivamente. Muitos intermediários tradicionais, como advogados, corretores, e banqueiros, ou administradores públicos, e plataformas na Internet podem já não ser necessários, ou pelo menos alguns dos seus serviços podem tornar-se obsoletos: os automóveis poderiam utilizar contratos inteligentes para pagar as suas próprias contas ao abastecer-se na estação de serviço, ou ao carregar num posto de carregamento elétrico. As faturas poderiam ser liquidadas à chegada de um carregamento de produtos. Os certificados de ações inteligentes sob a forma de valores mobiliários tokenizados poderiam ser programados para realizar o pagamento automático de dividendos (ler mais: Parte 4 – Tokens de Ativos e Propriedade Fracionária).

Os contratos inteligentes podem fornecer uma camada de liquidação nativa para a economia de partilha, atualmente intermediada e processada por operadores de plataformas na Internet. A natureza P2P dos pagamentos permitidos por contratos inteligentes reduz os custos de transação, o que significa que os micropagamentos podem tornar-se economicamente mais viáveis do que são atualmente[1]. Controlos de acesso inteligentes entre dois pares que não confiam entre si poderiam fornecer uma solução prática para a economia de partilha sem fornecedores de plataforma centralizados, que atualmente detêm uma parte desproporcionada dos nossos dados, e, portanto, também o valor económico criado. Isto poderia levar a um fortalecimento “à base de esteroides” da economia de partilha: apartamentos, carros, máquinas de lavar, bicicletas, cortadores de relva – uma vez que todos esses dispositivos são etiquetados com o seu próprio endereço de Blockchain (ou DID), podendo ser geridos por um contrato inteligente que funcionaria como um cadeado digital.

Um exemplo mais complexo de um contrato inteligente é o caso da utilização de uma floresta autogerida, como no caso da “Terra0“, onde um contrato inteligente na Blockchain da rede Ethereum gere o abate e a venda de árvores de uma floresta na Alemanha. Drones e satélites monitorizam o crescimento da floresta e desencadeiam eventos no contrato inteligente, como os acordos de subcontratação para o abate da floresta e a venda da madeira.

Além disso, os contratos inteligentes podem ser utilizados para acordos muito mais complexos entre uma multidão de atores, ao longo da cadeia de fornecimento de bens ou serviços, ou para governar um grupo de pessoas que partilham os mesmos interesses e objetivos sem a necessidade de instituições tradicionais centralizadas. As organizações autónomas descentralizadas (DAO) são um exemplo e representam provavelmente a forma mais comum de contratos inteligentes complexos. O contrato inteligente formaliza as regras de governança de uma organização – como os regulamentos, estatutos, regras de procedimento – e substitui a gestão operacional quotidiana por um código autoexecutável.

Contratos inteligentes e DAOs também podem alterar as redes sociais tal como as conhecemos. As redes de meios de comunicação social baseadas na Web2 extraem aos utilizadores dados que depois rentabilizam. Na Web3, os contratos inteligentes podem permitir ecossistemas orientados para objetivos específicos, nos quais os utilizadores podem beneficiar das suas atividades de rede ao serem recompensados com tokens de rede. Um exemplo disso seria “Steemit”, uma rede social descentralizada que é organizada como DAO e incentiva as contribuições dos utilizadores com tokens de rede.

Contratos inteligentes e ledgers distribuídas similares poderiam também ser um catalisador para a liquidação máquina-a-máquina numa “Internet das Coisas”. No entanto, isto requer que todos os objetos numa tal “Internet das Coisas” tenham uma identidade de Blockchain e possam assim ser abordados de forma única. A capacidade de endereçamento de cada máquina ou outro objeto físico precisa de ser à prova de adulteração. Isto pode ser conseguido etiquetando ou registando objetos com um chamado “acelerador cripto”, que também é referido como um “gémeo digital”. Um acelerador cripto é um pequeno microcontrolador otimizado para executar os algoritmos criptográficos mais importantes. Pode ter o tamanho de um autocolante numa peça de fruta e, portanto, servir como base para casos de utilização como a transparência da cadeia de fornecimento. Com um gémeo digital, qualquer objeto físico pode enviar assinaturas digitais únicas, ou enviar e receber tokens. Projetando o ritmo atual de desenvolvimento desta tecnologia no futuro, e tendo em conta a convergência com outras tecnologias emergentes como IoT, Big Data e Inteligência Artificial, podemos agora visualizar um mundo onde indivíduos, organizações, e máquinas podem interagir livremente uns com os outros com pouca fricção e a uma fração dos custos atuais.

Os contratos inteligentes podem ainda ser utilizados para criar e gerir tokens criptográficos que podem representar qualquer bem ou direito de acesso e até incentivar o comportamento. Os tokens podem emergir como uma das aplicações mais importantes dos contratos inteligentes, revolucionando potencialmente a gestão de bens tal como a conhecemos. É por este motivo que as duas últimas partes deste livro são inteiramente dedicadas à temática dos tokens.

 

 

Oráculos

As redes Blockchain e os contratos inteligentes não podem aceder a dados provenientes do exterior da sua rede. Para saber o que fazer, um contrato inteligente necessita frequentemente de acesso a informação do mundo exterior que seja relevante para o acordo contratual, sob a forma de alimentação de dados, também referida como “oráculos”. Estes oráculos são serviços que alimentam o contrato inteligente com informações externas que podem desencadear ações pré-definidas do contrato inteligente, que por sua vez induzem alterações de Estados da ledger. Estes dados externos provêm quer de software (aplicação de Big Data) quer de hardware (Internet das Coisas).

~
Oráculos de Software:
Tratam de dados de informação provenientes de fontes online, tais como temperatura, preços de stocks ou mercadorias, horários de chegada de voos ou comboios, etc.
~
Oráculos de Hardware:
Alguns contratos inteligentes necessitam de informação diretamente do mundo físico, por exemplo, um carro que atravessa uma barreira onde os sensores de movimento devem detetar o veículo e enviar os dados para um contrato inteligente, ou sensores RFID na indústria da cadeia de fornecimento.
~
 Oráculos de entrada:
Fornecem dados do mundo externo.
~
 Oráculos de saída:
Fornecem contratos inteligentes com a capacidade de enviar dados para o mundo exterior.
~
Oráculos baseados no consenso:
Obtêm os seus dados de consensos humanos e mercados de previsão como “Augur” ou “Gnosis”. Contudo, a utilização de apenas uma fonte de informação pode não ser fiável, uma vez que os mercados podem ser manipulados; sistemas de classificação para oráculos podem ser necessários. Uma combinação de diferentes serviços de oráculos poderia aumentar ainda mais a fiabilidade dos dados se, por exemplo, três em cada cinco oráculos pudessem determinar o resultado de um evento.
~

O principal desafio em relação aos oráculos é que as pessoas precisam de confiar nestas fontes externas de informação, sejam elas provenientes de um website ou de um sensor. Uma vez que os oráculos são serviços de terceiros que não fazem parte do mecanismo de consenso da Blockchain, estes não estão sujeitos aos mecanismos de segurança subjacentes que esta infraestrutura pública proporciona. Poder-se-ia replicar “ataques de homem no meio” entre contratos e oráculos. A garantia de robustez deste “segundo nível” é da maior importância. Diferentes ferramentas criptográficas e técnicas informáticas de confiança podem ser utilizadas como forma de resolver estas questões. Se a segurança do oráculo não for adequadamente fornecida, será uma barreira para a implementação de contratos inteligentes generalizados.

É importante notar que um contrato inteligente não espera que os dados de uma fonte externa fluam para o sistema. O contrato tem de ser invocado, o que significa que se tem de gastar recursos da rede para chamar dados do mundo exterior. Isto induz os custos de transação da rede. No caso do Ethereum, este seria o custo do “Gás”.

 

O caso prático da compra de um carro em segunda mão

Se duas pessoas, digamos Alice e Bob, não se conhecem e não se confiam entre si, normalmente precisariam de um terceiro de confiança que servisse de intermediário para verificar as transações e fazê-las cumprir. Com contratos inteligentes e redes Blockchain, já não precisam desses intermediários de confiança para a compensação ou liquidação das suas transações. Tomando o exemplo da compra e venda de um carro usado: se a Alice quer comprar hoje um carro ao Bob, é necessário que uma série de terceiros de confiança verifiquem e autentiquem o negócio. O processo difere de país para país, mas envolve sempre pelo menos um, mas normalmente mais, terceiro de confiança: autoridade de registo automóvel, em combinação com um notário e/ou companhia de seguros. Pode ser um processo complicado e moroso, incluindo as taxas daí resultantes. Se e quando todas as autoridades e empresas envolvidas utilizarem registos distribuídos, um contrato inteligente poderá ser utilizado para formalizar todas as regras de uma venda de automóvel válida, incluindo a liquidação de serviços adicionais como a compra de uma apólice de seguro automóvel. Se a Alice quisesse comprar o carro ao Bob utilizando contratos inteligentes, o processo poderia potencialmente assemelhar-se a este:

* Bob utilizará a Internet para encontrar um serviço onde possa colocar o seu carro usado e definir os termos de venda, utilizando um contrato inteligente – numa versão descentralizada do eBay, por exemplo. Esta etapa não é diferente da atual, mas os serviços inteligentes baseados em contrato precisam de ser compatíveis com a Web3 para comunicar com uma rede Blockchain. Este serviço de contrato inteligente pode também fornecer uma garagem inteligente que também comunica com uma rede Blockchain. Bob terá, portanto, de descarregar um software Web3 com uma carteira embutida, que fornecer-lhe-á uma identidade única de Blockchain – um endereço de Blockchain com um par de chaves público-privadas relacionado (ler mais: Parte 1 – Criptografia).

* Alice também utilizará a Internet, tal como faz hoje. Ela irá procurar na Internet para encontrar a versão descentralizada do eBay, onde Bob afixou o seu carro. Alice precisará também de descarregar um navegador compatível com a Web3.

* Se Alice encontrar um carro de que gosta e quer comprar – digamos que o carro do Bob – ela clicará em “comprar” e o serviço baseado em contratos inteligentes utilizará uma rede Blockchain para verificar se Bob é o proprietário do carro e se Alice tem fundos suficientes disponíveis para pagar o carro. A informação sobre ambos os estados – os títulos de propriedade do carro que Bob afirma vender, e a quantidade de tokens que Alice tem – está registada na ledger. Ao clicar no botão “comprar”, o serviço de contrato inteligente pode também dar-lhe a opção de selecionar um plano de seguro, com companhias de seguros selecionadas que também estão registadas na ledger e ligadas ao serviço de contrato inteligente que fornece este seguro (num cenário futuro como este, o plano de seguro poderia provavelmente ser calculado em tempo real, onde as taxas seriam baseadas nos dados do carro e no histórico de condução da Alice).

* Se a rede concordar que ambos os estados são verdadeiros – que Alice tem fundos suficientes e que Bob é realmente o proprietário do carro – a rede Blockchain regista Alice como o novo proprietário do carro e os seus saldos de fundos são automaticamente atualizados: Bob tem agora mais 20.000 tokens na sua conta, enquanto Alice tem 20.000 tokens a menos na sua carteira. Alice recebe então um código de acesso à chave inteligente para a garagem. Além disso, Alice está agora também registada na companhia de seguros automóvel da sua escolha, que ela selecionou ao comprar o carro, desencadeando outro contrato inteligente.

* Bob pode agora estacionar o seu carro na garagem. O seu carro, que também tem uma identidade única na Blockchain, será agora registado como estando estacionado na garagem e Alice receberá uma notificação sobre onde levantar o carro com o seu código de acesso.

* Alice pode agora recolher o carro na garagem especificada, protegida por uma fechadura inteligente ligada à Blockchain e gerida pelo contrato inteligente que tanto Bob como Alice utilizam. Ela pode abrir a garagem com a sua chave privada, que a identifica como a legítima proprietária do carro. O carro é dela, está registado em seu nome e tem seguro.

Utilizando contratos inteligentes, podemos agora evitar a interferência manual de certas instituições como o registo automóvel, companhias de seguros, e em alguns países também notários, isto no dia em que os enquadramentos regulamentares o permitirem. Cada computador que execute o protocolo da Blockchain será capaz de verificar se alguém é ou não o legítimo proprietário de um automóvel. Roubar carros não será tão fácil como hoje, uma vez que os carros que estejam equipados com chaves digitais utilizarão contratos inteligentes para controlo de acesso. Certos processos automatizados exigirão também a convergência de contratos inteligentes com alimentação de dados a partir de software e hardware externos, como seria o caso de fotografias tiradas na garagem para monitorizar o estado do carro. Como proprietário do carro, poderá ainda utilizar contratos inteligentes para autorizar outras pessoas a conduzir o seu carro, registando a sua identidade na Blockchain juntamente com o contrato inteligente do seu carro.

A segurança contratual inteligente é uma questão importante para a adoção generalizada de casos práticos: (i) segurança do Oráculo: garantia de que os dados provenientes de fontes externas à cadeia possam ser confiáveis; (ii) codificação segura e verificação formal: verificação e teste do código por computador no que respeita às especificações comportamentais; (iii) segurança processual e resolução de litígios: mecanismos adicionais on-chain e off-chain para resolver reclamações ou situações imprevistas decorrentes do tempo de execução dos contratos inteligentes. Linguagens de programação alternativas de contratos inteligentes às que estão atualmente em uso podem ser um aspeto interessante a abordar, tanto do ponto de vista da segurança como do ponto de vista da adoção pelo mercado. A fusão de contratos inteligentes e contratos legais é outra questão importante que exigirá investigação e desenvolvimento interdisciplinar. Além disso, os contratos inteligentes devem ser concebidos de forma a que os dados personalizados só sejam revelados aos atores envolvidos no processo que necessitem de conhecer informação explícita. Os contratos inteligentes terão de estar em conformidade com os regulamentos de preservação da privacidade (“privacy by design”).

Como indicado acima, muitos dos casos de utilização de contratos inteligentes só serão possíveis interagindo com outras tecnologias como as grandes aplicações de Big Data e a “Internet das Coisas”. Tal interação de tecnologias pode preparar o caminho para produtos, serviços e classes de bens completamente novos ao longo das próximas décadas. No entanto, muitas questões socio-políticas podem também surgir. Uma vez que todos os objetos tenham sido etiquetados com um único endereço de Blockchain (identidade), e possam, portanto, ser referenciados de forma única numa rede Blockchain, e se forem controlados por mais ou menos software de inteligência, estes dispositivos podem tornar-se agentes económicos autónomos numa economia homem-máquina. Contudo, as questões de (i) se e como iremos transferir o mandato dos humanos para as máquinas, (ii) que implicações socio-políticas tais desenvolvimentos poderiam ter, e (iii) como queremos moldar tais fenómenos como uma sociedade, precisam de ser discutidas publicamente antes de conceber tais sistemas.

 

História dos Contratos Inteligentes

Embora o termo “contrato inteligente” se tenha tornado mais corrente com o advento da Blockchain Ethereum, este foi cunhado pela primeira vez por Nick Szabo em 1996, precedendo assim o desenvolvimento de redes Blockchain. Foi nos primeiros tempos da Web que Szabo salientou que a revolução digital não só criaria novas instituições, como também poderia formalizar as relações económicas e sociais. Isso foi vinte anos antes da Ethereum ver a luz do dia e criou um renascimento deste termo. Szabo justificou o termo “inteligente” com a funcionalidade que advém do facto dos contratos inteligentes serem automaticamente verificados e executados: um registo digital de transações que executa automaticamente os termos de um acordo com o objetivo de cumprir os termos contratuais acordados. Gestão automática das relações e obrigações de todas as partes envolvidas, puramente com código informático.

Ao contrário dos contratos tradicionais, que garantem a segurança contratual com procedimentos reativos utilizando instrumentos do sistema legal existente, os contratos inteligentes, segundo Szabo, poderiam prevenir proactivamente esta segurança reativa “a posteriori” através de mecanismos automatizados, tornando possível uma potencial violação do contrato, mas dispendiosa. Szabo assinalou que os procedimentos reativos dos sistemas legais existentes poderiam ser minimizados, mas nunca totalmente eliminados. Para prever um tal nível de segurança proativa, os contratos inteligentes devem ser automáticos e (a) observáveis, (b) verificáveis, e (c) autoexecutáveis. Em qualquer caso, Szabo advertiu que (d) a privacidade dos dados deve ser garantida apenas revelando os dados necessários e apenas às partes contratantes que têm o direito de os ver.

Szabo foi muito específico nas suas descrições de como formalizar tecnicamente estas relações, e enumerou uma variedade de métodos criptográficos que podiam ser utilizados, tais como a criptografia de chave pública e as assinaturas digitais, e em particular as blind signatures[2] e criptografia de zero-knowledge proof.[3] Alguns destes métodos criptográficos descritos por Szabo podem ser encontrados na implementação da Blockchain Bitcoin. No entanto, Szabo foi muito mais clarividente nos seus processos de pensamento do que Satoshi e muitos outros desenvolvedores iniciais de Bitcoin e redes alternativas de Blockchain, tais como a Ethereum. Enquanto em 1996 ele se referia a métodos de preservação da privacidade, como blind signatures e criptografia de zero-knowledge proof, estes métodos só lentamente vão encontrando o seu caminho para o mundo da Blockchain. Tais técnicas de preservação da privacidade têm também o potencial de satisfazer os requisitos de “Privacidade por Concepção”, especificados no Regulamento Geral de Proteção de Dados (GDPR) da União Europeia, muito melhor do que os métodos criptográficos atualmente utilizados na maioria das redes Blockchain de última geração (ler mais: Parte 1 – Criptografia).

 Szabo disse que para que os contratos inteligentes “sejam incorporados no mundo real sob a forma de código autoexeautoexeautoexecutável”, devem ser concebidos para serem de confiança e resistentes a ataques, tanto contra ataques intencionais como contra o vandalismo não intencional. Contudo, nessa altura, Szabo não tinha ideia de como descentralizar totalmente a confiança e tornar tal sistema resistente a ataques sybil, e por isso descreveu a necessidade de um intermediário de confiança. Ele descreveu a função de utilidade económica de um potencial atacante e referiu-se a conceitos teóricos de informática e segurança da informação ao delinear soluções. Em 1998, desenvolveu as suas ideias em torno de contratos inteligentes para a implementação na vida real da transferência de valores P2P. Apresentou uma ideia para dinheiro eletrónico que seria tão resistente à inflação como o ouro, a que chamou “Bit Gold”. Bit Gold nunca foi implementado porque Szabo não encontrou uma forma de substituir o intermediário de confiança por um sistema resistente a ataques sybil. Dez anos mais tarde, o grande avanço da Bitcoin foi abordar exatamente esta questão com a introdução da “Prova-de-Trabalho”.

Szabo visionou um emaranhado de diferentes campos científicos a fim de formalizar contratos inteligentes, tais como Direito, Economia e Criptografia, mas criticou que estas disciplinas dificilmente se comunicavam entre si. No entanto, não foi o primeiro a pensar na automatização contratual. Dois anos antes, Ian Grigg descreveu as suas ideias sobre contratos Ricardianos, especificando como tornar os contratos do mundo real legíveis e os contratos de máquinas exequíveis. Ele queria criar um sistema que permitisse manter a legibilidade humana das intenções contratuais, bem como das ações resultantes, antes da execução de um acordo, enquanto otimizava a autenticação e processamento da máquina através de técnicas de encriptação, tais como funções de hash e assinaturas digitais. O seu objetivo era garantir a ligação e processamento de documentos legais e assuntos relacionados, a fim de proporcionar mais transparência e segurança do que os procedimentos legais tradicionais. Existem as primeiras soluções híbridas de contratos inteligentes e contratos Ricardianos. “Openbazaar” é uma plataforma de comércio eletrónico P2P que já está a trabalhar com contratos Ricardianos.

Desde o advento do projeto Ethereum, o termo “contrato inteligente” tem experimentado um renascimento. Ethereum dissociou o conceito de programação de contratos inteligentes da Blockchain subjacente ao processamento dos acordos. Ao contrário da Bitcoin, o protocolo Ethereum visa proporcionar uma infraestrutura de economia de custos onde se pode criar qualquer tipo de contrato inteligente com apenas algumas linhas de código. Ethereum inspirou muitos mais projetos a trabalhar em redes Blockchain de contratos inteligentes semelhantes, tais como “EOS“, “Cardano“, ou “Waves“, todos eles com diferentes graus de maturidade técnica, escalabilidade, segurança de rede e frequentemente utilizam diferentes linguagens na elaboração de contratos inteligentes.

[1]  O desafio com micropagamentos hoje em dia é que a taxa cobrada por fornecedores de pagamentos de terceiros é mais elevada do que o próprio micropagamentos.

[2] Blind signatures são assinaturas digitais que disfarçam o conteúdo de uma mensagem antes de esta ser assinada. Podem ser verificadas em relação à mensagem original, tal como uma assinatura digital normal.

[3] A criptografia Zero-knowledge proof permite a validação da informação sem revelar essa informação ao verificador da mesma.

O conteúdo aqui apresentado foi retirado do livro “Token Economy” de Shermin Voshmgir, traduzido e adaptado para português por mim, José Rui Sousa, em conjunto com António Chagas, Courtnay Guimarães e Joana Camilo, publicado sob uma licença Creative Commons CC BY-NC-SA apenas para uso não-comercial.

A economia institucional estuda o papel das instituições formais ou informais, tais como procedimentos, convenções, arranjos, tradições e costumes (num contexto socioeconómico). Desde a emergência da Internet formaram-se muitas tribos distribuídas na Internet, como plataformas de meios de comunicação e interação social, plataformas de comércio eletrónico ou plataformas de conhecimento. As redes Web3 introduzem um novo tipo de infraestrutura institucional baseada na Internet que permite às tribos distribuídas na Internet organizarem-se e coordenarem-se de uma forma mais autónoma, conduzidas por tokens orientadas por objetivos, e executadas com protocolos executáveis por máquinas. São geralmente referidas como Organizações Autónomas Descentralizadas (DAO).

As redes Blockchain e as ledger distribuídas similares podem perturbar as estruturas tradicionais de governança[1] e desafiar as formas atuais de organização da sociedade. Podem (i) reduzir o “dilema do principal-agente” das organizações, proporcionando transparência; (ii) incentivar os atores da rede com um token nativo, desintermediando e reduzindo assim os custos de gestão, e (iii) substituir a segurança processual reativa do sistema jurídico atual, por mecanismos proactivos e automatizados que tornam dispendiosa e, portanto, inviável uma potencial violação do contrato. As redes Web3 geralmente proporcionam uma coordenação mais descentralizada e espontânea através da Internet entre pessoas e instituições que podem nem sequer conhecer-se ou confiar umas nas outras. As estruturas de coordenação são referidas como Organizações Autónomas Descentralizadas (DAO).

As DAO abordam um antigo problema de governança a que os cientistas políticos e economistas se referem como o “dilema do principal-agente”, que ocorre quando o agente de uma organização tem o poder de tomar decisões em nome de, ou com impacto sobre, a outra pessoa ou entidade da organização. Exemplos disso podem ser gestores que agem em nome dos acionistas ou políticos que agem em nome dos cidadãos. Em tais situações, o risco moral ocorre quando uma pessoa assume mais riscos do que normalmente assumiria, porque outros suportam o custo desses riscos. Mais genericamente, ocorre quando o agente atua no seu próprio interesse e não no interesse do mandante, porque o mandante não pode controlar totalmente as ações do agente. Este dilema aumenta normalmente quando existe uma assimetria de informação subjacente em jogo.

A rede Bitcoin pode ser considerada como a primeira organização verdadeiramente descentralizada e autónoma, coordenada pelo protocolo Bitcoin e que qualquer pessoa é livre de adotar. A rede Bitcoin fornece um sistema operacional para dinheiro sem bancos e gestores bancários, e tem permanecido resistente a ataques e tolerante a falhas desde que o primeiro bloco foi criado em 2009. Nenhuma entidade central controla a rede, o que significa que enquanto as pessoas continuarem a participar na rede, apenas uma falha de energia a nível mundial poderá encerrar a Bitcoin. As regras de governança estão ligadas ao token da rede – o bitcoin-, com o objetivo de orientar o comportamento dos nós da rede com um mecanismo de incentivo que provou ser um motivador eficaz para a realização de serviços de rede (ler mais: Parte 1 – Bitcoin, Blockchain e Outras Ledgers DistribuídasParte 4 – Tokens Orientados a um Propósito).

Com a emergência da rede Ethereum, o conceito de DAO passou do conjunto de tecnologia do protocolo de Blockchain para o contrato inteligente. Enquanto antes era preciso uma rede Blockchain com um protocolo de consenso resistente ao ataque para criar uma DAO, os contratos inteligentes tornaram a criação de DAO facilmente programável, muitas vezes com apenas algumas linhas de código, e sem a necessidade de criar a sua própria infraestrutura de Blockchain. Os casos de utilização de DAO variam de simples a complexos. A complexidade depende do número de intervenientes, bem como do número e complexidade dos processos dentro dessa organização regida pelo contrato inteligente. As regras de governança através de tokens incentivam e dirigem uma rede de atores, substituindo a necessidade de organizações de cima para baixo por um código autoexecutável. Dependendo do objetivo e das regras de governança de uma DAO, e do nível de autonomia dos intervenientes da DAO, os casos de utilização podem assemelhar-se a uma empresa ou a um Estado-Nação. As organizações que utilizam contratos inteligentes como infraestrutura operacional podem utilizar o sistema legal para alguma proteção da propriedade física, mas tal utilização é secundária em relação aos mecanismos de segurança preventiva que os contratos inteligentes podem oferecer.

“TheDAO” em 2016 foi um exemplo muito precoce de um contrato inteligente complexo na rede Ethereum. O objetivo da TheDAO era fornecer um veículo autónomo para a gestão de fundos sem recurso a gestores tradicionais de fundos. Durante uma venda de tokens, que durou quatro semanas, a TheDAO emitiu tokens DAO contra  ETH, recolhendo um equivalente a 150 milhões de USD, o que resultou na maior venda de tokens à época. A ideia era que cada detentor de tokens DAO seria coproprietário deste fundo de investimento descentralizado, proporcional ao número de tokens detidos e poderia participar nas decisões de investimento com direitos de voto proporcionais. Os serviços especializados da TheDAO poderiam ser conduzidos por subempreiteiros contratados pelos detentores de tokens da TheDAO por consenso maioritário. No entanto, devido a um erro de programação no software, esta visão da TheDAO nunca se tornou realidade, uma vez que cerca de um terço dos fundos do projeto foram drenados antes de este se tornar operacional. Dado o carácter imutável da Blockchain, e no caso em concreto, do contrato inteligente que regia a TheDao, esse erro de programação não pôde ser resolvido, o que  levou a um Hard Fork controverso da rede Ethereum. Uma das principais falhas foi que as regras de governança da TheDAO não davam conta dos processos de tomada de decisão no caso de acontecimentos imprevistos (ler mais no próximo capítulo: Governança On-Chain vs. Governança Off-Chain).

Este caso de utilização precoce de uma DAO baseado em contratos inteligentes mostrou que aquilo que a rede Bitcoin resolveu com um protocolo de consenso complexo, baseado em décadas de investigação aplicada e teórica, não pode ser simplesmente replicado com algumas linhas de código. O objetivo da TheDAO era diferente da rede Bitcoin e, portanto, exigia um novo tipo de mecanismo de direção resistente a ataques, mas as regras de governança da TheDAO foram desenvolvidas em apenas alguns meses, na sua maioria por engenheiros sem qualquer experiência de governança. As regras de governança de tokens da TheDAO baseavam-se em pressupostos demasiado simplificados sobre a forma como os detentores de tokens se comportariam: não tinham suficientemente em conta fenómenos psicológicos tais como “problema do free-rider[2] ou “racionalidade limitada”[3], que estão sujeitos ao campo da Economia Comportamental (ler mais: Parte 4 – Tokens Orientados para Fins Específicos). Em vez disso, basearam a sua conceção de governança no pressuposto de que os pequenos detentores de tokens imitariam o comportamento dos grandes detentores de tokens, partindo-se do princípio de que iriam demorar tempo suficiente para tomar decisões sensatas, uma vez que tinham mais “em jogo”. Na realidade, a maioria dos pequenos detentores de tokens não participou em nenhum processo de votação, esperando provavelmente que outros detentores de tokens tomassem a decisão certa em seu nome. Além disso, o processo de votação envolveu intervenção pessoal, com má usabilidade da carteira, excluindo muitos detentores de tokens mais pequenos e tecnicamente menos aptos a participar nos processos de votação. Todo o incidente mostrou que a “descentralização” é também uma questão de comportamento humano e, portanto, também sujeita à economia comportamental e nunca apenas uma questão matemática ou técnica.

Estamos a ver muitos mais DAOs, com uma vasta gama de objetivos, a emergir no topo da Web3. As novas aplicações Web3 têm-se concentrado em fornecer uma estrutura plug-and-play end-to-end para construir DAOs. O conjunto de ferramentas fornecido inclui elementos tais como quadros constitucionais, quadros de resolução de litígios, e muitos mais, para que os novos projetos DAO não tenham de construir todos os elementos organizacionais e institucionais necessários a partir do zero. Reduzem os custos técnicos da criação de uma organização descentralizada, para que se possa concentrar no que se quer construir (o objetivo da sua rede) e como se quer construir (as regras de governança da sua rede.) Muitos dos projetos constroem em cima da rede Ethereum e oferecem uma estrutura modular de contrato inteligente, com uma interface de utilizador fácil de usar, que permite às pessoas sem conhecimentos técnicos criar a sua própria organização descentralizada. O nível de descentralização de tais organizações pode variar de acordo com as necessidades.  Exemplos de tais projetos são “Aragon“, “Bitnation“, “Colony“, “Commonstack“, “DAOStack“, ou “MolochDAO“, cada um dos quais diferente no seu foco, ideologia, ou níveis de progressão e sucesso.

 

DAOs vs. Organizações Tradicionais

Grande parte da nossa sociedade está organizada em estruturas de comando e controlo de cima para baixo. O papel do sistema jurídico é assegurar e fazer cumprir todos os acordos contratuais de todas as instituições que regulam as nossas interações socioeconómicas. O exemplo de tais quadros legais são (i) a constituição de um país, (ii) contratos de trabalho entre empregado e organização, (iii) acordos de fornecimento, acordos de compra, ou contratos de venda entre as organizações, ou (iv) acordos bilaterais ou multilaterais entre governos de diferentes nações. As estruturas organizacionais das nossas instituições económicas evoluíram ao longo do tempo e são objeto de investigação em economia institucional, ciências económicas e cibernética. As instituições políticas que governam os membros de uma área geográfica, também referidos como cidadãos, têm vindo a evoluir ao longo do tempo e estão sujeitas ao estudo da ciência política, economia, em particular a economia institucional, sociologia e cibernética.

A evolução das empresas e a “Teoria da Firma”: no seu livro “The Theory of the Firm”, o economista Ronald Coase argumentou que as empresas surgem se puderem produzir o que precisam internamente de forma mais eficiente do que através da subcontratação – tendo em conta todos os custos, tais como pesquisa, aquisição de informação, negociação e policiamento de parcerias de negócios ou participação no comércio bilateral no mercado. As suas teorias explicam a concentração da produção económica, através da integração vertical da produção e o subsequente aumento das empresas multinacionais, desde a Revolução Industrial até ao final do século XX. Nas últimas décadas, estas organizações altamente estruturadas, centralizadas e burocráticas do século XX deram lugar a formas organizacionais mais soltas e leves, tais como a “Holacracia“, que é um exemplo de uma estrutura organizacional mais autónoma dirigida por unidades autossuficientes. A Internet, como tecnologia de partilha de informação, facilitou muita desta inovação organizacional, e iniciou uma revolução de outsourcing, reduzindo o tamanho das empresas (em número de empregados). Além disso, o aparecimento da Web2 facilitou mecanismos de criação de mercado global a custos de transação mais baixos, permitindo novas formas de organização em torno, por exemplo, do “prosumer”. Contudo, continua a existir um poderoso intermediário, uma terceira parte de confiança – Amazon, eBay, Zalando, Uber, Airbnb, ou empresas semelhantes – que proporciona uma plataforma de confiança para com duas pessoas interagindo através da Internet. Embora os produtos e serviços em torno dessas plataformas se tenham tornado cada vez mais desagregados, aproximando produtores e consumidores um do outro, os termos do serviço são sempre ditados por esses fornecedores de plataformas, na sua maioria empresas privadas que também controlam todos os dados dos utilizadores. Os contratos inteligentes têm o poder de desintermediar estas plataformas, introduzindo novas formas de coordenar atividades, tais como atribuição de tarefas, coordenação e supervisão de um grupo de pessoas que partilham interesses económicos comuns, mas que estão geograficamente distribuídas.

 

 

A Governança dos Estados Nação e a Democracia Representativa: a democracia é um sistema de governação em que as pessoas que partilham uma área geográfica e são afetadas pelas decisões coletivas do grupo concordam em participar igualmente no referido processo de tomada de decisões. A questão de como os indivíduos devem participar é e tem sido a fonte de muitos debates e conflitos, e tem também evoluído muito ao longo do tempo. A democracia direta é uma forma de democracia em que as pessoas decidem diretamente sobre todas as iniciativas políticas. Contudo, quanto maior for o grupo, mais difícil é para os membros desse grupo participar em cada processo de tomada de decisão por várias razões, tais como o grande custo de coordenação, e os custos de transação mental para cada indivíduo envolvido. Como resultado, instituições centralizadas e estruturas organizacionais burocráticas têm surgido em torno de democracias representativas modernas. Numa tal estrutura representativa, os representantes eleitos governam em nome de todos os membros elegíveis de um Estado, o soberano. Ambos os sistemas têm méritos e deficiências, dependendo da dimensão e do tipo de grupo governado. A história política recente sugere altos níveis de desencanto no público em geral em relação aos sistemas de governação política estabelecidos, a que os cientistas políticos se referem como “Pós-Democracia”. Caracteriza-se por uma elite governante cada vez mais remota, juntamente com um aumento do clamor dos cidadãos para reclamar o seu lugar na tomada de decisões. Os efeitos da globalização, tais como o comércio livre, transportes mais baratos e mais rápidos, e a Internet, minaram ainda mais o poder de um Estado-nação para regular a vida dos seus cidadãos. Uma solução sugerida para este desencanto é a “Democracia Líquida”, um tipo de governação democrática em que um eleitorado delega o poder de voto de uma forma mais flexível, permitindo a diferenciação dos poderes delegados e do calendário da delegação. É uma forma de tomada de decisão colaborativa que não depende dos representantes eleitos, mas sim da delegação parcial ou temporal dos votos. Embora a “Democracia Líquida” possa oferecer uma solução para alguns dos problemas dos sistemas democráticos estabelecidos, é uma forma impraticável de governar, dadas as nossas estruturas atuais, que se baseiam predominantemente em (i) silos jurídicos nacionais que são uma relíquia de uma era pré-Internet e pré-Globalização, e (ii) a predominância de sistemas de votação baseados em papel.

As Organizações Autónomas Descentralizadas envolvem um conjunto de pessoas que interagem umas com as outras de acordo com um protocolo de software autónomo e de código aberto, na ausência de acordos bilaterais. O protocolo de Blockchain e/ou o código de contrato inteligente formalizam as regras de governança de uma DAO, regulando o comportamento de todos os participantes da rede. As DAO oferecem a possibilidade de estabelecer organizações descentralizadas mais fluidas através da Internet e em torno de um objetivo económico, político, ou social específico. Fornecem um sistema operacional para pessoas e instituições que não se conhecem nem confiam umas nas outras, que podem viver em áreas geográficas diferentes, falar línguas diferentes e estar sujeitas a jurisdições diferentes. Elementos da Democracia Líquida podem ser aplicados a nível de protocolo (prova de participação delegada, ou pools de mineração de prova-de-trabalho) e a nível de contrato inteligente com custos operacionais mais baixos do que no mundo “off-chain” em que vivemos hoje. A execução de tarefas de rede pode ser recompensada com um token de rede. Os tokens também podem ser utilizados para o exercício do direito de voto. Uma vez implantada, uma organização autónoma totalmente descentralizada é independente do seu criador e não pode ser controlada por uma única entidade, apenas por consenso maioritário dos participantes da organização. As regras da maioria são definidas no protocolo de consenso ou no contrato inteligente codificado, e variam de caso para caso. As DAO têm potencial para resolver problemas de coordenação global, tais como a intransparência ao longo das cadeias de fornecimento internacionais e a falta de aplicabilidade da elaboração de políticas globais. Esta é provavelmente uma das razões pelas quais muitas organizações das Nações Unidas já estão a estudar aplicações de contratos inteligentes, tais como o Programa Mundial Alimentar, UNICEF, UNOPS e UNDP.

As DAO são de código aberto, portanto transparentes, e se bem concebidas, incorruptíveis. Todas as transações da organização são registadas e mantidas por uma rede em Blockchain. As propostas de atualização do código podem ser feitas por qualquer pessoa da rede, e são votadas por consenso maioritário dos atores envolvidos na rede. Como tal, as DAO podem ser vistas como organismos distribuídos, ou tribos distribuídas na Internet, que vivem na Internet e existem autonomamente, mas também dependem fortemente de indivíduos especializados ou organizações mais pequenas para executar certas tarefas que não podem ser substituídas pela automatização. No entanto, gostaria de argumentar que não existe uma organização totalmente descentralizada e autónoma. Dependendo das regras de governança, existem diferentes níveis de descentralização. Além disso, embora a rede possa ser geograficamente descentralizada, com muitos atores de rede independentes, mas iguais, as regras de governança escritas no contrato inteligente ou protocolo de Blockchain serão sempre um ponto de centralização e de perda de autonomia direta. As DAO podem ser arquitetonicamente descentralizadas (os atores independentes gerem nós diferentes) e são geograficamente descentralizadas (sujeitos a jurisdições diferentes), mas são logicamente centralizadas em torno do protocolo. A questão de como atualizar o protocolo, quando e se necessário, é muitas vezes delegada a um conjunto de peritos que compreendem os meandros técnico-jurídicos do código, e, portanto, representam um ponto de centralização (ler mais: Parte 2 – Governança On-Chain vs. Governança Off-Chain).

As redes Web3 e os contratos inteligentes baseados em DAO são sistemas complexos que são compostos por três redes interdependentes: (i) uma rede de computadores, (ii) uma rede de pessoas, (iii) uma rede de fluxo de tokens. São redes socioeconómicas adaptativas que são dinâmicas no tempo e no espaço. Dinâmica refere-se às contínuas mudanças de Estados da rede como resultado das ações estabelecidas pelos seus agentes humanos (envio de tokens ou consumo de outros serviços de rede, contribuição com código, ou bifurcação noutra rede). Adaptativo significa que os participantes da DAO se adaptam constantemente à rede da qual fazem parte devido aos feedback-loops entre os atores individuais e toda a rede. As ações individuais afetam o sistema e como resultado, o sistema como um todo evolui ao longo do tempo. Os sistemas complexos diferem de outros sistemas (menos complexos), na medida em que o comportamento ao nível do sistema não pode ser facilmente concluído ou previsto a partir das mudanças de Estados locais induzidas pelos atores individuais da rede.

A teoria de sistemas é uma das muitas ferramentas associadas à “cibernética”, um campo interdisciplinar da ciência que estuda sistemas autónomos de organismos vivos, máquinas e organizações. O termo “cibernética” tem as suas raízes na língua grega e pode ser traduzido com “para dirigir, navegar ou governar o navio”. A direção refere-se ao estabelecimento de objetivos, não dizendo ao sistema o que fazer. Estes objetivos podem ser individuais (desejos e necessidades individuais) e comunitários (consenso social sobre políticas coletivas). Os sistemas de autodireção e codirecção, em ciência política, são frequentemente referidos como democracia. O Economista Friedrich von Hayek referiu-se à cibernética como uma disciplina que também poderia ajudar os economistas a compreender os mercados como “fenómenos complexos de sistemas auto-organizadores ou auto-geradores”, utilizando o mecanismo de feedback cibernético para previsões de padrões económicos. Ele explicou a ideia da “mão invisível” de Adam Smith como antecipação do funcionamento do mecanismo de retroação na cibernética.

 

 

Economia Institucional das DAO

A economia institucional é um subconjunto da economia que se cruza com a ciência política, sociologia, ou história, e estuda o papel das instituições formais ou informais num contexto socioeconómico. As “instituições” representam um conjunto de regras ou contratos que permitem a interação social, tais como procedimentos, convenções, arranjos, tradições ou costumes. Estão frequentemente inseridas num conjunto de diferentes níveis interdependentes: natural, cultural e legal. As instituições podem também refletir as entidades que canalizam e incentivam as ações dos indivíduos num grupo. O economista institucional Gustav von Schmoller afirmou: “O estudo do órgão e da instituição é, para o conhecimento do corpo social, o que é a anatomia para o corpo físico”.

Diferentes escolas de Economia Institucional aplicam diferentes definições do que consideram uma instituição. Os primeiros organismos sociais eram comunidades, tais como a tribo, os Sippe, a família. À medida que a evolução tecnológica e social viabilizou a governação de quantidades crescentes de pessoas e em áreas geográficas maiores, surgiram novos órgãos sociais, mais proeminentemente o Estado-Nação e as empresas.

Desde o aparecimento da Internet formaram-se muitas tribos distribuídas na Internet, tais como plataformas de meios de comunicação social e outras plataformas. Neste contexto histórico, as redes de Blockchain introduzem um novo tipo de infraestrutura institucional baseada na Internet, governada por protocolos de aplicação de máquinas. As organizações autónomas descentralizadas podem, portanto, ser vistas como um novo organismo social para a Web3. Representam redes socioeconómicas que contemplam dados em tempo real sobre todas as atividades da rede, mas em oposição à Web2, esses dados são públicos para todos e não controlados por uma única entidade. A Web3 permite-nos documentar e analisar o surgimento de novas instituições em tempo quase real e de uma forma publicamente verificável. Dados os avanços na ciência dos dados, isto permite novos mecanismos de coordenação orientados por dados, e permite novas formas de governança supranacional com feedback-loops quase em tempo real. Os próximos anos revelarão as implicações dos mecanismos económicos reforçados por máquinas, e as implicações dos contratos inteligentes sobre a evolução dos contratos legais e dos mecanismos coletivos de direção socioeconómica.

Na sua estrutura institucional, as redes Web3 assemelham-se muito mais a Estados-Nação do que a empresas. O protocolo da Blockchain é comparável à constituição e às leis governantes de um Estado-Nação. Os atores autónomos da rede são os soberanos da rede e estão por isso sujeitos à constituição da rede, ao protocolo da Blockchain ou ao código de contrato inteligente. A política monetária de uma rede de Prova-de-Trabalho, por exemplo, é definida no protocolo, e regula as circunstâncias sob as quais um token de rede é cunhado. A política fiscal é também definida no protocolo, e regula as taxas de transação. As partes interessadas podem optar por entrar e sair a qualquer momento, decidir tornar-se membros ativos da comunidade e participar no desenvolvimento do código, ou decidir sobre alterações ao código quando estas existam.

Os Estados-Nação são comparáveis a redes permissionadas, em vez de redes não-permissionadas. Na maioria dos países, apenas os cidadãos dos referidos Estados-Nação têm o privilégio de fazer parte da rede, ou por outras palavras, de viver e trabalhar nesse país. Os não cidadãos podem receber permissão temporária para entrar no país ou trabalhar no mesmo. Embora se possa optar por entrar e sair, por via de imigração ou emigração, esta opção tem geralmente um elevado custo pessoal e económico, e leva tempo. Os Estados-Nação dirigem as ações dos seus cidadãos principalmente por desincentivo: quando infringe a lei, tem de pagar uma multa ou ir para a prisão. Os impostos podem ser considerados como custos de transação de rede que os cidadãos pagam para receber serviços públicos. Em alguns casos, os governos nacionais instituem benefícios fiscais e subsídios que funcionam como incentivos positivos para “empurrar” os seus cidadãos para um comportamento específico. A política tributária faz parte da política fiscal de um país que, juntamente com as políticas do banco central, decide sobre as políticas monetárias, com o objetivo de conduzir os atores da rede a um determinado comportamento económico.

 

  

Política Monetária e Fiscal das DAO

A política monetária refere-se à governação da oferta monetária de uma moeda nacional, tal como a indução de taxas de juro que são pensadas e implementadas pelos bancos centrais, conselhos monetários, e outras autoridades reguladoras relevantes com o objetivo de alcançar objetivos macroeconómicos tais como inflação, consumo, crescimento económico e liquidez. O principal objetivo da maioria dos bancos centrais é gerir a inflação, reduzindo simultaneamente o desemprego. Nesses casos, o objetivo é geralmente alcançar o crescimento económico, ou pelo menos a estabilidade, que é medida em termos do PIB (produto interno bruto), para manter uma baixa taxa de desemprego e uma taxa de câmbio estável. A maioria dos bancos centrais utiliza uma combinação dos seguintes instrumentos para regular a política monetária de um país: (i) operações de mercado aberto[4], (ii) reservas obrigatórias[5], (iii) intervenção cambial, e (iv) taxas de juro de curto prazo.

A política de supply de tokens pode ser vista como a “política monetária” de uma rede Blockchain. Esta política de oferta de tokens é definida no protocolo e estabelece a oferta e a disponibilidade de tokens nativos da rede. Tal como as políticas monetárias das nações podem variar de país para país, as políticas de supply de tokens de redes Blockchain e outras DAO podem diferir muito, introduzindo uma nova área de investigação e desenvolvimento aplicada. O supply de tokens pode ser fixado desde o início, como é o caso da rede Bitcoin, ou indefinido, como é o caso da rede Ethereum.

O fornecimento de tokens da blockchain Bitcoin, por exemplo, é regulado no protocolo e foi definido antes do protocolo ter sido implementado e implantado. Cada vez que um minerador descobre um novo bloco, são criadas novas BTC (bitcoins). As primeiras BTC foram criadas no bloco de génese em 2009. O número de BTC geradas por bloco diminui em 50% a cada 210.000 blocos, ou aproximadamente a cada quatro anos. O número de tokens de Bitcoin está assim limitado a pouco menos de 21 milhões de BTC. Estima-se que o último BTC seja minerado em 2140, altura em que a recompensa do bloco cairá abaixo de 1 Satoshi (que representa a menor denominação de BTC). Os mineradores continuariam a ser incentivados a manter a rede, apesar da diminuição das recompensas do bloco, uma vez que poderiam cobrar taxas para garantir as transações. A alteração da política monetária da rede Bitcoin exigiria um consenso maioritário dos atores da rede, o que é possível, mas improvável. A inflação de tokens é determinada pelo número de tokens recentemente cunhados todos os anos, menos a quantidade de tokens queimados. Se um protocolo vier com uma oferta fixa de tokens, isto conduzirá potencialmente a um desenvolvimento deflacionista do preço do token nativo, quando a procura exceder a oferta de novos tokens, tendo em conta os tokens afundados.[6]

O supply de tokens da Ethereum não foi pré-definido, mas sim coletivamente governado pelos intervenientes da rede: (i) desenvolvedores, (ii) nós completos, (iii) mineradores e outros participantes da rede. Foram atribuídos 60 milhões de ETH no bloco de génese aos contribuintes iniciais para a venda do token Ethereum. Foram distribuídos mais 12 milhões de ETH aos primeiros contribuintes e à Fundação Ethereum. As recompensas do bloco diminuíram ao longo do tempo devido a alterações no protocolo de consenso. Um evento que teve impacto na taxa de emissão foi a “Fork Homestead” em 2016. Os tempos de bloco foram reduzidos, o que levou temporariamente a um aumento da taxa de emissão. Em 2017, foi ativado um mecanismo que aumentou a dificuldade de extração de um bloco, o que abrandou a criação de novos blocos e diminuiu a emissão de novos tokens. É referido como a “Bomba de Dificuldade”[7], ou a “Idade do Gelo Ethereum”. Mais tarde, nesse mesmo ano, foi lançado o “Fork Byzantium“, reduzindo as recompensas do bloco de 5 para 3 ETH. A queda mais recente foi de 3 para 2 ETH em 2019.

Dependendo do tipo de regras de governança, os detentores de tokens com uma grande participação no sistema poderiam influenciar a procura do mercado ou afetar o preço de um e, consequentemente, a taxa de câmbio desse token, atuando como um “quasi” banco central. Numa rede em que os detentores de tokens não se conhecem ou não confiam uns nos outros, uma ação coordenada pode ser difícil de implementar, uma vez que exigiria o conluio dos principais detentores de tokens para coordenar a compra ou venda de tokens para manipular o mercado e orientar a economia interna dos tokens. Se uma grande participação na rede for detida por um único detentor de tokens, ou por um número limitado de detentores de tokens que sejam conhecidos uns dos outros, será mais fácil de dirigir através de uma ação coordenada. Na sequência de muitas vendas iniciais de tokens, esta tem sido uma grande questão.

A política fiscal refere-se à utilização das despesas governamentais e das políticas fiscais para influenciar as condições macroeconómicas. A tributação é um importante instrumento de política fiscal para orientar a atividade económica enquanto se financia a despesa do governo, outro instrumento de política fiscal. O governo pode gastar dinheiro em subsídios, pagamentos de transferências, incluindo programas sociais, projetos de obras públicas e salários públicos. Enquanto impostos mais elevados reduzem a autonomia dos atores individuais, as despesas públicas podem incentivar os beneficiários a gastar os fundos e podem ser utilizados para o crescimento económico dirigido.

Em redes Blockchain públicas não-permissionadas, a política fiscal poderia refletir-se no nível de “custos de transação” que se tem de pagar pelas transações de rede. Isto pode ser comparável aos impostos de valor acrescentado que os governos nacionais cobram, apenas que os cobradores de impostos, no caso de uma Blockchain pública, são nós autónomos que validam transações e são recompensados pelos seus serviços de rede. Numa configuração de ”Proof-of-Stake”, os mecanismos de “política fiscal” refletem-se em variáveis de protocolo tais como (i) staking, (ii) períodos de aquisição de direitos e (i) reservas que preenchem ou se esgotam com base em mecanismos de bonding curves.[8]

[1] “Governança” é um termo de ciência política que se refere às regras, normas e ações de como as pessoas interagem dentro de uma comunidade ou organização – seja formal ou informal.

[2]  O problema do “free-rider” refere-se aos membros de um grupo que se aproveitam da possibilidade de utilizar um recurso comum, ou um bem coletivo, sem contribuir para ele.

[3]  A economia comportamental assume que a racionalidade dos indivíduos e das instituições é “limitada” e que 90% das suas decisões se baseiam em atalhos mentais ou “regras do polegar”. Especialmente sob pressão e em situações de grande incerteza, as pessoas tendem a confiar em provas anedóticas e estereótipos para as ajudar a compreender e a responder mais rapidamente aos acontecimentos.

[4] As operações de mercado aberto definem como e quando os bancos centrais compram ou vendem títulos de e para bancos privados para regular o montante de crédito que os bancos privados podem emitir a clientes e empresas.

[5] A reserva obrigatória refere-se aos bancos monetários que devem guardar nos seus cofres ou com o banco central durante a noite. Uma baixa exigência de reserva permite aos bancos emprestar mais dos seus depósitos, aumentando o volume de crédito. Uma reserva obrigatória elevada diminui o volume de crédito.

[6] Há uma estimativa de que cerca de 3,7 milhões de BTC emitidos até à data foram perdidos para sempre, como resultado da perda do acesso das pessoas às suas chaves privadas.

[7] A Bomba de Dificuldade é um mecanismo da “Idade do Gelo do Ethereum”, durante o qual o protocolo Ethereum passará do Proof-of-Work, que permite aos mineradores ganharem ETH ao competirem entre si para encontrar um valor de hash, para o Proof-of-Stake, onde as recompensas dependem da quantidade de tokens que possui, ou tokens que apostou. A Bomba de Dificuldade é uma peça de código que aumenta exponencialmente o nível de dificuldade de extração de um bloco na Blockchain Ethereum, para atuar como um desincentivo para os mineradores e para facilitar a transição para o PoS. À medida que o nível de dificuldade aumenta, os mineradores terão mais dificuldade em ganhar ETH; caso contrário, possivelmente forçariam a rede Ethereum a continuar a ganhar recompensas de mineração.

[8]  Uma bonding curve é um contrato inteligente que define uma relação entre preço e oferta de token através de uma curva matemática. Os contratos de curva de ligação emitem os seus próprios tokens através de funções de compra e venda. São uma primitiva criptoeconómica emergente que pode permitir a descoberta de preços e mercados autónomos. Na sua forma mais simples, atuam como um criador de mercado automatizado. O contrato pode aceitar garantias e emite o seu token nativo em troca e vice-versa. Têm qualidades de dívida e equidade e podem incentivar a contribuição coletiva para projetos.

Governança é o termo utilizado coloquialmente por muitos para descrever o processo de consenso social sobre a evolução do protocolo. É um processo de tomada de decisão que pode acontecer “off-chain” ou “on-chain”. No entanto, o processo de governança de uma rede Blockchain pública é composto por duas partes. Para além do processo de ” governança social”, que define as políticas da rede a nível coletivo, a “administração algorítmica de governança” automatiza a aplicação dessas políticas.
~

Governança é um termo de ciência política que se refere às regras, normas e processos formais ou informais de como as pessoas interagem dentro de uma comunidade ou organização tal como um governo, mercado, família, tribo ou uma rede informática. As regras de governança de uma organização ou grupo de pessoas regulam o processo de tomada de decisões entre todos os intervenientes envolvidos. Isto é conseguido através de leis, normas, força ou linguagem.

A governança das redes Web3 e a sua aplicação descentralizada consiste em duas partes: ” governança social” e “administração algorítmica da governança”. A administração algorítmica de governança refere-se às regras de protocolo escritas em código legível por máquina – um protocolo de Blockchain ou código de contrato inteligente – que são automaticamente aplicadas pela rede de computadores P2P. Estas regras de protocolo também definem como as atualizações de protocolo devem ser conduzidas. Numa configuração autónoma, os incentivos através de tokens estão no centro do jogo de coordenação económica que forma o protocolo. Embora a Web3 e as suas aplicações nos permitam automatizar certas funções burocráticas de organização e formalizar regras institucionais com código autoexecutável, o que escrevemos no código, ou como atualizamos o código, é resultado do debate público e da ação coletiva de todos os agentes da rede.

As DAOs são codirigidas pelos agentes humanos agindo como operadores de nós, todos com preferências e objetivos diferentes. Eles têm influência coletiva sobre o comportamento geral da rede (resultado do sistema) e reagirão ao resultado do sistema. Assume-se que cada interveniente na rede tem o seu próprio interesse individual e que estes interesses nem sempre estão totalmente alinhados. As partes interessadas na rede propõem ou votam a favor de mudanças políticas que serão formalizadas como atualizações de protocolo, refletindo os seus próprios interesses. Os agentes humanos fazem parte do sistema e participam ativamente nos sistemas, quer utilizando os serviços de uma DAO (utilizadores), contribuindo com código para a constituição da rede (desenvolvedores), quer contribuindo para manter os serviços da rede. No caso da rede Bitcoin, os mineradores contribuem individualmente para a manutenção coletiva de uma rede de pagamento P2P (ler mais: Parte 1 – Bitcoin, Blockchain e Outras Tecnologias de Ledgers Distribuídas). No caso da Steemit, os curadores e criadores de conteúdos contribuem para a manutenção coletiva de uma rede social (ler mais: Parte 4 – Steemit e Hive). No caso dos contribuintes da MakerDAO são recompensados pela manutenção coletiva do token estável DAI (ler mais: Parte 3 – Token Estável). No caso de Aragon, os atores da rede são/foram recompensados pela manutenção coletiva de uma plataforma DAO. Como resultado, há feedback-loops entre os atores individuais e toda a rede. Uma vez que as ações individuais afetam o sistema, e todos tendo interdependências com eventos externos, o sistema como um todo evolui ao longo do tempo.

Embora as estruturas de governança dos Estados-Nação tivessem séculos para evoluir e amadurecer, as redes Blockchain só existem há doze anos e muitas questões de governança em torno de como conduzir as mudanças de protocolo ainda estão por resolver. O que podemos ver da breve história das redes Blockchain é que, embora os protocolos de Blockchain e os contratos inteligentes sejam uma grande ferramenta para substituir a burocracia em grande escala, na sua forma atual, são uma ferramenta insuficiente quando confrontados com “incógnitas desconhecidas” em ambientes complexos de múltiplas partes interessadas. Os contratos inteligentes só podem ser tão inteligentes quanto as pessoas que os desenvolveram e auditaram, com base na informação, práticas de codificação e cadeias de ferramentas disponíveis para estas pessoas no momento da codificação. A administração algorítmica da lógica de negócio e das regras de governança só podem, portanto, representar conhecimentos conhecidos, e conhecimentos desconhecidos, mas não desconhecimentos desconhecidos, que são o resultado de: (i) condições que mudam com o tempo; (ii) erro humano; ou (iii) assimetrias de informação em ambientes complexos de múltiplas partes interessadas. 

As condições que mudam com o tempo são melhor compreendidas através dos acontecimentos que se desenrolaram na rede Bitcoin em torno do chamado “Debate do Tamanho do Bloco”, que levou mais de dois anos e resultou num Hard Fork subsequente que levou à divisão da rede. Como as redes Blockchain ainda são incipientes, há uma necessidade contínua de melhorar e adaptar o protocolo a novas circunstâncias e necessidades. A maioria das recentes mudanças de protocolo na rede Bitcoin e redes Blockchain semelhantes tratam de questões de escalabilidade, privacidade e descentralização (por exemplo, construir resistência ASIC nos protocolos para evitar a centralização da mineração). As redes públicas, portanto, precisam de ser capazes de adaptar continuamente os seus protocolos e fazer melhorias. Tais melhorias, contudo, requerem um consenso dos atores da rede sobre como conduzir estas atualizações de protocolos, cuja dinâmica está sujeita à ciência política, ciência organizacional, e sociologia. A forma como os diferentes intervenientes respondem às mudanças no código tornou-se cada vez mais crítica para o sucesso de muitos projetos de Blockchain e a concepção de DAO baseadas em contratos inteligentes.

Os eventos imprevistos que podem desencadear atualizações de protocolo podem ser melhor compreendidos quando se analisam os eventos em torno da TheDAO, e o subsequente Hard Fork da Ethereum em 2016. Uma vulnerabilidade numa das funções do contrato inteligente, concebida para representar direitos minoritários, foi explorada e utilizada para drenar 3,6 milhões de ETH (cerca de 50 milhões de USD na altura) do contrato inteligente da TheDAO. Este incidente expôs a falta de mecanismos de resolução de disputas e de governança para “casos limite” induzidos por acontecimentos imprevistos, tanto a nível do contrato inteligente (as regras de governança de tokens da TheDAO) como a nível da própria rede Ethereum. O incidente mostrou as limitações da predefinição e pré-regulamentação de todas as interações humanas possíveis, incluindo potenciais vetores de ataque de atores maliciosos, com linhas de código complexas.

A realidade destes complexos sistemas socioeconómicos é que eles são organismos sociais com capacidade tecnológica. Requerem um processo iterativo de governança social para encontrar consenso sobre atualizações políticas. Este processo pode ser conduzido tanto “off-chain” (fora da cadeia) como “on-chain” (dentro da cadeia). O tema da governança das redes Web3 está a ganhar mais importância, especialmente à luz do número crescente de atualizações de protocolos contestados de redes públicas e não-permissionadas, como os casos acima mencionados das redes Bitcoin e Ethereum, a rede Aragon, ou no caso da rede Steemit e do subsequente Hard Fork no protocolo Hive (ler mais: Parte 4 – Steemit e Hive). Parece haver um consenso crescente de que as questões de governança de grandes ambientes multi-stakeholder são frequentemente complexas, e as condições são imprevisíveis e emergentes e não podem ser totalmente concebidas com antecedência. Contudo, não há um entendimento comum sobre como poderia ser um sistema ideal de governança. O “processo de governança humana” é um processo confuso, e isto, afinal, é o que o movimento criptoanarquista por detrás da rede Bitcoin queria evitar em primeiro lugar. No entanto, os problemas de governança são problemas sociais aplicados, e muitas vezes precisam de ser resolvidos pela intervenção humana, e não apenas pela matemática.

 

 

Controlos e Balanços na Rede

À medida que os sistemas mais diversificados e alternativos de ledgers distribuídas estão a entrar no campo de jogo da Web3, é difícil generalizar os intervenientes em tais redes. Para manter a simplicidade, contudo, os principais intervenientes das redes Blockchain públicas podem ser resumidos como (i) mineradores, (ii) programadores, (iii) utilizadores com nós completos, (iv) utilizadores sem nós completos, e (v) o ecossistema empresarial que pode atuar como criador de mercado, incluindo Exchanges, comerciantes, etc.

Os mineradores escrevem transações na ledger e mantêm a rede a salvo de ataques. As suas contribuições para a rede são incentivadas por recompensas do bloco e taxas de transação, o que significa que tendem a preferir atualizações de protocolo que possam assegurar ou aumentar os seus ganhos futuros. Os mineradores têm geralmente uma melhor capacidade de coordenação, uma vez que são um grupo mais pequeno e mais concentrado. Isto dá-lhes um poder desproporcionado em comparação com outros intervenientes que estão mais dispersos e normalmente com menos meios para coordenar os seus interesses. Em teoria, os mineradores ricos poderiam pagar aos promotores de projetos de desenvolvimento para procurar atualizações de protocolos que sejam do seu melhor interesse, ganhando assim mais poder na rede.

Os programadores criam o protocolo e mantêm a rede com atualizações regulares do protocolo. Muitos dos protocolos públicos como no caso da Bitcoin ou da Ethereum não têm nenhum mecanismo nativo para incentivar os programadores, representando um dos principais óbices à gestão descentralizada das primeiras redes Blockchain.[1]  A ideologia e reputação pessoais parecem muitas vezes ser uma força motriz para contribuir com o código. Os incentivos indiretos poderiam resultar da contribuição para a resiliência da rede, o que poderia potencialmente aumentar o valor das atuais posses de tokens.

Detentores de tokens que correm nós completos: dependendo do tipo de rede, e do tipo de Fork de software, os utilizadores que executam nós completos têm mais ou menos voz no caso de atualizações de protocolo. Se os nós completos tiverem o direito de contribuir, é provável que prefiram atualizações que possam melhorar a funcionalidade da rede e/ou aumentar os preços futuros dos tokens.

Os detentores de tokens que correm nós simples normalmente não têm voz ativa na rede, uma vez que utilizam serviços de terceiros sem funcionar com o seu próprio nó completo. Nalguns casos, estes detentores de tokens podem ser capazes de “votar com moedas” com os seus tokens. Podem também vender os seus tokens por completo, influenciando assim o preço de mercado e um potencial êxodo em massa da rede.

Existe uma certa forma de controlos e equilíbrios em vigor, onde os mineradores e os detentores de tokens que funcionam com nós completos podem ou não adotar as alterações propostas. O processo é o seguinte: os programadores submetem os chamados “pull requests“, uma proposta de melhoramento do código. Os mineradores decidem se efetivamente devem ou não adotar as leis na prática. Os detentores de tokens que executam nós completos da rede podem vetar, não executando uma versão que se alinhe com o que os mineradores estão a executar. Qualquer detentor de tokens, de nó completo ou não, pode revoltar-se vendendo os seus tokens ou utilizando redes diferentes. Há quem argumente que fazer Fork reflete uma saída forte, enquanto que a venda de tokens reflete uma saída mais fraca.

A experiência tem mostrado que as dinâmicas comunitárias com atualizações de protocolo são bastante semelhantes à discussão pública conduzida pelos meios de comunicação social, incluindo as redes sociais, antes das eleições nacionais. Precisamos, portanto, de um mecanismo institucionalizado para coordenar os intervenientes na rede, equilibrando ao mesmo tempo os interesses de todos. Se um determinado grupo de partes interessadas conseguir coordenar melhor do que outros, isto poderá resultar em assimetrias de informação e desequilíbrios de poder.

Embora os diferentes intervenientes tenham alguns incentivos em comum, é difícil para qualquer protocolo de consenso alinhar totalmente os interesses de todos os intervenientes. Os detentores de token com nós completos e os programadores podem preferir atualizações que resultem em taxas de transação mais baixas. Os mineradores considerarão tal proposta pouco atrativa, uma vez que as taxas de transação são uma fonte de rendimento para eles. Poderão favorecer atualizações de protocolo que produziriam maiores recompensas de bloco, o que aumentaria a taxa de inflação e, por conseguinte, provavelmente não seria do interesse a longo prazo de nenhum dos interessados envolvidos. Uma vez que um alinhamento absoluto de incentivos não é viável, a questão de como institucionalizar o processo de governança social das atualizações de protocolo é um ato de equilíbrio delicado.

 

Governança “Off-Chain” vs. “On-Chain”

Os protocolos iniciais de Blockchain como o Bitcoin e o Ethereum baseiam-se num pressuposto simplista de “código é lei” e têm um processo de consenso social bastante espontâneo e não bem institucionalizado que acontece “off-chain”. Vários projetos mais recentes de Blockchain, tais como “Tezos“, “Dfinity“, e “Decred“, introduziram propostas alternativas de como mitigar as deficiências dos processos de governança das redes Bitcoin e Ethereum. Introduziram vários modelos de “governança on-chain” onde a governança de protocolo é regulada e implementada, pelo menos parcialmente, ao nível do protocolo.

“Governança off-chain” descreve um processo de atualização do protocolo onde a tomada de decisões tem lugar primeiro a nível social e é depois codificado no protocolo pelos programadores. Tem de ser aceite pelos mineradores e utilizadores. Tanto a rede Bitcoin como a rede Ethereum dependem de processos de governança off-chain. Os promotores partilham as suas propostas de melhoria online. Qualquer programador pode submeter à comunidade os chamados “pull requests” de uma proposta de melhoria. Isto é semelhante à forma como a democracia representativa funciona: qualquer pessoa pode fazer uma proposta para alterar uma lei, contudo, existem certos procedimentos institucionalizados que podem variar de país para país. O mesmo é válido para os protocolos de Blockchain.

O processo de governança da Bitcoin: na rede Bitcoin, os programadores coordenam através de uma mailing list e um repositório de propostas de melhoramento, também referido como BIP (Bitcoin Improvement Proposals), onde qualquer pessoa pode contribuir com propostas para uma atualização do protocolo. Os programadores coordenam e discutem propostas de implementação através dos canais Slack, Skype, IRC, etc. Os utilizadores podem contribuir com opiniões em fóruns de discussão como “bitcoin-talk“, em subreddits como “r/bitcoin” e “r/CryptoCurrency“, ou via Twitter. É importante notar, contudo, que não existe um mecanismo de recompensa nativo no protocolo Bitcoin para contribuições de programadores. Alguns programadores são pagos por empresas, que têm o seu próprio interesse na rede Bitcoin, para contribuir com código.[2]   A rede Bitcoin já passou por vários Hard e Soft Forks no passado. atualizações mais politizadas do protocolo como o já mencionado “Debate do Tamanho do Bloco” resultaram em discussões acesas e prolongadas na comunidade, dando origem a vários Hard Forks da cadeia, como “Bitcoin Cash”. Uma vez que os Hard Forks exigem que todos os mineradores atualizem os seus “clientes” para o novo protocolo, o que pode levar a divisões na rede, muitas atualizações de protocolo foram incluídas como Soft Forks (ler mais sobre Forks: Parte 1 – Bitcoin, Blockchain, e Outras Tecnologias de Ledgers Distribuídas).

O processo de governança da Ethereum: ao contrário da rede Bitcoin, que é mais descentralizada, o desenvolvimento da rede Ethereum foi financiado e governado pela Fundação Ethereum nos primeiros anos da sua criação, sendo por isso menos descentralizada. A fundação angariou fundos numa venda pública de tokens que emitiu alguma quantidade de Ether (ETH) pré-minado a investidores contra bitcoin (BTC), e atribuiu algum Ether adicional pré-minado à Fundação. À semelhança do Bitcoin, o protocolo Ethereum é de código aberto e qualquer pessoa pode contribuir com código e fazer propostas de melhoria, também designadas por EIPs (Ethereum Improvement Proposals). Os programadores, contratados pela fundação, conduzem novas ideias e tentam ser transparentes sobre o processo de desenvolvimento, por exemplo, transmitindo as suas principais discussões de programadores no YouTube. À semelhança da Bitcoin, os programadores que não são contratados pela fundação têm incentivos limitados para contribuir para o desenvolvimento do núcleo, exceto no que diz respeito a bolsas de desenvolvimento e de “bug-bounties”. As atualizações de protocolos anteriores mostraram que a coordenação em torno de questões desafiantes acontece mais rapidamente do que na rede Bitcoin. Isto pode ser o resultado de uma cultura de rede diferente. Afinal, a Ethereum foi criada como reação à tendência da Bitcoin para uma compreensão mais conservadora de “código é lei”. Além disso, ao contrário da Bitcoin, onde o criador Satoshi Nakamoto é anónimo, e deixou de comunicar pela Internet sobre a sua visão do estado de desenvolvimento da Bitcoin há alguns anos atrás, Vitalik Buterin, o fundador da Ethereum, é visível, franco e de confiança por parte da comunidade. As suas opiniões parecem ser importantes para muitos quando se trata da tomada de decisões controversas. As semelhanças com o processo de proposta de melhoria de Bitcoin mudarão, contudo, se e quando a Ethereum mudar para o mecanismo de consenso Proof-of-Stake (Prova-de-Participação). Os atuais mineradores perderão poder para os detentores de tokens com uma quantidade suficiente de ETH para gerir um chamado “minerador virtual” (validador). Dado o facto de soluções como “1protocol” permitirem a participação mesmo do mais pequeno detentor de ETH, a distinção entre um minerador e um utilizador poderia também democratizar potencialmente o processo de validação, que se concentra atualmente em torno de um oligopólio das pools de mineração.

A falta de incentivos aos programadores é um dos maiores desafios no atual desenvolvimento de protocolos, o que deixa a manutenção destas redes sob o controlo de um pequeno grupo de programadores principais que são pagos por empresas privadas ou Fundações Em ambos os casos, o processo de desenvolvimento da infraestrutura pública é limitado a um pequeno grupo de pessoas, o que torna toda a rede vulnerável a subornos e ataques.

“Governança on-chain” refere-se aos mecanismos de algumas redes Blockchain para permitir aos programadores transmitir a sua proposta de melhoria on-chain, para ser votada e implantada na rede de teste durante um certo período de tempo, após o qual a proposta será novamente votada e implantada na rede principal. Isto significa que qualquer decisão que esteja a ser tomada é automaticamente executada. Neste processo, os programadores são compensados com tokens em tempo real quando as suas propostas de melhoria são executadas. Qualquer pessoa com as competências necessárias pode apresentar uma proposta e ser recompensada com tokens de rede, proporcionando um forte incentivo à descentralização da manutenção da rede. Os utilizadores podem também coordenar on-chain, o que poderia reduzir o poder dos programadores e dos mineradores em comparação com os processos de decisão off-chain. Os protocolos de governança on-chain podem também ser concebidos de forma a reverter e editar o histórico da ledger, permitindo uma “ledger auto-rectificadora”, em oposição à governança off-chain que requer um Hard Fork para apagar uma transação passada. É possível que tais alterações retroativas exijam diferentes limiares de votação, dependendo do tipo de alteração.

O processo de governança da Tezos: a Tezos é uma rede Blockchain pública e não-permissionada, semelhante à Ethereum, com governança integrada e mais mecanismos de segurança em torno de contratos inteligentes. Embora o projeto tenha enfrentado sérios problemas de gestão,[3] o seu modelo de governança é bastante interessante: os detentores de tokens podem aprovar atualizações de protocolo, que são automaticamente implantadas na rede uma vez aprovadas. A atualização do protocolo proposto vem com uma fatura anexa sob a forma de um contrato inteligente, que paga ao programador após a aprovação e inclusão da sua atualização. As propostas de melhoria do protocolo podem ser conduzidas por qualquer desenvolvedor. Uma vez aprovadas, as alterações entrariam em vigor numa rede de teste, e após nova aprovação, seriam implementadas na rede principal. Na implementação final da proposta de melhoria na rede principal, o promotor seria pago em tokens de rede recentemente cunhados.

O processo de governança da Dfinity: A Dfinity é uma rede tokenizada e descentralizada para a computação em nuvem. Adicionalmente à proposta Tezos, permitem alterações retroativas à ledger em casos de consenso entre os detentores do token. Alterar a ledger é altamente controverso, uma vez que a “imutabilidade” é considerada por muitos como a “Proposta Única de Venda” central da rede Bitcoin e outras ledgers distribuídas públicas. No entanto, os proponentes da ledger auto-retificada apreciam a sua capacidade de remover o que alguns poderiam considerar “atividades ilegais por parte de maus agentes”. Contudo, a definição de “ilegal” está sujeita à jurisdição e também propensa à censura que limita a liberdade de expressão; é, portanto, considerada como uma espada de dois gumes.

Um desafio das atuais propostas de “governança on-chain” é que elas são plutocráticas, o que significa que as atualizações do protocolo são decididas de forma proporcional ao património de tokens de cada um. Os detentores com mais tokens teriam, portanto, maior poder de voto do que os menores detentores de tokens. Esta é uma questão de design considerável, dado que a distribuição de tokens é muitas vezes desproporcionalmente desigual. No caso da Bitcoin, no momento da redação deste capítulo, 3,06 por cento dos endereços detêm 95,66 por cento da oferta total. Em maio de 2016, de um total de 11.000 investidores, os 100 maiores detentores detinham mais de 46% de todos os tokens da TheDAO. À luz de tais mecanismos de votação plutocráticos, a utilização do termo “descentralização” poderia ser entendida como contraditória.

A maioria das soluções de governança on-chain são apenas propostas ou não têm estado operacionais há muito tempo. É, portanto, difícil prever quais serão as implicações de tais sistemas. Além disso, embora as soluções on-chain possam aumentar a coordenação e a equidade, são também arriscadas, pois são mais difíceis de mudar uma vez instituídas e podem ser exploradas mais facilmente. A governança off-chain, por outro lado, é relativamente centralizada e exclui muitos pequenos detentores de tokens, especialmente aqueles que carecem de conhecimentos técnicos ou de poder financeiro para avaliar adequadamente as decisões da rede. No entanto, apesar das potenciais tendências de centralização, os detentores de tokens numa rede Blockchain podem sempre sair facilmente vendendo ou fazendo Hard Fork.

Só podemos supor que uma certa quantidade de coordenação on-chain facilita a coordenação global, mas não resolve o fator humano. Ainda não é claro como poderia ser o equilíbrio certo entre coordenação “on-chain” versus coordenação “off-chain”. Uma combinação significativa de ambas as abordagens seria muito provavelmente a melhor para resolver o processo de tomada de decisão em grandes ambientes multiparticipantes.

 

O Mito da Descentralização e Redes Trustless

Contratos Inteligentes como “Estado” por defeito: a incapacidade de prever eventos futuros desconhecidos, como no caso do incidente da TheDAO, mostrou que os contratos inteligentes só podem ser um estado por defeito, que pode ter de ser anulado por consenso de “supermaioria” dentro da comunidade relevante sempre que considerado necessário. A ausência de mecanismos de resolução de litígios e de governança para os casos extremos dividiu a comunidade a nível dos contratos inteligentes (TheDAO), bem como a nível da Blockchain (Ethereum). Além disso, o código não se escreve a si próprio, e é, portanto, propenso a erro humano. Embora a chamada “verificação formal” no desenvolvimento de software possa reduzir o erro humano, não pode erradicar todos os erros, ou suposições míopes. A Inteligência Artificial pode ter, no futuro, algum impacto. Por enquanto, no entanto, embora o código possa simplificar as transações, permanece suscetível a preconceitos humanos. O código só pode, portanto, ser um estado por defeito, com base no qual o consenso social acontece, se e quando necessário.

Inércia: da mesma forma, o debate sobre a escalabilidade da Bitcoin de 2016 e 2017 demonstra como a inércia pode resultar de regras de governança inadequadas que dão conta de decisões em larga escala num ambiente de múltiplos intervenientes com interesses não alinhados em jogo. Na ausência de estruturas de governança mais flexíveis, os promotores e agitadores da comunidade tornam-se inadvertidamente os líderes de opinião e quasi “agentes do principal” (o detentor de tokens e outros intervenientes). Isto pode levar à inércia (caso da Bitcoin) ou à divisão da rede (caso da Ethereum).

Imutabilidade e resistência à censura: o incidente TheDAO e o subsequente Hard Fork da Ethereum também levantam questões sobre a resistência à censura e a imutabilidade. Os defensores do Hard Fork da Ethereum foram acusados de censurar a ledger, recuando no tempo e invalidando a transação do agente malicioso. Os defensores do Hard Fork alegaram que numa comunidade descentralizada, como a TheDAO ou a rede Ethereum, nenhuma entidade pode tomar tal decisão sem que a maioria da comunidade concorde. Argumentaram que, se houvesse consenso sobre a alteração da ledger, tal não contaria como censura, mas sim como uma evolução natural do código ou estado da ledger, impulsionada pela comunidade.

Novos Gatekeepers: embora os contratos inteligentes possam reduzir a burocracia e os consequentes problemas de agente-principal, haverá sempre necessidade de peritos. A comunidade de partes interessadas da rede que tomam decisões sobre atualizações de protocolos deve confiar no juízo de concepção desses peritos. Embora tais peritos sejam mais distribuídos, nenhum deles tem poder executivo para decidir o que fazer, eles concentram o poder em torno do seu conhecimento especializado e tornam-se os novos “quasi” agentes numa rede distribuída onde “código é lei”.

“Sim, é de código aberto, mas quantas pessoas o conseguem ler”? Atualmente, apenas um punhado de programadores de software e arquitetos de sistemas compreendem as entradas e saídas de protocolos específicos de Blockchain para tomar decisões instruídas sobre atualizações de protocolos. É provável que a centralização se una em torno de especialistas, programadores e arquitetos de sistemas. Dado o facto de as competências de codificação ainda não fazerem parte dos currículos principais das escolas, a tomada de decisões educadas numa economia de máquinas é uma ilusão remota, relativamente à perspetiva atual. Embora qualquer pessoa, em teoria, possa contribuir para o código, as competências de engenharia necessárias podem ser consideradas uma barreira à entrada, criando novos problemas de agente-principal em torno da compreensão não só do código simples (contratos inteligentes) mas também de complexos protocolos Blockchain.

Informação: a natureza distribuída dos conhecimentos especializados, os múltiplos canais de comunicação e a atual falta de sistemas de reputação eficazes tornam difícil aos interessados acompanhar o processo de discussão on-line. Enquanto as questões de comunicação e disseminação de informação são também preocupações dos sistemas (políticos) de governança contemporânea, as comunidades Web3 são ainda mais suscetíveis a tais preocupações. De onde vem a informação fiável, e que ferramentas, tais como visualizações e árvores de decisão, são necessárias para facilitar tais processos? A experiência de atualizações de protocolos anteriores mostra que se as questões de informação, moderação, transparência, agregação e reputação não forem resolvidas, a descentralização pode tornar-se uma palavra sem sentido.

[1] Na rede Bitcoin, onde não houve venda de tokens, cabe ao promotor decidir se mineram ou compram tokens, ou não há nenhuma. Outros projetos de Blockchain, como o Zcash, recompensaram os seus promotores fundadores com tokens, que foram distribuídas ao longo dos primeiros quatro anos do projeto. Numa tal estrutura, os promotores correm o risco de serem subornados ou “patrocinados” por indivíduos e instituições com interesses próprios. Globalmente, parece seguro dizer que é necessário um melhor sistema de incentivos aos promotores para o desenvolvimento de protocolos a longo prazo, uma vez que os promotores têm a maior influência direta na evolução dos protocolos.

[2] A maior empresa que patrocina programadores é a Blockstream, mas Bitmain e a Circle também patrocinaram programadores no passado, bem como o MIT Media Lab.

[3] Em julho de 2017, a Tezos angariou 230 milhões de USD em tokens de Ether e Bitcoin durante o seu ICO. Enfrentaram problemas com a SEC como resultado da quebra de comunicação e problemas de gestão entre os fundadores e o presidente da Fundação Tezos. Seguiram-se processos judiciais por compradores de tokens frustrados.

O conteúdo aqui apresentado foi retirado do livro “Token Economy” de Shermin Voshmgir, traduzido e adaptado para português por mim, José Rui Sousa, em conjunto com António Chagas, Courtnay Guimarães e Joana Camilo, publicado sob uma licença Creative Commons CC BY-NC-SA apenas para uso não-comercial.

Um dos maiores desafios de um mecanismo de consenso distribuído como 0 Proof-of-Work é que, apesar de tornar a rede segura, tal mecanismo faz com que ela não seja escalável. Isto deve-se ao trade-off entre descentralização, segurança e escalabilidade. 

Aviso: a pesquisa e desenvolvimento em torno de soluções de escalabilidade está sujeita a eventos atuais. Este capítulo dará uma visão geral, mas de longe não está completo no delineamento de todas as soluções possíveis e/ou seus trade-offs. 

O “trilema da escalabilidade” descreve o trade-off no consenso distribuído entre descentralização, segurança e escalabilidade. A descentralização é a premissa de uma rede distribuída, a segurança é o aspeto mais importante quando a rede envolve um conjunto de atores não confiáveis, e a escalabilidade refere-se à capacidade de crescimento de poder computacional de uma rede para processar um crescente número de transações por segundo. Para permitir um alto grau de inclusão de nós computacionalmente mais fracos, o tamanho do bloco numa rede com Proof-of-Work é limitado e os blocos são criados com um atraso. Caso contrário, como blocos maiores são mais difíceis de processar, a latência da rede impediria que nós mais fracos participassem do processo de criação do bloco. Tais limitações, no entanto, reduzem a quantidade de transações que podem ser validadas num determinado período de tempo e, como resultado, os mecanismos de Proof-of-Work são seguros, mas não são escaláveis. Nos primórdios das redes Blockchain, a escalabilidade dificilmente era abordada pela comunidade de desenvolvedores, pois o tráfego nessas redes ainda era baixo. Hoje, a escalabilidade das redes Blockchain públicas é um dos principais pontos de estrangulamento quanto à adoção em massa e também um dos mais trabalhados em questões de I&D.

A escalabilidade da Blockchain é comparável aos primeiros tempos da Internet, onde costumávamos puxar cabos telefónicos pelos nossos apartamentos para conectar os computadores à Internet. Quanto à conexão, a largura de banda era baixa e a comunicação era lenta; era preciso esperar que as páginas se construíssem pixel a pixel. A introdução dos modems de 56k foi considerada uma grande melhoria em relação ao modem de 28k, mas o streaming de vídeo era ainda considerado um sonho distante. Embora a transmissão de dados fosse um problema, estas questões acabaram por ser resolvidas, e isso certamente não impediu que a Internet evoluísse para o que é hoje. No contexto das redes Blockchain, muitas soluções foram propostas para tornar as transações mais rápidas e baratas, mantendo ao mesmo tempo a segurança e um certo nível de descentralização. Soluções de escalabilidade podem abordar estas questões no (i) nível de protocolo, ou no (ii) nível de segunda camada.

Quando são abordados a nível de protocolo, muitas vezes levam à centralização. Mais volume de transações por segundo muitas vezes requer a concessão de mais poderes a certos nós, aumentando assim o nível de centralização. Mecanismos alternativos de consenso tentam resolver a questão da escalabilidade, introduzindo algum tipo de camada de permissão para garantir a confiança. O capítulo “Bitcoin, Blockchain e Outras Ledgers Distribuídas” que é apresentado na primeira parte deste livro, tem um subcapítulo inteiro dedicado a uma lista de soluções alternativas de ledger distribuída e protocolos de consenso que tentam – entre outros – resolver as questões de ganhos de desempenho. As soluções mais populares para alcançar níveis mais elevados de desempenho são os protocolos de consenso alternativos, tais como o Delegated Proof-of-Stake (dPoS), o Practical Bysantine Fault Tolerance (pBFT), ou as redes permissionadas. O sharding da ledger ou algoritmos criptográficos alternativos são outros meios para resolver o problema de escalabilidade no nível do protocolo e serão descritos neste capítulo.

Como alternativa, foram feitos vários esforços para mover soluções de escalabilidade para uma segunda camada, tais como “side chains” (cadeias laterais) ou “state channels” (canais de estados). Em ambos os casos, as interações do utilizador são deslocadas da camada de Blockchain para uma segunda camada, garantindo transações P2P sem risco entre os participantes.

State Channels

Os state channels (canais de estados) oferecem uma segunda camada no topo de uma rede Blockchain, permitindo que as transações que possam ocorrer on-chain sejam liquidadas off-chain, mantendo a segurança de todos os participantes da rede. Nesse processo, as transações são externalizadas para um state channel privado, o que poderia ser descrito como um caminho de duas vias entre dois utilizadores. Esses canais são formalizados e processados por um contrato inteligente. Os state channels permitem a transferência de qualquer estado para qualquer tipo de aplicação descentralizada. Os “payment channels” (canais de pagamento) permitem apenas a transferência de pagamentos. Eles são úteis se duas partes, suponhamos Alice e Bob, tiverem uma relação comercial contínua com pagamentos contínuos.

Os tokens são temporariamente bloqueados como mecanismo de segurança em caso de disputas: (i) os tokens podem ser enviados de Alice para Bob e vice-versa usando canais de estado onde são bloqueados através de um esquema multi-assinatura ou um contrato inteligente por um período de tempo pré-definido. (ii) Tanto Alice como Bob assinam cada transação com as suas chaves privadas, mas as transações são mantidas privadas e não são transmitidas para a rede Blockchain. (iii) Após o período ter decorrido, o saldo de todas as transações bilaterais é transmitido para a rede Blockchain, que fecha o state channel

Vamos supor que Alice tem 200 ETH e Bob tem 100 ETH. Dentro de um certo período de tempo, Alice envia dez pagamentos de 10 ETH e Bob envia a Alice dois pagamentos de 25 ETH. Se todas as transações fossem liquidadas diretamente na rede Ethereum, doze transações individuais seriam registadas por todos os nós da rede. Isso não só iria aumentar o número de transações e atrasar a rede, como também seria mais caro para Alice e Bob, uma vez que cada transação incorreria numa taxa de transação. Usando um state channel para liquidar tais transações bilaterais, apenas o saldo de todas as transações precisa ser liquidado diretamente na Blockchain, uma vez decorrido o tempo pré-definido. Isto significa que apenas duas transações serão registadas pela rede: as transações de abertura e encerramento do canal.

Manter as transações off-chain e exclusivamente entre ambas as partes não só é mais barato e rápido, como também preserva mais a privacidade. Tudo acontece dentro de um canal, em vez de ser transmitido publicamente por toda a rede. As únicas transações que são registadas on-chain e visíveis ao público são as transações de abertura e fecho. O lado negativo deste processo: os state channels precisam da disponibilidade total de todos os participantes envolvidos. Caso contrário, se o encerramento final do canal, e, portanto, a submissão final do estado, fosse submetido por um ator malicioso, os tokens poderiam estar em risco. Para fazer face a ataques maliciosos, os tokens bloqueados podem ser retidos pelo contrato inteligente para penalizar o ator malicioso. Isto requer monitorização e poderia ser externalizado a prestadores de serviços, os chamados “contratos de juiz”, em troca de uma taxa. Os state channels, portanto, só são úteis nos casos em que os participantes trocam diversas atualizações de estados durante um longo período de tempo, para mitigar o custo inicial de criar um canal e implantar um contrato de juiz.

O contrato inteligente utilizado para bloquear o estado deve conhecer previamente os participantes de um determinado canal. Os state channels funcionam bem com um conjunto definido de participantes, mas adicionar e remover participantes requer uma mudança no contrato inteligente, ou a criação de um novo canal. Projetos como o Lightning Network (Bitcoin) ou o Raiden Network (Ethereum) têm apresentado soluções baseadas numa malha de participantes, criando uma rede a partir de todos os canais de forma a que não haja necessidade de se criar um novo canal para cada novo participante. As transações podem agora ser encaminhadas através dos canais de outras pessoas, mas apenas enquanto houver alguma ligação direta de canais através da rede. Apresenta-se de seguida uma listagem selecionada de soluções de state channels para várias redes Blockchain com diferentes graus de maturidade e sucesso: “Celer“, “Counterfactual“, “Fun Fair“, “Liquidity“, “Lightning“, “Machinomy“, “Perun“, “Raiden“, “Spankchain“, ou “Trinity“. A maioria das soluções é especializada numa rede Blockchain – como Bitcoin, Ethereum ou Neo – outras são agnósticas de rede.

Sidechains

As sidechains (correntes laterais) são redes Blockchain separadas, compatíveis com a mainchain (corrente principal). As sidechains têm o seu próprio mecanismo de consenso, o seu próprio nível de segurança e os seus próprios tokens. Uma sidechain não precisa necessariamente de ser pública e também pode ser uma ledger administrada privadamente. Se a segurança de uma rede sidechain for comprometida, os danos não afetarão a mainchain ou outras sidechains. Ambas as redes estão ligadas uma à outra através de uma “pega-dupla” e podem transferir qualquer estado. Desta forma, os tokens podem ser trocados a uma taxa pré-determinada entre a mainchain e a sidechain. A mainchain garante segurança geral e resolução de disputas, e as transações que são externalizadas para a sidechain podem sacrificar a descentralização em troca da escalabilidade.

Ao contrário dos state channels, as transações que ocorrem numa sidechain não são privadas entre os participantes de uma transação. Elas são publicadas na rede sidechain e, portanto, visíveis para qualquer pessoa que tenha acesso à ledger. Alice e Bob não precisam estar disponíveis o tempo todo, e não há custos administrativos extras para adicionar ou remover participantes. A criação de uma sidechain, no entanto, representa um grande esforço, pois significa construir toda uma infraestrutura a partir do zero.

A sidechain interage com a camada de cálculo na mainchain e requer que os tokens sejam bloqueados para facilitar as disputas. Um grupo de servidores (federação) medeia entre uma mainchain e suas sidechains e determina quando os tokens que um utilizador utilizou são bloqueados e libertados. Isto adiciona outra camada de segurança entre a mainchain e a sidechain. A federação é selecionada pelos desenvolvedores da sidechain. No entanto, tal federação adiciona outra camada entre a mainchain e a sidechain e pode introduzir mais vetores de ataque. Apresenta-se de seguida uma listagem selecionada de soluções sidechain para várias redes Blockchain com diferentes graus de maturidade e sucesso: “Bitcoin Codex”, “Bitcoin Extended”, “Elements Projects“, “Hivemind“, “Loom“, “Liquid, “Mimblewimble, “Plasma“, “Poa Network“, ou “Rootstock.

 

Interoperabilidade da Blockchain

O número de redes Blockchain e outras ledgers distribuídas está a crescer. No entanto, todos estes sistemas de ledgers distribuídas são, na sua maioria, sistemas isolados e funcionam como um silo. As redes não têm conhecimento dos Estados dos tokens administrados noutras redes. Elas também não têm ideia se outras redes têm capacidade ociosa para liquidar transações. As sidechains podem ser vistas como um primeiro passo para a interoperabilidade e escalabilidade total da Blockchain. Uma solução mais eficaz e global poderia ser fornecida por redes de interoperabilidade, como “Cosmos”, Polkadot ou Wanchain, que poderiam resolver o problema da escalabilidade de múltiplas redes simultaneamente.

Interoperabilidade, no contexto de ledgers distribuídas, refere-se à capacidade de compartilhar livremente tokens e dados relacionados através de diferentes redes. Num ambiente totalmente interoperável, um utilizador da rede A poderia enviar tokens para um utilizador da rede B sem a necessidade de um intermediário, tal como uma Exchange centralizada. A interoperabilidade da Blockchain é uma ideia contrária ao que alguns propõem: uma situação em que, devido a efeitos de rede, apenas uma rede Blockchain sobreviverá a longo prazo. A ideia de “uma cadeia para governar todas as outras” é contrária à ideia central de descentralização. O futuro da Web3 pode, portanto, depender da capacidade das redes Blockchain interagirem umas com as outras.

Sharding

Alguns desenvolvedores propõem que a fragmentação do estado da rede poderia ser uma solução para o problema de escalabilidade das redes Blockchain. O sharding é um conceito adotado a partir de bases de dados distribuídas, que ainda não foi testado em escala global no contexto de redes Blockchain. O compartilhamento poderia abordar as restrições de escalabilidade dos protocolos de consenso atuais, onde cada nó tem que atualizar a sua ledger regularmente e manter o histórico completo, desde o bloco de génese até aos dias de hoje. Sugere-se que o histórico da ledger poderia ser dividido em pedaços separados, cada um dos quais teria sua própria “shard” do estado da rede. Várias shards mantidas por diferentes nós de rede paralelos uns aos outros, melhorando assim a escalabilidade geral da rede. As shards seriam “subestados” como parte do estado da rede como um todo. A rede como um todo ainda deveria operar sob um único estado, mas cada shard teria que ser consistente em si mesmo. A comunicação entre as shards seria tratada através de regras de protocolo. Em tal processo, os endereços Blockchain, os saldos e o estado geral seriam contidos nas shards. Os fragmentos fornecem provas para a mainchain e podem comunicar-se com outras shards através do protocolo sharding. Exemplos de projetos a trabalhar em soluções de sharding: Prysmatic Labs, Drops of Diamond, Status“, e PegaSys“.

Algoritmos Criptográficos Alternativos

Um dos maiores desafios da rede Bitcoin e de redes semelhantes é a gestão de transações não gastas. Estas transações não gastas contribuem para o crescimento exponencial da ledger. Na Bitcoin, por exemplo, são referidas como UTXO (Unspent Transactions Outputs), e contribuem para uma maior carga de transmissão de dados, transações mais caras, e menos produção por segundo. Quando uma nova transação em bruto é criada e posteriormente validada, antes de ser assinada, as entradas só podem provir de saídas não gastas de transações anteriores. Por conseguinte, para a criação de transações de validação e assinatura, as transações não gastas são mais importantes do que as transações gastas (outputs). Para a consistência da ledger, as transações não gastas são importantes para coisas como carimbos de tempo, prova de existência, armazenamento de dados, e também criação de blocos e mineração. As redes Blockchain orientadas para as transações são todas sobre as transações não gastas. É por isso que a sobrecarga da ledger está tão fortemente relacionada com elas. A gestão do tamanho da carga de transmissão de dados do UTXO, a quantidade de UTXO na ledger, e o grau até ao qual se torna possível mantê-los off-chain, resolve a sobrecarga da cadeia como tal. De facto, tudo o que mantém a carga de transmissão de dados mais pequena, combate a sobrecarga.

Algoritmos criptográficos alternativos utilizados em assinaturas coletivas, como multi-signatures[1], ring signatures, threshold signatures[2] ou Schnorr signatures[3], poderiam resolver certos problemas de escalabilidade, por exemplo, reduzindo a informação adicionada à ledger, ou eliminando essa informação com assinaturas múltiplas, e resgatar scripts. Com transações com várias assinaturas, por exemplo, os endereços recetores são agregados num endereço recetor com vários dígitos e fazem com que o script de resgate que os acompanha seja armazenado off-line. Isso também reduz o número de saídas e o tamanho do script dentro da transação. O mesmo se aplica às ring signatures, threshold signatures e collective signatures.

As “multi-signatures” (assinaturas múltiplas) são divididas numa transação de financiamento, que se transforma num UTXO e numa transação de gastos, e resulta numa transação gasta. Para as transações de financiamento relevantes ao UTXO, a agregação de vários recetores num único endereço de recebimento e a utilização de menos saídas, mais o “off-chaining” do “redeem-script“, normalmente resulta num payload menor. Os esquemas alternativos de assinatura pertencem ao conjunto de ferramentas anti-bloat, mas em comparação com a média das transações “non multi-sig”, a redução do payload nem sempre acontece e depende do caso específico de utilização. “Mimblewimble“, por exemplo, é uma proposta para que a Bitcoin utilize uma abordagem diferente para a construção da transação. Ele remove a maioria dos dados históricos da Blockchain, incluindo as saídas de transações gastas, ao passo que ainda permite que os utilizadores verifiquem completamente a cadeia. Ele também permite mais privacidade do que as implementações Bitcoin atuais. O “Dfinity e o “Hyperledger Fabric” usam “threshold signatures” para alcançar o mesmo objetivo.

[1] As várias assinaturas permitem a criação de um cofre com várias fechaduras e chaves e atribuem as chaves a várias partes. Elas também permitem a criação de um mecanismo de cofre que requer apenas uma parte dessas chaves para abrir o cofre. Mesmo que uma das chaves seja duplicada, os atacantes não são capazes de abrir o cofre.

[2] As assinaturas do limiar permitem que um grupo arbitrário de signatários construa uma assinatura, desde que haja um número suficiente delas. São mais eficientes, pois quase todo o cálculo pode ser feito pelos signatários antes de submetê-lo a uma rede de cadeias de blocos.

[3] As assinaturas Schnorr são baseadas no algoritmo de assinatura Schnorr, que é conhecido pela sua simplicidade, é eficiente e gera assinaturas curtas.

O conteúdo aqui apresentado foi retirado do livro “Token Economy” de Shermin Voshmgir, traduzido e adaptado para português por mim, José Rui Sousa, em conjunto com António Chagas, Courtnay Guimarães e Joana Camilo, publicado sob uma licença Creative Commons CC BY-NC-SA apenas para uso não-comercial.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *