Bitcoin forks

O campo das criptomoedas ainda é estranho para muitos e, mesmo entre aqueles que detém Bitcoin ou outros ativos digitais similares, é comum a confusão sobre o que é uma criptomoeda e sobre o que é um fork.

Eu mesmo sou uma pessoa cheia de dúvidas, e não seria capaz de cobrir todas as nuances e pontos de vistas que cobrem estas questões num único post de blog. Mas acredito poder contribuir com o diálogo público em torno desse assunto, compartilhando parte do meu entendimento pessoal disso tudo.

Sobre a rede Bitcoin

Em Janeiro de 2009 um programa de computador, juntamente com o seu código-fonte, foram disponibilizados ao mundo. Era um software feito para demonstrar a viabilidade de uma idéia.

Tecnicamente falando o código publicado era uma implementação de referência de um algorítmo de consenso que havia sido descrito num paper anterior, era um aplicativo que desempenha as funções de um num sistema distribuído peer-to-peer. (E tudo bem continuar lendo se esses termos forem assustadores, prometo que melhora.)

Esta foi a primeira versão de uma peça de um possível computador mundial a ser formado por uma rede de outras peças parecidas ou iguais a esta, todas elas seguindo um mesmo protocolo de comunicação. Todas falando a mesma língua.

O nome dado a esta rede foi Bitcoin, e a idéia original que ela buscava viabilizar era a de um sistema para dinheiro eletrônico que pudesse ser trocado diretamente entre as pessoas participantes da rede sem o intermédio de instituições financeiras.

É importante encararmos criptomoedas não apenas de maneira superficial como moedas privadas, commodities ou ativos financeiros, mas mais precisamente como redes de computadores, como protocolos de comunicação, como computadores distribuídos, que são mantidos pelas pessoas que compõem essas redes.

mapa de nós acessíveis da rede Bitcoin - bitnodes

Quando falamos de Bitcoin, é mais útil e preciso traçarmos paralelos com meios de comunicação — tipo a Internet, o e-mail, o BitTorrent a Freenet — do que com moedas estatais — tipo o Dólar Americano, o Bolívar Venezuelano, o Cruzado Novo Brasileiro — só essa mudança de abordagem já ajuda desfazer muitas confusões.

Para falar sobre forks, que são bifurcações/derivações, da rede de computadores, dos códigos que rodam nessas máquinas ou mesmo das comunidades de pessoas que participam voluntariamente dessas redes, escolhi focar aqui em três características que considero importantes desse projeto, destacadas a seguir numa definição minha:

Bitcoin é uma proposta de dinheiro eletrônico, que depende de uma rede distribuída de voluntários concordando sobre um conjunto de regras e cuja implementação de referência original é um software livre.

Novamente, os conceitos que nos serão úteis:

  • Rede distribuída de voluntários
  • Concordando sobre um conjunto de regras
  • Cada voluntário rodando um software seu, que implementa essas regras. Este software pode ser um derivado do código original de referência ou não, contanto que seja compatível com o protocolo

Desses três pontos, talvez o mais fundamental deles para compreender o fenômeno dos forks seja o terceiro, vamos começar por ele então.

Software livre

Software livre é um tipo de programa de computador que respeita as liberdades dos seus usuários, permite que a pessoa rode, copie, estude o código, redistribua e faça modificações. É um tipo de software diferente dos chamados proprietários, que são distribuídos sem o respeito a essas liberdades básicas.

Four Freedoms by Damitr Mazanov

Por exemplo, o programa Whatsapp é propriedade da empresa Facebook inc. e não é distribuído junto com o seu código-fonte. Usuários de Whatsapp não podem ler a receita do programa e não podem compilar o executável para saber se o aplicativo faz realmente o que diz fazer, eles têm que confiar na empresa, não podem inspecionar a qualidade do software ou saber quais dados vão para onde.

Baixar software proprietário é como ganhar um Fusca de presente de alguém sob a condição de nunca poder abrir o capô. O Whatsapp não permite melhorias, reparos ou modificações partidas dos clientes, não permite discordância ou caminhos alternativos, não permite que alguém redistribuia cópias ou versões diferentes dele sem pedir benção e permissão prévia, não sem correr o risco de cair em alguma regra de violação de direitos autorais e quem sabe ser processado por isso pelo menos.

Um software proprietário é um software que “tem dono” e portanto submete os usuários às vontades e decisões desse dono, normalmente uma empresa ou o autor.

Freedom and Fairness by Nina Paley

Já um programa tipo o software Blender, que é uma ferramenta profissional de animação, modelagem 3D e edição de vídeo, é um exemplo de software livre. Toda pessoa recebe junto com o executável, uma cópia do código fonte(ou o endereço de onde obtê-lo) e pode desfrutar das liberdades de software. Qualquer uma pode melhorar o programa e redistribuí-lo com outro nome, pode inspecionar por si mesma se o programa faz o que diz fazer, pode distribuir cópias onde quiser e modificar qualquer aspecto do programa sem precisar de uma permissão dos autores, pois a permissão já é dada por padrão.

As usuárias de um software livre, são livres, não estão submetidas às vontades e decisões dos “donos” do software, dos autores originais ou quem quer que seja. Se você individualmente discordar do caminho que a Blender Foundation está tomando na evolução do software, ou se precisar remover uma funcionalidade que não te agrada, ou se precisar de uma funcionalidade que mais ninguém precisa, você é livre para seguir seu caminho próprio, para bifurcar. Sem o consentimento de absolutamente ninguém mais.

O software Bitcoin publicado em 2009, é um exemplo de software livre.

Associações voluntárias

A rede Bitcoin é uma rede de adesão 100% voluntária, ou seja, os participantes/nós desta rede podem se conectar e desconectar dela quando quiserem. Livremente.

A pessoa que segue uma versão do protocolo e conecta-se com outras seguindo também essa mesma versão ou uma compatível, o faz porque quer, porque escolheu aquilo. Todo subgrupo que escolheu um determinado software, numa determinada versão, com uma determinada configuração e com determinadas modificações pessoais, faz isso por enxergar ali algum benefício próprio.

Ayn Rand

Ninguém usa a rede por obrigação, ninguém contribui com as atividades dessa rede por medo de ir para a cadeia ou pro paredón. Ninguém que participa o faz porque isso foi o voto da maioria, ou porque a autora do protocolo mandou, ou porque uma empresa o comanda, ou porque um site com o nome da moeda anunciou que aquele era "o verdadeiro Bitcoin", ou porque os mantenedores da implementação que você usa forçaram o update para uma versão nova, ou porque um grupo de investidores se reuniu em Nova York numa sala de hotel e assinaram um pedaço de papel.

We Demand to be taken seriously by @MatiasTrader

A qualquer instante e por qualquer motivo um indivíduo pode recusar-se a fazer uma atualização, do seu próprio software, ou recusar-se migrar para outro software, mantido por outra equipe por qualquer razão, seguindo sua livre e espontânea vontade.

Diferente de outros protocolos de comunicação, como a moeda oficial de um país, sua língua e suas leis, onde os cidadãos participam e seguem as regras por uma questão geográfica e por imposição. No caso da rede Bitcoin, a troca de informações e valores é feita por pessoas soberanas que escolheram aquilo.

Escolheram seguir o protocolo e as regras monetárias descritas no software que rodam em suas próprias máquinas, com as adaptações e melhorias que cada um autonoma e independentemente decidiu rodar. Uma participante da rede Bitcoin, é alguém que foi supostamente convencida a participar dessa rede e não de outra.

Consenso sobre um conjunto de regras

Finalmente, é importante conhecer quais são as regras que cada nó de uma rede distribuída dessas segue, quais as características comuns que delimitam e determinam que eu como um indivíduo participo da rede A e não da rede B, que pode ter regras bem parecidas.

O que as participantes da rede que conhecemos hoje como Bitcoin tem em comum? O que esse conjunto de pessoas rodando softwares parecidos escolheram individualmente aceitar? Quais modificações, melhorias e reparos cada uma pode fazer em seu próprio software mantendo compatibilidade com o restante da rede? Quais tipos de modificações são incompatíveis e passam a descaracterizar os que adotaram-nas das demais, causando o nascimento de uma nova rede derivada?

Fazendo uma analogia com a a biologia, existe uma quantidade de características que são o suficiente para dois seres fazerem parte da mesma espécie, a partir de um ponto na comparação entre os DNAs a distinção entre um humano e um chipanzé acontece, ainda que compartilhem grande parte do mesmo código.

Numa rede de voluntários, a compatibilidade entre dois nós é consequência das escolhas individuais dos participantes e a rede baseia-se no consenso entre eles sobre o que é uma transação válida ou não.

Alguém que por sua livre iniciativa escolheu seguir uma dieta estritamente carnívora, não conseguiria almoçar num restaurante vegano, ou ser reconhecido como alguém que faz parte de um grupo de ovo-lacto-vegetarianos. Cada um desses grupos segue um conjunto de regras diferentes, algumas delas incompatíveis.

A versão 0.1 do software que formaria a rede Bitcoin continha várias regras, algumas delas mantidas nas versões seguintes e outras que foram modificadas ao longo dos anos. Pelo menos duas características presentes nessa versão 0.1 são amplamente reconhecidas como fundamentais entre os participantes até os dias de hoje:

  • o número total de moedas a serem postas em circulação é finito (21 milhões)
  • a fórmula para introdução destas no sistema é conhecida e previsível (recompensas que diminuem pela metade a cada 4 anos)



21 Million Bitcoin Club by Alix Branwyn

Evolução e separações

Assim como as línguas, os costumes, as religiões, as fronteiras e as espécies animais, as redes que formam criptomoedas são coisas vivas, são identidades de grupo em constante evolução. Algumas com evoluções mais dirigidas que outras, algumas mais lentas que outras.

A partir de um ancestral comum podem surgir separações, novos ramos causados por incompatibilidade e pelo distanciamento de um conjunto de regras comuns feito em sentidos diferentes.

Mas quem comanda?

No caso do Bitcoin, por ser um software-livre, que já tem a característica de “não ter dono” naturalmente. Coordenar as decisões sobre os caminhos na evolução do software mantendo o consenso entre os participantes é um desafio enorme por si só.

Projetos duradouros de software livre como o kernel Linux, o sistema operacional OpenBSD, a linguagem de programação Python e tantos outros, acabam tendo uma figura mais central, que é normalmente o autor original do software ou algum colaborador mais respeitado, reconhecido como um BDFL (Ditador Benevolente Vitalício). Já outros projetos, como o navegador Mozilla, os sietemas Ubuntu, Fedora ou mesmo o Android, que são de código aberto (ainda que não totalmente livres) possuem algum tipo de organização ou empresa formal dirigindo os rumos do projeto, controlando a marca e delimitando qual versão é a canônica daquele software.

No Bitcoin porém, a dificuldade de coordenar mudanças é maior que nesses outros projetos de software livre pois as autoras do protocolo e do código original, criptoanarquistas que eram, identificavam-se apenas por pseudônimo e abdicaram-se precocemente, antes do amadurecimento do projeto, de qualquer tipo de liderança por repudiarem argumentos de autoridade.

Este é um exemplo de software radicalmente “sem donos”, é talvez o mais livre dos softwares-livre, é uma expressão da filosofia descentralizada/ciberpunk/anarco-capitalista. É o grande teste sobre se pessoas espalhadas, anônimas e com motivações individuais conseguem dialogar por meio da proposição de idéias que passem pelo escrutínio público feito sobre o mérito delas e se conseguem dialogar por meio da escrita de software. É um experimento sobre se grupos vivendo no ciberespaço conseguem organizar-se de forma espalhada com fins de substituir velhas estruturas de poder por alternativas melhores e mais justas.

Here to help by Randall Munroe

O relativo sucesso do Bitcoin nos deu a esperança e a idéia de uma moeda sem dono, inconfiscável, incontrolável, resistente à censura, com regras conhecidas baseada em matemática e mantida por pessoas que voluntariamente escolheram este e não outro acordo coletivo (que precisa da força e da imposição para manter-se válido) sobre o que é o dinheiro. Isso incomoda.

Os forks, os ataques, as altcoins, a disputa pelo nome Bitcoin, os rachas nas comunidades, as tentativas de desqualificação e as tentativas de eleger um ou outro grupo para comandar os rumos do projeto é um reflexo dessa anarquia.

Cabe a cada um informar-se da melhor maneira possível e com base nas suas convicções próprias, decidir sobre de quais redes participar e contribuir, rodando em casa as versões e customizações dos softwares que sejam mais alinhadas com seus objetivos próprios, para que a validação das suas moedas seja feita por você mesmo, de acordo com as regras que você concordou.

No fim do dia, uma rede peer to peer não é uma rede sem donos, é uma rede onde você é o dono, junto com todos os outros que aderiram ao mesmo pacote de regras.