区块链起源于2008年发布的白皮书“Bitcoin: A Peer-to-Peer Electronic Cash System”,区块链被视为一种中心化的公共账本,具有数据可溯源、难以篡改、公开透明、智能合约自动执行等技术特点。
大多数区块链系统会将所有交易(Transactions)数据记录在公共账本中,一笔交易的有效性需要经过区块链网络中大部分节点的认可(通常这取决于区块链采用的共识机制)。早期区块链系统,因为所有交易公开透明,即所有节点均同步账本数据,这种方式导致了一定的隐私泄露。以 ZCash、Monero 为代表的匿名区块链系统,采用了混淆服务和环签名等技术,实现了交易地址的隐藏,即用户身份匿名化。
然而联盟链的应用场景更为广泛和复杂,链上存储的数据不再是转账信息,也包含了业务相关数据。例如金融、医疗等数据敏感场景下,公开所有数据则会导致数据泄露风险。
通过将隐私计算和区块链相结合,可以有效解决链上数据隐私保护问题,并且可以实现数据共享的全流程可记录、可追溯、可验证。本文仅讨论链上数据隐私保护解决方案,结合隐私计算和区块链的数据可信共享方案有更多参考。
根据不同场景需求,熠智科技推出了 YeeZ Crypt-Toolkit 以及 Fidelius 两种链上数据隐私保护解决方案。
YeeZ Crypt-Toolkit
对于较为简单的链上密文数据验证、计算场景,例如密文数字四则运算、密文数字与明文数字相等判定、链上密文白名单查询等,熠智科技推出了结合同态加密、零知识证明等技术实现的密码学工具库 YeeZ Crypt-Toolkit。
YeeZ Crypt-Toolkit 基于 El-Gamal 等加密体系,支持密文间加减和密文明文乘除运算。同时,为保证在区块链智能合约上实现高效计算,YeeZ Crypt-Toolkit 将同态计算转化为椭圆曲线群运算,并结合 YeeZChain 引入合约预编译技术,大幅提高合约执行效率。
同时,YeeZ Crypt-Toolkit 结合同态加密和零知识证明技术,可实现密文比较以及密文白名单查询,相比于 zk-SNARK 等零知识证明方案,YeeZ Crypt-Toolkit 不需要依赖可信第三方设定,并且计算双方只需单次交互即可完成验证。
目前 YeeZ Crypt-Toolkit 提供了 JavaScript 和 Java 版本,关于 YeeZ Crypt-Toolkit的应用案例可进行查看。
Fidelius
对于更为复杂的链上密文计算场景,采用可信执行环境环境(TEE)方案则更为合理。TEE 提供了基于硬件实现的安全区域,通过结合机密计算和区块链技术的能力,用户可以利用基于硬件的 TEE 提供认证和验证服务,优化可扩展性、隐私和安全性。
例如用户可以在基于硬件的 TEE 中执行智能合约,链上仅存储最终的密文结果,同时由 TEE 提供认证服务以证明交易的可靠性。
熠智科技推出的 Fidelius 提供了对于区块链的完善支持,区块链作为信息传输通道,保证了关键信息可溯源以及不可篡改。这些信息包括算法提供方发布的算法信息,数据提供方发布的数据信息,任务请求信息以及交付的结果信息。通过部署在区块链之上的智能合约,在提交任务的计算结果时,系统会对数据使用结果进行验证,保证数据、算法、参数以及结果四者的一致性,从根本上保证数据计算的可信。
Fidelius 并不依赖特定的区块链实现,因而能够部署在不同区块链系统上。当然,Fidelius 的性能,如吞吐量、响应时间等,受到底层区块链系统影响,我们推荐使用高性能的 YeeZChain 作为底层区块链平台。
更多关于在区块链上使用 Fidelius 的教程可进行参考。