Type/to search
8
Follow
1376
Followers
Como funciona o protocolo Bitcoin (parte 2)
Quantpedia
Created 2017-01-19 18:30:04  
 0
 2171

Como funciona o protocolo Bitcoin (parte 2)

  • Bitcoin

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

    Para usar o Bitcoin, primeiro você tem que instalar uma carteira no seu computador. Para que você entenda melhor, a imagem abaixo é uma tela de uma carteira chamada Multibit. Na parte superior esquerda você pode ver o saldo do Bitcoin em 0.06555555 bitcoins, o que equivale a quase US $ 70 de acordo com o preço de transação do momento da tela.

    img

    Suponha que você é um comerciante, você tem uma loja on-line pronta, e você decide permitir que os clientes paguem em bitcoins. Tudo o que você precisa fazer é gerar um novo endereço bitcoin com o seu aplicativo de carteira. Ele gerará automaticamente um par de chaves públicas e privadas, e depois hash sua chave pública para formar seu endereço bitcoin.

    img

    Então você envia o seu endereço de Bitcoin para quem quer pagar você. Você pode usar o e-mail, ou colocá-lo diretamente em sua página web. Isso é seguro, porque o seu endereço é apenas uma chave pública que é hashed, e você pode divulgá-lo com segurança para qualquer um (e ninguém pode usar isso para obter a sua chave privada). Eu vou explicar mais tarde por que o endereço de Bitcoin usa o hash da chave pública e não a chave pública em si.

    Agora, quem está disposto a pagar precisa criar uma nova transação. Vejamos um dado de transação de uma transferência real de 0,319 bitcoins. Aqui abaixo, este é quase o original, com três mudanças: 1) os dados não são seqüenciados; 2) os números de linha são adicionados para melhor compreensão; 3) uma longa sequência de números de dados de hash é 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 um por um.

      Na linha 1, o hash da transação é <a href="https://www.sciencedaily.com/sciencedaily.com/sciencedaily.com/sciencedaily.com/sciencedaily.com/sciencedaily.com/sciencedaily.com/sciencedaily/sciencedaily.com/sciencedaily.com/sciencedaily.com/sciencedaily.com/sciencedaily.com/sciencedaily.com/sciencedaily.com/sciencedaily.com/sciencedaily.com/sciencedaily.com/sciencedaily.com/sciencedaily.com/sciencedaily.com/sciencedaily.com/sciencedaily.com/sciencedaily.com/sciencedaily.com/sciencedaily.com/sciencedaily.html" />

      A linha 2 nos diz que a transação foi feita usando 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 quinta linha é o tempo de bloqueio (lock_time), que pode ser usado para controlar quando a transação é concluída. Atualmente, a maioria das transações de Bitcoin tem um tempo de bloqueio de 0, ou seja, a transação é concluída imediatamente.

      A linha 6 diz-nos quantos bytes é o tamanho da transação, mas não é o dinheiro da transação.

      As linhas 7 a 11, que definem a parte de entrada desta transação, e, na verdade, as linhas 8 a 10 nos dizem que o valor de entrada do dinheiro que vamos transferir é o dinheiro que foi obtido a partir do valor de saída da transação anterior. O 2007ae... é o hash de 16 bits da transação anterior, para se referir a uma transação anterior.

      É interessante notar que a parte de entrada aqui não diz o quanto de bitcoins da transação anterior será transferido para a transação seguinte. Na verdade, todos os bitcoins da saída n = 0 da transação anterior foram transferidos. Por exemplo, se a primeira saída da transação anterior (n = 0) tiver 2 bitcoins, então esses dois bitcoins serão gastos na nova transação. Isso parece tão inconveniente quanto comprar um pão com US $ 20 em dinheiro.

      As linhas 12 a 14, que definem a saída de uma transação. Especificamente, a linha 13 nos diz o número de dinheiro que saiu, que é 0.319 bitcoins. A linha 14 é mais complexa, e vale a pena notar que a string a7db6f... é o endereço do bitcoin recebido.

      Agora, você pode ver como o Bitcoin resolve a questão de onde os números de silício de silício que mencionamos anteriormente vêm. Primeiro, o Bitcoin não é um silício de silício de silício separado, mas uma longa sequência de transações que existem na blockchain.

      Podemos ir e voltar pela cadeia de transações. Quando chegamos ao fim, há duas possibilidades. Primeiro, você pode chegar à primeira transação de Bitcoin, que existe em um bloco, que chamamos de bloco de Genesis.

      O segundo resultado que você pode ver ao longo da cadeia de transações é que você chega a uma transação conhecida como a "transação da base de moeda". Cada bloco, exceto o bloco Genesis, começa com uma transação de base de moeda específica.

      A descrição acima não é muito clara sobre o que é assinado digitalmente em 11 linhas. O mais óbvio é que o método é fazer com que o pagador assine digitalmente toda a transação. Por enquanto não é assim, algumas transações são ignoradas. Isso faz com que parte das transações tenha plasticidade, ou seja, elas podem ser modificadas mais tarde.

  • Existem várias entradas e saídas

    Na parte anterior, falamos de um dado de transação que tem apenas uma entrada e uma saída. Na verdade, a maioria das transações de Bitcoin tem várias entradas ou 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 já foi dito anteriormente, a maior parte das explicações são as mesmas.

      A linha 1, o hash da transação, é usada como o único indicador dessa transação.

      Linha 2, versão do protocolo Bitcoin, 1a edição.

      As linhas 3 e 4 dizem que há três entradas e duas saídas nesta transação.

      Linha 5, tempo de bloqueio ((e como antes) <unk>)

      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 é a linha 8 a 11. O conteúdo é o mesmo que o anterior. A segunda entrada é a linha 12 a 15, a terceira é a linha 16 a 19.

      As linhas 20 a 24 definem todas as saídas. A primeira saída é a linha 21 e 22, e, como antes, a linha 21 diz que há 0,01068 bitcoins dentro. A linha 22 é uma linguagem de script para bitcoins.

      Parece um pouco estranho que, embora cada saída tenha o número de bitcoins registrado, a entrada não. Claro, quantos bitcoins cada entrada pode obter de sua transação anterior. Em uma transação normal de bitcoin, a soma de todos os valores de entrada é maior do que a soma de todas as saídas (exceto as transações do bloco Genesis e da base de moeda mencionadas acima), e se a soma da entrada for maior do que a da saída, os bitcoins excedentes serão fornecidos aos mineiros do bloco onde a transação foi feita.

      A função de múltiplas entradas e saídas é encontrar zero. Suponha que eu quero te dar 0.15 bitcoins. Eu posso gastar os 0.2 bitcoins que eu recebi antes. Claro, eu não quero te dar todos os 0.2, então a solução é, eu te mando 0.15 bitcoins e depois eu mando para outro endereço de bitcoins meu outro 0.05 bitcoins. Assim, esse 0.05 é encontrar zero para mim.

  • Conclusão

    O conceito básico por trás do Bitcoin já foi descrito. Claro, eu também omitiu muitos detalhes, pois não é um manual oficial. Mas eu quero descrever o conceito por trás do Bitcoin que é usado comumente.

    Embora as regras por trás do Bitcoin sejam simples e fáceis de entender, isso não significa que todos os possíveis resultados que essas regras produzirão também sejam fáceis de entender. Há muito mais a ser dito sobre o Bitcoin, e eu vou falar sobre isso em um artigo posterior. Mas agora, eu vou fazer um resumo em pedaços.

    Muitas pessoas dizem que o Bitcoin pode ser usado de forma anônima. Esta afirmação foi criada em um mercado negro semelhante ao Silk Road. No entanto, esta afirmação é fictícia. A Blockchain é pública, o que significa que qualquer pessoa pode ver todas as transações de Bitcoin. Embora o endereço do Bitcoin não corresponda diretamente à identidade de pessoas no mundo real, os cientistas de computadores já fizeram muito trabalho para decifrar a rede social anônima.

    Você pode enriquecer com Bitcoin? Talvez sim, Tim O'Reilly disse que ganhar dinheiro é como um tanque de gasolina dentro de um carro, você precisa estar atento para não ficar preso na estrada, mas a vida não gira em torno de um posto de gasolina! Oh, a maioria do interesse em Bitcoin parece ter vindo de pessoas cujo único objetivo na vida é encontrar um grande posto de gasolina. Devo admitir que isso é confuso.

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

    Bitcoin Script: Neste artigo, eu explico o Bitcoin como uma moeda eletrônica on-line. Mas isso é apenas uma pequena parte de uma história maior e mais interessante. Como vimos, há uma linguagem de script do Bitcoin em cada transação de Bitcoin.

    Se achar útil, recomendo que você dê uma dica para o autor deste artigo, Michael Nielsen, em 17ukkKt1bNLAqdJ1QQv8v9Askr6vy3MzTZ, ou siga-o no Twitter. Ou fique atento ao primeiro capítulo de seu novo livro sobre redes neurais e aprendizagem profunda que será publicado em breve.

    O blogue do tradutor também é bem-vindo: <unk>1015

O artigo foi adaptado de um artigo publicado em The New York Times.

Related Recommendations
Comment
All comments (0)
No data
No data
  • 1
Forums
PINE Language
Get the app
iPhone Download
© 2015 - ∞ INVENTOR PTE LTD (SG)