Descentralizando tudo

Esse artigo é baseado na palestra de mesmo título criada por mim e pelo Gabriel Rhama para a Campus Party de Brasília1. Como o conteúdo é bem legal, achei que colocar ele por escrito seria também interessante. Pra facilitar, devo escrever em várias partes, uma pra cada um dos temas que abordamos na palestra.

Introdução

A primeira coisa que vem à mente quando falamos de criptomoedas2 é descentralização3. Criptomoedas são descentralizadas, Blockchain é consenso descentralizado. Mas o que isso quer dizer? Pra que serve isso? Porque isso é tão importante?

TCP/IP4

Vamos voltar um pouco no passado e falar sobre a internet. Na década de 1960 o governo americano financiou um projeto de pesquisa para a criação de uma rede de computadores. Não é a primeira rede, já existiam outras, abrangendo universidades, empresas, etc. Essa nova rede tinha um objetivo específico: resistir a ataques nucleares que tirassem do ar um ou mais dos computadores envolvidos. Até então, as redes eram estruturadas de forma centralizada (um computador central que se comunica com vários terminais) ou hierárquica (sem apenas um computador central, mas computadores ligados de forma em que alguns são concentradores das informações vindas dos outros). Redes com esses formatos são extremamente frágeis em caso de ataque. Atacando um único computador você interrompe toda a rede.

A Darpa5, agência de pesquisa do departamento de defesa dos EUA, junto com algumas universidades norte-americanas, desenvolveu então a ARPANET, e seu protocolo de comunicação, o TCP/IP. A ARPANET, que depois evoluiu e veio a se chamar Internet6, usava de um protocolo descentralizado, onde nenhum computador é mais importante que o outro e onde os caminhos entre um computador e outro se adaptavam de acordo com a disponibilidade dos mesmos. Com isso, se um computador saísse do ar por qualquer motivo, os outros continuavam se comunicando normalmente. Não havia um ponto central de falha. Tínhamos aí o primeiro uso da descentralização: Resistência a falhas e ataques.

O TCP/IP foi o primeiro passo em direção a descentralização, a descentralização dos canais de comunicação.

Bitcoin78

Em 2008, Satoshi Nakamoto9 deu mais um passo em direção a descentralização: O Bitcoin10. Bitcoin é uma moeda digital descentralizada que funciona sobre um protocolo criptográfico. Era logo depois da crise de 200811, onde os bancos haviam criado uma bolha econômica e depois recorreram aos governos dos seus países para evitarem a falência, enriquecendo com dinheiro público ao mesmo tempo em que transformavam em pó as economias da população. A ideia do Satoshi era dar ao cidadão comum uma alternativa ao dinheiro digital que não fosse controlada pelos bancos.

Não tenho certeza se o Satoshi tinha noção de quão revolucionário era o sistema que ele criou. Acredito que, pra ele, era só mais uma evolução dos sistemas de moedas criptográficas que tinham vindo antes, como o bit-gold12 ou o hashcash13. Inclusive, muitas das ideias que ele usou foram tiradas dessas precursoras.

Com o Bitcoin, o Satoshi se aproveita de mais uma vantagem da descentralização: Resistência à censura. Os bancos não podem mais fechar sua conta e recusar seu crédito, eles não tem mais controle sobre seu dinheiro.

O Bitcoin trouxe a descentralização do dinheiro!

Blockchain14

Esse é um caso bem especial. Para o Satoshi Nakamoto, só existia o Bitcoin15. Só depois de lançado o Bitcoin é que outros desenvolvedores e cientistas perceberam que dentro do Bitcoin existia mais uma inovação, que poderia ter vida própria: A Blockchain! A Blockchain, ou cadeia de blocos, é a estrutura de dados que dá suporte ao Bitcoin. É o banco de dados por trás do Bitcoin, e de todas as criptomoedas.

Não vou entrar aqui no debate filosófico se Blockchain existe sem o Bitcoin ou não. Alguns acham que sim, outros que não. Enfim, não é o meu debate e daria para uma nova série de artigos. Afirmo apenas que ela tem uso que não é simplesmente dar suporte ao Bitcoin, precisando do Bitcoin para existir ou não.1617

A Blockchain trouxe mais uma inovação: ela permite o registro de dados, não somente de dados financeiros, mas quaisquer dados, de forma descentralizada. Enquanto o Bitcoin usa a Blockchain apenas para o fim específico de realizar transações financeiras, outros sistemas podem se aproveitar dessa mesma infraestrutura para registrar todo tipo de dados.

É bom tomar cuidado com isso. Descentralização não é algo barato. Uma Blockchain vai ser replicada em TODOS os computadores que formam a rede descentralizada onde ela opera. Isso tem um custo. Esse custo é refletido nas famosas "taxas de transação" do Bitcoin, ou no "gas" da rede Ethereum. Então enquanto Blockchain é uma ferramenta fantástica, ela não é bala de prata. Ela é uma solução cara para problemas específicos.

A Blockchain é então outro degrau no nosso caminho rumo a descentralização: descentralização do armazenamento de informações.

Smart-Contracts1819

Apesar de já existirem no Bitcoin os smart-contracts "simples", foi com a Ethereum e o Vitalik que surgiram os smart-contracts como entendemos hoje. Uma coisa importante que é preciso entender sobre smart-contracts é que, apesar do nome, eles não são contratos como nós entendemos. São trechos de código capazes de serem executados de forma descentralizada. Você escreve um trecho de código, registra ele na Blockchain, e depois ele pode ser executado por você ou por terceiros para processar as informações e registrá-las também na Blockchain. Um smart-contract vai ser executado simultaneamente em todos os nós participantes da sua rede de forma a validar se os dados gerados por ele podem ou não ser gravados na Blockchain. De novo, como toda descentralização, esse processo é caro. Por isso existem restrições quanto ao tamanho e funcionalidade do código a ser executado. E essa execução tem um preço a ser pago: o "gas"20, a ser pago aos mineradores em troca desse serviço.

Smart-contracts então não são contratos, são uma forma de estender as regras de consenso de uma Blockchain. Com um smart-contract o usuário cria novas validações, novas regras de consenso, novas funcionalidades em cima de uma Blockchain existente, sem precisar criar uma nova Blockchain. Isso permitiu coisas com os tokens ERC2021, e consequentemente as ICOs22. E permite que você estenda sua Blockchain para armazenar e processar virtualmente qualquer tipo de dado.

Smart-contracts são a descentralização do processamento de dados.

Decred23

Em 2013, Tacotime, criador da Monero24, propôs uma moeda chamada Memcoin2 (MC2), usando um sistema híbrido de Proof-of-Work (PoW) e Proof-of-Stake (PoS)2526. Logo em seguida, e de forma independente, o Charlie Lee27, da Litecoin propôs um sistema similar que ele chamou de Proof-of-Activity (PoA)2829. As ideias por trás da MC2 acabaram indo parar nos ouvidos da Company 0, empresa responsável pelo btcsuite, e a equipe então usou essas ideias em uma nova moeda, a Decred30. O foco principal da Decred seria prover governança descentralizada para evitar os problemas de governança constantes na Criptoesfera que geram tantos forks, novas moedas e brigas políticas.

A Decred dispõe de um sistema de votação onchain, um sistema de registro de documentos (Dcrtime) e de apresentação de propostas para a moeda (Politeia).

Decred é a descentralização da governança.

Resumo da primeira parte e conclusão

Nesse primeiro artigo vimos a evolução das tecnologias e criptomoedas em direção à descentralização:

  • TCP/IP é a descentralização dos canais de comunicação.
  • Bitcoin é a descentralização do dinheiro
  • A Blockchain é a descentralização do armazenamento de informações.
  • Smart-contracts são a descentralização do processamento de dados.
  • Decred é a descentralização da governança.

Em especial vimos a importância da descentralização em:

  • Resistência a falhas
  • Resistência a ataques
  • Resistência a censura.

Descentralização é uma ferramenta de resiliência para sistemas de informação. Com a descentralização, busca-se garantir que nenhum tipo de falha, ataque, ou entidade em posição de autoridade interrompa, censure ou interfira na operação dos sistemas.

 

Knol, ou uma enxurada de girinadas.

O google lançou o seu complemento/concorrente da wikipédia: knol!

É tudo que um girino pediu a Deus! Nada de fontes, referências, ponto de vista neutro, o escambau aquático! É simplesmente um repositório de conhecimento, QUALQUER UM! Quer lugar melhor pras minhas girinadas? Pois já comecei por lá: escrevi um artiguinho sobre a Lilica Westies, copiei pra lá sem tirar nem por meu tutorial de fractais, e o que eu gastei mais tempo: um artigão, em inglês, introdutório sobre compressão de dados. (Essa foto aí do lado é uma das ilustrações toscas que eu fiz pro artigo 😉 ) Quem animar, dê uma olhada:

Agua para elefantes

Foi essa minha leitura da semana: Água para elefantes, de Sara Gruen.

Eu sempre compro livro pela capa. Sei que o velho ditado diz pra não julgar um livro pela capa, mas eu julgo. Poxa, não dá pra ler todos, tenho de ter um critério. O mais eficiente que encontrei foi esse: Escolho pela capa. Raramente erro. Não é a capa mais bonita, ou "estilosa". É a capa que mais parece com o estilo de livros que gosto.

A capa desse não era particularmente bonita... Mas tinha um "je ne sait quoi" de antigo, de art-deco com cara de novo. Acho que é esses tratamentos de "pátina" que fazem no photoshop... Sei que vi e pensei: essa é a capa de um livro que eu gostaria de ler. E comprei.

E como eu disse, raramente erro. O livro é excelente. A história se passa em duas épocas, intercalando a vida real de um idoso em um asilo de velhos e suas lembranças de um tempo de juventude sofrida no circo, na época da recessão e da lei seca. Enquanto um velho rabugento briga com as enfermeiras, um jovem apaixonado recém fugido da faculdade de veterinária luta por seu amor e pra proteger sua elefanta num ambiente hostil e competitivo de um circo semi-falido. O final é inesperado, apesar de ter sido descrito no prólogo do livro. E o outro final, o do velho, é ainda mais inesperado, apesar de "romântico" e piegas...

Nada profundo, pra quem gosta de filosofia ou coisas do gênero. É um livro pra quem gosta de ler e se divertir. Pra quem gosta de estórias realistas, com suas nuances de alegria e sofrimento. Pra quem gosta de circo e elefantes, ou pra quem gosta de velhos rabugentos e asilos. Se eu escrevi a resenha, é porque recomendo, claro...

--girino 22:32, 16 Março 2008 (BRT)