Blockchain
A blockchain (também conhecido como “o protocolo da confiança”) é uma tecnologia de registro distribuído que visa a descentralização como medida de segurança.[1] São bases de registros e dados distribuídos e compartilhados que têm a função de criar um índice global para todas as transações que ocorrem em um determinado mercado. Funciona como um livro-razão, só que de forma pública, compartilhada e universal, que cria consenso e confiança na comunicação direta entre duas partes, ou seja, sem o intermédio de terceiros. Está constantemente crescendo à medida que novos blocos completos são adicionados a ela por um novo conjunto de registros. Os blocos são adicionados à blockchain de modo linear e cronológico. Cada nó - qualquer computador que conectado a essa rede tem a tarefa de validar e repassar transações - obtém uma cópia da blockchain após o ingresso na rede. A blockchain possui informação completa sobre endereços e saldos diretamente do bloco gênese até o bloco mais recentemente concluído.
A blockchain é vista como a principal inovação tecnológica do bitcoin visto que é a prova de todas as transações na rede. Seu projeto original tem servido de inspiração para o surgimento de novas criptomoedas e de bancos de dados distribuídos.
Definição
Blockchain é um tipo de Base de Dados Distribuída[2] que guarda um registro de transações permanente e à prova de violação. A base de dados blockchain consiste em dois tipos de registros: transações individuais e blocos.
Um bloco é a parte concreta da blockchain onde são registrados algumas ou todas as transações mais recentes e uma vez concluído é guardado na blockchain como base de dados permanente. Toda vez que um bloco é concluído um novo é gerado. Existe um número incontável de blocos na blockchain que são ligados uns aos outros - como uma cadeia - onde cada bloco contém uma referência para o bloco anterior.
História
O primeiro trabalho em uma cadeia de blocos criptograficamente segura foi descrito em 1991 por Stuart Haber e W. Scott Stornetta. Eles queriam implementar um sistema em que os registros de data e hora dos documentos não pudessem ser violados ou retroativos. Em 1992, Bayer, Haber e Stornetta incorporaram as árvores Merkle ao projeto, o que melhorou sua eficiência ao permitir que vários documentos fossem coletados em um único bloco.
Apesar dos primeiros estudos que originaram o conceito Blockchain ocorrerem no início da década de 90, a primeira rede blockchain foi definida pela primeira vez no código fonte original do bitcoin. Portanto, estão intimamente ligados no que diz respeito ao surgimento de ambos.
A definição original foi criada em 2008 com a publicação do artigo "Bitcoin: A Peer-to-Peer Electronic Cash System" publicado por Satoshi Nakamoto (cuja real identidade permanece em aberto apesar de haver algumas especulações e pronunciamentos a respeito). Em 2009 o código foi lançado como código aberto.
Assim, em 2009 começa a rede do bitcoin quando Satoshi Nakamoto minerou os primeiros bitcoins. Satoshi Nakamoto desaparece então em 2011 do público - isto é, dos fóruns, artigos e contribuições de código acerca do bitcoin. Mas mesmo com a ausência de Satoshi Nakamoto, o bitcoin continuou a ser desenvolvido e mercantilizado, com o esforço da comunidade em geral trabalhando para resolver diversos problemas no código - incluindo, por exemplo, uma bifurcação na rede que originou o Bitcoin Cash.
Sendo a base tecnológica das criptomoedas, a blockchain tem recebido o interesse de bancos, empresas e organizações governamentais. Desde então, modificações tem sido feitas a partir da versão original e novas aplicações tem sido atreladas à blockchain.
Em 2014, surge o termo "Blockchain 2.0" usado para descrever um novo projeto no campo de banco de dados distribuído da blockchain.
Em 2015, o jornal The Economist descreveu uma das implementações da segunda geração da blockchain, o Ethereum, como "uma linguagem de programação que permite usuários escreverem contratos inteligentes mais sofisticados [...]". Tal sacada permitiria a formação de "organizações autônomas descentralizadas" (DAO), companhias virtuais baseadas apenas em um conjunto de regras provenientes desta nova geração da blockchain.
Em 2016, foi previsto o montante de 1 bilhão de dólares em investimento em tecnologia ligada à blockchain, pelo mercado financeiro, segundo pesquisa do jornal CCN.
A evolução da blockchain tornou possível também o surgimento de conceitos distribuídos de blockchain, tal como a sidechain, que permitiria uma maior diversidade de blockchains sem comprometer a comunicação entre elas. Este é um conceito importante já que prepararia a rede para uma iminente tendência de diversificação já que diferentes empresas têm trabalhado na implementação de sua própria blockchain.
Descrição
Blockchain é um banco de dados distribuído que teve seu primeiro destaque como base de funcionamento do bitcoin. Blockchain é, portanto, um livro-razão público que é composto por duas partes: uma rede peer-to-peer e um banco de dados distribuído descentralizado.
Rede Peer-to-peer
De um modo geral e simples, uma rede P2P é uma arquitetura de computadores ou redes que compartilha tarefas, trabalho, ou arquivos entre pares (peers). Pares são parceiros na rede com iguais privilégios e influência no ambiente. Em uma rede P2P cada computador ou usuário é chamado de nó e coletivamente eles compõem uma rede P2P de nós.
A rede P2P na blockchain consiste de uma série de computadores e servidores onde cada um atua como um nó na rede. Quando uma nova mensagem entra na rede, a informação nesta mensagem é propagada entre todos os nós da rede P2P. A informação é normalmente encriptada e privada e não há como rastrear quem adicionou a informação na rede apenas verificar sua validade.
Banco de dados distribuído e descentralizado
A rede como um todo é descentralizada o que significa que não há um ponto único de falha no sistema. Se um nó deixa a rede, outros nós já tem armazenado uma cópia exata de toda a informação compartilhada. De modo inverso, se um nó entra na rede os nós iniciais imediatamente criam cópias de suas informações para o novo membro.
Blocos e Transações
O bloco gênese é codificado no software e serve como o estado inicial do sistema. Ele pode conter informações sobre as regras ou instruções sobre o banco de dados restante.
Feito isto, o banco de dados é formado a partir de uma série de blocos que juntos formam uma cadeia. É deste ponto que surge o nome 'cadeia de blocos' (blockchain). Cada bloco na cadeia contém informação ou transações. À medida que se adicionam transações, sua informação é guardada no bloco de acordo com o momento que ela foi processada. Esta combinação de informação e tempo cria um livro-razão que documenta valor ou outros recursos no banco de dados.
Após as transações serem empilhadas no bloco, uma assinatura ou "hash" é adicionada no final do bloco. O hash é linkado ao bloco anterior da cadeia. Estes hashes formam as ligações voltando entre as cadeias até chegar ao bloco gênese.
O hash inclui o número do bloco atual e o número do próximo bloco da cadeia. Também inclui a data e o momento que foi assinado além da quantidade de transações inclusas no bloco presente. O hash apresenta-se como uma chave encriptografada.
Algoritmo de Consenso
No Blockchain, o algoritmo de consenso é utilizado para resolver o problema de confiança, ou seja, nenhum dado inserido pode ser apagado e todas as novas inserções devem ser acreditadas por todos. Para isto, deve ser utilizado uma regra (algoritmo) que rege a inclusão de novos dados.
Somente pode ser considerado que um novo bloco foi criado (minerado) caso este atenda “também” a regra definida pelo Algoritmo de Consenso, sendo assim, o novo bloco é incluído no Blockchain, tornando os novos dados públicos.
Outro ponto importante é que a definição de um Algoritmo de Consenso faz com que as decisões sobre o que será inserido do Blockchain não dependam de nenhuma entidade centralizadora, garantindo assim a sua independência.
Também por meio destas regras, cada usuário da rede tem a capacidade de verificar a autenticidade de cada bloco contido na Blockchain e constatar por si só a autenticidade de todos os dados nele inseridos. Desta forma, ninguém precisa confiar em ninguém, pois a referida verificação faz com que cada usuário tenha a confiança na Blockchain.
Existem diversos algoritmos de consenso, os quais se pode citar:
-
PoW – Proof-of-Work (prova de trabalho): este algoritmo provoca uma competição entre os computadores ligados a Blockchain para ver quem será o primeiro a encontrar um hash respectivo ao novo bloco considerando a dificuldade imposta, fazendo com que os computadores com mais poder computacional tenham maiores probabilidades de “minerar” um novo bloco;
-
PoS – Proof-of-Stake (prova de participação): a mineração de novos blocos por este algoritmo ocorre pela votação dos participantes da rede que possuem “ativos digitais” (da Blockchain que o utiliza), onde as recompensas e o peso dos votos estão diretamente relacionados com a quantidade de ativos de cada participantes;
-
DPoS – Delegated-Proof-of-Stake (prova de participação delegada): este algoritmo é similar ao PoS, porém os participantes não votam diretamente se um bloco é válido ou não, ou seja, os participantes votam em Delegados e Testemunham que votarão por eles.