Zama 发布了 fhEVM v0.4 版本,引入了新的加密类型(ebool、euint4、euint64、eaddress)和异步解密API,通过 oracle 实现解密请求和回调,提升性能和效率。同时发布了fhEVM标准合约库 fhevm-contracts,包含ERC20和DAO等基础合约,简化开发流程。
这个新版本的 fhEVM 引入了新的加密类型和新的异步解密 API。此外,我们还发布了我们的标准 fhEVM 合约库的第一个版本。
这些新功能旨在提高 fhEVM 的整体性能,提高效率,并释放新用例的潜力。
fhEVM v0.4 扩展了支持的加密数据的类型:
Zama 的 fhEVM v0.4 引入了一个新的异步解密 API - fhEVM 智能合约现在可以通过预言机启动解密请求,并通过回调接收答案。
与之前在区块链网络中进行的同步解密相比,新的异步解密使 fhEVM 智能合约能够卸载解密任务,释放资源并提高整体性能。通过一次请求多个解密并处理回调参数的可能性,此改进优化了区块链上操作的效率和可扩展性。
这是一个简单的异步解密示例:
// SPDX-License-Identifier: BSD-3-Clause
pragma solidity ^0.8.20;
import "fhevm/lib/TFHE.sol";
import "fhevm/oracle/OracleCaller.sol";
contract MyContract is OracleCaller {
uint256 public total;
function requestDecryption(uint256 input1, uint256 input2) public {
euint8[] memory cts = new euint8[](1);
cts[0] = TFHE.asEuint8(42);
uint256 requestID = Oracle.requestDecryption(cts, this.callback.selector, 0, block.timestamp + 100);
addParamsUint(requestID, input1);
addParamsUint(requestID, input2);
}
function callback(uint256 requestID, uint8 decryptedInput) public onlyOracle returns (uint8) {
uint256[] memory params = getParamsUint(requestID);
total = uint256(decryptedInput) + params[0] + params[1];
}
}
⚠️ 这个新的异步解密功能弃用了同步解密。虽然 TFHE.decrypt 仍然在此版本(fhEVM v0.4)中有效,但它将在下一个版本(fhEVM v0.5)中删除。我们强烈建议用户使用新的异步解密方法升级他们的代码。
在此版本中,Zama 团队引入了一个新软件包,该软件包提供了一套基础的标准合约,包括 ERC20 和 DAO – fhevm-contracts。该库旨在易于扩展和自定义。它旨在帮助开发人员节省大量的开发时间,以便他们可以更多地关注促进创新。要使用 fhEVM 标准库,只需使用 npm install fhevm-contracts 安装它即可。有关更详细的解释和代码示例,请访问 fhEVM 文档。
- 原文链接: zama.ai/post/fhevm-v0-4...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!