Cerca de um ano atrás, quando o trem Bitcoin estava começando a ganhar força, um amigo se virou para mim e perguntou: "Então, por que você não pode simplesmente copiar um Bitcoin?"
Essa é uma confusão que muita gente tem, e é justa: a noção de uma entidade digital que não pode ser facilmente copiada é totalmente não-intuitiva. Na verdade, a rede Bitcoin é uma das tecnologias mais legais e menos compreendidas na consciência popular no momento. É uma pena, porque a mecânica subjacente do Bitcoin é realmente bastante simples. Você nem precisa de uma matemática particularmente difícil, se estiver disposto a aceitar algumas coisas com fé.
Nós cobrimos, no passado, o que Bitcoin é Como explicar o Bitcoin para qualquer um Como explicar o Bitcoin para qualquer um O conceito de criptomoeda não é facilmente entendido. Como alguém pode usar seu computador para "minerar" moedas? De onde vem o dinheiro? Quem controla isso? Leia mais, como usá-lo com segurança Como gastar e armazenar Bitcoins com segurança, facilidade e liberdade Como gastar e armazenar Bitcoins com segurança, facilidade e liberdade Leia mais, e até escreveu um manual sobre o assunto, mas temos Nunca entendi como funciona . Hoje, vamos nos aprofundar nesse "como" e falando sobre as ferramentas necessárias para manter o "dinheiro mágico da Internet" rodando nos bastidores.
Bitcoin para Poker
Então, por que você não pode copiar um Bitcoin? A resposta, para encurtar a história, é que um Bitcoin não é realmente uma sequência de dados a serem copiados: é uma entrada em um livro-razão distribuído que informa quanto dinheiro cada pessoa tem. A razão pela qual você não pode alterar o razão é devido à estrutura inteligente da rede Bitcoin - há muitas cópias do livro razão, e o livro razão é projetado de tal forma que é difícil adulterar.
Para entender melhor a questão, imagine que você tentaria implementar um Bitcoin ( WritCoin ) de caneta e papel para um jogo de pôquer com seus amigos. Você é muito barato para comprar fichas, mas você ainda quer manter o controle de quanto dinheiro todo mundo tem, e deixar as pessoas moverem-se entre si.
Uma solução é escolher alguém confiável para ser o guardião dos registros do jogo: eles tomam nota de cada transação conforme ela acontece, informam se a transação foi bem-sucedida (ou seja, não levaram ninguém a um saldo negativo) e podem somar todas as transações bem sucedidas para descobrir quanto dinheiro todo mundo tem em um determinado momento. Isso é semelhante a como o PayPal e outros sistemas de pagamento centralizados funcionam. Como você pode ver, a idéia de copiar uma unidade de moeda não faz muito sentido nesse sistema - o detentor de registros não permitiria isso. Note que o goleiro está em uma posição de poder neste cenário, e pode escolher se dar muito dinheiro, roubar uma pequena fração de todo o dinheiro gasto, ou abusar de sua posição.
Agora, imagine que em vez de jogar poker com seus amigos, você está preso em um jogo de pôquer de alto risco, onde ninguém na mesa confia em qualquer outra pessoa para ser o recordista (mas você ainda é muito barato para comprar fichas).
Agora você tem um problema: porque não há confiança, a autoridade centralizada não funcionará mais. Então, você tem a idéia inteligente de deixar alguém na mesa se tornar um detentor independente de registros se quiser. Cada um deles tomará nota de todas as transações. Dessa forma, quando chegar a hora de descobrir quanto dinheiro alguém tem, se algum grupo minoritário decidir mentir sobre seus registros, a maioria os pegará. Para manter as coisas justas, todos concordam em pagar uma pequena recompensa aos detentores dos registros em troca de seus serviços. Isso desvaloriza um pouco todo seu dinheiro, mas encoraja as pessoas a se tornarem detentoras de registros e evitar fraudes - e, ao contrário de um único detentor de registros, a desvalorização do dinheiro pode ser controlada a um nível administrável. Esta é, em poucas palavras, a essência da rede Bitcoin. Uma rede de computadores independentes que executam software especial (Bitcoin miners 5 maneiras que você pode fazer e minar moeda Bitcoin 5 maneiras que você pode fazer e minar moeda Bitcoin O revolucionário e controverso método de pagamento vem fazendo manchetes. Há muitas razões pelas quais você pode querer para começar a realizar transações usando Bitcoins. Mas primeiro, você tem que ganhar um pouco para si. Leia mais) independentemente de acompanhar todas as transações que já ocorreram na rede. Em troca, eles têm a chance de ser recompensados toda vez que confirmam um grupo de transações. Para gastar dinheiro, basta falar com a rede e informá-los do desejo de fazê-lo. Eles observam a transação em seus registros (se você tiver dinheiro suficiente para fazê-lo com sucesso) e seguem em frente.
Bitcoin e criptografia
Claro, não é assim tão simples na prática. Imagine os problemas de tentar mover o WritCoin para a Internet. Agora, de repente, você precisa provar que realmente está fazendo uma transação (na vida real, você pode ver quem está fazendo solicitações de transação - não na Internet). Além disso, na Internet, com uma rede grande, é difícil consultar cada minerador Bitcoin existente para descobrir quanto dinheiro todo mundo tem. Seria bom se você pudesse conversar com alguns deles e ainda ser capaz de dizer quais deles eram honestos. Existem duas ferramentas criptográficas que tornam essas coisas possíveis on-line: assinaturas digitais e prova de trabalho .
Transações assinadas
Uma assinatura criptográfica é uma aplicação inteligente de criptografia assimétrica e funciona assim: a partir de uma única informação secreta, você pode fazer um conjunto de operações matemáticas que produzem duas informações subsidiárias (chamadas de chave pública e privada), como que qualquer coisa criptografada (embaralhada em jargão) pela chave privada só pode ser descriptografada (desordenada) pela chave pública . Além disso, quando essas chaves são produzidas corretamente, não há como descobrir qual é a chave privada, mesmo que você conheça a chave pública. Explicar como eles realmente funcionam, matematicamente, requer álgebra abstrata e está muito além do escopo deste artigo. Se você quiser aprender mais, confira o artigo da Wikipedia sobre criptografia de curva elíptica, o sistema criptográfico usado pelo Bitcoin.
Imagine, por um momento, que você tem uma chave privada e uma chave pública que você usa regularmente. Você poderia publicar a chave pública (que se parece com uma seqüência aleatória de rabiscos) e conectá-la à sua identidade. Então, sempre que você postar algo on-line, você pode levar sua mensagem, criptografá-la com sua chave privada secreta e publicar a versão criptografada e a mensagem original lado a lado. Então, se alguém quisesse ver se você realmente escreveu, eles poderiam simplesmente usar sua chave pública para descriptografar a versão criptografada e compará-la à mensagem. Se eles não combinassem, o leitor saberia que sua mensagem havia sido adulterada. Em outras palavras, se uma parte mal-intencionada quiser substituir sua mensagem por sua própria, ela não teria como gerar uma versão criptografada correspondente do texto, porque não conhece sua chave privada. A versão criptografada da mensagem (ou, mais tipicamente, um hash criptografado da mensagem, que discutiremos em instantes), anexada à mensagem em si, é chamada de assinatura digital .
Assinaturas digitais são como as transações são verificadas no Bitcoin. Você pode ter ouvido falar de uma “carteira de Bitcoin”. Uma carteira de Bitcoin é simplesmente um par particular de chave pública / privada. Se você quer uma carteira Bitcoin, basta escolher uma informação secreta (você pode usar uma frase-senha ou fazer com que seu computador crie uma série de bobagens) e usá-la para gerar sua chave pública e privada. Seu par de chaves públicas / privadas é sua carteira - se as pessoas quiserem lhe enviar dinheiro, você lhes dá sua chave pública, e elas dizem à rede que elas gostariam de enviar dinheiro para a carteira correspondente a essa chave pública. Se você quiser enviar dinheiro de sua carteira, basta informar a rede e assiná-la com sua chave privada correspondente. Assim, a menos que alguém receba sua chave privada ou seu segredo original, não há como falsificar transações de você.
Prova de Trabalho
Na criptografia, há também uma ferramenta chamada de função hash. Uma função hash simplesmente pega uma grande quantidade de informação como uma entrada, e a transforma em uma pequena seqüência de bobagens (a duração da saída é sempre a mesma e depende da função que você usa). As funções hash são sensíveis, na medida em que qualquer alteração menor nos dados originais altera completamente e irreconhecivelmente a cadeia de disparates (o 'hash'). Como resultado disso, as funções hash têm a propriedade exclusiva de ser unidirecional - dada uma informação, você pode facilmente atrapalhá-la, mas, dado um hash específico, não há como retroceder para descobrir qual parte da informação era usada. hashed para criá-lo, exceto por adivinhar aleatoriamente. Para saber mais, confira o artigo da Wikipedia sobre funções hash.
Funções hash são muito úteis! O aplicativo mais relevante para o Bitcoin é chamado de “prova de trabalho”, que é uma maneira de provar a alguém que uma certa quantia de trabalho computacional foi gasta. Se alguém escolhe uma palavra aleatoriamente (digamos, “doppelganger”), e você responde com uma informação cujo hash é “doppelganger” (ou uma string suficientemente semelhante a ela), então eles sabem que você gastou muito tempo adivinhando antes que você finalmente encontrasse uma informação que funcionasse. Assim, eles têm provas de que você executou uma certa quantidade de trabalho computacional. Isso pode ser usado para evitar spam de email, forçando qualquer pessoa que tente enviar um email a concluir uma pequena prova de trabalho com base no endereço de email, no endereço de email e no horário. Essa prova de trabalho pode ser muito fácil, de modo que não seja inconveniente para pessoas comuns enviarem alguns e-mails por dia, mas se tornarem impraticáveis para remetentes em massa.
Em Bitcoin, a prova de trabalho é usada para impedir que as pessoas mentirem. Funciona assim: quando um minerador quer adicionar um bloco de transações ao seu livro, ele pega toda a cadeia de blocos (uma lista de todas as transações que ocorreram até hoje que o minerador verificou eram válidas), e adiciona as últimas grupo de transações para ele. Eles, em seguida, misturam tudo e começam a fazer a prova de trabalho para esse valor - adivinhando valores em hash para tentar encontrar um novo valor que seja suficientemente próximo ao valor de destino. Enquanto estão fazendo isso, mineradores de todo o mundo estão fazendo exatamente a mesma coisa, competindo para serem os primeiros a encontrar uma prova de trabalho que seja "boa o suficiente" (um padrão que aumenta automaticamente para acompanhar a Lei de Moore e o crescimento da rede). O primeiro a chegar lá obtém um ganho inesperado (atualmente 25 Bitcoins ou cerca de US $ 15.600 no momento da escrita) em troca de seu serviço, e seu bloco de sucesso é distribuído para todos os outros mineiros e se torna uma adição permanente à cadeia de blocos.
A conseqüência disso é que, se você quiser gerar um Blockchain falso, você terá que reproduzir todas as provas de trabalho feitas pela rede, o que é caro. Quanto mais você quiser editar alguma coisa, mais provas de trabalho baseadas nessas informações você terá que refazer. É muito improvável que alguém possa produzir provas de trabalho melhores e mais rápidas do que toda a legítima rede de mineração Bitcoin, o que significa que, em geral, a cadeia de blocos que teve a maior prova de gasto nela é a legítima. Outra maneira de dizer isso é que mentir na rede Bitcoin é difícil, porque é preciso muito poder computacional para gerar uma mentira bem estruturada. Isso significa que, se você quer um blockchain preciso, você não precisa falar com todos os mineradores de Bitcoin e deixá-los votar - você pode simplesmente conversar com alguns mineiros aleatórios, obter suas blockchains e, se houver um conflito, aceitar versão com as mais fortes provas de trabalho, e há uma boa chance de que seja a verdadeira.
Bitcoin em poucas palavras
Em suma: As carteiras Bitcoin são pares de chaves públicas / privadas. Qualquer chave pública pode enviar dinheiro para qualquer outra chave pública, fazendo uma declaração para a rede, assinada com a chave privada correspondente. Essa declaração é transmitida peer to peer, entre todos os mineiros, todos os quais estão tentando gerar provas de trabalho para todas as transações que registraram até agora. Toda vez que um deles gera uma prova de trabalho suficientemente boa, eles são premiados com alguns Bitcoins, e seu bloqueio se torna parte do livro oficial distribuído. Somando as transações em todos os blocos, você pode descobrir quanto dinheiro tem - ou qualquer outra pessoa. O registro é difícil de manipular, devido à dificuldade de produzir prova de trabalho mais rápido que o resto da rede.
Isso é (muito bem) isso. Uma vez que você entenda as primitivas criptográficas em jogo, a ideia é bem simples. Isso não deve, no entanto, ser tomado como significando que não é notável. A construção de um protocolo que força milhares de pessoas em todo o mundo a lidarem umas com as outras honestamente, apesar de seus melhores esforços em contrário, é uma grande vitória para a criptografia e uma das ideias mais poderosas dos últimos anos.
Créditos da imagem: Waterloo Dogs Jogando Poker, Criptografia Assimétrica, Função Hash, cortesia de Wikimedia, Reservoir Dogs, de EW.com