自从公钥加密技术问世以来,如何将加密密钥与身份有效关联一直是个重要课题。这个问题的核心在于如何建立并维护身份与公钥之间的公开可用且一致的映射关系。如果缺乏这种映射,本该加密的信息可能会被错误处理,有时甚至会造成严重后果。这一挑战同样存在于web3领域。
目前有三种可能的解决方案:传统的公钥目录和基于身份的加密,以及最近才从理论走向实践的基于注册的加密。这三种方法在匿名性、交互性和效率方面各有优劣,而在区块链环境下又带来了新的可能性和限制。本文将深入探讨这些方案在区块链上的应用,并比较它们的实际表现。当用户既需要链上透明度又需要匿名性时,实用的RBE方案显然是最佳选择——它克服了基于身份加密的强信任假设,虽然需要付出一定代价。
三种加密方案概述
传统的公钥基础设施(PKI)采用公钥目录作为核心解决方案。这种方法要求发送方必须与受信任的第三方(目录维护者或证书颁发机构)交互才能发送加密信息。在web2环境中,维护这样的目录不仅成本高昂、操作繁琐,还存在证书颁发机构滥用等风险。
密码学家们提出了多种替代方案来解决PKI的问题。1984年,Adi Shamir提出了基于身份的加密(IBE),将电话号码、电子邮件等标识符直接作为公钥使用。虽然消除了维护公钥目录的需求,但引入了对密钥生成器的信任问题。2001年Dan Boneh和Matthew Franklin提出了首个实用的IBE构造,但除了企业或政府等封闭生态系统外,IBE并未得到广泛应用,主要原因就在于其强信任假设。
第三种方案是基于注册的加密(RBE),于2018年首次提出。RBE保留了IBE的基本架构,但用透明的”密钥管理员”取代了受信任的密钥生成器。这个管理员只对公开数据进行计算,将公钥累积成公开可用的”摘要”。直到2022年,随着首个实用有效的RBE构造问世,RBE才从理论走向实践。
方案比较与权衡
为简化分析,我们做出两个基本假设:用户不会更新或撤销密钥;智能合约不使用任何链下数据可用性服务。在此基础上,我们来比较这三种方案的特点。
公钥目录方案通过智能合约维护身份与公钥的映射关系。虽然设置简单,但需要存储完整的密钥目录,对于90万用户来说需要近90MB的链上存储空间。此外,发送方需要查询链上数据获取接收方公钥,这可能会暴露通信关系。
基于身份的加密方案中,用户身份本身就是公钥。这种方法极大减少了链上存储需求,只需存储单个组元素。加密过程也更为简便,发送方只需主公钥和接收方ID即可加密。但最大的问题在于强信任假设——密钥生成器拥有主密钥,可能危及所有用户的信息安全。
基于注册的加密方案结合了前两者的优点。用户自行生成密钥对,通过智能合约维护公钥的简洁”摘要”。虽然设置成本较高,但既减少了链上存储需求,又避免了强信任假设。发送方可以匿名加密信息,只需定期更新公共参数即可。
性能与适用场景
实际部署成本比较显示,PKI没有设置成本但注册成本低;IBE设置成本低且注册几乎免费;RBE虽然设置和注册成本较高,但提供了更好的隐私保护和更弱的信任假设。
公钥目录适合作为基础方案;当存在可信第三方且用户愿意接受信任假设时,IBE是更经济的选择;而重视隐私和无信任设置的用户则更适合选择RBE。尽管RBE成本较高,但其独特的优势使其在某些场景下具有不可替代的价值。
作者 Noemi Glaeser是马里兰大学和马克斯普朗克安全与隐私研究所的计算机科学博士候选人,曾于2023年夏天在a16z crypto担任研究实习生。
附录:扩展考量
处理密钥更新和撤销时,不同方案有不同机制。公钥目录可直接覆盖或删除条目;IBE建议定期更新密钥;RBE则需要通过特定编译器实现这些功能。使用链下数据存储可以显著减少公钥目录和RBE的链上存储需求,但对IBE影响不大。
声明:
本文转载自[a16zcrypto],原文标题”Key distribution on blockchains: The case for registration-based encryption”。文章观点仅代表作者个人,不构成投资建议。其他语言版本由Gate Learn团队翻译,未经许可不得转载。
声明:文章不代表CHAINTT观点及立场,不构成本平台任何投资建议。投资决策需建立在独立思考之上,本文内容仅供参考,风险 自担!转载请注明出处:https://www.chaintt.cn/15403.html