在 Sepolia 上使用 Zama fhEVM 构建隐私代币与流动性池:全流程实战指南

目录

  • 引言
  • [一、 设置 Remix](#一、 设置 Remix)
    • [步骤 1: 连接到 Remix 中的 Zama 插件](#步骤 1: 连接到 Remix 中的 Zama 插件)
    • [步骤 2:安装 Zama 插件](#步骤 2:安装 Zama 插件)
  • [二、将您的钱包连接到 Remix](#二、将您的钱包连接到 Remix)
    • [步骤 1:设置 Sepolia 测试网](#步骤 1:设置 Sepolia 测试网)
    • [步骤 2:连接到 Zama 插件](#步骤 2:连接到 Zama 插件)
    • [步骤 3:将钱包连接到 Remix](#步骤 3:将钱包连接到 Remix)
  • [三、部署 ConfidentialERC20](#三、部署 ConfidentialERC20)
    • [步骤 1:设置合约](#步骤 1:设置合约)
    • [步骤 2:编写合约](#步骤 2:编写合约)
      • [2.1 基本合约结构](#2.1 基本合约结构)
      • [2.2 增强功能](#2.2 增强功能)
    • [步骤 3:编译合约](#步骤 3:编译合约)
    • [步骤 4:部署合约](#步骤 4:部署合约)
  • 四、与合约交互
    • [步骤 1:连接已部署的合约](#步骤 1:连接已部署的合约)
    • [步骤 2:将代币铸造到自己的账户](#步骤 2:将代币铸造到自己的账户)
    • [步骤 3:验证总供应量](#步骤 3:验证总供应量)
    • [步骤 4:查看您的余额](#步骤 4:查看您的余额)
    • [步骤 5:转移代币](#步骤 5:转移代币)
    • [步骤 6:验证更新的余额](#步骤 6:验证更新的余额)
  • 总结

引言

随着区块链应用越来越普及,数据完全公开和可见性成为隐私保护的一大挑战。而 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

本指南可帮助您在官方 Remix IDE 中设置 Zama 插件 ,从而使用 fhEVM 实现智能合约的无缝开发和管理。
先决条件

在开始之前,请确保您拥有以下内容:

  • Web 浏览器 (例如 Chrome、Firefox)。
  • 基本熟悉 Ethereum 智能合约 。
  • 加密钱包 (在本教程中,我们建议使用 MetaMask)。

步骤 1: 连接到 Remix 中的 Zama 插件

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

导航到 Remix IDE 以打开 传送🚪

在左侧边栏中,单击 Plugin Manager

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

步骤 2:安装 Zama 插件

使用以下配置:

插件名称 (必填) : 输入 Zama。

URL(必填):输入 https://remix.zama.ai/。

连接类型 (必选):选择 iframe

在 remix 中的位置 (必需):选择 Side Panel

单击 OK。

二、将您的钱包连接到 Remix

在本指南中,您将学习如何在 Remix IDE 中连接您的钱包和 Zama 插件 ,以便与 fhEVM 智能合约进行交互。
先决条件

在开始之前,请确保您具备以下条件:

  • 已安装 MetaMask 或其他兼容以太坊的钱包。

  • 在 Remix IDE 中安装的 Zama 插件 ( 请参阅设置 Remix)

请注意,当使用 Remix 连接钱包时,如果安装了多个钱包扩展(例如 MetaMask、Phantom),则可能会出现问题。这是 Remix的一个已知问题,可能会影响钱包连接功能。

如果您遇到错误,请考虑仅将 MetaMask 保留为活动钱包扩展,删除其他钱包扩展,并刷新 Remix cookie 并尝试重新连接。

步骤 1:设置 Sepolia 测试网

如果您使用的是 Metamask,则应预先配置 Sepolia 测试网。请按照以下步骤进行设置:

①打开 MetaMask。

单击左上角的 network 下拉菜单 ,然后选择 Sepolia Test Network。

确保有可用的 Sepolia ETH。如果没有足够的 ETH,请使用 Sepolia 水龙头申请免费的 SepoliaETH 进行测试:

Alchemy Faucet 传送🚪

QuickNode Faucet 传送🚪

如果 Sepolia 不可见: 转到设置 > 高级 。

将 Show test networks (显示测试网络 ) 切换为 ON。
如果您的钱包中没有预先配置 Sepolia,请手动添加它: 打开钱包的网络设置 。

单击 Add network (添加网络 ) 或 Add network manually (手动添加网络 )。

输入以下详细信息: 网络名称 :Sepolia RPC

URL:(由您的节点提供商提供,例如 Alchemy 或 Infura)

链 ID:11155111

货币符号 :SepoliaETH

区块浏览器 URL:https://sepolia.etherscan.io

步骤 2:连接到 Zama 插件

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

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

① 从侧面板打开 Remix 中的 Zama 插件 。

② 单击 Connect your wallet(连接您的钱包)。

③ 在 MetaMask 中确认连接。

④ 在 Zama 插件中,选择 Zama 协处理器 - Sepolia。

⑤ 单击 Use this configuration 以完成设置。

成功后,应该会在终端中看到绿色文本,指示配置已准备就绪。

注意一定要连接 Zama 插件。

步骤 3:将钱包连接到 Remix

按照以下步骤将您的钱包连接到 Remix:

① 打开 Remix 并导航至 Deploy & run transactions。

② 在 Environment (环境 ) 下,选择 Injected Provider - MetaMask (注入的提供程序 - MetaMask)。

③ MetaMask 将提示连接请求。单击 Connect 以继续。

④ 在 Account 中选择您的钱包地址 。

三、部署 ConfidentialERC20

在本教程中,您将学习如何使用 Zama 的 fhEVM 部署机密代币合约。我们将创建 MyConfidentialERC20.sol 来演示基本功能。
先决条件

在部署智能合同之前,请确保满足以下条件:

  • 安装的 Zama 插件安装在 Remix IDE 中(请参阅步骤 1)。

  • 您的钱包已连接到 Sepolia 测试网 (请参阅第 2 步 )。

步骤 1:设置合约

首先,让我们为我们的机密 ERC20 合约创建一个文件:

① 打开 文件资源管理器 从侧面菜单。

② 导航到 contracts 文件夹。

③ 单击 Create new file 图标。

④ 将文件命名为 MyConfidentialERC20.sol,然后按 Enter。

步骤 2:编写合约

2.1 基本合约结构

基础结构包括导入 Zama 的库和连接到 Sepolia 的 fhEVM 配置。

将以下代码复制到您刚刚创建的 MyConfidentialERC20.sol 中:

cpp 复制代码
// 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 测试网上的实时加密作设置所需的配置。

2.2 增强功能

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

fhevm-contracts 是一个 Solidity 库,专为开发人员使用 fhEVM 轻松开发机密智能合约而设计。它提供:

即用型机密合约 :具有 FHE 功能的通用代币标准的预构建实现

基础合同 :用于创建自定义机密智能合约的基础构建块

扩展 :可以添加到基本合同的其他功能和实用程序

测试实用程序 :帮助测试支持 FHE 的智能合约的工具

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

  • 私人令牌传输和加密余额

  • 授权地址的铸造功能

  • 完全兼容 ERC20

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

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

cpp 复制代码
// 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) {}
}

步骤 3:编译合约

现在合约已经准备好了,下一步就是编译它了:

① 选择 MyConfidentialERC20.sol。

② 转到 Remix 中的 Solidity 编译器 。

③ 单击 Compile。

如果成功,您将在 Solidity 编译器上看到一个绿色的对号,指示"编译成功"

步骤 4:部署合约

现在,合约已准备好部署:

① 确保环境设置正确

  • 环境: 注入的 Provider - Metamask

  • 帐户: 您的钱包地址

② 展开 Deploy 部分。

③ 填写构造函数参数:

  • Name:您的令牌名称(例如,"My Private Token")。

  • Symbol:代币符号(例如,"MPT")。

④ 单击 Transact 并在 MetaMask 中确认交易。

成功部署后,您的合同将显示在 Deployed contracts (已部署的合同 ) 下。您还可以通过点击合约地址在 Etherscan 上查看您的合约。

四、与合约交互

使用 Remix 部署您的第一个 fhEVM 合约后,本指南将向您展示如何使用 Zama 插件在 Remix 中直接与它进行交互。
先决条件

  • 在与已部署的合约交互之前,请确保满足以下条件:

  • 部署已完成 :您已成功部署 MyConfidentialERC20 合约(请参阅第 3 步 )。

  • MetaMask 钱包 :您的 MetaMask 钱包已连接到 Sepolia 测试网(请参阅第 2 步 )。你可能想准备一个额外的钱包作为接收者来模拟转账功能。

  • Remix 中的 Zama 插件 :Zama 插件已安装并在 Remix 中访问(请参阅步骤 1)。

步骤 1:连接已部署的合约

要直接在 Remix 中执行交易,合约需要连接到 Zama 插件 :

① 从侧边栏打开部署并运行事务

② 在 "Deployed Contract(已部署的合约 )"中,复制刚刚部署的 MYCONFIDENTIALERC20 合约的地址。

③ 从侧边菜单打开 Zama 插件 。

④ 将合约地址粘贴到 Deploy 部分下的 "At address" 字段中。

⑥ 单击 At address。

如果地址输入正确,MyConfidentialERC20.sol 合约将显示在 Zama 插件内的" 已部署合约 "中。

单击以展开合约,您将看到与合约的所有功能交互的界面。 机密 ERC20Mintable 支持所有标准 ERC-20 函数,但适用于加密值,包括:

  • transfer:安全地传输加密的 Token。

  • approve:批准用于支出的加密金额。

  • transferFrom:代表另一个地址转移代币。

  • balanceOf:返回账户的加密余额。

  • totalSupply:返回代币总供应量。

步骤 2:将代币铸造到自己的账户

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

① 从 MetaMask 复制您的钱包地址。

② 在 Zama Plugin 中, 点击展开您的合约的 mint 功能。

③ 输入您的钱包地址和要铸造的代币数量(例如,1000)。

④ 单击 Submit。

⑤ 在 MetaMask 中确认交易。

一旦 sccussful,您应该会在终端中看到该消息。

注意!这里是在ZAMA的插件中!!!

步骤 3:验证总供应量

成功铸造交易后,单击 totalSupply 以反映铸造的代币(例如,1000)

步骤 4:查看您的余额

要验证您的账户余额:

① 单击以展开 balanceOf 函数。

② 输入您的钱包地址。

③ 单击 Submit (提交 ) 以验证您的账户余额。

您的余额使用 FHE 存储为加密数据。除您之外,其他人无法查看 。

如果要以明文形式查看余额:

  • 单击重新加密选项

  • 在 Metamask 中确认交易

您可以看到密文已解密,您的余额是您刚刚铸造的金额。

步骤 5:转移代币

要将机密的 ERC20 代币转移到另一个账户:

① 复制接收者钱包的地址。

② 点击 transfer 展开功能,设置以下参数:

  • To:输入 reveiver 的钱包地址。

  • encryptedAmount:指定要转账的金额(例如 1000)。选择 euint64。

  • inputProof:选中输入框。

③ 单击 Submit 继续。

④ 在 MetaMask 中确认交易。

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

转移代币记得一定要点击 input!!!

步骤 6:验证更新的余额

转账后,可以验证更新后的账户余额:

再次使用 balanceOf 函数查看原始账户的更新余额(请参阅第 5 步:检查您的余额 )。

执行重新加密以确认更改,会在您的账户中看到剩余的令牌。(例如,剩余 900 个令牌)。

总结

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

相关推荐
选择不变8 小时前
日线周线MACD指标使用图文教程,通达信指标
大数据·区块链·通达信指标公式·炒股技巧·短线指标·炒股指标
链上Sniper8 小时前
智能合约状态快照技术:实现 EVM 状态的快速同步与回滚
java·大数据·linux·运维·web3·区块链·智能合约
TechubNews17 小时前
稳定币发行量创纪录地超过 Visa 交易量
区块链
dingzd951 天前
结合指纹防护技术,释放Web3去中心化的潜力
web3·去中心化·区块链·facebook·tiktok·instagram·clonbrowser
OEC小胖胖1 天前
去中心化身份:2025年Web3身份验证系统开发实践
前端·web3·去中心化·区块链
长安链开源社区10 天前
长安链浏览器「数据看板」 高效洞察数据状态与趋势
web3·区块链·共识算法
MicroTech202510 天前
微算法科技(NASDAQ:MLGO)研发可信共识算法TCA,解决区块链微服务中的数据一致性与安全挑战
运维·算法·区块链·共识算法
闲坐含香咀翠11 天前
Hyperledger Fabric 联盟链网络实操部署指南(二)
区块链
闲坐含香咀翠11 天前
Hyperledger Fabric 联盟链网络实操部署指南(一)
区块链