ETFFIN Finance >> Finanças pessoais curso >  >> Criptomoeda >> Blockchain

Como uma cadeia de bloqueio evita o gasto duplo de Bitcoins?

Uma das principais preocupações de qualquer desenvolvedor de criptomoeda é a questão do gasto duplo. Isso se refere à incidência de um indivíduo que gasta o saldo dessa criptomoeda mais de uma vez, efetivamente criando uma disparidade entre o registro de gastos e a quantidade de criptomoeda disponível, bem como a forma como é distribuído.

A questão do gasto duplo é um problema que o dinheiro não tem; se você pagar por um sanduíche com uma nota de $ 10, entregando a conta para o fabricante do sanduíche, você não pode se virar e gastar os mesmos $ 10 em outro lugar. Uma transação usando uma moeda digital como bitcoin, Contudo, ocorre inteiramente digitalmente. Isso significa que é possível copiar os detalhes da transação e retransmiti-los de forma que o mesmo BTC possa ser gasto várias vezes por um único proprietário. Abaixo, examinaremos como os desenvolvedores de criptomoedas garantiram que não ocorram gastos em dobro.

Principais vantagens

  • Um problema técnico que surge com a noção de uma moeda digital é a capacidade de alguém duplicar o dinheiro digital e gastá-lo simultaneamente em dois ou mais lugares.
  • Esse problema de 'gasto duplo' é evitado em criptomoedas baseadas em blockchain, como Bitcoin, usando um mecanismo de consenso conhecido como prova de trabalho (PoW).
  • Este PoW é realizado por uma rede descentralizada de 'mineradores' que não apenas garantem a fidelidade das transações anteriores no livro-razão do blockchain, mas também detectam e evitam gastos duplos.

Compreendendo o Blockchain

O blockchain que sustenta uma moeda digital como o bitcoin não é capaz de evitar gastos em dobro por conta própria. Em vez, todas as diferentes transações envolvendo a criptomoeda relevante são postadas no blockchain, onde são verificados separadamente e protegidos por um processo de confirmação. No caso do bitcoin e muitas outras criptomoedas, as transações que foram confirmadas desta forma tornam-se irreversíveis; eles são postados publicamente e mantidos perpetuamente.

O Bitcoin foi a primeira grande moeda digital a resolver a questão do duplo gasto. Ele fez isso implementando este mecanismo de confirmação e mantendo um comum, sistema de razão universal. Desta maneira, o blockchain bitcoin retém registros de transações com carimbo de data / hora desde a fundação da criptomoeda em 2009.

Em termos de Bitcoin, um "bloco" é um arquivo de dados gravados permanentemente. Todas as transações recentes são gravadas em blocos, muito parecido com um livro-razão de transação de ações em uma bolsa. As informações dos blocos são adicionadas ao razão a cada poucos minutos; todos os nós da rede mantêm uma cópia do livro razão do blockchain. Os usuários podem navegar no blockchain para bitcoin e revisar as transações apenas em termos de quantidade. Detalhes sobre as identidades do comprador e do vendedor em qualquer transação são protegidos por criptografia de alto nível, que também protege o livro-razão de adulteração por fontes externas. Quando o livro-razão do blockchain é atualizado, assim também são todas as carteiras bitcoin.

Lidando com gastos em dobro

Imagine que você tem 1 BTC e tenta gastá-lo duas vezes em duas transações separadas. Você pode tentar fazer isso enviando o mesmo BTC para dois endereços de carteira bitcoin separados. Ambas as transações irão para o pool de transações não confirmadas. A primeira transação seria aprovada por meio do mecanismo de confirmação e, em seguida, verificada no bloco subsequente. Contudo, a segunda transação seria reconhecida como inválida pelo processo de confirmação e não seria verificada. Se ambas as transações forem retiradas do pool para confirmação simultaneamente, a transação com o maior número de confirmações será incluída no blockchain, enquanto o outro será descartado.

Embora isso efetivamente lide com a questão do gasto duplo, não é sem problemas. Por exemplo, o destinatário pretendido da segunda transação (com falha) não teria parte na própria falha da transação, e, no entanto, essa pessoa não receberia o bitcoin que havia previsto. Muitos comerciantes aguardam pelo menos 6 confirmações de uma transação (o que significa que seis blocos subsequentes de transações foram adicionados ao blockchain após a transação em questão). Neste ponto, o comerciante pode assumir com segurança que a transação é válida.

Restam outras vulnerabilidades neste sistema que podem permitir a ocorrência de ataques de gasto duplo. Por exemplo, se um invasor é de alguma forma capaz de controlar pelo menos 51% do poder da rede, eles podem comprometer gastos em dobro. Se um invasor conseguisse de alguma forma obter o controle de tanto poder computacional, eles poderiam reverter transações e criar um blockchain privado. Contudo, o rápido crescimento do bitcoin praticamente garantiu que esse tipo de ataque seja impossível.

Prova de trabalho e 'mineração' explicada

Agora vamos ser um pouco mais técnicos. A forma como os usuários detectam adulteração, como uma tentativa de gastar o dobro na prática, é por meio de hashes, longas sequências de números que servem como prova de trabalho (PoW). Coloque um determinado conjunto de dados por meio de uma função hash (bitcoin usa SHA-256), e ele gerará apenas um hash. Devido ao "efeito avalanche, " Contudo, mesmo uma pequena alteração em qualquer parte dos dados originais resultará em um hash totalmente irreconhecível. Seja qual for o tamanho do conjunto de dados original, o hash gerado por uma determinada função terá o mesmo comprimento. O hash é uma função unilateral:não pode ser usado para obter os dados originais, apenas para verificar se os dados que geraram o hash correspondem aos dados originais.

Gerar qualquer hash para um conjunto de transações bitcoin seria trivial para um computador moderno, então, para transformar o processo em "trabalho, "a rede bitcoin define um certo nível de" dificuldade ". Essa configuração é ajustada para que um novo bloco seja" extraído "- adicionado ao blockchain gerando um hash válido - aproximadamente a cada 10 minutos. A dificuldade de definição é realizada estabelecendo um" target "para o hash:quanto menor for o alvo, quanto menor o conjunto de hashes válidos, e mais difícil é gerar um. Na prática, isso significa um hash que começa com uma longa sequência de zeros:o hash para o bloco # 429818, por exemplo, é 000000000000000004dd3426129639082239efd583b5273b1bd75e8d78ff2e8d. Esse bloco contém 2, 012 transações envolvendo pouco mais de 1, 000 bitcoin, bem como o cabeçalho do bloco anterior. Se um usuário alterou o valor de uma transação em 0,0001 bitcoin, o hash resultante seria irreconhecível, e a rede rejeitaria a fraude.

Uma vez que um determinado conjunto de dados pode gerar apenas um hash, como os mineiros se certificam de que geram um hash abaixo do alvo? Eles alteram a entrada adicionando um inteiro, chamado de nonce ("número usado uma vez"). Assim que um hash válido for encontrado, é transmitido para a rede, e o bloco é adicionado ao blockchain.

A mineração é um processo competitivo, mas é mais uma loteria do que uma corrida. Na média, alguém irá gerar uma prova de trabalho aceitável a cada dez minutos, mas quem será, ninguém sabe. Os mineiros se unem para aumentar suas chances de blocos de mineração, que gera taxas de transação e, por um tempo limitado, uma recompensa de bitcoins recém-criados.

A prova de trabalho torna extremamente difícil alterar qualquer aspecto do blockchain, uma vez que tal alteração exigiria remineração de todos os blocos subsequentes. Também torna difícil para um usuário ou grupo de usuários monopolizar o poder de computação da rede, uma vez que o maquinário e a energia necessários para completar as funções hash são caros.