FGF-College-Work / Forum

:beer: Espaço dedicado a discussões e tira dúvida sobre disciplinas e conteúdo tecnológico.
MIT License
13 stars 4 forks source link

Blockchain, Bitcoin, Hyperledger. Não é tudo a mesma coisa? #70

Open marcialwushu opened 6 years ago

marcialwushu commented 6 years ago

O objetivo desse artigo é aprofundar um pouco mais como blockchain surgiu, suas principais diferenças concentuais e como a IBM está posicionada nesse mercado. Tomarei a liberdade de escrever em “blocos”, sem nenhuma alusão ou coincidência ao tema proposto, mas sim, uma forma de tentar facilitar a leitura.

O que é Blockchain?

O mercado ultimamente tem falado muito sobre tecnologias de “ledger distribuído” ou Blockchain, e como isso irá transformar qualquer rede de negócios, elevando os níveis de confiança por toda cadeia, melhorando significativamente os processos chave de uma organização.

Vamos então inicialmente definir blockchain: De forma simplificada Blockchain é um banco de dados descentralizado, uma forma de trabalhar um conjunto de computadores que pertencem a indivíduos diferentes publicando aquele grupo informação. Basicamente entradas que são inseridas a um registro (conhecido como “ledger”) e esse registro é uma parte de um “distributed ledger” de uma cadeia de blocos “Blockchain”, e publicado através de uma linguagem de programação específica. Esse conceito já vem de artigos dos anos 80 sobre computação distribuída cujo objetivo, na época, era escalar processamento visando mais performance em bancos de dados. Isso ficou meio esquecido até Satoshi Nakamoto, em 2009, sugerir a combinação de um mecanismo consensual de que todos naquele círculo concordassem com a próxima conexão na cadeia, ou entrada no ledger.

Posto isso, faz-se necessário definir o problema de negócio ou oportunidade almejada, mapear os processos que podem ser transformados e finalmente qual a tecnologia blockchain a ser escolhida.

Existe de forma simplificada 2 caminhos. Buscar tecnologias baseadas nos conceitos de blockchain que endereçam desafios específicos para cada indústria (aqui existem mais de 70 espalhadas pelo globo). Ou um “framework” de blockchain como o Hyperledger. A partir desse “framework”, desenvolvedores escrevem seu próprio código para a cadeia. A IBM tem sido um contribuidor chave para o Hyperledger, que foi iniciado pela “The Linux Foundation” possuindo diversos projetos. Dessa contribuição, nasceu o “Hyperledger Fabric” que foi desenhado de forma a permitir que as empresas controlem como e onde suas transações são verificadas objetivando escala e privacidade. Isso permite suportar grandes redes com uma segurança e privacidade em toda cadeia principalmente para volumes elevados de transações.

Tratarei mais a frente a iniciativa do “The Linux Foundation” aprofundando mais e demonstrando suas vantagens.

Qual a diferença de Bitcoin e Blockchain?

Redes de blockchain chamadas “permissioned” trabalham com o conceito que cada participante executa sua transação, mantém um ledger que sempre é atualizado e visível a todos os participantes, porém com a necessidade de um consenso. Porém esse modelo não escala muito bem, pode ter lentidão, e principalmente não suportar transações privadas com graus de confidencialidade elevada. Após essa contextualização inicial, podemos endereçar a pergunta acima.

Bitcoin é uma cripto-moeda criada em 2009 com o objetivo de simplificar transações financeiras online contornando órgãos regulamentadores e bancos. Funciona de forma a armazenar uma transação financeira através de uma rede blockchain que conecta um participante a outro sem a necessidade de um repositório fiscal central. Aqui vale reforçar, que Bitcoin não é o blockchain, pois ele é transacionado através de uma rede que conceitualmente segue alguns preceitos do blockchain, porém totalmente anônima e pública. Complexo hein?

Simplificando, blockchain seria o sistema operacional e bitcoin uma de muitas aplicações que roda nesse sistema.

O blockchain que roda “por baixo” da aplicação Bitcoin não é o mesmo blockchain voltado ao mercado corporativo apesar de algumas similaridades fundamentais, porém diferenças chave.

Ambos trazem eficiência em custo, aumentam a velocidade das transações e reduzem custos operacionais adicionais (overheads). São muito eficientes posto que cada transação fica gravada sendo visível a todos os participantes da rede trazendo imunidade a fraudes, ou seja, a transação uma vez gravada não pode ser alterada, pode sim, ser revertida com outra transação, que no caso também ficará visível a toda rede. Agora o blockchain que roda por baixo da aplicação Bitcoin é limitado de algumas formas: ele foi desenhado somente para transacionar cripto-moedas, totalmente aberto e público, o que significa que qualquer um pode participar e ter a visibilidade de cada transação que se passa nessa rede. Além disso é anônimo, o que significa que é quase impossível saber a identidade de quem está envolvido na transação. Por conta disso, ele requer uma criptografia muito pesada a fim de evitar alguma ação fraudulenta dentro da rede, gerando um custo de alta necessidade de processamento computacional. Com isso surgem problemas, como eficiência, confidencialidade, segurança e confiança ao se fazer uma transação, especialmente em indústrias regulamentadas.

O Hyperledger Fabric – o “outro blockchain”!

Daí surge o conceito de Hyperledger Fabric – que entrega uma base realmente escalável, segura e modular para soluções de blockchain corporativas, permitindo transacionar qualquer tipo de ativo tangível (um produto) e intangível como uma patente, direitos autorais (vídeo ou fotos). A principal diferença está em ser privada e os participantes pertencentes saberem exatamente quem é cada um deles e os negócios que estão sendo executados. Além disso roda via “smart contracts” o que significa que existe uma camada lógica de negócios que reduz as disputas e eleva a confiança entre os participantes.

O Hyperledger começou através de uma ideia para reduzir essa estrutura de dados subjacente, seguindo a tecnologia de “distributed ledger”, e plataforma de contratos inteligentes, porém permitindo que fosse utilizada para o mundo corporativo. Muitas pessoas que iniciaram o projeto vieram do setor empresarial, como bancos, onde percebeu-se a necessidade de um banco de dados de múltiplos agentes distribuídos, de forma a separar isso das criptomoedas.

Projeto começou em 2015 com conversas entre IBM, Wells Fargo, JP Morgan, Intel e outros se inserindo na “Linux Foundation” com o propósito de construir tecnologias focadas em blockchain. Especialmente porque Bitcoin e aetherium estavam a frente com coisas interessantes e uma imensidão de projetos “open source”. A partir desse cenário – qual seria uma forma de abordagem otimizada, colaborativa e padronizada? A partir disso surgiu um framework, um pouco inspirada na “Apache Software Foundation”, de plataformas e bibliotecas onde qualquer desenvolvedor pode construir e rodar suas aplicações. Outro elemento era garantir o engajamento desses desenvolvedores e provedores de tecnologia de forma a promover a solução publicamente e construir um ecossistema fomentando quase que um círculo virtuoso, garantindo resiliência e praticidade buscando sempre valor da solução.

Além disso, a infraestrutura é um componente indispensável, portanto como hospedar e sustentar os componentes seguindo as melhores práticas de mercado. Existem outros modelos de comunidades que foram construídos tais como “cloud foundry”, “nodejs”, “ZEN”.

Atualmente o Hyperledger possui mais de 85 membros (empresas suportando o projeto), seja de forma financeira, seja participando com tecnologias, seja usando o código ou contribuindo na construção do mesmo, trazendo melhorias, e ajuda rápida com potenciais “bugs”. Qualquer um pode usar o código, modificá-lo e redistribuí-lo se tornando parte da comunidade sem custo algum. Essas são empresas que acreditam no propósito do projeto. Alguns pontos relevantes estão atrelados a sinergias criadas pelo modelo, tais como, apesar de serem times de desenvolvedores desenvolvendo código aberto, cada um segue seu time-frame e roadmap, mas todos precisam seguir padrões e políticas encorajando a comunidade a estar alinhada aos diferentes projetos, utilizando softwares em comum, padrões de framework de IP, ferramentas de colaboração (Gerrit, Jira, Slack), promovendo equidade dos projetos e finalmente seguindo as melhores práticas e padrões de segurança.

Outra crença é que não haverá somente um blockchain, “The blockchain” – que é uma crença advinda das criptomoedas - tipo um TCP/IP – um protocolo que levou mais de 20 anos para migrar da versão 4 para versão 6, e somente um terço do mundo migrou para essa última. Posto a necessidade de versatilidade e velocidade, o modelo adequado é baseado em diversos blockchains, sejam eles públicos onde por exemplo surgirão novas criptomoedas, ou privados com particularidades desenhadas para aquele mercado específico, porém potencialmente com diferentes mecanismos de consenso, preferencialmente com linguagens ou mecanismos comuns.

Hiperledger Fabric é baseado em um mecanismo de consenso denominado “Practical Byzantine fault tolerance” – o conceito é como se decide o próximo link na cadeia, através de um consenso de todos os participantes, porém ele é aberto a outros mecanismos de consenso poderem se conectar. A IBM desenvolveu esse código escrito em “go” uma linguagem de programação e desde seu desenvolvimento surgiram outros contribuidores como DTCC, Bolsa de Valores de Londres e muitos outros “open source”.

Existe outro projeto chamado “Sawtooth Lake” que utiliza uma metodologia chamada “Proof of Elapsed Time”e o código está escrito em Python. Porém não vamos adentrar esse assunto, pois existe bastante informação aqui também.

Por fim, normalmente comunidades tecnológicas olham 3 aspectos: Padrões como IETF ou ISO, Governança Global como ICANA e IANA e por fim “Implementadores” que são as comunidades que estão disponíveis para melhorar o código, encontrar falhas e corrigi-las. Quando comparamos com as cripomoedas – existe padrões e governança, porém quando se trata de melhorias isso se torna um desafio. Posto isso, jamais se verá algum tipo de cryptomoeda advinda dessas comunidades como a “Linux Foundation” que acaba se tornando uma base de desenvolvedores dispostos a sempre melhorar o código e não possui interesses pessoais e financeiros atrelados a especulação.

Um exemplo – uma empresa chamada “Ever Ledger” que está trabalhando com a De Beers e outros na indústria de diamantes com objetivo de construir um blockchain para ter visibilidade de todo o caminho de um diamante dentre os diferentes “players”, desde sua extração até o momento que é vendido a um distribuidor, que vende a outro, até chegar a uma loja e ser vendido a um cliente final. Todos irão escrever nesse blockchain gerando um número de série que é gravado no “ledger” e qualquer alteração é atualizada. Isso faria com que os “diamantes de sangue” ficassem fora dos principais mercados. E esse é o ponto de ter uma cadeia, pois deixa-se de ter documentos, seja em papel ou eletrônicos que dificilmente serão atualizados e correm o risco de se perder ou até mesmo serem adulterados durante o processo. Mesmo que toda documentação esteja correta, pode-se levar semanas para encontrar a origem e destino final do ativo, com o blockchain faz-se isso quase que instantaneamente. E isso não está de forma alguma atrelado ao preço do bitcoin. Isso é algo que somente os participantes tem o controle, podendo até se tornar uma cadeia publica.

Caso de uso prático mais detalhado.

No Hyperledger Fabric os participantes são categorizados de 3 maneiras distintas: endossante (aquele que endossa), comitente ou constituinte (aquele que dá comissão ou encargo, ou dá ordens de compra e o consente (que permite, que não coloca obstáculo).

Vamos olhar algo prático – imagine um grande varejista localizado na Europa, que adquire milho que é plantado no Brasil. Ambos pertencem a uma rede blockchain que é suportado por diferentes agentes pertencentes a esse setor tais como: outros varejistas, distribuidores, agentes logísticos, agentes alfandegários, seguradoras, bancos, etc. Vamos imaginar que o produtor de milho resolve vender uma parte da safra com um preço inferior ao praticado para um varejista especifico, porém, a estratégia do produtor é vender o restante da safra aos demais varejistas pelo preço corrente normal. Nesse momento, essa transação precisa de confidencialidade entre esses dois participantes, sem os demais varejistas terem os detalhes desse negócio. De fato, se os demais varejistas não fazem parte dessa transação específica realmente não tem direito ou necessidade de saber. Nesse exemplo é gerado a transação somente entre os participantes “peers”, cujo resultado precisa ser de comum acordo entre eles. Após o resultado acordado isso retorna à aplicação que envia a “consensus cloud” para fazer o pedido, e então a ordem retorna de volta aos “peers” sendo gravado no “ledger”. Porém para essa safra de milho chegar ao destino, necessita de outros participantes, como o agente alfandegário, o operador logístico e o banco. Esses precisam saber que a transação foi verificada e legitimada, e atualizar seus ledgers com as informações relevantes ao seu tipo de prestação de serviço, exceto o valor praticado entre os participantes (plantador de milho e o varejista que acordaram um preço inferior a média).

Conclusão

Agora imagine isso em uma rede de escala com todos os mercados, por exemplo, toda a cadeia de suprimentos. Extrapole isso para mercados que tratam dados confidenciais tais como saúde, manufatura, dentre muitos outros, sem a necessidade de ter que passar por uma autoridade central, daí surgem os benefícios do blockchain sendo mais eficiente e seguro.

O assunto é complexo, e muitas vezes pode trazer confusão, mas trará uma inovação e mudança nas organizações possivelmente maior do que a Internet trouxe.

O posicionamento da IBM foi construir uma plataforma empresarial robusta, com aspectos de segurança elevados, que seja flexível para diferentes indústrias ou necessidades. A facilidade de iniciar um projeto, com planos para desenvolvedores, ferramentas de governança se encontra tudo integrado na IBM Cloud.

https://pt.linkedin.com/pulse/blockchain-bitcoin-hyperledger-n%C3%A3o-%C3%A9-tudo-mesma-coisa-araujo

marcialwushu commented 6 years ago

http://computerworld.com.br/sawtooth-conheca-o-projeto-do-hyperledger-para-blockchain-corporativo

http://blog.rivendel.com.br/2017/07/13/fabric-1-0-hyperledger-lanca-primeiro-software-de-blockchain-open-source-pronto-para-producao/

marcialwushu commented 6 years ago

https://github.com/CATechnologies/blockchain-tutorials/wiki/Tutorial:-Hyperledger-Fabric-v1.1-%E2%80%93-Create-a-Development-Business-Network-on-zLinux

marcialwushu commented 6 years ago

https://www.ibm.com/developerworks/br/cloud/library/cl-model-test-your-blockchain-network-with-hyperledger-composer-playground/index.html