Criptomoeda para leigos: Bitcoin e além
Publicados: 2022-03-11O Bitcoin criou muito burburinho na Internet. Foi ridicularizado, atacado e, eventualmente, aceito e se tornou parte de nossas vidas. No entanto, o Bitcoin não está sozinho. Neste momento, existem mais de 700 implementações de AltCoin, que usam princípios semelhantes e vários algoritmos de criptomoeda.
Então, o que você precisa para criar algo como o Bitcoin?
Sem tentar entender sua motivação pessoal para criar um sistema descentralizado e anônimo para troca de dinheiro/informações (mas ainda esperando que esteja no escopo de atividades morais e legais), vamos primeiro detalhar os requisitos básicos para nosso novo sistema de pagamento:
- Todas as transações devem ser feitas pela Internet
- Não queremos ter uma autoridade central que processe transações
- Os usuários devem ser anônimos e identificados apenas por sua identidade virtual
- Um único usuário pode ter quantas identidades virtuais desejar
- A oferta de valor (novas faturas virtuais) deve ser adicionada de forma controlada
Compartilhamento descentralizado de informações pela Internet
Cumprir os dois primeiros requisitos da nossa lista, removendo uma autoridade central para troca de informações pela Internet, já é possível. O que você precisa é de uma rede ponto a ponto (P2P) .
O compartilhamento de informações em redes P2P é semelhante ao compartilhamento de informações entre amigos e familiares. Se você compartilhar informações com pelo menos um membro da rede, eventualmente essas informações chegarão a todos os outros membros da rede. A única diferença é que nas redes digitais essa informação não será alterada de forma alguma.
Você provavelmente já ouviu falar do BitTorrent, um dos sistemas de compartilhamento de arquivos P2P (entrega de conteúdo) mais populares. Outro aplicativo popular para compartilhamento P2P é o Skype, assim como outros sistemas de bate-papo.
A conclusão é que você pode implementar ou usar um dos protocolos P2P de código aberto existentes para dar suporte à sua nova criptomoeda, que chamaremos de Topcoin .
Algoritmo de hash
Para entender as identidades digitais, precisamos entender como funciona o hash criptográfico . Hashing é o processo de mapeamento de dados digitais de qualquer tamanho arbitrário para dados de tamanho fixo. Em palavras mais simples, hashing é um processo de pegar algumas informações que são legíveis e fazer algo que não faz sentido algum.
Você pode comparar o hashing com a obtenção de respostas de políticos. As informações que você fornece a eles são claras e compreensíveis, enquanto a saída que eles fornecem parece um fluxo aleatório de palavras.
Existem alguns requisitos que um bom algoritmo de hash precisa:
- O comprimento de saída do algoritmo de hash deve ser fixo (um bom valor é 256 bytes)
- Mesmo a menor mudança nos dados de entrada deve produzir uma diferença significativa na saída
- A mesma entrada sempre produzirá a mesma saída
- Não deve haver maneira de reverter o valor de saída para calcular a entrada
- O cálculo do valor HASH não deve ser intensivo em computação e deve ser rápido
Se você der uma olhada nas estatísticas simples, teremos um número limitado (mas enorme) de valores de HASH possíveis, simplesmente porque nosso comprimento de HASH é limitado. No entanto, nosso algoritmo de hash (vamos chamá-lo de Politician256) deve ser confiável o suficiente para produzir apenas valores de hash duplicados para diferentes entradas com a mesma frequência que um macaco em um zoológico consegue digitar corretamente Hamlet em uma máquina de escrever!
Se você acha que Hamlet é apenas um nome ou uma palavra, por favor, pare de ler agora ou leia sobre o Teorema do Macaco Infinito.
Assinatura digital
Ao assinar um documento, tudo o que você precisa fazer é anexar sua assinatura ao texto de um documento. Uma assinatura digital é semelhante: você só precisa anexar seus dados pessoais ao documento que está assinando.
Se você entender que o algoritmo de hash adere à regra em que mesmo a menor alteração nos dados de entrada deve produzir uma diferença significativa na saída , então é óbvio que o valor HASH criado para o documento original será diferente do valor HASH criado para o documento com a assinatura anexada.
Uma combinação do documento original e do valor HASH produzido para o documento com seus dados pessoais anexados é um documento assinado digitalmente .
E é assim que chegamos à sua identidade virtual , que é definida como os dados que você anexou ao documento antes de criar esse valor HASH.
Em seguida, você precisa garantir que sua assinatura não possa ser copiada e que ninguém possa executar nenhuma transação em seu nome. A melhor maneira de garantir que sua assinatura esteja segura é mantê-la você mesmo e fornecer um método diferente para outra pessoa validar o documento assinado. Novamente, podemos recorrer à tecnologia e algoritmos que estão prontamente disponíveis. O que precisamos usar é a criptografia de chave pública também conhecida como criptografia assimétrica .
Para fazer isso funcionar, você precisa criar uma chave privada e uma chave pública . Essas duas chaves estarão em algum tipo de correlação matemática e dependerão uma da outra. O algoritmo que você usará para fazer essas chaves garantirá que cada chave privada tenha uma chave pública diferente. Como seus nomes sugerem, uma chave privada é uma informação que você manterá apenas para você, enquanto uma chave pública é uma informação que você compartilhará.
Se você usar sua chave privada (sua identidade) e documento original como valores de entrada para o algoritmo de assinatura para criar um valor HASH, supondo que você manteve sua chave secreta, você pode ter certeza de que ninguém mais pode produzir o mesmo valor HASH para esse documento .
Se alguém precisar validar sua assinatura, ele ou ela usará o documento original, o valor HASH que você produziu e sua chave pública como entradas para o algoritmo de verificação de assinatura para verificar se esses valores correspondem.
Como enviar Bitcoin/dinheiro
Supondo que você tenha implementado a comunicação P2P, mecanismos para criação de identidades digitais (chaves públicas e privadas) e fornecido meios para que os usuários assinem documentos usando suas chaves privadas, você está pronto para começar a enviar informações para seus pares.
Como não temos uma autoridade central que validará quanto dinheiro você tem, o sistema terá que perguntar sobre isso todas as vezes e verificar se você mentiu ou não. Portanto, seu registro de transação pode conter as seguintes informações:
- Eu tenho 100 Topcoins
- Quero enviar 10 moedas ao meu farmacêutico pelo medicamento ( você incluiria sua chave pública de farmacêutico aqui )
- Eu quero dar uma moeda como taxa de transação ao sistema ( voltaremos a isso mais tarde )
- Eu quero manter as 89 moedas restantes
A única coisa que resta a fazer é assinar digitalmente o registro da transação com sua chave privada e transmitir o registro da transação para seus pares na rede. Nesse ponto, todos receberão a informação de que alguém (sua identidade virtual) está enviando dinheiro para outra pessoa (a identidade virtual do seu farmacêutico).
Seu trabalho está feito. No entanto, sua medicação não será paga até que toda a rede concorde que você realmente tinha 100 moedas e, portanto, poderia executar essa transação. Somente depois que sua transação for validada, seu farmacêutico receberá os fundos e enviará o medicamento.

Mineradores de criptomoedas: uma nova geração de agentes
Os mineiros são conhecidos por serem pessoas muito trabalhadoras que, na minha opinião, são muito mal pagas. No mundo digital da criptomoeda, os mineradores desempenham um papel muito semelhante, exceto que, neste caso, eles fazem o trabalho computacionalmente intensivo em vez de cavar pilhas de sujeira. Ao contrário dos mineradores reais, alguns mineradores de criptomoedas ganharam uma pequena fortuna nos últimos cinco anos, mas muitos outros perderam uma fortuna nesse empreendimento arriscado.
Os mineradores são o componente central do sistema e seu principal objetivo é confirmar a validade de cada transação solicitada pelos usuários.
Para confirmar a validade de sua transação (ou uma combinação de várias transações solicitadas por alguns outros usuários), os mineradores farão duas coisas.
Primeiro, eles vão se basear no fato de que “todo mundo sabe tudo”, o que significa que cada transação executada no sistema é copiada e fica disponível para qualquer peer na rede. Eles analisarão o histórico de suas transações para verificar se você realmente tinha 100 moedas para começar. Assim que o saldo da sua conta for confirmado, eles gerarão um valor HASH específico. Esse valor de hash deve ter um formato específico; deve começar com certo número de zeros .
Existem duas entradas para calcular este valor HASH:
- Dados de registro de transação
- Prova de trabalho do mineiro
Considerando que mesmo a menor mudança nos dados de entrada deve produzir uma diferença significativa no valor HASH de saída , os mineradores têm uma tarefa muito difícil. Eles precisam encontrar um valor específico para uma variável de prova de trabalho que produzirá um HASH começando com zeros. Se o seu sistema exigir um mínimo de 40 zeros em cada transação validada, o minerador precisará calcular aproximadamente 2^40 valores de HASH diferentes para encontrar a prova de trabalho correta.
Uma vez que um minerador encontra o valor adequado para a prova de trabalho, ele ou ela tem direito a uma taxa de transação (a única moeda que você estava disposto a pagar), que pode ser adicionada como parte da transação validada. Cada transação validada é transmitida aos peers na rede e armazenada em um formato de banco de dados específico conhecido como Blockchain .
Mas o que acontece se o número de mineradores aumentar e seu hardware se tornar muito mais eficiente? O Bitcoin costumava ser extraído em CPUs, depois em GPUs e FPGAs, mas finalmente os mineradores começaram a projetar seus próprios chips ASIC, que eram muito mais poderosos do que essas soluções iniciais. À medida que a taxa de hash aumenta, também aumenta a dificuldade de mineração, garantindo assim o equilíbrio. Quando mais poder de hashing é introduzido na rede, a dificuldade aumenta e vice-versa; se muitos mineradores decidirem desistir porque sua operação não é mais lucrativa, a dificuldade é reajustada para corresponder à nova taxa de hash.
Blockchain for Dummies: The Global Cryptocurrency Ledger
A blockchain contém o histórico de todas as transações realizadas no sistema. Cada transação validada, ou lote de transações, torna-se outro anel na cadeia. Toda empresa de desenvolvimento de blockchain depende desse livro-razão público.
Assim, o blockchain do Bitcoin é, essencialmente, um livro-razão público onde as transações são listadas em ordem cronológica.
O primeiro anel no blockchain do Bitcoin é chamado de Genesis Block
Para ler mais sobre como o blockchain funciona, sugiro a leitura da Blockchain Technology Explained: Powering Bitcoin, de Nermin Hajdarbegovic.
Não há limite para quantos mineradores podem estar ativos em seu sistema. Isso significa que é possível que dois ou mais mineradores validem a mesma transação. Se isso acontecer, o sistema verificará o esforço total que cada minerador investiu na validação da transação simplesmente contando zeros. O minerador que investiu mais esforço (encontrou mais zeros à esquerda) prevalecerá e seu bloco será aceito.
Controlando a oferta de dinheiro
A primeira regra do sistema Bitcoin é que pode haver um máximo de 21.000.000 Bitcoins gerados. Este número ainda não foi alcançado e, de acordo com as tendências atuais, pensa-se que este número será alcançado até ao ano de 2140.
Isso pode fazer com que você questione a utilidade de tal sistema, porque 21 milhões de unidades não parece muito. No entanto, o sistema Bitcoin suporta valores fracionários até a oitava casa decimal (0,00000001). Esta menor unidade de um bitcoin é chamada de Satoshi , em homenagem a Satoshi Nakamoto, o desenvolvedor anônimo por trás do protocolo Bitcoin.
Novas moedas são criadas como recompensa aos mineradores por validar transações. Essa recompensa não é a taxa de transação que você especificou quando criou um registro de transação, mas é definida pelo sistema. O valor da recompensa diminui com o tempo e, eventualmente, será zerado quando o número total de moedas emitidas (21 milhões) for atingido. Quando isso acontecer, as taxas de transação terão um papel muito mais importante, pois os mineradores podem optar por priorizar transações mais valiosas para validação.
Além de definir o limite superior no número máximo de moedas, o sistema Bitcoin também usa uma maneira interessante de limitar a produção diária de novas moedas. Ao calibrar o número mínimo de zeros à esquerda necessários para um cálculo de prova de trabalho, o tempo necessário para validar a transação e obter uma recompensa de novas moedas é sempre definido para aproximadamente 10 minutos. Se o tempo entre a adição de novos blocos ao blockchain diminuir, o sistema pode exigir que a prova de trabalho gere 45 ou 50 zeros à esquerda.
Assim, ao limitar a rapidez e quantas novas moedas podem ser geradas, o sistema Bitcoin está efetivamente controlando a oferta de dinheiro.
Comece a “imprimir” sua própria moeda
Como você pode ver, fazer sua própria versão do Bitcoin não é tão difícil. Ao utilizar a tecnologia existente, implementada de forma inovadora, você tem tudo o que precisa para uma criptomoeda.
- Todas as transações são feitas pela Internet usando comunicação P2P, eliminando assim a necessidade de uma autoridade central
- Os usuários podem realizar transações anônimas utilizando criptografia assíncrona e são identificados apenas por sua combinação de chave privada/chave pública
- Você implementou um livro-razão global validado de todas as transações que foram copiadas com segurança para todos os pares da rede
- Você tem um suprimento de dinheiro seguro, automatizado e controlado, que garante a estabilidade de sua moeda sem a necessidade de uma autoridade central
Uma última coisa que vale a pena mencionar é que, em sua essência, a criptomoeda é uma forma de transferir valor/informação anônima de um usuário para outro em uma rede peer-to-peer distribuída .
Considere substituir moedas em seu registro de transação por dados aleatórios que podem até ser criptografados usando criptografia assíncrona para que apenas o remetente e o destinatário possam decifrá-los. Agora pense em aplicar isso a algo como a Internet das Coisas !
Vários pesos pesados da tecnologia já estão explorando o uso da tecnologia blockchain em plataformas IoT, mas essa não é a única aplicação potencial dessa tecnologia relativamente nova.
Se você não vê razão para criar uma moeda alternativa própria (além de uma brincadeira), você pode tentar usar a mesma abordagem ou similar para outra coisa, como autenticação distribuída, criação de moedas virtuais usadas em jogos, redes sociais , e outros aplicativos, ou você pode continuar criando um novo programa de fidelidade para seu negócio de comércio eletrônico, que recompensaria clientes regulares com tokens virtuais que poderiam ser resgatados posteriormente.