跳到主要内容

75 篇博文 含有标签「Smart Contracts」

智能合约开发和安全

查看所有标签

Zama Protocol:构建区块链隐私层的全同态加密 (FHE) 独角兽

· 阅读需 14 分钟
Dora Noda
Software Engineer

Zama 已确立其在区块链全同态加密(FHE)领域的绝对领导地位,并在 2025 年 6 月筹集超过 1.5 亿美元资金后,以 10 亿美元的估值成为 全球首个 FHE 独角兽。这家总部位于巴黎的公司并不与区块链竞争 —— 它提供密码学基础设施,使任何 EVM 链都能够在不解密底层数据的情况下处理加密的智能合约。随着其主网于 2025 年 12 月底在以太坊上线,以及 $ZAMA 代币拍卖于 2026 年 1 月 12 日开始,Zama 正处于理论密码学突破向生产就绪型部署迈进的关键拐点。

其战略意义不言而喻:虽然零知识证明证明了计算的正确性,而可信执行环境(TEE)依赖于硬件安全,但 FHE 独特地实现了 对多方加密数据的计算 —— 解决了透明度、隐私和合规性之间的区块链基本三难困境。摩根大通(JP Morgan)等机构已通过 Project EPIC 验证了这种方法,展示了在完全符合监管要求的情况下进行机密代币化资产交易。Zama 作为基础设施而非竞争链的定位,意味着无论最终哪个 L1 或 L2 占据主导地位,它都能捕获价值。


技术架构实现无信任假设的加密计算

全同态加密代表了密码学的一个突破,虽然自 2009 年以来就在理论上存在,但直到最近才变得实用。“同态”一词是指一种数学特性,即对加密数据执行的操作,在解密后,其结果与对原始明文执行的操作结果完全一致。Zama 的实现采用了 TFHE(Torus 全同态加密),该方案的特点是快速自举(fast bootstrapping) —— 这是重置密文中累积噪声并实现无限计算深度的基础操作。

fhEVM 架构 引入了一种符号执行模型,优雅地解决了区块链的性能限制。智能合约不直接在链上处理实际的加密数据,而是使用轻量级句柄(指针)执行,而实际的 FHE 计算则异步卸载到专门的协处理器。这种设计意味着像以太坊这样的宿主链无需修改,非 FHE 交易不会减速,且 FHE 操作可以并行而非顺序执行。该架构由五个集成组件组成:面向 Solidity 开发者的 fhEVM 库、执行 FHE 计算的协处理器节点、使用 13 个 MPC 节点 进行门限解密的密钥管理服务、用于可编程隐私的访问控制列表(ACL)合约,以及编排跨链操作的网关。

性能基准测试显示出快速进步。 自举延迟 —— FHE 的关键指标 —— 在 NVIDIA H100 GPU 上从最初的 53 毫秒降至 1 毫秒以下,吞吐量在八个 H100 上达到 每秒 189,000 次自举。目前的协议吞吐量在 CPU 上达到 20+ TPS,足以处理目前所有以太坊加密交易。路线图预计到 2026 年底随着 GPU 迁移,TPS 将达到 500-1,000,并在 2027-2028 年通过专用 ASIC 扩展到 100,000+ TPS。与易受硬件侧信道攻击影响的 TEE 解决方案不同,FHE 的安全性建立在基于格(lattice-based)的密码硬度假设之上,提供 抗量子性


开发者工具已从研究走向生产

Zama 的开源生态系统由四个相互关联的产品组成,已吸引了超过 5,000 名开发者,占据了区块链 FHE 约 70% 的市场份额。TFHE-rs 库 提供了纯 Rust 实现,支持通过 CUDA 进行 GPU 加速,通过 AMD Alveo 硬件进行 FPGA 支持,并提供从高级操作到核心密码原语的多级 API。该库支持高达 256 位的加密整数,操作包括算术、比较和条件分支。

Concrete 充当构建在 LLVM/MLIR 基础设施上的 TFHE 编译器,将标准的 Python 程序转换为 FHE 等效电路。开发者不需要密码学专业知识 —— 他们编写普通的 Python 代码,Concrete 会处理电路优化、密钥生成和密文管理的复杂性。对于机器学习应用,Concrete ML 提供了 scikit-learn 模型的直接替代方案,可自动编译为 FHE 电路,支持线性模型、基于树的集成,甚至加密的 LLM 微调。1.8 版本展示了在大约 70 小时内对 100,000 个加密 token 进行 LLAMA 8B 模型的微调。

fhEVM Solidity 库 使开发者能够使用熟悉的语法和加密类型(euint8 到 euint256、ebool、eaddress)编写机密智能合约。例如,加密的 ERC-20 转账使用 TFHE.le() 比较加密余额,并使用 TFHE.select() 进行条件逻辑 —— 所有这些都不会泄露数值。2025 年 9 月与 OpenZeppelin 的合作确立了标准化的机密代币实现、密封拍卖原语和治理框架,加速了企业级应用。

商业模式:作为基础设施提供商捕捉价值

Zama 的融资轨迹反映了机构信心的加速:2024 年 3 月由 Multicoin Capital 和 Protocol Labs 领投的 7300 万美元 A 轮融资,随后是 2025 年 6 月由 Pantera Capital 领投的 5700 万美元 B 轮融资,使其达到了独角兽地位。投资者阵容堪称区块链界的重磅人物——Juan Benet(Filecoin 创始人兼董事会成员)、Gavin Wood(以太坊和 Polkadot 联合创始人)、Anatoly Yakovenko(Solana 联合创始人)以及 Tarun Chitra(Gauntlet 创始人)均参与其中。

收入模式采用 BSD3-Clear 双重许可协议:技术对非商业研究和原型设计保持免费,而生产部署则需要购买专利使用权。截至 2024 年 3 月,Zama 在商业化后的六个月内已签署了超过 5000 万美元的合同价值,另有数百家潜在客户正在对接中。基于交易的定价适用于私有区块链部署,而加密项目通常以代币支付。即将推出的 Zama 协议引入了链上经济:运营商质押 $ZAMA 以获得加密和解密工作的资格,费用从每次 ZKPoK 验证的 0.005 - 0.50 美元到每次解密操作的 0.001 - 0.10 美元不等。

该团队代表了全球最大的专门从事 FHE 研究的组织:拥有分布在 26 个国家的 96 多名员工,其中 37 人拥有博士学位(约占员工总数的 40%)。联合创始人兼首席技术官 Pascal Paillier 发明了用于数十亿张智能卡的 Paillier 加密方案,并在 2025 年荣获享有盛誉的 IACR 会士荣誉。首席执行官 Rand Hindi 此前创办了被 Sonos 收购的人工智能语音平台 Snips。这种密码学人才的集中形成了巨大的知识产权护城河——Paillier 拥有约 25 个专利家族来保护核心创新。


竞争定位:作为区块链隐私的“卖铲子”角色

隐私解决方案领域分为三种基本方法,每种方法都有不同的权衡。可信执行环境 (TEEs) 被 Secret Network 和 Oasis Network 所采用,提供接近原生的性能,但依赖于硬件安全且信任阈值为 1——如果飞地 (enclave) 被攻破,所有隐私都会泄露。2022 年 10 月披露的影响 Secret Network 的 TEE 漏洞凸显了这些风险。零知识证明 (ZKPs) 被 Aztec 协议(获得 a16z 的 1 亿美元 B 轮融资)所采用,在不暴露输入的情况下证明计算的正确性,但无法对来自多方的加密数据进行计算——这限制了它们在借贷池等共享状态应用中的适用性。

FHE 占据了独特的地位:在数学上保证隐私,具有可配置的信任阈值,不依赖硬件,并且具有处理来自多个来源的加密数据的关键能力。这使得那些在其他方法下不可能实现的用例成为可能——例如,根据流动性提供者的加密储备进行计算的机密 AMM,或者管理加密抵押品头寸的借贷协议。

在 FHE 领域内,Zama 作为基础设施层运作,而其他项目则在之上构建链。Fhenix(融资 2200 万美元)通过合作伙伴关系使用 Zama 的 TFHE-rs 构建了一个 Optimistic Rollup L2,并在 Arbitrum 上部署了 CoFHE 协处理器作为第一个实际的 FHE 实现。Inco Network(融资 450 万美元)使用 Zama 的 fhEVM 为现有链提供机密即服务,同时提供基于 TEE 的快速处理和 FHE+MPC 安全计算。这两个项目都依赖于 Zama 的核心技术——这意味着无论哪条 FHE 链占据主导地位,Zama 都能捕捉到价值。这种基础设施定位类似于 OpenZeppelin 如何从智能合约的采用中获利,而不与以太坊直接竞争。


用例涵盖 DeFi、AI、RWA 和合规支付

在 DeFi 中,FHE 从根本上解决了 MEV(最大可提取价值)问题。由于交易参数在区块包含之前一直保持加密状态,抢先交易和三明治攻击在数学上变得不可能——因为根本没有可见的内存池 (mempool) 数据可供利用。ZamaSwap 参考实现展示了具有完全加密余额和池储备的加密 AMM 交易。除了 MEV 保护外,机密借贷协议还可以维护加密的抵押品头寸和清算阈值,从而实现基于私人财务数据计算的链上信用评分。

对于人工智能和机器学习,Concrete ML 能够实现跨医疗保健(加密医疗诊断)、金融(对加密交易进行欺诈检测)和生物识别(无需泄露身份的身份验证)的隐私保护计算。该框架支持加密的 LLM 微调——在从未离开加密形式的敏感数据上训练语言模型。随着 AI 代理在 Web3 基础设施中激增,FHE 提供了机密计算层,在不牺牲效用的情况下确保数据隐私。

现实世界资产 (RWA) 代币化或许代表了最大的机遇。摩根大通 Kinexys Project EPIC 概念验证展示了具有加密投标金额、隐藏投资者持仓以及对加密数据进行 KYC/AML 检查的机构资产代币化——同时保持完全的监管合规性。这解决了阻止传统金融使用公共区块链的根本障碍:无法向竞争对手隐藏交易策略和头寸。随着代币化 RWA 预计将成为一个超过 100 万亿美元的潜在市场,FHE 解锁了私有区块链无法提供的机构参与。

支付和稳定币隐私完善了这一图景。2025 年 12 月的主网发布包括了首次使用 cUSDT 的机密稳定币转账。与基于混币的方法(如 Tornado Cash)不同,FHE 实现了可编程合规性——开发人员定义访问控制规则来确定谁可以解密什么,从而实现符合监管要求的隐私,而非绝对的匿名。授权的审计人员和监管机构可以在不损害一般交易隐私的情况下获得适当的访问权限。

监管格局为合规隐私创造了助力

欧盟的 MiCA 框架自 2024 年 12 月 30 日起全面生效,为保持合规的隐私解决方案创造了强劲需求。Travel Rule(资金传输规则)要求加密资产服务提供商共享所有转账的发起人和受益人数据,且没有最低限额——这使得像混币(mixing)这种默认隐私的方法变得不切实际。FHE 的选择性披露机制精确地对齐了这一要求:交易对普通观察者保持加密状态,而授权方则可以访问必要信息。

在美国,2025 年 7 月签署的《GENIUS 法案》建立了首个全面的联邦稳定币框架,标志着监管的成熟,这有利于合规的隐私解决方案,而非规避监管的手段。亚太地区继续推进进步的框架,香港的稳定币监管制度于 2025 年 8 月生效,新加坡在加密货币牌照方面保持领先地位。跨司法管辖区的模式都倾向于既能实现隐私又能满足监管合规的解决方案——这正是 Zama 的价值主张。

2025 年的执法重点从被动起诉转向主动框架,为 FHE 的采用创造了机会。从一开始就构建合规隐私架构的项目——而不是为了合规而对隐私优先的设计进行事后修补——将发现更容易获得机构采用和监管批准。


技术和市场挑战需要谨慎应对

性能仍然是主要障碍,尽管发展轨迹是明确的。FHE 操作目前比明文等效操作慢约 100 倍——对于低频高价值交易是可以接受的,但对于高吞吐量应用则存在限制。扩容路线图取决于硬件加速:2026 年的 GPU 迁移、FPGA 优化以及最终的定制 ASIC。DARPA 的 DPRIVE 计划资助 Intel、Duality、SRI 和 Niobium 进行 FHE 加速器开发,代表了政府在加速这一进程方面的重大投入。

密钥管理引入了其自身的复杂性。 当前用于门限解密的 13 节点 MPC 委员会需要诚实大多数假设——门限节点之间的勾结可能导致其他参与者无法检测到的“沉默攻击”。路线图目标是扩展到 100 多个节点,并集成 HSM 和后量子 ZK 证明,从而加强这些保证。

来自 TEE 和 ZK 替代方案的竞争不容忽视。Secret Network 和 Oasis 提供生产就绪的机密计算,目前的性能明显更好。Aztec 拥有 1 亿美元的支持,其团队发明了 PLONK(主流的 ZK-SNARK 结构),这意味着在隐私保护 Rollup 领域存在强大的竞争。如果硬件安全性的提升速度快于 FHE 加速,TEE 的性能优势可能会持续存在,尽管硬件信任假设创造了一个 ZK 和 FHE 方案所没有的根本性天花板。


总结:基础设施定位捕捉生态系统增长价值

Zama 的战略天才之处在于其作为基础设施而非竞争性公链的定位。Fhenix 和 Inco 这两个领先的 FHE 区块链实现都建立在 Zama 的 TFHE-rs 和 fhEVM 技术之上,这意味着无论哪个协议获得采用,Zama 都能获得许可收入。双重许可模式确保了开源开发者的采用能够驱动商业企业需求,而 2026 年 1 月推出的 $ZAMA 代币则创造了链上经济学,将运营商的激励与网络增长对齐。

三个因素将决定 Zama 的最终成功:性能路线图的执行情况,即从目前的 20 TPS 提升到使用 ASIC 后的 100,000+ TPS;继摩根大通(JP Morgan)验证之后的机构采用;以及开发者生态系统的增长,从目前的 5,000 名开发者渗透到主流 Web3 领域。监管环境已果断转向有利于合规隐私的方向,而 FHE 独特的加密多方计算能力解决了 ZK 或 TEE 都无法服务的用例。

对于 Web3 研究员和投资者来说,Zama 代表了区块链隐私领域典型的“卖铲子”机会——随着机密计算层在 DeFi、AI、RWA 和机构采用中的成熟,该基础设施将捕捉价值。10 亿美元的估值反映了重大的执行风险,但如果技术路线图成功交付,Zama 可能成为未来十年区块链发展的核心基础设施。

Pectra之后的EIP-7702:以太坊应用开发者实用指南

· 阅读需 10 分钟
Dora Noda
Software Engineer

2025年5月7日,以太坊的Pectra升级(Prague + Electra)在主网上线。其中对开发者最明显的变化之一是EIP-7702,它允许外部拥有账户(EOA)"挂载"智能合约逻辑——无需迁移资金或更改地址。如果你构建钱包、dapp或中继器,这为智能账户UX开启了一条更简单的道路。

以下是一份简洁的、实现优先的指南:实际发布了什么,7702如何工作,何时选择它而不是纯ERC-4337,以及你今天可以适配的复制粘贴脚手架。


实际发布的内容

  • EIP-7702在Pectra的最终范围内。 Pectra硬分叉的meta-EIP正式列出7702为包含的变更之一。
  • 激活详情: Pectra在2025年5月7日的纪元364032在主网激活,此前在所有主要测试网成功激活。
  • 工具链说明: Solidity v0.8.30将其默认EVM目标更新为prague以兼容Pectra。你需要升级编译器和CI管道,特别是如果你固定特定版本的话。

EIP-7702—工作原理(技术细节)

EIP-7702引入了一种新的交易类型和EOA将其执行逻辑委托给智能合约的机制。

  • 新交易类型(0x04): 类型4交易包括一个名为authorization_list的新字段。此列表包含一个或多个授权元组—(chain_id, address, nonce, y_parity, r, s)—每个都由EOA的私钥签名。当处理此交易时,协议向EOA的代码字段写入委托指示符0xef0100 || address。从那时起,对EOA的任何调用都会代理到指定的address实现),但在EOA的存储和余额上下文中执行。此委托保持活动状态,直到明确更改。
  • 链范围: 授权可以通过提供chain_id特定于链,或者如果chain_id设置为0,则可以适用于所有链。这允许你在多个网络上部署相同的实现合约,而无需用户为每个网络签署新的授权。
  • 撤销: 要将EOA恢复到其原始的不可编程行为,你只需发送另一个7702交易,其中实现address设置为零地址。这会清除委托指示符。
  • 自赞助vs.中继: EOA可以自己提交类型4交易,或者第三方中继器可以代表EOA提交。后者常用于创建无gas用户体验。nonce处理根据方法略有不同,因此使用正确处理此区别的库很重要。

安全模型转变: 因为原始EOA私钥仍然存在,它总是可以通过提交新的7702交易来更改委托,从而覆盖任何智能合约规则(如社交恢复或支出限制)。这是根本性的变化。依赖tx.origin验证调用来自EOA的合约必须重新审核,因为7702可能破坏这些假设。相应地审核你的流程。


7702还是ERC-4337?(何时组合)

EIP-7702和ERC-4337都能实现账户抽象,但它们服务于不同的需求。

  • 选择EIP-7702当…
    • 你想为现有EOA提供即时智能账户UX,而不强迫用户迁移资金或更改地址。
    • 你需要可以逐步升级新功能的跨链一致地址
    • 你想分阶段过渡到账户抽象,从简单功能开始,随时间添加复杂性。
  • 选择纯ERC-4337当…
    • 你的产品从第一天起就需要完全可编程性和复杂的策略引擎(如多重签名、高级恢复)。
    • 你为没有现有EOA的新用户构建,使新智能账户地址和相关设置可接受。
  • 组合它们: 最强大的模式是使用两者。EOA可以使用7702交易指定ERC-4337钱包实现作为其逻辑。这使EOA表现得像4337账户,允许它被打包、由付款主赞助,并由现有4337基础设施处理——所有这些都无需用户需要新地址。这是EIP作者明确鼓励的前向兼容路径。

你可以适配的最小7702脚手架

这里是实现合约和激活它的客户端代码的实际示例。

1. 小型可审核实现合约

一旦指定,此合约代码将在EOA的上下文中执行。保持其小型、可审核,并考虑添加升级机制。

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

/// @notice 通过EIP-7702指定时从EOA上下文执行调用。
contract DelegatedAccount {
// 避免与其他合约冲突的唯一存储槽。
bytes32 private constant INIT_SLOT =
0x3fb93b3d3dcd1d1f4b4a1a8db6f4c5d55a1b7f9ac01dfe8e53b1b0f35f0c1a01;

event Initialized(address indexed account);
event Executed(address indexed to, uint256 value, bytes data, bytes result);

modifier onlyEOA() {
// 可选:添加检查以限制谁可以调用某些函数。
_;
}

function initialize() external payable onlyEOA {
// 在EOA的存储中设置简单的一次性初始化标志。
bytes32 slot = INIT_SLOT;
assembly {
if iszero(iszero(sload(slot))) { revert(0, 0) } // 如果已经初始化则回滚
sstore(slot, 1)
}
emit Initialized(address(this));
}

function execute(address to, uint256 value, bytes calldata data)
external
payable
onlyEOA
returns (bytes memory result)
{
(bool ok, bytes memory ret) = to.call{value: value}(data);
require(ok, "CALL_FAILED");
emit Executed(to, value, data, ret);
return ret;
}

function executeBatch(address[] calldata to, uint256[] calldata value, bytes[] calldata data)
external
payable
onlyEOA
{
uint256 n = to.length;
require(n == value.length && n == data.length, "LENGTH_MISMATCH");
for (uint256 i = 0; i < n; i++) {
(bool ok, ) = to[i].call{value: value[i]}(data[i]);
require(ok, "CALL_FAILED");
}
}
}

2. 使用viem在EOA上指定合约(类型4交易)

viem这样的现代客户端有内置助手来签署授权并发送类型4交易。在此示例中,relayer账户为升级eoa支付gas。

import { createWalletClient, http, encodeFunctionData } from "viem";
import { sepolia } from "viem/chains";
import { privateKeyToAccount } from "viem/accounts";
import { abi, implementationAddress } from "./DelegatedAccountABI";

// 1. 定义中继器(赞助gas)和要升级的EOA
const relayer = privateKeyToAccount(process.env.RELAYER_PK as `0x${string}`);
const eoa = privateKeyToAccount(process.env.EOA_PK as `0x${string}`);

const client = createWalletClient({
account: relayer,
chain: sepolia,
transport: http(),
});

// 2. EOA签署指向实现合约的授权
const authorization = await client.signAuthorization({
account: eoa,
contractAddress: implementationAddress,
// 如果EOA自己要发送这个,你会添加:executor: 'self'
});

// 3. 中继器发送类型4交易来设置EOA的代码并调用initialize()
const hash = await client.sendTransaction({
to: eoa.address, // 目标是EOA本身
authorizationList: [authorization], // 新的EIP-7702字段
data: encodeFunctionData({ abi, functionName: "initialize" }),
});

// 4. 现在,EOA可以通过其新逻辑控制,无需进一步授权
// 例如,执行交易:
// await client.sendTransaction({
// to: eoa.address,
// data: encodeFunctionData({ abi, functionName: 'execute', args: [...] })
// });

3. 撤销委托(返回到普通EOA)

要撤销升级,让EOA签署将零地址指定为实现的授权并发送另一个类型4交易。之后,对eth_getCode(eoa.address)的调用应该返回空字节。


在生产中工作的集成模式

  • 为现有用户就地升级: 在你的dapp中,检测用户是否在Pectra兼容网络上。如果是,显示可选的"升级账户"按钮,触发一次性授权签名。为使用旧钱包的用户维护回退路径(如经典approve + swap)。
  • 无gas入门: 使用中继器(你的后端或服务)来赞助初始类型4交易。对于持续的无gas交易,通过ERC-4337打包器路由用户操作以利用现有的付款主和公共内存池。
  • 跨链推出: 使用chain_id = 0授权在所有链上指定相同的实现合约。然后你可以在应用逻辑中按链启用或禁用功能。
  • 可观察性: 你的后端应该索引类型4交易并解析authorization_list以跟踪哪些EOA已升级。交易后,通过调用eth_getCode并确认EOA的代码现在匹配委托指示符(0xef0100 || implementationAddress)来验证更改。

威胁模型和陷阱(不要跳过这个)

  • 委托是持久的: 像处理标准智能合约升级一样严肃地对待EOA实现合约的更改。这需要审核、清晰的用户沟通,理想情况下是选择加入流程。永远不要悄悄地向用户推送新逻辑。
  • tx.origin地雷: 任何使用msg.sender == tx.origin来确保调用直接来自EOA的逻辑现在可能易受攻击。必须用更robust的检查(如EIP-712签名或明确的白名单)替换此模式。
  • Nonce数学: 当EOA赞助自己的7702交易(executor: 'self')时,其授权nonce和交易nonce以特定方式交互。始终使用正确处理此问题的库以避免重放问题。
  • 钱包UX责任: EIP-7702规范警告dapp不应该要求用户签署任意指定。验证建议的实现并确保它们安全是钱包的责任。设计你的UX以符合这种钱包介导的安全原则。

何时7702是明确胜利

  • DEX流程: 多步骤approveswap可以使用executeBatch函数合并为单次点击
  • 游戏和会话: 在有限时间或范围内授予类似会话密钥的权限,而无需用户创建和资助新钱包。
  • 企业和金融科技: 启用赞助交易并应用自定义支出策略,同时在每条链上保持相同的企业地址以进行会计和身份识别。
  • L2桥接和意图: 创建更流畅的元交易流程,在不同网络间保持一致的EOA身份。

这些用例代表了ERC-4337承诺的相同核心好处,但现在只需单个授权即可供每个现有EOA使用。


发布检查清单

协议

  • 确保节点、SDK和基础设施提供商支持类型4交易和Pectra的"prague" EVM。
  • 更新索引器和分析工具以解析新交易中的authorization_list字段。

合约

  • 开发具有基本功能(如批处理、撤销)的最小审核实现合约
  • 在部署到主网之前在测试网上彻底测试撤销重新指定流程。

客户端

  • 升级客户端库(viemethers等)并测试signAuthorizationsendTransaction函数。
  • 验证自赞助和中继交易路径都正确处理nonce重放

安全

  • 从合约中删除所有基于tx.origin的假设,并用更安全的替代方案替换它们。
  • 实施部署后监控以检测用户地址的意外代码更改并警告可疑活动。

底线: EIP-7702为已在使用的数百万EOA提供了向智能账户UX的低摩擦入门。从小型审核实现开始,使用中继路径进行无gas设置,使撤销清晰易用,你可以提供完整账户抽象90%的好处——无需地址变更和资产迁移的痛苦。