Pedro's dev blog

Uma apresentação Agradável do bitcoin

Btc.jpg
Published on
/20 mins read/---

Uma Introdução Suave ao Bitcoin

https://bitsonblocks.net/2015/09/01/gentle-introduction-bitcoin/ POR ANTONYLEWIS2015 · 1 DE SETEMBRO DE 2015

Este artigo é uma introdução suave ao bitcoin e assume um conhecimento técnico mínimo.

Peças complementares mais curtas a este são:

Na mídia popular, você frequentemente lerá comentários como "Bitcoins são armazenados em uma carteira digital" ou "Você pode enviar dinheiro usando a tecnologia blockchain". Esses comentários podem ser enganosos e podem confundir. Ao final deste artigo, você deverá entender o suficiente para participar de uma conversa sobre bitcoin na hora do jantar e não se sentir mistificado pelo tópico.

Bitcoin

Embora as pessoas se refiram ao bitcoin como uma moeda digital descentralizada, prefiro pensar nele como um ativo eletrônico, para evitar questões sobre qual governo o apoia e quem define a taxa de juros, que muitas vezes são um bloqueio mental na compreensão do bitcoin.

Como um ativo eletrônico, você pode comprar bitcoins, possuí-los e enviá-los para outra pessoa. Atualmente (setembro de 2015) existem cerca de 14 milhões de bitcoins que foram criados, aumentando em 25 bitcoins a cada 10 minutos ou mais, com um limite acordado de 21 milhões, o último dos quais deve ser criado um pouco antes do ano de 2140.

Cumulative BTC in circulation Gráfico mostrando o crescimento cumulativo de bitcoins em circulação

As transações de bitcoins de conta para conta são reconhecidas globalmente em questão de segundos e podem ser consideradas liquidadas com segurança em cerca de uma hora, geralmente. Eles têm um preço (geralmente em USD, mas pode ser em relação a qualquer moeda, como com qualquer outra coisa), e o preço é definido pelas forças normais de oferta e demanda do mercado em mercados onde os comerciantes vêm para negociar, assim como com petróleo ou ouro.

Para que o bitcoin foi projetado?

Um whitepaper de 2008 escrito pelo pseudônimo Satoshi Nakamoto introduziu o conceito de bitcoin, e o princípio de design por trás do bitcoin é:

Uma versão puramente ponto a ponto de dinheiro eletrônico [que] permitiria que pagamentos online fossem enviados diretamente de uma parte para outra sem passar por uma instituição financeira.

Então, existe o conceito de dinheiro eletrônico: dinheiro sendo um ativo ao portador, como o dinheiro no seu bolso que você pode gastar à vontade sem pedir permissão a terceiros.

Antes do Bitcoin, nunca houve dinheiro eletrônico; tínhamos números sendo armazenados no banco de dados de uma instituição financeira como um banco ou Paypal, cujas regras você tinha que cumprir para abrir uma conta e usar, e cuja permissão você tinha que buscar antes de poder movimentar o dinheiro.

Por que usar Bitcoin?

Eu penso no bitcoin como apenas mais uma moeda internacional cujo 'território' é a internet, em oposição a qualquer localização geográfica. Dito de outra forma: se a internet fosse um país, o bitcoin seria sua moeda. Pela primeira vez, temos um ativo totalmente digital que pode ser controlado pelo usuário final, sem exigir inscrição em uma instituição.

Pagamentos Bitcoin. Pagamentos de bitcoins podem ser feitos de uma pessoa para outra, independentemente da localização geográfica ou jurisdição. Os pagamentos são relativamente rápidos – a notificação inicial é em segundos, e ele 'liquida' em cerca de uma hora. Em situações em que o sistema financeiro normal é inadequado, pode ser uma forma útil de transferir valor para qualquer pessoa que tenha acesso à internet.

Usuários potenciais. Algumas comunidades são mal atendidas pelos bancos devido ao custo/benefício do modelo bancário tradicional e ao custo regulatório; algumas transferências internacionais não são confiáveis ou podem levar muitos dias, com processos manuais e faxes sendo usados como parte do encanamento; algumas pessoas podem querer aceitar dinheiro digital para vender bens digitais; pode haver casos de uso em que pequenos pagamentos, na ordem de centavos, podem ser úteis, o que atualmente é difícil com as estruturas de taxas existentes com cartões de crédito. Pode haver outros usos que ainda não descobrimos…

Volatilidade de preço. Assim como outras moedas, o preço do bitcoin flutua. O preço do Bitcoin é mais volátil do que muitas moedas (embora a volatilidade esteja diminuindo), então se você contabiliza sua riqueza em sua moeda local, então possuir bitcoin é essencialmente uma aposta no preço futuro da taxa de câmbio do bitcoin. Você pode ver a volatilidade histórica do preço no site da Tradeblock.

Conversão. Assim como outras moedas, se você tem uma moeda (digamos, Libra Esterlina) e deseja convertê-la em bitcoin, você precisa encontrar alguém para trocá-la. Isso necessariamente tem algum atrito e taxas: seja disfarçado como comissões; ou embutido nos spreads (o preço de conversão). Com o tempo, a conversão está ficando mais fácil e barata à medida que mais exchanges estão surgindo em mais países.

Mantenha o cinismo. Você pode ouvir falar que o bitcoin é 'rápido' e 'gratuito' ou 'de baixo custo'. Embora isso seja verdade quando você está estritamente em bitcoin, vale a pena manter algum cinismo e pensar sobre os custos envolvidos na 'entrada' e 'saída' para ir de moedas soberanas para bitcoin e vice-versa.

Embora eu não consiga imaginar a "adoção em massa do consumidor" do bitcoin, consigo imaginar um grupo de desenvolvedores ou designers gráficos freelancers em uma economia emergente, que podem não ter acesso a bancos ou Paypal. Com o bitcoin, pela primeira vez, eles podem fazer trabalho 'digital' e serem pagos digitalmente. Claro, ainda há a questão de como eles podem converter bitcoin de volta em moeda local, mas esse é um problema mais fácil de resolver do que receber o dinheiro em primeiro lugar.

Vale notar que, embora o bitcoin tenha gerado muitas outras criptomoedas semelhantes, como litecoin, dogecoin, o bitcoin ainda é o mais amplamente usado e negociado devido ao seu efeito de rede e níveis relativamente mais altos de segurança e robustez.

Como funciona?

Uma rede de computadores valida e rastreia os pagamentos de bitcoin e garante que eles sejam registrados, sendo adicionados a uma lista crescente de todos os pagamentos de bitcoin que foram feitos.

Acompanhando os pagamentos: The Bitcoin Blockchain

Existe um arquivo (bem, dividido em vários arquivos) chamado “The Bitcoin Blockchain”, que fica em milhares de computadores em todo o mundo, incluindo meu laptop em casa. Quando você lê a palavra “blockchain”, pense em “banco de dados” ou mesmo “lista” e você terá o tipo certo de ideia. Para uma introdução sobre blockchain, consulte Uma introdução suave à tecnologia blockchain.

Bitcoin Blockchain file on my computer Uma captura de tela dos arquivos The Bitcoin Blockchain no meu computador. Aqui você pode ver The Bitcoin Blockchain dividido em arquivos, cada um com 134 MB, e o total é de cerca de 50 GB no momento da escrita.

Este arquivo contém dados sobre todas as transações bitcoin, ou seja, pagamentos de bitcoins de uma conta para outra, que já aconteceram. Isso é frequentemente chamado de ledger (livro-razão), semelhante ao livro-razão de um banco que mantém um registro de pagamentos entre contas bancárias.

Ledgers Livro-razão bancário simplificado vs livro-razão bitcoin: eles são semelhantes.

A rede bitcoin. Os computadores que armazenam este arquivo também executam um software que os conecta pela internet aos outros computadores que executam o mesmo software. Isso forma uma rede de computadores que podem se comunicar, retransmitindo informações sobre

  • novos pagamentos (no momento da escrita, há cerca de um novo pagamento bitcoin por segundo, mas isso vem em acessos e começos)
  • atualizações para The Bitcoin Blockchain (a cada 10 minutos ou mais, uma nova “página” ou bloco de transações válidas é confirmado e é distribuído para todos os computadores na rede)

Quando você faz um pagamento bitcoin, uma instrução de pagamento é enviada para a rede. Os computadores na rede validam a instrução e a retransmitem para os outros computadores. Depois que algum tempo passou, o pagamento é incluído em uma das atualizações de bloco e é adicionado ao arquivo The Bitcoin Blockchain em todos os computadores da rede.

Ponto a ponto. A distribuição de dados funciona em uma base ponto a ponto, em vez de cliente-servidor. Ponto a ponto é como uma rede de fofoca, onde todos contam a algumas outras pessoas as notícias (sobre novas transações e novos blocos), e eventualmente a mensagem chega a todos na rede. Isso é diferente de cliente-servidor, que é mais como uma organização convencional onde um chefe conta aos subordinados as notícias, e o chefe é um ponto central de referência e falha potencial.

Client server vs Peer to peer Modelos de distribuição de dados cliente-servidor vs ponto a ponto

Um benefício do ponto a ponto (p2p) sobre o cliente-servidor é que, com o p2p, a rede não depende de um ponto central de controle que pode falhar.

Como os bitcoins são armazenados?

A propriedade do Bitcoin é rastreada no The Bitcoin Blockchain, e os bitcoins estão associados a "endereços bitcoin". Os bitcoins em si não são armazenados; mas sim as chaves ou senhas necessárias para fazer pagamentos são armazenadas, em "carteiras", que são aplicativos que gerenciam os endereços, chaves, saldos e pagamentos.

Contas Bitcoin: endereços

No banco, você tem contas que mantêm potes de dinheiro separados; no bitcoin, você tem endereços. Um endereço bitcoin é semelhante a um número de conta bancária, com algumas diferenças.

Aqui está um exemplo de um endereço bitcoin: 1MKe24pNsLmFYk9mJd1dXHkKj9h5YhoEey. Assim como nas contas bancárias, se você quiser receber um pagamento bitcoin, você precisa informar a alguém seu endereço bitcoin, para que eles saibam para onde enviar os bitcoins. Uma conversa típica, que pode ser pessoalmente, online ou no chat (Whatsapp/Skype etc) se parece com:

chat (BTC e XBT significam a mesma coisa e são abreviações padrão da indústria para bitcoins, como GBP para Libra Esterlina)

Carteiras Bitcoin

Com meu banco, sob um único nome de usuário/senha, controlo várias contas (por exemplo, salário, poupança mensal, impostos, etc.), cada uma das quais tem um saldo ou quantidade de moeda. Da mesma forma, as carteiras Bitcoin são aplicativos que exibem todos os seus endereços bitcoin, exibem saldos e facilitam o envio e recebimento de pagamentos.

Para que uma carteira forneça informações precisas, ela precisa estar online ou conectada a um arquivo Bitcoin Blockchain, que ela usa como fonte de informação. A carteira lerá o arquivo Bitcoin Blockchain e calculará os saldos em cada endereço.

wallet_data

As carteiras Bitcoin permitem que você crie endereços bitcoin para receber transações de entrada e fazer pagamentos de saída, além de ter outros recursos que os tornam fáceis de usar.

Como os bitcoins são enviados?

Pagamentos, ou transações bitcoin

Cada endereço bitcoin tem sua própria chave privada, que é necessária para enviar pagamentos desse endereço. Você pode pensar em uma chave como um tipo de senha, mas ela está matematicamente ligada ao seu respectivo endereço, então não pode ser alterada, ao contrário de uma senha convencional ou número PIN.

Para o endereço acima (1MKe24pNsLmFYk9mJd1dXHkKj9h5YhoEey), a chave privada é 5KkKR3VAjjPbHPzi3pWEHVQWrVa3C4fwD4PjR9wWgSV2D3kdmeM. Quem souber esta chave privada, incluindo os leitores deste blog, agora pode fazer pagamentos a partir do endereço.

Para obter sua própria combinação de endereço/chave privada, ela não é dada a você por alguma autoridade como um banco, mas sim você escolhe um número aleatório e aplica algumas operações matemáticas a ele – o software da carteira fará isso por você.

Chaves privadas. A chave privada é algo que você deseja manter em segurança e nunca expor. Como você não pode alterar essa chave privada para algo mais memorável, pode ser um problema lembrar. A maioria dos aplicativos de carteira criptografará essa chave com uma senha que você escolher. Mais tarde, quando você quiser fazer um pagamento, basta lembrar sua senha.

Como os bitcoins não existem como tal, as carteiras bitcoin não armazenam bitcoins, mas armazenam as chaves que permitem transferi-los ou 'gastá-los'. Copiar uma carteira não dobra o número de bitcoins que você possui, você simplesmente tem uma cópia das mesmas chaves. Se alguém conseguir copiar e ler sua carteira, poderá esvaziar as contas, assim como duas pessoas com chaves duplicadas para o cofre de um banco podem correr para destrancar o cofre, mas o conteúdo do cofre não dobra.

Bitcoin wallet with private keys As carteiras Bitcoin contêm chaves privadas, não bitcoins!

O que acontece quando faço um pagamento bitcoin?

Um pagamento é uma instrução para desvincular alguns bitcoins de um endereço que você controla e movê-los para o controle de outro endereço (seu destinatário).

Sua instrução de pagamento inclui tudo o que você esperaria, incluindo:

  • quais bitcoins você está enviando
  • de qual endereço você está enviando
  • para qual endereço você está enviando

Assinaturas criptográficas digitais. A instrução é então assinada digitalmente com a chave privada do endereço que atualmente detém os bitcoins. Essa assinatura digital demonstra que você é o proprietário do endereço em questão (porque só você conhece a chave privada).

As instruções de pagamento são enviadas do software da carteira para qualquer um dos computadores da rede (chamados de “nós” ou “validadores de pagamento”).

Validadores. Quando o primeiro computador recebe a instrução, ele verifica alguns detalhes técnicos e alguns detalhes da lógica de negócios (por exemplo, meu pagamento tenta criar bitcoins do nada? As moedas que estão sendo enviadas já foram enviadas para outro lugar? etc.).

checklists Validadores validam em níveis técnicos e de lógica de negócios.

Se esses testes passarem, o computador o retransmite para outros na rede, cada um executando os mesmos testes de validação. Lembre-se que nesta rede, os computadores não podem confiar uns nos outros, então eles precisam executar os mesmos testes. Eventualmente, todos os computadores da rede sabem sobre esse pagamento, e ele aparece nas telas em todo o mundo como uma “transação não confirmada”. Não está confirmado porque, embora o pagamento tenha sido verificado e repassado, ele ainda não foi inserido no livro-razão.

Como os bitcoins são rastreados?

Como as transações são inseridas nos blockchains de todos?

Além de passar informações sobre transações entre si, nós especializados (computadores que fazem parte da rede) trabalham para adicionar essas transações, em blocos, ao blockchain. Isso é conhecido como “mineração” de bitcoin. Isso é frequentemente descrito como “resolver quebra-cabeças matemáticos complexos para ganhar bitcoin”. Na verdade, não há nada de complexo nesse processo, e você pode fazer isso manualmente sem uma calculadora; ele apenas deliberadamente leva muitos passos computacionais sem atalhos.

Mineração. A mineração é um jogo de adivinhação onde sua chance de ganhar está relacionada à rapidez com que sua máquina pode realizar cálculos em comparação com a rapidez com que outros mineradores estão realizando cálculos semelhantes. Quem adivinhar o número certo primeiro ganha o direito de adicionar um novo bloco de transações aos blockchains de todos e faz isso publicando isso para os outros computadores na rede. Cada computador realiza uma validação rápida do bloco e, se concordar que o bloco e as transações estão em conformidade com as regras, adiciona o bloco ao seu próprio blockchain. Por que o minerador faz isso? Porque, como parte do bloco, eles são recompensados com alguma quantidade de novos bitcoins (atualmente 25 BTC, e reduzindo pela metade aproximadamente a cada 4 anos, sendo a próxima redução pela metade em julho de 2016). Este acréscimo de bloco acontece aproximadamente a cada 10 minutos na rede.

Veja uma introdução suave à mineração de bitcoin para mais detalhes.

2 Esquema do processo de mineração

Devido a essa recompensa, a mineração de bitcoin se tornou muito competitiva, com empresas desenvolvendo hardware especializado, chamado ASICs, que são muito rápidos no jogo de adivinhação e cálculos numéricos associados.

O protocolo e o código do Bitcoin garantem que leve cerca de 10 minutos para a rede como um todo adivinhar corretamente. Esta é a velocidade que as transações levam para serem confirmadas no blockchain.

Lento por segurança. Ao torná-lo lento (10 minutos é lento em comparação com o quão rápido poderia ser se o jogo de adivinhação fosse removido) e ao torná-lo computacionalmente e, portanto, financeiramente caro para participar desse processo, também torna financeiramente caro para os malfeitores comprar poder de processamento suficiente para escrever seus próprios blocos anormais de transações no blockchain.

Tenha em mente que, mesmo que os malfeitores fizessem isso, todos os outros computadores precisariam concordar com todas as transações, para que eles ainda não pudessem inserir transações que quebrassem as regras da lógica de negócios, por exemplo, conjurar bitcoins do nada.

Segurança do Bitcoin

Existem duas partes para isso:

  1. Fazendo pagamentos
  2. Controle de bloco

Fazendo pagamentos. Como discutido anteriormente, a única coisa que você precisa para fazer um pagamento bitcoin é a chave privada do endereço do qual deseja gastar. Você precisa equilibrar a dificuldade para as pessoas roubarem suas chaves e ter backups caso perca suas chaves – há histórias de pessoas jogando fora laptops antigos contendo – não bitcoins – mas chaves privadas de bitcoin controlando bitcoins no valor de milhões de dólares.

Controle de bloco. Existem duas partes para isso. Em primeiro lugar, há a criação de blocos (“mineração”), realizada por alguns nós especializados; em segundo lugar, há a validação do bloco, que é realizada por todos os nós. Como um exército de contadores e auditores independentes, todos auditando o mesmo livro-razão, a visão do bitcoin é ter muitos milhares de validadores de blocos independentes participando para manter o sistema honesto. Essa independência e validação mútua de transações e blocos devem impedir que qualquer pessoa ou entidade adicione blocos desonestos e domine a rede com sua influência.

No entanto, na prática, os mineradores se unem em 'pools de mineração' para ganhar blocos com mais frequência. Em um pool de mineração, um participante cria o bloco candidato e os outros começam a trabalhar na 'mineração' dele. Se algum dos participantes ganhar, os despojos são compartilhados com o pool. Isso tem o efeito de cada participante ser pago com mais frequência, mas em menor quantidade, como um consórcio de loteria. Essa suavização do fluxo de caixa funciona bem para pagar o capital necessário para comprar equipamentos de mineração. Como consequência, os proprietários do pool de mineração têm maior poder sobre a rede bitcoin em termos de criação de blocos, votação em mudanças de protocolo e potencial reescrita de entradas recentes do livro-razão.

Sem entrar em muitos detalhes técnicos, se você tiver a capacidade de reescrever um bloco recente, poderá 'desfazer' um pagamento no que é conhecido como ataque de 'gasto duplo'. Você faria um pagamento a um fornecedor e o confirmaria em um bloco. Se você puder criar um par de blocos sem o pagamento ao fornecedor, a rede invocará a 'regra da cadeia mais longa' e ignorará/deixará órfão o primeiro bloco e usará sua cadeia mais longa. Você também precisa invalidar o pagamento original, criando uma transação ligeiramente diferente, gastando os mesmos bitcoins, mas pagando a si mesmo ou a seu amigo, em vez do fornecedor. Se você puder inserir essa transação em seus novos blocos, a transação antiga será inválida para a rede. Aqui está um exemplo. Para mais informações sobre as dificuldades de alterar a lista de transações, leia uma introdução suave à imutabilidade dos blockchains.

Sua capacidade de fazer essa troca aumenta com o 'poder de mineração', mas diminui com a idade do bloco que você está tentando substituir (quanto mais antigo o bloco, mais difícil é reescrever), pois cada bloco 'custa' uma certa quantidade de poder de mineração para criar, e você está competindo contra o resto da rede para criar blocos.

Golpes. É difícil escrever sobre segurança do bitcoin sem mencionar o Mt Gox, uma antiga exchange de bitcoin. As exchanges de Bitcoin são sites que você visita para comprar ou vender bitcoins. Se você quiser comprar bitcoins, primeiro faça uma transferência bancária para a conta bancária da exchange. Quando eles veem os fundos em seu banco, eles permitem que você faça pedidos para comprar bitcoins de vendedores. Da mesma forma, os vendedores precisam enviar bitcoins para as carteiras bitcoin da exchange antes que a exchange os deixe vender os bitcoins. A exchange atua como custódia, retendo dinheiro e bitcoins e liberando-os assim que a negociação for feita.

Não se sabe o que aconteceu no Gox, mas os rumores incluem roubo de chaves privadas, práticas contábeis ruins, permitir que as pessoas negociem primeiro antes de enviar garantias, etc. Assim como você não culpa o dólar americano se uma agência do Citibank for assaltada e os fundos forem roubados, não foi a segurança da rede bitcoin que falhou; foi a segurança e as más práticas da exchange.

O que é essa parte descentralizada?

Vamos voltar a “Bitcoin é uma moeda digital descentralizada”. Vimos que o bitcoin é digital e não é realmente uma moeda (embora seja fácil de enviar e tenha um valor determinado pela oferta e demanda em várias exchanges). E a parte descentralizada?

Validadores distribuídos. Centralizado significa um ponto ou fonte de controle, e descentralizado é onde o controle é compartilhado entre os participantes. No bitcoin, os participantes são os validadores das transações e criadores de blocos. Se um número suficiente deles decidir jogar por regras diferentes, os outros precisarão seguir o exemplo. Os validadores têm “poder de voto” proporcional a quanto poder de computação eles têm. Qualquer pessoa pode ser validador e obter mais votos, se estiver disposta a pagar por poder de computação, cujos custos são hardware, eletricidade e suporte. Portanto, em vez de uma única autoridade que pode mudar as regras, as regras só podem ser alteradas por consenso desses validadores.

A lógica de validação (como é uma transação válida?) está incorporada no código que é executado pelos validadores.

Código de código aberto. Este código é de código aberto, o que significa que os validadores podem ver exatamente qual código ou lógica eles estão executando. A versão que é mais usada (chamada de 'implementação de referência') é armazenada aqui: https://github.com/bitcoin/bitcoin. Em teoria, qualquer pessoa pode contribuir com esta implementação de referência enviando alterações, embora existam gatekeepers, pessoas, que têm a palavra final sobre o que é incluído.

Em teoria, qualquer pessoa pode escrever versões deste software, desde que estejam em conformidade com os protocolos técnicos e de negócios do bitcoin. Por exemplo, você pode escrever sua própria versão do software, mas com gráficos mais legais ou uma interface mais amigável. Se você quiser alterar algumas das regras do protocolo, no entanto, precisará persuadir a maioria dos validadores (mineradores) a executar seu software com as novas regras. Aqui está uma versão de exemplo que tem algumas alterações nos protocolos técnicos: https://github.com/bitcoinxt/bitcoinxt

Alterando as regras. Assim, as regras podem ser alteradas, desde que você obtenha o consenso da maioria (outro mito é que o limite de 21 milhões de bitcoins não pode ser alterado. Ele pode ser alterado, em uma linha de código, supondo que você consiga fazer com que a maioria dos participantes da rede concorde em executá-lo). Fazer com que os mineradores concordem em executar o código é o verdadeiro desafio, pois eles investiram enormes quantias de capital e não concordarão prontamente em mudar nada que possa prejudicar suas recompensas de mineração – “Os perus não votarão no Natal”.

Conclusão

Você provavelmente já adivinhou que há muito mais sobre bitcoin do que eu pude apresentar aqui. Ao dar uma introdução suave, tive que apresentar alguns conceitos em alto nível, que na prática são complexos e altamente sutis. Mas, à medida que você lê e aprende mais neste blog, espero poder levá-lo a uma compreensão mais detalhada do bitcoin, mineração, tokens digitais e as tecnologias blockchain subjacentes…