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

技术原理

区块链同态加密能计算什么|密文运算并非任意程序都适用

摘要

同态加密允许对密文执行特定计算,结果仍由持有解密密钥的一方读取。但整数模运算、近似计算、计算深度和密钥归属都有条件,不能把“支持密文计算”理解为任何区块链程序都能直接搬进去运行。

区块链同态加密的科技主题配图

密文交给计算方,结果仍不是明文

讨论区块链同态加密时,首先要区分两件事:数据被加密保存,以及数据保持加密状态时还能参与计算。普通的“先加密上传、使用前再解密”流程并不属于后一种能力。同态方案允许计算方在不先读取明文的情况下执行支持的运算,返回的结果仍是密文。

以Microsoft SEAL的常见使用方式为例,数据所有者保管解密密钥,计算服务处理密文,随后由持钥者读取结果。把密文或结果记录在链上,并不会自动让所有节点获得明文,也不会替项目决定谁有权解密。

用一笔虚构合计看清流程

假设同一数据持有者有两项数量18和27,希望外部服务计算总数,却不直接看到各项明文。持有者在同一套合适的参数和密钥条件下加密,服务执行相应的同态加法,持有者再解密检查结果45。这只是说明职责的算术例子,并非某条链的运行数据。

这里的“相加”是加密方案规定的运算,不是把两串密文字节当普通数字相加。若两份数据分别采用互不关联的密钥,不能直接套用这个单一持钥者例子;多方协作需要另外说明所用协议,而不能仅以“支持同态加密”略过。

冷钱包加密的科技主题配图

整数精确与小数近似要分开

SEAL提供的BFV、BGV处理加密整数的模运算。“精确”指的是既定模数下的运算结果,不等于整数可以无限增大。若业务要保留通常意义上的数量,仍需规划取值范围,防止越过模数后把回绕结果解释成正常合计。

CKKS用于实数或复数的近似计算。它的缩放与重缩放安排会影响计算过程,最终也需要考虑误差。因此,一篇技术方案应说清算的是精确计数还是允许误差的统计量,不能只展示一个看似正确的小数,就省略误差容限和输入范围。

程序能写出来,不代表适合直接加密执行

SEAL的基础能力集中在加法和乘法。对加密数据直接比较、排序或做正则匹配,通常并不适合照搬普通程序;根据秘密数据走不同分支,也不能简单沿用明文条件判断。这是对该库所述能力与使用限制的说明,不是宣称所有同态研究都只能处理同一种问题。

官方BFV示例还解释了噪声预算:运算会消耗预算,连续乘法的深度尤其重要,预算不足时可能无法正确解密。CKKS也有可用层级和重缩放的约束。只报告“执行过一次计算”,不足以回答更大输入或更长计算链能否稳定完成。

评估时先写计算任务,再谈上链位置

阅读项目方案,可以先找输入类型、允许的运算、结果接收者和误差要求,再看它把哪些数据放在链上。还应区分加密、传输、计算、解密各自的时间与资源消耗,不要把纯明文耗时当作密文方案的性能。

同态加密通常增加数据体积和计算开销,所以更适合围绕必要的隐私计算环节评估,而非不加区分地加密整个应用。需要持续公开展示的统计结果,也必须交代由谁解密、如何发布。这些责任不会因为用了区块链或某个开源库而自动消失。

← 返回全部文章

延伸阅读 · 相关栏目

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