Bloco

A blockchain é um livro razão digital e descentralizado que registrá todas as transações ocorridas por meio de blocos. Cada bloco armazena uma lista de transação.

Estrutura do bloco:

Fonte:
https://www.modiax.com/descubra/educacao/bitcoin-blockchain/

Raiz Merkle: HASH gerado a cada par de transação (da Lista de Transações), se tiver 2 pares, pega os HASH gerado e gera um novo e assim sucessivamente até gerar um HASH FINAL das informações.

Nonce: número aleatório aplicado apenas uma vez no último hash do bloco, gerando o hash final. (O minerador deve encontrar um nonce que torne o seu bloco válido. Este passo requer a maior parte do trabalho, e é onde ocorre a maior parte da dificuldade dos mineradores.)

Index: número do bloco.

Hash do bloco anterior: cada bloco tem um hash final e seu hash participa da geração do Hash do bloco corrente. Sendo assim se for modificado alguma transação em um bloco anterior não irá fechar mais os Hash.

Timestamp: gerado na hora da criação utilizado para gerar tambem o hash final.

Hash do bloco: hash final do bloco onde irá para o proximo bloco e assim transformando em uma cadeia de blocos interligados sem que possam trapacear.

HASHING

Hashing é uma maneira de criar uma impressão digital para um dado.
Mensagem.txt -> Hash Algorithm SHA256 -> c8suf899sefsy9s98jksy2b2332se0fsefhs

Neste link abaixo podemos gerar uma hash unica: https://anders.com/blockchain/hash.html

SHA-2 é um conjunto de funções hash criptográficas projetadas pela NSA (Agência de Segurança Nacional dos EUA). SHA significa secure hash algorithm (algoritmo de hash seguro). Funções hash criptográficas são operações matemáticas executadas em dados digitais; comparando o hash computado (a saída de execução do algoritmo) a um valor de hash conhecido e esperado, uma pessoa pode determinar a integridade dos dados. Por exemplo, calcular o hash de um arquivo baixado e comparar o resultado com um resultado hash publicado anteriormente pode mostrar se o download foi modificado ou adulterado. Um aspecto importante das funções hash criptográficas é a sua resistência à colisão: ninguém deve ser capaz de encontrar dois valores de entrada diferentes que resultam na mesma saída de hash.

SHA-2 inclui mudanças significativas de seu antecessor, SHA-1. A família SHA-2 é composta por seis funções hash com resumos (valores de hash) que são de 224, 256, 384 ou 512 bits: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256.

Fonte: https://pt.wikipedia.org/wiki/SHA-2

Entendendo a Arquitetura da rede.

A blockchain utiliza a arquitetura de rede distribuída onde os nós se ligam entre si e tem exatamente a mesma autoridade conforme a imagem abaixo. Considerando que o poder de computação de cada nó pode variar.

distribuídos

Existe também outras duas formas de rede onde são utilizadas pelos sistemas hoje.

Centralizado: todos os nós (cliente) ficam ligados (agindo de acordo com a rede) a uma entidade centralizadora (autoridade ou servidor central). Esse é o sistema mais clássico encontrado nas empresas.

Descentralizado: tem um servidor central e outros servidores secundários, onde os nós se conectam as secundarias e depois a secundaria se conecta a entidade central. Algumas redes desta forma não tem um servidor central.

Básico Funcionamento blockchain

BlockChain é um conceito, uma arquitetura de banco de dados descentralizada.

1° Passo: Registrando uma transação.

DE PARA VALOR
JardelMichel 4,23
DanielClaudemir 55,22

2° Passo: Tornar a transação anônima com a chave privada.

DE PARA VALOR
8s7fy8as7dfya 94cwum984cw 4,23
78as9fdh98a7sf 8u480y173841 55,22

3° Passo: Tornar a transação oficial. A cada 10 minutos todas as transações pendentes no mundo é analisado por um minerador.

DE PARA VALOR Status
8s7fy8as7dfya 94cwum984cw 4,23 Pendente
78as9fdh98a7sf 8u480y173841 55,22 Pendente

4° Passo: Assinatura, acontece quando uma pessoa faz uma transação para outra pessoa, e assim assinado digitalmente as informações dessa transação com a chave primaria. O processo de assinatura é como uma operação criptográfica encima das informações da transação gerando uma chave de conjunto de caracteres.

DE PARA VALOR Assinatura Status
8s7fy8as7dfya 94cwum984cw 4,23 asdf2sq217s787ds Pendente
78as9fdh98a7sf 8u480y173841 55,22 87yd8fans7ys8dfa Pendente

5° Passo: Determinar o ID da Transação: O minerador confirma que essa assinatura é valida e muda o status e grava um id da Transaction (gerado pelo minerador).

DE PARA VALOR Assinatura Status Data-Hora Transaction ID
8s7fy8as7dfya 94cwum984cw 4,23 asdf2sq217s787ds Ok 2018-12-12 15:34 e972fhy27t6et3
78as9fdh98a7sf 8u480y173841 55,22 87yd8fans7ys8dfa OK 2018-12-12 15:34 9849uuwr98uy7

6° Passo Tornar a Transação Imutável: ligação por bloco por meio do hash. Hash operação ou função matemática executada sobre um conjunto de informações digitais. O hash é executado pelo minerador, gerando apenas um por bloco.

Bloco 1

DE PARA vlr Assinatura

Status Data-Hora Transaction ID HASH das Transaction HASH do bloco anterior HASH final
8s7fy8as7dfy 94cwum984c 4,23 asdf2sq217s7 Ok 2018-12-12 15:34 e972fhy27t6 bg4h2h348wh4ls8 84khu3yg4is4bskd 774fsj3hs73
78as9fdh98a 8u480y17384 55,22 87yd8fans7y OK 2018-12-12 15:34 9849uuwr98

Bloco 2: simulando a utilização do hash anterior no proximo bloco.

DE PARA VALOR Assinatura Status Data-Hora Transaction ID HASH das Transaction HASH do bloco anterior HASH final
782jdsk s8fas9asdf 322,22 9sdf8y77ss ok 2018-12-13 10:11 uhfd8sh3hs8oss7
ou7hshu3hius0092n2 774fsj3hs73 od88fgh78h32c
s8fas9asdf 782jdsk 362,22 9sdf8y77ss ok 2018-12-13 10:11

BlockChain Pública ou Privada??

A maior diferença é a permissão em participar na rede (executar o protocolo de consenso e manter o livro razão compartilhada) como um minerador ou validador. Mas isso é uma escolha muito particular para a situação em que se deseja aplicar.

PÚBLICA: qualquer um pode participar da rede e visualizar as transações que ocorrem. Os mineradores (quem valida os blocos) podem deixar de ser um nó e depois voltar no momento que deixaram. Todos os nós possuem o mesmo poder de transmissão, sem privilégios. Nesta rede é necessário pagar taxas para incentivar que venham novos mineradores para resolver as transações. Um exemplo é a rede Ethereum.

PRIVADA: Geralmente é usada em meio corporativo, porque desta forma nem todos terão acesso a essa rede. A rede poderá ser compartilhada entre varias empresas, com cada uma com os seus nós. Mas as redes privadas requerem permissões para ler as informações na sua cadeia. Limitar as partes que podem fazer transações, definir quem pode estar presente na rede e escrever novos blocos. Os participantes existentes podem decidir quais serão os futuros participantes, emitindo licenças. Só quem participa da transação conseguirá ver a transação realizada. Exemplo de rede privada é a hyperledger, código não aberto, a confirmação da transação é mais rápido.

Vantagens da tecnologia blockchain.

1) Dados ficam registrados em ordem cronológica, e todas as transações ocorridas na rede são armazenadas sucessivamente.

2) Os próprios minerados ou validadores (entenderam mais tarde a diferença), compilam e validam as informações que são inseridas.

3) Sistema é público, exclusivo, replicado e compartilhada a usuários da BlockChain.

4) Qualquer manutenção ou atualização, sempre ocorre de forma voluntária e descentralizada, impedindo que apenas uma pessoa detenha o poder.

5) Mineradores são recompensados através de um programa de recompensa.

6) Oferece maior independência, segurança, agilidade e não precisa de um terceiro envolvido.

7) Toda tecnologia aplicada no processo resulta na possibilidade de redução de custo para o setor em que for aplicado.

O que é blockchain?!?!

Neste blog estarei escrevendo de forma simples sobre a tecnologia blockchain. Acredito que será de facil entendimento. Pretendo me esforçar (haha) pra fazer um post por semana.

Um post complementará o outro, então, só seguir que tudo vai ser entendido.

Então vamos para o que nos interessa. O blockchain nada mais é que analogicamente um livro contábil armazenado em várias bibliotecas. Mas tecnicamente é uma tecnologia que consiste em uma cadeia de blocos.

A cadeia de blocos (BlockChain) é um grande banco de dados, público, remoto e inviolável, podendo ser registrado vários arquivos. Cada item armazenado é datado e dá origem a uma espécie de assinatura formada por uma sequência de letras e números. E deixando claro o Bitcoin é um software que roda sobre a tecnologia.

Cada bloco contem um conjunto de transações que são trancados por uma forte camada de criptografia. Por outro lado, a BlockChain é pública, ou seja, qualquer pessoa pode verificar e auditar as movimentações registradas nela.

O bloco possui uma assinatura digital (hash), funciona como um identificador único, desta forma a garantia criptográfica que as informações do bloco não são violadas. Na criação de um novo bloco é carregado a hash do bloco anterior para assim junto com as transações ser gerado a hash final.

ilustração dos blocos

Vamos terminar por aqui, pois haverá muitos conceitos a ser explicado.