区块链
多方计算涉及分布在多个节点和权限上的数据。每个节点和权限都有自己的规则和数据共享策略。
多方计算的目标是允许用户对来自多个源的数据运行计算。挑战包括:浏览不同节点和权限的规则和数据共享策略,保护每个参与者输入的隐私,保证计算的正确性。
如果涉及受信任的第三方,则不会出现多方计算试图解决的信任问题。任何用户方都可以将自己的数据提交给可信的第三方,并取回计算结果。
多方计算假定不存在可信的第三方。它发生在分布式环境中,在这种环境中,两个或多个参与方互不信任,并且希望保护各自的数据,但使用彼此的数据独立运行计算。
这种分散式的环境希望避免两种类型的用户:
1. 半诚实的玩家寻求了解更多关于他人数据的信息。这些用户根据多方计算的规则参与计算,但总是对通过过程发现附加信息感兴趣。
2. 试图破坏计算的恶意用户。恶意用户可以通过提供错误输入来影响输出。
由于这些用户的行为,多方计算不能很好地扩展。防止半诚实和恶意的用户行为需要一种既私有又安全的计算方法。
在“公平多方计算协议”(“公平MPC”)中,要么所有各方同时接收输出,要么没有一方接收输出。这方面的一个很好的用例是拍卖和投标。例如,如果用户发现他们没有在其他参与者之前赢得拍卖,他们可以声称网络故障,然后重新出价。因此,至关重要的是,要么所有各方同时接收输出,要么没有任何一方接收任何输出。
公平多方计算协议在区块链是可能的,并要求以下:
1. 用户可以访问一个公共的区块链分类账。
2. 用户可以在这个分类账上发布任意字符串,这些字符串用于MPC协议。
3.这些“任意”字符串可以是“任意”输入的加密输出,因此生成字符串的用户拥有解密密钥并可以解密它。
4. 每个字符串都包含关于谁发布了该字符串的证明,任何人都可以验证这个证明(因此,分类账包含分类账上所有活动的防篡改历史记录,包括半诚实和恶意用户)。
5. 不是直接生成函数的输出,而是公开该输出的密钥。
6. 公共分类账中的多方计算的输出现在以加密的形式提供给所有用户。要使其可见,需要一个解密密钥。
7. 创建解密密钥需要所有各方发布其“任意”字符串的输出。每个用户都可以将他们的“任意”输入保密,并共享加密的“任意”输出。只有在所有输出都被共享之后,才会同时生成一个解密密钥并将其提供给所有各方。这是公平多方计算协议——要么每个人都可以解密多方计算的结果,要么没有人可以。
约翰霍普金斯大学(Johns Hopkins)的学者在2017年的一篇论文中提出了“见证加密”(witness encryption)这一概念。在该系统中,用户运行多方计算来输出一个随机函数,该函数接受用户的私有输入并返回一个“见证加密”密文。这意味着每个用户都有计算的加密结果,但是需要解密它。
要访问密码文本,每个用户都需要生成(使用密码学)并在分类账上公开发布一个“release代币”。一旦用户发布了他们的发布代币,相应发布代币的证明也会发布在分类账上。这个证据被称为“证人”。然后,证人可以用来解密密文,并获得多方计算的结果。为了确保每个人都能同时查看结果,计算结果应该在指定的时间发布到公共区块链上。
公平的多方计算可以允许一组用户在区块链上安全地对彼此的数据运行计算,而不需要可信的第三方,也不需要每个用户公开自己的数据。这种技术有很多用例,比如拍卖、公开招标和使用健康、财务或其他敏感数据的项目,这些敏感数据受监管、内部数据政策或仅仅是公众对隐私期望的增加的影响。
全部0条评论
快来发表一下你的评论吧 !