Como identificar um blockchain incompleto PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Como identificar uma blockchain meio cozida

Quando correntes e blocos não servem a nenhum propósito útil

Cerca de 18 meses se passaram desde que o setor financeiro acordou, em massa, para as possibilidades de blockchains permitidos ou, para usar o termo mais geral, “livros-razão distribuídos”. O período desde então testemunhou um tsunami de atividades, incluindo relatórios de pesquisa, investimentos estratégicos, projetos-piloto e a formação de muitos consórcios. Ninguém pode acusar o mundo bancário de não levar a sério o potencial desta tecnologia.

Naturalmente, o crescimento explosivo em projetos de blockchain impulsionou o desenvolvimento de plataformas de blockchain permitidas, nas quais esses projetos são construídos. Por exemplo, nosso produto MultiChain triplicou em uso no ano passado, independentemente de medirmos o tráfego da web, downloads mensais ou consultas comerciais. E, claro, existem muitas outras plataformas, como BigChainDB, Cadeia, Corda, Créditos, elementos, Eris, tecido, Ethereum (implantado em uma rede fechada), HydraChain e Cadeia aberta. Sem mencionar ainda mais startups que desenvolveram algum tipo de plataforma de blockchain, mas não a disponibilizaram publicamente.

Para empresas que desejam explorar e compreender uma nova tecnologia, uma abundância de opções geralmente é uma coisa boa. No entanto, no caso de blockchain, que ainda permanecem vagamente definidos e mal compreendidos, essa cornucópia vem com uma desvantagem significativa: muitas das plataformas “blockchain” disponíveis não abordam realmente o problema principal que pretendem resolver. E qual é esse problema? Permita-me citar o sucinto definição de vídeo por Richard Gendal Brown, CTO da R3, na íntegra:

Um livro razão distribuído é um sistema que permite que partes que não confiam totalmente umas nas outras cheguem a um consenso sobre a existência, natureza e evolução de um conjunto de fatos compartilhados sem ter que depender de um terceiro centralizado totalmente confiável.

Para dar um exemplo extremo, considere um monte de tijolos de Lego amarrados com barbante. Se usarmos o termo “cadeia de blocos” para descrever este item de moda, quem pode dizer que não o estamos descrevendo com precisão? E, no entanto, essa cadeia particular de blocos não ajudará várias partes a compartilhar de forma segura e direta um banco de dados sem um intermediário central. Da mesma forma, muitas plataformas “blockchain” fazem algo relacionado a cadeias de blocos, mas também não possuem as propriedades necessárias para servir de base para um banco de dados ponto a ponto.

Como identificar um blockchain incompleto PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.
Outra cadeia de blocos que não ajuda no compartilhamento de banco de dados - fonte.

Blockchain mínimo viável

Para entender os requisitos básicos de um razão distribuído, ajuda a esclarecer como esses sistemas diferem dos bancos de dados regulares, que são controlados por uma única entidade. Por exemplo, vamos considerar um sistema simples para rastrear quem possui ações de uma determinada empresa. O razão, conforme implementado em um banco de dados, tem uma linha para cada proprietário contendo duas colunas: o identificador do proprietário, como seu nome, e a quantidade correspondente de compartilhamentos.

Aqui estão seis maneiras cruciais em que este sistema pode falhar seus usuários:

  • Falsificação: Transferir compartilhamentos de uma pessoa para outra sem a permissão do remetente.
  • Censura: Recusar-se a cumprir o pedido de alguém para transferir algumas ações para outro lugar.
  • Reversão: Desfazendo uma transferência que ocorreu em algum momento no passado.
  • Ilegitimidade: Alteração da quantidade total de ações no sistema sem a correspondente ação do emissor.
  • Inconsistência: Dando diferentes respostas às perguntas de diferentes usuários.
  • O tempo de inatividade: Não está respondendo às solicitações de informações recebidas.

Por causa de todas essas possibilidades, os acionistas devem manter um alto nível de confiança em quem está administrando este razão em seu nome. Construir e administrar uma organização digna dessa confiança envolve muitos problemas e custos.

Blockchains ou livros-razão distribuídos eliminam a necessidade desse tipo de operador de banco de dados central, permitindo que os usuários de um banco de dados interajam diretamente entre si, ponto a ponto. Em nosso exemplo, os acionistas poderiam manter com segurança suas ações em um blockchain que gerenciam coletivamente e fazer transferências uns para os outros instantaneamente ao longo dessa cadeia. (A desvantagem é uma perda significativa de confidencialidade entre os usuários da rede, que não abordaremos aqui, mas já discutido longamente.)

Tudo isso nos traz de volta à questão das plataformas de blockchain. Para servir como uma base viável para compartilhamento de banco de dados ponto a ponto, um blockchain deve proteger seus participantes contra todos os seis tipos de falha de banco de dados - falsificação, censura, reversão, transações ilegítimas, inconsistência e tempo de inatividade. Embora muitos produtos no mercado atendam a esses requisitos, muitos deles ficam aquém. Eu chamo esses blockchains de "meio assados" porque eles podem abordar alguns desses riscos, mas não todos. Em alguns aspectos, pelo menos, os usuários do banco de dados permanecem dependentes do bom comportamento de um único participante, que é exatamente o cenário que queremos evitar.

Essas cadeias de blocos incompletas vêm em uma variedade de variedades, mas três arquétipos se destacam como os mais comuns ou óbvios. Não vou citar produtos individuais porque, bem, não quero ofender. A comunidade de startups do blockchain é pequena o suficiente para que a maioria de nós se conheça por meio de conferências e outras reuniões, e as interações tendem a ser positivas. No entanto, se os blockchains (no sentido de bancos de dados ponto a ponto úteis) vão surgir como uma categoria de produto coerente, é importante distinguir entre soluções incompletas e reais.

O blockchain do validador

Um padrão que vimos algumas vezes é um blockchain no qual apenas um participante pode gerar os blocos nos quais as transações são confirmadas. As transações são enviadas para esse único nó em vez de serem transmitidas para a rede como um todo, de modo que sua aceitação está sujeita aos caprichos dessa parte, e não a algum tipo de consenso da maioria. Ainda assim, uma vez que um bloco tenha sido construído por essa parte central, ele é transmitido para os outros nós da rede, que podem confirmar de forma independente a validade das transações internas e registrar o novo bloco local e permanentemente.

Voltando às nossas seis formas de mau funcionamento do banco de dados, esse tipo de blockchain está longe de ser inútil. As transações devem ser assinadas digitalmente pela entidade cujos fundos movimentam, de modo que não podem ser falsificadas pela parte central. Eles não podem ser revertidos porque cada nó mantém sua própria cópia da cadeia. E as transações não podem realizar operações ilegais, como a criação de ativos do nada, porque cada nó valida independentemente cada transação para correção. Por fim, cada nó mantém sua própria cópia do banco de dados, para que seu conteúdo esteja sempre disponível para leitura.

Infelizmente, quatro em seis não são suficientes. O nó de validação pode facilmente censurar transações individuais, recusando-se a incluí-las nos blocos que cria. Mesmo que os operadores desse nó sejam honestos, uma falha no sistema ou nas comunicações pode torná-los indisponíveis, fazendo com que todo o processamento da transação seja interrompido. Além disso, dependendo da configuração, o nó de validação pode ser capaz de transmitir diferentes versões do blockchain para diferentes participantes. Em termos de censura e consistência, o banco de dados ainda contém um único ponto de falha, do qual todos os outros nós dependem.

Uma plataforma oferece uma reviravolta neste esquema, no qual os blocos são gerados centralmente por um único nó, mas um quorum de outros nós designados os assina para indicar consenso. Em termos de risco de inconsistência, isso certamente ajuda. Os nós no quorum só emprestarão suas assinaturas para uma única versão do blockchain, que pode, portanto, ser considerada como autorizada. No entanto, os nós de quorum não podem ajudar se o gerador de blocos censurar as transações ou perder sua conexão com a Internet. Em última análise, este tipo de blockchain ainda usa uma arquitetura hub-and-spoke, em vez de uma rede ponto a ponto.

O blockchain de estado compartilhado

Tecnicamente falando, existem muitas semelhanças entre blockchains e bancos de dados distribuídos mais tradicionais, como Cassandra e MongoDB. Em ambos os casos, as transações podem ser iniciadas por qualquer nó da rede e devem atingir todos os outros nós como parte de um consenso sobre o estado de desenvolvimento do banco de dados. Tanto os blockchains quanto os bancos de dados distribuídos têm que lidar com a latência (atrasos de comunicação decorrentes da distância entre os nós) e a possibilidade de alguns nós e / ou links de comunicação falharem intermitentemente.

Bancos de dados distribuídos já existem há algum tempo, portanto, qualquer desenvolvedor de plataforma de blockchain faria bem em entender seus algoritmos de consenso e as estratégias que eles usam para ordenar transações globalmente e resolver conflitos. No entanto, é importante não levar a comparação muito longe, porque os blockchains devem enfrentar um desafio adicional crucial - a ausência de trust entre os nós do banco de dados. Considerando que os bancos de dados distribuídos se concentram em fornecer escalabilidade, robustez e alto desempenho dentro dos limites de uma única organização, os blocos de blocos devem ser reprojetados para atravessar esses limites.

Para retornar aos nossos seis tipos de risco de banco de dados, um nó em um banco de dados distribuído precisa apenas se preocupar com o tempo de inatividade, ou seja, a possibilidade de outros nós ficarem indisponíveis. Os nós podem assumir com segurança que todas as transações e mensagens na rede são válidas e não estão preocupados com falsificação, censura, reversão, ilegitimidade ou inconsistência. Seu pior problema é lidar com duas transações simultâneas, mas válidas, iniciadas em nós diferentes, que afetam a mesma parte dos dados. Resolver esses conflitos não é nada trivial, mas ainda é muito mais fácil do que se preocupar com “Falhas bizantinas“, Em que alguns nós agem deliberadamente para interromper o funcionamento de outros.

Um banco de dados só pode ser compartilhado com segurança em limites de confiança se os nós tratam todas as atividades na rede com um certo grau de suspeita. Por exemplo, toda transação que modifica o banco de dados deve ser assinada digitalmente individualmente, uma vez que, em uma arquitetura ponto a ponto, não há outra forma de saber seu verdadeiro ponto de origem. Da mesma forma, cada mensagem recebida, como o anúncio de um novo bloco, deve ser avaliada criticamente quanto ao seu conteúdo e contexto. Ao contrário dos bancos de dados distribuídos, os nós não devem ser capazes de modificar imediatamente e diretamente o estado de outro nó.

Algumas plataformas “blockchain” foram desenvolvidas começando com um banco de dados distribuído e adicionando alguns recursos para torná-los mais blockchainy. Por exemplo, agrupando transações em blocos e armazenando hashes (impressões digitais) desses blocos no banco de dados, eles visam adicionar uma forma de imutabilidade. Mas, a menos que cada nó possa ter certeza de que sua lista de hashes não pode ser modificada por outro nó, esse tipo de imutabilidade é facilmente manipulado. A resposta padrão a essas críticas é que todo problema de segurança pode ser resolvido com tempo e codificação suficientes. Mas isso é como manter alguns prisioneiros em um campo aberto e tentar impedi-los de escapar com arames e valas. É muito mais seguro usar uma estrutura de concreto construída para esse fim, cujas portas estão trancadas e cujas janelas têm grades.

O blockchain de uma nuvem

De longe, o fenômeno mais estranho que já vi são as plataformas de blockchain, que só podem ser acessadas por meio da plataforma como serviço baseada em nuvem do desenvolvedor. Para ser claro, não estamos falando sobre alguns dos participantes de uma blockchain escolha para hospedar seus nós no provedor de nuvem de sua escolha, como e Microsoft Azure or Amazon Web Services. Em vez disso, este é um blockchain que pode ser acessado por meio de APIs expostas pelos servidores de uma empresa que o “hospeda”.

Vamos conceder, para fins de argumentação, que um provedor de blockchain centralizado tem genuinamente um grupo de nós rodando sob seu controle. Que diferença isso faz para os usuários do sistema que estão enviando solicitações de API e recebendo respostas? Os participantes não têm como avaliar se as transações de todos foram processadas sem omissão ou erro. Talvez o serviço central esteja funcionando mal, ou talvez esteja censurando ou revertendo algumas transações deliberadamente. E se você acredita que o provedor de blockchain não tem razão para fazer isso, por que não usá-lo para hospedar um banco de dados centralizado regular? Você obterá um produto mais maduro com melhor desempenho e não sofrerá nenhum dos riscos de trabalhar com novas tecnologias. Em suma, blockchains centralizados são tão úteis quanto Lego em uma string.

Resolvendo o mistério

Já vimos três tipos de plataforma que se comercializam como “blockchains” e, na verdade, fazem algum uso de uma cadeia de blocos, mas que não resolvem o problema fundamental para o qual esses sistemas foram projetados. Para recapitular, isso permite que um único banco de dados seja compartilhado com segurança e diretamente entre os limites de confiança, sem um intermediário central.

Além de apontar para esse fenômeno peculiar, acredito que seja instrutivo considerar o que pode estar subjacente a ele. Por que tantas startups de blockchain estão construindo produtos que não cumprem a promessa dessa tecnologia, muitas vezes alcançando não mais do que bancos de dados tradicionais centralizados ou distribuídos? Por que tantas pessoas talentosas estão perdendo tanto tempo?

Posso ver duas classes principais de explicação - técnica e comercial. Para começar com o aspecto técnico, é bastante complicado criar sistemas de consenso distribuídos que podem tolerar um ou mais nós que se comportam maliciosamente de maneiras imprevisíveis. No caso do MultiChain, de certa forma trapaceamos, usando a implementação de referência endurecida pela batalha do bitcoin como ponto de partida e, em seguida, substituindo a prova de trabalho por um algoritmo de consenso estruturalmente semelhante chamado “diversidade de mineração”. As equipes que desenvolvem um nó blockchain do zero precisam pensar profundamente sobre os processos assíncronos e adversários - uma combinação da qual poucos programadores têm experiência. Certamente posso entender a tentação de usar um atalho, como usar um único nó para gerar blocos, ou pegar carona em um banco de dados distribuído existente ou apenas executar nós em um ambiente confiável. A escolha de qualquer um deles, sem dúvida, torna a vida mais fácil para os desenvolvedores, mesmo que isso enfraqueça todo o ponto.

Por razões comerciais, cada startup parece estar abordando a oportunidade do blockchain de um ângulo diferente. Aqui na Coin Sciences, estamos focados em nos tornar um fornecedor de software (banco de dados), então estamos distribuindo MultiChain gratuitamente enquanto desenvolvemos um nó premium com recursos adicionais. Outras startups querem vender serviços de assinatura, portanto, construirão naturalmente uma plataforma que os clientes não podem hospedar sozinhos. Alguns esperam controlar centralmente um blockchain ou ajudar seus parceiros a fazer isso (uma ambição estranha para uma tecnologia de desintermediação!) E são naturalmente atraídos para algoritmos de consenso que dependem de um único nó. E, finalmente, existem empresas cujo objetivo principal é vender serviços de consultoria, caso em que sua plataforma não precisa funcionar de forma alguma, desde que seu site atraia alguns grandes clientes.

Talvez outro problema seja que algumas empresas de blockchain estão sendo administradas por pessoas que, sem dúvida, estão cheias de talento, mas não têm um conhecimento profundo da tecnologia em si. Em startups que buscam um novo campo, é provavelmente vital que as decisões estratégicas sejam tomadas por pessoas que entendem a natureza desse campo e como ele difere do que veio antes. Não são poucas as startups de blockchain que parecem ter se encurralado ao buscar uma visão de produto que seja atraente para seus clientes, mas que não pode realmente ser construída.

Como um usuário de blockchains, como você pode evitar ser pego por essas falácias? Ao avaliar uma plataforma de blockchain em particular, certifique-se de perguntar se ela atende aos seis requisitos de compartilhamento seguro de banco de dados ponto a ponto: prevenção de tempo de inatividade e inconsistência, bem como falsificação de transação, censura, reversão e ilegitimidade. E tome cuidado com as explicações que consistem em resmungar demais ou acenar com a mão - elas provavelmente significam que a resposta é não.

Por favor, poste comentários no LinkedIn.

Fonte: https://www.multichain.com/blog/2016/12/spot-half-baked-blockchain/

Carimbo de hora:

Mais de Multichain