区块链 · 数字资产知识 · 行业资讯
文章库关于本站

技术原理

区块链多方隐私计算怎样限定协作条件|诚实假设与结果披露分别看

摘要

多方计算可以让不同参与者共同求值,但输入隐私、参与者偏离协议和结果公开是三个问题。结合MP-SPDZ与NIST资料,用虚构合计说明方案需要写清哪些条件。

区块链多方隐私计算的科技主题配图

先明确谁提供输入、谁参与求值

阅读区块链多方隐私计算方案时,先把参与者与计算任务写出来。NIST的隐私增强密码学介绍将多方计算描述为:不同参与者在不直接披露各自输入的条件下,共同计算这些输入上的函数。这里的任务可以是合计或其他明确函数,不是把资料分发给几个节点,就自然获得隐私保护。

例如,虚构的甲、乙、丙三家机构希望共同计算一项总数。需要分别说明各自提供什么、哪些机器实际运行协议、谁接收结果,以及哪些内容会写到链上。这些角色可以重合,也可能分离;只画出三个相连的方框,无法回答输入和输出分别由谁看到。

半诚实和恶意模型不是同一种承诺

MP-SPDZ的项目文档将协议按诚实多数、非诚实多数,以及半诚实、恶意等安全模型分类。文档中的半诚实假设,要求即使被控制的参与方也按协议执行。它并不是声称这些参与者没有好奇心,而是把偏离规定步骤的行为排除在这一模型之外。

恶意模型则考虑参与方不按协议行事;该文档说明,这种偏离至少应能被检测。阅读具体方案时,还必须写出容许多少参与方出现问题,不能把恶意安全简化成任何数量的参与者串通都没关系,也不能由检测能力推断任务一定能继续完成。本文不为未指定的协议编造统一门槛。

区块链大数据平台的科技主题配图

公开一个总数仍然会公开信息

继续使用教学例子:假设三项输入为十二、二十三和三十五,约定结果是七十。这里故意向读者列出数字,只为说明输出的含义,并非模拟实际协议消息。如果甲得到总数并知道自己的十二,就能算出另外两项合计为五十八;这属于约定输出带来的信息。

如果甲又从其他渠道知道乙的二十三,就能进一步算出丙的三十五。这个简单算术说明,保护求值过程中的秘密输入,不等于结果发布后没有任何推断。若总数还将公开写入账本,方案应先说明公开范围与额外已知资料,而不能把秘密共享当成隐藏所有信息的保证。

把模型和运行成本一起交代

MP-SPDZ同时提供秘密共享、同态加密和混淆电路等技术路线。其文档指出,秘密共享计算的通信轮数会随计算而变化,算术任务与二进制电路的成本也不同。因此,比较两个演示时,应该同时记录计算任务、安全模型、参与人数和网络条件,不能只拿一项耗时判断哪种方案普遍更好。

项目还明确,支持某种协议并不代表软件已经完成关键生产代码所需的安全审核。本文仅解读所读文档和虚构算术,没有部署多方计算或运行性能测试。区块链方案应先讲清参与条件、异常处理和结果接收者,再说明账本保存什么,避免用上链这一动作替代这些计算约定。

← 返回全部文章

延伸阅读 · 相关栏目

区块链基础技术原理数字资产知识资料与核验