Blockchain: uma simples explicação do que é e como funciona

Imagem: Tecnologia Blockchain - Placa-mãe com processador

Blockchain é um processo descentralizado de partilha e rastreamento de informações sobre transações e bens que ocorrem na internet. Esta tecnologia possibilita a construção de aplicações complexas sem escrever várias linhas de código e criar sistemas seguros, eficientes, rápidos e baratos.

A tecnologia blockchain é constituída por blocos interconectados, distribuídos numa rede de computadores que conversam entre si e mantém o registro de cada transação ocorrida publicamente. Cada transação realizada na blockchain pode ser rastreada para o indivíduo que recebeu ou enviou os fundos ou bens. Contudo, apesar da disponibilidade pública dos registros dessas operações, é difícil rastreá-las sem recorrer a informação e métodos de investigação adicionais.

O que é um bloco?

Blockchain consiste numa rede de blocos “acorrentados” numa linha contínua onde cada um deles possui um número e links para operações anteriores.

Caso alguma informação seja alterada, o bloco existente não é alterado. Para registrar a nova informação é criado um novo bloco onde é também indicada a data e hora das alterações. Isto acontece porque quando aprovadas, as transações em blockchain tornam-se consistentes, cronológicas, permanentes e imutáveis. Não devem existir conflitos entre a informação nova e os dados já existentes na base de dados (o bloco).

O processo de criação de um bloco começa com a atribuição de uma função matemática designada hash a operação. Uma Hash é contruida através da conversão de strings (texto comum) em números e letras usadas para proteger o conteúdo de mensagens. A cada alteração feita nos valores da string, uma nova hash é criada. A alteração de uma vírgula em um livro longo altera o valor de toda hash.

Valor da String

Send money

Valor da Hash

d5707a9aa47dbeb8a830be2fcaf9f7a3

Tabela 1: Exemplo de uma hash

Em segundo passo, para adicionar segurança as transações feitas, cada transação nova (criação de novos blocos ou alterações na informação) deve carregar em seu registro a hash da transação anterior para que as transações possam ser rastreadas.

Valor da String

Send money to john

Valor da Hash

d5707a9aa47dbeb8a830be2fcaf9f7a3

Valor da Nova Hash
d5707a9aa47dbeb8a830be2fcaf9f7a3

f3416f5d6b1f3f7b5815f6aa99dcc354

Table 2: Exemplo de uma nova Hash carregando a referência da operação anterior

Após a criação da hash é adicionado ao bloco um Nonce. Um nonce (“number used once”) é um número que só pode ser usado uma vez em cada transação.

Este é adicionado no final de cada hash para que a transação alcance os níveis de segurança exigidos numa blockchain, garantindo ao mesmo tempo que a transação não seja processada mais de uma vez. Ao adicionar um nonce à hash criada anteriormente, o valor da nova hash seria o indicado na tabela abaixo.

Send money to John 456

Hash: a133caf633a12915b56a701e9300ee75

Send money to Alice 15

Hash: dc9c0eace34bc5094d100d8fbd02f775

Table 3: Exemplo do uso de nonces na geração de hashes

Assim como para criar um nonce, não existe uma formula para calculá-lo.

Já alguma vez ouviu falar de mineração de bitcoins ou outra moeda digital? Esse é o processo de cálculo do valor de um nonce.

É uma operação complexa que mineradores de moedas digitais tentam resolver – recorrendo ao uso de vários computadores e GPU’s – e quando solucionada são remunerados com a moeda (bitcoin ou outra).

Você pode customizar os valores das hashes geradas para que suas operações sejam facilmente identificadas, mas isso torna o processo de geração de nonces mais complicado. Os nonces usados no exemplo acima (456 e 15) adicionam 75 no fim do valor de cada hash gerada.

Para adicionar ainda mais segurança as transações realizadas na blockchain, uma timestamp é adicionada á cada bloco. Uma timestamp é uma forma de agrupar suas operações e lista-las em função de sua ordem de chegada – qual chegou primeira e qual foi a última. Ao adicionar uma timestamp, você declara que criou certo bloco antes de outra pessoa e isso lhe da todos os direitos sobre o bloco e prioridades sobre a outra pessoa.

Estes níveis de segurança adicionados aos blocos (nonces ou timestamps) são imutáveis, o que significa que todas as pessoas interessadas em quebrar o valor de uma hash tem as mesmas chances á disposição.

Para rastrear e armazenar as alterações feitas em transações e bens, blockchain usa um Ledger File (uma espécie de livro de registros digital), onde são gravados os registros de todas as transações que ocorrem.

Cada ledger file é considerado um bloco (block) que quando interligados (linked) formam uma cadeia (chain) daí o nome Blockchain.

Um ledger file não é armazenado num servidor central, mas sim distribuído numa rede de computadores espalhados pelo mundo. Cada um desses computadores é designado um Node e eles contém uma cópia do ledger file.

A cada transação que ocorre, cada node age como provedor de inputs e outputs ou como um assinante e publicador. Para tornar as coisas claras, pense em torrents. Por um lado, temos o processo de leeching (onde você baixa ficheiros de diferentes servidores e se torna um leecher/ assinante) e por outro lado, o processo de seeding (onde as pessoas baixam os ficheiros de seu servidor, fazendo de si um seeder/ publicador). Ambos processos seguem princípios similares aos das redes descentralizadas que dão suporte a blockchain.

A arquitetura descentralizada da blockchain garante que a tecnologia continue a funcionar (e você tenha acesso a informação desejada) sem depender de um único servidor. Esta também garante que haja confiança e segurança nas transações ao permitir que apenas computadores verificados na rede (os que conseguirem resolver puzzles criptográficos complexos) armazenem e compartilhem informações especificas.

Infelizmente, a grande desvantagem de usar um sistema descentralizado é que “quando as coisas ficam feias” não se tem a quem culpar. E também tem problemas relacionados a manutenção, atualizações e escalabilidade.

Quanto custa para manter um sistema blockchain?

Diferentemente de aplicações centralizadas, aplicações baseadas em blockchain devem consultar, (re)escrever e compartilhar bases de dados várias vezes entre os servidores conectados, demandando muito tempo e energia para processar alterações, sempre que forem feitas.

Sou forçado a atualizar meu sistema?

Nop! Atualize-o se quiseres.

Infelizmente, os computadores integrados na rede blockchain não são forçados a atualizar seu hardware ou software. Todas atualizações são feitas voluntariamente. Assim sendo, suas aplicações devem ser desenvolvidas sabendo que a performance vai depender das especificações do servidor que as alojar.

Servidores centralizados não encarram este problema, pois estes podem ser atualizados quando o gestor quiser e dependendo das especificações demandadas pelo seu novo sistema.

Como escalar um sistema em blockchain?

A melhor performance de um sistema baseado em blockchain é alcançada quando as mudanças são adoptadas por vários nodes. Mas alto número de nodes torna-se um problema quando você deseja implementar alterações. Num sistema descentralizado você deve “esperar” pela aprovação de milhares, senão milhões, de usuários para fazer uma transação ou atualização. Enquanto que num sistema centralizado, você pode imaginar as alterações desejadas e implementa-las quase que instantaneamente (sem depender da aprovação de ninguém).

Como a blockchain vem sendo usada?

Imagem: Dispositivo USB de Bitcoin

Image 1: Dispositivo USB de bitcoin (conceito). Fonte: Pexels

Embora a tecnologia blockchain seja famosamente associada ao bitcoin e outras criptomoedas, esta vem sendo testada e usada em várias industrias e aplicações, tais como armazenamento de ficheiros, proteção de propriedade intelectual, internet das coisas, gestão de dados, venda e compra de ações, governança, redes sociais e verificação de identidades.

Armazenamento de ficheiros

Armazenar ficheiros em vários servidores, opostamente de serviços de nuvem centralizados tais como o Google Drive ou Dropbox, lhe protegem de perder todos seus dados em casos de hacking. Um sistema descentralizado de armazenamento de ficheiros na nuvem é mais difícil de ser hackeado do que sistemas centralizados (lembra dos níveis de segurança exigidos pela tecnologia blockchain apontados acima?).

Num sistema descentralizado de armazenamento na nuvem, o ficheiro é “quebrado” em pequenas partes distribuídas entre diferentes computadores na rede. Porque cada ficheiro carrega consigo uma chave privada (a hash), ninguém consegue acessar a informação armazenada e por mais que alguém consiga quebrar a chave, o hacker só consegue aceder a uma parte da informação, não sua totalidade (precisado hackear todos os outros computadores para ter a informação completa).

Alguns serviços descentralizados de armazenamento em cloud disponíveis são o IPFS/ Filecoin, Sia, Storj, Maidsafe e Swarm.

Proteção de propriedade intelectual

Manter seu conteúdo seguro e impossível de ser redistribuído sem sua permissão online é difícil. A violação de direitos autorais é difícil de rastrear no meio digital e quando identificadas, as batalhas jurídicas tornam-se um processo difícil de continuar e vencer, a menos que você seja um cantor famoso ou uma grande empresa.

Usando as timestamps e imutabilidade dos blocos da blockchain, projetos como po.et e RightsChain tem permitido que criadores e distribuidores de conteúdo e provedores de serviços digitais comprovem a originalidade de suas ideias, descubram e curem conteúdo de forma rápida.

Ao ser implementada neste ramo, blockchain permite ainda que suas ideias não sejam compartilhadas por fontes com má reputação, impedindo assim que você seja associado a meios de comunicação contraditórios às suas ideias ou valores.

Internet das coisas

A internet das coisas é uma rede de dispositivos interconectados, interagindo e compartilhado dados entre si.

Cada dado colhido na IoT (internet of things = Internet das coisas) é coletado e partilhado usando sensores, chips, atuadores e software embutidos em dispositivos físicos.

O número crescente de dados para ter um sistema de IoT funcional e questões relacionadas à sua segurança e armazenamento são problemas que a blockchain pode resolver fazendo uso de seu sistema descentralizado e o poder das chaves privadas.

A arquitetura descentralizada da blockchain garante que dispositivos interconectados no ambiente de IoT possam transferir informações entre si de forma segura, rápida e transparente.

Gigantes da tecnologia como a IBM e a Microsoft oferecem plataformas de desenvolvimento de sistemas de IoT integrados com a tecnologia blockchain. Outras startups tais como a Chronicled, Hypr e Grid++, têm também usado a blockchain em seus projetos de IoT de forma admirável.

Gestão de dados

O ecossistema privado oferecido pela blockchain permite que usuários compartilhem seus dados pessoais na rede, enquanto se mantem anônimos e aprovem quem pode ou não ver tal informação.

Startups hoje em dia pagam pelo uso de dados pessoais gerados de diferentes fontes. Desde pesquisas cientificas, à informação relacionadas a poluição colhidas de sua cidade, à dados colhidos de sensores de seu carro ou outros dispositivos, o mercado para você vender informações sobre si tem crescido de forma exponencial.

Neste tipo de transações, quando a informação é vendida para uma empresa, esta não pode ser revendida para outra, e apenas os nodes com as chaves certas poderão ter acesso a seu conteúdo.

Startups neste grupo incluem a CoverUS, Datapace, Streamr e a Cybervein.

Compra e venda de ações

Através do uso de contratos inteligentes1, a tecnologia blockchain remove intermediários tais como investidores, corretores, advogados, contabilistas e instituições governamentais que poderiam tornar o processo de compra e venda de ações e derivativos demorado.

Blockchain tem o potencial de reduzir o tempo necessário para processar pagamentos, para quase que instantâneo, assim como verificar e aprovar operações transfronteiriças de forma rápida.

Governança

A tecnologia blockchain é capaz de manter informações e registros públicos tais como datas de nascimento, atestados de óbitos, licenças e informação de empresas em segurança e protegê-las de alterações não aprovadas, falsificações ou uso para atos de corrupção.

A adopção da blockchain por instituições governamentais integra confiança e transparência em processos públicos tais como segurança pública, eleições, sensos e demais estatísticas públicas.

O governo de Dubai tem feito uso da blockchain para construir uma cidade que oferece “experiências interligadas, seguras, eficientes e impactantes” a seus visitantes. O governo de Singapura e da República da África do Sul têm usado esta tecnologia para revolucionar seus sistemas bancários. O Reino Unido tem testado o uso da blockchain para melhorar o registo de títulos de propriedade de terras e venda de imóveis.

Redes sociais

Nos anos que se seguem a blockchain tirará o controle e poder das empresas por trás das principais redes sociais. Usuários terão a oportunidade de escolher que tipo de dados estes desejam partilhar publicamente e até mesmo vender.

Usuários poderão produzir e distribuir seu conteúdo por vários servidores, garantindo que este não seja censurado e suas contas bloqueadas ou removidas por não seguirem com os termos definidos pelas redes sociais.

Blockchain permitirá também que produtores de conteúdo tenham controle sobre quando e onde seu conteúdo é distribuído, e permitirá que estes façam mais dinheiro ao não ter que depender e pagar às empresas de redes sociais por ads.

Alguns projetos desenvolvidos nesta área são o Steemit, D.tube, SocialX, Minds, Indorse e Diaspora.

Verificação de identidades

Blockchain pode ser usado para a gestão da identidade digital e garantir a segurança e privacidade de dados pessoais.

A tecnologia blockchain é difícil de hackear e para tentar quebra-la hackers precisariam recorrer a hardwares avançados e muita capacidade de energia elétrica que não perderiam seu tempo preparando.

Como mencionado acima, a blockchain tira o armazenamento de dados pessoais de empresas centralizadas e distribui-os entre vários indivíduos na internet, tornando o trabalho de hackers complicado.

A distribuição de blocos imutáveis e a posse de uma chave privada permitem que você prove facilmente sua identidade e propriedade da transação.

Outra forma que se pode recorrer a blockchain para provar sua identidade é através do uso de protocolos para Provas de Conhecimento Zero (Zero-Knowledge Proof – ZKPs). Ao usar este método, você prova sua identidade sem ter que revelar muitos detalhes pessoais.

Durante o processo de identificação, você (provador) deve desempenhar tarefas especificas que lhe são atribuídas pelo verificador. Somente você pode desempenhar esta tarefa e quando finalizada, o verificador permitirá que certa transação ocorra. Pela complexidade deste tipo de verificação, a primeira vez que você executar tal tarefa será demorada, mas quanto mais você for exposto ao desafio, mais rápido você responderá. Isso é também válido caso você use algoritmos para resolver seu problema. Este se tornará mais rápido quanto mais vezes for exposto ao desafio.

Blockchain tem a capacidade de verificar a identificação de usuários de forma rápida. Essa é uma vantagem que bancos, empresas de seguro e saúde, entre outras estão aproveitando.

Blockpass e provable são dois exemplos de startups acelerando o desenvolvimento desta área.

Notas Finais

Blockchain é uma tecnologia com grande potencial de reordenar e acelerar o crescimento de várias indústrias. Sua capacidade de manter registros de cada operação feita em blocos imutáveis traz mais segurança e privacidade à navegação de usuários na internet.

Este é um ramo por ser mais explorado e desenvolvido. Contudo seu potencial já pode ser disfrutado de diversas formas.

Este artigo é apenas uma descrição do essencial sobre blockchain. Artigos adicionais, com dicas práticas serão escritos. Entretanto, se dê um tempo para conhecer as tecnologias mencionadas acima.

Anotações

  1. A tecnologia blockchain usa contratos inteligentes para automaticamente executar transações assim que os termos e condições entre as partes forem aceites. Sua função é similar à dos contratos físicos. A única diferença é que os contratos inteligentes são um conjunto de operações algorítmicas.

Reaja!

Junte-se a conversa deste tópico no Facebook e Instagram.

Aprenda mais sobre a IA com nossa newsletter

Assine nossa lista de emails hoje e passe a receber as mais recentes informações sobre IA e outras tecnologias no seu email