Tenho escrito sobre direito de propriedade, regulação, tokenização de activos e auto-execução, entre outros temas desafiantes, mas ainda não tinha escrito sobre a blockchain que é afinal a base tecnológica da 4ª revolução industrial.
A blockchain não é nenhum bicho-papão, nem é mais complexa que as bases de dados, sistemas operativos, ou aplicações de nos rodeiam actualmente. Aliás, todas as componentes da sua tecnologia já existiam antes, mas não agregadas da forma genial que a pessoa, ou equipa, conseguiu com a primeira blockchain em funcionamento no início de 2009: a blockchain da bitcoin. Tal como não temos de conhecer todos os detalhes de um automóvel para o conduzir, nem sobre as estruturas de dados que suportam as nossos sistemas computacionais para os utilizar, apenas temos de saber para que serve e como usar a blockchain.
A blockchain não é uma base de dados. É um sistema criptográfico distribuído que executa e auto-executa transacções para todos os seus utilizadores. Poderia terminar o artigo por aqui se os leitores fossem colegas doutorados em sistemas distribuídos, porém, se o fossem, não o estariam provavelmente a ler.
A criptografia da blockchain é baseada em assinaturas digitais, as mesmas que podem hoje substituir os nossos documentos pessoais perante as autoridades, ou dar valor contratual a um documento desmaterializado. Pois bem, são elas que dão vida aos famosos tokens.
O que é um token?
Um token é um cofre com dados e com as propriedades dinâmicas destes mesmos dados numa blockchain. Cada token tem um endereço público (public key) e só pode ser manipulado com a chave secreta correspondente (private key). Comparando com um banco, o endereço público do token é o equivalente a um IBAN, e a chave secreta é equivalente à nossa password. Porém, enquanto um IBAN é gerado pelo banco, e depois nós é que escolhemos a respectiva password, com um token, somos nós os utilizadores a definir ambos ao mesmo tempo, e funciona da seguinte forma.
Primeiro, temos de ter instalada uma aplicação, uma wallet, preparada para trabalhar com a respectiva blockchain. É uma aplicação semelhante às que já usamos nos nossos smartphones para guardar bilhetes de avião ou dinheiro electrónico, e espera-se que também venham a ser capazes de armazenar chaves criptográficas.
Há wallets para todos os gostos, podendo estar instaladas no computador, na Cloud, no smartphone, ou assumir a forma de um pequeno dispositivo físico. Assim, a nossa wallet vai gerar ao mesmo tempo a chave pública do token (public key), o tal endereço aleatório criptográfico, e a chave privada (private key) que vai permanecer secreta. Por exemplo, ao criarmos um token na blockchain da Bitcoin, podemos revelar o seu endereço público (public key) a toda a gente para nos enviarem bitcoins, tal como o IBAN de uma conta bancária. Mas só quem tiver a chave secreta (private key) desse token é que o pode gastar, ou seja, só nós mesmos, através da wallet que o criou.
O mais interessante é que a chave secreta usada para acionar o token nunca vai sair da nossa wallet, pois o que vai desbloquear a transacção é uma assinatura digital produzida a partir da chave secreta, a provar que detemos a chave privada. O endereço público pode ser partilhado livremente sem qualquer risco, pois mais ninguém tem acesso à chave privada que lhe dá origem. Utilizar um token é, portanto, muito mais seguro que qualquer mecanismo baseado em passwords porque uma assinatura digital nunca desvenda a chave privada que lhe deu origem. Consequentemente, com os tokens, só temos de proteger a wallet onde residem as nossas chaves secretas, pois é essa a única fragilidade que tem levado ao furto de criptoactivos.
Mas então todos os utilizadores podem gerar livremente endereços na blockchain sem qualquer coordenação e sem correr o risco de aparecerem espontaneamente dois endereços iguais? A resposta é sim, porque a probabilidade é infinitamente pequena (na criptografia usada na blockchain da bitcoin é 1 para 10 elevado a 256, para ser mais exacto).
Em suma, uma blockchain é um repositório dinâmico de tokens cuja utilização passa por uma identificação digital assente exclusivamente em criptografia, i.e., assinaturas digitais. Porém, mais do que um simples repositório de informação, são as propriedades dinâmicas dos tokens que caracterizam a blockchain: os smart contracts que se explicam mais à frente.
Um token não é, portanto, definido como uma representação de bens ou direitos, como já vi erradamente escrito. O valor legal que um token possa vir a ter, para representar seja o que for, vai depender do ordenamento jurídico, tal como já discutido aqui anteriormente.
Mas porque se chama blockchain?
Esta é fácil: porque é uma cadeia de blocos. Para tornar o sistema o mais eficiente possível, todas as transacções são guardadas e gravadas sequencialmente em blocos, em vez dessa gravação ser feita transacção a transacção. Por exemplo, na bitcoin, cada bloco tem a dimensão de 1 MB e guarda até 3.000 transacções. Cada bloco é codificado e assinado com chaves criptográficas, assim como todas as transacções e tudo o mais na blockchain. Como cada bloco aponta para o anterior, constrói-se assim uma cadeia de blocos com todas as transacções e endereços de tudo o que lá está armazenado, daí o seu nome.
Mas porquê armazenar as transacções numa cadeia sequencial de blocos e não numa base de dados como habitualmente?
A ‘block chain’ não é descentralizada, é distribuída
Muitas enormidades se têm escrito sobre a blockchain, e algumas delas começam por referir que é um sistema descentralizado, o que me deixa sempre com os nervos em franja. Não é. É um sistema distribuído e a diferença é abismal. Só quem não percebe nada do assunto é que pode escrever tamanhas barbaridades.
Todos os endereços e todas as transacções na blockchain têm a sua informação armazenada nos tokens, construindo uma espécie de livro-razão. O que caracteriza a blockchain é o facto de todas as versões desses tokens serem imutáveis e persistentes, estando replicadas pelos computadores que dão vida ao sistema, cada um com uma cópia exacta de todas essas versões. É por isso que a blockchain é de facto um sistema distribuído, porque se comporta como se fosse centralizado, mas não é J. Confuso? Eu explico.
Num sistema centralizado todos os seus utilizadores veem apenas um único repositório de informação, o qual se mantém coerente da forma mais simples possível. Uma transferência? Basta retirar um valor a uma conta e aumentar exactamente o mesmo noutra, tudo dentro da mesma transacção e no mesmo computador. Não há mais simples. Então e se as contas residirem em dois bancos? Nesse caso, o sistema já não é centralizado, mas descentralizado, pois a informação tem de residir em dois repositórios de dados independentes e pertencentes a entidades distintas.
Depois, é a regulação que garante as propriedades do sistema financeiro descentralizado para manter a coerência entre todos os participantes. Mas se em vez de descentralizado o sistema for distribuído, com as propriedades impostas pelo regulador (quando eu era tecnólogo, chamava-lhes invariantes da máquina de estados), a sua execução comporta-se como centralizado, porque apresenta um único estado para todos os utilizadores.
Assim, com um sistema distribuído, uma transferência entre bancos já não acontece entre repositórios de dados independentes, mas num só sistema partilhado entre todos eles como se de um único computador se tratasse. Só não lhe chamamos centralizado porque o sistema é composto por múltiplos computadores, todos replicando a mesma imagem, todos com o mesmo estado, ou seja, é distribuído. Repito: a blockchain não é descentralizada, como se tem afirmado erradamente, nem há versões centralizadas da mesma (nem no caso da Libra/Diem como já vi escrito por quem perdeu a oportunidade de não escrever asneiras).
Mas um sistema distribuído é muito mais lento e muito mais caro. Quais a suas vantagens então? Não depender de nenhuma entidade em particular, garantindo, no entanto, a execução e a auto-execução das transacções para todos os membros do ecossistema. Antes do aparecimento da Blockchain, as transacções entre várias entidades só podiam ser executadas com sistemas descentralizados, porque, segundo a lei, cada entidade tem de ser responsável pela informação que gere. Consequentemente, a descentralização foi o modelo natural subjacente à evolução da economia incumbente, e é por isso que precisamos de uma regulação tão complexa como a de hoje, pois cruza sectores, países, e até ordenamentos jurídicos. Tudo descentralizado.
Mas o mundo está a mudar. Com o aparecimento do primeiro ecossistema distribuído (i.e., a blockchain), as regras são outras, em particular, a confiança no sistema! É que num sistema descentralizado, qualquer das suas componentes pode falhar, seja por questões técnicas, seja pura e simplesmente porque uma das entidades pode ser desonesta, e depois que venham os tribunais resolver a questão. Já um sistema distribuído é tolerante a todas as falhas individuais, sejam elas quais forem. É tão eficaz e seguro que deu origem ao mundo aos ecossistemas que suportam, por exemplo, os criptoactivos.
Por que razão estará que a China a experimentar a sua CBDC? Para que servirá verdadeiramente o Euro Digital, já anunciado pelo Banco Central Europeu para daqui a dois anos?
O que são ‘smart contracts’?
A blockchain não é apenas armazém de informação, mas repositório autónomo de auto-execução funcional. É uma propriedade incrível e verdadeiramente nova que vai desenvolver as economias com novos ecossistemas. Já sabemos que a criptografia é a forma de garantir a integridade de toda a informação, para além de permitir uma interacção muito conveniente, incluindo a validação de todas as credenciais. Porém, é a auto-execução que vai mudar o mundo. Mas porquê?
Auto-execução significa que as transacções são executadas quando tiverem lugar as condições programadas no sistema, e é esta a definição dos smart contracts, ou contratos inteligentes em português. As transacções são ditas smart (inteligentes) por serem auto-executáveis, e são um contract (contrato) porque a execução acontece inelutavelmente para todas as partes envolvidas, sendo a execução automática de direitos um exemplo particularmente feliz.
Os smart contracts são, afinal, as propriedades dinâmicas dos tokens já referidas! A assinatura digital gerada pela nossa chave secreta vai executar o smart contract do token correspondente, o único que pode actuar sobre os dados que contém.
Curiosamente, este conceito particular de auto-execução já tem mais de 20 anos, porém, antes do aparecimento da Blockchain, tinha de ficar a cargo de uma entidade específica, limitando extraordinariamente a criação de valor, razão pela qual terá permanecido no esquecimento.
Hoje, o sistema distribuído e resiliente da blockchain oferece o serviço de auto-execução a uma comunidade de utilizadores para as transacções que estes realizam entre si sem estar sob controlo de ninguém. É que blockchain tanto pode ser pública como privada, mas tem sempre vida própria. A 4ª revolução industrial em curso assenta precisamente na garantia de auto-execução independente e segura, e é a primeira vez na história da humanidade que tal é possível. Porém, os smart contracts só terão o valor de verdadeiros contratos quando forem reconhecidos pela lei. Grande é o desafio para os legisladores e reguladores.
E pronto. Como utilizadores, é isto que temos de saber da blockchain: (i) que a interacção com a mesma é feita através de chaves criptográficas, a que chamamos tokens, (ii) que o armazenamento de toda a informação também está codificado com chaves criptográficas, (iii) que, para além de dados, podem lá ser armazenadas transacções, e (iv) que estas são auto-executáveis para todos os elementos do ecossistema. Claro que temos curiosidade em saber como tudo isto é tecnicamente possível e é por isso que se fala de conceitos como mineração, consenso e forks, entre outros, o que será tema para uma futura reflexão.
O autor escreve de acordo com a antiga ortografia.