ZKP2P 如何把一笔法币付款变成链上 USDC 释放。

ZKP2P 是 USDCtoFiat 之下的协议。卖家在 Base 智能合约中锁定 USDC,买家通过普通支付应用支付法币,一份签名的付款证明在付款与订单匹配后解锁 USDC。

01

简短版本

卖家在 Base 上的 EscrowV2 中锁定 USDC,并列出法币支付方式、货币、收款标识和汇率,从而创建一笔存款。买家选择该流动性,发起一个链上意图,在所选支付应用中付款给卖家,并提交付款凭据。

协议不要求任何一方信任一张聊天截图。付款凭据由证明服务在链下检查,由此生成的 EIP-712 PaymentAttestation 在链上验证后,合约才释放 USDC。

02

成交生命周期

  1. 01卖家把 Base 上的原生 USDC 存入 EscrowV2,并声明接受的支付方式、货币和收款人信息。
  2. 02买家选择该存款,并通过 OrchestratorV4 发出一个意图。该意图在买家付款期间锁定具体金额。
  3. 03买家在所选法币应用中直接付款给卖家。USDCtoFiat 从不接收或持有该法币转账。
  4. 04付款凭据与意图进行核对:金额、货币、收款人、时间戳、支付方式和路线约束。
  5. 05证明服务签发一份 PaymentAttestation。链上验证器检查签名、快照值和作废标识(nullifier),随后 OrchestratorV4 释放 USDC。
03

为什么合约能安全释放

原语作用为什么重要
EscrowV2在 Base 上持有卖方 USDCUSDCtoFiat 和买家都无法在合约规则之外移动它
意图哈希标识一笔买家订单把法币付款证明绑定到确切的成交
PaymentAttestationEIP-712 签名的验证结果让一个验证器合约处理多种支付方式
Nullifier一笔付款的一次性标记阻止同一笔付款被领取两次
收款方信息哈希卖家收款标识的哈希将付款绑定到卖家。大多数方式未加盐,知道该账号的人都能匹配
04

哪些信息是公开的

你的收款账号不会以明文写入 Base,但每笔存款都会记录它的哈希,而且大多数支付方式的哈希没有加盐。任何知道或猜到你的 Cashtag、Revtag、Zelle 邮箱或 Venmo 账户 ID 的人,都可以计算哈希并找到使用它的每一笔存款;ZKP2P 的公开做市商查询也会返回某个哈希对应的注册账号。请把你的收款账号视为公开信息。你的支付应用登录信息和账户历史不会发布到 Base。

你的收款标识对需要付款给你的对手方仍然可见。这在任何支付应用结算流程中都无法避免:买家没有目的地就无法发送法币。

V4 生产路径

非托管托管加链下付款证明。

ZKP2P V3 把付款解析移到链下,并把最终释放规则保留在链上,这正是为什么卖方体验可以支持更多支付方式,而无需为每条通道定制专门的验证器合约。

具体的支付应用操作流程因支付方式而异。扩展程序注册不能凌驾于服务商政策之上:Wise 禁止接收 P2P 加密货币出售款项,PayPal 可能需要预先批准。

EscrowV2
0x777777779d229cdF3110e9de47943791c26300Ef卖方托管合约
OrchestratorV4
0x74c55679268FAfB493864915aD16A320AB8c40Ba意图生命周期
USDC
0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Base 原生代币
Verifier
UnifiedPaymentVerifierV4检查付款证明

常见问题

ZKP2P 和 USDCtoFiat 是一回事吗?

不是。ZKP2P 是底层协议和合约系统。USDCtoFiat 是在其之上构建的、面向卖家的产品,用于把 Base USDC 通过受支持的支付应用转成法币。

同一笔法币付款能释放两次 USDC 吗?

不能。付款证明包含一个 nullifier,这是验证器检查的一次性标记,用于阻止把同一笔付款重放到多个意图上。

如果买家发起了意图却从不付款会怎样?

卖方存款的那一部分会被暂时绑定到这个未完成的意图上,直到它过期或被取消。未成交的流动性仍可由卖家提取。

USDCtoFiat 是什么?

USDCtoFiat 在当前 ZKP2P 支付与币种目录范围内协调 Base 原生 USDC 的非托管出售,支持的币种包括 USD、EUR、GBP、INR 和 CNY。支付服务商的资格要求和账户政策依然适用;某条路线在技术上受支持,并不代表你获准使用某个外部账户,而且 Wise 目前禁止接收 P2P 加密货币出售款项。

USDCtoFiat 会托管我的资金吗?

不会。每一笔交易都由你自己的钱包签名。你的 USDC 锁定在一个公开的 Base 合约里,只有在买家付款被证明后才会释放给买家。你可以随时提取任何未成交的存款。

出售要花多少钱?

创建和管理卖家存款是免费的,但链上操作需要支付 Base gas。对于委托成交,Delegate 的 0.10% 管理费从释放给买家的 USDC 中扣除,而不是从你的法币收入或报价汇率中扣除。

我需要中心化交易所账户吗?

使用 USDCtoFiat 无需交易所账户。你需要一个在 Base 上持有 USDC 的钱包,以及你想收款的那款支付应用的账户。该支付应用自身的账户规则和限额仍然适用。

我需要完成 KYC 吗?

USDCtoFiat 不收集身份证件,不持有你的法币,也不持有你的私钥。你使用的支付应用仍然掌控自己的验证、限额和账户规则。USDC 结算通过 Base 智能合约完成,我们无法改变 Venmo、PayPal、Wise、Zelle 或你的银行的要求。