
Recentemente, a Renaissance Insurance publicou
um artigo no qual falava sobre um produto de software para seguro de carga. Desenvolvemos este produto com base na plataforma Hyperledger Fabric. Em torno do artigo, surgiram discussões entre céticos e entusiastas de criptografia, as pessoas levantaram uma série de perguntas urgentes - por que eles precisavam de uma blockchain, as blockchains não públicas têm direito à vida, o que é bom para o Hyperledger e similares. Eu quero comentar sobre essas questões hoje.
"Blockchain está aqui apenas para relações públicas e publicidade"
Esta é provavelmente a primeira coisa que qualquer desenvolvedor de um produto que usa blockchain se aplica aos criptocríticos hoje:
"Por que é necessário aqui, porque a mesma tarefa pode ser resolvida por meios convencionais, sem blockchain".
Sim, nós realmente podemos resolver o mesmo problema sem blockchain. Mas se começarmos a tentar satisfazer todos os requisitos relacionados à segurança da informação, confiar um no outro e assim por diante, incluindo requisitos como uma assinatura eletrônica, então ... escreveremos nossa própria quase blockchain lentamente.
Suponha que os participantes nos digam que não temos a oportunidade de substituir algo, porque eles querem confiar em nós. Além disso, seria bom garantir a consistência dos dados, como eles dizem, "pronto para uso", resistência a falhas de um sistema distribuído, métodos de recuperação. Como isso pode ser feito? Por exemplo, pegamos um conjunto de transações, assinamos, obtemos um hash e usamos para assinar o próximo conjunto de transações, e assim por diante. O resultado é uma cadeia de dados dentro dos quais é impossível mudar qualquer coisa. Em geral, esta é a própria blockchain.
Existem empresas que criaram seu próprio sistema semelhante do zero, mas não vemos o ponto.
“Blockchain não público não é de todo um blockchain”
O segundo grupo de perguntas vem de entusiastas de criptografia focados no uso de cadeias públicas, principalmente o Ethereum. Essas perguntas foram provocadas pelas palavras de que, ao escolher uma plataforma blockchain, precisávamos:
- fornecedor sério
- suporte da comunidade para desenvolvedores profissionais
- Independência do Ethereum
- falta de comunicação com a OIC
Obviamente, esse conjunto de critérios é um pouco provocativo, porque pode parecer que estamos dizendo que desenvolvedores não profissionais estão participando de projetos da OIC. E, é claro, fomos culpados pelo fato de que "a blockchain não pública não pode ser considerada blockchain".
Em primeiro lugar, há uma discrepância lógica óbvia: a publicidade (no sentido amplo) não é de forma alguma uma condição para o blockchain. Além disso, todos os critérios formais para a blockchain no Hyperledger estão bastante presentes.
E, a propósito, esta solução é suportada pela Linux Foundation, e lá eles não suportam ninguém. Nesse sentido, a Linux Foundation pode ser considerada uma marca de qualidade. Obviamente, erros são encontrados em qualquer produto e, nas fontes do Fabric, também os encontramos. Mas há erros em qualquer produto, especialmente um em desenvolvimento.
"Precisamos usar blockchains públicas comprovadas"
Os defensores dessa opinião vêm de uma idéia ideal de redes públicas de blockchain.
Cada nó tem um monte de conexões com os outros, a rede é resistente a qualquer adversidade, beleza. Você pode até conhecer um esquema tão impressionante:

Mas a situação real das redes é um pouco diferente. A própria Internet consiste em grandes segmentos conectados entre si, não por um grande número de conexões, mas por um pequeno número de canais de tronco atendidos por várias empresas. Por exemplo, a rede Rostelecom é assim:

Por exemplo, Kaliningrado está conectado ao mundo com apenas dois canais pertencentes a Rostelecom e Balttelecom. E depende apenas da vontade da “pessoa com um recorte” condicional se esse segmento de runet será conectado ao restante da rede e, em particular, à rede Ethereum. Imagine a situação: a troca de tráfego de algum segmento Runet com os masternodes Ethereum foi desativada simplesmente bloqueando o TCP / UDP 30303 (ou ainda mais fácil - restringindo temporariamente a descoberta, mas esse é apenas o UDP) e, embora não houvesse "conexão", eles conseguiram extrair vários blocos, fazendo acordos: por exemplo, Vasya comprou um carro da Petit por 10 eth. O que acontecerá se houver tempo suficiente para "manter" esse estado para uma sub-rede com masternodes e retornar tudo "como estava"? É claro que existem exploradores públicos, mas isso é mais um controle do que uma defesa.
Além disso, mesmo em 2019, um ataque de 51% é possível, como, por exemplo, casos recentes de ataques do BTC.com e do BTC no Bitcoin Cache, ou, mais perigoso, um ataque não confirmado ao Ethereum. Entendemos que, para a comunidade de criptografia, o desenvolvimento da infraestrutura pública é atualmente uma prioridade, e isso pode estar em desacordo com os interesses diários de empresas reais. As redes do tipo consórcio são usadas por grandes empresas, bancos, organizações de seguros e, para elas, o estado atual dos sistemas públicos de blockchain ainda não permite que sejam usadas no interesse de um negócio real, e não para protótipos ou sistemas que duplicam processos reais.
A segunda desvantagem de blockchains públicas são transações pagas. Pegue o mesmo Ethereum: nem um único departamento contábil russo pode comprar gasolina; simplesmente não há meios legais. Além disso, o custo do gás está atrelado à taxa de câmbio do Ethereum, que, como você sabe, pode variar em uma faixa enorme. Os negócios não gostam de tanta incerteza.
"Mas como os usuários do seu Hyperledger podem controlar as informações no blockchain?"
A resposta é muito simples. Qualquer participante pode analisar completamente todas as transações nos canais disponíveis para ele, usando o Hyperledger Explorer e nosso sistema, obtendo acesso ao conteúdo de colegas localizados na infraestrutura do próprio participante. Não tornaremos o sistema público por vários motivos, entre os quais, principalmente, os requisitos de segurança da informação dos participantes.
Gerenciamento de arquitetura
Outro motivo pelo qual usamos o Hyperledger Fabric é que construímos uma arquitetura que consiste em vários canais (um canal, na terminologia do Hyperledger, é um registro separado, uma blockchain com vários direitos, vinculando apenas os participantes que participam de um negócio específico processo). Podemos gerenciar o sistema do ponto de vista de conectar novos participantes, mas não podemos influenciar individualmente, por exemplo, as regras para o cálculo das taxas de seguro. As tarifas são acordadas por todos os participantes com acesso.
Alternativas?
Se falamos de alternativas ao Hyperledger, consideramos seriamente apenas o R3 Corda. Esta não é uma blockchain, mas uma solução mais fácil, que agora é usada ativamente por bancos e outras organizações financeiras.
O Ethereum público, como alternativa, não é adequado pelas razões descritas acima. Temos uma linguagem bastante nova e, portanto, ruim para o desenvolvimento de contratos inteligentes Solidity, um pequeno número de bibliotecas, a capacidade de trabalhar com sistemas externos através do Oraclize. Além disso, questões muito grandes surgem do ponto de vista da segurança da informação: contratos inteligentes são executados em nós de terceiros - por exemplo, na China. Ou seja, da China ou da Ucrânia, uma solicitação de serviço na empresa deve chegar, à qual o acesso deve ser fornecido de qualquer lugar. Para a segurança de um banco ou companhia de seguros, isso é inaceitável. Além disso, deve-se entender que as atividades das companhias de seguros são reguladas pelo Banco Central da Federação Russa.
No nosso caso, existe apenas uma maneira de usar redes públicas - ancoragem. Nesse caso, a rede pública é usada exclusivamente para confirmar a integridade e todos os outros mecanismos são clássicos ou o mesmo consórcio - Hyperledger Fabric. Talvez, depois de algum tempo, ancoremos no mesmo Ethereum se a empresa perceber o ponto (e a oportunidade) disso.
* * *
Em resumo, quais são as vantagens que vemos no Hyperledger, pelas quais usamos essa solução em nossos projetos para empresas seguradoras e financeiras?
- Uma linguagem rica para escrever chaincode (contratos inteligentes) (Golang e agora Java).
- Independência de fatores externos. Pelo menos fatores externos podem ser controlados.
- A capacidade de selecionar e usar um grande número de bibliotecas externas.
- A disponibilidade de ferramentas para todos os participantes visualizarem e analisarem o blockchain.
- Gerenciamento de arquitetura flexível.
- A entrada do projeto na Linux Foundation, como marca de qualidade e sinal de uma abordagem séria.