Blockchains: considerações sobre segurança em ambientes descentralizados

outubro 4, 2016 5:00 pm Publicado por Deixe um comentário

No último ano, Blockchain, a tecnologia por trás da moeda digital Bitcoin, deixou de ser um conceito associado apenas à moeda digital e sagrou-se como o principal novo termo em inovação em tecnologia bancária. Com isso, virou a mais a nova buzzword no universo das finanças e meios de pagamentos. No Brasil, o Itaú e o Bradesco, os dois maiores bancos privados do País, já anunciaram projetos experimentais com essa tecnologia e a entrada em um consórcio junto com outros 50 bancos que estão trabalhando em aplicações conjuntas da tecnologia do Blockchain. As promessas potenciais da tecnologia são muitas: diminuir custos de transação e de backoffice, aumentar segurança e transparências em processos operacionais, facilitar e automatizar auditorias, reduzir ou mesmo eliminar fraudes em certos contextos etc.

Os casos de usos são tão diversos que a tecnologia é comparada com a Internet no estágio inicial, dado o potencial de impacto que pode ter nas organizações. Mas o que são Blockchains?

Blockchains são um novo paradigma de banco de dados descentralizados, armazenados em uma rede de computadores. Diferentemente de um banco de dados usual, em um Blockchain, cada nó da rede é responsável por armazenar os dados, garantindo a consistência e a integridade dos dados. Periodicamente, esses nós da rede entram em consenso uns com os outros e garantem que todas as cópias estão iguais umas às outras.  Esse novo modelo de banco de dados elimina a necessidade de um intermediário central confiável entre as partes de transação, seja uma transferência de dinheiro, de um bem físico ou mesmo uma transação para se identificar e autenticar em um serviço. No fim das contas, Blockchain resolve o problema de confiança entre duas partes – questão essencial em qualquer tipo de operação comercial.

Exemplificando, se a empresa A quer fazer uma transação financeira com a empresa B no modelo de Blockchain, ambas ficam com uma cópia local da transação que é replicada em todas as empresas que estiverem conectadas à rede; as cópias do banco de dados entram em ‘consenso’ entre si e resolvem potenciais conflitos de inconsistência de informações. Como todas as transações são assinadas digitalmente pelas partes, elas não são repudiáveis pela parte criadora da transação. Como todas as transações são replicadas em um ambiente descentralizado, elas são inalteráveis e ficam registradas enquanto aquele Blockchain existir.

O Blockchain é a essência do funcionamento da moeda digital Bitcoin, e ainda (e talvez sempre seja) é o maior caso de uso dessa tecnologia. A moeda digital é limitada a 21 milhões unidades, e o cumprimento desse limite é garantido pelo Blockchain (ou seja, cada computador conectado à rede reforça o cumprimento das regras). Atualmente, aproximadamente 6.000 nós (os computadores que mantêm uma cópia local desse Blockchain) garantem a segurança e o cumprimento das regras da moeda. Qualquer tentativa de fraudar o sistema (hackear a rede para criar novos Bitcoins, por exemplo) só seria feita mediante o consenso da maioria dos nós da rede, e uma eventual tentativa individual de manipular o banco de dados não surtiria efeito.

O efeito prático da tecnologia é fascinante: Bitcoin é a primeira moeda que não precisa de uma autoridade central para controlar a emissão e as transações, onde todo controle e ‘regulação’ é garantido por cada indivíduo participante da rede. Com o aumento da demanda por Bitcoin, e a garantia de que os Bitcoins são limitados, existe uma expectativa do mercado de que o preço de cada unidade da moeda aumente. No Brasil, em 6 de junho de 2015, 1 Bitcoin era cotado a R$ 850 na Foxbit, a maior corretora de Bitcoins do Brasil. Em 6 de junho de 2016, cada Bitcoin era cotado por R$ 2.550. Uma alta de 200%! Para saber o preço do Bitcoin no momento da leitura do artigo, basta acessar o site foxbit.com.br e consultar o valor.

Apesar de Bitcoin e as moedas digitais serem o maior o caso de uso do Blockchain, as grandes organizações, como os bancos globais, estão mais interessadas em outros usos de Blockchain, sem envolver Bitcoin, como em casos de usos derivados de smart contracts. Smart contracts são regras de negócios armazenadas em um Blockchain com execução garantida sem a necessidade de intervenção ou de confiança em nenhum intermediário. Smart contracts potencialmente eliminam custos de backoffices e riscos operacionais.  Exemplos de uso de smart contracts incluem derivativos e outros instrumentos financeiros. É possível ‘programar’ um contrato financeiro entre duas partes que seja automaticamente executado por um Blockchain.

O Blockchain da plataforma Ethereum é o que tem se tornado referência para esse tipo de caso de uso. Ele não possui qualquer relação com o Blockchain do Bitcoin, visto que os computadores que processam transações em Bitcoins são diferentes dos que processam na rede Ethereum. O único elemento de relação entre esses Blockchains é o valor de suas moedas, já que ether é geralmente cotado em Bitcoin e negociado em mercado de ativos digitais, como o Poloniex, por Bitcoins. Assim, o preço da moeda digital do Blockchain do Ethereum (ether) e do Blockchain do Bitcoin (Bitcoin) frequentemente apresentam correlação, visto que são negociados um pelo outro.

Diferentemente do Bitcoin, que se propõe a ser um Blockchain focado em transações financeiras, o Ethereum se propõe a ser o ‘computador do mundo’, sendo um Blokchain turing-completo que pode rodar qualquer software de forma descentralizada, sem ser controlado por nenhuma autoridade central e isento de ponto único de falha. Dessa forma, um software escrito em Ethereum poderia rodar em seu Blockchain e nunca ser desligado! Ou seja, estar rodando em milhares de computadores ao mesmo tempo sem ter um servidor central. Definitivamente, uma evolução no paradigma de cloud computing.

Esse conceito foi levado ainda mais ao extremo com o projeto do DAOHUB. O projeto tinha a intenção de criar um fundo de investimento apenas para DAOS (Organizações autônomas descentralizadas), uma ‘simulação’ de uma empresa baseada em IoT (Internet of Things) que usa Blockchains para segurança e gestão de pagamentos. O principal projeto que exemplifica o conceito de um DAO é o slock.it, uma fechadura inteligente que se conecta ao Blockchain e pode gerenciar os próprios pagamentos, gerando dividendos aos seus financiadores. No DAOHUB, qualquer projeto que precisasse de recursos, e se enquadrasse como uma organização autônoma descentralizada, poderia obter recursos do fundo, como o slock.it o fez.

Assim, os criadores do DAOHUB lançaram um crowdfunding para captar recursos para o fundo. Todo o capital foi angariado na criptomoeda ether. No modelo proposto, cada investidor ganharia um token proporcionalmente ao capital investido. Esse token também iria receber os dividendos dos acionistas do fundo, quando os projetos financiados dessem algum lucro, além de permitirem aos investidores votarem em quais projetos receberiam valores do fundo. Ou seja, a propriedade dos tokens é a garantia de fazer parte como ‘sócio’ do DAOHUB.

Com essa proposta, o DAOHUB levantou US$ 160 milhões em um mês de captação, tornando-se o maior crowdfunding da história! E o mais incrível é que esse dinheiro não estava sob gestão de nenhuma empresa, nenhuma jurisdição ou nenhuma regulação, e sim estava sendo todo gerido via um Blockchain em um modelo de smart contracts, conforme definido pelo código-fonte que emitia os tokens. Como em qualquer em Blockchain, esse código-fonte é executado em computadores distribuídos ao redor do mundo, sem um ponto central que possa ser manipulado.

Toda empolgação com o potencial do projeto acabou poucas semanas após a captação dos recursos.  Uma brecha no código-fonte do projeto foi encontrada e explorada por um cracker, que conseguiu ‘drenar’ o equivalente a US$ 60 milhões do fundo. O preço do Token DAO afundou, caindo cerca de 50% em um dia.

Possivelmente, essa foi uma das maiores falhas de segurança da história recente da computação, causando um dano de grandes proporções a dezenas de milhares de pessoas e pondo em evidência os riscos da indústria nascente do Blockchain.

Além do DAOHUB, outros projetos desenvolvidos em Ethereum tiveram falhas exploradas e dinheiro roubado. Parte dessas falhas críticas em projetos utilizando a tecnologia de smart contracts se deve a duas razões:

  • Complexidade da plataforma
    1. Diferentemente do Blockchain do Bitcoin, o Ethereum é turing completo, ou seja, roda qualquer algoritmo possível de ser escrito. O Bitcoin não possui essa capacidade justamente por preocupação de segurança. Ao mesmo tempo em que sendo turing completo traz um poder grande aos desenvolvedores, essa capacidade traz complexidades proporcionais. Naturalmente, softwares complexos apresentam diversos potenciais pontos de vulnerabilidade e risco.
  • Ausência de práticas de Engenharia de Software em smart contracts
    1. Ainda existem ferramentas adequadas para o desenvolvimento e testes de smart contracts – boas IDEs (Visual Studio suporta ainda de forma limitada) e linguagens de programação adequadas para esse tipo de prática, ou ainda ferramentas para execução simbólica e verificação formal. Ou mesmo boas práticas mais simples, como desenvolvimento em camada. Essa falta de boa práticas e infraestrutura inevitavelmente leva a falhas e erros, como na crise de software (http://ow.ly/HdY5301QWNs ) da década de 70.

As possibilidades de novos negócios e novos mercados trazidas pela tecnologia descentralizada do Blockchain são indiscutíveis e já conquistaram o mundo bancário e das fintech, ao menos conceituamente. Contudo, na prática, enquanto a tecnologia não estiver mais madura, existem muitos riscos associados ao uso de smart contracts, principalmente no tocante à segurança. O ideal é acompanhar e experimentar essa tendência, mas ainda estamos distantes de ver algo relevante em produção por uma grande corporação.

***

Artigo publicado originalmente na Revista iMasters #19

Mensagem do anunciante:

Acesse e conheça as oportunidades para empresas de software. Torne-se Parceiro de Software Intel®

Source: IMasters

Categorizados em:

Este artigo foi escrito pormajor

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *