
No artigo anterior, Bitcoin (e um pouco de blockchain) para gente não técnica, falamos um pouco sobre o que é o Bitcoin, o que são criptomoedas (inclusive sobre o que é uma moeda em termos gerais), e comentamos brevemente que a tecnologia que torna o Bitcoin possível é o Blockchain. Prometi ali uma continuação, com foco maior no Blockchain. Assim sendo esse texto é uma continuação e a leitura do texto anterior é fortemente recomendável já que vou usar alguns termos sem re-explicá-los.
Confesso que, seguindo a linha editorial que eu me propus para essa série de artigos, esse texto aqui foi uma empreitada difícil. Conforme escrevia, e apaguei o artigo várias vezes, eu entrava numa espiral: pra explicar assinaturas digitais era necessário criptografia. Ai era necessário comentar criptografia simétrica versus assimétrica. E ai era necessário explicar chaves públicas e privadas. Logo estava começando a falar de números primos e computadores quânticos. Quase desisti. Mas acabei saindo pela tangente e pela simplificação. Vou entrar no mínimo de detalhes possíveis, e vai ser assim.
Uma corrente de blocos
Pense num nome simples para uma tecnologia: blockchain.
Antes de explicar, um comentário aleatório. Sempre que pronuncio blockchain, vêm à minha mente a música Ball and Chain, da Janis Joplin. Estou escutando enquanto escrevo. Enfim, voltando…
Blockchain é a combinação de duas palavras em inglês: block (que significa bloco) e chain (que significa corrente, ou encadeamento, ou como prefiro para esse contexto, sequência). Assim sendo, essa tecnologia é, no fundo, uma sequência de blocos. E é isso, acabou o artigo!
Calma, disse que iria simplificar, mas nem tanto.
No texto anterior, quando falávamos sobre Bitcoin, uma analogia simples mas efetiva foi a de um bloquinho de notas, contendo uma série de transações. Em inglês se usa muito o termo ledger para esse bloco de notas, vale citar isso aqui porque há muita literatura com esse termo. Vou traduzir nesse texto a palavra ledger por registro, para manter o máximo possível a nossa língua. Assim sendo, uma das bases para o Bitcoin é tecnologia que nos permite (conforme já discutido) ter um registro de transações que seja distribuído, auditável, transparente, e à prova de fraudes. Essa tecnologia é o Blockchain.
Como ela funciona?
Imagine um registro de transações, mais ou menos assim:
Descrição da transação |
Matheus Envia 10 Bitcoins Para Fernanda |
Fernanda Envia 5 Bitcoins Para Alice |
Alice envia 5 Bitcoins Para Toya |
Essa sequência de transações, ou bloco de transações, mantém uma memória histórica das transações. É só um pedaço, mas imagine que há blocos para toda e qualquer transação no mundo.
Supondo que o Matheus tenha no início só 10 bitcoins, e que antes dessa sequência, Fernanda, Alice e Toya tenham 0 bitcoins (e os blocos anteriores nos permitiriam verificar isso). Depois dessa sequência calcula-se facilmente que Matheus e Alice terminam com zero bitcoins, enquanto Fernanda e Toya com 5 bitcoins cada uma.
Se chamarmos essa sequência de transações acima de um bloco (block), a tecnologia Blockchain se baseia em uma sequência (chain) de blocos similares. Lembra dos bloquinhos de dívidas de fazia as compras pra minha vó no artigo anterior? Então, seria uma sequência desses bloquinhos, guardando todas as transações possíveis de todos os mercadinhos possíveis.
Mais ou menos isso:

Dificuldades de fraude
Dissemos várias vezes já que é difícil fraudar um blockchain, aqui explico um pouco as duas principais casas dessa dificuldade.
1. Hash functions
Vamos pensar em uma maneira de proteger o bloco acima contra manipulações. Imagine que pra cada transação em um bloco a gente tenha junto algum tipo de verificação que nos permita validar se a transação foi alterada. Por simplicidade, vamos imaginar que essa verificação seja simplesmente as primeiras letras de cada palavra.
Por exemplo, a verificação pegando as primeiras letras da transação “Matheus Envia 10 Bitcoins Para Fernanda” da tabela acima, fica: ME1BPF.
Mais ou menos assim:
Descrição da transação | Verificação |
Matheus Envia 10 Bitcoins Para Fernanda | ME1BPF |
Fernanda Envia 5 Bitcoins Para Alice | FE5BPA |
Alice envia 5 Bitcoins Para Toya | AE5BPT |
Se um atacante quer trocar algum dos nomes da transação acima, essa pessoa tem que trocar o nome e também a função de verificação. Por exemplo, se quiserem trocar Fernanda, na primeira transação, por Otávio, também teriam que atacar e alterar a verificação, de modo que fique assim: ME1BPO .
Mas vamos um passo além: o bloco todo também tem uma verificação, que é simplesmente juntar todas as verificações individuais. Nesse exemplo acima, a verificação do bloco todo seria:
ME1BPF-FE5BPA-AE5BPT
Agora, lembre-se que o blockchain é uma cadeia, bem grande, de blocos como esse.
Complementando o que foi dito acima, cada bloco na cadeia tem a informação de qual é a verificação do próprio bloco e a verificação do bloco anterior. Mais ou menos assim:

São milhares e milhares de blocos como esse, contemplando todo o histórico de transações do mundo.
Se um atacante quiser alterar determinada transação, essa pessoa terá que alterar todas as verificações, em todos os blocos subsequentes (já que um bloco sempre tem a verificação do bloco anterior).
Só que essa verificação usando as iniciais das palavras é um exemplo fictício. Na prática se usa um conceito chamado função de hash criptográfica para essa verificação. Não vou entrar em como isso funciona aqui porque seria um artigo à parte, mas é bem mais complexo de se alterar. E qualquer mudança mínima em um bloco (um espaço a mais, uma minúscula trocada por uma maiúscula, um horário, a verificação do próprio bloco ou do bloco anterior, enfim um único bit) muda o valor da verificação.
2. Descentralização e transparência
A segunda característica mais importante para evitar a fraude é uma combinação de descentralização e transparência.
Descentralização
Essa lista ou registro de transações, na forma de um conjunto de blocos sequenciais, não fica em um servidor específico. Ela fica com cópia em todos os computadores que fazem parte de uma rede chamada rede block chain. São milhares e milhares de máquinas espalhadas pelo mundo. Sempre que um novo bloco é adicionado à sequencia, ele é enviado pra todas as máquinas participantes da rede.
Voltando ao possível ataque acima, a pessoa que quiser alterar uma transação deve alterar essa transação em si, e depois todos os blocos subsequentes (devido às verificações), e além disso fazer isso em cada uma das milhões de máquinas espalhadas pelo mundo.
É bem difícil.
Transparência
Uma característica decorrente desse tipo de descentralização é a transparência. Cada máquina que é parte da rede blockchain no mundo tem uma cópia de todo o registro de transações de todas as outras máquinas.
Assim, mesmo se alguém conseguisse executar um ataque (o que é virtualmente impossível) essa adulteração seria detectada quase imediatamente uma vez que não é possível alterar todas as verificações em todas as máquinas do mundo no mesmo instante.
Tudo tem um fim
Tudo tem um fim, incluindo esse artigo.
Os detalhes técnicos do blockchain intencionalmente ignorados nesse artigo vão longe. A idéia toda da tecnologia e também do Bitcoin é realmente genial e cobre vários mínimos detalhes.
Alguém com conhecimento técnico já deve ter mil perguntas: e se dois blocos são gerados ao mesmo tempo, como manter uma única linha? Como garantir que uma máquina que é parte da rede não faça um ataque ela mesma? Como orquestrar todas essas máquinas? etc. etc.
Quem é menos técnico talvez se pergunte: o que é essa tal de função de hash criptografada? E por ai vai.
Como disse no início, é um ecossistema bem complexo e daria um livro. Quase desisti de tentar em um único texto, mas acabei me atendo às principais características dessa tecnologia, sem entrar em detalhes quanto a outras tecnologias subjacentes como criptografia, sistemas distribuídos, entre outras. Por fim, falamos do blockchain no contexto de Bitcoin, que é realmente onde a tecnologia foi criada, mas hoje ela é usada em inúmeros outros contextos que requerem registros transparentes, eficientes, auditáveis, imutáveis e imunes à fraude, e ainda deve crescer muito mais nos próximos anos. Isso pode vir por vários motivos, e comento dois bem interessantes para provocar reflexão:
- Nos anos 90 o furacão Katrina acabou com vários registros em papel relacionados à transações nos Estados Unidos e o governo alterou as leis para permitir mais avanços em transações virtuais. Isso permitiu, por exemplo, que a startup Securitize utilizasse blockchain com sucesso para todo um novo paradigma de investimentos.
- A Nova Zelândia acabou de legalizar que os salários no país sejam pagos em Bitcoin, a partir agora de Setembro, em menos de uma semana. Isso talvez dê um gás para a popularização da moeda e da tecnologia.
Tempos interessantes, vejamos o que o futuro nos trás.
Fontes:
- Cryptographic hash function
- Securitize
- New Zealand Tax Office Makes It Legal to Pay Salaries in Crypto
Esse artigo também foi publicado em meu Linkedin. Caso queira comentar, contibuir, etc. sinta-se à vontase de visitar:
Um comentário sobre “Blockchain para gente não técnica”
Os comentários estão desativados.