每个节点何时发布两组数据 x 和 y 这样的
x
y
x - y = v
假设我可以发射 x 和 y 独立地,您可以正确计算整体 意思 和 和 虽然每一条信息都毫无价值。
因此,对于投票示例和候选人X,Y,Z,我可能有一个身份发布投票
+2 -1 +3
我的第二个身份发表了投票:
-2 +2 -3
但当然你无法证实我不再多次投票了。
对的,这是可能的。在给出一些假设的情况下,有些工作实际上可以解决您解决问题的问题。检查以下文件: 隐私,效率和大规模星网络聚合计算的容错性 。
您可以对另一个节点上的一组节点进行一些计算(例如求和),而不必让参与者节点在它们之间显示任何数据,甚至不计算正在计算的节点。在计算之后,每个人都学习了结果(但是除了他们自己已经知道的任何个人数据之外,没有人知道它们)。本文描述了协议并证明了其安全性(协议本身为您提供了我刚才描述的隐私级别)。
至于保护节点的身份以将其价值与其身份脱钩,这将是另一个问题。您可以使用匿名凭据(请检查以下内容: https://idemix.wordpress.com/2009/08/18/quick-intro-to-credentials/ )或类似的东西,以显示你是谁你没有透露你的身份(在分布式场景中)。
这个协议的问题是你需要一个半可信节点来进行计算。完全分布式协议(例如,在P2P网络场景中)并不容易。不是因为缺少存储(例如,您可以使用DHT),而是需要通过网络替换该受信任或半受信任的节点,那就是当您发现问题时,谁来做?为什么那个而不是另一个?如果有共谋怎么办?等等...