Blockchain: o que é e como funciona essa tecnologia?
O conceito de Blockchain está associado a um livro-razão, que registra as transações e o rastreamento de ativos em uma rede. É compartilhado e imutável, desta forma, facilita o processo de registro dessas transações.
As manchetes dos noticiários de tecnologia envolvendo o blockchain são estrondosas. “É a maior revolução do século 21”; “Vai mudar o mundo”; “A maior coisa depois da Internet”. Muito desse conteúdo divulgado explora o potencial do blockchain, porém muito pouco se trata, efetivamente, de como funciona o blockchain. A não ser, é claro, em fóruns técnicos.
O que é Blockchain?
Blockchain não é um produto, um fornecedor ou uma implementação única. Blockchain é um conceito, uma arquitetura de banco de dados. Não existe um único blockchain, existem vários.
Assim, o mais conhecido é o blockchain que suporta as transações do Bitcoin, a moeda virtual. Mas existem vários outros. Você pode criar um blockchain em casa, no seu computador, se quiser.
O bitcoin, que citei acima é um ativo. Um ativo pode ser tangível ou intangível, por exemplo, uma casa, dinheiro, carros, são ativos tangíveis. Já patentes, direitos autorais e propriedade intelectual, por exemplo, são ativos intangíveis.
Satoshi Nakamoto, pseudônimo da pessoa que criou a moeda Bitcoin, também foi a primeira pessoa a desenvolver um banco de dados de blockchain.
Principais elementos do blockchain
Tecnologia de livro razão: Já te contei que associam muito o blockchain a um livro razão. Este é um dos principais elementos do blockchain por que permite que todos que tem acesso a rede consigam acessar o livro razão, onde constam as transações. Além disso, o livro razão elimina qualquer chance de haver duplicidade de registros, por exemplo.
Registros imutáveis: Bem, isso quer dizer que após uma transação ser registrada no livro razão, ela não pode ser alterada ou corrompida. Ou seja, erros são corrigidos em novas transações e a antiga (com o erro) fica registrada e visível a todos que tem aceso.
Contratos inteligentes: Este nome é dado a um conjunto de regras que pode ser armazenado e, assim, executado automaticamente na blockchain. Isso é feito para tornar as transações mais rápidas.
Por que o blockchain é importante?
Precisamos de informações para tudo, não é mesmo? Principalmente quando estarmos prestes a tomar uma decisão importante.
Deste modo, quando mais rápidas e confiáveis essas informações, melhor para nós, tanto na vida pessoal quanto na profissional. Informações são cruciais dentro de uma organização.
Por isso, o blockchain é tão importante. Por que ele ajuda na entrega, atualização e confiabilidade das informações que estão dentro daquele blockchain.
Além disso, a segurança é um elemento que está presente neste tipo de transação e permite que os dados sejam acessados somente pelas pessoas autorizadas. Todas essas pessoas, que tem acesso, visualizam a mesma informação, pois ela é atualizada e entregue a todos, ao mesmo tempo.
Como funciona a tecnologia blockchain?
Neste artigo, tento explicar, de maneira resumida e muito simplificada, alguns dos principais conceitos e processos envolvidos no blockchain. É importante que você saiba que não se trata de um detalhamento técnico rígido de seu funcionamento.
Além disso, em muitas situações, procurei simplificar, resumir ou até mesmo omitir conceitos (quando muito técnicos). Espero com isso poder desmistificar um pouco o assunto.
1º Passo: O registro de uma transação
Por ser como um banco de dados, imagine o blockchain, de modo muito simplificado, como uma planilha Excel. Essa planilha Excel tem algumas colunas. Já que o blockchain do Bitcoin armazena transações financeiras, que colunas esse Excel deveria ter? A principal comparação conhecida do blockchain é com um livro-razão, como já mencionei.
Mas, para simplificar ainda mais, imagine uma planilha com, no mínimo, a origem, o destino e o valor da transação.
Uma característica essencial do blockchain, entretanto, é que ele trabalha de maneira descentralizada e distribuída. Isso significa que qualquer pessoa poderia ter uma cópia da nossa planilha Excel em seu computador.
Algo parecido com o compartilhamento de arquivos via Torrent. De fato, tenho uma cópia do blockchain do Bitcoin em meu computador e ela ocupa 80 GB neste momento. Diariamente, eu recebo dados atualizados dessa planilha.
Sigilo e privacidade dos dados com blockchain
Outra característica essencial do blockchain é o sigilo e privacidade dos dados. Isso significa que ninguém pode saber quem são as pessoas envolvidas na transação. Logo, nossa planilha precisa melhorar. Não posso expor os dados das pessoas envolvidas na transação!
Como esconder essa informação? Se você pensou em criptografia, pensou certo.
2º Passo: Tornar a transação anônima
Para isso, o blockchain trouxe a ideia de endereço (address). A partir de uma chave privada, de sua posse, aplicando operações criptográficas, você pode gerar diversos endereços diferentes, que são um conjunto longo de caracteres e números. Recomenda-se que, a cada nova transação que você realizar, utilize um endereço diferente.
Digamos que, no nosso exemplo, Marcos queira enviar dinheiro para Axl. Para fazer isso, Marcos precisa que Axl informe a ele um endereço.
Veja então como ficou nosso blockchain (por enquanto):
A partir do endereço, ninguém tem como descobrir a identidade do Marcos e do Axl. Mas, com suas respectivas chaves privadas, eles podem assumir as propriedades desses endereços. Tanto Marcos quanto Axl guardam suas chaves privadas em locais muito seguros (por exemplo, em um papel embaixo da cama, em um cofre ou em um programa do tipo “carteira” no computador ou smartphone).
3º Passo: Tornar a transação “oficial”
Quando Marcos faz uma transação e envia Bitcoins a Axl, entretanto, essa transação não é automaticamente incluída no blockchain. Ela precisa ser validada. Por isso, ela fica em uma espécie de área temporária, esperando ser incluída no blockchain, quando então é oficializada. Veja na imagem abaixo nosso status “Pendente”.
Análise das transações
A cada 10 minutos, mais ou menos, todas as transações do mundo que estão na área temporária são analisadas por uma pessoa, chamada de miner.
Na verdade, é um computador ligado à rede do blockchain que, após ganhar uma competição matemática, ganha o direito de incluir as transações pendentes no blockchain.
Para isso, ele ganha um prêmio, em Bitcoins. Essa competição ocorre novamente daqui a 10 minutos.
Entre outras coisas, o miner vai verificar a autenticidade de cada transação. Como saber se alguém simplesmente gerou um volume de endereços falsos e está simulando transações para sua própria conta, esperando que alguma exista? Para isso existe a assinatura digital.
Quando Marcos fez a transação para Axl, ele assinou digitalmente as informações dessa transação com sua chave privada.
Esse processo de assinatura é como uma operação criptográfica em cima de todas as informações da transação e, igualmente, gera uma chave representada por um novo conjunto de caracteres e números (a assinatura).
O miner vai confirmar que essa assinatura é válida, correspondente aos dados da transação, confirmando então a operação. Nesse momento, também, é oficializada a data da transação, através de um carimbo oficial de tempo.
Por fim, o próprio miner assina a transação e gera novos procedimentos criptográficos, dando origem, para cada transação, ao “transaction id”, a chave que oficializa a transação.
4º Passo: Tornar a transação imutável
Infelizmente, estamos ainda um pouco longes do fim. Temos um problema sério a resolver. Se todo mundo tem uma cópia dessa “planilha”, o que impede de alguém apagar uma transação, atualizar os dados de uma transação ou mudar valores?
A transação é assinada digitalmente, mas seria relativamente fácil mudar os dados da transação E da assinatura digital ao mesmo tempo.
Aqui começa o grande segredo do blockchain e o próprio motivo pelo qual ele é chamado assim (corrente de blocos). Para isso, é preciso entender o conceito de hash.
Hash
O hash é uma operação ou função matemática que pode ser realizada sobre qualquer conjunto de informações digitais. Existem dezenas de funções de hash diferentes. Quando você seleciona um método de hash, sempre que aplicar sobre um determinado texto, ele irá gerar a mesma sequência simplificada de caracteres e números.
Se você modificar qualquer coisa no texto, mesmo que uma vírgula, o hash irá mudar totalmente. Veja abaixo duas frases que passaram pela função de hash MD5, uma das mais simples:
Você pode fazer alguns testes e brincadeiras em www.miraclesalad.com/webtools/md5.php.
Quando o miner realizou a validação de nossa transação, ele fez isso com todas as transações que estavam pendentes ao mesmo tempo. E, depois, gerou um hash calculado a partir de todas operações realizadas nesse bloco.
Quando esse bloco é inserido, finalmente, no blockchain, mais uma operação ocorre. Olhando para o hash final do bloco anterior (no nosso caso, 53), é realizada nova operação, gerando um novo hash final para esse novo bloco, elaborado a partir do hash do bloco anterior e do hash gerado a partir das transações desse bloco.
Observe que, uma vez que cada bloco adicionado no blockchain é armazenado e criptografado usando informações do bloco anterior, absolutamente todos os registros do nosso banco de dados estão entrelaçados.
O bloco 54 depende do 53, que depende do 52. Essa lógica remete até o início do blockchain, que no caso do Bitcoin foi há 7 anos atrás.
Alteração de transação
Se eu quiser mudar os dados de uma transação qualquer, ou mesmo excluir uma transação do blockchain, mesmo que eu consiga fazer isso na cópia local que tenho em meu computador, jamais conseguiria oficializar isso frente as demais cópias do blockchain.
Digamos que eu mude o valor de uma transação que foi realizada faz 3 anos. Ao mudar o valor da transação, o hash da transação é modificado.
Com isso, o hash do bloco é modificado. Com isso, o hash do próximo bloco é modificado. E com isso, todos os demais blocos e transações ocorridas até o dia de hoje seriam modificados.
A operação não seria aceita e o volume de processamento computacional necessário para que eu conseguisse modificar isso e recalcular os hashs em todas as cópias existentes do blockchain seria impensável.
Transação segura
Você deve ter observado, entretanto, que quanto mais recente a transação, menor sua força e, teoricamente, mais fácil seria de adulterá-la. De fato, modificar os dados do último bloco, ocorrido 10 minutos atrás, seria teoricamente mais simples.
É por isso que alguns indicam esperar alguns blocos a mais serem processados até considerar sua transação “segura”.
Existe uma literatura vasta de artigos publicados na Internet explicando o blockchain, sua importância para a economia mundial e potenciais casos de uso. Ainda assim, se você é curioso, e não é técnico, as dúvidas são infinitas.
Espero que este blogpost tenha ajudado você a minimizar essas dúvidas.
Até a próxima.