USDC支付按钮背后的技术栈与安全陷阱

0xshawnpang 发布于 2026-04-11 阅读 71

本文深入解析了稳定币(USDC)支付按钮背后的完整技术栈,从底层代币标准(ERC-20)到签名协议(EIP-712、EIP-2612、EIP-3009)、账户抽象(ERC-4337、EIP-7702)、钱包通信(EIP-5792、ERC-7677、ERC-1271),再到机器对机器支付(x402、ERC-8004)。文章不仅阐述了各层的工作原理,还强调了设计中的安全陷阱,如签名钓鱼、无限额授权等,并指出每个UX改进都可能带来新的欺诈面。最后简要介绍作者所在公司AllScale的产品方向。

图像

我以构建稳定币支付为生。传统金融人士最常问我的问题是:“好,但它到底怎么工作的?”下面揭开“用 USDC 支付”按钮背后的一切,为初学者简化说明。

@allscaleio,我们坚信一件事:构建完全基于链上的端到端非托管支付产品,同时移除所有加密用户体验,让我们的非托管稳定币数字银行真正对任何人可用。这就是我们正在做的事。

这是个好问题。卡支付运行在一套标准栈上(ISO 8583、EMV、3-D Secure)。稳定币也一样。大约十个开放协议几乎覆盖了所有真实的稳定币支付流程:结账、订阅、付款,甚至 AI 代理互相支付。

那么,让我们打开这个按钮,看看里面是什么。以下是完整地图:

图像

第 0 层:货币本身

每种主流稳定币(USDC、USDT、PYUSD)都是一个 ERC-20 代币。去掉术语,它就是在区块链上作为程序运行的共享账本。一张记录“账户、余额”的大表,加上几个标准函数:

  • transfer 将钱转给某人
  • approve + transferFrom 允许第三方从你的账户中提取资金,直到一个限额(链上直接借记授权的前身)

图像

发行商(Circle、Tether、PayPal)控制着基于储备的铸造和赎回。他们也可以冻结个别地址(一项合规功能,如果你做风险管理值得了解)。他们不能做的是关闭账本本身——它运行在公共基础设施上。

现在说说奇怪的部分。如果你来自卡支付世界,这个轨道的三件事会让你感到陌生:

  • Gas。 每笔交易都要支付网络费用,默认情况下该费用是用网络自己的货币(以太坊上的 ETH)支付的,而不是你发送的稳定币。因此,持有 10 万美元 USDC 的客户实际上无法发送其中一分钱,直到他们先买几美元的 ETH。
  • 结算是最终的。 一旦一笔转账确认(几秒到几分钟),就完成了。没有拒付,没有 ACH 退回窗口。对商家很好,对买家来说可怕。
  • 没有账户恢复。 一个基础钱包就是一把私钥。丢了钥匙,就丢了钱。

下面是在任何修复之前的痛苦默认体验:

图像

两笔交易。两种费用。第二种货币。这是 2021 年之前的标准,但如果你现在推出这个,客户都会恨你。

Layer1:签名取代交易

这里是大突破,坦率说是我在整个技术栈中最喜欢的想法:客户根本不应该提交交易。客户应该只签署一个支付指令。免费、即时、离线工作。然后其他人(商家、处理方)将其提交到网络并处理 gas。

听起来熟悉吗?这就是授权与清算。客户授权,商家清算。三个标准使其工作。

EIP-712:消息格式

早期的钱包要求用户签署不可读的十六进制块。EIP-712 修复了格式:签名现在覆盖结构化的、带标签的字段(spender, amount, deadline),钱包可以显示这些字段。这里的每个其他标准都是一个带有特定模板的 EIP-712 消息。把它想象成这个世界的 ISO 8583。

它还将每个签名锁定在特定网络上的特定代币合约上。为 Base 上的 USDC 签署的支付指令不能在其他地方重放。

有一件事它并没有解决:钱包花了多年时间教导用户“签名”是无害的,而“交易”才是可怕的事情。但这里的签名可以转移真金白银。钓鱼团伙正是利用这个差距。记住这一点,下面会两次提到它。

EIP-2612 “permit”:拉式支付授权

客户签署一条消息:“我授权公司 S 在日期 D 之前从我的账户中提取最多 N 的 USDC。”任何人都可以提交该签名上链,授权生效,公司提取资金。就像签署直接借记授权一样。

图像

然而,一个普通的 permit 是一个单一的限额授权,而不是真正的“每月 X”授权——它设定一个上限和到期日,每月的节奏是你的计费逻辑。

陷阱在于:permit 的危险程度完全取决于它所授予的权限,而且用户感觉不到危险。在典型情况下,一个钓鱼网站让受害者签署了一个无限制、无到期的 USDC permit。攻击者后来兑现了它,在一笔受害者从未见过的交易中盗走了 177 万美元。受害者只点击了“签名”。

如果你用这个构建,教训是:请求你需要的精确金额,并设置严格的到期时间。永远不要无限量,永远不要永久。这正是骗子下手的目标,合法地要求它会让你的用户习惯于非法地签署它。

EIP-3009:数字支票

更进一步,这是需要记住的一个:签名就是支付。客户签署“精确支付 $X 给精确账户 Y,在时间 A 和时间 B 之间有效。”持有该消息的任何人都可以提交它,资金就会转移。什么都不留。没有后续可滥用的常设授权。

它是一张带有三个升级功能的签名支票:

  • 金额和收款人被加密锁定(不可更改)
  • 既可以预注日期,也可以设置到期日,两者都由账本强制执行
  • 每张支票都有一个随机序列号,所以你可以同时有五十张未兑现的支票,它们可以按任意顺序清算

图像

这是现存最简洁的稳定币结账方式。一次签名,完成。商家控制捕获时机,可以批量结算,过期的授权就这样消失,无需任何清理。

Layer2:消除 Gas

Layer1修复了结账。但客户的账户仍然是原始的:一把密钥,没有恢复,没有限制。而且客户直接发起的任何东西仍然需要 gas。Layer2升级了账户本身。

ERC-4337:智能账户和 paymaster(费用代付者)

自 2023 年 3 月上线。想法:用智能账户替换裸密钥账户,智能账户本身就是一个程序。突然之间,你的账户可以做真正的银行账户能做的事情:

  • 用 Face ID 登录,而不是 12 个单词的助记词
  • 如果你丢失设备,通过监护人恢复访问
  • 对大额转账强制执行支出限额和双因素认证
  • 将多个步骤批处理为一个操作

对于支付来说,杀手级组件是 paymaster:一个代表用户支付 gas 费用的服务。两种商业模型,都很熟悉:

  • 应用付费。 产品将 gas 作为运营成本承担,就像商家承担交换费一样。用户看到零费用。
  • 用户用 USDC 付费。 一个 paymaster 预先支付 ETH,然后向用户收取 USDC 余额加上加价。Circle 运行着标准的 paymaster。它在 Arbitrum 和 Base 上的加价是 gas 成本的 10%,所以 0.01 美元的费用变成 0.011 美元,以美元计费。

图像

这正是你在 @allscaleio 的钱包中可以获得的体验。

EIP-7702:升级你已经拥有的钱包

智能账户是新账户。那数亿个现有钱包呢?自以太坊的 Pectra 升级(2025 年 5 月)以来,一个现有钱包可以委托给智能账户逻辑原地使用。相同的地址,相同的资金,新的能力:批处理、赞助 gas、用 USDC 支付费用、Passkey。MetaMask、Coinbase Wallet 和 Trust Wallet 今天都在提供这个功能。这就是为什么“从普通钱包中用 USDC 支付 gas”在大约一年内从演示变成了必备功能。

现在说说黑暗的一面,而且是真的黑暗。那个升级授权是整篇文章中最强大的签名。它将账户的控制权交给了一个程序。钓鱼工具包在几周内就注意到了这个漏洞。在该功能的第一年,安全研究人员发现,观察到的绝大多数委托都指向恶意“扫荡者”程序,这些程序会自动清空受害者存入的一切,永远如此,直到撤销。

从 7702 发布的第一年得到的更大教训是:这个轨道上的每一次用户体验改进也都是一块新的欺诈表面。能静默转移资金的签名。能交出账户的升级。每一种便利都很快被武器化。无论你发布什么,在设计评审中都要问:这个功能的钓鱼版本看起来像什么?

第 3 层:你永远看不见的管道

有三个标准会出现在每次集成中,但从来不在产品中。每个只需三十秒:

  • EIP-5792 是应用与钱包通信的方式:“你能做什么?”(批处理?赞助 gas?)和“将这些步骤作为单个操作运行。”应用-钱包通信的 USB-C。
  • ERC-7677 定义了应用如何告诉任意钱包“使用这个费用赞助商”。在此之前,每个应用-钱包-paymaster 组合都是自定义集成。现在它是一个参数。
  • ERC-1271 是智能账户签署任何东西的方式。智能账户没有单一密钥,因此外部通过向账户程序本身询问来验证其签名。就像银行根据公司的授权签字人规则来核实公司授权一样。

第 4 层:机器向机器支付

以上都是为人类结账服务的。最新的层针对软件:AI 代理和 API 相互支付卡轨道上太小太频繁的金额。没有卡号,没有账户,没有 API 密钥。这一层尚未大规模采用,但几乎所有稳定币支付公司都在为此做准备。

x402:通过 HTTP 的“Payment Required”

HTTP 自 20 世纪 90 年代以来一直保留着状态码 402 Payment Required,但从未有人使用过。x402(由 Coinbase 于 2025 年推出)终于做到了:

图像

这也是 USDC 成为 x402 默认轨道的原因:EIP-3009 允许一个代理用一个签名支付,无需预先批准,无需 gas。x402 也可以结算其他代币——通过 Permit2,它将签名批准改造到 USDT 等代币上——但那条路径每个用户需要一次性的设置交易。干净、零设置的流程运行在原生支持 EIP-3009 的代币上——即 USDC。

2026 年 4 月,Coinbase 将 x402 捐赠给了 Linux Foundation 下的一个组织,其成员包括 Visa、Mastercard、Amex、Stripe、Adyen、Google、Microsoft、AWS、Cloudflare 和 Shopify。再读一遍那个名单。卡网络正在购买一个开放稳定币协议的治理席位。

还有 ERC-8004,这是一个链上注册表,为 AI 代理提供身份和声誉(可以看作 KYB 加上信用局,但针对软件)。作者来自 MetaMask、以太坊基金会、Google 和 Coinbase。自 2026 年 1 月上线,数万注册,仍是一个草案标准。

为什么选择 AllScale?

这就是整个技术栈。十个协议,五个层次,一个理念:把支付转化为签名,让基础设施处理其余部分。在 @allscaleio,我们正在构建的就是这种链上数字银行体验。更令人兴奋的是,在我们的非托管层之上,任何用户还可以完成额外的 KYC 和/或 KYB,以解锁更多法币功能,如出入金通道、虚拟账户以及我们即将推出的加密卡。

AllScale 还与许多领先的服务提供商合作,帮助他们将基于稳定币的解决方案集成到现有产品中。如果你觉得这很有趣,我的私信随时开放!

  • 原文链接: x.com/0xshawnpang/status...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~

相关文章

0 条评论