Como bitcoin funciona uma visão técnica para iniciantes – bitzuma bitcoins para dólares

Como uma moeda de metal, uma moeda digital carrega um valor nominal fixo. No entanto, esse valor nominal é denominado na unidade “bitcoin” (escrito com letra minúscula “b”). A abreviação para esta unidade usada aqui será “฿”, mas outras estão disponíveis. Neste artigo, a unidade “bitcoin” é usada como um substantivo em massa ou “incontável”, significando que somente sua forma singular é usada. Por exemplo, diz-se que alice comprou 1,3 bitcoin, não que ela comprou “1,3 bitcoins”. Outra unidade, a satoshi, é cem milhões de vezes menor que bitcoin (฿ 0,00000001). Esta unidade é considerada um substantivo contável.

Moedas digitais são criadas em uma ampla variedade de denominações. Por exemplo, uma moeda pode ser marcada com um valor de face de 34 1.344455. Outra moeda pode ser marcada com um valor nominal de ฿ 1,01.


O valor de face de uma terceira moeda pode ser ฿ 0,00009431 e assim por diante. No outro extremo da escala, uma única moeda pode ter um valor de face igual a toda a oferta monetária, embora seja improvável que tal moeda ocorra na prática. Os custos de fabricação e armazenamento limitam as denominações nas quais as moedas de metal são cunhadas, mas as moedas digitais evitam essa limitação.

A criptografia de chave pública é um sistema de autenticação de mensagens que permite aos usuários detectar adulteração e falsificação. O remetente de uma mensagem gera duas chaves ligadas matematicamente: uma chave privada para ser mantida em segredo; e uma chave pública dada a outros usuários. O preço do Bitcoin hoje no autor de uma mensagem assina com sua chave privada. Os destinatários autenticam a assinatura da mensagem usando a chave pública do remetente. A autenticação falhará se a mensagem ou assinatura forem modificadas. O capítulo 2 do bitcoin proprietário descreve detalhadamente o sistema de criptografia de chave pública do bitcoin.

O sistema numérico de valor local mais familiar, baseado em potências crescentes de 10, é conhecido como representação decimal. Um número desses 1.234 é representado por quatro dígitos cuja contribuição para o total aumenta da direita para a esquerda. O dígito 4 à direita adiciona quatro vezes dez à potência zero ao total (4 × 10 0). Lembre-se de que qualquer número elevado à potência zero é um. O dígito 3 um lugar à esquerda acrescenta trinta ao total (3 × 10 1). O dígito um lugar mais à esquerda, 2, contribui com 200 para o total (2 × 10 2). Finalmente, o dígito mais à esquerda, 1, contribui com 1.000 para o total (1 × 10 3). Cada dígito contribui mais para o valor total do que o da direita.

Considere o número de quatro bits representado como 0b1101. Para evitar confusão com a representação decimal, a representação binária usa o prefixo 0b. Exemplos incluem: 0b01; 0b1011; e 0b101010. O bit mais à direita do número binário 0b1101 adiciona um ao total (1 × 2 0). O dígito 0 um lugar à esquerda adiciona zero (0 × 2 1). Mais um lugar à esquerda, o dígito 1 adiciona quatro ao valor total (1 × 2 2). O dígito mais à esquerda, 1 acrescenta oito ao total (1 × 2 3). Somando o valor contribuído por cada bit dá um total de 13. Em outras palavras, o valor do número binário 0b1101 é igual ao valor do número decimal 13.

Um grupo de oito bits, ou dois dígitos hexadecimais, tem um significado especial e é mais comumente conhecido como um byte. Por exemplo, o número binário de um byte 0b11100010 pode ser representado em notação hexadecimal como 0xe2. Como medida do armazenamento de dados e da largura de banda da rede, os bytes se encaixaram na linguagem cotidiana por meio das unidades megabyte (um milhão de bytes) e gigabyte (um bilhão de bytes). Endianness. Um valor numérico de múltiplos bytes (0x0a0b0c0d) pode ser armazenado usando uma convenção big-endian (esquerda) ou little-endian (direita). Valor

Um computador que armazena um número como uma seqüência de bytes precisa decidir qual endianness usar. Endianness refere-se à ordem em que os bytes aparecem em um sistema de armazenamento indexado, como a memória do computador. Sistemas big-endian colocam o byte mais significativo no índice mais baixo. O byte mais significativo é o que mais contribui para o valor geral. Por exemplo, o byte mais significativo do número hexadecimal 0x01ff é 0x01. Em um sistema big-endian, este byte seria colocado no índice i e o próximo byte mais significativo, 0xff, seria colocado no índice i + 1. A notação little-endian inverte essa convenção, com o byte mais significativo armazenado no índice i e o próximo byte mais significativo armazenado no índice i – 1. Domínio do bitcoin pdf nos sistemas big-endian e little-endian a ordem dos bits segue a ordem dos bytes. O armazenamento big-endian e little-endian pode estar presente em um sistema de caixa eletrônico. Uma boa análise de bit e byte ordenação foi publicada.

As funções de hash podem ser entendidas mais concretamente, pensando em termos de um oráculo aleatório. Um oráculo aleatório consiste em uma caixa contendo um gremlin, um livro, um lápis, uma pilha de fichas e uma moeda de metal. Em um lado da caixa é cortado um slot de entrada através do qual um usuário pode deslizar uma mensagem escrita em um pedaço de papel. Em frente a este slot é cortado outro slot através do qual o Gremlin desliza um resultado escrito em uma das fichas de índice. Cada página do livro é dividida com uma linha vertical; à esquerda está o título “mensagem” e à direita está o título “resultado”.

O objetivo do oracle é produzir o que parece ser uma saída aleatória para novas mensagens, mas a mesma saída sempre que uma mensagem é reenviada. Para este fim, o Gremlin usa o seguinte procedimento. Quando uma nova mensagem é recebida através do slot de entrada, o gremlin consulta o livro. Para cada página do livro, a coluna da mensagem é digitalizada para uma correspondência com a mensagem que acabou de ser recebida. Se uma correspondência for encontrada, o gremlin transcreve a entrada correspondente na coluna “resultado” para um cartão de índice e empurra o cartão pelo slot de saída. Se a mensagem não for encontrada, o gremlin abre o livro e cria uma nova entrada após a última. Sob a coluna “mensagem”, o gremlin transcreve a mensagem. Então o gremlin pega uma nova ficha de índice e começa uma série de 16 lançamentos de moeda. Para cada lançamento de cara, o gremlin acrescenta um “1” ao card. Para cada lance de coroa, o gremlin acrescenta um “0”. Depois de completar seus lançamentos de moeda, o gremlin transcreve o resultado da ficha de índice para o livro sob a coluna “resultado” e empurra o cartão pelo slot de saída.

Imagine que Alice queira testar o oráculo com uma série de desafios. Primeiro, ela escreve a mensagem “para a lua!” E insere-a no slot de entrada. O oráculo responde com um cartão de índice no qual está escrito uma seqüência de 16 uns e zeros. Usando notação hexadecimal, alice converte o resultado para o inteiro de 16 bits 0xf1c3. Toda vez que alice envia a mensagem “para a lua!”, Ela recebe o mesmo resultado do oracle: 0xf1c3. O preço em tempo real do bitcoin alice, em seguida, escreve uma segunda mensagem, “nós navegamos neste novo mar” e o insere no slot de entrada. O oracle responde com uma placa de índice na qual está escrito uma seqüência binária equivalente ao inteiro de 16 bits 0x2a06. Cada nova mensagem resulta em um resultado diferente, mas alice não pode decifrar nenhum padrão para a saída.

Independentemente da qualidade da saída de uma função hash, todos estão sujeitos a limitações impostas pelo paradoxo do aniversário. Especificamente, uma função hash ideal, como o oráculo aleatório, gerará uma colisão entre duas mensagens aleatórias em aproximadamente uma de cada duas tentativas n / 2, onde n é o número de bits no valor de saída. No caso de uma função hash retornar saída de 16 bits, uma colisão pode ser esperada uma vez a cada 2 16/2 (256) tentativas. Na melhor das hipóteses, adicionar um bit à saída de uma função hash diminui a frequência de colisão por um fator de √2.

Uma largura de bit de apenas 256 pode parecer inicialmente muito estreita para suportar identificadores exclusivos. Isso ajuda a considerar a magnitude desse número em relação a um ponto de referência familiar. O valor 2 256 é igual a aproximadamente 10 77 quando expresso em formato decimal, ou o número “1” seguido por 77 zeros. Este número é tão vasto que apenas contando com um computador extremamente eficiente consumiria a energia combinada produzida pelo sol por muitos séculos. Em outras palavras, é impossível enumerar os valores entre um e 10 77, muito menos executar uma função hash muitas vezes.

Estabelecer um auditor resolve o problema do duplo gasto, mas deixa outro problema em seu rastro. Se o auditor parasse de responder, todo o sistema ficaria paralisado. As interrupções do serviço podem surgir de fraude, coerção, desastre natural, incompetência, ação do regulador, falha técnica e uma série de outras situações. O preço indiano do bitcoin sem proteção dupla de gastos, resultaria em pânico quando os usuários se esforçavam para encontrar parceiros dispostos a aceitar transações não auditadas. Economias suadas seriam eliminadas à medida que o valor das moedas armazenadas despencasse. O mero boato de uma interrupção de serviço pode levar a uma crise em todo o sistema.

A modularidade é útil porque permite que um razão temporário seja quebrado, transmitido a distância e reconstruído por muitos auditores diferentes. Depois de atualizar seu ledger local, um auditor retransmitia uma transação junto com seu timestamp para os outros auditores. Um auditor receptor validaria então a transação. Se nenhum gasto duplo fosse detectado, o registro de data e hora retransmitido e sua transação seriam anexados ao ledger local. Essas regras simples permitem que cada auditor monte uma cópia local idêntica do razão ao longo do tempo.

Os carimbos de data / hora permitem que os auditores detectem conflitos de ordem de transação. Imagine que vanna e victor recebam solicitações de auditoria diferentes simultaneamente. Cada auditor marca o pedido de tempo e retransmite o resultado para o outro. Os timestamps foram transmitidos quase ao mesmo tempo, então eles se cruzam no caminho. Entretanto, estender uma cadeia de registro de data e hora requer uma correspondência entre o ID exclusivo transportado pelo novo registro de data e hora e o ID exclusivo do último registro de data e hora na cadeia. Na falta de uma correspondência, os dois auditores rejeitam os carimbos de data e hora retransmitidos e suas transações associadas.

Lembre-se de que uma função hash aceita uma mensagem como entrada, retornando reprodutivelmente um valor de hash como saída. Uma função hash pode ser transformada em uma função de prova de trabalho através do uso de um nonce. Um nonce, ou número usado uma vez, é um valor incorporado em uma mensagem que altera a saída de uma função hash. Por exemplo, uma simples função de prova de trabalho pode anexar um nonce a uma mensagem e retornar o valor de hash obtido do resultado. A saída de uma função de prova de trabalho baseada em hash é imprevisível, mas o mesmo nonce e a mensagem sempre produzirão o mesmo valor de hash. Dessa forma, uma prova de trabalho pode ser fácil de verificar e difícil de produzir.

Uma função de prova de trabalho pode servir de base para um quebra-cabeça de prova de trabalho. Tal enigma pede um nonce que quando combinado com uma mensagem dê um valor de hash menor ou igual a um valor de limite. A dificuldade do quebra-cabeça pode ser ajustada (ou “direcionada”) alterando o valor do limite. Lembre-se de que as funções hash seguras resistem a ataques de pré-imagem. Isso deixa a tentativa e erro como a única estratégia vencedora para encontrar uma prova de trabalho válida para um quebra-cabeça baseado em uma função hash segura. Aumentar o valor-alvo amplia o intervalo de valores de hash aceitáveis ​​e, portanto, reduz o número de palpites e o tempo necessário para encontrar uma solução válida. Diminuir o valor alvo reduz o intervalo de valores de hash aceitáveis, diminuindo a velocidade com a qual um nonce vencedor pode ser encontrado.

A geração de blocos pode ser interrompida pelo recebimento de um bloco válido retransmitido por outro auditor. Quando isso acontece, o nonce de prova de trabalho do bloco recebido é verificado comparando-se o ID do bloco com o limite aceito atualmente. Um ID abaixo do limite da meta prova que a quantidade necessária de trabalho foi concluída. As transações individuais do bloco também são validadas. Se todos forem válidos, o bloco contendo é adicionado à cópia local do auditor da cadeia de blocos. Um novo candidato a bloco é criado a partir de transações pendentes e a geração de blocos começa novamente.

Ligar a geração de novos blocos com um subsídio de bloco estabelece um cronograma estável e previsível para o crescimento da oferta monetária. À medida que mais auditores se juntam à rede para reivindicar o subsídio de bloco, o limiar de prova de trabalho diminui e a dificuldade aumenta. Cada auditor gasta mais recursos para gerar um novo bloco como resultado. Quando o custo de produção de prova de trabalho se torna muito alto, os auditores se demitem, reduzindo a dificuldade e aumentando a lucratividade daqueles que permanecem. Ambas as alterações mantêm a taxa geral de geração de blocos constante.

Uma abordagem simples e segura seria cortar o valor do subsídio do bloco em intervalos regulares. O subsídio começaria com um valor inicial, onde permaneceria por um período fixo de tempo. Então, o valor do subsídio diminuiria para uma fração do seu valor original, onde permaneceria até ser reduzido novamente. Ganhar dinheiro bitcoin cortes repetidos levaria à eventual eliminação do subsídio do bloco. A cada corte, as taxas de transação se tornariam um componente maior da remuneração do auditor, retirando os auditores do subsídio de bloco. Ao mesmo tempo, a taxa de criação de dinheiro se aproximaria de zero de uma maneira previsível e transparente.

Este sistema serve os interesses de dois importantes grupos de usuários. O primeiro grupo, auditores pioneiros, receberia pagamentos de subsídios com valor nominal relativamente grande. O baixo poder de compra desses pagamentos antecipados levaria muitos destinatários a gastar ou distribuir moedas rapidamente, distribuindo dinheiro novo em maior circulação. O segundo grupo, investidores, veria injeções cada vez menores de dinheiro novo como conducente à preservação da riqueza. Seu compromisso de longo prazo com a economia criaria as bases para a compra de estabilidade de energia e adoção cada vez mais ampla.

A partir da idéia de dinheiro eletrônico, este guia explicou a rede bitcoin de maneira tecnicamente correta, mas simplificada. Uma moeda é definida em termos de uma cadeia de propriedade matematicamente segura. As transações permitem que o valor da moeda seja combinado, dividido e transferido para outras pessoas. Os pagamentos são autenticados usando criptografia de chave pública e assinaturas digitais. Uma rede de auditores interessados ​​em busca de consenso protege os usuários contra fraudes com gastos duplicados. Os auditores, por sua vez, são pagos por seus serviços através de taxas e um subsídio de bloco cada vez menor. O subsídio recompensa os adotantes iniciais e sua abolição gradual estimula a poupança. O dinheiro novo entra no sistema em um horário predeterminado, sem uma autoridade central. Próximos passos