Zama 团队发布了 fhEVM v0.5 版本,该版本引入了诸多增强功能,旨在提高在应用中处理加密数据的安全性和效率,包括打包输入机制、增强的访问控制列表 (ACL) 以及更新的解密和重新加密过程。Solidity API 迎来稳定和最终版本,该版本将与未来版本以及各种链兼容。
fhEVM v0.5 引入了许多重大增强,以提高应用程序中处理加密数据的安全性和效率,包括打包输入机制、增强的访问控制列表 (ACL) 以及更新的解密和重新加密过程。最重要的是,从 fhEVM v0.5 开始,Solidity API 进入稳定和最终版本,该版本将与未来版本和各种链兼容。
新版本引入了输入打包,允许将多个明文值打包到单个密文中。此更新对于 fhEVM 的未来发展至关重要,特别是对于预期推出的经过验证的输入。
在示例中,inputProof 用作包含所有加密数据的密文。变量 param1、param2 和 param3 用作指针。要访问加密值,你需要使用函数 TFHE.asEuintXX 传递这些指针以及实际数据。此方法检索指向的加密值,使其可以在进一步的加密操作中使用。
function myExample(
address account
einput param1,
uint id,
einput param2,
einput param3,
bool isAllowed,
bytes calldata inputProof
) {
euint64 amount = TFHE.asEuint64(param1, inputProof);
}
借助 v0.5,管理密文权限从未如此强大。访问控制列表 (ACL) 允许开发人员定义哪些地址有权操作密文,从而确保更明确和安全地处理权限。
为此,我们引入了两个新函数来显式授予对加密数据的访问权限:TFHE.allow(ciphertext, account) 和 TFHE.allowTransient(ciphertext, account)。这些新函数将永久或临时存储帐户计算或解密此密文的权限。
// MySecret.sol
function giveMySecret(einput encryptedSecret, bytes calldata inputProof) {
// 创建我的密钥
euint16 mySecret = TFHE.asEuint16(encryptedSecret, inputProof);
// 允许 SecretStore 合约临时操作 `mySecret`
TFHE.allowTransient(mySecret, address(SecretStore));
// 使用 `mySecret` 调用 `storeSecret`
SecretStore.storeSecret(mySecret);
}
// SecretStore.sol
function storeSecret(callerSecret euint16) {
// 验证调用者是否也有权访问此密文
require(TFHE.isSenderAllowed(callerSecret), "The caller is not authorized to access this secret.");
// 存储此密文
secret = callerSecret;
// 使此密文和当前合约的临时授权永久有效。
TFHE.allow(callerSecret, address(this));
}
以前,将加密状态变量公开是有风险的,因为其他合约可能会访问和使用你的加密数据。但是,通过新版本,可以缓解此问题。现在,虽然合约可以访问任何密文Handle,但如果没有访问控制列表 (ACL) 中指定的适当权限,它就无法操作或使用加密数据。这确保了你的加密数据保持安全,即使它可以访问。
通过利用链下服务,重新加密的安全性和效率得到了显着提高。此调整不仅增强了安全性,还通过委托此过程优化了加密操作的性能。
在以前的版本中,我们引入了异步解密,允许开发人员批量解密相同类型的多个解密。在 fhEVM v0.5 中,API 已升级为允许解密多种类型的批次:现在可以在同一回调中接收 ebool 和 euint64 的解密。有关更多详细信息,请参阅解密指南。
fHEVM 在过去一年中得到了显着发展,并且通过这些新功能,我们很高兴地宣布 fhEVM v0.5 代表了 Solidity API 的最终版本。在 v0.5 上开发的所有合约都设计为与未来版本和各种链兼容,包括 L1 fhEVM 区块链和未来在非 FHE 链上运行的协处理器。这确保了长期的稳定性和广泛的可用性。
fhEVM v0.5 引入了一些其他更改和改进:
如果你尚未尝试 fhEVM v0.5,请查看我们的文档并开始在 FHE 中构建机密智能合约!在下一个版本中,我们将为输入和新类型添加零知识证明。敬请关注!
- 原文链接: zama.ai/post/fhevm-v0-5-...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!