Explica La' Isso da Bitcoin

… é o que me têm perguntado muito ultimamente. É fácil: é uma moeda. Ou uma forma de moeda. É preciso mais do que isto? OK…

… é o que me têm perguntado muito ultimamente. Como já me repeti muitas vezes, fica escrito para dar o link quando perguntarem outra vez.


É fácil: é uma moeda. Ou uma forma de moeda. É preciso mais do que isto? OK…


A bem dizer e de forma mais geral, é mais uma ficha (token). Tipo fichas da roleta no casino ou fichas dos carrinhos de choque. De forma mais geral porque, na realidade, a moeda e o dinheiro “a sério” (aquelas rodas de metal e rectangulos de papel que vos convenceram que podem usar para comprar melões) também são fichas (tokens). Algumas, como o bolivar, a moeda da Venezuela, com menos valor do que as fichas dos carrinhos de choque ou o cartão de pontos do Pingo Doce (também são tokens, ou fichas, ou “moedas”)


Ao fim e ao cabo, o dinheiro e a moeda são como o Natal, é o que um homem quiser.


Se eu produzir batatas e o meu vizinho ao lado produzir cenouras, a vida é fácil enquanto eu e ele só quisermos comer batatas e cenouras. Mas se o meu vizinho da rua de cima produzir maçãs e não gostar de batatas eu estou lixado porque só tenho batatas. Mas se o vizinho de cima aceitar cenouras eu posso trocar as minhas batatas pelas cenouras do vizinho do lado e depois troco as cenouras pelas maçãs do vizinho da rua de cima. É fácil de ver que isto fica complicado com dezenas de vizinhos, de produtos e preferências pessoais. Por isso o melhor é a malta toda acordar numa “coisa” qualquer que sirva de mecanismo de troca. Eu não me importo de trocar as minhas batatas por pêlos do bigode do Mário Nogueira desde que haja alguém que aceite pêlos do bigode do Mário Nogueira e me dê bilhetes para o próximo concerto dos KISS.


No passado já se usaram muitas coisas como dinheiro (como moeda). Rodas de pedra, conchas, grãos de cevada, prata, ouro… Até já se usou sal para pagar aos legionários Romanos; de onde vem a palavra salário, nem mais.


Claro que há coisas que não funcionam muito bem como dinheiro (moeda). Rodas de pedra por exemplo. São chatas de levar no bolso. Grãos de areia são fáceis de transportar, mas há muitos, demasiados; estava toda a gente rica. Também não convém que seja uma coisa fácil de produzir ou de encontrar. Por exemplo, cagalhões. Para além de serem chatos de transportar e de haver muitos, toda a gente podia produzir, o que levaria a um fenómeno conhecido como “inflação”. Exactamente como o dinheiro produzido a metro pelos Estados, era dinheiro que não valia uma merda. Como o bolívar da Venezuela.


Os metais preciosos, em particular o ouro, sempre foram uma boa escolha. Não que tenham algum valor intrinseco ou natural. Não dá para comer, não cura doenças… Mas gramas de ouro são coisas fáceis de transportar, não são fáceis de encontrar nem de produzir, não dão para duplicar ou falsificar e no geral o ser humano gosta de coisas brilhantes para pendurar nas orelhas ou no pescoço. Até há muito pouco tempo, lá pela década de 1970, o ouro ainda era coisa boa como moeda. Mas depois os Estados perceberam que não era infinito e que assim não podiam imprimir o dinheiro que quisessem e toca de banir o ouro. Assim quando querem aumentar os salários dos papalvos ou dizer que a economia está uma maravilha, basta cortar mais umas árvores, produzir mais papel e imprimir uns bonecos giros. Chama-se a isto “quantitative easing” ou “o BCE voltou emprestar dinheiro a juros zero”. Ou cagalhões.


Voltando às bitcoins: são uma forma de dinheiro, de moeda. Mas em forma digital. Para facilitar pensem numa bitcoin como um ficheiro que podem guardar no telemovel, no computador ou num servidor. Imaginem: eu tenho batatas; vocês querem batatas; mandam-me um ficheiro e mando-vos as batatas. Brilhante, não? A Amazon tem o ultimo album dos KISS; eu mando-lhes um ficheiro; eles mandam-me o álbum. Não há cá Euros, nem cartões VISA, nem Paypal. A Amazon depois pode usar o ficheiro para comprar melões ou mandar o Jeff Bezos à Lua.


Dito assim já estão a ver qual o problema não é… Era melhor usar cagalhões que esses ao menos têm um custo de produção. Um ficheiro de computador é fácil de transportar e fácil de transmitir. Só que toda a gente pode produzir ficheiros. E, pior, se um ficheiro qualquer fosse uma moeda, era fazer copy paste, gerar milhões de cópias e já podia comprar um castelo com anões. Ou um show particular dos KISS. Desde que eles aceitassem os ficheiros. O que não seria um problema, se alguém lhes aceitasse os ficheiros e lhes desse mais mansões.


Esse é o segredo e a genialidade das bitcoins (ou das cryptocoins, ou cryptotokens). São “ficheiros” (fichas, tokens) mas que não podem ser produzidos a granel. Nem podem ser copiados ou duplicados. Mas que podem ser transmitidos facilmente entre pessoas e entidades. E uma mesma (bit)coin (token) não pode ser transmitida a duas pessoas simultaneamente ou gasta simultaneamente em dois produtos. Como é que isto é feito? Usando duas tecnologias diferentes, uma mais antiga e outra mais recente: um sistema de chaves públicas (PKI) e uma base de dados blockchain.


Já escrevi no passado sobre sistemas de chaves públicas. Para vos facilitar a vida pensem num sistema de chaves públicas (PKI) como algo semelhante a terem uma password. A diferença é que numa PKI têm duas passwords: a chave pública e a chave privada. A chave pública, como o proprio nome indica, pode ser publicada, distribuida; pública. A chave privada é conveniente que seja… privada. Secreta. Como uma password.


A vantagem de usar uma PKI (ter uma password/chave publica e uma password/chave privada) face a usar passwords simples é que não temos de tornar publica a nossa password privada. Fiz-me entender? Eu sei que não.


Exemplo: quero mandar um ficheiro protegido a um amigo. Ponho-lhe uma password. Tenho de mandar o ficheiro ao amigo. Mas também tenho de lhe mandar a password. Se alguém interceptar a mensagem, tem o ficheiro e a password. Ou seja, o ficheiro não está protegido. Com uma PKI o que faço é o seguinte: protejo o ficheiro com password/chave pública do meu amigo. Só ele consegue desproteger o ficheiro usando a sua password/chave privada. Estão a ver a cena? Mais ninguém consegue ler o ficheiro. Apesar de ele estar protegido com uma password que é pública. E vice versa: se alguém me quiser enviar um ficheiro protegido, protege-o com a minha password/chave publica. Que pode ser interceptada; nem é preciso, porque é pública. Enviam-me então o ficheiro protegido que só eu serei capaz de ler usando a minha password/chave privada.


Uma vantagem adicional de uma PKI: autenticação. Quero publicar ou enviar um ficheiro e garantir a quem o leia ou receba que é mesmo um ficheiro meu. Pego no ficheiro e protejo-o com a minha password/chave privada. O ficheiro pode ser aberto por qualquer pessoa mas usando a minha password/chave pública. Só a minha chave publica o consegue desproteger. Qualquer pessoa pode usar a minha chave publica para o desproteger. Se, usando a minha chave pública, alguém conseguir desproteger um ficheiro, é garantido que esse ficheiro é meu. Ou melhor, foi protegido com a minha chave privada que só eu tenho. É evidente que, como num sistema de password simples, se eu perder ou descobrirem a minha chave/password privada estou bem lixado.


E é desta forma que funcionam os tokens/cryptocoins/coins/bitcoin. Uma (bit)coin/token não é mais do que uma “espécie” de chave pública. Qualquer pessoa consegue lá pôr um valor (uma bitcoin/token/ficha não tem de ser 1 bitcoin, pode valer 0.23655624 whatevercoins). Para lá pôr um valor, usa o próprio endereço da coin como chave pública. O valor só pode ser transferido dessa coin para outra usando a chave privada dessa coin. Que só o dono da coin conhece. E, quando o dono da coin/token usar a sua chave/password privada para transferir o valor dessa coin/token para outra, é garantido que deixa de ter esse valor e o valor apenas passa a estar na coin para onde transferiu. E não é possível alterar coins de outra forma a não ser por transferências entre coins/tokens. Não dá para criar uma coin e injectar lá o valor que quisermos.


Um exemplo: uma bitcoin é referenciada pelo seu endereço/chave, algo tipo “12t9YDPgwueZ9NyMgw519p7AA8isjr6SMw”. Este token bitcoin é uma das que pertence aos “hackers” do WannaCry, os que bloquearam ficheiros a muita gente e pediram um resgate pelos mesmos (curiosidade, ou não: os ficheiros foram protegidos com uma chave pública e pagar o resgate significa que os “hackers” lhe enviam a chave privada correspondente).


Podem ver em https://blockchain.info/address/12t9YDPgwueZ9NyMgw519p7AA8isjr6SMw a informação/conteudo sobre a bitcoin 12t9YDPgwueZ9NyMgw519p7AA8isjr6SMw:


Screenshot from 2017-06-09 18-25-45


Como podem ver, à data da imagem, os “hackers” já tinham recebido pagamento de 106 pessoas/reféns, totalizando 17.25276073 bitcoins, cerca de 43947.83€ (à data, 9/6/2017, 18:28m). Que ainda não foram (tinham sido) transferidos para outra coin/token qualquer. No resto da página pode também ver o histórico de transacções, nomeadamente de que coins/tokens vieram os pagamentos (pois é, as bitcoins são melhor do que as moedas “reais”, guardam o histórico de todas as transacções com elas efectuadas). O QRCode (codigo de barras 2D) é uma forma fácil de representar o endereço deste token bitcoin e que pode ser lido com um telemovel (para facilitar pagamentos).


Isto causa-vos alguma confusão? Não tem de causar. Lembram-se dos cheques? Uma pessoa escrevia num papel um valor e assinava. E quem tivesse o cheque podia ir ao banco e trocá-lo por dinheiro “a sério”. Os cheques cairam em desuso. Mas não muda o facto que são fichas/tokens/moedas/coins que qualquer pessoa podia ou pode criar bastando para tal indicar o valor dessa “nota”/moeda e assinar por baixo. Uma bitcoin é a mesma coisa: tem um valor e é assinada com uma chave. E lembram-se de poderem endossar cheques? Tinham um cheque meu, assinado por mim. Queriam passá-lo a um amigo para pagar a vossa parte da conta do jantar. Assinavam o cheque por trás (endossavam o cheque) e davam-lhe o cheque e estava feito. E o vosso amigo depois podia fazer o mesmo e endossá-lo a outro amigo. As bitcoins (e as outras cryptocoins e tokens) não são mais do que cheques endossados repetidamente, mas assinados com chaves/assinaturas digitais.


Onde é que está o busílis? É que no caso dos cheques os bancos intervinham e serviam (servem) para duas coisas: garantir que o cheque tem cobertura (a conta tem saldo) e que a assinatura no cheque é válida. Com as bitcoins/cryptcoins os bancos não são precisos para nada, isso é garantido pela tecnologia blockchain (razão porque os bancos não gostam muito das bitcoins).


O que é isso da blockchain? Simples: é uma base de dados. É preciso mais do que isto? OK…


Os bancos que guardam dinheiro “a sério”, já não guardam as notas e as moedas que vos pertencem. Na realidade o vosso dinheiro não é mais do que um registo numa base de dados num computador do banco a dizer “o Mário Valente tem 2€” (ou pouco mais do que isso). Os sistemas de bases de dados usados pelos bancos têm uma série de tecnologias por trás, com nomes complicados, para garantir algumas coisas importantes. Uma delas: que quando é tirado um valor da vossa conta (ou seja, quando é subtraido X ao vosso registo na base de dados) e é transferido para outra conta (ou seja, quando é adicionado o mesmo X ao registo de outro tipo qualquer na base de dados do banco), esse valor não volta a estar disponivel na vossa conta. Nem dá para transferir duas vezes o mesmo valor para duas contas diferentes. Notem: o banco, para garantir que o “sistema” funciona, tem computadores com uma tecnologia de base de dados centralizada, gerida pela banco, que mantêm as propriedades de um sistema monetário.


A blockchain é uma nova tecnologia de base de dados. Mas descentralizada. Não há nenhum banco dono da base de dados do “dinheiro”. Numa blockchain (há e podem haver várias) a base de dados do “dinheiro” (das bitcoins, das coins) está distribuida e replicada (importante) por vários computadores. Os dados de todas as coins (e portanto de todo o histórico de transacções) são copiados, replicados e autenticados de forma distribuida por milhares de computadores. Quando alguém usa a sua chave privada e transfere valor de coins suas para coins de terceiros, o que acontece é que, ao invés de haver um pedido a uma base de dados num computador de um banco para “debita X na conta A e credita na conta B”, é pedida à rede de computadores da blockchain para “debitar X na bitcoin A e credita na bitcoin B”. Todos os computadores trabalham em conjunto para validar a transacção e para a armazenar futuramente. Ao contrário de uma base de dados num computador num banco, nem sequer dá para um “artista” chegar lá e transferir à má fila dinheiro de uma conta para outra. Isso apesar de tudo é possivel de acontecer porque a base de dados de um banco é unica e centralizada. Numa base de dados blockchain seria preciso ter vários computadores a submeter, validar e armazenar a mesma transacção. Impossivel de fazer por causa do uso da tecnologia de chaves públicas/privadas.


E agora a parte mais chocante: e a quem pertencem esses computadores que sustêm a blockchain? A qualquer pessoa. Qualquer pessoa pode pôr o seu computador a aceitar, validar e armazenar a base de dados de bitcoins e transacções associadas. Podem ser os próprios utilizadores da moeda bitcoin (ou qualquer outra coin…) a suportar o sistema de gestão do sistema monetário. Não são precisos bancos para nada. Estão a ver porque é que os bancos estão todos à rasca com isto das cryptocoins? E ainda mais chocante. Podem perguntar-se: porque raio haverá alguém a pôr o seu computador na rede blockchain a validar e armazenar bitcoins e transacções? Porque, por cada transacção que sejam capazes de validar (não é fácil), recebem bitcoins como pagamento. À “borla” (pelo menos a eletricidade têm de pagar). É a isso que se chama “mining” (mineração, prospecção) de (bit)coins. São os próprios utilizadores do sistema monetário bitcoin que suportam o sistema, validam as transacções, guardam o histórico e são recompensados (como os bancos centrais recebem juros para imprimir papéis com bonecos) por esse trabalho. As bitcoins não são criadas do nada, ninguém pode criar um ficheiro bitcoin e pôr lá um valor qualquer. O seu computador primeiro tem de fazer algum trabalho na rede blockchain. É claro que para a maior parte das pessoas a forma mais expedita de ter bitcoins é comprá-las (com dinheiro “a sério”).


Normalmente, depois desta explicação, os amigos ficam a perceber como funcionam as bitcoins e as ethers e as litecoins e as dogecoins e as cryptcoins todas. Depois seguem-se uma série de novas perguntas: mas como compro? como podem valer tanto? o que acontece aos bancos? como posso ficar rico? As respostas ficam para outro post, tá bem?