Blockchain: um mundo além do Bitcoin

Blockchain: um mundo além do Bitcoin

Você já se perguntou o que há por trás das criptomoedas que suporta e assegura o volume de transações realizadas durante a mais recente onda de atenção? Conheça a blockchain, a tecnologia idealizada por Satoshi Nakamoto para pagamentos eletrônicos, e algumas de suas possíveis utilizações.

Matheus Vinícius Lopes Martins e Vinícius Shoiti Koike Graciliano

Bitcoin

Você provavelmente já ouviu falar da Bitcoin, a primeira criptomoeda descentralizada da história, que inclusive já foi assunto no Coruja Informa [1]. A moeda, cuja versão 0.1 foi lançada em 2009 [2], vem acumulando cada vez mais interesse, com uma unidade chegando a valer U$ 19.000,00 [3]. A criação de Satoshi Nakamoto, pseudônimo do criador ou ainda criadores da moeda, está se difundindo cada vez mais no mundo e muitos veem na moeda o potencial de revolucionar a economia, reduzindo o poder de instituições como bancos e governos, descentralizando e “anonimizando” a troca de valores. Porém, para muitos, Bitcoin é apenas a ponta de um grande iceberg, chamado blockchain.

Blockchain

Blockchain é uma estrutura de dados gerenciada de maneira descentralizada em uma rede peer to peer que mantém registrada uma sequência de eventos testemunhados. Ela foi idealizada e implementada por Satoshi para resolver o problema de double spending1 em uma moeda virtual sem a necessidade do intermédio de uma instituição reguladora, criando assim a blockchain responsável pela Bitcoin [4].

Para entender um pouco mais sobre o funcionamento desta tecnologia, vamos utilizar como exemplo a própria Bitcoin e sua blockchain, na qual movimentações da moeda entre diferentes carteiras são verificadas e registradas em blocos na rede.

Na rede peer to peer, existem nós denominados de mineradores que oferecem o poder de computação necessário para gerar novos blocos e movimentar a rede. Os nós recebem transações dos usuários e são responsáveis por verificar a validade das transações ao varrer a blockchain e, desta forma, verificar se a carteira emissora da transação possui os fundos necessários para realizá-la. Cada nó, então, gera um bloco com as transações e adiciona o valor da função de hash SHA256 do bloco anterior [4]. O minerador adiciona também uma transação especial que dá a si próprio uma recompensa pelo trabalho realizado, que é, atualmente, 12,5 Bitcoins e é periodicamente reduzida pela metade [4][5].

Screenshot from 2018-04-16 14-17-40Figura 1 – Organização dos blocos – Fonte: https://bitcoin.org/bitcoin.pdf

A figura acima mostra a estrutura simplificada de um bloco da Bitcoin. O bloco contém múltiplas transações, representadas como “Tx”s, e um campo de 256 bits que contém o resultado da função de hash sobre o bloco anterior, chamado de “Prev Hash”. O campo “Nonce” é o campo de 32 bits, incrementado aleatoriamente de maneira que o resultado da função de hash sobre o bloco satisfaça a prova de trabalho [4].

O minerador, então, propaga o bloco aos outros nós, que são responsáveis por verificar se o mesmo de fato atende a estes requisitos. Verificada a conformidade das transações recebidas, o minerador passa a minerar um novo bloco apontando para o recém recebido como anterior, dando, assim, um voto na veracidade da informação recebida ao optar por prolongar a corrente incluindo aquele bloco. Um pacote recentemente propagado não necessariamente é confiável. Apenas quando novos blocos gerados apontam para ele,  pode ser constatado que uma quantidade significativa de esforço computacional foi empenhada por nós que atestam a integridade daquelas transações – e aí sim o pacote ganha confiabilidade. Se um nó determinar que as transações repassadas não são confiáveis, ele pode ignorá-las e esperar obter outras, estendendo a corrente apenas com blocos confiáveis.

chainFigura 2 – Organização dos blocos na corrente. Fonte: acervo próprio

A figura acima demonstra o cenário onde blocos são propagados concorrentemente, como o bloco vermelho e bloco azul abaixo dele. Devido à escala global de redes como a Bitcoin, é possível que um nó minere um bloco sem saber que um outro bloco válido que aponta ao mesmo antecessor já foi propagado por outro minerador e ainda não chegou a ele. Quando o bloco vermelho e o azul estão no fim da corrente, não há um consenso na rede sobre qual bifurcação da corrente é válida. O poder computacional despendido na geração do próximo bloco determinará qual bifurcação será mantida e o bloco sem sucessores será descartado.

Com o sistema de prova de trabalho, agentes desonestos têm baixas chances de inserir transações inválidas na blockchain, desde que a maioria da rede, em termos de poder computacional, aja de maneira honesta, ignorando os blocos inválidos. Além disso, o sistema torna a blockchain resistente a alterações retroativas. Isto ocorre pois alterar os dados de um bloco significa alterar o resultado da função de hash resultante dele, e a função hash resultante de todos os blocos posteriores a ele na corrente, pois os mesmos são ligados por tais resultados. Isso significa também refazer a prova de trabalho para todos estes blocos. Se o agente desonesto não possui a maioria em poder computacional, ele ficará para trás conforme novos blocos são gerados [4].

A blockchain é, portanto, um registro de eventos descentralizado entre múltiplos agentes livres para entrar ou sair da rede, porém sem capacidade de corromper a “verdade” mantida. Atualmente, sua principal aplicação é em criptomoedas. Alguns descrevem as criptomoedas como o killer app da blockchain, assim como o e-mail foi o killer app que popularizou o uso da internet [7].

Veremos, porém, que há aplicações alternativas à tecnologia que recebem cada vez mais atenção [7], e muitos acreditam que, assim como a internet, novas aplicações atualmente inimagináveis florescerão da blockchain.

Colored coins

Além da funcionalidade normal de registrar transações simples, a blockchain da Bitcoin suporta uma linguagem simples de programação chamada Script. A Script possibilita a criação de transações mais complexas que só são válidas se a execução do Script embutido não retornar erros [8].

O uso do Script possibilita a inserção de metadados em transações que podem significar a transição de posse de ativos do mundo real registrados na blockchain, criando “moedas coloridas” cujo emissor pode prometer algum valor. Por exemplo, um cinema pode realizar transações que simbolizam a posse de um ingresso à um filme, e prometer que o resgate destas moedas dão o direito de assistir à um filme X no horário Y [9].

 

nmcNamecoin

Namecoin é um projeto que visa estender a tecnologia da blockchain para a criação de um DNS2 descentralizado e livre de censura. Criada em 2011, Namecoin é uma blockchain alternativa baseada na Bitcoin, cujo intuito é armazenar pares de chaves e valores na blockchain. Sua principal aplicação é o sistema de DNS de domínios .bit, na qual sua blockchain associa nomes de domínios a seus IPs e informações [10].

Ao contrário de domínios .net e .com, a Namecoin não possui um órgão regulatório como a ICANN [11] e a natureza imutável e descentralizada da blockchain confere aos registros segurança contra ataques ou censuras.

steem

Steem

Steem é uma blockchain que serve de fundação para o Steemit, uma rede social monetizada com mais de 500 mil usuários registrados. Inaugurada em 2016, a Steemit visa resolver o problema de monetizar a criação e curadoria de conteúdo na internet [12]. A blockchain registra os posts no site e suas interações com usuários, como votos e comentários, e então distribui tokens denominados de STEEM para autores e curadores de posts populares, que podem ser trocados por dólares ou outras criptomoedas [13].

eth

Ethereum

Ethereum é um projeto open source que visa criar uma plataforma de computação descentralizada utilizando uma blockchain e o conceito de smart contracts, proposto em 2013 por Vitalik Buterin e lançado em 2015 [14].

Assim como a Bitcoin, a blockchain do Ethereum também registra a posse e transações de uma moeda, o Ether, entre contas. Mas, além das contas normais que guardam e transferem Ethers, Ethereum suporta um segundo tipo de conta, denominadas de contratos, os smart contracts. Os contratos, além de possuírem fundos em Ether para realizar transações, possuem também código e armazenamento na blockchain [6].

O Ethereum têm sua própria máquina virtual turing-completa, a Ethereum Virtual Machine (EVM). Quando uma transação é enviada a um contrato, ele é ativado e seu código é executado pela EVM, podendo realizar transações, operações de entrada e saída ou ativar outros contratos na blockchain [6].

O funcionamento da blockchain do Ethereum no alto nível é similar ao da Bitcoin, com a adição dos smart contracts. Na mineração dos novos blocos no Ethereum, parte da validação de uma transação é a execução do código caso o recipiente da transação seja um contrato, e cálculo do novo estado do contrato e todos os outros contratos e contas com quem ele interagiu [6]. O bloco então é propagado e todos os outros nós re-executam os contratos para validar o bloco que receberam, criando apps descentralizados, denominados de DApps, executados seguramente na blockchain onde cada agente pode verificar e confiar em seu estado.

kittiesCryptokitties

Das centenas de DApps lançados na blockchain, um dos mais intrigantes é o Cryptokitties, um jogo no qual usuários podem adotar, criar e trocar gatos virtuais. O jogo utiliza o Ethereum para registrar as posses e transações dos cryptokitties. Cada gato virtual possui um genoma único de 256 bits armazenado na blockchain que determina suas características e de seus descendentes [15]. O jogo é um dos DApps mais populares e chegou a ser a maior fonte de transações no network do Ethereum, gerando preocupações que o jogo poderiam empurrar aplicações “mais importantes” para fora da rede por falta de espaço. Pelo lado positivo, a popularidade dos Cryptokitties pode ser vista como uma difusão da tecnologia da blockchain, tornando-a mais acessível ao público geral [16].

O problema de “espaço” tornou-se recorrente nas blockchains. Devido a descentralização e transparência, todos os nós recebem todas as informações, e no caso do Ethereum, executam todo o código. Isto limita o tamanho dos blocos e a complexidade dos smart contracts para que eles sejam propagados e verificados sem grande latência. Esta limitação porém, prejudica a adoção em massa da tecnologia ao reduzir a vazão de transações realizadas. Durante o período de alta demanda da Bitcoin no ano passado as taxas e o tempo das transações aumentaram demasiadamente [17][18], inviabilizando determinadas aplicações e levando negócios a deixar de aceitar a moeda [17]. A falta de consenso sobre que ação tomar dividiu a comunidade e gerou blockchains alternativas, como a Bitcoin Cash [19], que lidam com o problema de escalabilidade de maneiras diferentes mas dividem os usuários e nós, reduzindo o poder computacional e a segurança nas correntes.

Como vimos, a blockchain é uma das estruturas de dados descentralizadas mais seguras do mundo. Na blockchain, todos são livres para começar e deixar de contribuir à rede, mas o uso inteligente de criptografia impede a modificação dos registros a não ser que um grupo desonesto possua mais poder computacional do que todos os outros nós na rede juntos. Junto com o incentivo aos nós que movimentam a rede, estes mecanismos criam uma rede que movimenta-se sem um órgão central, controle e censura. Sua principal aplicação atualmente é na implementação de criptomoedas, mas sua estrutura tem potencial para ser utilizada em diversas aplicações descentralizadas que requerem uma segurança de alto nível.


1. A realização de múltiplas transações com a mesma moeda.
2. Domain Name System, ou Sistema de Nomes de Domínios.


Refêrencias Bibliogŕaficas

[1] ALVES, Caio Margutti. Economia Virtual: tudo que você precisa saber sobre Bitcoin. Dísponivel em <https://www.each.usp.br/petsi/jornal/?p=965>. Acessado em Março de 2018.

[2] NAKAMOTO, Satoshi. Bitcoin v0.1 released. Dísponivel em <https://www.mail-archive.com/cryptography@metzdowd.com/msg10142.html>. Acessado em Março de 2018.

[3] BTC to USD Bitcoin Exchange. GDAX . Dísponivel em: <https://www.gdax.com/trade/BTC-USD>. Acessado em Março de 2018.

[4] NAKAMOTO, Satoshi. Bitcoin: A Peer-to-Peer Electronic Cash System. Dísponivel em <https://bitcoin.org/bitcoin.pdf>. Acessado em Março de 2018.

[5] Blocks. Bitcoin Wiki. Dísponivel em <https://en.bitcoin.it/wiki/Block>. Acessado em Março de 2018.

[6] A Next-Generation Smart Contract and Decentralized Application Platform. Github. Dísponivel em <https://github.com/ethereum/wiki/wiki/White-Paper>. Acessado em Março de 2018.

[7] SCOTT, Joe. Blockchain: Way More Than Just Cryptocurrency. Youtube. Dísponivel em <https://www.youtube.com/watch?v=u8SaL2mM6cE>. Acessado em Março de 2018.

[8] Script. Bitcoin Wiki. Dísponivel em <https://en.bitcoin.it/wiki/Script>. Acessado em Março de 2018.

[9] Colored Coins. Bitcoin Wiki. Dísponivel em <https://en.bitcoin.it/wiki/Colored_Coins>. Acessado em Março de 2018.

[10] DOUBLE, Chris. Namecoin – A DNS alternative based on Bitcoin. Dísponivel em <https://bluishcoder.co.nz/2011/05/12/namecoin-a-dns-alternative-based-on-bitcoin.html>. Acessado em Março de 2018.

[11] DOURADO, Eli. Can Namecoin Obsolete ICANN (and More)?. The Ümlaut. Dísponivel em <https://theumlaut.com/can-namecoin-obsolete-icann-and-more-9486ec4edbc9>. Acessado em Março de 2018.

[12] Steemit. Wikipedia. Dísponivel em <https://en.wikipedia.org/wiki/Steemit>. Acessado em Março de 2018.

[13] FAQ – Steemit. Steemit. Dísponivel em <https://steemit.com/faq.html#How_does_Steemit_work>. Acessado em Março de 2018.

[14] Ethereum. Wikipedia. Dísponivel em <https://en.wikipedia.org/wiki/Ethereum>. Acessado em Março de 2018.

[15] Cryptokitties. Wikipédia. Dísponivel em <https://en.wikipedia.org/wiki/Cryptokitties>. Acessado em Março de 2018.

[16] CryptoKitties craze slows down transactions on Ethereum. BBC. Dísponivel em <http://www.bbc.com/news/technology-42237162>. Acessado em Março de 2018.

[17] BROWNE, Ryan. Big transaction fees are a problem for bitcoin — but there could be a solution. CNBC. Disponível em <https://www.cnbc.com/2017/12/19/big-transactions-fees-are-a-problem-for-bitcoin.html>. Acessado em Março de 2018.

[18] LEE, Timothy B. Skyrocketing fees are fundamentally changing bitcoin. Arstechnica. Dispónível em <https://arstechnica.com/tech-policy/2017/12/bitcoin-fees-rising-high/>. Acessado em Março de 2018.

[19] Bitcoin Cash. Investopedia. Dísponivel em: <https://www.investopedia.com/terms/b/bitcoin-cash.asp>. Acessado em Março de 2018.