Introdução
Você sabe o que é realmente a tecnologia blockchain? Aqui você irá aprender o que é o blockchain, como ele funciona e onde pode ser empregado.
Se você tem acompanhado com o mercado financeiro nos últimos anos, você pode estar familiarizado com o termo “blockchain”. Mas, você sabe o que é realmente a tecnologia blockchain. Aqui você irá aprender o que é o blockchain, como ele funciona e onde pode ser empregado.
O que é o blockchain?
Você já ouviu falar no termo “blockchain”? Em geral é citado quando o assunto é Bitcoin e outras criptomoedas. Isso porque o blockchain é um elemento essencial para as criptomoedas – sem ele, moedas digitais como o Bitcoin não existiriam.
Antes de explicar o que é o blockchain é preciso falar sobre o sistema peer-to-peer ou P2P. P2P é uma arquitetura de rede de computadores, onde cada um dos pontos ou nós da rede funciona tanto como cliente quanto como servidor, permitindo o compartilhamento de dados sem a necessidade de um servidor central. A principal função do P2P é possibilitar a transmissão de arquivos ou serviços. Um exemplo de sistema peer-to-peer são os torrents. P2P atua sobre o modelo de rede distribuído.
O blockchain é um sofisticado sistema de registro que utiliza o sistema P2P para registrar transações em um banco de dados distribuído, sem a necessidade de um servidor central.
Em tradução livre ,blockchain significa cadeia de blocos. Uma cadeia de blocos nada mais é do que um conjunto de informações registradas que é ligado a blocos de informações anteriores e sucessores. Por serem encadeados,seus dados são imutáveis e nunca poderão ser alterados. Todos os blocos são considerados públicos, ou seja, todos os computadores da rede têm acesso.
As informações podem ser de diversos tipos, tais como: transferência bancária, uma compra, propriedade, informações pessoais,registros médicos, um acordo entre duas pessoas ou até mesmo quanta eletricidade uma lâmpada usou.
Cada bloco possui especificamente 3 partes:
- Os blocos armazenam informações sobre transações. Suponha que a transação é sobre uma compra feita na empresa X. O bloco pode armazenar data, hora, valor da compra, entre outros atributos relevantes.
- Os blocos armazenam informações sobre quem está participando das transações. Um bloco para sua compra feita na empresa X gravaria seu nome junto com o da empresa.
- Os blocos armazenam informações que o distinguem de outros blocos. Cada bloco armazena um código único chamado hash que nos permite diferencia-los de outros blocos.
O bloco do exemplo acima está registrando apenas 1 transação. Mas na realidade, um único bloco pode ter milhares de transações registradas, dependendo do tamanho da transação. Cada bloco pode registrar até 1MB de dados.
O blockchain, por ser distribuído, está em milhares de dispositivos. Para uma transação ser processada, deve haver uma validação de vários dispositivos que compõem a rede. Uma vez que um “consenso” é alcançado entre os computadores para armazenar algo em um blockchain, o registro se torna inquestionável e não pode ser contestado, removido ou alterado, sem o conhecimento e permissão daqueles que fizeram esse registro, bem como a comunidade em geral.
Como o blockchain utiliza o sistema peer-to-peer, várias cópias são armazenadas em locais diferentes e dispositivos diferentes na rede, como computadores e impressoras. Com isso, mesmo que um ponto de armazenamento seja danificado ou perdido, várias cópias permanecem seguras e protegidas em outro lugar.
Se uma informação é alterada sem o consentimento dos legítimos proprietários, existem inúmeros outros dispositivos, onde a informação verdadeira se encontra, tornando o registro falso e obsoleto. Para isso o blockchain utiliza um protocolo criptográfico que valida uma transação em um dispositivo por meio da resolução de um problema matemático.
Como funciona o Blockchain?
Para fins de exemplo, vamos considerar o blockchain do Bitcoin. Como mencionamos, cada bloco possui o tamanho de 1MB. O blockchain do Bitcoin possui um histórico gigantesco de todas as transações de Bitcoin que já ocorreram, desde a primeira transação bitcoin. Vamos entender melhor como funciona alguns dos elementos básicos desse sistema.
Blocos
Imagine vários blocos que contém diversas transações de maneira encadeada, (ver figura 1). Cada bloco contém uma assinatura única, que corresponde exatamente a string de dados contidos no bloco. Se alguma coisa dentro do bloco mudar, seja uma letra, o bloco receberá uma nova assinatura. A assinatura é gerada por meio do hash.
Suponha que o bloco 1 atingiu 1MB com as duas transações T1 e T2. Ao atingir 1MB, O bloco recebe uma assinatura única para essa sequência de dados especifica ABC. Os dados do bloco 1 agora estão ligados com o bloco 2 adicionando a assinatura do bloco 1 ao bloco 2. Perceba que a assinatura do bloco 2 agora é parcialmente baseada na assinatura do bloco 1, porque a assinatura do bloco 1 faz parte da cadeia de dados do bloco 2. A assinatura ‘QWE’ do bloco 2 fará parte do conjunto de dados do bloco 3 e assim sucessivamente. As assinaturas unem os blocos, tornando uma cadeia de blocos.
Se alguma transação do bloco 1 for alterada, a sequência de dados será diferente, e o bloco consequentemente receberá outra assinatura. Veja na figura abaixo que houve alteração no valor da transação 1, e que a assinatura agora é outra
Perceba que a nova assinatura do bloco 1 é ‘34X’. Uma das características do blockchain, é que ele deve ser imutável. Quando os usuários desse blockchain notarem a alteração, eles vão rejeitar a mudança e reverter o bloco 1 para o registro anterior, onde os blocos ainda estavam encadeados.
Aprofundando ainda mais, a única forma de uma alteração permanecer indetectável é se os blocos permanecerem encadeados. Para isso acontecer, a nova assinatura no bloco 1 deve substituir a antiga assinatura no bloco 2. Mas, se os dados do bloco 2 forem alterados, uma nova assinatura para o bloco 2 será gerada. Como a assinatura do bloco 2 foi alterada, o bloco 2 e 3 não estarão mais conectados.
Resumindo, uma alteração em único bloco requer uma nova assinatura para todos os outros blocos até chegar no final da cadeia de blocos. Isso é considerado impossível, e para entender o porquê, você precisa compreender como as assinaturas são geradas.
Assinaturas
No blockchain as assinaturas são criadas por uma função de hash criptográfico, muitas vezes conhecida apenas como hash. Um hash é um algoritmo matemático que transforma qualquer entrada de dados em uma série de caracteres de comprimento fixo. Se um único caráter mudar, a saída será totalmente diferente.
Um hash sempre fornece a mesma saída para a mesma entrada. Mas, sempre uma saída diferente para entrada diferente. Existem vários algoritmos para gerar hash como o SHA-1, SHA-2 e MD5, entre outros. O Bitcoin utiliza o SHA-256.
No Bitcoin, os hashes devem atender determinados requisitos. Aqui é onde entra o processo de mineração.
Mineração e nonce
Para uma assinatura digital ser qualificada no Bitcoin ela deve começar com um número consecutivo de zeros. Por exemplo, somente blocos com assinaturas começando com pelo menos 10 zeros se qualificam para ser adicionado ao blockchain.
Para dar ao bloco uma assinatura que corresponda aos requisitos, a sequência de dados de um bloco deve ser alterada repetidas vezes até que a sequência de dados especifica leve a uma assinatura que comece com 10 zeros.
Os dados e metadados de uma transação dever permanecer como estão e não podem ser modificados. Para atingir o requisito, um pequeno conjunto de caracteres, é adicionado ao bloco e alterado repetidas vezes com o propósito de encontrar uma assinatura qualificada. Essa sequência de caracteres é chamado de Nonce. Na prática, o nonce é um conjunto de caracteres aleatórios e sem significado.
Até agora, vimos que um bloco contém: os dados da transação, a assinatura do bloco anterior e um nonce.
O processo de alterar repetidamente o nonce para encontrar uma assinatura elegível é chamado de mineração. Os mineiros são computadores que se utilizam de seu poder computacional para tentar diferentes nonces afim de encontrar uma assinatura qualificada. Quanto mais poder eles tiverem, mais rápidos eles poderão tentar nonces aleatórios e encontrar uma assinatura elegivel. Ao encontrar uma assinatura, o mineiro é recompensado - no nosso exemplo, em Bitcoins.
Qualquer pessoa que participa de uma rede blockchain pode participar do processo de mineração. Basta baixar um software para o blockchain especifico. O software apenas irá utilizar do poder computacional do computador para realizar cálculos e encontrar o nonce elegivel para um bloco. Vale ressaltar, na pratica para encontrar um nonce, requer muito poder computacional e tempo.
O blockchain é praticamente inviolável, para um minerador corrupto adulterar algo, ele precisa ter no minimo metade da rede do blockchain. Devido a extensão desse post deixaremos esse assunto para uma outra hora.
Exemplos de uso do Blockchain
Bancos
Há um número crescente de bancos e instituições financeiras se interessando pelo blockchain. Haverá um benefício mutuo tanto para os bancos tanto como para os clientes. Se você depositar um cheque no fim de tarde de uma sexta-feira, provavelmente terá que esperar até segunda-feira de manhã para ver o valor na sua conta. Até mesmo um deposito feito em horário comercial, poderá levar de 1 a 3 dias para ser efetivado, devido à grande quantidade de transações que os bancos precisam liquidar.
Com o blockchain os clientes poderão ver suas transações sendo processadas em até 10 minutos, tempo necessarios para um bloco ser adicionado ao blockchain. Isso independentemente do dia da semana de forma rápida e segura.
Criptomoedas
Como já mencionamos o blockchain é a base das criptomoedas, como o Bitcoin. O blockchain permite que as criptomoedas funcionem sem a necessidade de uma autoridade centra. Além de reduzir o risco, elimina muitas taxas de processamento e transação.
Em países com moedas instáveis, a blockchain dá a esses países a oportunidade de ter uma moeda mais estável, com mais aplicações e uma rede mais ampla de indivíduos e instituições com as quis podem fazer negócio, tanto nacionalmente quanto internacionalmente.
Contratos inteligentes (smart contracts)
Contratos inteligentes são contratos escritos em código e incorporado em uma blockchain especifica. O código contém todas as regras, condições, datas de expiração e todas as outras informações relevantes necessárias para o seu cumprimento, que são executadas automaticamente quando os termos são cumpridos.
Ao contrário dos contratos convencionais, um exemplo de contrato inteligente incluiria condições pré-escritas em uma linguagem de programação que é muito diferente daquelas baseadas na linguagem humana, que podem ser muito subjetivas e abertas à interpretação judicial. Em vez disso, um contrato inteligente se comporta de formas predefinidas e é automatizado no padrão “se isso acontecer, faça isso”, que é uma maneira mais objetiva e orientada por dados para garantir que as condições do contrato sejam atendidas.
Sistema Público
Blockchain pode revolucionar o setor público, trazendo mais transparência, visibilidade e segurança, diminuindo também a corrupção.
Eleições
O blockchain pode ser utilizado para eleições mais seguras, através do registro de dados em votações.
Saúde
Na área hospitalar, o blockchain pode ser utilizado para armazenar com segurança os registros médicos de pacientes. Quando um registro médico for gerado e assinado, ele pode ser incluído ao blockchain e fornecer prova e confiança aos pacientes de que o registro não pode ser alterado. Os registros podem ser codificados e armazenados no blockchain com uma chave privada, para que eles sejam acessíveis apenas por determinados indivíduos, garantindo assim a privacidade.