Algumas perguntas básicas sobre como começar a usar blockchain

prefácio

Quando mencionamos o blockchain, muitas pessoas sabem que é algo relacionado a finanças, ou seja, dinheiro. Em vez de dizer blockchain, a palavra que costumamos usar deveria ser tecnologia blockchain. Essa afirmação na verdade revela sua essência-tecnologia. Qual é outro substantivo associado ao blockchain? Isso, claro, é o famoso Bitcoin (BitCoin).

bitcoin

Bitcoin, você pode pensar nisso como uma moeda eletrônica, sua aparência definitivamente não é acidental, mas é a necessidade do desenvolvimento histórico. No artigo de Satoshi Nakamoto (ver anexo), as causas e consequências do surgimento do Bitcoin são descritas aproximadamente da seguinte forma (a tradução pode estar errada)

No mundo físico, a moeda é emitida pelos bancos centrais de vários países. Este é um mecanismo de emissão centralizado. Para ser franco, é fácil ser controlado por uma organização centralizada . etc.)
suportar
a circulação da
moeda Moeda física: as pessoas entregam dinheiro diretamente para outra pessoa
. Claro, as pessoas negociam diretamente com as pessoas e circulam moeda. Este método é seguro (a menos que sejam encontradas notas falsas, isso não é discutido aqui. Ha) Então, há algo de errado em
ter um terceiro confiável como intermediário para transferências de dinheiro? Acho que o Alipay costuma ser bem usado. No artigo de Satoshi Nakamoto, ele disse:

Um terceiro centralizado não pode garantir totalmente um
terceiro centralizado credível. ?)
No processo de transações pessoa a pessoa, o terceiro, como intermediário, também precisa assumir riscos. Se duas pessoas na transação discutirem, você acha que ficarei entediado como fiador? Perda, isso vai aumentar virtualmente o custo desse tipo de transação e pode até mesmo fazer com que muitas pessoas desistam desse tipo de transação. O
terceiro centralizado não é uma organização de bem-estar. Por que eles deveriam administrar os livros para você e discutir com você? Pano de lã? Não há taxa de serviço?
Então, Satoshi Nakamoto imaginou que no processo de transações eletrônicas, esse terceiro poderia ser cedido de alguma forma, como as transações avançadas no mundo físico, onde o usuário A transfere a moeda diretamente para a conta do usuário B? na carteira?

Desde então, o Bitcoin acaba de entrar no palco da história. . .

blockchain

Depois de ler o que foi dito acima, acredito que você já tenha uma compreensão geral do uso do Bitcoin. No artigo de Satoshi Nakamoto, o Bitcoin é um sistema de caixa eletrônico peer-to-peer, portanto, uma moeda correspondente às notas no mundo físico. problemas precisam ser resolvidos para o dinheiro eletrônico?

A emissão de moeda, em primeiro lugar, tem um certo mecanismo para garantir que essas moedas possam ser emitidas normalmente, assim como a emissão de moedas irmãs suaves do banco central. No entanto, não é como a emissão de moedas irmãs suaves do banco central. Posso enviar o quanto quiser. Vai acabar mais cedo ou mais tarde. Não vou listar muitos exemplos sangrentos de transferência de moeda. Bitcoin é um sistema de caixa eletrônico
. Deve haver um mecanismo para garantir que a moeda possa circular entre os usuários, e esse tipo de circulação não pode mais sofrer a intervenção de terceiros.
Transações, saldos, etc., tenho que ter um mecanismo para armazenar as transações entre as pessoas Para informações de transação, ainda preciso registrar quanto dinheiro uma pessoa deixou. Além disso, esse processo não pode ser feito por uma organização centralizada como mencionado acima. Pode ser considerado como a realização do sistema de caixa eletrônico do Bitcoin. Entre os
principais questões que devem ser resolvidas, como resolver esses problemas? É aí que o protagonista de hoje - a tecnologia blockchain entra em jogo. O significado geral é: o que é blockchain, uma moeda eletrônica como o bitcoin e a tecnologia subjacente que garante a função do bitcoin!

Segredos do blockchain revelados

jogue tijolos e comece jade

Em seguida, vamos contar uma história para destacar os principais problemas da tecnologia blockchain.

história um

Era uma manhã ensolarada e Shi Jin foi trabalhar feliz como sempre. Assim que ele chegou na empresa, Cheng Xiao disse a ele que o chefe achou você muito bom e apenas disse que lhe daria uma promoção e um salário. aumentar. Ao ouvir isso, ele pensou que devia ter mentido para mim, então não levou a sério. Inesperadamente, o irmão Sheng voltou depois de um tempo e disse a mesma coisa que Cheng Xiao, o coração de Shi Jin começou a bater. esta verdade? Depois de um tempo, Li Chen também disse a mesma coisa para ele, Zimo, e Han Yu também, isso é um grande negócio, Shi Jin começou a acreditar, tem que acreditar, afinal tantas pessoas disseram isso, é deve ser mesmo!

história dois

Era uma manhã ensolarada e Shi Jin foi trabalhar feliz como sempre. Assim que chegou à empresa, o professor Ma disse a Shi Jin que a empresa decidiu lhe dar uma promoção e aumento de salário, e Shi Jin acreditou imediatamente.

Através das duas histórias acima, você pode ver que na verdade existem duas maneiras de convencer os usuários de uma coisa. Uma é que muitas pessoas na História 1 dizem que é verdade, e a outra é que existe uma autoridade. Isso é verdade para terceiros . A tecnologia blockchain usa formalmente a ideia da história 1 para realizar a garantia da validade da transação.

Resumir

Esta é a ideia mais importante da tecnologia blockchain - descentralização

Claro que esta descentralização comporta dois significados: o primeiro é a descentralização da emissão de moeda, o outro é a descentralização da transferência (circulação) de moeda. Isso significa que a emissão de moeda não é mais controlada por uma instituição centralizada como o banco central, mas é determinada por todo o sistema. Quanto aos fatores que determinam a emissão de moeda, falaremos sobre isso mais tarde; ao mesmo tempo , a circulação de moeda entre os usuários A descentralização também é necessária. Os usuários transferem moeda diretamente para outro usuário sem a necessidade de um terceiro para garantir a escrituração. Em vez disso, todos os usuários participantes garantirão em conjunto que todos testemunharão a transação juntos para garantir a validade da transação.

fascinante

Vamos pegar a transferência (transação) de Bitcoin entre usuários como exemplo para introduzir vários mecanismos mágicos do blockchain.

informações de transação de transmissão
insira a descrição da imagem aqui

Depois de receber as informações da transação, as pessoas que comem melão pegam seus próprios cadernos e anotam a transação de A e B. Uma vez que o registro seja bem-sucedido, ele é irrevogável e não pode ser alterado.

insira a descrição da imagem aqui

Concentre-se nisso!!!

Por que as pessoas que comem melão mantêm contas para os outros? Isso leva à mineração mineira, que também é o mecanismo de emissão do Bitcoin. Ou seja, o sistema dará recompensas correspondentes aos usuários que mantêm contas.
Há tantas pessoas que comem melão, e todo mundo faz contas com um pequeno livro, então quem deve levar o livro de contas final? Portanto, deve haver um mecanismo que permita que todos concordem com a validade dos resultados finais da contabilidade. Este é o mecanismo de consenso adotado pelo Bitcoin - o mecanismo de consenso baseado na prova de trabalho. Leitores, lembrem-se de seus notebooks.
?

Continuando, sob a proteção do mecanismo de consenso, as pessoas que obtiveram os direitos finais de escrituração transmitirão as informações da transação desta transação para toda a rede, e outras pessoas verificarão e confirmarão a transação, e a transação será registrada quando atinge mais de 6 confirmações. (O quê? Por que 6?)

Quando os comedores de melão registram as informações da transação, eles carimbam o carimbo de tempo (valor de hash) para formar uma cadeia de tempo completa. Esse carimbo de tempo é na verdade uma prova de existência, indicando que a transação realmente aconteceu toda vez que é confirmada.
Transação os registros formarão um bloco (Block)
e os blocos serão vinculados por um algoritmo mágico
insira a descrição da imagem aqui

fale com eloquência

Bem, depois de passar pelas operações acima, acredito que todos vocês tenham uma compreensão perceptiva dos conceitos básicos de Bitcoin, blockchain e processos gerais (bem. Parece que conheço a área O que é a cadeia de blocos!) Vamos resumir a chave ideias e tecnologias da blockchain em profundidade!

descentralizado

Na rede Bitcoin, não há servidor centralizado. Toda a rede é composta por vários nós, que juntos formam uma rede descentralizada
de emissão de moeda descentralizada. Na rede Bitcoin, a emissão de moeda é "miners cavando mina" é garantida por este mecanismo, e este mecanismo é um mecanismo completamente descentralizado. A
circulação da transação de moeda é descentralizada. Cada transação de Bitcoin é garantida conjuntamente por todos os nós da rede. sexo e imutabilidade

abertura

As informações de transação de todos os usuários do Bitcoin são registradas em um livro-razão distribuído. Essas informações do livro-razão estão abertas a todos os usuários e qualquer pessoa pode fazer o download das informações do livro-razão. A rede Bitcoin está aberta e qualquer servidor pode ser conectado à rede. Você também
pode baixe a quantidade total de informações do razão

Imutável

Cada informação de transação é armazenada em um bloco e cada bloco recém-gerado é vinculado na ordem do tempo (valor de hash). A irreversibilidade do tempo faz com que qualquer operação que tente modificar as informações do bloco seja Cada bloco recém-gerado que pode ser
rastreado back é criptografado com o algoritmo de hash de volume. Os fatores envolvidos no hash incluem não apenas a informação desta transação, mas também o valor de hash do bloco anterior. Desta forma ,

tecnologia relacionada

A figura abaixo é um display de um bloco real, os campos do bloco que vamos focar desta vez são:

Bits
Nonce
Hash
Bloco anterior
Merkle Root
insira a descrição da imagem aqui

mecanismo de consenso

http://c.biancheng.net/view/1897.html

A tecnologia Blockchain resolve o problema de representação de valor e transmissão de valor em uma rede descentralizada, e como concordar com os dados nessa rede descentralizada distribuída é uma questão muito crítica. Em nossa vida cotidiana, quase tudo é um processo de consenso. E este é precisamente um dos principais avanços do Bitcoin, a saber: como chegar a um consenso sobre um determinado evento de transação em um ambiente descentralizado.

Os dois núcleos do mecanismo de consenso

Incentivos econômicos: Recompensar os participantes gerando uma determinada quantidade de novos bitcoins em cada bloco.
Introduzir recursos externos para garantir a segurança: ou seja, através de um grande número de cálculos externos para garantir a segurança do consenso, ou seja, Proof of Work

O principal processo de obtenção de consenso (o processo de geração de novos blocos)

Escuta: O nó monitora as informações da transação de toda a rede, e a transação verificada entrará no pool de memória do nó
Construção: Construir um bloco vazio, chamado de bloco candidato
Transação: Empacotar a transação do pool de memória para o bloco candidato
Head : Cabeçalho do Bloco de construção, preencha os seguintes campos do cabeçalho do bloco
Campo de versão do número da versão: Indica as regras de verificação cumpridas por este bloco
Valor de hash do bloco pai Bloco anterior
usa a árvore merkle para resumir todas as transações e preenche o valor de hash de a raiz merkle para a raiz merkle Campo
Timestamp campo timestamp
Preencha o campo Bits do valor de destino
Operação: Ajuste constantemente o número aleatório Nonce e execute o cálculo de Hash, para que o valor de Hash calculado atenda a certos requisitos, a saber: menor que o Hash de destino. (OU: A representação binária do valor Hash calculado tem um certo número de 0s iniciais)
Porque ao comparar números binários, a comparação é na verdade os 0s anteriores, e quem tiver mais 0s será menor
. Broadcast (protocolo fofoca)
verificação de novo bloco : Depois que outros nós passarem pela verificação, vincule (Bloco Anterior) à cadeia principal (existe uma cadeia lateral? Bem...)
Espera: aguarde a cadeia principal vincular 5 novos blocos ( Ou seja, após 5+1 blocos ), o bloqueio entrará em vigor oficialmente e não poderá ser adulterado.
Esse processo de obtenção de consenso é chamado de mecanismo de consenso baseado na prova de carga de trabalho. Aqui estão alguns pontos para explicar:

Como entender a carga de trabalho?

O ajuste constante de números aleatórios para executar a competição de cálculo SHA-256 é o poder de computação do computador. Esse cálculo baseado no poder de computação é um tipo de carga de trabalho. Por que o
valor de Hash calculado pode ser menor que o Hash de destino para refletir a carga de trabalho?
O número de pontos lançados pelo dado é <= 6 e precisa ser jogado uma vez em média, e a carga de trabalho pode ser quantificada como 1; e quanto ao número necessário de pontos lançados <= 3? É necessária uma média de 2 arremessos, dobrando a carga de trabalho. Quando o valor de destino é muito pequeno, é muito grande para tornar o valor de Hash calculado menor que o valor de destino
Com o aumento do poder de computação do computador, como controlar a dificuldade de cálculo?
O valor de Hash de destino composto por números binários de 256 bits, se um bit for alterado arbitrariamente, a dificuldade será dobrada. Portanto, a dificuldade pode ser ajustada ajustando o valor de Hash de destino

cálculo de hash


Geralmente, uma operação SHA-256 é usada e o valor Hash resultante do cálculo é composto por um número binário de 256 bits. Para conveniência da expressão, é expresso em hexadecimal, portanto, é 256/4 = 64 bits de entrada hexadecimal.Mudanças causarão grandes mudanças na saída, e não há nenhuma lei.

Bits e valor de hash de destino

Os bits correspondem à dificuldade. Ele usa um número inteiro de 32 bits para compactar e armazenar o valor Hash de destino atual de 256 bits.

Valor de hash de destino: 0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Bits: 0x1D00FFFF
Como comprimi-lo? As regras são:

O número efetivo de dígitos do valor Hash de destino = (64-8) + 2 = 58 (ou seja, 29 bytes), então o byte mais alto do campo Bits = 29 e a representação hexadecimal é 0x1D + 2 por causa
do valor Hash de destino O bit mais alto 0xFF (1111 1111) > 0x80 (1000 0000) Os
3 bytes restantes de Bits, pegue os 3 bytes mais altos do valor Hash para armazenar

Raiz Merkle

A árvore Merkle é usada no Bitcoin para armazenar informações de transação em cada bloco.

insira a descrição da imagem aqui

Use a árvore Merkle para resumir todas as informações da transação e coloque o Merkle Root resumido no cabeçalho do bloco. Os benefícios disso são óbvios:

Todas as transações participam do cálculo do Hash até serem agregadas ao Merkle Root. Se alguém adulterar alguns blocos de dados na parte inferior da árvore Merkle, isso fará com que o ponteiro hash da camada superior não corresponda, então ele terá que adulterar o ponteiro hash da camada superior até o topo do número e neste momento, a adulteração está prestes a ser encerrada, porque armazenamos o ponteiro hash do nó raiz da árvore, para que as informações da transação possam ser impedidas de serem adulteradas. Os usuários só precisam baixar dados de cabeçalho de bloco muito pequenos para
verificar a autenticidade de uma transação
De acordo com o princípio da cadeia mais longa, puxe todos os cabeçalhos de bloco para o local
Calcule o valor tx_hash da transação a ser verificada
Encontre o cabeçalho do bloco com tx_hash
para encontrar esta área Alguns nós-chave da Merkle Tree no bloco , e construir uma Merkle-Tree-Copy de acordo com as regras de construção para
comparar se a Raiz da Merkle-Tree-Copy é a mesma que a Raiz no bloco
, desde que nos lembremos do nó raiz da primeira árvore Hash pointer ,
ponteiropodemos voltar para qualquer posição na tabela de acordo com o
Então, qual é o problema do "gasto duplo"? Aqui, vamos resolver alguns conceitos relacionados a isso:

Ataque de poder de computação de 51%
Problema de gasto duplo
3.1.6.1 Ataque de poder de computação de 51%
No mecanismo de consenso baseado em prova de trabalho, os nós da rede competem com o poder de computação do computador para executar operações complexas de Hash, e o nó que primeiro calcula o resultado gera Os blocos serão aceitos por toda a rede e vinculados ao blockchain, chamados de novos blocos. Então, quando uma pessoa ou organização domina 51% do poder de computação de toda a rede, ela pode forjar transações de acordo com "o que ela quiser".

problema de gastos duplos

Supondo que Xiaohei tenha 666 BTC, ele paga Dabai com essas moedas e ao mesmo tempo as envia para outro endereço de carteira próprio.

No final, a transação enviada para Dabai foi confirmada primeiro e embalada em um bloco com altura de bloco N.

Neste momento, Xiao Hei, que controlava mais de 50% do poder de computação, lançou um ataque de poder de computação de 51%. Ao remontar o bloco Nth, ele empacotou a transação enviada para si mesmo no bloco e continuou nesta cadeia. Devido às vantagens do poder de computação, esse valor será chamado de cadeia mais longa legal. (O usuário reconhece apenas a cadeia mais longa que vê - o princípio da cadeia mais longa)

Neste momento, a transação transferida para Dabai foi adulterada.

como evitar

Para evitar perdas causadas por gastos duplos, geralmente acredita-se que as transações de Bitcoin após a confirmação de 6 blocos não podem ser adulteradas.
insira a descrição da imagem aqui

De um modo geral, quanto mais blocos confirmados, mais seguro e menor a possibilidade de adulteração das transações.

Para alcançar o gasto duplo, na verdade é um processo no qual nós maliciosos e nós seguros competem entre si pela mineração. Quando a cadeia maliciosa formada pelo nó malicioso é maior que a cadeia confiável formada pelo nó seguro, o nó malicioso pode realizar gastos duplos. Aqui, uma suposição é feita, ou seja, assumindo que os nós maliciosos respondem pelo poder computacional de toda a rede como p, então o nó seguro é q=1-p, após passar o n-ésimo bloco, a probabilidade do nó malicioso cadeia alcançando a cadeia confiável para:

(pq)n ( pq ) n
Então, quando o nó confiável gera n blocos, quantos blocos o nó malicioso gera?

Aqui, Satoshi Nakamoto assume que o número de blocos gerados por nós maliciosos obedece a uma distribuição de Poisson:

P(X=k)=(λkk!)e−λ P ( X = k ) = ( λ kk ! ) e − λ Esta fórmula significa: a probabilidade de um nó malicioso gerar
k blocos é: P(X=k)

Portanto, podemos descobrir o valor esperado de nós maliciosos gerando blocos após os nós confiáveis ​​gerarem n blocos.

∑∞k=0(λkk!)e−λ(pq)n−k ∑ k = 0 ∞ ( λ kk ! ) e − λ ( pq ) n − k Some esta sequência, quando N=6, p =
At 10%, soma = 0,0002.

Indica: quando o nó confiável gera 6 blocos, o valor esperado do número de blocos gerados pelo nó malicioso é 0,0002

Ou seja, nas condições das hipóteses acima, após a confirmação de 6 blocos, a possibilidade de fraude de nó malicioso é quase zero.

Acho que você gosta

Origin blog.csdn.net/jgku/article/details/128360418
Recomendado
Clasificación