编者按:
9 月 19 日,a16z 的加密团队在 Nakamoto Challenge 中提出了七个问题,分别是:原子可组合性和共享测序的局限性、DePIN 验证、JOLT + Lasso 问题、合规可编程隐私、最佳 LVR 缓解、设计 MEV 交易供应链以及利用区块链进行 Deepfake 保护。
对于合规可编程隐私问题,开源加密工具 Zama 提出了一种解决方案,完全同态加密 (FHE) 或说 fhEVM 机密智能合约协议。fhEVM 以其在加密状态上进行计算的能力,为开发者提供了在链上构建合规可编程隐私应用的新途径。
去中心化标识(DID)作为数字身份的颁发者,存储在加密状态中,实现了用户身份的隐私和可编程合规的双赢。通过监管合约定义个体之间的代币转移规则,实现了对转账条件的动态监管。此设计在智能合约级别执行监管规定,无需硬编码,用户通过几行 Solidity 代码即可确保应用程序的合规性。
Zama 首席执行官 Rand Hindi 在文章中展示了如何使用 fhEVM 构建一个合规的 ERC20 代币,通过链上 DIDs 进行身份抽象。他指出,相对于其他隐私解决方案,fhEVM 的所有数据和计算均发生在链上,确保了可组合性和数据可用性。



注:图片为部分截图,可在原文查看完整代码下一步是实现标识和访问控制的逻辑。 标识符简单来说是一个字符串(例如「出生日期」)和一个加密的 32 位值。它只能由注册机构创建或更新。用户不能创建自己的标识符,因为我们希望它们经过注册机构的认证。 然而,由于标识符是加密的,用户需要授予合约访问特定值的权限,我们将通过一个简单的访问控制机制来处理,类似于您可以允许合约花费您的 ERC20 代币的简单访问控制机制。

注:图片为部分截图,可在原文查看完整代码现在我们可以通过添加必要的获取器,加入一些条件和错误处理,来完成我们的身份注册合约。

注:图片为部分截图,可在原文查看完整代码监管合约下一步是创建监管合约。 在实施两个个体之间的转账规则时,重要的是要认识到这些规则可能会随时间演变。有一个单一的智能合约来定义给定上下文(如资金转移)的所有监管规定,这意味着 ERC20 合约无需自己跟踪监管规定。政府只需更新此合约,它将自动传播到实施了它的所有代币。 在核心部分,监管合约只是一组与加密身份属性匹配的条件。为了防止滥用,用户不会直接授予监管合约访问权限,而是授予 ERC20 代币合约访问权限,然后由 ERC20 代币合约执行对监管合约的委托调用。这种方法确保只有用户信任的 ERC20 合约才能访问他们的信息。请记住,在发件人和接收人在它们之间发生转账之前,它们都必须已经授予 ERC20 合约许可。 在这个例子中,我们将实施一些基本规则: 国内的转账是无限制的,但向外国的转账上限为 1 万代币。 黑名单用户无法转账或接收代币。 用户不能将代币转账到黑名单国家。 与其使交易失败,可能会泄露敏感信息,如果其中一个条件不满足,我们将简单地将转账金额设置为 0。这使用了一个称为 cmux 的同态三元运算符:value = TFHE.cmux(encryptedCondition, valueIfTrue, valueIfFalse);

注:图片为部分截图,可在原文查看完整代码合规的隐私 ERC20 合约现在我们有了身份注册和监管合约,我们终于可以创建符合要求的、保护隐私的代币合约了。这个合约将被称为 CompliantERC20,具有以下关键特点: 用户余额和转账金额都是加密的。 合规性通过调用监管合约来执行转账。 可以向白名单地址(例如监管机构)授予对某些余额的可见性。

注:图片为部分截图,可在原文查看完整代码可简单的调用监管合约。这意味着用户在发起任何转账之前必须提供对 ERC20 合约的访问权限;否则,转账将被回滚。 最后,我们现在可以创建我们的 ERC20 合约:
