A tecnologia Blockchain garante que cada nó tenha a blockchain correta, que também pode ser chamada de tecnologia de razão distribuída.
Na verdade, um blockchain ou block chain é um registro continuamente atualizado que armazena de forma aberta todas as informações sobre transações (movimento de valores e operações com eles) e permite rastrear todo o histórico de origem e transferência de valores entre os participantes. Junto com a presença em cada "nó" da cadeia correta de blocos, isso permite aos participantes do sistema garantir que as informações contidas em tal razão distribuída sejam invariáveis e transparentes.
Deve-se ter em mente que nem todo participante que utiliza a funcionalidade da tecnologia de razão distribuída deseja divulgar a composição, qualidade e quantidade de seus valores, as operações realizadas com eles ou os participantes de tais operações. Para resolver o problema de garantir a confidencialidade dessas informações em diversos sistemas baseados na tecnologia de razão distribuída, é possível considerar a utilização de tecnologia utilizando o Protocolo Zero-Knowledge.
E o setor bancário? Do ponto de vista do JSC Rosselkhozbank, a tecnologia de livros-razão distribuídos com a implantação do Protocolo com divulgação zero de segredos pode ser útil na organização da interação eletrônica entre bancos.

Esta solução tem o seguinte conjunto de vantagens:
- armazenar informações sobre valores e transações com eles sem divulgar o conteúdo de tais informações (confidencialidade);
- alta velocidade de operações;
- relativa simplicidade na implementação da escalabilidade do sistema com base na tecnologia de razão distribuída, dependendo das necessidades dos participantes;
- alta tolerância a falhas ao armazenar informações.
Propomos aprofundar-nos na solução que envolve a utilização do Protocolo de Divulgação Zero, uma vez que, em nossa opinião, é este elemento-chave que determina o potencial de utilização da tecnologia de razão distribuída no setor bancário.
Recursos de uso do protocolo Zero-knowledge
O protocolo de conhecimento zero é um protocolo de autenticação forte. Ele usa um par de chaves públicas e privadas e é usado para autenticar usuários sem revelar nenhuma informação secreta. Esses protocolos são aplicáveis para garantir a segurança da informação em muitas áreas da tecnologia da informação moderna. Além disso, existem opções de uso de protocolos sem nenhum conhecimento de segredos para construir um mecanismo de assinatura eletrônica ou para aumentar sua força criptográfica contra ataques de malfeitores.
Os protocolos de conhecimento zero pertencem a protocolos de chave pública. O protocolo é construído em torno da repetição de rodadas envolvendo determinadas ações. No decorrer do seu trabalho, a rodada é realizada em 3 etapas. As primeiras 2 etapas usam valores aleatórios como entrada. A parte marcada é chamada de "Provador" e a parte marcada é chamada de "Verificador" .
Passos redondos:
- O Provador gera uma chave privada única, bem como uma chave pública única, que é então enviada para o Provador;
- O verificador recebe uma chave pública única do Provador e então gera um bit aleatório, que então envia para o Provador;
- O provador recebe algumas informações e realiza cálculos sobre elas.
O Provador envia o resultado resultante ao Verificador para verificação.
Em todas as rodadas de verificação, a probabilidade de acerto é de 50%, ou seja, em cada rodada o Provador pode ter conhecimento da verdade com probabilidade de 50%.
Para atingir a precisão necessária, o número de tais rodadas deve ser aumentado, atingindo assim a probabilidade necessária em que o Provador será considerado autorizado.
Os principais problemas ao usar protocolos de conhecimento zero são:
- Comprimento obrigatório da chave pública;
- Confiança de que o segredo não foi compartilhado de nenhuma outra forma.
Consideremos a componente teórica de vários protocolos com conhecimento zero de segredos e façamos um quadro comparativo das suas características.
Protocolo ZkSNARKs
zkSNARKs significa Zero Knowledge Non-Interactive Argument of Knowledge.
Esta é uma forma de criptografia que permite a uma pessoa provar que possui um determinado conjunto de dados, sem necessariamente revelá-lo. Este sistema inclui apenas dois lados: condutores e verificadores. O condutor prova que determinado elemento, informação ou palavra existe e está correto sem revelar o que é esse elemento ou informação. Este é o significado de conhecimento zero . O processo de comprovação e validação de informações é rápido e pode ser validado em uma fração de segundo, mesmo para programas com grande quantidade de dados.
Para funcionar, o protocolo deve satisfazer os requisitos básicos de conhecimento zero do segredo.
Por exemplo, um contrato inteligente foi criado. O usuário poderá receber o pagamento se realizar determinadas ações. E se o usuário não quiser revelar detalhes por serem confidenciais e secretos dos concorrentes?
Para isso, é utilizado o protocolo de conhecimento zero zkSNARKs , que comprova que as etapas foram executadas de acordo com os termos do contrato inteligente, sem divulgar quais foram essas ações. Ele pode apenas mostrar parte do processo sem mostrar todo o processo e provar que o usuário é honesto.
zkSNARKs consiste de três algoritmos: L , P e V .
Gerador (C - programa, λ - entrada, que não deve ser divulgada (confidencial)):
(pk, vk) = G (λ, C)
Provador (x é uma entrada pública, w é uma declaração secreta que precisa ser provada, mas não contada):
π = P (pk, x, w) - prova prf
Verificador:
V (vk, x, π) == (∃ w stC (x, w)) - verdadeiro ou falso
G é um gerador de chave que aceita a entrada λ (que não deve ser expandida em nenhuma circunstância) e o programa C. Em seguida, duas chaves públicas são geradas: uma chave de validação pk (para um revisor) e uma chave de prova vk ( para o verificador). Essas chaves estão à disposição de qualquer interessado.
PÉ quem vai usar 3 elementos como entrada. A chave de validação pk, uma entrada x aleatória que está publicamente disponível e uma declaração que precisa ser provada, mas não informa o que realmente é. Vamos chamar esse operador de "w". O algoritmo P gera uma prova prf tal que: prf = P (pk, x, w) .
O algoritmo verificador V retorna uma variável booleana. Uma variável booleana tem apenas duas opções: pode ser TRUE ou FALSE . Assim, o verificador pega a chave, a entrada X e a prova prf como entradas, tais como: V (vk, x, prf) . E então determina se é verdadeiro ou falso.
Deve-se notar que o parâmetro λusado no gerador às vezes torna difícil usar zkSNARKs em aplicativos do mundo real. A razão para isso é que qualquer pessoa que conheça esse parâmetro pode gerar evidências falsas. Portanto, o valor de λ deve ser mantido em sigilo .
Assim, a partida do gerador deve ser um processo seguro, protegido de qualquer pessoa que saiba ou roube o parâmetro λ .
Protocolo ZkSTARKs
Não há fase de instalação confiável externa em zkSTARKs e a aleatoriedade usada é informação pública. O uso público da aleatoriedade é extremamente importante para o público confiar em sistemas de conhecimento zero, caso contrário, uma entidade poderosa poderia exercer sua influência para ganhar cenários e gerar evidências falsas. Como não há fase de configuração de confiança de terceiros e a aleatoriedade verificável pública é usada em vez disso, os sistemas zkSTARKs criam confiança verificável.
zkSTARKs não dependem de pares de chaves públicas e privadas (como ECDSA), mas dependem de hashing resistente à colisão para soluções interativas e um modelo de oráculo aleatório (que normalmente é usado no lugar de funções de hash criptográficas genéricas, onde fortes suposições sobre aleatoriedade são necessárias para inferir o oráculo) para provas não interativas ( zknSTARKs , n = não interativas) portanto, os zkSTARKs podem ser resistentes a ataques de computadores quânticos.
O protocolo zkSTARKs é escalonável, transparente, versátil e pode ser robusto quântico. Isso gera confiança na tecnologia, pois é verificável. Existem muitas áreas que podem ser melhoradas com tecnologias como zkSTARKsonde a confiança é necessária e há grandes incentivos para trapacear, por exemplo:
- sistemas de votação;
- realizar cálculos e verificar seus resultados, como transações anteriores em livros-razão distribuídos;
- verificação segura de informações, por exemplo, para verificar identidade ou credenciais.
Existem quatro categorias relacionadas à escalabilidade (resultados de zkSTARKs ).
- A complexidade do circuito aritmético (nas zkSNARK e sistemas zkSTARK, o código para criar zk programas é escrito de tal forma que eles podem ser divididos em circuitos e, em seguida, calculada - na verdade, a complexidade do circuito é maior do que a sua eficiência computacional.
- ( zkSNARK , zkSTARKs, ).
- (zkSTARKs zkSNARK 10 , ).
- ( zkSTARKs zkSNARK, , zkSTARKs zkSNARK, ).
O protocolo zkSTARKs foi planejado para ser usado em Ethereum em computação verificável e transações potencialmente seguras / anônimas, bem como em Dapps onde a privacidade é importante, como o navegador Brave, que usa o token de Atenção Básica.
Existe uma nova empresa chamada StarkWare Industries que visa resolver alguns dos problemas com o ZK-STARK (um dos quais é o tamanho de prova) e também comercializar tecnologia que pode ser usada em muitas indústrias, incluindo implementações de razão distribuída.
Tecnologia à prova de balas
A Divisão de Desenvolvimento de Razão Distribuída do ING está testando Bulletproofs, uma tecnologia focada na privacidade baseada em algoritmos criptográficos modernos.
Bulletproofs é baseado no trabalho de Jonathan Bootle e outros em 2016 para melhorar o uso de logaritmos discretos, que são a base de provas de conhecimento zero. e representa uma forma mais eficaz dessa mesma prova.
É importante ressaltar que Bulletproofs tem suporte integrado para chaves públicas e obrigações Pedersen(uma primitiva criptográfica que permite fixar qualquer valor selecionado, mantendo-o oculto de outros, com a possibilidade de revelar posteriormente o valor fixo). Isso nos permite implementar provas de alcance com base nos princípios gerais de conhecimento zero, sem realizar cálculos pesados de curvas elípticas em máquinas.
Provas à prova de balas representadas de uma maneira muito mais geral do que a prova de alcance e podem ser usadas para declarações arbitrárias de conhecimento zero. A tecnologia é comparável em eficiência a zkSNARKs ou zkSTARKs , mas tem suporte integrado para chaves públicas de curva elíptica e obrigações de Pedersen(portanto, como regra, não há necessidade de realizar cálculos de curvas elípticas dentro do programa testado). Além disso, ao contrário de zkSNARKs , Bulletproofs tem um nível total de 128 bits de força criptográfica de acordo com as suposições padrão, sem usar uma "instalação confiável". E, ao contrário dos zkSTARKs , eles são rápidos o suficiente para provar e validar problemas de escala sã em hardware de computação convencional.
Comparada com a tecnologia ZKP , que requer mais poder de computação, a tecnologia Bulletproofs é cerca de 10 vezes mais rápida, pois permite transações sem a troca de dados de pagamento.
Pontos-chave para esta tecnologia (protocolo):
- A prova de balas é baseada nos princípios gerais de prova de conhecimento zero (como em zkSNARKs);
- a tecnologia pode ser usada para estender protocolos multilaterais, como pagamentos condicionais multissigna ou conhecimento zero;
- Bulletproofs fornece uma versão muito mais eficiente de prova de uma variedade de transações confidenciais (ao usar a verificação de lote, a velocidade da verificação é mais de 23 vezes mais rápida);
- tais provas de alcance podem ser combinadas dentro de uma transação, e seu tamanho aumentará logaritmicamente;
- com agregação adequada, como Provisões , a verificação de lote oferece mais de 120 vezes a velocidade das provas anteriores.
Tabela comparativa das características do protocolo
Vamos compilar uma tabela comparativa com as características dos protocolos considerados sem nenhum conhecimento secreto

conclusões
- zk-SNARKs e zk-STARKs possuem diversas áreas de aplicação, inclusive para a implementação de assinaturas eletrônicas simples, bem como a criação de sistemas de gerenciamento eletrônico de documentos, pressupondo o sigilo das informações.
- Em geral, os protocolos de conhecimento zero são muito promissores e estão se tornando mais práticos para uso em sistemas de tecnologia de razão distribuída. No momento, cada implementação se destaca à sua maneira, porém, todas demandam recursos, havendo necessidade de soluções eficazes e com alcance zero de conhecimento.
- , , , , ( , , ).
1. 34.13-2018 (). . // docs.cntd.ru URL: docs.cntd.ru/document/1200161709 ( : 31.05.2020);
2. Recommendation for Key Management Part 1: General // nvlpubs.nist.gov URL: nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57pt1r5.pdf ( : 11.05.2020);
3. / 12207-2010 // docs.cntd.ru/ URL: docs.cntd.ru/document/gost-r-iso-mek-12207-2010 ( : 11.05.2020);
4. Recommendation for Cryptographic Key Generation // nvlpubs.nist.gov/ URL: nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-133r1.pdf ( : 11.05.2020);
5. Recommendation for Key Management Part 2 – Best Practices for Key Management Organizations // nvlpubs.nist.gov URL: nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57pt2r1.pdf ( : 11.05.2020);
6. Security Requirements for Cryptographic Modules // nvlpubs.nist.gov URL: nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.140-2.pdf ( : 11.05.2020);
7. Payment Card Industry (PCI) Data Security Standard // pcisecuritystandards.org URL: www.pcisecuritystandards.org/documents/PCI_DSS_v3-2-1.pdf?agreement=true&time=1589494129851 ( : 11.05.2020);
8. // intuit.ru URL: www.intuit.ru/studies/courses/553/409/info ( : 11.05.2020).
9. // cryptowiki.net/ URL: cryptowiki.net/index.php?title=____ ( : 11.05.2020);
10. Kerberos_(protocol) // en.wikipedia.org URL: en.wikipedia.org/wiki/Kerberos_(protocol) ( : 11.05.2020)
11. RFC5280 — Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile;
12. Recommendation for Key Management Part 3: Application-Specific Key Management Guidance // nvlpubs.nist.gov URL: nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57Pt3r1.pdf ( : 11.05.2020);
13. Blockchain reference architecture // ibm.com URL: www.ibm.com/cloud/architecture/files/blockchain-architecture-diagram.pdf ( : 24.05.2020).
14. Key management // cloud.ibm.com URL: cloud.ibm.com/docs/blockchain?topic=blockchain-ibp-security ( : 24.05.2020);
15. , . . / . . . — : // . — 2016. — № 1 (105). — . 141-143. — URL: moluch.ru/archive/105/24663 ( : 31.05.2020).
16. CKMS – // www.cryptomathic.com URL: www.cryptomathic.com/hubfs/Documents/Product_Sheets/Cryptomathic_CKMS_-_Product_Sheet.pdf ( : 31.05.2020);
17. HSM // www.croc.ru URL: www.croc.ru/promo/insafety/design/hardware-security-module ( : 31.05.2020);
18. HSM // cbr.ru URL: cbr.ru/Content/Document/File/104755/FT_35.pdf ( : 30.05.2020);
19. AWS Key Management Service // aws.amazon.com URL: aws.amazon.com/ru/kms ( : 30.05.2020);
20. . . // zakonbase.ru URL: zakonbase.ru/content/part/1250444 ( : 31.05.2020);
21. Diffie Hellman Protocol // mathworld.wolfram.com URL: mathworld.wolfram.com/Diffie-HellmanProtocol.html ( : 31.05.2020);
22. STS Protocol // archive.dimacs.rutgers.edu URL: archive.dimacs.rutgers.edu/Workshops/Security/program2/boyd/node13.html ( : 31.05.2020);
23. The Needham-Schroeder Protocol // www.cs.utexas.edu URL: www.cs.utexas.edu/~byoung/cs361/lecture60.pdf ( : 31.05.2020);
24. Otway Rees protocol // www.lsv.fr URL: www.lsv.fr/Software/spore/otwayRees.pdf ( : 31.05.2020);
25. Payment Card Industry (PCI) PTS HSM Security Requirements // www.pcisecuritystandards.org URL: www.pcisecuritystandards.org/documents/PTS_HSM_Technical_FAQs_v3_May_2018.pdf ( : 31.05.2020);
26. zk-SNARK? // z.cash/ru URL: z.cash/ru/technology/zksnarks ( : 31.05.2020);
27. zk-SNARKs zk-STARKs? // academy.binance.com/ru URL: academy.binance.com/ru/blockchain/zk-snarks-and-zk-starks-explained ( : 31.05.2020);
28. Bulletproofs: Short Proofs for Confidential Transactions and More // web.stanford.edu URL: web.stanford.edu/~buenz/pubs/bulletproofs.pdf ( : 31.05.2020);
29. // beincrypto.ru URL: beincrypto.ru/learn/chto-takoe-tehnologiya-raspredelennogo-reestra ( : 31.05.2020);
30. 12 - // dou.ua URL: dou.ua/lenta/articles/12-konsensus-protocols ( : 31.05.2020);
31. ISO/IEC 11770-1-2017. 1 // www.egfntd.kz URL: www.egfntd.kz/rus/tv/391980.html?sw_gr=-1&sw_str=&sw_sec=24 ( : 31.05.2020);
32. Consensus algorithm // whatis.techtarget.com URL: clck.ru/Nvade ( : 31.05.2020);
33. Introduction to Zero Knowledge Proof: The protocol of next generation Blockchain // medium.com URL: medium.com/@kotsbtechcdac/introduction-to-zero-knowledge-proof-the-protocol-of-next-generation-blockchain-305b2fc7f8e5 ( : 31.05.2020).
2. Recommendation for Key Management Part 1: General // nvlpubs.nist.gov URL: nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57pt1r5.pdf ( : 11.05.2020);
3. / 12207-2010 // docs.cntd.ru/ URL: docs.cntd.ru/document/gost-r-iso-mek-12207-2010 ( : 11.05.2020);
4. Recommendation for Cryptographic Key Generation // nvlpubs.nist.gov/ URL: nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-133r1.pdf ( : 11.05.2020);
5. Recommendation for Key Management Part 2 – Best Practices for Key Management Organizations // nvlpubs.nist.gov URL: nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57pt2r1.pdf ( : 11.05.2020);
6. Security Requirements for Cryptographic Modules // nvlpubs.nist.gov URL: nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.140-2.pdf ( : 11.05.2020);
7. Payment Card Industry (PCI) Data Security Standard // pcisecuritystandards.org URL: www.pcisecuritystandards.org/documents/PCI_DSS_v3-2-1.pdf?agreement=true&time=1589494129851 ( : 11.05.2020);
8. // intuit.ru URL: www.intuit.ru/studies/courses/553/409/info ( : 11.05.2020).
9. // cryptowiki.net/ URL: cryptowiki.net/index.php?title=____ ( : 11.05.2020);
10. Kerberos_(protocol) // en.wikipedia.org URL: en.wikipedia.org/wiki/Kerberos_(protocol) ( : 11.05.2020)
11. RFC5280 — Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile;
12. Recommendation for Key Management Part 3: Application-Specific Key Management Guidance // nvlpubs.nist.gov URL: nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57Pt3r1.pdf ( : 11.05.2020);
13. Blockchain reference architecture // ibm.com URL: www.ibm.com/cloud/architecture/files/blockchain-architecture-diagram.pdf ( : 24.05.2020).
14. Key management // cloud.ibm.com URL: cloud.ibm.com/docs/blockchain?topic=blockchain-ibp-security ( : 24.05.2020);
15. , . . / . . . — : // . — 2016. — № 1 (105). — . 141-143. — URL: moluch.ru/archive/105/24663 ( : 31.05.2020).
16. CKMS – // www.cryptomathic.com URL: www.cryptomathic.com/hubfs/Documents/Product_Sheets/Cryptomathic_CKMS_-_Product_Sheet.pdf ( : 31.05.2020);
17. HSM // www.croc.ru URL: www.croc.ru/promo/insafety/design/hardware-security-module ( : 31.05.2020);
18. HSM // cbr.ru URL: cbr.ru/Content/Document/File/104755/FT_35.pdf ( : 30.05.2020);
19. AWS Key Management Service // aws.amazon.com URL: aws.amazon.com/ru/kms ( : 30.05.2020);
20. . . // zakonbase.ru URL: zakonbase.ru/content/part/1250444 ( : 31.05.2020);
21. Diffie Hellman Protocol // mathworld.wolfram.com URL: mathworld.wolfram.com/Diffie-HellmanProtocol.html ( : 31.05.2020);
22. STS Protocol // archive.dimacs.rutgers.edu URL: archive.dimacs.rutgers.edu/Workshops/Security/program2/boyd/node13.html ( : 31.05.2020);
23. The Needham-Schroeder Protocol // www.cs.utexas.edu URL: www.cs.utexas.edu/~byoung/cs361/lecture60.pdf ( : 31.05.2020);
24. Otway Rees protocol // www.lsv.fr URL: www.lsv.fr/Software/spore/otwayRees.pdf ( : 31.05.2020);
25. Payment Card Industry (PCI) PTS HSM Security Requirements // www.pcisecuritystandards.org URL: www.pcisecuritystandards.org/documents/PTS_HSM_Technical_FAQs_v3_May_2018.pdf ( : 31.05.2020);
26. zk-SNARK? // z.cash/ru URL: z.cash/ru/technology/zksnarks ( : 31.05.2020);
27. zk-SNARKs zk-STARKs? // academy.binance.com/ru URL: academy.binance.com/ru/blockchain/zk-snarks-and-zk-starks-explained ( : 31.05.2020);
28. Bulletproofs: Short Proofs for Confidential Transactions and More // web.stanford.edu URL: web.stanford.edu/~buenz/pubs/bulletproofs.pdf ( : 31.05.2020);
29. // beincrypto.ru URL: beincrypto.ru/learn/chto-takoe-tehnologiya-raspredelennogo-reestra ( : 31.05.2020);
30. 12 - // dou.ua URL: dou.ua/lenta/articles/12-konsensus-protocols ( : 31.05.2020);
31. ISO/IEC 11770-1-2017. 1 // www.egfntd.kz URL: www.egfntd.kz/rus/tv/391980.html?sw_gr=-1&sw_str=&sw_sec=24 ( : 31.05.2020);
32. Consensus algorithm // whatis.techtarget.com URL: clck.ru/Nvade ( : 31.05.2020);
33. Introduction to Zero Knowledge Proof: The protocol of next generation Blockchain // medium.com URL: medium.com/@kotsbtechcdac/introduction-to-zero-knowledge-proof-the-protocol-of-next-generation-blockchain-305b2fc7f8e5 ( : 31.05.2020).