全同态加密(FHE)允许在加密数据上评估任意函数。在多方FHE应用程序中,不同的方对其机密数据进行加密,并将密文提交给服务器,服务器根据应用程序逻辑对其执行同态操作。例如,在一个秘密投票应用程序中,计数是通过对投票进行加密的密文求和来计算的。有效的加密投票形式为$E(0)$和$E(1)$。恶意选民可能会发送无效的加密投票,例如$E(145127835)$,这可能会扰乱整个选举。因此,用户必须证明他们提交的密文是有效的Ring-Learning with Errors(RLWE)密文,并且他们加密的明文消息是有效的投票(例如,1或0)。Greco使用零知识证明来让用户证明他们的RLWE密文是正确的。或者,换句话说,加密操作执行正确。因此,生成的证明可以由附加的特定于应用程序的逻辑组成,并在非交互设置中接受公共验证。考虑到秘密投票应用程序,可以进一步证明加密消息的属性,甚至可以证明投票人的属性,从而允许应用程序支持匿名投票。该证明程序是使用Halo2-lib作为证明系统来实现的,基准测试表明,Greco已经可以集成到用户界面应用程序中,而不会给用户带来过多的摩擦。该实现可在https://github.com/privacyscaling-explorations/greco