面向在 Gnosis Safe 上持有资产的团队

为您的 Safe 增加第二个抗量子签名

只需安装一个 Safe Guard。您的所有者、签名门槛和历史记录保持不变,但每一笔转账还需要一个在链上验证的后量子批准。

无需迁移 开源(MIT / LGPL-3.0) NIST SP 800-208 签名
FermionGuard Safe App:交易队列中,每笔待处理转账都显示其量子授权状态
基于 Safe Guard XMSS · RFC 8391 NIST SP 800-208 密钥存于 Ledger OpenZeppelin 基础组件 开源 · MIT / LGPL-3.0
实际演示

一笔 250,000 dUSD 的转账,
签名齐全,却依然被拦截

一位所有者在真实的 Safe{Wallet} 中签署了这笔转账,但它不会执行。量子管理员在设备上阅读这笔付款——代币、金额、收款人、有效期、Safe 和链——并用一次性的后量子签名批准它。只有这时,资金才会转出。

一笔 250,000 dUSD 的转账在 Safe{Wallet} 中签名齐全却依然失败;量子管理员在模拟 Ledger 上用一次性 XMSS 签名批准它;随后同一笔转账得以执行

在本地演示环境中完整录制:真实的 Safe、真实的 Safe{Wallet},以及在链上执行规则的 Guard。设备是模拟的 Ledger,而非硬件;Ledger 应用的进展请见项目状态。
查看原尺寸 · 自己动手运行 →

为何是现在

增加签名人
并不能让多签抵御量子攻击

每一位 Safe 所有者都用 ECDSA 签名。足够强大的量子计算机能攻破 ECDSA,而且是同时攻破您所有的签名人。持有十年的资产,需要一种能撑过那一天的签名。

多签是治理手段

它决定谁可以签名,但当签名算法本身被攻破时,它无能为力。

硬件密钥防止盗窃

但它们挡不住同一曲线上的伪造签名:密钥根本不需要离开设备。

链下策略只是建议

链上不会查询的策略引擎是可以被绕过的。最终决定权必须在链上。

工作原理

两个相互独立的签名,
一条执行路径。

FermionGuard 是一个 Safe Guard,即 Safe 官方的执行前钩子。所有者照常签名。只有当交易同时附带一个匹配的后量子批准时,Guard 才会放行。

签名 1:保持不变

您的 Safe 所有者

同样的所有者、同样的门槛、同样的硬件钱包。防范失职的操作人员、设备丢失和内部故障。

签名 2:新增

一个后量子批准

一位指定的量子管理员使用 Ledger 上的 XMSS 密钥批准每一笔转账。防范签名人被攻破、批准被重放、授权额度被盗取,以及未来的量子攻击。

排队

操作人员在 Safe{Wallet} 中提交一笔转账,所有者照常签名。

标记

FermionGuard Safe App 将其标记为 🟡 需要量子授权。

审核

管理员审核交易内容,这些内容由两个相互独立的数据源解码得出。

批准

Ledger 显示每一个受约束的字段。长按即可批准。

执行

该行变为 🟢。任何人都可以执行;Guard 会检查并消耗这一批准。

签名前的审核界面,显示解码后的代币、金额、收款人、nonce 和有效期

管理员清楚看到自己批准的内容

批准对应的是确切的交易,而不是意图

一个批准会写明 Safe、链、代币、收款人、金额和有效期。如果有人事后修改了排队中的交易,批准便不再匹配,Guard 会拒绝它。

  • 有时限:每个批准只在您选定的时间窗口内有效。
  • 一次性:交易执行的那一刻即被消耗。
  • 双重核对:在解锁签名之前,交易内容必须在两个相互独立的数据源上一致。
  • 拒绝可见:拒绝与批准一样会被签名并记录。
Ledger 设备界面,显示批准标题、金额、完整的收款人地址以及批准/拒绝选项

不做盲签:设备会显示 Guard 约束的每一个字段

在您团队已经在用的工具中运行

FermionGuard 以 Safe{Wallet} 内的 Safe App 和供管理员使用的 Ledger 应用两种形式提供。风险提示会在任何人签名之前,突出显示首次出现的收款人、异常金额,以及 Guard 本来就会拒绝的交易。

发工资?整批最多 100 笔转账只需一次批准。

设置

加到您现有的 Safe 上

无需新钱包、无需新链、无需迁移资产。四个步骤,由您现有的所有者通过普通 Safe 交易完成。

打开 Safe App

在 Safe{Wallet} 中添加 FermionGuard。在做任何改动之前,它会先检查您的 Safe 版本和模块。

进行密钥仪式

管理员的密钥在 Ledger 内部生成。所有者确认该密钥并共同签署其注册。

启用 Guard

所有者签署一笔 setGuard 交易,与其他 Safe 交易无异。

发送一笔测试转账

一笔极小额的转账会走完整个流程。完成后,您的面板会显示已受保护 ✓。

⏱ 所有者都在场时约需 30 分钟
适用对象

为必须安全存放十年的资产而打造

🏦 托管机构与银行

为客户资产托管增加一道独立的、基于标准的密码学控制。

  • NIST 批准的签名方案
  • 可导出的审计日志,满足合规要求
  • 可打印的密钥仪式记录

🏢 企业财务

保留您的审批流程,并让单个被攻破的签名人不足以转移资金。

  • 所有者照常签名
  • 每批工资只需一次批准
  • 异常转账风险提示

🏛️ 基金会与 DAO

为最关键的操作——治理变更——加上公开、带时间锁的检查。

  • 管理操作有 48 小时公开时间锁
  • 所有者无需量子批准即可取消
  • 开源,可在链上验证
安全

难以绕过,
也绝不会把资产锁死。

Guard 是链上的最后一道否决,其设计确保密钥丢失或程序缺陷都永远无法冻结您的资金。

始终有退路

Ledger 丢了?所有者在 14 天公开倒计时后即可自行移除 Guard。损坏的设备永远不会锁死 Safe。

治理变更公开透明

移除 Guard 或更换所有者需要一个批准以及一段会通知所有所有者的 48 小时公开倒计时。

故障即关闭

Guard 不可升级,并配有可在事故时快速拒绝一切的暂停功能。没有管理员后门。

没有旁门

Safe 模块会绕过 guard,因此注册时要求未启用任何模块,或在 Safe 1.5+ 上配套安装 module guard。

不会被盗取授权额度

approve、permit 和 transferFrom 一律拒绝,批量交易会在链上逐笔检查。

无法被调包的密钥

所有者在各自的设备上共同签署密钥的完整公开根,因此被攻破的网站无法替换成另一把密钥。

管理操作界面,带有 48 小时倒计时和撤销按钮

治理变更缓慢而公开;取消则很快

即使量子密钥被盗,也无法悄悄夺取控制权

攻击者即使拿到管理员的 Ledger,没有您所有者的签名也无法转移资金,而且不经过一段您的所有者可以取消的 48 小时公开倒计时,也无法移除 Guard。

阅读威胁模型 →

写给您的工程师

后量子签名,
在 EVM 中验证

XMSS 只依赖哈希运算,因此链可以直接验证它:无需预言机,也无需可信服务器。验证器是对 RFC 8391 的独立实现,我们也会准确说明其证明的覆盖范围:每一个 RFC 基础原语,以及拒绝畸形输入的各项检查,都已针对 RFC 的逐行转写、对所有输入进行了机器验证。将它们组合成最终接受或拒绝合规签名的根比较这一步,则由人工论证,在树高为 2 时进行了符号检查,并用 h = 4、10 和 20 的 RFC 向量加以固定。

745,003
每次验证的 gas,在 h = 20 时实测
~1M
每把密钥可批准次数(220 个叶子)
11
个 Halmos 引理将验证器与 RFC 8391 对照检查,其中十个覆盖所有输入
MIT
XMSS 验证器依据 RFC 编写,没有借用任何代码

从设计上杜绝叶子复用

XMSS 是有状态的:复用一次性叶子会让攻击者得以伪造签名。Ledger 在交出签名之前会先提交其计数器,合约也维护一个已用叶子的位图,任何复用都会被回滚。

浏览合约 → · Guard 规范 → · 形式化证明 →

contracts/src/QuantumKeyRegistry.sol(简化版)
function _verifyAndConsumeXmss(
    bytes32 keyId,
    bytes32 digest,
    bytes calldata xmssSignature
) internal {
    XMSS.Signature memory sig = abi.decode(xmssSignature, (XMSS.Signature));
    BitMaps.BitMap storage used = _usedLeaves[xmssRoot(keyId)];  // per KEY, not per registration
    if (used.get(sig.leafIdx)) revert LeafAlreadyUsed(keyId, sig.leafIdx);

    if (!XMSS.verify(digest, sig, publicKey(keyId), treeHeight(keyId)))
        revert InvalidXmssSignature();  // whole tx rolls back

    used.set(sig.leafIdx);                // burn the one-time leaf
    emit LeafConsumed(keyId, sig.leafIdx, digest);
}
项目进展

公开开发

设计和后量子验证器现已公开。抢先体验的团队将参与塑造其余部分。

XMSS 验证器(Solidity)
RFC 8391 验证器,支持链上叶子消耗(密钥注册表中的已用叶子位图),附 Foundry 测试和 gas 基准
已实现
规范与威胁模型
Guard、密钥注册表、预批准引擎、服务、硬件策略
已发布
Safe App 与 Ledger 界面
排队、批准、批量、密钥仪式、拒绝、紧急情况及设备流程
已设计
XMSS 验证器,机器验证
基础原语和输入校验检查已通过符号执行证明与 RFC 8391 等价;决定合规签名的根比较由人工论证并用向量固定,尚未对一般的 h 做机器验证;PROOF.md 写明了哪些已证明、哪些是假设。已发布为 xmss-solidity
部分已证明
Guard、密钥注册表与预批准合约
基于经过审计的 Safe 和 OpenZeppelin 库构建;Foundry 测试套件包含与真实 Safe 的集成测试。密钥注册表的状态机,以及 Guard 和预批准引擎的十八项性质,已用 Halmos 对照可执行规范完成证明——批量解码器不在其中
已实现
Ledger 应用与 Safe App
首个 Rust 设备应用已能编译、在设备上生成密钥并在 Ledger 模拟器中签名,但它只是所规定应用的一个子集,不得存放真实资金;与 Safe{Wallet} 的集成已上线,为只读的就绪预览
开发中
外部安全审计
任何主网部署之前必须完成
已规划
开发者

由一位曾站在
威胁两端的人设计

Stan (Konstantin) Kladko——从制造量子威胁的物理学,到必须抵御它的密码学。

⚛️ 量子物理学家

马克斯·普朗克研究所博士。曾在斯坦福大学与诺贝尔奖得主 Robert B. Laughlin 一起研究量子系统。曾任洛斯阿拉莫斯国家实验室 Director's Fellow。

🔐 密码模块评测专家

曾主持一家获 NIST 认可的密码模块测试实验室(CMVP),完成 FIPS 140-2 及侧信道安全认证。

⛓️ 大规模区块链

SKALE 联合创始人兼 CTO,把 BLS 门限密码学从论文带到了与以太坊对齐的主网。

常见问题

团队最先问的问题

我们需要转移资产或更改 Safe 吗?

不需要。您只是在现有的 Safe 上安装一个 Guard。所有者、门槛、历史记录和地址完全不变。

如果管理员的 Ledger 丢了怎么办?

您的所有者无需量子密钥,在 14 天公开倒计时后即可自行移除 Guard。如果该请求并非正当,所有者可在此期间随时用一笔普通 Safe 交易取消它。丢失的设备永远无法永久锁死您的 Safe。

这会拖慢我们的转账吗?

每笔转账需要管理员在 Ledger 上额外批准一次。批量交易——比如最多 100 笔转账的工资发放——整批只需一次批准。

gas 成本是多少?

验证后量子签名约需 745,000 gas,在创建批准时支付一次(在 h = 20 时实测为 745,003 gas)。交易执行时的检查只是一次查询。

支持哪些 Safe?

Safe v1.3.0 及以上版本。Safe 不能启用任何模块,因为模块会绕过 guard;或者使用 Safe 1.5+ 并同时安装 FermionGuard 的 module guard。Safe 也不能设置 fallback handler:ERC-20 代币和 ETH 可正常使用,但签名消息功能(Permit、CowSwap 订单、登录)以及通过 safeTransferFrom 接收 NFT 暂不支持。

为什么用 XMSS,而不是 ML-DSA 或 Falcon?

XMSS 是 NIST 批准(SP 800-208)的基于哈希的签名,EVM 验证它只需约 1M gas。而 ML-DSA、Falcon 等格密码方案,目前在链上验证要花费数千万 gas。

现在能用于生产环境吗?

还不能。后量子验证器已按上文所述的范围针对 RFC 8391 做了机器验证,Guard 合约也已实现并测试,但目前尚未经过任何审计;Ledger 应用和 Safe App 仍在开发中,任何主网部署之前都必须完成外部审计。申请抢先体验,成为首批接入的团队之一。

抢先体验

在需要之前
先保护好您的 Safe

我们正在接入第一批在 Safe 上持有资产的团队。告诉我们您的配置,试点开放时我们会与您联系。

将打开一份简短的公开 GitHub 表单——请勿填写任何机密信息。

1 · 介绍您的 Safe

链、Safe 版本、所有者人数、大致转账量。

2 · 我们跟进

抢先体验试点开放时,我们会与您联系。

3 · 共同接入

与您的所有者一起完成密钥仪式并启用 Guard。