Como funciona o protocolo Bitcoin?

Autora:Sonhos pequenos, Criado: 2017-01-19 18:30:04, Atualizado:

Como funciona o protocolo Bitcoin?

  • Bitcoin

    Agora, vamos deixar o Infocoin e virar para o verdadeiro protocolo do Bitcoin. O Bitcoin não tem muita diferença do Infocoin que acabamos de construir passo a passo, exceto uma mudança óbvia.

    Para usar o Bitcoin, você primeiro tem que instalar uma carteira no computador. Para melhor entender, o gráfico abaixo é um screenshot de uma carteira chamada Multibit. Você pode ver no canto superior esquerdo o saldo do Bitcoin em 0.06555555 bitcoins, que no momento do gráfico representava quase US $ 70 no preço do negócio.

    img

    Suponha que você é um comerciante e que você está pronto para uma loja online e decide permitir que os clientes paguem com Bitcoin. Tudo o que você precisa fazer é gerar um novo endereço Bitcoin com o seu programa de carteira. Ele gerará automaticamente um par de chaves públicas e privadas e depois hashará o seu público para formar o seu endereço Bitcoin.

    img

    Em seguida, você envia seu endereço de Bitcoin para a pessoa que está prestes a pagar. Você pode usar o e-mail ou colocá-lo diretamente em sua página web. Isso é seguro, pois seu endereço é apenas um hash de chave pública, e você pode estar confiante de divulgá-lo a qualquer pessoa.

    Agora, a pessoa que está pronta para pagar precisa criar uma nova transação. Vejamos um verdadeiro dado de transação de transferência de 0.319 bitcoins. Abaixo, este é quase o dado original, e há três mudanças: 1) os dados não são continuados; 2) os números de linha são adicionados para melhor compreensão; 3) uma longa sequência de números de hash data é omitida, mantendo apenas os primeiros 6 dígitos.

    1.  {"hash":"7c4025...",
    2.  "ver":1,
    3.  "vin_sz":1,
    4.  "vout_sz":1,
    5.  "lock_time":0,
    6.  "size":224,
    7.  "in":[
    8.    {"prev_out":
    9.      {"hash":"2007ae...",
    10.      "n":0},
    11.    "scriptSig":"304502... 042b2d..."}],
    12. "out":[
    13.   {"value":"0.31900000",
    14.    "scriptPubKey":"OP_DUP OP_HASH160 a7db6f OP_EQUALVERIFY OP_CHECKSIG"}]}
    
    • Deixe-nos explicar uma a uma.

      A primeira linha, o hash da transação ((16 intransito), ele é o único símbolo usado para representar essa transação.

      A segunda linha diz-nos que a transação é feita com a primeira versão do protocolo Bitcoin.

      As linhas 3 e 4 nos dizem que a transação tem uma entrada e uma saída.

      A linha 5, um tempo de bloqueio (lock_time), pode ser usado para controlar quando a transação é concluída. Hoje em dia, a maioria das transações de Bitcoin tem um tempo de bloqueio zero, ou seja, a transação é concluída imediatamente.

      A linha 6 nos diz quantos bytes é o tamanho da transação.

      As linhas 7 a 11, que definem a parte de entrada do negócio, exatamente, as linhas 8 a 10 nos dizem que o valor de entrada do dinheiro a ser desviado é o dinheiro do valor de saída do negócio anterior. Essa é a 2007ae... que é o hash de 16 bits do último negócio, usado para indicar um negócio para cima.

      É notável que a parte de entrada não diz quantos bitcoins da transação anterior serão transferidos para a próxima. Na verdade, todos os bitcoins da saída n = 0 da transação anterior foram transferidos. Por exemplo, se a primeira saída n = 0 da transação anterior tiver 2 bitcoins, esses dois bitcoins serão gastos na nova transação.

      As linhas 12 a 14 definem a saída da transação. Especificamente, a linha 13 nos diz a quantidade de dinheiro que foi emitido, que é 0.319 bitcoins. A linha 14 é mais complexa, e é interessante notar que a string a7db6f... é o endereço de cobrança de bitcoins.

      Agora, você pode ver como o Bitcoin resolve o problema de onde vieram os números de sequência de hashes que mencionamos anteriormente. Primeiro, o Bitcoin não é um único bitcoin separado, mas uma longa série de transações que existem no blockchain.

      Podemos ir e voltar por toda a cadeia de transações. No final, há duas possibilidades. Primeiro, você pode chegar ao primeiro Bitcoin transação, que existe em um bloco, que chamamos de bloco Genesis. É uma transação especial, que não tem entrada, apenas 50 bitcoins de saída.

      O segundo resultado da sequência de transações pode ser que você chegue a uma transação conhecida como o "coinbase" de bitcoin. Além do bloco Genesis, cada bloco começa com uma transação de bitcoin especial. Esta transação é usada para recompensar os mineradores que verificam a transação no bloco.

      A descrição acima não é muito clara sobre o que é que é digitalmente assinado em 11 linhas. A maneira mais óbvia é fazer com que o pagador assine digitalmente a transação inteira. Por enquanto, não é assim, algumas transações são ignoradas. Isso torna uma parte das transações plastificáveis, ou seja, elas podem ser modificadas mais tarde.

  • Existem várias entradas e saídas

    No parágrafo anterior, nós falamos sobre um transação com apenas uma entrada e uma saída. Na verdade, a maioria das transações de Bitcoin são com várias entradas ou múltiplas saídas.

    1. {"hash":"993830...",
    2. "ver":1,
    3. "vin_sz":3,
    4.  "vout_sz":2,
    5.  "lock_time":0,
    6.  "size":552,
    7.  "in":[
    8.    {"prev_out":{
    9.      "hash":"3beabc...",
    10.        "n":0},
    11.     "scriptSig":"304402... 04c7d2..."},
    12.    {"prev_out":{
    13.        "hash":"fdae9b...",
    14.        "n":0},
    15.      "scriptSig":"304502... 026e15..."},
    16.    {"prev_out":{
    17.        "hash":"20c86b...",
    18.        "n":1},
    19.      "scriptSig":"304402... 038a52..."}],
    20.  "out":[
    21.    {"value":"0.01068000",
    22.      "scriptPubKey":"OP_DUP OP_HASH160 e8c306... OP_EQUALVERIFY OP_CHECKSIG"},
    23.    {"value":"4.00000000",
    24.      "scriptPubKey":"OP_DUP OP_HASH160 d644e3... OP_EQUALVERIFY OP_CHECKSIG"}]}
    
    • Como antes, explicamos uma linha por linha, a maior parte do que acabamos de explicar.

      A primeira linha, o valor de hash da transação, é usado como o único marcador dessa transação.

      A linha 2, versão do protocolo Bitcoin, primeira edição.

      As linhas 3 e 4 dizem que há 3 entradas e 2 saídas nesta transação.

      A linha 5, tempo de bloqueio ((como antes) ‖.

      A linha 6, o tamanho do byte da transação.

      As linhas 7 a 19 definem todas as entradas, cada uma correspondendo à saída da transação anterior. A primeira entrada é de linhas 8 a 11. O seu formato de conteúdo é o mesmo do anterior. A segunda entrada é de linhas 12 a 15 e a terceira é de linhas 16 a 19.

      As linhas 20 a 24 definem todas as saídas, sendo que a primeira saída é 21 e 22, e, como antes, a 21 diz que há 0.01068 bitcoins nela. A 22 é a linguagem de script do bitcoins. A string e8c30622... é o endereço do destinatário.

      Parece um pouco estranho que, embora cada saída tenha um registro de quantidade de bitcoins, a entrada não tenha. Claro que cada entrada tem quanto bitcoin pode ser obtido de sua transação anterior. Em uma transação Bitcoin comum, a soma de todos os valores de entrada é maior do que a quantidade de saídas (exceto o bloco Genesis e o bloco Coinbase).

      A função de várias entradas e saídas é encontrar zero. Suponha que eu quero dar-lhe 0.15 bitcoins. Eu posso gastar os 0.2 bitcoins que recebi antes. Claro, eu não quero dar-lhe todos os 0.2, então a solução é que eu lhe envie 0.15 bitcoins e depois envie 0.05 bitcoins para o meu outro endereço bitcoins.

  • A conclusão

    O conceito básico por trás do Bitcoin é descrito. É claro que eu também ignoro muitos detalhes. Este não é um manual formal, afinal.

    Embora as regras por trás do Bitcoin sejam simples e fáceis de entender, isso não significa que todos os resultados possíveis sejam fáceis de entender.

    Quão anônimo é o Bitcoin? Muitas pessoas dizem que o Bitcoin pode ser usado de forma anônima. Essa afirmação surgiu em mercados negros como o Silk Road. No entanto, esta afirmação é fictícia. O Blockchain é público, o que significa que qualquer pessoa pode ver todas as transações de Bitcoin. Embora os endereços do Bitcoin não correspondam diretamente à identidade de uma pessoa no mundo real, os cientistas de computadores já fizeram muito trabalho para decifrar as redes sociais anônimas.

    Você pode ficar rico com o Bitcoin? Sim, Tim O'Reilly disse que ganhar dinheiro é como um tanque de óleo no carro que você precisa prestar atenção, ou você ficará preso na beira da estrada, mas a vida não gira em torno de um posto de gasolina! A maioria do interesse em Bitcoin parece vir de pessoas cujo objetivo na vida é apenas encontrar um grande posto de gasolina. Eu tenho que admitir que isso é confuso.

    Detalhes que eu ignoro: Embora este artigo descreva os principais conceitos por trás do Bitcoin, há muitos detalhes que eu não mencionei. Um deles é a ótima técnica de economia de espaço no protocolo, baseada em uma estrutura de dados chamada árvore de Merkle. É um detalhe, mas é um detalhe incrivelmente interessante, que vale a pena ver se você gosta de estrutura de dados.

    O script do Bitcoin: Neste artigo, expliquei o Bitcoin como uma moeda eletrônica online. Mas essa é apenas uma pequena parte de uma história maior e mais interessante. Como vimos, cada transação de Bitcoin possui um script do Bitcoin. O script foi simplificado neste artigo para algo semelhante a:

    Se você achar que é útil, recomendo que você dê uma dica ao autor original deste artigo, Michael Nielsen, em 17ukkKt1bNLAqdJ1QQv8v9Askr6vy3MzTZ. Você também pode segui-lo no Twitter. Ou siga o primeiro capítulo de seu novo livro sobre redes neurais e aprendizado profundo.

    Se houver algum problema, por favor, perdoe-me.

O que é que a Bíblia diz sobre o assunto?


Mais.