O que é a Blockchain?

Blockchain e Smart Contracts

...

by Jorge Páramos, Senior Consultant. Fevereiro 2020


Blockchain e Smart Contracts

 

A tão propalada tecnologia blockchain promete segurança acrescida, maior fiabilidade e transparência. Mais de uma década após o seu aparecimento, tem vindo a adquirir expressão no mundo dos negócios, com a utilização crescente de contratos inteligentes (smart contracts), cripto-moedas e outras ferramentas: como qualquer buzzword, é importante ter uma visão geral dos seus princípios de funcionamento, vantagens e riscos.

 

O que é a Blockchain?

Esta tecnologia foi conceptualizada em 2008 por Satoshi Nakamoto, pseudónimo de um indivíduo ou grupo cuja verdadeira identidade é desconhecida; foi implementada pela primeira vez no ano seguinte, com a criação da primeira cripto-moeda, a Bitcoin. Os seus fundamentos teóricos remontam à pesquisa científica iniciada em 1991 na Bell Communications Research.

Como o nome indica, a blockchain consiste numa cadeia formada de blocos: cada bloco contém dados guardados num formato facilmente acessível (e.g. texto simples) referente ao objeto de interesse — que pode ir de transações comerciais a votos ou dados pessoais.

Como nos restantes sistemas peer to peer existentes para partilha de documentos, não há um agente central que detém a blockchain, mas existe uma cópia desta em cada um dos pares da rede. Sempre que uma nova transação é realizada, os detalhes desta são acrescentados ao último bloco da cadeia, e esta é disseminada pela rede, permitindo que os pares atualizem a sua cópia. Como a informação contida na cadeia de blocos é aberta, para verificar que uma transação decorreu conforme esperado (e.g. se um pagamento foi efetuado) basta verificar a informação no bloco correspondente.

 

Porquê é uma tecnolgia de grande segurança?

 

Mecanismo de consenso

Além de um funcionamento descentralizado e aberto, a caraterística mais marcante da blockchain é a sua grande segurança: esta resulta não da confiança em mediadores, mas da própria arquitetura do sistema. Como a blockchain é aberta, a segurança não se baseia em técnicas de encriptação da informação das transações, nem em controlo de acesso via palavras-chave rebuscadas ou registos biométricos.

Numa blockchain, a verificação de determinada transação (e.g. se o dinheiro para pagar uma pizza foi creditado à loja, que pode assim enviá-la para casa do comprador) é feita através de um mecanismo de consenso: os vários pares da rede são anónimos (identificados apenas por uma handle, não pelo nome ou outros dados pessoais), não se conhecem nem têm confiança mútua, pelo que o sistema está desenhado para confiar na maioria.

Assim, se em 100 pares, 70 tiverem guardada no seu computador uma cópia da blockchain que indica que a pizza foi paga e 30 tiverem outra cópia sem esta transação, o protocolo valida a sua ocorrência e determina que as 30 copias corrompidas sejam ignoradas e substituídas pela versão correcta.

 

A matemática dos blocos

O elemento fundamental para a segurança deste mecanismo de consenso é a existência de uma hash (por bloco e da cadeia como um todo). Uma hash é um número calculado a partir do conteúdo que se pretende salvaguardar: como exemplo, utilizando um algoritmo muito simples em que cada palavra corresponde à soma das posições no alfabeto das suas letras, à palavra "Olá" corresponde a hash 28 (O = 15, L = 12, A = 1). Algoritmos de hashing mais complexo produzem hastes mais difíceis de calcular (i.e. com maior tempo de computação): se multiplicar as posições das letras a hash será 15 x 12 x 1 = 180, e se fizer potências consecutivas obtém-se 15 elevado a 12 elevado a 1 = 129746337890625.

Uma hash deve ser única, isto é, conteúdos diferentes não podem dar origem ao mesmo valor. Nos exemplos simples acima tal não é verificado: a palavra "LOA" tem a mesma hash por soma ou multiplicação posicional (12 + 15 + 1 = 28 e 12 x 15 x 1 = 180); embora não tenha o mesmo valor por potências posicionais (12 elevado a 15 elevado a 1 = 15407021574586368), a palavra "OEC" produz a mesma hash (12 elevado a 5 elevado a 3 = 15407021574586368).

Por essa razão, são utilizados cálculos muito mais complexos, garantindo com uma enorme probabilidade que não há colisões, isto é, que é quase impossível dois conteúdos diferentes darem origem ao mesmo valor de hash.

Numa blockchain, são utilizadas hashes de 256 bits: tal significa que o valor de cada hash é um número até 2 elevado a 256; este número é tão grande que precisamos de 78 algarismos decimais para o representar, sendo por isso habitual exprimi-lo em base hexadecimal (um sistema com 16 símbolos, que utiliza os 10 algarismos decimais e às 6 letras consecutivas A a F): seguindo o algoritmo SHA-256, a hash deste documento até este ponto é 61214e205d14ad2bc77a28a567efc3513a486393dd43a454cb6bc40e2cd9698a.

Como é que a existência de uma hash garante a segurança da blockchain? Imaginemos que não existia uma hash associada aos blocos e à cadeia como um todo: era fácil produzir uma versão adulterada da blockchain (editando-a e apagando ou modificando transações); consoante o número de pares conectados connosco, seria possível que esta modificação fraudulenta fosse disseminada por mais de metade da rede, passando o mecanismo de consenso a considerá-la como correcta.

No entanto, cada bloco tem uma hash que reflecte o seu conteúdo, bem como a hash de todos os blocos que o antecederam na cadeia. Assim, suponhamos que um agente malicioso deseja alterar o registo de uma transação: primeiro, tem de alterar o bloco correspondente e calcular a sua hash; depois, tem de alterar o bloco seguinte, já que a hash da cadeia que o antecede mudou; no entanto, tal muda o conteúdo deste bloco, pelo que terá de recalcular a hash do bloco posterior, até chegar ao bloco mais recente. Tal requer uma capacidade de computação hercúlea, e como novos blocos são adicionados à rede com grande frequência (aprox. de 10 em 10 minutos, para a Bitcoin), é impossível alterar e disseminar toda uma cadeia de blocos antes que esta fique desactualizada. Deste modo, não só a blockchain é praticamente inviolável, como se torna mais segura com o tempo e o aumento do comprimento da cadeia

 

Prova de Trabalho

Mas o que impede a criação de blocos com conteúdo fraudulento no bloco mais recente da cadeia? Se alguém comprar online uns ténis nos últimos 2 minutos e registar a transferência do pagamento numa blockchain com 100 pares, o que impediria um vendedor mal intencionado de a alterar, omitindo a transação no último bloco, podendo assim exigir novamente o pagamento? Bastaria registar 101 novos pares na rede (o que é possível com um só computador) com a cópia fraudulenta da cadeia de blocos, que passaria a ser considerada correcta pelo mecanismo de consenso.

Para impedir esta situação abusiva, a blockchain requer a cada par da rede a chamada Prova de Trabalho (PoW: Proof of Work): a execução de cálculos computacionais muito complexos e morosos no computador sempre que se quer criar um novo bloco (com a respectiva hash) ou juntar um novo par à rede.

Os algoritmos de hashing apresentados como exemplo são demasiado simples para constituir um desafio: de um modo simplificado, a blockchain da Bitcoin utiliza o algoritmo Hashcash, que permite a criação (ou, em jargão técnico, mineração) de um novo bloco através da aplicação consecutiva do algoritmo de hashing SHA-256; este é relativamente rápido quando executado apenas uma vez, mas o algoritmo Hashcash repete-o até que o resultado cumpra um conjunto restrito de critérios, aumentando assim a sua dificuldade e tempo de execução.

Há uma década, um computador portátil conseguia minerar um bloco com facilidade. No entanto, a complexidade da Prova de Trabalho aumenta com o poder computacional e número de pares da rede: o tempo actual para completar a Prova de Trabalho é da ordem de 10 minutos, recorrendo a hardware específico para o efeito — normalmente, conjuntos de várias placas gráficas a operar em paralelo via programas dedicados, ou computadores utilizando circuitos integrados adaptados à função (ASIC: Application-Speficic Integrated Circuits). Tal tem limitado a participação de novos membros na mineração de Bitcoin, que está cada vez mais dominada por "quintas" de computadores com complexos sistemas de climatização e energia.

Assim, é praticamente impossível executar um chamado "ataque de 51%" na rede: os recursos necessários para dominar o poder computacional da rede (ou seja, gerar novos blocos fraudulentos mais depressa que todos os restantes pares da rede) é gigantesco e o custo associado em energia, hardware e sistemas de apoio negaria qualquer vantagem daí decorrente.

 

Aplicações: smart contracts, cripto-moedas…

Uma blockchain pode ser utilizada em qualquer aplicação em que transações sejam realizadas e se deseje um sistema em que estas ficam salvaguardadas, são verificáveis por ambas as partes sem intervenção de terceiros e não são reversíveis (impedindo, por exemplo, o cancelamento de pagamentos após recepção do bem).

Assim, o uso de uma blockchain é cada vez mais disseminado no âmbito da celebração de contratos e acordos entre partes: são os chamados smart contracts.  Esta pode ser também utilizada na validação e conciliação de contagens de utilização de utilidades (e.g. água ou eletricidade), garantindo a transparência a clientes em situações de litígio com o fornecedor do serviço.

Embora habitualmente confundidas, as cripto-moedas não utilizam obrigatoriamente uma blockchain: a maioria fá-lo porque, tendo o objectivo de facilitar transações seguras, a sua implementação sobre uma blockchain é natural. Na sua génese, o seu uso era também associado a uma visão libertária que criticava a base do sistema financeiro vigente, i.e. a autoridade central dos governos enquanto emissores de moeda e moderadores do seu volume em circulação.

A cripto-moeda baseada em blockchain mais famosa é a Bitcoin (BTC), tendo outras implementações surgido entretanto (e.g. Ethereum, Litecoin) como variações sobre as regras aqui expostas. As criptomoedas podem ser compradas num mercado (e.g. Bitcoin Exchange, como o Coinbase), ou mineradas directamente: no último caso, em vez de se trocar outra moeda (euros, dólares, etc.) pela cripto-moeda, esta é atribuída directamente a quem se torne par da rede e demonstre a Prova de Trabalho necessário.

Além de outras diferenças técnicas, a Bitcoin foi criada já com um limite máximo ao número em circulação: cada vez que 210 mil novos blocos são adicionados à cadeia, a recompensa em Bitcoin por cada novo bloco minerado reduz-se para metade do seu valor anterior (o chamado Halvening).

Atualmente existem mais de 600 mil blocos na cadeia, aproximando-se o 3ª Halvening: inicialmente, cada bloco minerado atribuía uma recompensa de 50 BTC; esta baixou para 25 BTC em 2012 e para o valor atual de 12.5 BTC em 2016; muito em breve, a recompensa será de apenas 6.25 BTC (estima-se que a partir de Maio deste ano). Prevê-se que em 2040 a quantidade de Bitcoins estabilize num valor muito próximo do limite máximo estipulado de 21 milhões. Este mecanismo foi criado por Satoshi Nakamoto para combater pressões inflacionárias sobre a moeda, pretendendo que a quantidade de moeda existente acompanhe o número de utilizadores, garantindo a estabilidade dos preços.

 

Críticos e defensores

Estas e outras considerações mostram que a criação de uma cripto-moeda não obedece apenas a critérios técnicos, mas traduz também a perspetiva dos seus criadores e apoiantes sobre o modo de funcionamento das economias modernas: para muitos adeptos do uso das cripto-moedas, a existência de uma base monetária fixa é salutar e impede bolhas especulativas ou a criação de "dinheiro grátis" pelos bancos emissores de moeda.

Os críticos — incluindo muitos economistas — afirmam que criar uma moeda com quantidade fixa (mesmo que esta seja apenas atingida passado algumas décadas) anula a capacidade moderadora dos governos, que regulam a economia através da expansão da base monetária, emitindo moeda: muitos comparam a perspetiva financeira por trás da Bitcoin com o antigo sistema do padrão-ouro, em que várias moedas do mundo estavam indexadas a quantidades definidas de metais preciosos e havia reduzida liberdade cambial.

Em resposta, muitos apoiantes da Bitcoin defendem que os governos não têm utilizado o seu poder de intervenção a bem das populações, mas dos grandes interesses empresariais; entre outros casos, invocam como prova as políticas implementadas pelo Fundo Monetário Internacional em vários países, onde o aumento de competitividade resultante da desvalorização da moeda (que torna o investimento externo mais barato e fácil) pode não compensar a redução de poder de compra local. De facto, uma discussão sobre cripto-moedas não é terreno exclusivo de geeks, mas pode rapidamente transformar-se numa acalorada troca de argumentos políticos e acusações ideológicas.

Mais pragmaticamente, muitos consideram que a Bitcoin e outras cripto-moedas facilitam a proliferação de transações anónimas no mercado negro, sendo muito utilizadas em negócios envolvendo drogas ou outro tipo de comércio ilegal. Os críticos alegam também que a esperada adoção da Bitcoin pelo público em geral não ocorreu, e que esta se tornou num bem especulativo, aproveitando o hype que a rodeia e correspondente valorização: defendem por isso que o valor natural da Bitcoin é muito abaixo do atual, e que existe uma bolha especulativa em torno das cripto-moedas — que irá inevitavelmente rebentar.

Muitos adeptos destas novas ferramentas defendem que tal situação será ultrapassada pela crescente utilização das cripto-moedas em transações legais e corriqueiras, baixando e estabilizando progressivamente o seu valor. Por seu lado, os críticos apontam a impossibilidade desta transição, já que o público em geral não quer utilizar uma reserva de valor com significativas flutuações diárias.

Outra crítica, e possivelmente uma das mais difíceis de rebater, invoca o impacto ambiental da mineração de novos blocos da cadeia: atualmente a energia elétrica gasta na mineração de um bloco é suficiente para alimentar uma casa portuguesa durante mais de um mês, e a dificuldade crescente em fazê-lo implica que este consumo continuará a aumentar.

Uma ferramenta da Universidade de Cambridge permite monitorizar o consumo energético e compará-lo com vários cenários de utilização: em particular, o conjunto global de mineiros de Bitcoin já gasta quase 83 TeraWatt-hora por ano (uma potência instantânea de quase 10 GigaWatt), mais energia que a Bélgica e quase o dobro de Portugal! Estima-se que nos próximos anos a mineração de Bitcoin consuma 1% de toda a energia produzida mundialmente.

 

Conclusão

Longe destas polémicas, muitas empresas decidiram adotar a blockchain ou, pelo menos, desenvolver sistemas com caraterísticas semelhantes. Em alguns casos nota-se o efeito bandwagon associado à proliferação de novas tecnologias: protocolos para uso interno das organizações que adotam uma cadeia de blocos fechada e com confiança explícita entre pares (ou seja, sem a necessidade de Prova de Trabalho ou mecanismo de consenso) são apresentados como blockchain, sem chamar a atenção para os diferentes pressupostos e potenciais falhas de segurança.

Entre a volatilidade das cripto-moedas, as batalhas ideológicas e o entusiasmo crescente de várias indústrias, é seguro afirmar que os conceitos subjacentes à blockchain estarão presentes em muitas tecnologias utilizadas nas próximas décadas — com os maiores ganhadores a serem aqueles que integrarem as suas potencialidades nos processos pré-existentes nas organizações.

 

 

Jorge Páramos

Senior Consultant na LCG

 

 

Referências

  1. Blockchain explained, http://graphics.reuters.com/TECHNOLOGY-BLOCKCHAIN/010070P11GN/index.html
  2. What is bitcoin? Here's everything you need to know, www.cnet.com/g00/how-to/what-is-bitcoin/?i10c.ua=4&i10c.encReferrer=aHR0cHM6Ly93d3cuZ29vZ2xlLnB0Lw%3d%3d&i10c.dv=16
  3. Bitcoin Traders Feel Fever of ‘Halvening’ Months Ahead of Date, www.bloomberg.com/news/articles/2020-01-08/bitcoin-halvening-isn-t-until-may-but-nothing-else-matters-now
  4. Nakamoto Institute, nakamotoinstitute.org