O que é a Blockchain? O comediante americano Stephen Colbert diz que “é ouro para os nerds”. Bem, os nerds são agora os caras mais populares do pedaço, e a tecnologia da Blockchain está a tornar-se uma das tendências mais proeminentes em finanças e inovação digital desde a criação da Internet.
Blockchains são bases de dados. Ao invés de serem armazenadas num servidor central ao qual todos os utilizadores têm acesso, os registos das blockchains são armazenados nos computadores dos utilizadores em todo o mundo. Isto torna a blockchain uma base de dados distribuída com uma arquitetura peer-to-peer. “Distribuído” significa que os dados são armazenados em múltiplos locais e “peer-to-peer” quer dizer que não existe uma autoridade central que possua uma cópia matriz dos dados.
A blockchain Bitcoin de Satoshi Nakamoto não é a primeira base de dados distribuída e não é a primeira base de dados peer-to-peer. Não é a primeira blockchain. Mas serve de base para a primeira criptomoeda moderna e é o ponto de partida para as blockchains que vieram em seguida.
Como funciona a Blockchain?
Imagine que queremos armazenar dados sobre uma mão de póquer numa base de dados. Vamos começar por atribuir um número a cada carta do baralho: 1 é o ás de espadas, 2 é o 2 de espadas, 3 é o 3 de espadas, até ao 52, o rei de copas. A sua mão pode assemelhar-se a esta:
Registo | Valor das cartas |
---|---|
1 | 12 |
2 | 44 |
3 | 4 |
4 | 31 |
5 | 27 |
Imagine os números registados como os números das linhas numa folha de cálculo. Os programadores de bases de dados chamam-lhes registos, e os programadores de blockchains de chamam-lhes blocks (blocos). Linha, registo, bloco — todos eles se referem a um único pedaço de dados.
A mão do seu adversário ocuparia as linhas 6–10, outra mão poderia ser armazenada em 11–15, e assim por diante. Assim, se quiser especificar de que mão está a falar, basta dizer à base de dados qual a linha que contém a primeira carta.
Elos de uma Corrente
Claro que, numa base de dados distribuída peer-to-peer, outros utilizadores podem estar a distribuir cartas ao mesmo tempo, em que o utilizador está. É pouco provável que as suas cartas apareçam em filas consecutivas. Por isso, podemos adicionar ponteiros às cartas anteriores e seguintes para ligar os dados numa cadeia(ou corrente):
Registo | Valor das cartas | Carta anterior | Carta seguinte |
---|---|---|---|
15 | 12 | 0 | 37 |
37 | 44 | 15 | 118 |
118 | 4 | 37 | 121 |
121 | 31 | 118 | 199 |
199 | 27 | 121 | 999 |
A primeira carta da sua mão é guardada na linha 15. O valor da carta é 12, o que faz dela a rainha de espadas. Não há nenhuma linha anterior à sua mão, por isso, colocamos um 0 na coluna “Carta Ant”. A carta seguinte é guardada na linha 37.
Então olhamos para a linha 37. Que também representa uma única carta, aponta para a linha onde a carta anterior pode ser encontrada (15) e aponta para a carta seguinte, que é armazenada na linha 118.
Nas ciências da computação, esta estrutura é conhecida como uma lista duplamente ligada porque liga tanto para a frente como para trás. As referências são armazenadas na base de dados como dados com os valores das cartas.
Proteger os dados
Não há nada que nos impeça — ou aos hackers — de alterar os valores das cartas. Esta base de dados torna a fraude fácil. Qualquer pessoa com acesso à base de dados pode alterar os valores das primeiras quatro cartas da sua mão para 1, 14, 27, 40 — ou seja, quatro ases.
Para nos protegermos contra erros de dados e hackers, podemos adicionar uma coluna. Para cada linha, adicionaremos uma coluna que contém a soma dos valores das cartas, como esta:
Registo | Valor das cartas | Carta anterior | Carta seguinte | Checksum |
---|---|---|---|---|
15 | 12 | 0 | 37 | 12 |
37 | 44 | 15 | 118 | 56 |
118 | 4 | 37 | 121 | 48 |
121 | 31 | 118 | 199 | 35 |
199 | 27 | 121 | 999 | 58 |
Vejamos como isto funciona? Para a nossa segunda carta, o valor do checksum é 56, que é a soma dos valores das duas primeiras cartas, 12 e 44. O checksum para a carta três é a soma das duas cartas seguintes. Sempre que lemos o valor de uma carta, podemos calcular o checksum e compará-lo com o checksum armazenado na base de dados. Se não forem os mesmos, sabemos que os dados foram adulterados.
Os chips de memória dentro do seu computador e smartphone detetam erros ao utilizar este sistema. Este sistema é também utilizado para encontrar erros no seu disco rígido.
Este simples sistema de checksum é uma parte essencial da tecnologia blockchain. Bem conhecido pelos estudantes de ciências da computação do primeiro ano.
Também é incrivelmente vulnerável aos hackers. Qualquer pessoa que tenha direitos de acesso suficientes para alterar os valores dos cartões pode também alterar os checksums para encobrir o seu trabalho. Ou o hacker poderia alterar as indicações de “ carta anterior” e “ carta seguinte” para substituir uma carta na sua mão por uma carta guardada numa fila diferente.
Nakamoto antecipou estas vulnerabilidades na sua arquitetura blockchain. Em vez de empregar uma simples adição para criar checksums e rastrear elos na cadeia de dados, utilizou um processo criptográfico chamado “hashing”.
Hashing e Encriptação
Hashing cria um identificador único ao combinar o valor do registo anterior com o valor do registo atual num processo matemático unidirecional resultando num valor hash como 06C4D99F32047. É chamado de processo matemático unidirecional porque não existe um processo matemático correspondente para transformar 06C4D99F32047 de novo nos dados originais.
Numa blockchain, o valor hash de cada bloco é baseado no valor hash do bloco anterior, que se baseia no valor hash do bloco anterior, até ao bloco 0 de Nakamoto. Pode-se calcular o valor hash para qualquer bloco e compará-lo com o valor hash que é armazenado no bloco. Se não corresponderem, os dados foram adulterados.
Numa base de dados convencional, pode-se manipular dados, depois calcular novos valores de hash e introduzi-los em blocos ou registos subsequentes para esconder os efeitos. Isto não funciona com uma base de dados de blockchain distribuída ponto a ponto, porque o hacker teria de alterar simultaneamente cópias da base de dados que são armazenadas em centenas ou milhares de computadores.
Uma consequência é que, embora seja possível adicionar novos blocos de dados à blockchain, os blocos anteriores não podem ser apagados ou alterados. Isto significa que não se pode enviar $100.000 em Bitcoin e apagar a transação.
Cada transação na blockchain é validada a utilizar este mecanismo de hash.
Além disso, Nakamoto estabeleceu a encriptação para assegurar que os dados armazenados na blockchain seriam visíveis por todos os utilizadores, mas decifráveis apenas por aqueles que tivessem as chaves de desencriptação adequadas. Sem a chave, tudo o que se vê é um fluxo de caracteres sem sentido.
O poder da tecnologia Blockchain
A tecnologia blockchain torna os dados privados, permanentes, e verificáveis. O registo de dados e transações é público, mas a encriptação protege-o de olhares curiosos e de alterações. É por isso que a blockchain Bitcoin é frequentemente referida como o “livro-razão aberto” da Bitcoin.
Tudo isso, o hashing e a encriptação, exige muitos recursos computacionais. É lento. A nível mundial, toda a rede de cadeias de bloqueio Bitcoin está limitada ao processamento de 4,6 transações por segundo. As empresas de cartões de crédito processam rotineiramente uma média de 1.700 TPS e afirmam ser capazes de processar 56.000 TPS. O limite de 4,6 TPS é a principal fonte do problema de escalabilidade da cadeia Bitcoin. Os cientistas da computação estão a trabalhar nisso.
A rede de computadores que valida as transações de Bitcoin supostamente consome mais energia elétrica do que a Suíça.
Muitos dos nós de validação de transações da Bitcoin contêm toda a blockchain, que é atualmente de cerca de 250 GB de dados. Estes nós são conhecidos como nós completos. A rede também inclui nós SPV que realizam verificação de pagamento simplificada. Não existe uma forma simples de contar os nós. Um website chamado Bitnodes fornece uma contagem atualizada dos nós online acessíveis. Uma pesquisa rápida no Google demonstra que os especialistas fornecem estimativas do número de nós que vão de 6.000 a 200.000. Ninguém sabe realmente quantos são.
Tudo sobre Ethereum
A blockchain mais utilizada é a Ethereum, que inclui modificações que a tornam mais flexível do que a blockchain Bitcoin. O Ethereum tem a sua própria criptomoeda — o Ether — mas seus desenvolvedores criaram muitas criptomoedas adicionais que funcionam na blockchain Ethereum. A plataforma é também utilizada para muitas aplicações, para além de dinheiro virtual.
Um dos principais benefícios do Ethereum pode armazenar programas executáveis, para além de dados. Estes programas são conhecidos como “contratos inteligentes”. Por exemplo, um contrato inteligente para dízimo poderia somar todo o Éter adicionado à sua conta, este mês, e enviar 10% para a igreja como doação.
Assim como a blockchain Bitcoin, o Ethereum é à prova de adulteração. O relojoeiro de luxo Breitling dá aos proprietários dos seus relógios certificados digitais que provam a sua autenticidade. Se vender o relógio, pode transferir o certificado para o novo proprietário, estabelecendo uma cadeia de propriedade verificável. A tecnologia também pode ser utilizada para rastrear a proveniência dos alimentos na mercearia, rastreando cada transferência. Cada vez mais pessoas se preocupam com o fornecimento ético, e a cadeia de bloqueio pode fazer parte disso.
Em 2020, a Associated Press publicou minuto a minuto os resultados das eleições presidenciais americanas na blockchain Ethereum para criar um registo imutável da contagem oficial verificada dos votos.
A blockchain Ethereum lida com cerca de 30 TPS. Os desenvolvedores estão a trabalhar arduamente em futuras versões do Ethereum que utilizará uma técnica chamada sharding para executar múltiplas cadeias de bloqueio de uma só vez, com transações consolidadas afixadas de forma assíncrona à cadeia de bloqueio central. Os programadores esperam que novas versões da cadeia de bloqueio Ethereum tratem de até 100.000 TPS.
Porque o Ethereum executa contratos inteligentes, serve como plataforma para muitas aplicações relacionadas com a blockchain. A maioria das aplicações descentralizadas baseadas em blockchains — especialmente aplicações financeiras descentralizadas — baseiam-se na cadeia principal do Ethereum ou em blockchains privadas do Ethereum.
O Ethereum é também uma das principais escolhas para as empresas que procuram implementar economias baseadas em tokens. Por exemplo, uma empresa pode implementar um programa de fidelização no qual os clientes recebem Moedas Acme em cada compra. Depois poderia haver uma loja de presentes na qual as Moedas Acme poderiam ser trocadas por benefícios. A empresa poderia criar uma rede de empresas que também aceitem Moedas Acme, dando aos tokens um valor real embora estes não possam ser trocados por dólares ou euros.
E a especificação Ethereum ERC-721 define um protocolo para a criação de tokens não fungíveis. É o alicerce para o mercado NFT.
Outras Blockchains
Bitcoin e Ethereum são as blockchains mais utilizadas, mas existem agora centenas ou milhares mais, todas baseadas no conceito original de Nakamoto. As blockchains podem ser públicas como a blockchain Bitcoin ou privadas, utilizadas para a gestão interna de dados.
Pesquisadores têm criado muitas variações sobre a arquitetura básica da blockchain. Muitas incluem inovações para apoiar um processamento mais rápido, maior escalabilidade, ou taxas de transação mais baixas. Mecanismos de consenso, coordenação de sub-cadeia subordinada, blockchains privadas, e outras tecnologias chaves estão a ser abordadas em projetos em todo o mundo cripto.
O que é uma Blockchain? Agora Sabe
Qual é a definição de blockchain? Como funciona a tecnologia da blockchain? Esperamos que esta explicação sobre a blockchain tenha aumentado a sua compreensão e apreciação por esta notável e revolucionária arquitetura de base de dados peer-to-peer e as suas aplicações.
NOTA
O texto é informativo por natureza e não conta como uma recomendação de investimento. Não exprime a opinião pessoal do autor ou do serviço. Qualquer investimento ou negociação é arriscado, os retornos passados não são garantia de retornos futuros – arrisque apenas os activos que está disposto a perder.