1. Introducción
Prefacio blog Teoría del protocolo sigma comprimido y aplicación práctica a las notas de estudio de algoritmos seguros Plug & Play .
Hice la implementación del código correspondiente para el artículo de 2020 " Teoría del protocolo sigma comprimido y aplicación práctica para algoritmos seguros Plug & Play " de Thomas Attema et al ., Ver:
- https://github.com/3for/Compressed_sigma-protocol
En esta base de código, la implementación correspondiente se basa actualmente solo en la suposición logarítmica discreta, y la suposición de RSA y la suposición de conocimiento del exponente aún no se han implementado:
-
La suposición logarítmica discreta utiliza curve25519-dalek.
Uno de los principales inconvenientes de utilizar el esquema de compromiso vectorial de Pedersen es que el número de generadores necesarios es proporcional a la dimensión del vector. Para comprometerse con una nnvector n- dimensional, necesitasn + 1 n + 1norte+1 generadores del grupoG \ mathbb {G}G . Al mismo tiempo, para∑ \ sumcomprimido∑ -protocoloΠ c \ Pi_cPic, Su tiempo de verificación y dimensión nnn es proporcional. [Por lo tanto, los escenarios 5.3.1 y 5.3.2 están diseñados para reducir la demanda del número de generadores. 】 -
La implementación básica de nizk y scalar se refiere a la biblioteca Spartan , pero la biblioteca Spartan
bullet.rs
[principalmente basada en Hyrax, que implementa atributos de conocimiento cero, pero tiene el problema del truco de Prover. Para obtener más detalles, consulte el problema: Agregar otro desafío en prueba de dotproduct ? # 33 ] reducir an = 1 n = 1norte=1. Según el artículo, este artículo se reducean = 2 n = 2norte=2. No se requiere conocimiento cero, consulte:
https://github.com/3for/Compressed_sigma-protocol/blob/main/src/nizk/nozk_noinv_bullet.rs -
La implementación polinomial se refiere a los módulos de la biblioteca de álgebra
poly
. Debido a que curve25519 no es compatible con FFT, solo se implementan rasgos, peroField
no se implementan rasgosFFTField
. -
Las diversas implementaciones de protocolo en este documento se enumeran en el
sigma_protocol
directorio y el nombre * .rs corresponde al protocolo.