世界币基金会和 TACEO(一个密码学工程师团队)的应用研究,已经在生物特征模板保护领域推进了最新技术,并实现了安全删除世界币之前的虹膜代码系统。
在一个称为安全多方计算(SMPC)的密码学领域内,世界币和TACEO应用了 SMPC 在机器学习方面的最新进展到虹膜代码上,这使世界币能够确定个人身份的唯一性。
这种新方法,是开源的,并可在Github 仓库中找到,允许将虹膜代码分别加密成多个不同的秘密份额,由多方持有。这些方可以共同工作,对秘密信息进行计算,而不会了解到任何有关秘密本身的信息。
通过此方法,World ID 达到了前所未有的生物特征模板去重(验证唯一性)的隐私保护水平。在虹膜代码迁移到新的 SMPC 系统后,之前的唯一性检查系统,包括旧的虹膜代码,被安全删除。
经过验证的 World ID 用户可以证明他们是一个独特的人类身份,而不透露他们是谁,解锁数字领域中如集体防护免受冒充、深度伪造和操控舆论活动等新能力。为了实现这一点,该系统通过应用 Daugman 虹膜代码方法在注册过程中确保用户之前没有注册过,这依赖于虹膜的固有唯一性。
虹膜代码是独一无二的,必须非常小心地处理。这意味着使用硬件安全模块、加密驱动器和网络、身份和访问管理等。在此基础上,World ID 通过额外的零知识证明层进一步深入,允许个人使用他们的 World ID,而不透露使用了哪个 World ID 或用户是谁。
安全存储关键数据的最佳方法是一个密钥分片 scheme,其中密钥被加密成一组称为份额的数字。这些数字单独来看是随机的,不会透露任何信息,但它们的相关性一起包含了密钥。只有当所有份额结合在一起时,密钥才能被恢复——少一个都不行。你可以将其想象为一个带有多个转盘的组合保险箱,每个参与者只知道其中一个组合,或者像哈利波特小说中的魂器。
Secret sharing is like a safe with multiple dials where each participant only knows one code. Only if the participants work together can they open the safe and reveal the secret.
通过在多个可信方(参与者)之间分配份额,可以实现安全的容错性。即使某些参与者遭到完全的安全攻击,只要至少有一个参与者仍然安全,就不会泄露密钥。此外,这是密码学中少数提供完美秘密性的结果之一,意味着无论在质因数分解和量子计算机等领域取得哪些进展,它始终是安全的。
密钥分片很强大,但单独使用只能用来存储信息。我们通常还想要对信息做一些操作(即,对其进行计算)。这就是安全多方计算(SMPC)的用武之地。它允许密钥分片方案中的参与者共同协作,并对密钥信息进行计算,同时保持该信息的机密性。例如,假设你和你的同事想要知道你们小组的平均工资,但没有人想透露自己的工资。为此,每个人创建自己工资的密钥份额并将份额分发给同事。记住,这些份额看起来是随机数字,不会透露任何信息。然后,每个人计算份额的平均值,这一开始可能看起来毫无意义。但由于密钥份额的同态属性,份额的平均值与平均值的份额相同。现在,每个人都有了平均值的一个份额,他们可以继续合并自己的份额来揭示实际的平均值。
SMPC 示例:三个同事的月薪分别是 $3K, $4K, $5K, 在彼此间不透露真实薪水的前提下计算三个人的月薪中位数。
使用密钥分片 scheme 两方 SMPC 计算。月入 3k 创建 7 和 -4 的随机密钥分片,同理随机分片 -5 和 9 表示月入 4K,4 和 4 表示月入 8 K
三个人把各自生成的密钥分片发给两个 SMPC 参与方。
第一个 SMPC 接收到了 [7, -5, 4] 计算三人平均值为 2,第二个 SMPC 接收到 [-4, 9, 4] 得出的平均值为 3。
上述步骤算出来的 2,3 是密钥分片的结果。然后分发给三个同事,所以得出来三个人的月薪中位数是 5
SMPC 协议通常对于大型复杂计算来说资源消耗太大。这就是为什么,尽管它们具有保护隐私的特性,但在生物特征模板保护中还没有被广泛使用。在去年八月的一篇论文中,国际红十字会的一个研究团队得出结论:
“虽然 SMC-Janus [一个 SMPC 解决方案] 提供了最强的数据保护,但其成本使其不适合大型援助分发项目。”
Araki 等人(2016)、Mohassel 和 Rindal(2018)及其他许多人的近期工作展示了 SMPC 协议的强大优化,使它们适用于机器学习问题。在世界币基金会和 TACEO 的联合工作中,这些方法已被调整以创建一个用于比较虹膜代码的 SMPC 协议。这种优化使得 SMPC 能够应用于虹膜代码唯一性问题,并实现了超过 10,000 倍的加速。
这使得虹膜代码可以被加密为多份密钥切片并分布在多个参与者之间。使用 SMPC 协议,参与者可以比较一个注册用户的虹膜代码与密钥片段,而无需解密密钥。一旦验证了唯一性,新用户的虹膜代码就被加密为密钥切片并添加进去。与之前的最新技术不同,之前的虹膜代码需要为每次比较而解密,新的多方系统中存储的虹膜代码始终保持加密,只有比较距离结果被揭示。目前正在研究旨在揭示更少信息的协议。
SMPC 协议是开源的,可在Github 仓库中找到,实施过程由 Least Authority 审计。在 3 月份进入生产环境,现有的虹膜代码被加密为密钥切片后,SMPC 协议与之前的系统并行运行以验证可靠性。到 2024 年 5 月,旧系统被关闭并安全删除。尽管性能大幅提升,新系统需要 1152 核心,3.6TB 内存,并在所有参与方之间使用 5 Gbps 带宽。
The new SMPC system requires 1152 cores, 3.6TB memory and uses 5 Gbps bandwidth across all parties.
在与数据保护机构,特别是巴伐利亚数据保护机构(“BayLDA”),世界币基金会在欧盟的主管监督机构进行对话后,进一步加强了生物特征模板保护工作的高优先级。
截至撰写本文时,当前 SMPC 系统的参与者包括 Tools for Humanity GmbH 和世界币基金会在欧盟的机构。基金会目前还在与多个其他独立的第三方潜在参与者进行讨论,包括瑞士苏黎世大学的区块链中心。
在深入探索 SMPC 之前,进行了对现有生物特征模板保护方法的审查。一些方法,如模糊承诺和布隆过滤器,因为它们不提供加密隐私而被排除。相反,它们依赖于引入错误,这使它们不适合检查唯一性。同态加密(HE)和 SMPC 都提供了强大的隐私、安全性和准确性保证,但对于唯一性验证的用例,SMPC 提供的安全性严格优于 HE。随着开发的优化,SMPC 系统的性能也表现出色。
除了 SMPC,2024 年世界币还实施了一系列提高隐私和安全的措施,以及增加了用户选择和控制,包括:
提供市场动态、技术洞察和策略分析,工具教程,跟踪和挖掘 Web3 趋势。