Notas pessoais de Xiaobai sobre como aprender blockchain do zero (2) Primeiro conhecimento do sistema distribuído de Bitcoin

Capítulo 2 Conhecendo o sistema distribuído do Bitcoin

2.1 O objetivo original do Bitcoin

a) O estágio do desenvolvimento da moeda

Troca-> moeda física (principalmente moeda metálica) -> papel-moeda-> moeda da contabilidade centralizada .
A centralização tem o problema da confiança no pagamento eletrônico, veja abaixo

b) Duas questões básicas no setor de pagamentos eletrônicos

1. Como posso transferir dinheiro on-line entre duas partes necessitadas sem usar um terceiro autorizado?
2. Como registrar as informações de pagamento durante a transferência eletrônica para evitar o pagamento duplo e garantir a segurança dos fundos?

c) O nascimento do Bitcoin

Para resolver os dois problemas acima, em 2008, uma pessoa que mudou seu nome para Satoshi Nakamoto publicou um white
paper intitulado ** "Um sistema de pagamento eletrônico em dinheiro ponto a ponto" , que propunha os dois problemas anteriores. Existem duas soluções: 1. Nas transferências de pessoal para indivíduo, é necessário que haja uma moeda eletrônica que possa julgar o valor sem ser anexada a uma agência de preços de terceiros.
2. Precisamos ter um centro de livros digitais para ir , ser capaz de comércio de informação e transacção registros armazenados distribuídas aos computadores de todo o mundo
e, portanto, juntamente com a descentralização para as expectativas, Bitcoin surgiu.
O Bitcoin é a fonte do surgimento da tecnologia blockchain e a aplicação mais antiga e bem-sucedida da tecnologia blockchain. Blockchain também entrou nos olhos das grandes massas de pessoas

2.2 Três conceitos básicos de Bitcoin (carteira, endereço, chave privada)

a) Relação entre usuário, chave privada, chave pública e endereço

Chave pública e chave privada: a chave pública e a chave privada são um conjunto de conceitos usados ​​juntos e existe um relacionamento próximo entre eles. Simplificando, a chave privada é gerada aleatoriamente pelo sistema e a chave pública é calculada pela chave privada; a chave pública é responsável pela criptografia, a chave privada é responsável pela descriptografia; a chave privada é responsável pela assinatura e a chave pública é responsável pela verificação.
Bitcoin é, na verdade, presente na utilizador endereço sobre
este processo não pode inverter impulso
Compreensão pessoal

b) O processo de transação

Transação: O ato de transferir o bitcoin de um endereço para outro usando a chave privada mantida pelo mineiro
1. Primeiro, suponha que A queira transferir bitcoin para B, onde CD é um passante
Insira a descrição da imagem aqui
2.
Se A envia algum bitcoin para B, então Esta transação possui três itens de informação:
1. Digite. Registra de que endereço as moedas pertencentes a A foram originalmente transferidas para A.
2. Número. Este é o número de bitcoins A transferidos para B.
3. Saída. Esse é o endereço Bitcoin de B.
Além da primeira transação ser proveniente da mineração, cada transação possui uma ou mais entradas e uma ou mais saídas.
Insira a descrição da imagem aqui
Entre eles, há três pontos a serem adicionados
1. A criptografia da chave privada registra a saída da transação, aqui A. Isso garante que todas as transações possam ser rastreadas de volta
2. A verificação da chave pública se torna um script de chave pública, garantindo que o endereço de recebimento da transação seja o endereço de B

2.3 Criptografia assimétrica e como evitar a contabilidade falsa

Ou seja assimétrica criptografia para criptografar e descriptografar o mesmo algoritmo que irreversível
princípio de funcionamento de assimétrica transferência de informações de criptografia entre:

1. A deseja enviar informações para B. Ambos A e B devem gerar um par de chaves públicas e privadas para criptografia e descriptografia.
2. A chave privada de A é mantida em segredo, e a chave pública de A é informada a B. A chave privada de B é mantida em segredo e a chave pública de B é informada a A.
3. Quando A deseja enviar informações para B, A criptografa as informações com a chave pública de B, porque A conhece a chave pública de B.
4. A envia a mensagem para B (a mensagem foi criptografada com a chave pública de B).
5. Depois que B recebe essa mensagem, B descriptografa a mensagem de A com sua chave privada. Ninguém mais que recebeu esta mensagem pode descriptografá-la, porque apenas B tem a chave privada de B.

Insira a descrição da imagem aqui

2.4 Algoritmo de hash difícil de violar

1. Recursos do algoritmo de hash

Recursos do algoritmo de hash
➢ Unidirecional
➢ Calcular um hash de comprimento fixo com base em uma mensagem de qualquer tamanho
➢ Entradas diferentes têm saídas diferentes
➢ O algoritmo é altamente eficiente e a
função de hash de tempo para calcular o valor do hash deve ter as seguintes propriedades:
⚫ H pode ser usado para mensagens de tamanho "arbitrárias". "Qualquer" refere-se ao que realmente existe.
Value O valor do hash gerado por H é de comprimento fixo. Essa é a natureza básica da função Hash.
⚫ Para qualquer mensagem M, é fácil calcular o valor H (M). Essa é a disponibilidade das funções de hash.
⚫ Unidirecionalidade (antigenicidade): Para um dado valor de hash h,
é computacionalmente inviável encontrar M de modo que H (M) = h .

2. O papel dos ponteiros de hash na blockchain

Ou seja, ponteiro Hash de criptografia de dados
: não apenas para salvar a posição da estrutura na memória, mas também para salvar o valor de hash da estrutura.
A principal diferença entre a blockchain e a lista vinculada comum é que o ponteiro de hash é usado em vez do ponteiro comum
Insira a descrição da imagem aqui

Endereço de transação criptografado A de uso real

O hash unidirecional é usado. A parte superior da árvore de hash é a parte superior, também conhecida como raiz raiz ou raiz principal. É subir na árvore conectando dois sub-hashes em paralelo até que o hash da raiz seja encontrado. Função:
1. Localize rapidamente cada transação
2. Verifique se os dados da transação foram violados

Uso prático B - a essência da mineração

Mineração: existe um parâmetro no cabeçalho do bloco chamado número aleatório Nonce. O processo de localização desse número aleatório é chamado de "mineração. O
processo de mineração de bitcoin usa a função hash SHA256 para calcular continuamente. Mineração é calcular repetidamente o valor de hash do cabeçalho do bloco. Continue modificando o valor Nonce até atingir o processo de valor de hash de destino.O resultado da função de hash é imprevisível e não há modo específico para calcular rapidamente o valor de hash.

2.5 Problema de gasto duplo e mecanismo UTXO

Problema de flor dupla

O que é flor dupla?

Uma soma de dinheiro é gasta duas ou mais vezes, também chamada de "pagamento duplo".
No sistema de moeda digital, os ativos digitais são essencialmente números virtuais baseados na Internet.Em suma, os chamados ativos digitais são na verdade uma sequência de caracteres, tornando fácil a cópia ou o envio múltiplo. Nesse caso, se não houver uma organização central, as pessoas não poderão determinar se um ativo foi gasto, o que leva à situação em que o mesmo ativo digital pode ser reutilizado devido a operação inadequada.

Como evitar gastos duplos no sistema Bitcoin? MecanismoUTXO

1. O que é UTXO?

• UTXO é a abreviação de Saídas de transações não gastas, o nome completo é "saída de transação não utilizada".
• U significa Não gasto, o que significa não pago ou não utilizado. "Não pago" significa que a saída da transação ainda não apareceu na entrada de outras transações.
• TX é uma abreviação de transação.Uma transação é uma transferência de uma carteira de bitcoin para outra.É a única maneira de alterar a propriedade do bitcoin, incluindo o conteúdo básico de entrada, número e saída.
• O é Saída, o que significa saída, e TXO significa saída da transação.

2. UTXO em transações de Bitcoin

O livro de blockchain distribuído do Bitcoin é formado por uma transação de cada vez. Cada transação requer uma entrada para gerar uma saída, e a saída que gera é "não gasta" "Saída de transação", que é UTXO.

Não há conceito de contas de usuário no Bitcoin.

Dizemos quantos bitcoins realmente nos referimos ao número de bitcoins especificado em UTXO que possuímos.
D. possui bitcoins 14. Em essência, no atual registro de blockchain, o item UTXO beneficiários de várias transações escreveu o endereço de D, e o valor total desses itens UTXO é 14.
Veja a figura abaixo para detalhesInsira a descrição da imagem aqui

2.6 Algoritmo de consenso e mecanismo de prova de carga de trabalho

O que é consenso

xx (objeto) concorda em xx (coisa)

Consenso em Bitcoin

Todos os nós em qual nó pode gerar a próxima quadra para chegar a uma visão unificada de
cadeia bloco bitcoin algoritmo de consenso fornece a próxima novo bloco que é gerado pelos mineiros, ao mesmo tempo, nesta corrente bloco para alcançar um acordo, Alguns nós selecionados pelo algoritmo de consenso precisam chegar a um consenso.

Vários algoritmos de consenso

• PoW (prova de trabalho, prova de trabalho)
• PoS (prova de estaca, prova de estaca)
• DPoW (prova de trabalho delegada, prova de trabalho)
• DPoS (prova de participação delegada, prova de direitos)
• PBFT (prática Tolerância a falhas bizantinas, algoritmo prático de tolerância a falhas bizantinas)

Aqui, explicamos principalmente o mecanismo de pow usado pela rede Bitcoin

Mecanismo de consenso no mecanismo de prova de trabalho da rede Bitcoin

Recursos:
Os usuários que realizam trabalho real com assimetria precisam pagar muito trabalho para obter um resultado que atenda às condições especificadas, mas como verificador, ele pode facilmente recalcular o resultado com base nos materiais fornecidos pelo usuário e verificar se o resultado é satisfeito. Defina boas condições com antecedência.

Na rede Bitcoin, em primeiro lugar, gere uma nova informação de transação a ser adicionada ao blockchain, ou seja, os requisitos que devem ser atendidos quando um novo bloco for atendido. Em seguida, na rede blockchain com base no mecanismo de prova de trabalho, todos os nós começam a tentar e calcular continuamente até o primeiro nó encontrar a solução numérica do hash hash aleatório, portanto, tem o direito de gerar novos blocos .
Vantagens: Completamente descentralizado
Desvantagens: 1. O comportamento de mineração causa muito desperdício de recursos
2. Período mais longo necessário para chegar a um consenso
Entendimento pessoal: Ao fornecer um valor de hash, a operação de criptografia é realizada continuamente através de um método exaustivo até o original Expressões e, em seguida, pode ser facilmente verificado se o resultado está correto

2.7 Altura do bloco, ataque de 51%, pool de mineração e poder de computação

Bloco e altura do bloco

Um bloco é a unidade básica que constitui uma cadeia de blocos e é composta por um cabeçalho de bloco e um corpo de bloco . O cabeçalho do bloco contém as informações de hash do bloco anterior, o que pode ajudar o novo bloco a se conectar ao bloco anterior e o corpo do bloco contém todas as informações de transação durante esse período.
Insira a descrição da imagem aqui

Qual é o cabeçalho do bloco

Insira a descrição da imagem aqui

1) O número da versão (Versão) é
usado para identificar a versão da transação e as regras referenciadas. Por exemplo, Android 10 ou iOS13, o bloco também possui seu próprio número de versão.
2) O valor de hash do bloco anterior
também é chamado de "valor de hash do bloco pai". Esse valor de hash é obtido através da hash dos dados do cabeçalho do bloco anterior (algoritmo SHA256), cujo significado está em: Cada bloco recém-extraído é conectado à parte de trás do bloco anterior em ordem; dessa maneira, após a escavação do novo bloco, você pode ter um pouco de tranqüilidade, porque sabe que esse bloco é seguido por uma colcha Atrás do bloco confiável verificado por cada nó.
3) Raiz Merkle (Raiz Merkle)
Como mostrado acima, no corpo do bloco, todas as informações de transação são primeiro divididas em grupos de 2. Essa estrutura é chamada de Árvore Merkle (Árvore Merkle) e é uma árvore invertida. Árvore.
Simplificamos o problema, assumindo que existam 4 informações de transação no corpo do bloco, a saber, transação 1, transação 2, transação 3 e transação 4. A árvore Merkle primeiro executa o cálculo de hash hash em cada informação de transação para obter o hash 1, hash 2, hash 3, hash 4, respectivamente.
No segundo andar, como o professor organiza assentos, dois grupos, ou seja, as sequências do Hash 1 e do Hash 2 ficam em uma fileira e se tornam uma sequência de comprimento duplo e, em seguida, calcula o valor do hash dessa sequência, Vamos lembrar como o Hash (1 e 2); o Hash 3 e o Hash 4 são processados ​​da mesma maneira acima para obter o Hash (3 e 4) e, em seguida, conte, as duas cadeias Hash (1 e 2) e Hash (3 e 4) são mescladas novamente e, em seguida, a operação de hash O valor final do hash é a raiz Merkle do cabeçalho do bloco.
No que diz respeito ao Bitcoin, a situação real é que um corpo de bloco contém mais de 4.000 golpes. Em mais casos, todos farão inferências. Em resumo, os dois grupos são continuamente mesclados e hash, e os cálculos são ascendentes até o último ser calculado. Espero que sim.
A árvore Merkle pode verificar rapidamente a integridade dos dados da transação, ou seja, se os dados foram violados. De acordo com as características da função hash na criptografia, se alguém tiver manipulado os dados, o valor calculado do hash se tornará completamente diferente. Mesmo nessas 4.000 transações, mudei apenas um ponto decimal. Você pode encontrar o problema no valor do hash da raiz Merkle.
Insira a descrição da imagem aqui
4) Timestamp (Time)
registra a hora em que esse bloco foi gerado, com precisão de segundo. Cada vez que um novo bloco nasce, ele é carimbado com o carimbo de data / hora correspondente, para que os blocos de toda a cadeia sejam organizados em ordem cronológica.
5) O valor da dificuldade (Target_bits)
desenterra o objetivo da dificuldade do bloco. A cada 2016 blocos são gerados, a dificuldade de cálculo do bloco de dados será ajustada uma vez. Por exemplo, a rede blockchain do Bitcoin pode ajustar automaticamente a dificuldade da mineração, permitindo que os mineradores cavem um bloco a cada 10 minutos. Originalmente, demorou 14 dias para desenterrar o bloco de 2016, mas eu não sei qual dos céus destruiu subitamente algumas máquinas de mineração que explodiram o poder da computação, e isso foi feito em 7 dias, o que significa que, quando o período de ajuste programado é atingido, a mineração A dificuldade dobrará.
6) A
mineração nonce é equivalente a um minerador que está com problemas de matemática: eles usam o hashrate de um computador ou uma máquina de mineração para executar um grande número de cálculos (profissionalmente chamado de "colisão de hash") para tentar uma área correta. Block hashes; muitas vezes também nos referimos à mineração como disputa por direitos de cobrança.Insira a descrição da imagem aqui

Qual é o corpo principal do bloco

O local usado para registrar informações de transação.No Bitcoin, cada bloco armazena cerca de dez minutos de informações de transação e, em seguida, o próximo bloco é gerado, e as informações de transação são armazenadas no próximo bloco e assim por diante.
As informações da transação de 10 minutos são determinadas pela velocidade média de geração de blocos e serão alteradas de acordo com a velocidade de mineração. Por exemplo, a configuração Bitcoin permite que os mineradores desenterrem um bloco a cada 10 minutos. Originalmente, demorou 14 dias para desenterrar o bloco de 2016, mas não sei qual deus matou algumas máquinas de mineração que explodiram repentinamente o poder da computação. Demorou sete dias para ser concluído. Isso significa que, quando o período de ajuste programado for atingido, o sistema irá Aumente automaticamente a dificuldade de mineração, para que a velocidade geral de geração de blocos tenda a ser estável por dez minutos

Qual é a altura do bloco

Altura do bloco é um conceito usado para identificar a localização de um bloco na blockchain.
Insira a descrição da imagem aqui

Piscina de mineração

Depois de combinar muito poder de computação, o site formado pela operação conjunta

Poder computacional

A taxa de hash, também conhecida como taxa de hash, é um índice usado para medir a capacidade de executar operações de hash ou
o tempo necessário para executar um cálculo de hash. Se a rede atingir uma taxa de 10T hash / s (10T por segundo), significa que pode executar 10 trilhões de cálculos por segundo.
Colisão de hash: o processo de tentar resolver valores aleatórios de hash.
O número de vezes que um mineiro pode fazer tais colisões por segundo representa seu poder de computação.
Quanto mais avançadas as máquinas usadas pelos mineiros para minerar, maior o poder de computação.

51% de ataque e paradoxo

O poder de computação de alguém em toda a rede excede 50% de toda a rede. Em seguida, ele pode tentar modificar o estado da blockchain, realizar transações reversas e obter gastos duplos.
Consulte https://www.jianshu.com/p/d6be6637edc1

Publicado 3 artigos originais · Curtidas0 · Visitas 62

Acho que você gosta

Origin blog.csdn.net/weixin_45067603/article/details/105444151
Recomendado
Clasificación