原文来自IOHK Olga Hryniuk,由卡尔达诺大使陈哲Anson翻译
利用 ZK Snarks 在不牺牲去中心化特性的情况下启用保护隐私的智能合约功能
智能合约提供了一种标准方法来表达愿意,以去中心化的方式交易代币或数据的两方或多方之间的复杂交互。智能合约是区块链上有效的自动化数字协议。用代码编写,它们可以在满足预定条件时跟踪、验证和执行合约的绑定交易。为了创建表达此类条件的智能合约,开发人员使用编程语言。合约代码存储在去中心化的区块链网络上并分布在其中,使其透明,并且如果需要的话,是不可逆的。
在这篇博文中,我们讨论了 Kachina——一种由 Input Output Global (IOG) 与爱丁堡大学合作开发的保护隐私的智能合约解决方案。它使用户能够在不牺牲去中心化特性的情况下实现隐私保护和通用智能合约功能。
在智能合约交易中保护隐私
大多数智能合约分类账的透明度和公共设置使每个人都可以看到合约条件。虽然透明度是区块链技术最强大的优势之一,但隐私对于处理敏感数据的应用程序仍然至关重要。
开发人员可以使用多种加密技术来确保增加智能合约的隐私性。零知识证明 (ZKP) 和安全计算就是两个例子。在这种密码技术的推动下,出现了几种满足各种隐私定义并需要信任假设的解决方案。示例包括 Zexe、zkay、Hawk、Zether、Secret Network 等。这些解决方案中最具表现力的 Hawk 和 Secret 依赖于信任假设,极大地限制了它们可以实现的去中心化水平。 Hawk 假设系统核心有一小部分固定的参与者,而 Secret 依赖于可信执行环境 (TEE),这是一种具有广泛隐私破坏攻击历史的技术。这些技术从根本上与去中心化区块链平台的基本原则相冲突。
Kachina:私人智能合约的基础
Kachina 确定了一大类分布式计算,可表示为具有隐私保证的智能合约,开发人员无需额外的信任假设即可实施。
智能合约协议仅依靠零知识简洁的非交互式知识论证(ZK Snarks)来提供隐私。该协议的隐私保证通过数学建模和证明在通用可组合性(UC)安全框架中得到证明。该协议的主要目标是为进一步的隐私保护系统提供足够低级和通用的基础,而不需要随着每个新的扩展或更改而升级底层系统。
Kachina 允许合约作者在区块链和用户本地机器之间架起一座桥梁——它们分别通过两个独立的状态表示,一个公共状态和一个私有状态。合约可以同时更新链上(和共享)公共状态和链下(和本地)私有状态。然后,各方以零知识证明他们以允许的方式更新公共状态:他们提供有关私有状态存在的详细信息以及此更新有意义的输入。
Kachina 合同还确保:
• 以保护隐私的方式并发。 Kachina 通过 state oracle 成绩单的新颖概念实现了更高的并发性。这些是对与预言机查询交互的合约状态执行的操作的记录。合约作者可以优化冲突的交易,确保最小的泄漏,同时仍然允许重新排序。
• 高效的模块化结构。 Kachina 旨在大规模部署。以前使用零知识的作品没有明确维护合同状态。 Kachina 允许通过合约指定的神谕间接访问状态。这种间接访问确保了更大的可扩展性,因此,必须证明的复杂性在合同作者的完全控制之下并且可以优化。
在研究论文中,IOG 在私人支付案例研究中展示了 Kachina 协议的多功能性。该团队通过其转换和泄漏功能正式指定了一个私人代币合约。该合约支持私募资金转账、余额查询和资产创建。
虽然提议的设计主要是理论上的,但 Kachina 证明了在现实生活的限制下创建保护隐私的智能合约的可能性:
• 状态预言的使用允许将大多数计算困难或存储密集型操作移到零知识证明之外,从而降低其成本。
• 零知识证明系统仍然必须是通用的,但 ZKP 结构是存在的,并且可以在建议的环境中使用。
有关更多详细信息、示例和合约示例,请阅读“Kachina - 私人智能合约的基础”。
我要感谢 Thomas Kerber 在准备这篇博文时的投入和支持。
原文链接:Kachina: privacy-preserving smart contracts - IOHK Blog