Por Maurício Lopes

Em uma primeira busca mais técnica sobre Bitcoin, o leitor pode se deparar com conceitos pouco familiares: redes Peer-to-Peer, protocolos de rede, criptografia e muitas mais. O Bitcoin é uma fusão dessas e outras tecnologias que o precederam. A intenção deste artigo é esclarecer alguns desses conceitos, explicar como eles se relacionam e fazer você entender por que o Bitcoin é uma invenção brilhante que atrai cada vez mais adeptos no mundo todo.

A primeira coisa que você tem que entender é que, muito mais que um software rodando nos computadores de milhões de usuários, o Bitcoin é um conjunto de regras que dão vida a um sistema monetário livre via internet.

Qual problema o Bitcoin veio solucionar?

Em novembro de 2008 uma pessoa com o pseudônimo de Satoshi Nakamoto apresentava a ideia do Bitcoin através de um documento postado em um fórum de programadores, intitulando-o: A Peer-to-Peer Eletronic Cash System (Um Sistema de Transferência Eletrônica Ponto-a-Ponto). O objetivo explícito de Nakamoto era criar um sistema de transferência eletrônico que não dependesse de uma terceira parte, evitando assim os custos e problemas inerentes à intermediação financeira. Sua invenção, no entanto, trazia consigo algo muito maior: uma moeda sem dono, sem fronteiras, funcionando de maneira ininterrupta na internet. Em outras palavras, uma moeda verdadeiramente descentralizada.

Se você não acredita em mim ou não entende, eu não tenho tempo para tentar convencê-lo, me desculpe.” (Satoshi Nakamoto)

Antes da divulgação do Bitcoin, nenhum modelo de pagamento eletrônico podia operar sem instituição intermediadora. O motivo é simples: diferentemente das moedas físicas, as moedas em sua forma eletrônica precisam ter um banco de dados que registre cada transação. É a única forma viável de posteriormente comprovar as posses de cada usuário. Até hoje essa solução implicava na necessidade de confiança de todos em alguma instituição financeira capaz de exercer tal função. Como bem sabemos, esse arranjo invariavelmente leva a uma tomada de decisões centralizada por parte destes que, então, passam a deter o monopólio da moeda.

Sendo assim, quais problemas o Bitcoin veio solucionar? Todos os decorrentes do nosso atual sistema centralizado de transferência monetária. Cito aqui os principais:

– Política monetária centralizada: A fusão entre bancos e estado deliberadamente manipula e utiliza o sistema monetário com o propósito de regular “excessos do mercado” e “estimular a economia”. Em detrimento do poder de compra de toda a população, decisões são tomadas para o favorecimento de uma minoria posicionada estrategicamente no âmbito político. O Bitcoin possui sua emissão controlada via software e simula a taxa de extração de commodities como ouro e prata.

O problema central das moedas convencionais é toda a confiança necessária para seu funcionamento. É confiado aos bancos centrais o dever de não as desvalorizar, mas a história das moedas fiduciárias é permeada de violações a essa confiança.” (Satoshi Nakamoto)

A história do dinheiro é a história dos esforços do governo para destruir o dinheiro.” (Ludwig von Mises)

– Custos de intermediação: “O comércio na internet passou a confiar quase exclusivamente em instituições financeiras atuando como intermediadoras para processamento de pagamentos. Enquanto o atual sistema funciona bem para a maioria das transações, ele ainda sofre com a inerente fraqueza do sistema baseado na confiança. Transações irreversíveis não são possíveis. Instituições financeiras não podem evitar de se tornarem mediadoras entre disputas. Os custos da mediação aumentam o custo das transações e inviabilizam transações de baixo valor. Há um custo ainda maior relacionado a incapacidade de se fazer pagamentos irreversíveis para serviços irreversíveis. Com a possibilidade de se reverter transações, a necessidade de confiança aumenta. Mercadores precisam saber muito mais sobre seus clientes do que seria necessário. Ainda assim, uma certa porcentagem de fraude é aceitável e inevitável. Estes custos e incertezas podem ser evitados usando-se moeda física, mas nenhum mecanismo até então era capaz de realizar transações por algum meio de comunicação sem uma intermediação.”[1] (Satoshi Nakamoto)

– Privacidade / Anonimato: Como dito, há uma necessidade de se fornecer muito mais informações pessoais do que seria preciso para concretizar uma transação. Na rede Bitcoin, cada pessoa possui apenas um ou mais pares de “chaves” utilizadas para atribuir posse a uma quantia de bitcoins – nada disso vinculado a uma identidade. Aqui o Bitcoin se iguala ao dinheiro físico: não há necessidade de o vendedor conhecer o pagador e nem a origem do seu dinheiro.

– Segurança: Na posse de tanta informação, naturalmente os bancos se tornam excelentes alvos para ataques cibernéticos e golpes. Nossas informações estão à mercê da honestidade de funcionários e da segurança de seus sistemas. Em uma rede descentralizada não há esse problema. Contudo, é transferida ao usuário a responsabilidade de escolher bons métodos de proteção às suas chaves de acesso.

– Double Spending: É o cancelamento de um pagamento após o recebimento do produto ou serviço. Em sua natureza descentralizada, veremos como o Bitcoin resolveu esse problema de forma inovadora. Ainda que demande em média 10 min para ter maior confiabilidade, a transação torna-se irreversível.

Bitcoin, uma rede Peer-to-Peer

Para retirar o intermediador das transferências, Satoshi transferiu a responsabilidade de manter o registro das transações para os próprios usuários. Transformando o Bitcoin em uma rede Peer-to-Peer – como o antigo Napster ou o BitTorrent. Nessas redes, o próprio usuário é responsável por armazenar os arquivos que serão compartilhados. Cada usuário fornece e consome os serviços da rede. É diferente dos sistemas tradicionais onde uma empresa disponibiliza a informação através de um servidor central e os clientes apenas fazem requisições: Google, Amazon, Facebook e muitas outras.

No âmbito do Bitcoin, a dúvida imediata que surge é: se os próprios usuários serão os responsáveis por manter o banco de dados das transações, como garantir que todos usuários possuam a cópia correta e atualizada do registro? Em outras palavras, como garantir que os usuários entrem em consenso sobre as transações que já ocorreram? Lembre-se que não existe um servidor central para consultar. Cada usuário possui sua própria cópia do registro geral de transações. Pois este foi o problema que Satoshi resolveu e, assim, deu origem a uma das tecnologias mais surpreendentes deste século.

O Bitcoin permanecerá, na minha opinião, uma implacável anomalia que se recusa a ir embora – um cisne negro que não pode ser ignorado ou extinto.” (Andreas Antonopoulos)

O Problema dos Generais Bizantinos

O problema dos generais bizantinos é uma abstração para ilustrar os problemas na tentativa de coordenar a ação entre dois ou mais indivíduos que não estão fisicamente próximos. Utilizaremos esse modelo para entender como o Bitcoin mantém o consenso do seu registro de transações entre seus usuários.

Tomemos o exemplo mais simples onde apenas dois generais precisam atacar juntos a fortaleza do Rei. Para obterem sucesso na batalha, é necessário que ambos ataquem ao mesmo tempo. Caso contrário, as tropas do império serão capazes de derrotá-los. Podendo se comunicar apenas através de um mensageiro, os generais passam a travar o seguinte diálogo:

– General A: “Vamos atacar às 14:00!”;

Mesmo que o General B receba a mensagem, o General A não realizará o ataque, pois não saberá se a mensagem chegou. Então, o General B envia uma resposta para confirmar o recebimento:

– General B: “Mensagem recebida. Atacaremos às 14:00!”;

O General B não saberá se o General A recebeu a confirmação e também não realizará o ataque. Não importa quantas mensagens sejam enviadas, eles jamais entrarão em consenso e perderão a batalha por não serem capazes de sincronizar seus ataques. O problema persiste não importando a quantidade de mensagens enviadas ou a quantidade de generais envolvidos. No final das contas, nenhum deles terá certeza sobre o que os demais generais estão pensando.

Esse problema ilustra muito bem a dificuldade que diferentes usuários teriam em atingir consenso sobre um registro de transações quando não há uma entidade única os coordenando.

Proof of Work (Prova de Trabalho)

Para solucionar tal problema, Satoshi acrescentou algo que chamamos de “prova de trabalho”. É uma informação adicionada à mensagem, pelo remetente, que comprova que esta foi gerada a partir de algum esforço já conhecido pelo(s) destinatário(s). À medida que circula pela rede, a mensagem acumula as provas-de-trabalho de cada um que optou por reenviá-la aos demais – no exemplo dos generais, a prova-de-trabalho é a prova de que o general concorda com o que ele recebeu. Toda mensagem da qual o general discorde, será ignorada e não será reenviada aos demais. Dessa forma, por mais que, de início, diferentes mensagens sejam propagadas, logo ficará visível a cada um que uma delas está acumulando provas-de-trabalho mais rapidamente. Na prática, isso significa que essa é a mensagem que possui o maior número de generais de acordo. Logo, havendo interesse de entrarem em consenso, todos deixarão de trabalhar em cima de mensagens que foram esquecidas pelos demais e passarão a gerar mais provas-de-trabalho apenas na mensagem que está com maior esforço acumulado. Nesse momento, é possível dizer que a rede entrou em consenso e que todos têm ciência disso.

Para ser mais visual, vejamos como é a prova-de-trabalho gerada no Bitcoin.

Proof of Work do Bitcoin

No Bitcoin, a prova-de-trabalho é gerada da seguinte forma: o remetente adiciona um número arbitrário à mensagem (chamaremos esse número de nonce) e aplica uma função matemática chamada SHA-256 na mensagem. O objetivo é encontrar uma resposta com um certo número de zeros na frente. Ele repete o procedimento variando o nonce até achar essa resposta. Como é relativamente difícil encontrar tal resposta, ao receber a mensagem, todo usuário será capaz de verificar que houve um grande esforço do remetente em gerá-la. O nonce está representado em vermelho na imagem abaixo.

Para melhor entendimento sugiro que o leitor clique neste link e escreva as mensagens abaixo conferindo os resultados [2]:

Mensagem Resultado Hello, world!0 1312af178c253f84028d480a6adc1e25e81caa44c749ec81976192e2ec934c64 Hello, world!1 e9afc424b79e4f6ab42d99c81156d3a17228d6e1eef4139be78e948a9332a7d8 Hello, world!2 ae37343a357a8297591625e7134cbea22f5928be8ca2a32aa475cf05fd4266b7 Hello, world!4248 6e110d98b388e77e9c6f042ac6b497cec46660deef75a55ebc7cfdf65cc0b965 Hello, world!4249 c004190b822f1669cac8dc37e761cb73652e7832fb814565702245cf26ebb9e6 Hello, world!4250 0000c3af42fc31103f1fdc0151fa747ff87349a4714df7cc52ea464e12dcd4e9

Note que, para gerar a mensagem “Hello, world!” com uma prova-de-trabalho, foram necessárias 4250 tentativas (estamos supondo que as partes concordam com o critério de apenas quatro zeros). Obviamente a abordagem de testar números em ordem crescente não é a mais apropriada. Porém, seja como for, é impossível prever o resultado do SHA-256. Então a única solução é o teste de valores arbitrários do nonce.

O leitor concorda que a mensagem “Hello, world!4250” comprova a todos que houve esforço para gerá-la, enquanto que a mensagem “Hello, world!4249” não? Que a mensagem “Hello, world!4249” não possui prova-de-trabalho e que a mensagem “Hello, world!4250” possui?

Proof of Work do Bitcoin aplicado aos Generais Bizantinos

Vamos aplicar esse conceito para resolver nosso problema dos generais. Imagine que um primeiro general começa a realizar o procedimento de geração da prova-de-trabalho em cima de uma mensagem contendo sua proposta para a hora do ataque. Assim que ele encontra a solução, a mensagem é enviada aos demais. Cada general, ao receber, verifica se a mensagem realmente satisfaz o critério (aplica o SHA-256 e verifica se o resultado possui o número de zeros exigido) e, concordando com o horário do ataque, recomeça o trabalho em cima da nova mensagem.

Exemplificando: o primeiro general envia a mensagem “Vamos atacar às 14:00!5842” aos demais. O valor de 5842 ilustra o nonce encontrado (o exemplo é apenas didático, pois não atende ao critério do número de zeros). Em seguida, todos passam a simultaneamente tentar confeccionar a próxima mensagem em cima desta. Note que agora a próxima mensagem será algo como: “Vamos atacar às 14:00!58426841“, sendo “6841” o segundo nonce encontrado. O primeiro a encontrar envia aos demais e, assim, o procedimento se repente até a hora do ataque.

Cada general se guiará pela mensagem com a maior quantidade de nonces acumulados. Isso garante que, caso alguém tente propagar um horário diferente, todos saibam qual é a mensagem que está sendo gerada pela maioria. Ao se aproximar do horário combinado, os generais poderão ter múltiplas propostas, mas saberão qual possui a maior prova-de-trabalho acumulada. Ao chegar às 14:00, se a mensagem com mais nonces for esta, o ataque será efetuado às 14:00. Caso contrário, os generais continuarão o procedimento até que chegue a hora que contém a maior prova-de-trabalho. Entrando em consenso, eles atacarão simultaneamente e vencerão a batalha.

Com alguns detalhes a mais, a rede Bitcoin se utiliza dessa lógica para atingir consenso sobre o registro de transações.

Para ir mais a fundo, precisamos de uma visão mais ampla de como a rede opera para concretizar uma transação.

Os papéis dos nós na transação Bitcoin

Os usuários da rede Bitcoin podem exercer três funções principais: banco de dados completo das transações (Blockchain), mineração e carteira. De forma simplificada:

– Banco de dados completo das transações (Blockchain): É o armazenamento do registro completo das transações.

– Mineração: É a função de atualizar o registro com as novas transações. São os “generais” do proof-of-work.

– Carteira: É a função responsável por administrar as chaves que dão ao usuário acesso a sua quantia de bitcoins.

Tomemos como exemplo Alice, que deseja enviar 1.0 BTC a Bob. Sendo Alice e Bob usuários comuns (possuem um software exercendo apenas a função de carteira), Alice enviará tal informação a todos os nós conectados a sua carteira. Esses nós tratarão de espalhar a informação para nós adjacentes até que a informação chegue aos nós mineradores. Cada minerador trabalha individualmente para gerar a prova-de-trabalho utilizando esta e as demais transações recebidas como mensagem. O processo de mineração resulta num arquivo chamado de “bloco” que contém a lista de todas transações recentes e um cabeçalho contendo a prova-de-trabalho. O primeiro minerador a finalizar seu bloco o espalha aos demais, reiniciando o processo para a próxima leva de transações. Em cerca de 10 min um novo bloco com novas transações será integrado à cadeia de blocos (Blockchain) utilizando a prova-de-trabalho do bloco anterior. Não demorará para que ambas carteiras, de Alice e de Bob, sincronizem seus valores conforme o novo bloco aceito pela rede.

Blockchain

O nome Blockchain foi dado pelos primeiros usuários do Bitcoin devido à estrutura formada ao longo da mineração. O cabeçalho do bloco contém a prova-de-trabalho gerada a partir do cabeçalho do bloco anterior e as novas transações. É esse vínculo entre os blocos que dá à arquitetura do registro uma ideia de “corrente de blocos” ou “cadeia de blocos”. O termo costuma ser utilizado de forma mais ampla, mas em tese se refere apenas à arquitetura do banco de dados das transações.

A Mineração e o Consenso Emergente

Como recompensa pelo árduo trabalho de minerar o próximo bloco, o minerador tem o direito de adicionar uma transação para si no bloco gerado. É o único momento em que bitcoins são criados. O valor é controlado e incentiva o minerador a aumentar sua capacidade computacional de gerar provas-de-trabalho. O minerador também recebe taxas que são colocadas nas transações pelos remetentes para terem prioridade no processamento. A concorrência entre os mineradores pelo próximo bloco torna cada vez mais difícil que um minerador sozinho tente gerar uma blockchain concorrente. Logo mais veremos que esse seria um possível, mas inviável, método de praticar double spending no Bitcoin.

Como vimos, os mineradores compartilham blocos entre si para manter uma blockchain constantemente atualizada com novas transações. A maior corrente será sempre tomada como a corrente primária – por conter a maior prova-de-trabalho acumulada. Porém, essa é uma meia verdade. Na realidade, cada minerador mantém duas blockchains, pois é comum haver uma bifurcação na rede. O entendimento desse fenômeno nos ajudará a compreender o importante conceito de Consenso Emergente.

A bifurcação ocorre quando dois ou mais mineradores encontram simultaneamente uma solução para o próximo bloco, onde ambas são diferentes, mas atendem igualmente aos requisitos. Essa diferença ocorre pois nada garante que num mesmo instante todos mineradores possuam a mesma lista de transações e nem que as agrupe da mesma forma.

Visualização de um evento de bifurcação da blockchain: dois blocos são encontrados simultaneamente.[3]

Tal diferença faz com que diferentes mineradores optem por construir o próximo bloco em cima de diferentes blocos. Isso não prejudica o consenso – apenas pode fazer algumas transações entrarem alguns blocos depois ou antes dependendo de qual corrente vencer. Na imagem abaixo temos metade da rede utilizando o bloco A para gerar o próximo e a outra metade utilizando o bloco B.

Visualização de um evento de bifurcação da blockchain: dois blocos são propagados, dividindo a rede.[3]

Quando um novo bloco X for gerado, é necessário que toda a rede possua o bloco que foi utilizado como base. Caso o bloco X tenha sido gerado a partir do bloco B, todos mineradores que haviam optado pelo bloco A passarão a construir seu novo bloco em cima da corrente P–B–X e deixarão a corrente P–A como secundária para o caso de uma inversão (é possível que a corrente P–A se torne P–A-Z-W antes de termos uma P–B–X-Y, por exemplo). Lembrando que a rede sempre dará preferência para a maior corrente.

Visualização de um evento de bifurcação da blockchain: um novo bloco estende uma das bifurcações.[3]

Note como o consenso do Bitcoin não é explícito – não existe uma eleição ou um momento fixo no qual o consenso ocorre. Apesar das inúmeras correntes que podem se formar, o consenso é atingido gradativamente. Ele emerge da interação assíncrona de milhares de mineradores independentes. Blocos recentes podem divergir entre os mineradores, mas tão logo tenhamos novos blocos, os mineradores se encarregarão de deixar de lado os que não pertencem à corrente principal.

Todo o vínculo existente entre os blocos e todo esforço necessário para se gerar um novo torna inviável que alguém altere o registro a seu bel-prazer. Toda alteração indevida será ignorada pelos participantes, assim como toda mensagem que não respeite a rigorosa estrutura de dados e as mais diversas regras impostas pelo software.

A Carteira Bitcoin

A Carteira Bitcoin é o software ou dispositivo utilizado para guardar e administrar as chaves que dão acesso às transações. Para entender melhor o que isso significa precisamos entender como é uma transação Bitcoin.

A transação Bitcoin

Até então me referi às transações como simples mensagens que são propagadas pela rede à espera de aprovação e posterior inclusão à blockchain. E de fato o são, porém sua estrutura e funcionamento são um dos pilares da tecnologia.

Podemos pensar nas transações como uma espécie de cheque, onde o remetente indica a intenção de transferir uma quantia a outro, assina e aguarda a submissão ao sistema bancário.

Mas como essas transações são assinadas? E como indicar um destinatário? Para responder essas e outras perguntas precisamos entender, ainda que vagamente, o conceito de Criptografia de Chave Pública.

Criptografia de Chave Pública

Como já foi dito, a rede Bitcoin não possui cadastro. A forma pela qual conseguimos atribuir uma quantia de bitcoins é se utilizando do conceito de Criptografia de Chave Pública.

Imagine que cada usuário possui um par de chaves: chave pública e chave privada que, em sua essência, são apenas números. Como o próprio nome diz, a chave privada é mantida em privado e a chave pública pode ser amplamente divulgada. Isso porque, o vínculo matemático entre as duas chaves não permite que a chave privada seja descoberta a partir da chave pública.

A criptografia de chave pública é mais comumente utilizada para sigilo no envio de mensagens. Temos como exemplo o próprio Whatsapp. No Whatsapp as mensagens são criptografas com a chave pública do destinatário de forma que apenas ele será capaz de descriptografá-la utilizando a chave privada correspondente.

Analogamente, a ideia aqui é gerar uma transação que só pode ser desbloqueada a partir da chave privada do beneficiário. Para tal, a transação Bitcoin possui um script de comandos que utiliza a chave pública do beneficiário para bloquear o acesso dos demais. Apenas o detentor da respectiva chave privada será capaz de desbloquear a transação para reuso.

Dentre outras informações presentes na transação, as duas mais importantes são: a entrada (input) e a saída (output). No input estão informações referentes ao remetente da transação enquanto no output estão informações referentes ao destinatário ou beneficiário.

Tabela 1. A estrutura simplificada da entrada de uma transação

Nome Tamanho Descrição Hash da transação 32 bytes Apontador da transação contendo o valor a ser gasto Script de destravamento Variado Script para destravamento da transação

Na entrada, o usuário gera o valor a ser gasto a partir do destravamento de uma ou mais transações (Hash da transação) que possui sua chave pública. O desbloqueio é feito a partir de uma sequência de comandos (Script de travamento) que só tornarão a transação válida caso o usuário seja capaz de fornecer a chave privada correspondente.

Tabela 2. A estrutura simplificada da saída de uma transação

Nome Tamanho Descrição Montante 8 bytes Valor a ser transferido Script de travamento Variado Script definindo as condições de destravamento da transação

Na saída o usuário deve fornecer a fração da transação que deverá ser transferida (Montante). Aqui ele pode fracionar ou agregar transações a fim de atingir o valor desejado. Assim como o usuário teve que utilizar sua chave privada para gerar um script de destravamento, ele agora precisa adicionar um script de travamento contendo a chave pública do novo destinatário.

Transações são construídas a partir de outras transações e, da mesma forma que os blocos, formam uma cadeia. Retomando a analogia com o cheque, seria como se o mesmo cheque pudesse ser utilizado infinitas vezes apenas adicionando a cada transação o novo beneficiário.

Double Spending

Como prometido, veremos como o Bitcoin lida com possíveis tentativas de double spending. Todas consistem em tentar anular uma transação com uma transação concorrente. Uma transação concorrente seria uma transação que utiliza o mesmo input. A rede jamais aceitaria duas transações que gastam o mesmo valor, mas é possível enganar a rede por algum tempo e veremos porquê.

Existem três formas de se tentar realizar double spending com bitcoins:

A primeira chama-se “Standard attack”. Consiste em tentar enviar duas transações concorrentes simultaneamente para a rede. O atacante envia uma para o vendedor e outra si mesmo. O valor da taxa colocada na transação para o minerador influencia diretamente na velocidade de inclusão desta na blockchain. O atacante pode, então, acrescentar uma taxa maior para a transação que fez a si mesmo e tentar retirar o produto antes do vendedor descobrir que a transação foi anulada. Como é impossível um bloco conter duas transações que utilizem o mesmo input, é mais seguro que o vendedor espere a inclusão da transação na Blockchain.

A segunda forma de double spending é chamada de “Finney attack”. É quando o atacante minera um bloco e, antes de enviar seu bloco para a rede, rapidamente realiza transações com inputs já utilizados no bloco. Logo que ele lançar seu bloco, essas transações se tornarão nulas. Como anteriormente, o vendedor deve aguardar o próximo bloco para entregar o produto.

A terceira é chamada de “51% attack”. O minerador atacante lança uma transação para a rede e em privado constrói uma blockchain alternativa contendo uma transação concorrente. É uma extensão do “Finney atack”. Da mesma forma, assim que ele lançar sua blockchain a transação será anulada. A diferença está em poder manter a fraude por mais tempo. Note que para o ataque ser bem sucedido, ele precisa concorrer contra o poder de mineração de todos os demais mineradores juntos. Por isso é chamado de “51% attack”. O atacante precisaria possuir 51% de todo o poder de processamento da rede. Mesmo assim, o máximo que ele conseguiria é enganar o vendedor por alguns minutos a mais. É um ataque puramente teórico que provavelmente nunca foi tentado e nunca será. O mesmo custo para realizar o ataque poderia ser gasto para minerar de forma honesta e ganhar bitcoins.

Conclusão

Vimos que o Bitcoin estabelece uma série de regras e interconecta pessoas que são financeiramente incentivadas a mantê-lo operante. Ele cria uma rede de nós verificadores e autenticadores de toda informação que corre em suas “teias”. Buscando exclusivamente seu próprio interesse, cada usuário mantém vivo um sistema independente de autoridade.

Ao criar o Bitcoin, Nakamoto descentralizou o fator-chave “confiança” e o devolveu às mãos das pessoas comuns. Agora, elas precisam apenas lembrar que por trás de tudo há somente um protocolo cuja violação será rejeitada por todos participantes. Satoshi Nakamoto livrou-as do fardo imposto por uma elite financeira auto-outorgada regente da economia mundial e lhes ofereceu a possibilidade de transacionarem em um sistema monetário justo, algo do qual não desfrutam hoje e tampouco notam a falta.

—————————————————————————————————————————————-

[1] Nakamoto, Satoshi (24 Maio 2009): Bitcoin: A Peer-to-Peer Electronic Cash System

[2] Bitcoin Wiki

[3] Antonopoulos, Andreas M. (Dezembro de 2014): Mastering Bitcoin: Unlocking Digital Cryptocurrencies