geek, internet, Segurança e Privacidade

FichaCoin: Aprenda como funciona o BitCoin e o blockchain com uma fábula didática

Adaptado livremente do texto do blog do Kaspersky: https://www.kaspersky.com/blog/bitcoin-easy-explanation/12915/

Em uma escola muito moderna, começa um experimento lúdico para ensinar matemática e noções básicas de economia para as crianças: Em uma sala de 50 alunos, coordenados pela professora, ao invés de trocarem dinheiro entre si com notas e moedas de real, os alunos aproveitam uma segunda lousa na sala (que normalmente não é usada) e anotam nesta lousa o nome de cada aluno e a quantidade de dinheiro que cada um tem no início do experimento. Joãozinho: R$25, Marilena: R$10, Hugo, R$50, e assim por diante. As moedas são convertidas em fichas, pedacinhos de papel com o carimbo da professora, e o preço de cada ficha fica estabelecido em X reais, sendo X fixado como preço de uma coxinha na cantina. As fichas podem ser divididas em unidades menores, como centavos da ficha, o que a professora usa para reforçar a prática de contas com números quebrados. Mas os alunos quase nem encostam nas fichas físicas, elas são meramente simbólicas, não têm nenhuma importância real: Todas as transações ocorrem só na lousa, um livro contábil da turma, e como todos os alunos já sabem assinar o próprio nome, cada transação precisa ser assinada por quem está mandando dinheiro, então se algum malandrinho tentar adulterar uma transação no intervalo, por exemplo, João escrevendo que Hugo lhe mandou 20 fichas sem Hugo autorizar, ficará claro que foi uma adulteração, e a transação será cancelada (e João voltará para casa com uma cartinha da professora).

Há diversos tipos de comércio nessa turma empreendedora: Joãozinho, que é filho do professor de filosofia, vende miçangas, que aprendeu a fazer com o pai; Hugo, que tem um PC com gravador de DVD e o programa CloneCD instalado, vende CDs de música, filmes e jogos piratas (esta historinha se passa na época do Playstation 2), as meninas vendem batom e maquiagem (estou sendo misógino?). E o quanto cada um paga em fichas pra cada os demais fica anotado na lousa, com a assinatura de cada um. Quando Joãozinho compra um GTA 3 de Hugo, por 10 fichas, eles anotam na lousa

Joãozinho 10 -> Hugo

Com assinatura de Joãozinho, que agora todos sabem possuir -10 fichas para gastar.

Os alunos gostam do sistema, mas há dois problemas: Primeiro, a lousa logo começa a ficar sem espaço. Mas tudo bem, quando fica muito cheia, a professora, após verificar se todas as transações escritas estão nos conformes, as anota em um caderno e apaga a lousa. Segundo e pior problema: a professora é chata! Detendo monopólio sobre a lousa, ela pode cancelar transações que não julga corretas (podendo dar privilégio para seus puxa-sacos nestas resoluções de conflito), e pelo simples fato de todas as transações ficarem centralizadas num lugar só, se a faxineira da escola apagar a lousa depois da aula, ou se a professora perder o caderno, ninguém mais vai saber quanto cada um tem. E por ser chata, quando se dá conta que os alunos estão fazendo comércio proibido, como doces, refrigerantes, e outros alimentos nada nutritivos, sem falar nos violentíssimos jogos piratas, a docente decide apagar a lousa inteira e encerrar a experiência.

Mas os alunos realmente gostaram do sistema, então eles decidem fazer uma versão própria, clandestina, do livro contábil: Nasce o FichaCoin. Cada aluno tem um fichário, e os fichários substituem a lousa. No conto original do blog do Kaspersky eles usam blocos de notas, mas fichário é melhor para a analogia, pois as folhas do fichário podem ser tiradas e recolocadas facilmente. Então cada um dos pequenos mantém em seu fichário um registro de todas as transações que todos fazem, em páginas numeradas, uma transação por linha, sem usar o verso (fodam-se as árvores, pensam os jovens rebeldes). Só consta o valor das transações e quem mandou para quem, e nenhuma informação a mais, não fica registrado o que foi trocado em cada transação. Não é necessário, e eles morrem de medo da professora descobrir a rede financeira clandestina e o que eles andaram vendendo. O valor da ficha não é mais fixado em nada, variando com a demanda. E mais: Para o caso do esquema ser descoberto pela professora, e os fichários serem confiscados, os alunos criaram pseudônimos para registrar todas as transações: Hugo assina Capitão Gancho, Joãozinho assina Goku, Marilena é Aeris no registro…. Mas o esquema se mantém funcionando normalmente, enquanto cada um só sabe assinar o próprio pseudônimo.

A inimitável assinatura de João, AKA Goku.

Um aluno quer mandar dinheiro para outro, por qualquer motivo: Digamos, Hugo, enriquecido com sua venda de CDs e DVDs, compra o fidget spinner*Ok, na verdade não existiam fidget spinners na época do PS2. Mas como isto é só uma fábula educativa… de João por 20 fichas, João precisa receber e avaliar a proposta de transferência de Hugo, e eles não podem falar em voz alta, pois seriam flagrados pela professora. Então Hugo manda uma ordem de compra por escrito, um bilhetinho com o valor da transação e sua assinatura no final.

Capitão Gancho 20 -> Goku

E manda junto de uma cópia da última página do seu fichário (em que entrará a transação). Para saber se Hugo, rei das tramoias, realmente tem o montante para pagar pelo fidget spinner, e se é ele mesmo quem mandou a ordem de compra, João primeiro confere se a assinatura é legítima, não de um farsante, e checa a página com o histórico de transações para verificar se ele realmente tem o dinheiro que pretende pagar. Se a página que recebeu estiver impecável, e de acordo com o próprio fichário, ele anota a transação no seu fichário, e quando esta é validada (isto será melhor explicado a seguir) ele e entrega o fidget spinner para Hugo depois da aula. Se alguma coisa parecer suspeita, se alguma linha parecer adulterada, se constar na página que alguém tentou gastar a mesma ficha duas vezes, a folha que veio com o bilhete vai para o lixo e a transação não é executada e não vai para o blockchain.

Livres do escrutínio da professora, e com um sistema financeiro anônimo e sem evidências do que é comercializado, podem vender e comprar qualquer bem e serviço livremente: A ficha é usada para pagar por cópias de dever de casa e por participação nominal em trabalhos em grupo, Hugo ganha horrores com seus CDs e DVDs gravados em casa, e João começa a comercializar não só as miçangas, mas outra coisa que seu pai, o professor de filosofia, adora fazer…*Chinelo. Ué, o que você pensou que fosse?

Sincronia

531606-blockchain-4

Mas é trabalhoso manter o FichaCoin, e como! E como nenhum aluno é tão confiável que possa ser o contador oficial da turma (quer-se evitar centralizar o sistema) cada um mantém seu próprio fichário com o histórico de transações, o que incorre em um óbvio desafio: Se se cada aluno tiver o seu próprio histórico de transações diferente, ninguém mais entraria em acordo com ninguém e o sistema logo iria desabar. As páginas, que são como os blocos do blockchain do Bitcoin, precisam ser validadas e distribuídas, e todo mundo precisa ter fichários iguais para poderem continuar fazendo negócios entre si.

Quando uma página fica cheia, o aluno ou aluna calcula (ou passa adiante para outro calcular) o hash da página cheia. Um hash é uma assinatura numérica que só pode ser extraída de uma função aplicada a um conjunto de dados específico. Digamos, a função hash da turma seja a soma de todo dinheiro movimentado naquela página, multiplicado pelo número da página, somado ao hash da página anterior (se a página 50 registrar a movimentação de 10 fichas, o hash é 500 + o hash da página 49).

Assim, cada página nova que entra para o fichário sempre estará em concordância com as demais, e qualquer página diferente da legítima, por exemplo com uma transação faltando ou uma moeda sendo usada duas vezes (pense na abertura do Manda Chuva, com sua moeda na cordinha) daria um hash diferente. A página 50 contendo apenas as transações válidas, em concordância com as páginas anteriores, só pode resultar em um único hash. Idealmente. Na prática, uma função hash tão simples como a ilustrada seria muito fácil de ser quebrada (quebrar significaria criar listas de transações diferentes que dão o mesmo hash). O Bitcoin real usa o algoritmo SHA-256, quase impossível de calcular manualmente, e até agora inquebrável. Mas como isto é uma alegoria, ignoremos este detalhe.

Em dois períodos, no intervalo e depois da aula, as páginas recém fechadas (lembrando que cada página é como um bloco na analogia com o Bitcoin) são distribuídas, com seus hashes para todos na sala validarem também, e estando todos de acordo, copiarem-na e terem seus fichários atualizados. Assim se mantém o sistema sincronizado. Se houver alguma peleja por alguma transação do passado, basta consultar o fichário. Mas tudo isso é bastante trabalho, e crianças não costumam amar a tarefa de copiar um monte de coisa no caderno; sem falar que calcular um hash manualmente é uma tarefa dispendiosa, chata, e propensa a erros. Mas isto é apenas uma alegoria. Para computadores, este tipo de tarefa é algo simples e rápido de fazer. A não ser que o computador tenha que fazer bilhões delas…

Eles estabelecem desde o princípio uma regra para quando houver discordância sobre a validade de uma página; afinal, mesmo se ninguém for desonesto, alguém pode errar nas contas. Então fica estabelecido que o consenso decide. É um sistema de consenso distribuído. Se 6 alunos calcularem um hash da página 123 e os outros 44 alunos calcularem outro, vale a página 123 dos 44 da maioria, e a página da minoria é desprezada. Num caso limítrofe, se dos 50, 26 chegarem em um hash, e os demais num outro, prevalece o hash dos 26 e sua respectiva página com suas transações, os resultados discrepantes sempre vão pro lixo. O Bitcoin é assim: A validade de um bloco, e todas as transações registradas nele, depende de mais de 50% da rede concordar que ele é válido. Mesmo que você suborne uma mineradora (quem faz os cálculos do Bitcoin) para validar um bloco inválido em seu favor, todos os outros vão acusar e anular a trapaça. Quando se faz uma transação em Bitcoin, normalmente, o vendedor espera a confirmação de pelo menos 3 mineradoras, para garantir que, por exemplo, o comprador não está tentando gastar a moeda duas vezes, mas se ele quiser ser extra cauteloso (e você nunca é cauteloso demais no mundo do Bitcoin), espera a rede toda confirmar a transação. Um hipotético ataque em que alguém consegue dominar mais da metade das mineradas e sabotar o blockchain com sucesso é conhecido como ataque 51%.

Criando Dinheiro

c412bf57-e673-4bcf-a068-693871ebaebe_1

No entanto, essa turminha pródiga não se contenta em criar apenas um meio de registrar transações com as fichas já existentes: Eles literalmente decidem “criar” mais dinheiro. Afinal, por que não? Criar dinheiro do nada, assim todos ficarão mais ricos, independente da mesada mesquinha dos pais! Ideia de criança mesmo (apesar de alguns adultos serem fascinados por ela). Mas, não tão ingênuos, eles sabem que tem que haver um controle sobre a criação de novas fichas, ou elas não valeriam nada. Aliás, as fichas já não têm mais um token físico, em papel ou qualquer outro meio, há muito tempo, simplesmente não é necessário, elas funcionam bem sendo apenas virtuais, apenas existindo nos garranchos das folhas de fichário. Mas é necessária alguma tarefa para ganhar fichas novas, e o próprio sistema oferece a tarefa: Como calcular o hash é muito, muito chato, e a maioria dos alunos preferem participar do sistema financeiro sem ter que executá-la, só comercializando (são como a enorme maioria dos usuários de Bitcoin, que possuem carteiras mas não fazem mineração), quem conclui primeiro a tarefa de calcular o hash de uma página recebe 20 fichas que são simplesmente “criadas” do nada, assim que a página é validada com consenso, na hora do intervalo e depois da aula, e somente nestes dois momentos.

Mas com essa recompensa, a tarefa ficaria fácil até demais, então é preciso adicionar uma dificuldade: Para validar a página, além do hash, é preciso resolver um problema de matemática. O problema é de um enorme livro de exercícios, e não é qualquer problema, é relacionado à página em questão: Para ganhar n fichas por fazer o hash da página 100, Douglas (mais conhecido como “Krusty” no FichaCoin) precisa resolver o problema de matemática número 100, e o resultado do problema é adicionado ao hash da página. Assim ele obtém uma prova de trabalho (proof-of-work). O livro de matemática, que foi incluído no material didático para ser usado durante todo o ano, tem problemas que aumentam progressivamente de dificuldade. E mais: Conforme o fichário for crescendo, a recompensa vai diminuindo, as 20 fichas por página fechada são reduzidas para 19 num momento combinado previamente; este foi o modo que as crianças, que leram o artigo da Wikipédia sobre inflação, bolaram para as fichas manterem-se valorizadas, e também estabelecem um limite rígido de quantas fichas podem ser criadas. Isto também serve como mecanismo de pressão para os colegas entrarem para o FichaCoin no começo, quando ele é muito incerto.

Mas, para encorajar os crânios da sala a continuarem trabalhando pelo FichaCoin com seus cálculos, mesmo depois que a recompensa é menor, os organizadores definiram desde o começo que seria permitido ao pagador incluir uma taxa opcional, uma gorjeta, para um colega CDF dar prioridade em calcular o hash da página com sua transação, lembrando que as páginas só são validadas, e as operações nelas confirmadas, duas vezes por dia, independente do volume de transações do dia. O Bitcoin possui um teto de 21 milhões de moedas, geradas sempre a cada 10 minutos, a quantidade de moedas geradas por ciclo diminui a cada x blocos, ao mesmo tempo que a dificuldade dos problemas aumenta. Assim minera-las fica progressivamente mais difícil, mas o usuário pode pagar uma taxa opcional à mineradora que está processando o seu bloco dar prioridade a ele. A rede Bitcoin só é capaz de processar 7 transações por segundo. Hoje em dia, apesar de ser opcional, sem pagar taxa, uma transação de Bitcoin demorará várias horas para ser processada, transações grátis vão para o fim da fila. Algumas soluções estão sendo elaboradas para acelerar o processamento das transações.

Estes limites resolvem temporariamente o problema do valor das fichas da criançada. Mas acaba que, apesar do sistema em teoria não precisar ser centralizado, na prática isto é inevitável, pois algumas crianças são muito mais hábeis do que outras com problemas matemáticos: A Daniela, vulga Docinho, menina nota 10 da sala, que é tão inteligente (especialmente em matemática) que os colegas se perguntam por que não está na série seguinte, resolve os problemas do livro com facilidade. Quando Douglas está pensando em como começar o problema, Daniela já acabou. Quatro crianças que são quase tão boas de conta quanto Daniela decidem se juntar para resolver os problemas juntos e terem chance de ganhar de Daniela, fundando o grupo (pool) dos “Feras da Mateca”. Além deles, se unem 6 alunos que vão razoavelmente bem na disciplina, bastante esforçados, formando o grupo dos “Racha Cuca”, e vez ou outra conseguem fechar uma página antes de Daniela e os Feras. Quando um grupo consegue fechar uma página, eles dividem as fichas igualmente entre si. Mas agora o controle do sistema está nas mãos de 3 entidades apenas. No mundo Bitcoin, também, dá para contar nos dedos o número de pools que controlam mais da metade da mineração do sistema.

 

 

Os Problemas

O primeiro problema que podemos notar nesta fábula é que o sistema todo é muito custoso para os envolvidos, que perdem o recreio e se distraem da aula com a atividade paralela tediosa. Sem falar no enorme gasto de papel por todos os envolvidos, e o volume que ocupa no fichário de cada um, pesando na mochila. A rede Bitcoin é bastante custosa, para começar em energia elétrica, aproximando-se do consumo elétrico de alguns países. E para quem quer minerar, custa muito caro investir nos equipamentos de Bitcoin (esqueça a possibilidade de fazer a tarefa com uma placa de vídeo comum, 2011 já passou faz tempo), custa muita energia elétrica, demora muito tempo aprender a mantê-los funcionando, fora os riscos, como o de um eventual incêndio devido ao calor gerado pelas máquinas, ou uma regulamentação do governo que restrinja a moeda virtual, derrubando seu valor. E o mais chato de tudo é que você estará competindo com mineradoras de Bitcoin industriais instaladas no Tibet e na Islândia, onde a energia elétrica é muito barata, e você será como o Douglas se matando para fazer um problema que a Dani ou os outros CDFs fazem facilmente, lembrando que resolver depois não adianta, o prêmio vai só para quem resolve primeiro, e a maior parte do trabalho que se faz é inútil.

E enquanto a validação das transações estiver restrita a 3 entidades, são só 2 entidades que João precisa subornar para todos “errarem na conta” e aprovarem uma versão do histórico de transações em que ele nunca pagou nada para Hugo. Claro, se a turma conseguir fazer outras salas aderirem, ficará mais difícil burlar o blockchain. Mas o volume de transação ficararia maior ainda, e ter novos alunos calculando hash não ajuda a diminuir a pilha de páginas para validar, que às vezes demoram dias, pois sendo que cada aluno está resolvendo os mesmos problemas simultaneamente, e se mantém constantes os dois períodos em que as páginas são validadas e sincronizadas (assim como os blocos sempre são fechados de 10 em 10 minutos) entrarem novos “matemáticos mirins” no esquema não melhora a situação, só diminui a recompensa de cada um, e o número de alunos no colégio perdendo tempo em que podiam estar prestando atenção na aula, estudando ou brincando.

Outro problema é a segurança da carteira de fichas de cada um, que só se mantém enquanto ninguém aprende a forjar a assinatura do coleguinha. No mundo real do Bitcoin cada usuário de cada carteira usa sua chave privada para assinar sua transação. Apesar do protocolo SHA-256 ser muito seguro contra ataques de força bruta, em que o computador tenta adivinhar a chave privada tentando uma após a outra, o perigo mais real (bem mais do que o possível surgimento de computadores quânticos funcionais) é ter sua chave privada roubada. É como se alguém não pudesse imitar a sua assinatura, mas pudesse roubar a sua mão e mantê-la fazendo assinaturas. Qualquer um com a chave privada de uma carteira pode gastar os bitcoins nela livremente, independentemente de ser seu dono legítimo ou não, e não é possível reverter uma transação da forma uma operação de crédito pode ser revertida pela operadora, o que entra no blockchain fica no blockchain. E o blockchain é público: O anonimato das transações só é mantido enquanto uma carteira não for associada à um usuário. Usuários mais preocupados com sua privacidade, por qualquer motivo, precisam usar serviços conhecidos como mixers ou blenders para esconder o rastro de suas transações.

E há o problema valor das fichas: Apesar de todas as providências tomadas para garantir a raridade das moedas virtuais, a escola fica no Brasil, onde o real é uma moeda de curso forçado. Justo ou não, o fato é que todo comerciante no Brasil é obrigado a aceitar real em qualquer transação, e a grande maioria dos comerciantes brasileiros não aceita outra moeda além do real. O valor de troca das fichas, de qualquer forma, é baseado no real (se o jogo que Hugo vende custa R$10 na loja, ele vai anunciar e cobrar o equivalente a R$10 em ficha, e os mais céticos se perguntam por que não pagar logo com uma nota de 10 reais ao invés dessa complicação de fichários sincronizados) e está restrito à microeconomia da turma; mesmo que eles consigam convencer outras turmas a aderirem ao FichaCoin, e de alguma maneira mirabolante mantê-lo funcionando, o universo do que podem comprar com as fichas é ínfimo comparado ao que podem comprar fora dele. A ficha não é aceita na cantina, nem na loja de games, não serve para comprar um boné no shopping ou uma caneta na papelaria, e o seu irmão mais velho, que estuda em outra escola, não vai aceitar a tal ficha em troca de não contar pra mãe o que você aprontou… Não serve para comprar nada sem ser as quinquilharias vendidas pelos colegas. E o valor das fichas flutua loucamente, dependendo dos humores da turma: Uma hora alguns alunos cansam e se desligam do esquema, ou a época de provas se aproxima e mesmo os nerds ficam sem tempo para cuidar do esquema, então o valor cai. Mas aí, como elas ficam baratas, alguns alunos se animam para compra-las, na esperança de um dia valerem muito, e o valor sobe outra vez…

O que dá alguma segurança aos adeptos do FichaCoin é que alguns dos integrantes do esquema vendem real por ficha, e podem trocar se precisar, mas normalmente acabam em prejuízo. Os que se beneficiaram mais dele (principalmente os que entraram no começo) e são ricos em fichas, lançam todo tipo de argumento para convencer os demais a entrarem ou se manterem: “Você vai ver” diz Hugo, o pirata mais rico da escola, “logo toda a galera de todas as escolas da cidade estará usando, e ano que vem os estudantes de todo Brasil não vão querer outra moeda para os negócios, você vai comprar de tudo em fichas, vamos derrubar a ditadura dos mais velhos com o FichaCoin, e aí uma ficha vai valer zilhões de reais, e você vai ficar chorando que não comprou várias delas quando não custavam quase nada…”.

E muitos alunos compram as fichas sem pretender trocar por nenhum bem ou serviço, guardando na esperança de algum dia valerem “zilhões”.


order

É claro que esta foi uma alegoria deveras limitada: A rede Bitcoin e seu blockchain, bem como outras moedas que usam a tecnologia, é muito mais sofisticada tecnologicamente e mais funcional que o esquema tosco de crianças marcando transações em fichários, sua utilidade é muito maior, considerando que serve para transações na internet à longas distâncias entre desconhecidos, não entre alunos de uma mesma sala. E ele vale milhares de reais atualmente, tendo passado o preço do grama do ouro mais de uma vez, bem diferente do que vaticinavam os céticos do final de 2013, quando ele valia só uns 200 dólares. Não desmereço o Bitcoin, acho que seria interessante se esta ou outra moeda virtual vingasse, é uma tecnologia com muito potencial. Mas não encorajo ninguém a entrar na coisa de cabeça, sem pesquisar muito antes e ponderar bem os riscos. Tudo pode acontecer.

Para arriscar um palpite, acho que moedas mais modernas como o Monero, Dash e principalmente o Ethereum têm mais chances para o futuro, por oferecerem uma versão mais sofisticada do blockchain, resolvendo vários dos problemas inerentes ao Bitcoin. O Dash e Monero são muito melhores em questão de privacidade, o usuário não precisa de usar artifícios como blenders para não ter todo o seu histórico de transações facilmente rastreável. O Ethereum, com sua moeda ether, é interessante pela sua versatilidade, não é só uma moeda virtual, mas de fato uma plataforma de computação distribuída, e a computação que mantém o sistema serve para algo útil, os smart contracts, não apenas para calcular hashes. Mas não entenda mal, não estou dizendo para você pegar as poupanças de toda sua vida e gastar no Ethereum… O mundo das criptomoedas é muito complicado, não invista sem pesquisar muito antes.

Eu deixo o final da história em aberto. Na fábula do FichaCoin, não é impossível que no final Hugo esteja certo, e seu FichaCoin se torne revolucionário, movendo uma insurgência contra os adultos e enriquecendo todos os que entraram nele no começo. Ou que ele se mantenha por um bom tempo, mas também não seja revolucionário, e seu valor se mantenha baixo. Assim como também não é impossível que tudo  simplesmente acabe, e os garotos e garotas que quebraram o porquinho e deram todas as economias para comprar as benditas fichas virtuais fiquem aos prantos, bem como os que se lembram de como poderiam ter aproveitado melhor seu tempo do que fazendo aqueles cálculos inúteis… Todo investimento é um risco, afinal.


Paul Vigna: The Age of Cryptocurrency. 2016.

Sobre o gasto energético e a sustentabilidade do Bitcoin:

https://www.sciencedirect.com/science/article/pii/S1877343517300015

(cof. cof, Sci-hub, cof, cof)

 

Anúncios
Padrão

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s