O que é Blockchain e como funciona?

O que é Blockchain e como funciona?

Para muitas pessoas, o termo Blockchain parece envolto em muitas dúvidas: seria um techo de código? Uma linguagem de programação? Um framework? Ou quem sabe ainda uma corporação muito poderosa que lida com Bitcoin? Na verdade, é muito mais simples (ou complexo) que isso: em resumo, Blockchain é um conceito. E um conceito muito bem definido, que carrega em si a premissa de ser, ao mesmo tempo, digital, distribuído, descentralizado e também um ledger dentro de uma rede.

Ledger? Mas o que é isso? Como detalharemos ao longo deste artigo, “ledger” embute a ideia do “livro razão”, que na Contabilidade diz respeito ao controle de registros contábeis individualizados. Mas, apesar dessa analogia, antes que você associe Blockchain direta ou unicamente a moeda virtual, devemos lembrar que é um conceito capaz de lidar com inúmeros outros casos comerciais de uso, como veremos a seguir.

Introdução


A primeira coisa que uma Blockchain deve possuir é um bloco, como diz o nome, capaz de guardar um dado dentro dele, normalmente um único tipo de dado. Ao unir os blocos, temos uma “cadeia de blocos” - que vem da derivação “chain”, em inglês - sendo que todo bloco tem necessariamente relação com o próximo bloco da cadeia. Cada bloco possui também uma espécie de “ID”, ou uma identificação numérica a que chamamos de token, e que por sua vez funciona como uma referência para o token anterior a ele.

Na medida em que novos blocos vão surgindo na cadeia, os números de identificação também vão mudando, sendo que o próximo ID será totalmente referente ao anterior. Isso é fundamental dentro do conceito de Blockchain: imagine que, em uma cadeia contendo 4 blocos, alguém do bloco 3 (ou mesmo um hacker) tenha a intenção de alterar o dado disponível no bloco 2. Tão logo faça isso, seu token também será alterado. Consequentemente, quando ele tentar acessar a rede, o token do bloco 2 e o do bloco 4 perderão a referência da sequência na chain de blocos. Por conta disso, a pessoa que tentou alterar a transação também não conseguirá mais acessar a rede.

Por outro lado, é fundamental que haja uma chain de blocos, para que seja possível armazenar todos os dados que circulam na rede; também é essencial que os dados sejam sempre estáticos e crípticos: ou seja, uma vez salvos, nunca poderão ser alterados. A Blockchain precisa dessa base para poder existir. Todo bloco depende do anterior, e é muito difícil descobrir o hash do próximo bloco (o ID). Essa descoberta é determinística, ou seja, fornecerá sempre o mesmo resultado. Descoberto o ID, no entanto, é muito fácil validar se é o ID correto.

Toda essa corrente de validação de token é o que conhecemos por mineração, quando falamos em Bitcoin, por exemplo. Ou seja, trata dos usuários da rede como um todo buscando descobrir qual seria o próximo bloco: quem está no quarto bloco tenta minerar o quinto bloco, que tenta encontrar o sexto bloco, que tenta descobrir o sétimo, e assim sucessivamente. Definido esse conceito, temos então uma tabela transacional e permanente, que não muda nunca.

Mas não para por aí.

O segundo conceito mais importante do Blockchain para que seja definido como tal, é o Consensus (consenso). Basicamente, cada bloco que compõe a chain precisa obrigatoriamente ser validado. Assim, toda vez que entra um bloco novo, os usuários precisam fazer o “broadcast” (propagação) desse item dentro da rede. Cada vez que o broadcast é rodado, as máquinas que recebem essa informação irão validar se o novo bloco realmente pertence à chain. Em caso negativo, a máquina que fez essa validação rejeitará o novo bloco, que por sua vez será rejeitado por toda a rede.

Em resumo, todos os usuários estão em rede: quando surge um novo bloco, caso sua validação seja negativa, ele será excluído da rede. E isso acontece porque todo o ecossistema deve contar com o mesmo tipo de bloco, que deverá ser idêntico e respeitar as mesmas regras dos demais blocos que compõem a Blockchain.

Proof-of-Work vs Proof-of-Stake


Existem inúmeros processos de consenso na Blockchain, sendo que os dois mais conhecidos são o “Proof-of-Work” (PoW), descrito anteriormente, e o “Proof-of-Stake” (PoS).

Talvez o mais conhecido seja justamente o PoW, utilizado para mineração de Bitcoin, onde todos os usuários da rede participam da validação de novos blocos. Basicamente, sempre que surge um bloco, cada nó da rede deverá validar e concordar, ou então discordar e rejeitar a nova entrada. Esse processo todo serve para garantir que a rede se mantenha sempre segura, íntegra e funcional.

A limitação disso é que todos os usuários na rede precisam executar a regra de validação, o que demora muito tempo e demanda bastante poder computacional (e consequente consumo de energia). Como podemos ver no exemplo muito simples da figura abaixo, a validação precisou rodar 10x, passando pelos 10 computadores em rede.

Em uma Blockchain, todos os usuários na rede precisam executar a regra de validação


Agora, vamos supor que essa validação demande 2GB de memória e 5 processadores, por exemplo. Nesse caso, serão necessários 2GB de memória e 5 processadores para cada máquina. Imagine o poder computacional somado e o gasto de energia quando se trata de milhões de máquinas em rede - essa é uma das críticas ao processo de consenso PoW. No entanto, se estamos falando de uma rede gigantesca, como é o caso do Bitcoin, um ataque 51% - quando uma única pessoa ou grupo de pessoas obtém o controle de mais de 50% do poder de hash de uma Blockchain - acaba sendo praticamente impossível de acontecer.

A título de curiosidade, a rede Bitcoin hoje é igual ou mesmo maior que todos os datacenters do Google juntos. O que significa que nem a maior empresa de tecnologia do mundo conseguiria afetar ou converter o Bitcoin em qualquer outra coisa. Essa segurança é uma das vantagens do PoW.

O consumo de energia da rede Bitcoin já ultrapassa 10TWh em 2022

Agora, para que o PoW aconteça, é necessário que cada validação seja remunerada - daí o interesse pela mineração de Bitcoin - do contrário a rede deixaria de funcionar. Ter um processo de proof-of-work interessa muito porque basicamente toda pessoa que se conectar na rede e participar da validação será remunerada por isso. Logo, é muito mais democrática também a distribuição do dinheiro. Isso significa que literalmente qualquer pessoa pode entrar e ganhar o dinheiro que estiver circulando dentro da rede.

Proof-of-Stake (PoS) é o segundo processo de consenso mais conhecido, utilizado atualmente pela rede Ethereum. Aqui o conceito funciona da seguinte forma: ao invés de todos na rede participarem da validação de novos blocos, somente usuários que possuírem 32 ETH (ou seja, muitos milhares de dólares) poderão entrar para uma lista de validadores. Assim, toda vez que essa Blockchain for alterada, apenas os nós selecionados dentro dessa premissa poderão validar; além disso, também devem chegar a um consenso de dois terços para aprovação desses novos blocos.

Os usuários em rede que estiverem entre os validadores também deverão apostar dinheiro para que o processo aconteça. No entanto, os que estiverem dentre o ⅓ da rede que rejeitou a validação irão perder o dinheiro apostado, já que estariam validando fora do consenso, o que é um forte indício de fraude no processo. Além disso, também são excluídos da lista de validadores. Outra lógica por trás do conceito de proof-of-stake é a desobrigação de passar por milhões de devices. Pela regra do Ethereum, todo bloco novo passa apenas por 128 máquinas, e só - diferentemente das milhões de máquinas que compõem a rede do Bitcoin, por exemplo.

O PoS facilita muito a descentralização da rede, uma vez que o ponto focal de validadores é distribuído. Por exemplo: imagine que hajam 1 mil máquinas na rede disponíveis para fazer a validação de novos blocos; o algoritmo do Ethereum irá escolher 128 delas aleatoriamente. Além disso, quando se tem apenas 128 máquinas validando ao invés de 1 milhão, por exemplo, o poder de processamento requerido será menor, demandando também menos gasto de energia para que isso aconteça. Já em um PoW tradicional, pode acontecer de usuários mal intencionados criarem bilhões de máquinas virtuais em uma espécie de “fábrica de Bitcoins” com o claro  intuito de desbalancear completamente a rede.

Vale lembrar que, embora existam vários algoritmos de Proof-of-Work e Proof-of-Stake, nosso intuito neste artigo é nos aprofundarmos mais no conceito de consenso e validação da rede do que no código em si.

Distribuída e descentralizada


Existem 3 tipos de máquinas que operam de forma distribuída na Blockchain, e que servem para assegurar que necessariamente todos na rede estejam “conversando entre si” dentro de um consenso. A primeira delas é o validator (validador ou também chamado de “minerador”), que é a mais conhecida de todas: trata-se do computador que entra na rede, baixa a Blockchain inteira e contempla o critério mínimo para fazer o processo de validação. Esse critério depende de rede para rede - no caso do Bitcoin, por exemplo, esse critério não existe - basta acessar a rede, baixar tudo, e pronto, virou um validador. Já para o Ethereum existem algumas regras e critérios específicos.

Validators, clients e consumers operam de forma distribuída na Blockchain

O segundo tipo de máquina é o do consumer: são os usuários que se conectam à rede. Neste caso, o usuário aponta o nó pelo qual deseja se conectar à rede, tem acesso a todo o Blockchain que essa máquina possui, faz o download, e basicamente fica por ali como uma espécie de observador. Ele não valida e não minera nada, está ali apenas para receber toda a atualização do banco de dados da rede. Voltaremos ao perfil do consumer mais adiante neste artigo, quando falarmos sobre smart contract.

Máquinas clients representam a Web3, ou seja, são as que não ficam necessariamente só na Blockchain - nada impede que elas possuam uma http para expor os dados fora da rede. Pode ser, por exemplo, um cliente Javascript, um cliente mobile, ou mesmo um cliente fora da rede que consome os dados da rede. Existem várias bibliotecas para você consumir dados da Blockchain, sem necessariamente estar na rede.

O problema aqui, como mostra a imagem abaixo, é que “todo mundo tem que ter tudo” para poder operar na rede: todo mundo tem que ter a base inteira da Blockchain, todo mundo tem que ter todos os registros e todo mundo tem que ter todos os usuários, o que significa que a base de dados só aumenta. Então toda vez que entra um bloco novo, todo mundo terá alguns megas a mais dentro da própria máquina que precisará reservar para essa finalidade. Sendo assim, se pudermos somar a quantidade de megabytes necessária para rodar a Blockchain inteira, teríamos um número gigantescamente grande:

O tamanho total da Blockchain é representada em uma função exponencial


A título de curiosidade, a rede Bitcoin conta atualmente com pouco mais de 15 mil pessoas, com EUA e Alemanha no topo da lista entre os países identificados na cadeia.

Mas, voltemos ao conceito inicial de Blockchain, que reúne transparência e descentralização com consenso distribuído, uma base imutável de registros únicos e um processo de validação aonde todos na rede garantem que a base é mesmo verdadeira. Note que não necessariamente tem a ver com moeda virtual, embora seja mais conhecida pelo uso destinado a esse fim.  

Isto posto, podemos afimar então que Blockchain é um conceito, tal qual, por analogia, uma API em desenvolvimento de software. Nenhuma API é única, cada uma funciona de um jeito. Com Blockchain é a mesma coisa: é um conceito que pode ser aplicado em alguns casos de uso. E note que interessante: nenhuma das características atribuídas à Blockchain são inerentes a ela. Algoritmos de consenso descentralizados, por exemplo, existem há muito tempo - usamos essa lógica para cloud, principalmente nos algoritmos de processamento em tempo real. E processo distribuído é o que encontramos, por exemplo, na própria internet. Portanto, os três conceitos de Blockchain - distribuída, descentralizada e transparente - já existiam, a diferença é que foram reunidos e adaptados a um contexto muito específico.

Mas o que torna a Blockchain fascinante, no fim das contas, é a tecnologia que resolve confiança. Somos capazes de aplicar na tecnologia a confiança entre múltiplas entidades, mas sem depender de um ente centralizador, ou mesmo de um ente externo. Ou seja, a Blockchain consegue resolver bem qualquer processo que exija uma validação, com “fiscais independentes” garantindo que algo está sendo feito realmente. Isso talvez explique porque associamos moeda virtual a Blockchain: simplesmente porque ela é capaz de garantir a confiança entre múltiplas identidades de forma não centralizada - exatamente como acontece com o dinheiro.

Usos comerciais da Blockchain

Já existem muitas empresas dos mais variados segmentos desenvolvendo seus serviços a partir de um conceito de Blockchain. Entre elas, destacamos algumas áreas comerciais, tais como:

Seguros

A maior aplicação no ramo de seguros é por meio dos smart contracts, que habilitam tanto do lado do cliente como da seguradora o gerenciamento de sinistros de forma muito transparente. Contratos e reclamações podem ser registrados na Blockchain e validados pela rede, eliminando reclamações inválidas sobre um mesmo acidente. Esses contratos permitem que clientes e seguradoras gerenciem sinistros de forma transparente e segura. O openIDL por exemplo, rede construída na plataforma IBM Blockchain com a American Association of Insurance Services, tem automatizado relatórios regulatórios de seguros para simplificar requisitos de conformidade.

Assistência médica

Uma questão central envolvendo dispositivos médicos conectados é o armazenamento em silos dos dados gerados por eles. A Blockchain pode conectar esses silos, considerando dados de saúde como idade, sexo e histórico de imunização ou sinais vitais. Essas informações por si só não comprometeriam a identificação ou a privacidade de um paciente em particular, mas poderiam ser armazenadas em uma Blockchain compartilhada capaz de conectar os dispositivos a esses registros médicos pessoais.

Mercado imobiliário

Nos EUA, um proprietário de imóvel vende uma casa em média a cada sete anos, sendo que uma pessoa muda de casa quase 12 vezes durante toda a vida. A Blockchain poderia servir para agilizar as vendas de casas ao fazer a rápida verificação de finanças e redução de fraudes graças à sua criptografia, além de oferecer transparência em todo o processo de compra e venda.

Plataformas de comunicação

Lançada em 2019, a Eluvio Content Fabric desenvolveu uma plataforma em Blockchain para permitir que produtores de conteúdo gerenciem e distribuam vídeos para consumidores e parceiros de negócios sem o intermédio de redes de entrega de conteúdo (CDNs). Entre seus clientes está a poderosa MGM Studios, que usa a plataforma para streaming web, mobile e TV com transcodificação, criptografia, gerenciamento de direitos autorais, controle de acesso e relatórios de audiência.

Fornecimento de energia

Além da aplicação em documentação de propriedade, gestão de ativos, garantias de origem, licenças de emissão e certificados de energia renovável, um relatório da PwC de 2016 aponta a possibilidade da Blockchain ser usada também para executar transações de fornecimento de energia, processos de medição, cobrança e compensação.

Eleições

Hackers não seriam páreo para a Blockchain, que teria a capacidade de tornar o processo de votação mais fácil e acessível, além de mais seguro. Mesmo que alguém conseguisse acesar o terminal, ainda assim não seria capaz de afetar outros nós. Cada voto seria atribuído a um documento de identidade e, com a impossibilidade de criar um documento falso, os funcionários do governo poderiam contar os votos com mais eficiência e eficácia.

Cibersegurança

A maior vantagem da Blockchain na segurança cibernética é que, como explicamos anteriormente, não há o risco de um único ponto de falha - além da criptografia e privacidade de ponta a ponta.

Big Data e armazenamento de dados

A natureza imutável da Blockchain e o fato de que cada computador na rede está verificando continuamente as informações armazenadas nela, torna a aplicação prática do conceito uma excelente ferramenta para armazenar Big Data. Os mesmos princípios também se aplicam ao armazenamento de dados.

Existem inúmeras outras aplicações comerciais, essas são apenas algumas delas. Basicamente, qualquer asset que possa ser “tokenizável” pode se beneficiar da aplicação prática e comercial do conceito.


NFT x Blockchain: tudo a ver

NFT é um token, ou seja, um código, um hash, e que pode ser usado para representar a propriedade de itens singulares ou “únicos”. Logo, um NFT pode ser criado para itens  - que, na prática, é o que mais vemos atualmente, como uma foto exclusiva, por exemplo. Mas também pode ser atribuído a itens pertencentes a games (talvez uma nave espacial que custa milhares de dólares em um game popular), ou mesmo um domínio “famoso” ou muito difícil de comprar na web.

Itens físicos também poderiam entrar para um NFT: o número de chassi de um carro exclusivo, por exemplo. Enfim, qualquer coisa com um código único que seja possível rastrear. E também transações e contratos de investimento.
E como dentro da Blockchain haverá sempre um código referente a algo, o “casamento perfeito” com o NFT é a possibilidade de acessar todo o histórico que envolve um determinado token: qual a origem, quantas vezes transacionou, a quem pertence.

Conclusão


Blockchain não é um conceito novo: estima-se que o criptógrafo David Chaum foi quem propôs pela primeira vez um protocolo semelhante a uma chain de blocos em sua dissertação de 1982 intitulada "Sistemas de computador estabelecidos, mantidos e confiáveis por grupos mutuamente suspeitos”. De lá para cá muita coisa aconteceu - incluindo a criação da própria World Wide Web por Tim Berners-Lee , em 1989. Mas é fato que muitos novos projetos disruptivos devem ser criados daqui para frente usando o conceito da rede de blocos distribuídos e criptografados, talvez até mesmo uma “nova internet”. E você, o que acha de tudo isso? Conta pra gente nos comentários! :)