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.

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.

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 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.
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) )
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.
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: 1015
O artigo foi adaptado de um artigo publicado em The New York Times.