top of page
desvendando.png

BlockChain

Redes Distr    Registros     Fluxo    Componentes    Chaves    Bloco
Hash    Ledger    Mineradores    Na prática    Rev 1    Funcionamento
Mineração   ProofOfWork    Bloco-Nonce-Hash    Consenso-Conflito
Rev 2    Aplicações    Aplic.Blockchain    b c d e

A BLOCKCHAIN

a Blockchain está atraindo a atenção de grandes empresas, bancos e governos. Isso porque essa tecnologia proporciona benefícios como rastreabilidade, transparência e segurança nas negociações, além de redução de custos e prazos.

São justamente esses fatores que as instituições precisam para responder às demandas do mercado, pois o consumidor, cada vez mais consciente de seu papel como agente de mudanças, busca produtos e serviços com valor agregado.

Em outras palavras, além de custos e prazos reduzidos, o consumidor valoriza a ética nas relações. Nesse sentido, a transparência permite rastrear um produto em toda a cadeia de suprimentos, e o consumidor tende a optar por empresas que conciliam desenvolvimento econômico e responsabilidade ambiental e social.

Para os governos, a transparência também é fator primordial, tanto para as relações com fornecedores como com contribuintes, o que implica credibilidade. Esta tecnologia permite que os governos promovam sua eficiência e eliminem desperdícios e corrupção.

E para os bancos, a rapidez, a transparência e a segurança proporcionadas pela Blockchain correspondem à redução de custos nas transações.

E você? Você compraria um veículo pela internet? E um imóvel?

Imagine adquirir um apartamento, em cerca de 10 minutos, sem a intermediação de imobiliária, banco e cartório.

Considere que por meio da internet, navegando em uma rede de dados, você possa escolher o modelo e o valor de um imóvel, e enviar a solicitação de compra diretamente ao proprietário.

Em seguida, você realiza o pagamento, transferindo o valor diretamente ao vendedor. Pronto! O apartamento passa a ser seu.

Impossível?

Você deve estar pensando que jamais faria uma transação como essa pela internet, principalmente considerando os altos índices de fraudes que ocorrem todos os dias na rede. Isso nos leva a outro ponto: a segurança da informação.

Nessa rede, todas as informações referentes ao imóvel, ao vendedor e a você (se possui saldo, por exemplo) são validadas e confirmadas por vários usuários (também conhecidos por mineradores), de maneira a assegurar a autenticidade das informações.

Um registro digital permanente de compra e venda é gerado, distribuído para toda a rede e a transação é arquivada em todos os computadores da rede.

Mas, saiba que este tipo de transação é uma tendência não só para registros de imóveis e veículos, mas também para produtos da indústria. Aliás, esse tipo de transação já ocorre há algum tempo com segurança na comercialização de criptomoedas.

É o caso dos Bitcoins. Você sabe o que são?

O Bitcoin é uma moeda digital, ou criptomoeda, que utiliza a criptografia como elemento de segurança.

As transações com criptomoedas têm como características principais o anonimato entre as partes que negociam e a descentralização de registros.

Garante o anonimato pois, apesar de haver histórico de transações, a troca de bitcoins é similar a uma transação com dinheiro em espécie, ou seja, é anônima. O conceito de anonimato se aproxima das transações feitas em uma feira livre, por exemplo. Para que a transação seja feita, o comprador não precisa saber o nome do feirante e vice-versa. O foco recai sobre o produto e o dinheiro.

É processo descentralizado porque não há uma instituição financeira entre os envolvidos, a troca de moedas acontece sem intermediários.

A tecnologia que está por trás das transações de criptomoedas como o Bitcoin é a Blockchain.

O Bitcoin foi a primeira moeda digital, porém não é a única. Assim como existem outras blockchains, há outras moedas como a ETH (Ether) da Ethereum, o LTC do Litecoin, a XRP da Ripple e a Nano.​​​​​

redes central-distrib

Sistema de rede centralizado e Sistema de rede distribuído

Embora a tecnologia que suporta a Blockchain seja complexa, o seu conceito é bastante simples. Ela trabalha com o registro de dados criptografados em um sistema distribuído. Mas, antes de saber como essa tecnologia funciona, é importante que você entenda a diferença entre sistema de rede centralizado e sistema de rede distribuído.

 

 

 

 

 

 

 

 

 

Rede Centralizada

Em uma rede centralizada, um servidor armazena informações e controla as tarefas e os serviços realizados por usuários conectados a ele.

Nessa rede, todas as partes ou computadores dependem de um ponto (computador central) para distribuir a informação para os demais computadores.

As instituições financeiras, como os bancos, utilizam as redes centralizadas para efetuar as transações solicitadas por seus clientes.

 

Exemplo: Transferência de valores:

O usuário Anderson deseja transferir R$100,00 para o usuário Paulo.
O usuário Anderson aciona sua agência bancária, que fará a intermediação e o repasse do recurso para o usuário Paulo.
O banco armazenará o registro dessa operação para provar que ela foi efetuada.
Caso alguma parte conteste a operação, recorrerá ao banco para comprovar que essa transação foi realizada.

Portanto, o banco é o agente que controla e confirma essa operação.

 

 

 

 

 

 

 

 

 

 

 

 

 

Rede Distribuída ou Descentralizada

Já em uma rede distribuída, também conhecida como P2P (peer-to-peer, ponto a ponto ou pessoa a pessoa), todos os usuários estão interconectados e a comunicação ocorre diretamente entre as partes. Por isso, a expressão ponto a ponto. Não existe um servidor central que controla e registra as transações. No processo descentralizado, qualquer computador (também chamado de node ou nó) da rede pode receber, validar e compartilhar a informação para qualquer outro nó.

Portanto, não há um controle central. Todos os usuários estão “participando” do processo e são responsáveis pela segurança da rede, validando ou não uma transação.

Exemplo: Transferência de criptomoedas

O usuário Anderson deseja transferir 2 criptomoedas para o usuário Paulo.
O usuário Anderson transmite uma solicitação diretamente ao usuário Paulo.
Essa solicitação é também comunicada a toda a rede. Um dos nós verifica o saldo de Anderson para validar a transação. Em seguida, disponibiliza a informação na rede, que deve ser confirmada por pelo menos 51% dos nós para que, então, a transação seja concluída.

Essa transação ficará armazenada em todos os computadores da rede.

Caso alguma parte conteste a operação, haverá muitas pessoas (ou registros) que poderão comprovar a transação.

Portanto, não há uma administração central. Todos são clientes e todos são servidores, o que torna difícil fraudar o sistema, pois, para alterar um registro, seria necessário invadir a maioria dos computadores da rede e não apenas um servidor.

Importante!

Outro item referente à segurança é o registro na linha do tempo. Para modificar a data de um evento, seria necessário alterar o tempo em todos os registros. Essa alteração, atualmente, é impossível, pois a rede continua registrando os eventos constantemente, no momento em que eles acontecem.​​

rede centralizada.png
rede_distribuída.png
registro_das_transações.png

Registro das Transações

A rede distribuída da Blockchain compartilha o ledger, um tipo de livro-razão público, onde são feitos os registros de transações. Esse livro também pode ser chamado de livro contábil imutável (do inglês immutable digital ledger).

Os usuários da rede são responsáveis por manter a base de dados, que tem como características principais a segurança, a distribuição, a integridade dos dados e o histórico das transações registradas no bloco, que permanecem inalteradas após inseridas no ledger (por isso a expressão “livro contábil imutável”).

Cada transação registrada na Blockchain envolve um ou mais endereços (no caso de criptomoeda, a origem e o destino) e o registro de um evento, que é digitalmente assinadopara garantir a autenticidade da transação.

Cada transação, ou conjunto de transações, forma um bloco que é adicionado a outros blocos. Esses blocos formam uma cadeia (por isso o nome Blockchain - chain, em inglês, significa cadeia). O termo cadeia refere-se ao encadeamento existente na Blockchain, uma vez que um bloco aponta para o bloco anterior.

Funcionamento da BlockChain

Portanto, pode-se definir Blockchain como um registro de informações em um livro-razão público composto por uma rede P2P (peer-to-peer ou ponto a ponto) e um banco de dados distribuído e descentralizado.

Em uma rede P2P, todos compartilham dados e podem assumir funções diferentes. Alguns computadores ou usuários são chamados de nó. Toda informação lançada em um sistema que utiliza a tecnologia Blockchain é difundida entre todos os nós da rede de forma criptografada.

O banco de dados é constituído por blocos que, juntos, formam uma cadeia. Cada bloco possui informações ou transações e cada modificação ou nova informação inserida é registrada em um dos blocos da cadeia. Esse histórico de informação cria o livro-razão.

Os blocos são formados por hashs que são ligados ao bloco anterior, funcionando como links com os blocos anteriores até o bloco inicial, também conhecido como bloco gênesis (o bloco que deu origem à cadeia). A hash é formada como uma chave criptografada, o que confere ao sistema segurança quanto à informação registrada.​

registros
funcionamento da blockchain.png
fluxo das informações
fluxo de info.png
componentes BlockChain

Componentes da Blockchain

Os itens que compõem e permitem o funcionamento da Blockchain são a transação, o bloco, o hash e o livro-razão (ledger). Todos eles estão relacionados.

Um bloco pode ser entendido como um conjunto de transações ou informações validadas.

Transação é um registro digital. Tomando como base as transações com as criptomoedas, podemos dizer que uma transação é a solicitação de transferência de moedas entre partes.

O conjunto de transações dos blocos é registrado no livro-razão (ledger), como um livro contábil.

A função de hash (em português, funções de dispersão) tem como principal objetivo compilar dados de qualquer tamanho para um tamanho fixo.

componentes blockchain.png

Transação é um registro digital, normalmente composta pelos seguintes dados:​​

transação.png
hash, exemplo real.png

Veja como funciona com dados reais:

Observe, na imagem, que o ID da transação registra o envio de moedas (bitcoins).

Os endereços de entrada e saída da transação indicam, respectivamente,

a origem e o destino da transferência dos recursos.

chave publica-privada

Chave Pública e Chave Privada

A segurança e o anonimato das transações são garantidos pelas assinaturas digitais dos negociadores.

Essas assinaturas são realizadas a partir das chaves pública e privada. Para entender como essas chaves funcionam, você vai conhecer o conceito de criptografia de chaves assimétricas ou criptografia de chave pública.

A criptografia de chave pública faz uso de um par de chaves matematicamente conectadas:​

chave publica e privada.png

Computacionalmente, a geração dessas chaves é uma tarefa muito simples.

A chave pública é gerada a partir da chave privada. Mas, não é possível gerar a chave privada a partir da chave pública.

Dessa forma, podemos publicar a nossa chave pública em uma rede sem temer que a nossa chave privada seja descoberta.

Tudo bem, temos um par de chaves, mas como esse par é utilizado na Blockchain?

Para produzir um endereço válido na rede, inicialmente geramos a chave privada de um usuário.

A partir da chave privada, diversos algoritmos podem ser utilizados para derivar a chave pública.
Uma vez que geramos a nossa chave pública, submetemos tal chave ao algoritmo de hash SHA-256, obtendo nosso endereço.
Na rede bitcoin, por exemplo, esse endereço ainda é submetido a um outro algoritmo (RIPEMD-160),

que irá produzir o endereço bitcoin. Todo esse processo de codificação garante o anonimato nas transações em rede.

codificação de chave.png

Como gerar as chaves

A criptografia assimétrica é baseada em duas chaves: a chave privada e a chave pública. Imagine que você deseja transmitir um arquivo em uma rede, e busca garantir que apenas o destinatário possa ler seu conteúdo. Para isso, você pode fazer uso da chave pública desse destinatário para cifrar o documento, criptografando-o. Somente com a chave privada (que fica em posse do destinatário) será possível decifrar o texto. Observe a imagem abaixo:​

chave.png

A geração dessas chaves se dá a partir de números aleatórios, normalmente números primos. Podemos resumir esse processo como segue, simulando o algoritmo RSA, um dos mais aplicados:

  • Escolha dois números primos distintos, p e q;

  • Calcule n 𝑛=𝑝∙𝑞

  • Calcule z 𝑧=(𝑝−1)∙(𝑞−1)

  • Obtenha um número 𝑒 (𝑒 :𝑛ú𝑚𝑒𝑟𝑜 𝑝𝑟𝑖𝑚𝑜 𝑞𝑢𝑎𝑙𝑞𝑢𝑒𝑟, então, escolha um número)

  • Calcule 𝑒∙𝑑(𝑚𝑜𝑑 𝑧)=1

  • O par (e,n) é a chave pública, e o par (d,n) é a chave privada.

Acompanhe um exemplo prático:

Suponha dois números primos: p = 29 e q = 37

 

 

 

 

 

 

 

 

 

 

 

 

Então, agora podemos montar o par de chaves:
Chave pública = (e,n) = (71,1073)
Chave privada = (d,n) = (1079,1073)

gerando chave.png
o bloco

O Bloco

Um bloco pode ser entendido como um conjunto de transações ou informações validadas.

Uma vez que a transação é recebida, ela pode ser transmitida aos outros nós, para que possa ser incluída na Blockchain. As transações são incluídas na Blockchain pelos nós mineradores (miners).

Além da lista de transações, um bloco possui as seguintes partes:​

cabeçalho_do_bloco.png

Bloco Gênesis

Na Blockchain, a hash de cada bloco aponta para o bloco anterior. Todas as transações que um bloco possui são identificadas criptograficamente por uma hash. No cabeçalho do bloco, as transações são identificadas por uma hash única denominada Merkle Root Hash, que representa a raiz de uma árvore de transações conhecida como Markle Tree.

O bloco inicial, conhecido como bloco gênesis, não possui registro de transações de outros blocos; por isso, o campo de hash do bloco anterior normalmente apresenta valor 0 nesse campo.

Outros campos são a marcação de tempo, mais conhecida como timestamp, que proporciona a ordenação temporal contínua dos blocos e eventos na cadeia, e um valor denominado nonce.

 

 

 

 

 

 

 

 

Imagine, por exemplo, que para alterar uma informação no Bloco 1, teríamos que alterar o Bloco 2, que teria sua Hash alterada e impactaria o Bloco 3, e assim por diante. Ou seja, algo impraticável.

Você pode estar pensando: mas, com o poder computacional existente, essa tarefa não seria fácil?

Alterar valores e recalcular hashes é fácil computacionalmente; por isso, para evitar fraudes, a Blockchain exige um trabalho adicional para inclusão de novos blocos, denominado PoW-Proof of Work (em português, Prova de Trabalho).

Você conhecerá mais sobre este conceito, as funções do nonce e do difficulty target mais adiante, quando abordaremos o trabalho dos mineradores para incluir um novo bloco na Blockchain.

Existem outras formas de prova de trabalho (PoW), tal como a Proof of Stake,

mas, aqui você vai conhecer a clássica PoW.

bloco genesis.png
proof of work.png
o Hash

O Hash

As funções de hash (em português, funções de dispersão) são essenciais na Blockchain, pois têm como principal objetivo compilar dados de qualquer tamanho para um tamanho fixo. Os valores retornados por uma função de hash são chamados de valores ou códigos hash (em inglês, digest). Qualquer modificação dos dados submetidos a uma função de hash irá modificar a hash gerada.

Dessa forma, na tecnologia da Blockchain, os dados de um bloco são vinculados a uma função de hash, gerando a hash do bloco, que será utilizada pelo bloco seguinte, formando o encadeamento dos blocos. Portanto, qualquer modificação no bloco irá modificar a hash que o representa e resultará numa bifurcação do encadeamento dos blocos, evidenciando uma alteração na cadeia.

Observe a representação do trabalho das funções:

hash.png

              https://passwordsgenerator.net/sha256-hash-generator

Os algoritmos de hash são conhecidos por serem unidirecionais (em inglês, one-way). Ou seja, não é possível descobrir os dados originais a partir de uma hash. Por isso, as hashes na Blockchain garantem a confidencialidade dos dados originais, além do fato de o cálculo da hash de um bloco ser uma tarefa computacionalmente barata e rápida.

Um algoritmo de hash muito utilizado nas implementações de Blockchains é o SHA-256 (Secure Hash Algorithm), que produz uma saída de 256 bits para qualquer dado de origem.

A saída desse algoritmo é um conjunto de 32 caracteres, isto é:

Cada caractere possui o tamanho de 8 bits, logo, 8 bits x 32 caracteres = 256 bits

Você pode estar pensando: O que significa a saída do algoritmo de 256 bits?

Isto significa que há 2256 possíveis valores de saída, o que equivale a:

115.792.089.237.316.195.423.570.985.008.687.907.853.269.984.665.640.564.039.457.584.007.913.129.639.936
possíveis valores

Portanto, é muito difícil dois dados de entrada diferentes apresentarem a mesma hash.

Na verdade, mesmo que haja a possibilidade, os algoritmos de hash modernos possuem formas de tratar tais questões e evitar essa coincidência.

O Ledger

O Livro Razão

O conjunto de transações dos blocos é registrado no livro-razão (ledger), como um livro contábil.

Essa, aliás, é uma das grandes inovações da tecnologia Blockchain, muito utilizada nas criptomoedas. O controle das transações não é centralizado, ou seja, não há uma instituição bancária ou qualquer outra instituição que organize o registro de todas as informações de transações.

O uso de um livro-razão distribuído se destaca em relação ao controle centralizado, uma vez que centralização apresenta as seguintes desvantagens (NISTIR, 2018):

desvantagens_centralização.png

Registro no Livro Razão

Não se pode afirmar que o controle centralizado é ruim ou que sempre tem o objetivo de alterar transações passadas. Atualmente, grande parte do mercado financeiro mundial possui tal controle, cujo interesse é manter as transações íntegras e sob seu monitoramento.

Diferentemente dos sistemas centralizados, na Blockchain cada nó da rede distribuída possui uma cópia do livro-razão. Dessa forma, qualquer modificação do livro-razão seria facilmente reconhecida pelos demais nós, já que que cada nó possui uma cópia local e pode comparar e identificar alterações indevidas.

Por isso, uma das características principais da tecnologia Blockchain é a segurança, o que minimiza o risco de fraudes.

Veja um exemplo de um conjunto de transações registradas em um livro-razão. Para conhecer os detalhes, clique em cada uma das transações.

livro razão, transações.png

O registro mostra que Alice recebeu 25 moedas digitais. O campo Entrada ou Inputs aponta para a origem do “dinheiro” a ser utilizado pela transação. Em computação, normalmente 0 representa o primeiro item ou saída do bloco anterior.

Na segunda transação, há saída de 17 moedas para Bob, restando 8 para a Alice (25-17= 8, ou seja, o troco). A transação é assinada digitalmente por Alice, de modo que os demais nós da rede podem validar a autenticidade da transação.

Em seguida, Bob transfere 8 moedas para Carol, restando-lhe 9 moedas (17-8= 9) e assina digitalmente a transação.

Na 4ª transação, Alice transfere mais 6 moedas para Davi, restando-lhe 2 moedas ( 8-6=2) e novamente assina digitalmente a transação. O número 1 indica que Alice já assinou realizou/assinou uma transação anterior.

Consenso ( PROTOCOLO )

Em um livro-razão distribuído, as atualizações são construídas e registradas por cada nó da rede.
Os nós votam nessas atualizações, garantindo que a maioria concorde com o novo registro. Essa votação, que visa obter um acordo sobre a nova situação do livro-razão, é denominada consenso. Uma vez que o consenso é alcançado, o livro-razão distribuído é atualizado e todos os nós da rede irão armazenar sua última versão.

Para melhor compreender o consenso, imagine que uma transação, que chamaremos de número 4, necessita ser incluída no livro-razão. Cada nó da rede possui uma lista de transações pendentes. Como se trata de uma rede distribuída, uma vez recebida a transação, um nó irá transmiti-la para toda a rede para ser aceita, validada pela maioria dos nós (consenso, que será detalhado posteriormente) e, então, passará a integrar o livro-razão.

Veja um exemplo:​

consenso.png
mineradores

Mineradores

Os usuários podem submeter transações para inclusão na Blockchain por meio de algum nó da rede. Os nós que realizam essa inclusão são denominados mineradores (miners).

Eles são um grupo de nós da rede Blockchain que mantém a estrutura da cadeia de blocos, adicionando novos blocos com transações que estavam pendentes de validação ou informações recém-validadas.

na prática

Blockchain na Prática

 

1. Blockchain humanitária

 

No campo de refugiados na Jordânia, fronteira com a Síria, o supermercado Tazweed não aceita dinheiro nem cartões de crédito ou débito. Os refugiados pagam suas compras por meio da leitura da íris ocular.

Trata-se do sistema “Eye-Pay” do “World Food Programme Building Blocks“, uma das primeiras iniciativas no uso da Blockchain para ajuda humanitária.

 

O programa da WFP-World Food Programme, uma adaptação da Blockchain Ethereum com a base da dados da ONU, é usado para distribuir ajuda em dinheiro para alimentos a mais de 100.000 refugiados sírios na Jordânia. Até o final de 2018, o programa cobrirá todos os 500 mil refugiados no país. Se o projeto for bem-sucedido, poderá acelerar a adoção de tecnologias blockchain nas agências da ONU e em outras instituições.

 

Com o uso da Blockchain, a WFP, que antes via cerca de US$ 1,3 bilhões serem consumidos anualmente por taxas bancárias, conseguiu reduzir esse gasto em aproximadamente 98%, pois agora não utiliza dinheiro em espécie.

Nesta mesma linha, a ONU, com o apoio da Microsoft e da Accenture, planeja usar a Blockchain para fornecer identidade aos 22,5 milhões de refugiados no mundo, a fim de que cada pessoa possa ter acesso ao seu histórico onde e quando quiser. Esse uso da Blockchain também irá auxiliar as instituições de ajuda a compartilhar dados com segurança.

Normalmente, ao chegar a um campo de refugiados, as pessoas não têm como comprovar sua identidade, o que é essencial para acesso aos serviços de saúde, financeiros e educacionais.

 

Com a identidade digital, ID2020, quando um refugiado chegar a um acampamento, seu rosto, íris e impressões digitais poderão ser escaneados e os seus dados biométricos armazenados, com seu nome, em um dos servidores da instituição de ajuda.

A rede de identificação digital blockchain criará um “selo”, um identificador único entre o refugiado e os dados nos servidores, que prova que eles foram autenticados para cada serviço que recebem, de alimentos a vacinas.

Em outras palavras, para obter acesso à plataforma, o refugiado deve permitir que seus olhos sejam escaneados e que suas impressões digitais sejam colhidas, formando assim sua identificação digital que lhe permite comprar itens em estabelecimentos que possuem equipamentos do EyePay.

 

As transações realizadas são armazenadas na blockchain, consolidadas em um livro-razão digital. Ao invés das chaves privadas para comprovar a propriedades dos recursos financeiros, os olhos dos refugiados atuam na verificação da autenticidade.

2. Blockchain no comércio global

Em 2016, a IBM e a Maersk anunciaram a intenção de construir uma plataforma de logística baseada na tecnologia Blockchain para otimizar o comércio global, reduzir o custo das exportações em aproximadamente 10% (dez por cento) e aumentar o volume de negociação em até 15% (quinze por cento). Com a eliminação de documentos físicos, além de garantir acesso à informação em tempo real, a plataforma digital TradeLens imprime transparência e eficiência aos processos.

Com o objetivo de conectar, em uma rede global, toda a cadeia de suprimentos, além das empresas diretamente envolvidas no processo de compra e venda, atores como portos e terminais, alfândegas e transportadoras, desde a sua criação a plataforma tem hospedado mais de 163 milhões de negociações.

O acesso à informação em tempo real beneficia todos os atores do processo. Acompanhe:

Exportador:

Acompanhar seus produtos desde o momento em que saem de seus domínios até a entrega ao destinatário.

Reduzir ou eliminar documentos físicos e intermediários.

Proporcionar transparência e segurança às suas negociações. Eliminar risco de fraudes.

Transportador terrestre:

Obter informação sobre localização da carga, o que permite, entre outras coisas, o planejamento,

a fim de evitar filas para carregar ou descarregar.

Terminais e portos:

Planejar e otimizar o uso de recursos humanos, máquinas, equipamentos, espaço físico para armazenamento,

bem como estimar receitas e despesas. Além de facilitar a comunicação e a colaboração com as autoridades portuárias.

Transportador aéreo ou marítimo:

Ter acesso à informação sobre a localização da carga,

facilidade de comunicação com terminais e portos acerca de autorizações e/ou restrições.

Alfândegas (autoridades portuárias):

Planejar a fiscalização, mitigar riscos e ameaças, evitar negócios ilícitos, reduzir documentação impressa.

Melhorar a comunicação com terminais e portos.

Importador:

Acompanhar seu pedido desde o momento em que sai do país de origem. Reduzir ou eliminar documentos físicos e intermediários. Garantir transparência e segurança às suas negociações. Eliminar risco de fraudes.

revisa 1 de 2

Resumo 1 de 2

Neste módulo, você conheceu o conceito da tecnologia Blockchain, sua estrutura e funcionamento.

Você viu que cada transação (criptomoedas, contratos, compra e venda) é realizada diretamente entre as partes (peer-to-peer), validada por todos nós (nodes) e incluída na Blockchain pelos mineradores (miners), formando uma cadeia de blocos com informações criptografadas (hash) que ficam registradas e armazenadas em toda a rede, funcionando como uma “livro-caixa digital” (ledger), tornando-se um histórico para a próxima vez que houver negociação.

Essa estrutura de compartilhamento de informações criptografadas por meio de uma rede de dados distribuída permite mais segurança nas transações, uma vez que não há um controle central. Como todos os usuários integram o processo e são responsáveis pela autenticidade das informações, a Blockchain torna-se uma rede protegida contra fraudes que ocorrem em ambientes digitais. Por isso, tem despertado o interesse de governos, bancos e empresas.

revisao 1 de 2.png
funcionamento

BLOCKCHAIN EM OPERAÇÃO,  

FUNCIONAMENTO DA BLOCKCHAIN

 

Neste módulo, você conhecerá o funcionamento da Blockchain. Verá como os novos blocos são adicionados na cadeia e como os conflitos são resolvidos. Esperamos que ao final deste módulo, você tenha entendido como a Blockchain funciona e por que o trabalho de mineração é fundamental para a garantir a segurança e a legitimidade de cada transação. Conforme você viu no primeiro módulo, uma solicitação de transação é transmitida a todos os nós mineradores da rede para ser processada, validada e armazenada na rede.

Observe o infográfico para compreender melhor o funcionamento da Blockchain:​​

Os mineradores vão buscar formar um novo bloco sempre que houver transações pendentes. Logo, a busca por um novo bloco se inicia quando transações são submetidas à rede. O processo da transação, desde a sua solicitação até sua validação (identificação das partes envolvidas, análise das chaves públicas, dentre outros fatores), dura em torno de 10 minutos. A transação requer que um bloco seja criado e, para isso, o minerador deverá resolver um enigma através da prova de trabalho (proof of work).

Através da prova de trabalho é que se garante a validade da transação. Uma vez recebidas, tais transações são inseridas através da estrutura de dados da merkle tree e armazenadas no bloco que será minerado para ser inserido na rede Blockchain. Tal bloco é denominado bloco candidato. Nas próximas telas, você vai conhecer mais detalhes sobre o processo de mineração de dados, prova de trabalho e validação (consenso).

funcionamento.png
mineração

Mineração de dados

Os mineradores vão buscar formar um novo bloco sempre que houver transações pendentes.

Logo, a busca por um novo bloco se inicia quando transações são submetidas à rede.

O processo da transação, desde a sua solicitação até sua validação

(identificação das partes envolvidas, análise das chaves públicas, dentre outros fatores), dura em torno de 10 minutos. A transação requer que um bloco seja criado e, para isso, o minerador deverá resolver um enigma através da prova de trabalho (proof of work).

Através da prova de trabalho é que se garante a validade da transação.

Uma vez recebidas, tais transações são inseridas através da estrutura de dados da merkle tree e armazenadas no bloco que será minerado para ser inserido na rede Blockchain. Tal bloco é denominado bloco candidato.

O termo minerar é uma referência ao processo de mineração de metais. Assim como encontrar uma metal precioso, como ouro, por exemplo, é uma tarefa trabalhosa, o processo de mineração envolve a resolução de cálculos complexos. Por isso, exige computadores com alto poder de processamento.

Para adquirirem capacidade suficiente para realizarem a mineração de blocos, as diversas placas de vídeo dessas máquinas (computadores) são otimizadas a fim de executar as mesmas tarefas repetidas vezes. Além disso, somado ao hardware, é necessário ter um software (programa) específico para realizar a mineração. Os equipamentos destinados às operações de mineração estão se tornando cada vez mais sofisticados, sendo utilizados desde CPUs convencionais a modernos data centers profissionais.

Dependendo da exigência da rede para a operação de mineração, uma máquina pode não ser suficiente para resolver o desafio e incluir um bloco. Dessa forma, pequenos mineradores podem se juntar para resolver o desafio coletivamente, e os ganhos são divididos entre todos de acordo com o processamento de cada máquina.

Custo da Mineração de Dados

A atividade de mineração consome muita energia elétrica. Consequentemente, a rotina para incluir um novo bloco tem um custo elevado.

Ela é custosa pelos seguintes motivos:

  • Alto custo das máquinas (hardware).

  • Necessidade de instalação de sistemas de refrigeração devido o calor gerado pelos processadores e a necessidade de temperatura controlada para otimizar o poder de processamento.

  • Necessidade de um cluster (grupo) de máquinas para aumentar poder de processamento e velocidade para obtenção da solução do bloco.

  • Necessidade de um espaço físico exclusivo para as máquinas devido o calor e o barulho gerado pelas várias ventoinhas das máquinas.

 

Segurança

Como os blocos estão em uma cadeia, alterar um bloco requer alterar todos os demais. Como a mineração é custosa e leva tempo,

provavelmente novos blocos serão adicionados antes que um nó mal intencionado consiga alterar toda a cadeia, minimizando, assim, a probabilidade de fraudes.

Mas, então, você pode estar se perguntando: E o que o nó minerador ganha?

Similar à vida real, eles ganham uma parte do tesouro que encontram. No mundo das moedas virtuais, eles ganham uma quantia de criptomoedas em recompensa ao trabalho de mineração. Na prática, é criada uma transação (denominada coinbase) que registra a recompensa a ser paga ao minerador quando ele conseguir incluir um bloco na cadeia.

Mas, de forma geral, incluir a transação em uma rede Blockchain tem um preço, denominado custo da transação, que constitui as taxas pagas pelos usuários que estão solicitando transações.

Controle de emissão de moedas

No Bitcoin, a cada 210.000 blocos, a recompensa em bitcoin é reduzida em 50%. Este processo é chamado Halving ou Halvening e ocorre em cerca de 04 anos. Por exemplo, em 2009, a cada novo bloco adicionado, o minerador recebia recompensa de 50 bitcoins. Em 2016, a recompensa já estava em 12,5 bitcoins a cada novo bloco. O limite de moedas na rede é de 21 milhões, de modo que após atingir esse numero, não haverá recompensa e os mineradores serão remunerados pelas taxas cobradas no processamento das transações.

O gráfico abaixo demonstra esse efeito.

inflação_monetaria_bitcoin.png

As taxas e as recompensas em bitcoin (por exemplo) pagam o trabalho do minerador. Mas quando o limite da moeda for atingido, a remuneração se dará pela taxa da transação.

proof of work

PoW, Proof of work

Proof of work ou prova de trabalho é a rotina computacional que está por trás da mineração. De uma maneira simplificada, a prova de trabalho mais conhecida para um novo minerador consiste em obter, do bloco candidato, uma hash que apresente um certo número de zeros iniciais. Por exemplo, um novo bloco só pode ser aceito quando sua hash contiver 5 zeros. Este é o requisito mínimo para a hash ser válida. É a dificuldade alvo.

Veja:

00000E6CC2661A6E263A391D88530B72C4491E43A0567BE6C5C5E5E0CF67A10D

O número de zeros, normalmente, está indicado no campo difficult target (ou dificuldade alvo) de um bloco.

Você pode estar se perguntando: como um minerador faz para que a hash do bloco candidato vá sendo modificada, de modo a cumprir o desafio? Bom, é aí que entra o campo Nonce.

Nonce

O nonce é a quantidade de tentativas utilizadas para encontrar uma hash válida, que contenha a quantidade de zeros iniciais determinada pelo se grau de dificuldade. O processo de encontrar um nonce que corresponde a uma hash válida é a mineração.

À medida que a dificuldade aumenta, o número de possíveis hashes válidas diminui. Com menos hashesválidas, é preciso mais energia de processamento para encontra-las.

Imagine, por exemplo, que desejamos minerar um bloco fictício cujo conteúdo se resume na frase: “BlockChain - SENAI-SP”. Suponha que a dificuldade (target value) seja 2, ou seja, a hash deve apresentar 2 zeros iniciais. Ao aplicarmos a Hash SHA256 à frase, obtemos o seguinte resultado:

2b8b6ecf60104d0f58f9c2e6b38fffaff917880ea5fe9aa256139ee13ad2f391

Observe que essa hash não atende à solicitação (target value 2) porque não se inicia com dois zeros.

Dessa forma, vamos incrementar o Nonce para 1, de modo que a frase será “BlockChain - SENAI-SP1”. Vamos obter:

7e0330e92fab6f01d68db5fd4c6b795af062e5afa638d2548e7305b415b0a3ef.

Como você pode observar, ainda não temos os 2 zeros iniciais.

Em uma simulação computacional, para obter 2 zeros iniciais para a frase de nosso exemplo, o nonce foi de 1398. Ou seja, o computador executou 1398 tentativas para obter uma hash válida para o desafio.

Se o desafio for de 3 zeros, o computador executa 1546 operações. Para 4 zeros, são 42447 operações. Para 5 zeros, são necessárias 752877 tentativas. Ou seja, apenas 1 hash em mais de 750 mil tentativas conseguiu atender ao requisito de possuir 5 zeros iniciais.

Portanto, quanto maior o valor do desafio, mais tempo o minerador levará para conseguir obter uma hash válida.

IMPORTANTE!

As redes Blockchain aumentam o grau de dificuldade com o objetivo de aumentar a proteção. No caso de comercialização de criptomoedas, como a Bitcoin, por exemplo, aumentar o grau de dificuldade também serve para equilibrar a oferta de moedas.

Funcionamento da PoW (PROOF  OF  WORK)

Observe o processo para entender o passo a passo:

A imagem abaixo representa um bloco gênesis, que não possui registro de transações anteriores:

Na verdade, o timestamp não é registrado como “Qua, 8, Ago, 2018” e sim na marcação temporal UNIX, que é um calendário utilizado amplamente por computadores, no qual uma data é representada pela contagem de segundos decorridos desde a meia-noite de 01 de janeiro de 1970, UTC. Por exemplo, “Qua 8 Ago, 2018, 14:40:00” é representada na marcação UNIX como: 1533750000​

bloco, nonce, hash
cabeçalho_do_bloco_2.png

O "nonce" em um bloco bitcoin é um campo de 32 bits (4 bytes) cujo valor é ajustado por mineiros para que o hash do bloco seja menor ou igual ao alvo atual da rede. O restante dos campos não pode ser alterado, pois eles têm um significado definido.

Qualquer alteração nos dados do bloco (como o nonce) fará com que o hash do bloco seja completamente diferente. Como se acredita inviável prever qual combinação de bits resultará no hash direito, muitos valores diferentes de nonce são tentados, e o hash é recalculado para cada valor até que um hash menor ou igual ao alvo atual da rede seja encontrado. O alvo requerido também é representado como a dificuldade, onde uma dificuldade maior representa um alvo menor. Como este cálculo iterativo requer tempo e recursos, a apresentação do bloco com o valor correto do nonce constitui uma prova do trabalho.

composição da hash.png

Composição da HASH

Em síntese, cada hash é composta por: número de blocohash anterior, marcação de tempo, dadosnonce, submetidos ao algoritmo de criptografia Hash SHA256, gerando, assim, a hash do bloco.

O grau de dificuldade é definido conforme a blockchain cresce. Por exemplo, na mineração do Bitcoin, a dificuldade é ajustada a cada 2016 blocos. Dessa forma, a dificuldade cresce proporcionalmente ao aumento a cadeia de blocos.

Consenso e Conflito

Consenso

Como você viu no primeiro módulo, a Blockchain é um registro distribuído de informações,

por isso não existe um controle ou autoridade central que garanta que as operações foram realizadas.

Em decorrência, a fim de garantir a veracidade e segurança de cada transação, o minerador que consegue resolver o desafio insere o bloco na sua cadeia local e o transmite para outros mineradores (que até então estavam competindo na resolução de seus desafios) para que eles validem e aceitem essa solução.

O bloco de informações somente será gravado na rede se houver a aprovação de 51% de mineradores. Este é o mecanismo de prova de trabalho mais comum utilizado em redes Blockchain, o chamado consenso.

Após esse bloco entrar na cadeia, o trabalho é reiniciado. Um novo conjunto de transações é montado e, consequentemente, inicia-se a mineração de um novo bloco candidato.

Importante

Há tecnologias de Blockchain que remuneram também alguns dos mineradores que se aproximaram da resolução do desafio para criar um novo bloco, a fim de compensar o esforço do minerador.

Conflito

O que impede que dois nós (mineradores) consigam resolver o desafio do bloco candidato no mesmo instante de tempo?

A resposta é: nada impede.

Nessa situação, dois blocos válidos são transmitidos à rede e vão atingir nós mais próximos do nó vencedor do desafio.

Imagine a situação em que dois nós A e B resolvem o desafio e divulgam seus blocos na rede.​

conflito 1.png

Por questões de latência e conectividade da rede, parte dos nós irá receber o bloco do nó A e a outra parte o bloco do nó B.

A Blockchain está estruturada para atuar nessas situações de conflito por uma regra muito simples: a cadeia mais longa vence, ou seja, a rede irá esperar um novo bloco.

conflito 2.png

Com o principio chamado “a cadeia mais longa vence”, quando há um conflito na rede (duas cadeias possíveis),

a versão a ser considerada válida será aquela que tiver o maior numero de blocos.

Resolução de Conflito

Observe a imagem abaixo. Em algum momento, a Blockchain apresentou dois possíveis caminhos: - o azul ou o vermelho (observe que ambos os caminhos têm os blocos 50, 51 e 52). Quando o caminho azul ganhou o bloco 53, ele ficou maior que o vermelho, de modo que passou a ser a cadeia mais longa e, então, o consenso foi estabelecido na rede, passando a ser essa a cadeia válida.

Eventuais transações que estavam no caminho que deixou de ser válido voltam para o estado pendente e passarão por um novo processo de mineração.

resolução_de_conflitos.png

Observe como esse mecanismo é simples e robusto. Em uma eventual alteração de um bloco da cadeia, a prova de trabalho é um elemento que irá dificultar a mudança de todos os nós subsequentes. Mas a regra da cadeia mais longa vence também é um excelente mecanismo de segurança. Uma vez que novos nós estão sendo criados, a cadeia ficará maior e a versão adulterada da cadeia será descartada pelos nós da rede.

Este processo de bifurcação também é considerado, na Blockchain, um “fork” (do inglês, garfo). Neste curso, não vamos nos aprofundar neste conceito.

resumo 2 de 2

Resumo 2 de 2

Conforme você viu, para que um novo bloco de informações seja adicionado na Blockchain, uma solicitação de transação é transmitida a todos os nós mineradores da rede para ser processada, validada e armazenada na rede. O processamento dessas informações, desde a sua solicitação até sua validação, envolve, entre outras coisas, a identificação das partes envolvidas e a análise das chaves públicas.

Neste módulo, você conheceu mais detalhes sobre como novos blocos são validados e adicionados na Blockchain.

Você viu que o trabalho de mineração é essencial para esse processo, pois o minerador que primeiro resolver o desafio (encontrar uma hash válida, composta por número de bloco, hash anterior, marcação de tempo, dados e nonce que transcreve os dados da transação), transmite a prova de seu trabalho (proof of work) para os demais nós mineradores validarem a solução encontrada. Somente após o consenso de 51% da rede, a transação é validada e o bloco incluído na cadeia.

Além disso, você viu que o trabalho de mineração requer alto investimento em energia e equipamentos com alto poder de processamento. Todos esses elementos (desafio, prova de trabalho, consenso, alto custo computacional) visam inviabilizar a alteração indevida de blocos e garantir mais segurança nas transações. No próximo módulo, você vai conhecer como a tecnologia Blockchain pode ser aplicada em outras situações.

resumo 2 de 2.png
bottom of page