O que é blockchain? — Entenda de uma vez por todas o que é esse blockchain
Você ainda está lutando para entender o que é um blockchain? Esse artigo mostra o passo a passo de um conceito tão simples como um computador e vai aumentando a partir daí.

Os blockchains costumam ser explicados com muitos jargões tecnológicos por especialistas em matemática, criptografia e engenharia de rede. Acontece que os blockchains são mais diretos do que você imagina, pelo menos na maior parte.
Como uma pessoa que sempre gostou de computadores, mesmo assim, tive que me esforçar para entender o que era um blockchain. O que finalmente funcionou para mim foi começar com os conceitos mais básicos e, lentamente, ir crescendo a partir daí.
Portanto, neste guia, começaremos com o conceito simples de um computador e chegaremos a um blockchain. Se você já está familiarizado com os conceitos de servidores, bancos de dados e bancos de dados distribuídos, fique à vontade para pular para a seção blockchain.

O que é um computador?
Um computador é um equipamento eletrônico que pode ler e manipular dados. Os computadores vêm em muitas formas, incluindo desktops, laptops, tablets, consoles de jogos e celulares.
O que é dados?
Os dados são simplesmente informações e podem vir em formatos infinitos, desde vídeos e fotos a texto. No passado, armazenávamos esses tipos de informações em objetos físicos como papel ou filme. Com computadores modernos, podemos manter essas informações digitalmente.
A combinação de componentes em nossos computadores nos permite acessar e alterar todos esses dados em formato digital de forma rápida e fácil.

O que é um servidor?
Servidores são computadores que hospedam sites, arquivos, bancos de dados ou outros serviços. Quando você deseja acessar esse site ou serviço, está acessando o servidor que o hospeda. Por exemplo, quando você deseja ver sua caixa de entrada do Gmail, você está acessando um servidor do Google que está fornecendo o serviço do Gmail.
Todos os computadores têm algo chamado endereço IP (endereço de protocolo de internet) que é essencialmente o endereço de correspondência desse computador. O nome de um site é, na verdade, apenas um código para o endereço IP do servidor em que o site está localizado. Quando você digita Google na barra de pesquisa, ele o leva ao servidor, ou computador, que hospeda o Google.
Os servidores podem ser configurados para que mais de um tenha o mesmo endereço IP, permitindo que grandes sites como o Google espalhem o tráfego entre seus milhares de servidores.
O que é um banco de dados?
A próxima etapa para entender o blockchain é entender o que é um banco de dados
Um banco de dados é uma coleção gigante de informações armazenadas em servidores que podem ser facilmente acessadas, gerenciadas e atualizadas.
Essa grande coleção de informações, ou “dados”, às vezes pode exigir centenas ou milhares de servidores operando em instalações gigantescas conhecidas como farms de servidores (prédios enormes com milhares de computadores).
Grandes empresas de internet como Amazon e Google usam enormes farms de servidores para armazenar seus sites, aplicativos e dados de usuários. Normalmente, apenas um número seleto de pessoas aprovadas controla esses bancos de dados e eles existem em um local central. Isso significa que sua segurança depende inteiramente de o farm de servidores não apresentar problemas de funcionamento ou de os acessos não serem comprometidos por hackers.
Os dados podem ser perdidos se ocorrer um incêndio na fazenda ou vazados se ocorrer um hack. A localização central e os pontos de controle são pontos óbvios de ataque para hackers. Por esse motivo, alguns bancos de dados são distribuídos entre computadores em diferentes locais físicos. Bancos de dados como esse são chamados de bancos de dados distribuídos.

O que é um banco de dados distribuído?
Os bancos de dados distribuídos são armazenados em servidores separados por local, em vez de em um local central por motivos de segurança. No contexto de um banco de dados distribuído, esses servidores costumam ser chamados de nós.
Dessa forma, se um local apresentar defeito ou for hackeado, ele poderá ser encerrado e os outros nós em locais diferentes poderão continuar em execução para manter o banco de dados.
Agora que você entendeu os conceitos até este ponto, deve ser mais fácil entender o blockchain porque o blockchain é na verdade apenas uma forma de um banco de dados distribuído.
O que é um Blockchain?
Você pode pensar em um blockchain como uma versão de um banco de dados, mais especificamente, um banco de dados distribuído. As principais diferenças estão no tipo de dados que ele armazena, a maneira como ele os armazena, quem tem permissão de acesso e que os dados em um blockchain não podem ser manipulados ou excluídos.
O que ele armazena: o blockchain do Bitcoin é um tipo de banco de dados distribuído que armazena transações do Bitcoin.
Como ele armazena: em vez de um banco de dados típico onde as informações são armazenadas em pastas arbitrárias, as transações de Bitcoin são armazenadas em “blocos”. À medida que novas transações ocorrem, elas são agrupadas nesses chamados blocos.
Esses blocos só têm espaço para algumas transações e, quando um bloco é preenchido, ele é encadeado no bloco anterior e adicionado à longa cadeia de transações (daí o “blockchain”).
Isso cria um histórico cronológico de transações, como um razão, desde a primeira transação no primeiro bloco até a última transação no bloco mais recente. O blockchain salva esses blocos em um formato que nos permite visualizar um histórico perfeitamente registrado de transações Bitcoin.
Quem tem acesso: como um banco de dados, o blockchain do Bitcoin precisa de uma coleção de computadores para funcionar e não é armazenado em um local central. Em vez disso, ele está disperso entre muitos computadores e locais. Dessa forma, se um computador ficar inativo, muitos outros manterão os dados.
Governos ou empresas operam os computadores que executam bancos de dados típicos, mas o Bitcoin depende de indivíduos comuns com computadores pessoais. Aqueles que desejam ser um nó para ajudar a executar o blockchain, baixam o software de código aberto do Bitcoin e todo histórico, das transações do Bitcoin.
As transações não podem ser manipuladas ou excluídas: outra diferença fundamental entre bancos de dados e Bitcoin é que, ao contrário de um banco de dados onde dados mais antigos podem ser excluídos ou alterados, as transações de Bitcoin são irreversíveis. Nesse sentido, o blockchain do Bitcoin é como um banco de dados que só pode ser adicionado, onde as transações nunca são alteradas ou removidas.

Se Blockchain é apenas um tipo de banco de dados, o que há de tão especial no Bitcoin?
Não apenas isso, mas como esse banco de dados mantém dados precisos? E como ele permanece seguro se qualquer pessoa pode simplesmente iniciar a execução de um nó e participar?
Todas essas são ótimas perguntas, e é aqui que o Bitcoin realmente se torna interessante. Embora o conceito básico de blockchain seja relativamente simples, ele possui certos recursos que o tornam um grande avanço na ciência da computação.
Um problema famoso na ciência da computação, conhecido como Problema dos Generais Bizantinos, nunca havia sido totalmente resolvido até que Satoshi Nakamoto criou o Bitcoin.
Robert Shostak encontrou e formalizou o problema pela primeira vez em 1978, durante um projeto de ciência da computação patrocinado pela NASA.
Uma analogia para o problema, conforme descrito pelos pesquisadores Leslie Lamport, Robert Shostak e Marshall Pease em seu artigo de 1982, é assim:
“Imaginamos que várias divisões do exército bizantino estão acampadas fora de uma cidade inimiga, cada divisão comandada por seu próprio general. Os generais podem se comunicar uns com os outros apenas por mensageiro. Depois de observar o inimigo, eles devem decidir sobre um plano de ação comum. No entanto, alguns dos generais podem ser traidores, tentando impedir os generais leais de chegarem a um acordo.“

Então, como os generais garantem que estão todos na mesma página e que as informações que receberam são precisas? A batalha pode ser perdida se eles não trabalharem todos juntos.
Agora imagine isso, mas em vez de generais, são nós em um banco de dados. Se alguns nós em um banco de dados funcionam mal e começam a enviar informações incorretas para os outros, como o banco de dados forma um consenso sobre o conjunto correto de dados? Por exemplo, digamos que alguns dos computadores estejam dizendo que são 12h30, mas outros dizem que é 12h35. Como esses computadores determinariam qual grupo está correto?
Embora um banco de dados centralizado operado por um governo ou empresa tenha administradores que podem corrigir esse problema, um banco de dados distribuído com nós executados por indivíduos aleatórios na Internet, como um blockchain, pode não ser capaz.
Para resolver esse problema, Satoshi Nakamoto usou um mecanismo de consenso denominado proof-of-work.
O que é um mecanismo de consenso?
Um mecanismo de consenso é um sistema que permite que os nós em um sistema de computador distribuído (banco de dados, blockchain ou outro) cheguem a um “consenso” sobre o conjunto correto de dados. Simplificando, é um conjunto de regras que permite que todos concordem sobre o que é certo ou errado.
Isso dá às redes blockchain sua segurança e permite que os participantes (nós) verifiquem a autenticidade dos dados (transações) sem ter que confiar uns nos outros.
Nakamoto usou um mecanismo de consenso chamado proof-of-work (PoW) para resolver o problema bizantino, que envolve a “mineração” do Bitcoin.
Proof-of-Work
Proof-of-Work é o algoritmo que protege muitas criptomoedas, incluindo Bitcoin e Ethereum. A maioria das moedas tem uma entidade central ou líder para monitorar cada usuário e quanto dinheiro eles possuem. Mas não existe um líder encarregado de criptomoedas como o Bitcoin. Proof-of-Work é necessário para fazer a moeda online funcionar sem uma empresa ou governo comandando o programa.
Como Proof-of-Work funciona?
Bitcoin é um blockchain, que é um registro compartilhado que contém um histórico de todas as transações de Bitcoin que já ocorreram. Este blockchain, como o nome sugere, é composto de blocos. Cada bloco contém as transações mais recentes armazenadas nele.
Proof-of-Work é uma parte necessária para adicionar novos blocos ao blockchain do Bitcoin. Os blocos são convocados à vida pelos mineradores (os jogadores do ecossistema que executam o Proof-of-Work). Um novo bloco é aceito pela rede cada vez que um minerador fornecer uma resposta, também conhecida como uma prova, a um desafio específico.
No caso do Bitcoin, o desafio é encontrar um número aleatório (nonce), que quando você o adiciona ao seu bloco de transações e faz o hash (ou seja, executa algum tipo de fórmula matemática nele), o resultado será menor do que o número alvo definido pelo sistema.
Parece confuso? Isto é. Tudo vem do campo da matemática e os aspectos técnicos do processo não são realmente relevantes para este post. O que você precisa lembrar é isso
É impossível calcular esse número, a única maneira de encontrá-lo é por tentativa e erro (ou seja, adivinhando). Assim, os mineradores passam o dia todo adivinhando os números até que um deles encontre o certo. Assim que isso acontecer, o minerador apresentará sua solução à rede (ou seja, sua prova) e todos concordarão que seu bloco será o próximo bloco de transações.
Esse mecanismo garante que apenas alguém que investiu poder computacional suficiente (ou “work”) para adivinhar o número terá o direito de atualizar o registro de transações.
Os mineradores ganharão bitcoin se adivinharem um cálculo correspondente(desafio). Quanto mais cálculos eles produzem, mais bitcoin eles provavelmente ganharão.

Conclusão
E é aqui que terminamos o nosso guia básico de blockchain, como você pode ver, o conceito de blockchain não é muito difícil de entender, porém, possui alguns conceitos complexos como Proof-of-work.
O conteúdo deste post é o básico que você precisa saber para entrar nesse mundo blockchain, ainda tem muita coisa legal para aprender. A tecnologia blockchain é muito nova, será interessante ver o que o futuro reserva, especialmente em relação a transferências de dinheiro, serviços bancários, mercados descentralizados e muito mais.
Esteja você diretamente envolvido com moeda digital ou não, é essencial desenvolver uma compreensão do blockchain e como ele pode ser usado para transformar os mundos de negócios e investimentos.