Blockchains vs bancos de dados centralizados

Nó Fonte: 1576904

Quatro diferenças principais entre blockchains e bancos de dados regulares

Se você tem lido meus posts anteriores, você sabe agora que blockchains são simplesmente um novo tipo de banco de dados. Ou seja, um banco de dados que pode ser compartilhado diretamente, no sentido de escrita, por um grupo de partes não confiáveis, sem a necessidade de um administrador central. Isso contrasta com os bancos de dados tradicionais (SQL ou NoSQL) que são controlados por uma única entidade, mesmo se algum tipo de arquitetura distribuída for usada dentro de suas paredes.

Recentemente dei uma conversa sobre os blockchains da perspectiva da segurança da informação, em que concluí que os blockchains são mais seguros do que bancos de dados regulares em alguns aspectos e menos seguros em outros. Considerando o papel de liderança que os bancos de dados centralizados atuam na pilha de tecnologia de hoje, isso me fez pensar mais amplamente sobre as compensações entre essas duas tecnologias. Na verdade, sempre que alguém me pergunta se MultiChain pode ser usado para um propósito específico, minha primeira resposta é sempre: “Você poderia fazer isso com um banco de dados normal?” Em mais casos do que você imagina, a resposta é sim, pelo seguinte motivo:

Se a confiança e a robustez não forem um problema, não há nada que um blockchain possa fazer que um banco de dados normal não possa.

Este é um ponto-chave sobre o qual há tantos mal-entendidos. Em termos dos tipos de dados que podem ser armazenados e das transações que podem ser realizadas nesses dados, os blockchains não fazem nada de novo. E só para ficar claro, essa observação se estende aos “contratos inteligentes” também, apesar de seu nome e imagem sexy. Um contrato inteligente nada mais é do que um pedaço de código de computador executado em todos os nós de um blockchain - uma tecnologia com décadas de idade chamada procedimentos armazenados faz o mesmo para bancos de dados centralizados. (Você também não pode usar um blockchain se este código precisar iniciar interações com o mundo exterior.)

A verdade sobre os blockchains é que, embora tenham algumas vantagens, também têm suas desvantagens. Em outras palavras, como a maioria das decisões de tecnologia, a escolha entre um blockchain e um banco de dados regular se resume a uma série de compensações. Se você está cego pelo exagero e ensurdecido pelo barulho, é improvável que faça essa escolha objetivamente. Portanto, espero que o guia a seguir possa ajudar.

Desintermediação: blockchains de vantagem

O valor central de um blockchain é permitir que um banco de dados seja compartilhado diretamente entre os limites da confiança, sem a necessidade de um administrador central. Isso é possível porque as transações de blockchain contêm sua própria prova de validade e sua própria prova de autorização, em vez de exigir alguma lógica de aplicativo centralizado para impor essas restrições. As transações podem, portanto, ser verificadas e processadas de forma independente por vários “nós”, com o blockchain atuando como um mecanismo de consenso para garantir que esses nós permaneçam em sincronia.

Por que há valor nessa desintermediação? Porque mesmo que um banco de dados seja apenas bits e bytes, também é uma coisa tangível. O conteúdo de um banco de dados é armazenado na memória e no disco de um sistema de computador específico, e qualquer pessoa com acesso suficiente a esse sistema pode destruir ou corromper os dados nele contidos. Como resultado, no momento em que você confia seus dados a um banco de dados regular, você também se torna dependente do humano organização na qual esse banco de dados reside.

Agora, o mundo está repleto de organizações que conquistaram essa confiança - governos e bancos (principalmente), universidades, associações comerciais e até mesmo empresas privadas como Google e Facebook. Na maioria dos casos, especialmente no mundo desenvolvido, eles funcionam extremamente bem. Acredito que meu voto sempre foi contado, nenhum banco jamais roubou meu dinheiro e ainda estou para encontrar uma maneira de pagar por notas melhores. Então qual é o problema? Se uma organização controla um banco de dados importante, ela também precisa de várias pessoas e processos para evitar que o banco de dados seja adulterado. As pessoas precisam de contratações, os processos precisam ser projetados e tudo isso exige muito tempo e dinheiro.

Portanto, os blockchains oferecem uma maneira de substituir essas organizações por um banco de dados distribuído, bloqueado por criptografia inteligente. Como tudo o que aconteceu antes, eles aproveitam a capacidade cada vez maior dos sistemas de computador para fornecer uma nova maneira de substituir humanos por código. E depois de escrito e depurado, o código tende a ser muito mais barato.

Confidencialidade: vantagens de bancos de dados centralizados

Como mencionei, cada nó em um blockchain verifica e processa independentemente todas as transações. Um nó pode fazer isso porque tem visibilidade total sobre: ​​(a) o estado atual do banco de dados, (b) a modificação solicitada por uma transação e (c) uma assinatura digital que prova a origem da transação. Esta é, sem dúvida, uma maneira nova e inteligente de arquitetar um banco de dados, e realmente funciona. Então, onde está o truque? Para muitos aplicativos, especialmente financeiros, a transparência total desfrutada por cada nó é um assassino de negócio absoluto.

Como os sistemas construídos em bancos de dados regulares evitam esse problema? Assim como blockchains, eles restringem as transações que determinados usuários podem realizar, mas essas restrições são impostas em uma localização central. Como resultado, o conteúdo completo do banco de dados só precisa ser visível naquele local, em vez de em vários nós. Os pedidos de leitura de dados também passam por esta autoridade central, que pode aceitar ou rejeitar esses pedidos conforme considerar adequado. Em outras palavras, se um banco de dados regular for controlado por leitura e controlado por gravação, um blockchain pode ser controlado apenas por gravação.

Para ser justo, muitas estratégias estão disponíveis para mitigar esse problema. Elas variam de ideias simples, como transações em vários endereços de blockchain, a técnicas criptográficas avançadas, como transações confidenciais e provas de conhecimento zero (agora em desenvolvimento). No entanto, quanto mais informações você deseja ocultar em um blockchain, maior é a carga computacional que você paga para gerar e verificar as transações. E não importa como essas técnicas se desenvolvam, elas nunca vão superar o método simples e direto de ocultar dados completamente.

Robustez: blockchains de vantagem

Um segundo benefício dos bancos de dados alimentados por blockchain é a extrema tolerância a falhas, que se origina de sua redundância integrada. Cada nó processa todas as transações, portanto, nenhum nó individual é crucial para o banco de dados como um todo. Da mesma forma, os nós se conectam uns aos outros de maneira densa ponto a ponto, de modo que muitos links de comunicação podem falhar antes que as coisas parem. O blockchain garante que os nós que caíram possam sempre recuperar as transações perdidas.

Portanto, embora seja verdade que os bancos de dados regulares oferecem muitas técnicas para réplica, os blockchains levam isso a um nível totalmente novo. Para começar, nenhuma configuração é necessária - basta conectar alguns nós do blockchain e eles se manterão sincronizados automaticamente. Além disso, os nós podem ser adicionados ou removidos livremente de uma rede, sem qualquer preparação ou consequências. Por último, os usuários externos podem enviar suas transações para qualquer nó, ou para vários nós simultaneamente, e essas transações se propagam automática e perfeitamente para todos os outros.

Essa robustez transforma a economia da disponibilidade do banco de dados. Com bancos de dados regulares, a alta disponibilidade é alcançada por meio de uma combinação de infraestrutura cara e recuperação de desastres. Um banco de dados primário é executado em hardware de ponta que é monitorado de perto em busca de problemas, com transações replicadas para um sistema de backup em um local físico diferente. Se o banco de dados primário falhar (por exemplo, devido a um corte de energia ou falha catastrófica de hardware), a atividade é movida automaticamente para o backup, que se torna o novo primário. Depois que o sistema com falha é consertado, ele é alinhado para atuar como o novo backup se e quando necessário. Embora tudo isso seja factível, é caro e notoriamente difícil de acertar.

Em vez disso, e se tivéssemos 10 nós de blockchain em execução em diferentes partes do mundo, todos em hardware comum? Esses nós estariam densamente conectados uns aos outros, compartilhando transações em uma base ponto a ponto e usando uma cadeia de blocos para garantir o consenso. Os usuários finais que geram as transações se conectam a (digamos) 5 desses nós, portanto, não importa se alguns links de comunicação caírem. E se um ou dois nós falharem completamente em um determinado dia, ninguém sentirá nada, porque ainda há mais do que cópias suficientes para circular. Na verdade, essa combinação de sistemas de baixo custo e alta redundância é exatamente como o Google construiu seu mecanismo de busca de forma tão barata. Blockchains podem fazer a mesma coisa para bancos de dados.

Desempenho: vantagem de bancos de dados centralizados

Blockchains sempre serão mais lentos do que bancos de dados centralizados. Não é só isso hoje blockchains são lentos porque a tecnologia é nova e não otimizada, mas é resultado do natureza dos próprios blockchains. Você vê, ao processar transações, um blockchain tem que fazer todas as mesmas coisas que um banco de dados normal, mas carrega três encargos adicionais:

  1. Verificação de assinatura. Cada transação de blockchain deve ser assinada digitalmente usando um esquema de criptografia público-privado, como ECDSA. Isso é necessário porque as transações se propagam entre os nós de forma ponto a ponto, portanto, sua origem não pode ser provada de outra forma. A geração e verificação dessas assinaturas é computacionalmente complexa e constitui o principal gargalo em produtos como o nosso. Por outro lado, em bancos de dados centralizados, uma vez que uma conexão tenha sido estabelecida, não há necessidade de verificar individualmente cada solicitação que chega por ela.
  2. Mecanismos de consenso. Em um banco de dados distribuído, como um blockchain, deve-se fazer um esforço para garantir que os nós da rede cheguem a um consenso. Dependendo do mecanismo de consenso usado, isso pode envolver uma comunicação significativa de ida e volta e / ou lidar com bifurcações e suas reversões consequentes. Embora seja verdade que os bancos de dados centralizados também devem enfrentar transações conflitantes e abortadas, isso é muito menos provável quando as transações são enfileiradas e processadas em um único local.
  3. Redundância. Não se trata do desempenho de um nó individual, mas da quantidade total de computação que um blockchain requer. Enquanto bancos de dados centralizados processam transações uma (ou duas vezes), em um blockchain eles devem ser processados ​​independentemente por cada nó na rede. Portanto, muito mais trabalho está sendo feito para o mesmo resultado final.

A linha inferior

Naturalmente, existem outras maneiras de comparar blockchains e bancos de dados regulares. Poderíamos falar sobre maturidade da base de código, atratividade do desenvolvedor, amplitude do ecossistema e muito mais. Mas nenhum desses problemas são inerente para a própria tecnologia. Portanto, quando se trata de uma decisão de longo prazo sobre o uso de um blockchain, a pergunta a ser feita é: O que é mais importante para o meu caso de uso? Desintermediação e robustez? Ou confidencialidade e desempenho?

Quando examinados sob esta luz simples, muitos dos casos de uso atualmente em discussão não faz sentido. O maior problema tende a ser a confidencialidade. Os participantes de um mercado altamente competitivo irão naturalmente preferir a privacidade de um banco de dados centralizado, em vez de revelar suas atividades uns aos outros. Isso é especialmente verdadeiro se uma parte central confiável já existe e pode fornecer o território neutro no qual esse banco de dados pode residir. Mesmo que possa haver algum custo associado a esse provedor central, isso é mais do que justificado pelo valor da privacidade mantida. A única motivação para uma mudança para blockchains seria uma nova regulamentação agressiva.

No entanto, os blockchains têm fortes casos de uso, em que a desintermediação e a robustez são mais importantes do que a confidencialidade e o desempenho. Escreverei mais sobre isso em um post subsequente, mas as áreas mais promissoras que vimos até agora são: (a) trilhas de auditoria entre empresas, (b) rastreamento de proveniência e (c) leve sistemas financeiros. Em todos os três casos, encontramos pessoas construindo no MultiChain com uma visão clara da implantação, em vez de apenas curiosidade e experimentação. Portanto, se você está procurando maneiras pelas quais os blockchains podem agregar valor genuíno ao seu negócio, eles podem ser um bom lugar para começar.

Por favor, poste comentários no LinkedIn.

Carimbo de hora:

Mais de Multichain