隐私币新风口!比特鹰带你玩转Zama fhEVM全流程!

随着区块链应用越来越普及,数据完全公开和可见性成为隐私保护的一大挑战。而 Zama 的 fhEVM(Fully Homomorphic Encryption EVM) 解决了这一难题,比特鹰蛋挞将为你带来ZAMA技术的前沿分析。

作者:比特鹰蛋挞

引言

随着区块链应用越来越普及,数据完全公开和可见性成为隐私保护的一大挑战。而 Zama 的 fhEVM(Fully Homomorphic Encryption EVM) 解决了这一难题:它允许开发者使用熟悉的 Solidity 写智能合约,同时通过 全同态加密(FHE) 确保所有敏感数据(如余额、交易金额)都始终以加密形式存在,即使链上的验证者也无法读取。fhEVM 不仅保证隐私性,而且保持合约间的可组合性,并支持端对端的加密计算。它目前已在 Sepolia 测试网 上部署了协处理器,未来还将扩展至 Ethereum 主网、Base 等多个 EVM 兼容链,使开发者能够打造私密化 DApp、加密代币、隐私拍卖和更多创新场景。

ZAMA 官网:<https://docs.zama.ai/fhevm/0.6/getting-started/overview-1/remix/interact>\ ZAMA Github仓库:<https://github.com/zama-ai/fhevm-hardhat-template>\ Remix:<https://remix.ethereum.org/>

一、 设置 Remix

连接到 Remix 中的 Zama 插件

Zama 插件允许您直接在 Remix 中与机密合同进行交互。要进行设置,请执行以下作:

导航到 Remix IDE 以打开 传送🚪

在左侧边栏中,单击 Plugin Manager

在 Plugin Manager 中,选择 Connect to a Local Plugin

安装 Zama 插件

使用以下配置:

插件名称 (必填) : 输入 Zama。\ URL(必填):输入 <https://remix.zama.ai/。>\ 连接类型 (必选):选择 iframe\ 在 remix 中的位置 (必需):选择 Side Panel\ 单击 OK。

二、将您的钱包连接到 Remix

在本指南中,您将学习如何在 Remix IDE 中连接您的钱包和 Zama 插件 ,以便与 fhEVM 智能合约进行交互。\ 先决条件\ 在开始之前,请确保您具备以下条件:

  • 已安装 MetaMask 或其他兼容以太坊的钱包。
  • 在 Remix IDE 中安装的 Zama 插件

请注意,当使用 Remix 连接钱包时,如果安装了多个钱包扩展(例如 MetaMask、Phantom),则可能会出现问题。这是 Remix的一个已知问题,可能会影响钱包连接功能。\ 如果您遇到错误,请考虑仅将 MetaMask 保留为活动钱包扩展,在浏览器扩展禁用其他钱包扩展,并刷新 Remix cookie 并尝试重新连接。

连接到 Zama 插件

Zama 插件提供 Zama 协处理器 - Sepolia 配置 ,确保 Remix 和钱包正确设置以与 fhEVM 智能合约交互。

要完成配置,请执行以下步骤:

① 从侧面板打开 Remix 中的 Zama 插件 。\ ② 单击 Connect your wallet(连接您的钱包)。\ ③ 在 MetaMask 中确认连接。\ ④ 在 Zama 插件中,选择 Zama 协处理器 - Sepolia。\ ⑤ 单击 Use this configuration 以完成设置。\ 成功后,应该会在终端中看到绿色文本,指示配置已准备就绪。\

注意一定要连接 Zama 插件。\

三、部署 ConfidentialERC20

在本教程中,您将学习如何使用 Zama 的 fhEVM 部署机密代币合约。我们将创建 MyConfidentialERC20.sol 来演示基本功能。\ 先决条件\ 在部署智能合同之前,请确保满足以下条件:

  • 安装的 Zama 插件安装在 Remix IDE 中(请参阅步骤 1)。
  • 您的钱包已连接到 Sepolia 测试网 (请参阅第 2 步 )。

编写合约

基本合约结构

基础结构包括导入 Zama 的库和连接到 Sepolia 的 fhEVM 配置。\ 将以下代码复制到刚刚创建的 MyConfidentialERC20.sol 中:

// SPDX-License-Identifier: BSD-3-Clause-Clear

pragma solidity ^0.8.24;

import "fhevm/lib/TFHE.sol";
import "fhevm/config/ZamaFHEVMConfig.sol";

contract MyConfidentialERC20 is SepoliaZamaFHEVMConfig {}

Remix 会在您键入时自动保存任何更改。保存后,它会导入以下库:

TFHE.sol:Zama 的 fhEVM 的核心 Solidity 库。它支持像 euint64 这样的加密数据类型,保护加密作,例如加法和比较,并允许访问控制。\ SepoliaZamaFHEVMConfig:一个配置合约,可自动为 Sepolia 测试网上的实时加密作设置所需的配置。

增强功能

接下来,我们将通过导入 fhevm-contracts 库来增强我们的 Contract。

fhevm-contracts 是一个 Solidity 库,专为开发人员使用 fhEVM 轻松开发机密智能合约而设计。它提供:\ 即用型机密合约 :具有 FHE 功能的通用代币标准的预构建实现\ 基础合同 :用于创建自定义机密智能合约的基础构建块\ 扩展 :可以添加到基本合同的其他功能和实用程序\ 测试实用程序 :帮助测试支持 FHE 的智能合约的工具

fhevm-contracts 库包括 ConfidentialERC20Mintable 合约,它是 ConfidentialERC20 的扩展,具有铸造功能,提供:

  • 私人令牌传输和加密余额
  • 授权地址的铸造功能
  • 完全兼容 ERC20

它继承了所有基本的 ConfidentialERC20 功能,同时增加了安全的令牌创建和分发功能。

要使用 ConfidentialERC20Mintable 合约,只需使用以下代码更新您的 MyConfidentialERC20.sol 即可:

// SPDX-License-Identifier: BSD-3-Clause-Clear
pragma solidity ^0.8.24;

import "fhevm/lib/TFHE.sol";
import "fhevm/config/ZamaFHEVMConfig.sol";
import "fhevm-contracts/contracts/token/ERC20/extensions/ConfidentialERC20Mintable.sol";

contract MyConfidentialERC20 is SepoliaZamaFHEVMConfig, ConfidentialERC20Mintable {
  constructor(string memory name_, string memory symbol_) ConfidentialERC20Mintable(name_, symbol_, msg.sender) {}
}

编译合约和部署合约

四、与合约交互

先决条件

  • 在与已部署的合约交互之前,请确保满足以下条件:
  • 部署已完成 :您已成功部署 MyConfidentialERC20 合约(请参阅第 3 步 )。
  • MetaMask 钱包 :您的 MetaMask 钱包已连接到 Sepolia 测试网(请参阅第 2 步 )。你可能想准备一个额外的钱包作为接收者来模拟转账功能。
  • Remix 中的 Zama 插件 :Zama 插件已安装并在 Remix 中访问(请参阅步骤 1)。

连接已部署的合约

要直接在 Remix 中执行交易,合约需要连接到 Zama 插件(这里部署合约之后,要转到ZAMA的插件里面) :\ ① 从侧边栏打开部署并运行事务\ ② 在 “Deployed Contract(已部署的合约 )”中,复制刚刚部署的 MYCONFIDENTIALERC20 合约的地址。\ ③ 从侧边菜单打开 Zama 插件 。\ ④ 将合约地址粘贴到 Deploy 部分下的 “At address” 字段中。\ ⑥ 单击 At address。\ 如果地址输入正确,MyConfidentialERC20.sol 合约将显示在 Zama 插件内的“ 已部署合约 ”中。\

铸代币到自己的账户

在这里,你可以向您的账户铸造机密的 ERC20 代币:

① 从 MetaMask 复制您的钱包地址。\ ② 在 Zama Plugin 中, 点击展开您的合约的 mint 功能。\ ③ 输入您的钱包地址和要铸造的代币数量(例如,1000)。\ ④ 单击 Submit。\ ⑤ 在 MetaMask 中确认交易。\ 一旦 sccussful,您应该会在终端中看到该消息。

注意!这里是在ZAMA的插件中,不要弄错啦!!!\

转移代币

要将机密的 ERC20 代币转移到另一个账户:\ ① 复制接收者钱包的地址。\ ② 点击 transfer 展开功能,设置以下参数:

  • To:输入 reveiver 的钱包地址。
  • encryptedAmount:指定要转账的金额(例如 1000)。选择 euint64。
  • inputProof:选中输入框。

③ 单击 Submit 继续。

如果成功,您应该会在终端中看到该消息。

注意:转移代币记得要点击 input !!!\

总结

比特鹰总结,通过 Zama 的 fhEVM 在 Remix 中连接 Sepolia 测试网,使用 Zama 插件部署一份 MyConfidentialERC20 隐私代币合约,该合约基于 ConfidentialERC20Mintable 扩展,继承了加密余额、私密转账和 mint 功能。部署后,你可以通过插件界面执行 mint、transfer、balanceOf 与 totalSupply 等加密操作,还能用 fhevmjs 客户端脚本进行加密交易和重新加密查询。

团队招募 | 共同探索技术边界

我们正在组建一支专注 AI + Web3 技术研发的团队,期待与你共同推动以下方向:

  • 数据开发工程师
  • 爬虫工程师
  • 后端开发工程师
  • 网络安全工程师
  • 运维工程师
  • Web3海外运营

如果您对加密技术创新有热情,欢迎与我们共建未来:
联系方式:join@biteagle.xyz

点赞 0
收藏 0
分享

0 条评论

请先 登录 后评论
比特鹰
比特鹰
0x18E5...7220
比特鹰是国内领先的AI+Web3公司,高速发展阶段,如果您在找工作,欢迎投简历:join@biteagle.xyz