Índice:

Como o blockchain realmente funciona
Como o blockchain realmente funciona

Vídeo: Como o blockchain realmente funciona

Vídeo: Como o blockchain realmente funciona
Vídeo: How to make Predator helmet with cardboard 2024, Maio
Anonim

Este post pretende contar a todos porque o blockchain foi inventado, como funcionam as criptomoedas e porque é o sistema mais bonito dos últimos anos do ponto de vista da lógica.

Vou avisá-lo imediatamente que sob o corte há uma folha de texto ENORME e se você não estiver pronto para "fechar" a questão no tópico de criptomoedas de uma vez por todas, adicione uma entrada aos seus favoritos agora e reserve um tempo)

Blockchain é uma tecnologia, nova, estranha, incompreensível, mas parece estar mudando o mundo, em contraste com essas suas histórias. Aparentemente, ela está conosco há muito tempo.

Este post é escrito como se fosse contado para pessoas que estão muito longe dos computadores e os conhecem apenas superficialmente, por exemplo, imagine que ele estava se preparando para seus pais. Posso até mesmo jogar isso para meus colegas da área de ciências humanas e ter certeza de que eles vão entender.

E Oleg nos ajudará a todos nessa difícil questão. Conheça!

Se você não gosta de Oleg, vou expulsá-lo.

O básico: por que precisamos do blockchain?

O blockchain foi descrito no artigo de Satoshi Nakamoto "Bitcoin: A Peer-to-Peer Electronic Cash System". Lá, em apenas oito páginas, o autor descreveu os fundamentos da criptomoeda Bitcoin, que foi baseada no algoritmo Blockchain.

Lista que não pode ser alterada

Blockchain - uma cadeia de blocos ou, em outras palavras, uma lista vinculada. Nessa lista, cada registro seguinte refere-se a um anterior e assim por diante, ao longo da cadeia, até o primeiro. Como os vagões de um trem, cada um arrasta o próximo. Em relação às listas, existe um bom artigo de Nikita Likhachev no TJ, onde o mesmo é explicado para novatos. As analogias são parcialmente tiradas daí.

Vamos dar um exemplo

Os amigos de Oleg constantemente pedem dinheiro emprestado a ele. Oleg é gentil, mas extremamente esquecido. Uma semana depois, ele não se lembra mais de quem não lhe devolveu a dívida, mas fica com vergonha de perguntar a todos sobre isso. Portanto, um dia ele decidiu acabar com isso criando uma lista de amigos no quadro-negro de sua casa a quem pediu dinheiro emprestado.

Agora Oleg sempre pode ir ao quadro e certificar-se de que Max devolveu tudo, mas Vanya não dá 700 rublos já. Um dia Oleg convida Vanya para tomar um drinque em sua casa. Enquanto Oleg vai ao banheiro, Vanya apaga a entrada “Peguei 200 rublos para Vanya” e escreve em seu lugar “Vanya deu 500 rublos”.

Oleg, que confiava em sua lista, esquece a dívida e perde 700 rublos. Ele decide lutar de alguma forma. No ano passado, Oleg fez um curso de programação, onde ouviu falar de hashing. Ele lembra que qualquer string pode ser transformada em um conjunto inequívoco de caracteres - um hash, e mudar qualquer caractere na string o mudará completamente.

Adicionar um ponto no final alterou o hash final além do reconhecimento - você pode usá-lo.

Oleg pega o conhecido hash SHA-256 e faz o hash de cada registro com ele, adicionando o resultado no final. Agora Oleg pode ter certeza de que ninguém alterou seus registros, fazendo o hash novamente e comparando-os com o verde.

Mas EVIL IVAN também sabe como usar SHA-256 e pode facilmente alterar a entrada junto com seu hash. Especialmente se o hash estiver escrito ao lado dele no quadro.

Portanto, para maior segurança, Oleg decide fazer hash não apenas do registro em si, mas adicioná-lo junto com o hash do registro anterior. Agora, todas as entradas a seguir dependem das anteriores. Se você alterar pelo menos uma linha, terá que recalcular os hashes de todas as outras abaixo na lista.

Mas, um dia, Ivan chega furtivamente à noite, altera a entrada de que precisa e atualiza os hashes de toda a lista até o fim. Demora várias horas, mas Oleg ainda está dormindo e não pode ouvir. De manhã, Oleg descobre uma lista absolutamente correta - todos os hashes correspondem. Mas Ivan o enganou de qualquer maneira, embora tenha passado uma noite sem dormir nisso. De que outra forma você pode se proteger do Night Ivan?

Oleg decide complicar de alguma forma sua vida. Agora, para adicionar uma nova entrada à lista, Oleg resolverá um problema complexo associado a ela, por exemplo, uma equação matemática. Ele adicionará a resposta ao hash final.

Oleg é bom em matemática, mas leva dez minutos para adicionar uma entrada. Apesar disso, o tempo gasto vale a pena, pois se Ivan quiser mudar algo novamente, terá que resolver novamente as equações de cada linha, podendo haver dezenas delas. Isso levará muito tempo, porque as equações são exclusivas a cada vez e associadas a um registro específico.

Mas verificar a lista é tão simples: primeiro você precisa comparar os hashes como antes e, em seguida, verificar as soluções das equações por substituição simples. Se tudo convergir, a lista não se altera.

Na realidade, as coisas não são tão boas com equações: os computadores as resolvem muito bem e onde armazenar tantas equações únicas. Portanto, os autores do blockchain encontraram um problema mais bonito: você precisa encontrar esse número (nonce) para que o hash final de todo o registro comece com 10 zeros. Tal nonce é difícil de encontrar, mas o resultado sempre pode ser verificado apenas com os olhos.

Agora Oleg verifica todos os hashes e, adicionalmente, garante que cada um comece com o número especificado de zeros. Sly Ivan, mesmo armado com um laptop poderoso, não terá tempo para recalcular todos os hashes em uma noite para que eles satisfaçam a condição - não haverá tempo suficiente.

Essa lista, na verdade, é o blockchain doméstico em seu joelho. Sua segurança é garantida por matemáticos, que provaram que esses hashes não podem ser calculados de forma mais rápida, exceto pela força bruta. Essa enumeração de hashes para cada registro é mineração, sobre a qual hoje haverá muito e em detalhes.

Centralização de confiança

Nossos amigos gostaram da ideia de manter uma lista falsa de "quem pegou emprestado quem". Eles também não querem lembrar quem pagou por quem no bar e quanto ainda deve - tudo está escrito na parede. Você discutiu a ideia e decidiu que agora precisa de uma lista única para todos.

Mas a quem deve ser confiada uma contabilidade tão importante? Afinal, quando se trata de dinheiro, a confiança vem à tona. Não confiaremos no desconhecido para manter nosso dinheiro. Para isso, nossos antepassados inventaram os bancos, que com o tempo passaram a ser confiáveis, porque são amparados por licença, leis e seguros do Banco Central.

No círculo de amigos todos confiam uns nos outros e você pode simplesmente escolher o mais responsável para esta função. Mas e se a pergunta for sobre estranhos? Uma cidade inteira, um país ou o mundo inteiro, como é o caso do Bitcoin? Em geral, ninguém pode confiar em ninguém lá.

Descentralização: ninguém confia em ninguém

Então, eles criaram uma abordagem alternativa: mantenha uma cópia da lista para todos. Assim, um invasor não teria apenas que reescrever uma lista, mas também entrar sorrateiramente em cada casa e reescrever as listas ali. E então descobri que alguém mantinha várias listas em casa, das quais ninguém sabia. Isso é descentralização.

A desvantagem dessa abordagem é que, para fazer novas entradas, você terá que ligar para todos os outros participantes e informar a cada um deles sobre as últimas alterações. Mas se esses participantes são máquinas sem alma, deixa de ser problema algum.

Em tal sistema, não há um único ponto de confiança e, portanto, a possibilidade de suborno e trapaça. Todos os participantes do sistema agem de acordo com uma única regra: ninguém confia em ninguém. Todos acreditam apenas nas informações de que dispõem. Esta é a lei principal de qualquer rede descentralizada.

Transações

Ao comprar um pote em uma loja, você insere o código PIN do seu cartão, permitindo que a loja pergunte ao banco se você tem 35 rublos em sua conta. Em outras palavras, você assina uma transação de 35 rublos com seu código PIN, que o banco confirma ou rejeita.

Nossos registros do tipo "Peguei emprestado o Vanya 500 rublos" também são transações. Mas não temos um banco autorizando o autor das transações. Como podemos verificar se Ivan não acrescentou discretamente a entrada "Max deve a Oleg 100.500 rublos"?

O blockchain usa o mecanismo de chaves públicas e privadas para isso; especialistas de TI há muito que as usam para autorização no mesmo SSH. Eu expliquei em meus dedos no post "Segurança, criptografia, cyberpunk" na seção "Introdução à criptografia".

Resumidamente sobre como funciona essa matemática complexa, mas bela: você gera um par de números primos longos em seu computador - uma chave pública e uma chave privada. A chave privada é considerada supersecreta porque pode descriptografar o que está criptografado em público.

Mas o oposto também funciona. Se você compartilhar a chave pública com todos os seus amigos, eles poderão criptografar qualquer mensagem para eles, de forma que somente você possa lê-la, já que a privada é sua.

Mas, além disso, a chave pública tem um efeito útil - com ela você pode verificar se os dados foram criptografados com sua chave privada, sem descriptografar os próprios dados. Todas essas propriedades estão bem descritas no "Livro das Cifras".

Estamos em uma Internet descentralizada, onde ninguém é confiável. A transação é assinada com uma chave privada e, junto com a chave pública, é enviada para um armazenamento especial - um pool de transações não confirmadas. Assim, qualquer membro da rede pode verificar se foi você quem a iniciou, e ninguém mais deseja pagar com o seu dinheiro.

Isso garante a abertura e a segurança da rede. Se os bancos anteriores foram responsáveis por isso, então na blockchain, os matemáticos são os responsáveis por isso.

Para usuários comuns que não desejam descobrir como emitir e armazenar chaves privadas, os serviços de carteira online ajudarão. Para copiar chaves públicas longas, códigos QR convenientes são feitos lá. Por exemplo Blockchain Wallet, porque tem um aplicativo móvel conveniente e suporta as duas principais criptomoedas - BTC e ETH.

Falta do conceito de "equilíbrio"

Como nosso conselho, o blockchain consiste essencialmente apenas no histórico de transações. Ele não armazena o saldo de cada carteira, caso contrário, teríamos que inventar métodos de proteção adicionais.

Apenas a chave privada confirma a propriedade da carteira. Mas como os outros membros da rede podem ter certeza de que tenho dinheiro suficiente para comprar?

Já que não temos saldo, você deve prová-lo. Portanto, uma transação blockchain inclui não apenas sua assinatura e quanto você deseja gastar, mas também links para transações anteriores nas quais você recebeu a quantia necessária de dinheiro.

Ou seja, se quiser gastar 400 rublos, você percorre todo o seu histórico de receitas e despesas e atribui à transação as receitas em que recebeu 100 + 250 + 50 rublos, provando assim que possui esses 400 rublos.

Cada membro da rede irá, mais uma vez, certificar-se de verificar se você não anexou renda duas vezes. Que aqueles 300 rublos que Max deu na semana passada, você ainda não gastou.

Essas receitas vinculadas a uma transação são chamadas de entradas no blockchain, e todos os destinatários de dinheiro são chamados de saídas. A soma de todas as entradas raramente é exatamente a mesma que você deseja transferir de uma vez - portanto, uma das saídas geralmente será você. Em outras palavras, a transação no blockchain se parece com "Recebi 3 e 2 BTC, quero transferir 4 BTC deles e devolver o 1 BTC restante."

A beleza do blockchain é que as entradas não precisam vir de uma carteira. Afinal, apenas a chave é verificada. Se você conhece a chave privada de todas as entradas, pode facilmente anexá-las à sua transação e pagar com esse dinheiro. Como se você estivesse pagando em um supermercado com vários cartões dos quais você conhece o código PIN.

No entanto, se você perder sua chave privada, seu disco morrer ou seu laptop for roubado, seus bitcoins serão perdidos para sempre. Ninguém pode usá-los como insumos para novas transações.

Essa quantia ficará inacessível para todo o mundo para sempre - como se você queimasse um maço de notas. Não existe um único banco onde você possa escrever um requerimento com uma cópia do seu passaporte e ele irá imprimi-lo. Isso requer um lançamento adicional de novos bitcoins "do nada".

Problema de gasto duplo

Acima, eu disse que as transações são adicionadas a um "pool de transações não confirmadas" especial. Por que precisamos de algum tipo de entidade intermediária, se já temos, de fato, transações assinadas prontas? Por que não gravá-los diretamente no blockchain?

Porque os sinais do ponto A ao ponto B sempre vão com um atraso. Duas transações podem seguir caminhos completamente diferentes. E a transação que foi iniciada primeiro pode chegar ao destinatário depois, porque tomou um caminho mais longo.

Isso resulta em gasto duplo, quando o mesmo dinheiro é enviado a dois destinatários de uma vez, o que eles nem imaginam. Isso não significa entregar contas de mão em mão.

Para uma rede descentralizada na qual ninguém é confiável, esse problema é especialmente agudo. Veja como você se certifica de que uma transação foi definitivamente antes da outra? Peça ao remetente para costurar o tempo de despacho nele, certo? Mas lembre-se: você não pode confiar em ninguém, nem mesmo no remetente.

A hora em todos os computadores será necessariamente diferente e não há uma maneira garantida de sincronizá-los. Uma cópia do blockchain é armazenada em cada computador da rede e cada participante confia apenas nele.

Como você pode ter certeza de que uma transação foi anterior à outra?

A resposta é simples: é impossível. Não há como confirmar a hora de uma transação em uma rede descentralizada. E a solução para esse problema é a terceira ideia importante de blockchain que Satoshi inventou e que, estranhamente, está escrita bem em seu nome - blocos.

Os blocos são a espinha dorsal do blockchain

Cada computador em funcionamento na rede seleciona quaisquer transações que desejar do pool geral. Normalmente, apenas pela comissão mais alta que ele pode ganhar com isso. Assim, ele coleta as transações para si mesmo até que o tamanho total atinja o limite negociado. No Bitcoin, o limite de tamanho do bloco é de 1 MB (depois do SegWit2x será 2 MB) e no Bitcoin Cash - 8 MB.

Todo o blockchain é essencialmente uma lista de tais blocos, onde cada um se refere ao anterior. Ele pode ser usado para rastrear qualquer transação em todo o histórico, desenrolando o blockchain até o primeiro registro.

É esta lista que já pesa centenas de gigabytes e deve ser descarregada integralmente para todos os computadores que queiram fazer parte da rede (mas não é necessário simplesmente criar transações e transferir dinheiro). Ele é baixado da mesma forma de todos os computadores mais próximos na rede, como se você estivesse baixando uma série de torrents, apenas novos episódios são lançados nele a cada 10 minutos.

Depois de digitar as transações do pool para si mesmo, o computador começa a compor a partir delas a mesma lista imprevisível que fizemos no início da postagem no quadro em casa.

Só ele o faz na forma de uma árvore - faz o hash dos registros aos pares, depois o resultado é novamente aos pares, e assim por diante, até que reste apenas um hash - a raiz da árvore, que é adicionada ao bloco. Por que exatamente com uma árvore - não encontrei a resposta, mas suponho que seja simplesmente mais rápido assim. Leia mais no wiki: árvore Merkle.

Como o blockchain atual já foi baixado, nosso computador sabe exatamente qual é o último bloco nele. Ele só precisa adicionar um link para ele no cabeçalho do bloco, hash tudo e dizer a todos os outros computadores da rede “olha, eu fiz um novo bloco, vamos adicioná-lo ao nosso blockchain”.

O resto deve verificar se o bloco é construído de acordo com todas as regras e se não adicionamos transações desnecessárias lá, e então adicioná-las às nossas cadeias. Agora todas as transações nele estão confirmadas, o blockchain é aumentado em um bloco e tudo está indo bem, não é?

Mas não. Milhares de computadores estão trabalhando simultaneamente na rede e, assim que montam um novo bloco, quase simultaneamente se apressam em informar a todos que seu bloco foi criado primeiro. E da seção anterior, já sabemos que em uma rede descentralizada é impossível provar quem realmente foi o primeiro.

Como na escola, quando todos estavam resolvendo um teste difícil, raramente acontecia que mesmo alunos excelentes recebessem as respostas ao mesmo tempo.

Mas se para uma pessoa é uma tarefa difícil planejar as férias de modo que ela tenha os feriados de maio, e os bilhetes para o mar são baratos, então para um computador é adicionar esse número (nonce) ao final do bloco de modo que, como resultado, o hash SHA-256 para todo o bloco comece, digamos, 10 zeros. Esse é o problema que precisa ser resolvido para adicionar um bloco à rede Bitcoin. Para outras redes, as tarefas podem ser diferentes.

Então chegamos ao conceito de mineração, pelo qual todos têm sido obcecados nos últimos anos.

Mineração

A mineração de bitcoins não é algum tipo de sacramento sagrado. Minar não significa encontrar novos bitcoins em algum lugar nas profundezas da Internet. Mineração é quando milhares de computadores em todo o mundo estão zumbindo em porões, passando por milhões de números por segundo, tentando encontrar um hash que começa com 10 zeros. Eles nem precisam estar online para fazer isso.

Placas de vídeo com centenas de núcleos paralelos resolvem esse problema mais rápido do que qualquer CPU.

Por que exatamente 10 zeros? E assim, não faz sentido. Então Satoshi veio com. Porque esse é um daqueles problemas para os quais sempre há solução, mas certamente não pode ser encontrado mais rápido do que uma longa e monótona enumeração de opções.

A complexidade da mineração depende diretamente do tamanho da rede, ou seja, de sua potência total. Se você criar seu próprio blockchain e executá-lo sozinho em casa em dois laptops, a tarefa deve ser mais simples. Por exemplo, para que o hash comece com apenas um zero, ou para que a soma dos dígitos pares seja igual à soma dos ímpares.

Levará várias décadas para que um computador encontre um hash começando com 10 zeros. Mas se você combinar milhares de computadores em uma única rede e pesquisar em paralelo, então, de acordo com a teoria da probabilidade, esse problema é resolvido em média em 10 minutos. Este é o momento em que um novo bloco aparece no blockchain do bitcoin.

A cada 8-12 minutos, alguém na terra encontra esse hash e tem o privilégio de anunciar sua descoberta a todos, evitando assim o problema de quem foi o primeiro.

Para encontrar uma resposta, o computador (a partir de 2017) recebe 12,5 BTC - essa é a quantidade de recompensa que é gerada pelo sistema bitcoin "do nada" e diminui a cada quatro anos.

Tecnicamente, isso significa que cada minerador sempre adiciona outra transação ao seu bloco - “criar 12,5 BTC e enviá-los para minha carteira”. Quando você ouve "o número de bitcoins no mundo é limitado a 21 milhões, agora eles já contrataram 16 milhões" - essas são as recompensas geradas pela rede.

Vá ver um bloco Bitcoin real e ao vivo em um dos sites dedicados. Existem também transações com entradas e saídas, e até 18 zeros no início e todos os hashes descritos acima.

São os mineiros que adicionam as transações emergentes ao blockchain. Portanto, se alguém lhe disser que "fará um blockchain para ***", a primeira pergunta que ele deve responder é quem fará a mineração e por quê. Na maioria das vezes, a resposta correta é “todo mundo vai, porque para a mineração damos nossas moedas, que vão crescer e é lucrativo para os mineiros”. Mas isso não se aplica a todos os projetos.

Por exemplo, algum Ministério da Saúde amanhã cria seu próprio blockchain fechado para médicos (e eles querem), quem vai minerá-lo? Terapeutas de fim de semana?

Mas qual será o benefício para os mineiros mais tarde, quando as recompensas desaparecerem ou se tornarem escassas?

De acordo com a ideia do Criador, nesse momento as pessoas terão que acreditar na realidade do bitcoin e a mineração começará a pagar pelo valor das taxas incluídas em cada transação. É para onde tudo vai: em 2012, todas as comissões eram zero, os mineiros extraíam apenas recompensas nos blocos. Hoje, uma transação sem comissão zero pode ficar na piscina por várias horas, porque há competição e as pessoas estão dispostas a pagar pela velocidade.

Ou seja, a essência da mineração está na solução de problemas sem sentido. Todo esse poder não poderia ser usado para algo mais útil - a busca pela cura do câncer, por exemplo?

A essência da mineração é resolver qualquer problema computacional. Essa tarefa deve ser simples o suficiente para que os participantes da rede tenham uma probabilidade estável de encontrar uma resposta - caso contrário, as transações serão confirmadas para sempre. Imagine que no caixa de uma loja você tenha que esperar meia hora a cada vez para que o banco confirme sua transação. Ninguém vai usar esse banco.

Mas a tarefa deve ser ao mesmo tempo difícil, para que todos os internautas não encontrem a resposta de uma vez. Pois nesse caso eles vão anunciar muitos blocos com as mesmas transações para a rede e haverá a possibilidade de “desperdício duplo”, que mencionei. Ou ainda pior - dividir um único blockchain em vários ramos, nos quais ninguém pode descobrir qual transação está confirmada e qual não é.

Se uma recompensa de 12,5 BTC for distribuída apenas uma vez a cada 10 minutos e apenas uma pessoa que encontrou o bloco, descobri que terei que desperdiçar placas de vídeo por vários anos na esperança de um dia perder $ 40.000 (no taxa de câmbio atual)?

Esse é exatamente o caso do bitcoin. Mas não foi sempre assim. Anteriormente, a rede era menor, a complexidade é menor, o que significa que a probabilidade de encontrar sozinho um hash para um novo bloco é maior. Mas o bitcoin não era tão caro.

Agora ninguém está minerando bitcoins sozinho. Agora os participantes estão unidos em grupos especiais - piscinas de mineração, onde todos juntos estão tentando encontrar o hash correto.

Se pelo menos um do grupo encontrar, então toda a recompensa é dividida entre os participantes, dependendo de sua contribuição para o trabalho comum. Acontece que você está minerando e recebe um centavo da participação total todas as semanas.

Mas a mineração solo é perfeitamente possível em outras redes. Até recentemente, era fácil minerar Ethereum, onde blocos são encontrados a cada 10 segundos. A recompensa em bloco é muito menor lá, mas a probabilidade de ganhar um bom dinheiro é maior.

Então vamos queimar milhares de placas de vídeo em vão e não tem jeito?

Sim, mas existem ideias. A mineração que descrevi é clássica e é chamada de Prova de Trabalho (prova de trabalho). Ou seja, cada máquina prova que funcionou para o benefício da rede, resolvendo problemas sem sentido com uma determinada probabilidade.

Mas alguns caras estão começando a fazer blockchains com outros tipos de mineração. Agora, o segundo conceito mais popular é a prova de aposta (prova de aposta). Nesse tipo de mineração, quanto mais “moedas” um participante da rede tiver em sua conta, maior será a probabilidade de ele inserir seu bloco no blockchain. Como o cara mais barulhento da aldeia.

Você pode pensar em outros tipos de mineração. Como já foi sugerido, todos os computadores da rede podem buscar a cura do câncer, só você precisa descobrir como, nesse caso, registrar sua contribuição para o sistema. Afinal, posso declarar que também participo, mas desligo minha placa de vídeo e não conto nada.

Como você quantifica a contribuição de cada participante para encontrar uma cura para o câncer? Se você chegar a uma conclusão - ouse cortar seu CancerCoin, um hype na mídia é garantido para você.

Blockchain

Imagine uma situação em que, apesar de toda a nossa teoria da probabilidade, dois mineiros ainda conseguiram encontrar a resposta certa ao mesmo tempo. Eles começam a enviar dois blocos absolutamente corretos pela rede.

Esses blocos são garantidamente diferentes, porque mesmo que eles escolhessem milagrosamente as mesmas transações do pool, fizessem árvores absolutamente idênticas e adivinhassem o mesmo número aleatório (nonce), seus hashes ainda seriam diferentes, já que cada um escreverá seu número de carteira em o bloco para recompensa.

Agora temos dois blocos válidos e novamente surge o problema de quem deve ser considerado primeiro. Como a rede se comportará neste caso?

O algoritmo blockchain afirma que os participantes da rede simplesmente aceitam a primeira resposta correta que chega até eles. Então, eles vivem com base em sua própria imagem do mundo.

Os dois mineiros receberão sua recompensa, e todo o resto começará a minerar, contando com o último bloco que receberam pessoalmente, descartando todo o resto que sejam corrigidos. Duas versões do blockchain correto aparecem na rede. Esse é o paradoxo.

Esta é uma situação de rotina em que a teoria da probabilidade ajuda novamente. A rede funciona em tal estado bifurcado até que um dos mineiros encontre o próximo bloco para uma dessas cadeias.

Assim que tal bloco é encontrado e inserido na cadeia, ele se torna mais longo e um dos acordos da rede de blockchain é incluído: sob quaisquer condições, o blockchain mais longo é aceito como o único verdadeiro para toda a rede.

A cadeia curta, apesar de toda a sua correção, é rejeitada por todos os participantes da rede. As transações dele são devolvidas ao pool (se não tiverem sido confirmadas em outro) e seu processamento é reiniciado. O mineiro perde sua recompensa porque seu bloco não existe mais.

Com o crescimento da rede, tais coincidências de "muito improváveis" vão para a categoria de "bom, às vezes acontece". Os veteranos dizem que houve casos em que uma cadeia de quatro blocos caiu de uma vez.

Por causa disso, três regras de insegurança de fim de cadeia foram inventadas:

1. Recompensas para mineração podem ser usadas somente após outros 20 blocos confirmados após o recebimento. Para Bitcoin, isso leva cerca de três horas.

2. Se bitcoins foram enviados a você, você pode usá-los como entradas em novas transações somente após 1-5 blocos.

3. As regras 1 e 2 são apenas explicadas nas configurações de cada cliente. Ninguém monitora sua observância. Mas a lei da cadeia mais longa ainda eliminará todas as suas transações se você tentar enganar o sistema para não aplicá-las.

Tentando trapacear o blockchain

Agora que você sabe tudo sobre mineração, o dispositivo do blockchain e a regra da cadeia mais longa, você pode ter uma pergunta: é possível de alguma forma ultrapassar especificamente o blockchain criando você mesmo a cadeia mais longa, confirmando assim suas transações falsas.

Digamos que você tenha o computador mais poderoso do planeta. Os datacenters do Google e da Amazon estão à sua disposição e você está tentando calcular essa cadeia que se tornará a blockchain mais longa da rede.

Você não pode pegar e calcular imediatamente vários blocos da cadeia, porque cada bloco seguinte depende do anterior. Em seguida, você decide o mais rápido possível contar cada bloco em seus enormes datacenters em paralelo com a forma como todos os outros participantes continuam a aumentar o blockchain principal. É possível ultrapassá-los? Provavelmente sim.

Se o seu poder de computação for mais de 50% do poder de todos os participantes da rede, então com 50% de probabilidade você será capaz de construir uma cadeia mais longa mais rápido do que todas as outras combinadas. Esta é uma maneira teoricamente possível de enganar o blockchain calculando uma cadeia mais longa de transações. Então, todas as transações da rede real serão consideradas inválidas, e você coletará todas as recompensas e iniciará um novo marco na história da criptomoeda, que é chamado de "divisão de blockchain". Antigamente, devido a um bug no código, esse era o caso do Ethereum.

Mas, na realidade, nenhum data center pode ser comparado em termos de energia a todos os computadores do mundo. Um bilhão e meio de chineses com icics, outro bilhão e meio de indianos famintos com fazendas de mineração e eletricidade barata - este é um enorme poder de computação. Ninguém no mundo pode competir sozinho com eles, nem mesmo o Google.

É como sair à rua e tentar convencer todas as pessoas no mundo de que o dólar agora vale 1 rublo e chegar a tempo antes que a mídia o denuncie. E se você conseguir convencer a todos, você pode colapsar a economia mundial. Em teoria, não é possível? Mas, na prática, por algum motivo, ninguém conseguiu.

O blockchain também depende dessa probabilidade. Quanto mais participantes-mineiros, mais segurança e confiança na rede. Portanto, quando outra grande fazenda de mineração é coberta na China, a taxa entra em colapso. Todos estão com medo de que em algum lugar do mundo houvesse um gênio do mal que já havia coletado um grupo de mineiros com aproximadamente 49% da capacidade.

Conclusão

Blockchain não é um conjunto estritamente definido de algoritmos. É uma estrutura para construir uma falsa rede entre os participantes, onde ninguém pode confiar em ninguém. Durante a leitura, provavelmente você já pensou mais de uma vez que “você pode fazer assim e será ainda mais útil”. Isso significa que você entende o blockchain, parabéns.

Alguns caras no mundo também entenderam e queriam melhorar ou se adaptar para algumas tarefas específicas. As criptomoedas não são iguais, embora também existam muitas. Aqui está uma pequena lista de algumas das ideias e projetos que ganharam alguma popularidade graças ao repensar da ideia do blockchain.

Ethereum

“Ethers” é a segunda palavra mais popular que você ouve nas notícias criptográficas, depois do Bitcoin. Para as pessoas comuns, esta é outra criptomoeda e uma maneira de fazer a coisa mais moderna chamada ICO. Os desenvolvedores do site descrevem o Ethereum como "um construtor de blockchain para suas necessidades". Isso também é possível, sim.

Mas se você cavar ainda mais fundo, o éter não é apenas uma rede de moedas. Esta é uma grande máquina de computação global, onde os usuários executam o código de programas de outras pessoas (contratos inteligentes), recebendo uma recompensa por cada linha executada. E tudo isso descentralizado, indestrutível e com todas as garantias do blockchain.

Podemos falar sobre Ethereum e contratos inteligentes por tanto tempo que será o suficiente para outro post. Portanto, agiremos no estilo dos melhores blogueiros: se este post for ativamente repostado e retuitado e até sexta-feira tiver pelo menos 1.500 visualizações únicas, escreverei uma sequência sobre Ethereum e contratos inteligentes.

Recomendado: