Série Blockchain simples em 3 conteúdos: 2 -Blockchain, o que é isso? (Abordagem para não programadores)

Marcio Pessoa
CRYPTOMILES
Published in
4 min readJul 25, 2018

Mais um texto do nosso CTO, Rodrigo Bezerra.

Olá queridos!

Você já leu o meu artigo anterior que explica de maneira simples o que é Hash? Se ainda não, tome 5 minutos antes de prosseguir e leia, vai tornar essa leitura ainda mais fácil.

Neste artigo, não vou me prender a implementações específicas de Blockchain (Bitcoin, Ethereum, EOS, NEO, Cardano etc).

Dito da maneira mais simples que consigo, “Blockchain é uma estrutura de dados armazenado de forma distribuída”. Para entender melhor vamos dividir essa frase em duas etapas…

Blockchain é uma estrutura de dados armazenado de forma distribuída

Blockchain é uma estrutura de dados” — como o nome traduzido ao pé da letra diz, Blockchain é uma corrente/cadeia de blocos, e como uma corrente literal onde seus elos são conectados de alguma forma, os blocos do Blockchain também estão conectados e é aqui que o Hash ganha grande importância. De fato, é verdade dizer que um dos pilares do Blockchain é o seu algoritmo de Hash.

Os blocos são conjuntos de dados organizados em transações e armazenam basicamente qualquer tipo de informações (podem ser acordos comerciais, contratos, informações de identidade ou uma extensa quantidade de transações financeiras etc), todas as transações recebem um Hash e sem seguida são adicionadas no bloco, e todos os blocos estão ligados de forma tal que qualquer bloco da corrente tenha o seu próprio Hash e também o Hash do bloco anterior. Um ponto importante a se dizer é que o bloco é definido com um tamanho específico.

“…qualquer bloco da corrente tenha o seu próprio Hash e também o Hash do bloco anterior.”

Vamos a um exemplo, tome por base as transações abaixo e vamos supor que nosso bloco tenha um tamanho máximo de 03 transações.

- “Maria vende para João 1kg de Tomate por R$11,00”

- “João deve para Maria R$11,00”

- “João paga para Maria R$15,00 em cédulas”

- “Maria deve um troco para João de R$4,00”

- “Maria transfere para João R$4,00”

- “João recebe R$4,00 de maria em sua conta corrente”

Para que essas transações sejam armazenadas em um bloco, todas elas precisam receber um Hash, o que vai garantir a integridade de cada uma:

No bloco 01 do nosso Blockchain teríamos a seguinte construção:

Note que a primeira transação do bloco 01, é o Hash do bloco anterior e a última transação é o hash do próprio bloco. Já o bloco 02 estaria assim:

Note também que o Hash do bloco 01 é o primeiro registro no bloco 02, pode-se dizer que o Hash do bloco anterior faz parte do bloco atual, ligando assim todos os blocos.

Agora pense: se todo bloco tem que ter o Hash do bloco anterior, o primeiro bloco de toda a cadeia não pode seguir essa mesma regra. Se você acha isso, você está correto.

O primeiro bloco do Blockchain contém as informações de construção do próprio Blockchain, é também chamado de bloco 0 (zero) ou bloco Gênesis. Com o Hash do bloco gênesis, o bloco 1 é formado.

“Com o Hash do bloco gênesis, o bloco 1 é formado.”

Armazenado de forma distribuída” — Há basicamente 03 formas de persistir ou gravar informações numa rede de computadores: 1 — Centralizada, 2 — Descentralizada e 3 — Distribuída.

Na forma centralizada, todos os clientes se conectam em um ponto único, gravam e leem dados deste servidor único na rede. Muitas vezes é implementado cenários de redundância, porém, imagine quanto esforço uma pessoa má intencionada precisaria, já que seus esforços poderiam estar concentrados em um único servidor.

Na forma descentralizada, existe mais de um servidor na rede e os clientes fazem requisições para o seu servidor mais próximo o que garante uma maior performance e segurança, já que na indisponibilidade do seu servidor mais próximo o segundo mais próximo pode ser usado. Nesta abordagem os servidores precisam replicar seus dados afim de que todos os servidores no final de determinado período fiquem com a mesma informação.

E há a forma distribuída: Todos os clientes tem posse de todos os dados.

Abaixo há uma figura muito usada para explicar esse conceito:

Há claro implementações diferentes de cada uma dessas formas de armazenamento, mas quanto ao Blockchain o conceito mais geral é que todos que participamos da rede também teremos nossa própria cópia do Blockchain, podemos dizer assim que uma implementação de Blockchain tal como conhecemos precisa ser distribuída.

“todos que participamos da rede também teremos nossa própria cópia do Blockchain.”

Mas se todos temos os dados, como sabemos quem está certo caso haja uma diferença entre as cópias de Blockchain? No final do artigo anterior, havia uma disputa entre João e Maria, no próximo artigo vamos falar sobre o algoritmo de consenso.

Até lá.

Rodrigo Bezerra

--

--