Moedas digitais descentralizadas. Parte 1. Bitcoin


O tópico de várias criptomoedas e blockchains agora se tornou bastante popular e deixou de ser o grande número de nerds que murmuram sobre a revolução no campo das finanças. Mas assim que você tentar se aprofundar neste tópico, encontrará imediatamente um déficit de informações: há muito pouco material que descreve uma linguagem acessível e moderadamente técnica sobre o conceito e os mecanismos dessas tecnologias. Convencionalmente, todos os materiais podem ser divididos em duas categorias: técnica hardcore, onde a criptografia, p2p, "ouro digital" etc. começa na primeira frase ou bobagens de marketing sobre a nova Internet, a capitalização do Bitcoin ou como uma determinada empresa / país implementou o blockchain e resolveu todos os seus problemas. Se você deseja entender como tudo funciona e o que pode ser feito com essas tecnologias, esses artigos são para você.


Tentarei transmitir a ideia básica de uma criptomoeda descentralizada, os mecanismos de seu trabalho, bem como desmontar os vários garfos do Bitcoin. Omiti especificamente muitos detalhes técnicos para não sobrecarregar o texto. O principal é entender a essência, e então você pode descobrir facilmente a natureza.


Parte 1. Bitcoin
Parte 2. Outros tipos (não) populares de Bitcoin, blockchain
Parte 3. Ethereum


Idéia


Assim que tentamos entender o mecanismo do trabalho do Bitcoin, imediatamente começamos a entrar em conflito com nossa maneira de pensar usual, que se recusa categoricamente a aceitar o conceito de um sistema de controle descentralizado, sem alavancar a força dos infratores. Mas surge a pergunta imediatamente, se ninguém controla o Bitcoin, como ele funciona? Em 2008, um certo Satoshi Nakamoto apresentou uma solução elegante, na qual cada membro da rede confia apenas em sua base, que ele mantém de forma independente, e na base majoritária, se ele não tiver nenhum registro.


Vamos tentar explicar com os dedos o exemplo de uma pequena vila que decidiu abandonar a circulação do papel-moeda e introduzir uma moeda descentralizada. Que seja uma vila especial em que todos os habitantes se conhecem pelo nome, possam reconhecer pela voz, sejam muito bons em tons de flores e adorem a cor púrpura real. Portanto, os residentes concordam que a nova moeda funcionará da seguinte forma:


  1. Todos os fluxos de caixa são públicos, ou seja, todo mundo sabe quem, para quem, quanto foi transferido;
  2. Quando alguém quer transferir dinheiro para alguém, ele declara publicamente: Eu, John, transfiro 100 moedas para James;


  3. Cada morador tem um diário contábil onde todas as transferências de dinheiro que ele ouviu se encaixam. Todas as traduções do dia são registradas em uma página e no dia seguinte começam do zero.


  4. No final do dia, os residentes fazem um ritual estranho que corrige todas as transações para esse dia, uma vez que a transação não é considerada válida até que seja corrigida. O ritual é trabalhoso, mas você pode receber uma recompensa por isso e, portanto, todo mundo quer participar desse processo. O procedimento é o seguinte:

4.1 Para cada transação deste dia, de acordo com uma fórmula especial, dependendo da quantidade de transferência e destinatários, é selecionada tinta de uma determinada cor e quantidade. Então todos esses potes de tintas são despejados em uma tigela e bem misturados.


4.2 O ritual requer trazer a mistura resultante para uma cor púrpura real. Para fazer isso, em pequenas doses, por uma pesquisa longa e exaustiva, cores diferentes são adicionadas a essa mistura;


4.3 Assim que alguém encontra as cores e as doses necessárias, ele imediatamente anota esses dados no final da página de hoje, credita 50 moedas em sua conta como recompensa e anuncia isso a todos os residentes.


4.4 Os moradores verificam rapidamente se ele realmente encontrou as proporções corretas. Se tudo estiver correto, eles aprovam a transferência de recompensa, fecham a página de hoje e dormem.



Agora mais sobre os pontos:


  1. Como lembramos, os residentes podem se reconhecer facilmente por voz, respectivamente, se alguém tentar transferir dinheiro não por conta própria, os residentes simplesmente ignoram essa afirmação e ninguém adicionará essa transferência às suas anotações.


  2. Como todas as transferências são públicas, todos sabem quanto dinheiro cada cidadão tem em sua conta; se John não tiver fundos suficientes, sua transferência será ignorada (ninguém faz suas anotações). Idealmente, uma única cadeia de registros deve ser a mesma para todos.


  3. Se alguém perdeu o diário ou perdeu algumas traduções, ele entrevista os residentes e sincroniza suas anotações. Nesse caso, é necessário confiar apenas nos registros que são consistentes com a maioria.


  4. A seleção da dose e cor necessárias das tintas é um processo que consome muito tempo e é muito fácil verificar o resultado do trabalho. As transações para esse dia são simplesmente realizadas, a mistura é preparada de acordo com a fórmula e as tintas são adicionadas ao tanque na dose anunciada. Se você tem uma cor púrpura real - tudo é verdade e os habitantes concordam em recompensar aqueles que encontraram essas proporções. Assim que a página é fechada, todas as transações são consideradas válidas e permanecem no histórico para sempre. Dessa maneira, a integridade da base é mantida e também entra dinheiro novo no sistema. A quantia de remuneração é reduzida pela metade a cada 4 anos, o que limita a quantia total de dinheiro no sistema. E se você adicionar as proporções encontradas de cores da página anterior para a página seguinte, as páginas serão vinculadas e ninguém poderá alterar as transações retroativamente. Na menor alteração nos registros, é necessário recalcular a dose de tintas para esta e todas as páginas subseqüentes; além disso, é necessário convencer a maioria dos residentes a substituir seus próprios registros por novos.

Cada membro da rede decide por si próprio se aceita transações fraudulentas ou não, e enquanto a maioria dos participantes de boa-fé, o sistema funcionará como deveria. Mas o que significa "como fazer", quais metas foram estabelecidas pelos desenvolvedores de uma moeda tão descentralizada?


  1. A quantidade de dinheiro no sistema deve ser limitada, nesse sentido, a moeda é como ouro. Ninguém deve poder imprimir uma tonelada de dinheiro, o que, por sua vez, pode levar à inflação e à depreciação da poupança.


  2. Remova as restrições associadas às unidades mínimas do sistema monetário atual. Por exemplo, você deseja vender seus serviços por 1 cope ou talvez por um centésimo de centavo.


  3. Uma garantia de que qualquer transferência de dinheiro formada correta será realizada devido à falta de um único ponto de falha, a menos que toda a Internet esteja desconectada. Nenhuma organização, nem mesmo um estado, deve ter a capacidade de reverter / bloquear uma transação.
  4. Para enganar o sistema ou alterar as regras, é necessário convencer a maioria dos participantes (> 50%) da rede, etc.

Implementação


Se tudo estiver claro com a idéia fundamental, podemos avançar para uma implementação técnica simplificada. Em seguida, você precisa conhecer conceitos como hash, criptografia de chave pública e assinatura digital.



Cada membro da rede gera uma conta / contas, onde uma conta é apenas um par de chaves gerado pelo algoritmo ECDSA (algoritmo de chave pública para criar uma assinatura digital). Como endereço da conta, a chave pública é usada no par e, para transferir dinheiro da conta, é necessário assinar essa transferência (transação) com a chave privada. A transação é transmitida a todos os participantes da rede, onde existem participantes especiais, mineradores que estão envolvidos na formação de uma única cadeia coordenada da história de todas as transações (blockchain). Os mineiros empacotam as transações atuais em um bloco enquanto verificam sua correção. Além da lista de transações, um bloco contém um hash do bloco anterior e um determinado valor NONCE. Para que o bloco seja considerado correto, é necessário selecionar um NÃO, de modo que o hash de todo o bloco seja bonito (com um grande número de zeros no início).


Como o hash de dados fornece valores completamente imprevisíveis, é muito difícil escolher esse NONCE. Na lista de transações, a primeira é uma transação especial (recompensa em bloco) que recompensa o mineiro com uma certa quantia. Assim que o mineiro obtém o NONCE necessário, ele notifica todos e outros mineiros verificando o resultado de seu trabalho. Esse processo é chamado de mineração, pois é criada uma única cadeia de blocos e os mineradores recebem uma recompensa por esse trabalho. O procedimento de verificação é muito rápido, todas as transações e o hash de todo o bloco são verificados. Se não houver erros e fraudes, cada minerador incluirá esse bloco em sua blockchain e continuará a minerar ainda mais. Se um bloco for incluído na blockchain, todas as transações serão consideradas completas, incluindo a transação muito especial que transfere uma recompensa para a conta do minerador.


Resumir


  • Todas as transações estão disponíveis ao público.
  • Existe um conjunto de regras geralmente aceito, e o cumprimento ou não depende de todos decidirem por si mesmos. Não existe autoridade central com métodos de influência da força sobre os infratores.
  • Uma transação é considerada bem-sucedida (aprovada) se for compactada em um bloco.
  • As transações compactadas em um bloco são consideradas válidas, pois são verificadas repetidamente.
  • O processo de validação de traduções deve ser incentivado e mais envolvido nesse assunto.
  • Mas é necessário complicar o processo de embalagem. Para isso, é utilizado o princípio de Prova de Trabalho. É necessário resolver uma tarefa que consome muitos recursos, cujo resultado é fácil de verificar.
  • Um bloco é considerado compactado se tiver um hash bonito; para isso, é necessário classificar a variável NONCE no bloco por um longo tempo. É difícil encontrar o NONCE certo e verificar o hash é fácil. Encontrar o valor certo recebe uma recompensa.
  • Cada bloco contém um hash do anterior, obtemos uma cadeia de blocos que cresce em uma direção.
  • Às vezes, uma cadeia pode ramificar, mas a ramificação mais longa será válida. Para criar um bloco com transações fictícias e aumentar esse ramo, os invasores terão que gastar mais recursos de computação.

A próxima parte descreverá as limitações e problemas atuais do Bitcoin, bem como uma visão geral dos garfos destinados a resolver vários problemas.


Literatura: Sobre o Bitcoin e o Github .

Source: https://habr.com/ru/post/pt405453/


All Articles