付款证明是法币应用与 Base 合约之间的桥梁。

智能合约无法直接看到买家的法币付款。ZKP2P 通过在链下验证付款凭据,并给合约一份它可以检查的签名证明,来弥合这一鸿沟。

01

需要证明什么

要让一笔成交得以释放,付款凭据必须与订单匹配。重要的字段是金额、货币、收款人、支付方式、时间,以及正在被履行的意图。

验证器不需要发布完整的付款历史。它只需要足够的经认证的凭据,以确认这笔付款、这个金额、付给这个收款人,属于这个意图。

02

当前的验证模型

ZKP2P V3 对受支持的支付流程使用一个 TEE 托管的证明服务。该服务在 AWS Nitro Enclave 内运行验证逻辑,按类型化的平台 schema 核对付款数据,并在付款匹配后签发一份 EIP-712 PaymentAttestation。

这取代了许多流程中以往以买家为主的 zkTLS 模型,因为浏览器端的证明生成缓慢、依赖扩展,并且在支付平台更改其网页界面时脆弱。代价是明确的:用硬件认证的执行和可复现的 enclave 构建,取代要求每个买家在本地生成一份证明。

03

TEE-TLS 与传统 zkTLS

问题传统 zkTLSTEE-TLS
验证在哪里运行买家浏览器或扩展Nitro Enclave 证明服务
买家体验扩展/证明生成可能很重付款凭据在 enclave 内由服务端检查
验证逻辑服务商模板与证明匹配类型化 schema 与平台特定的转换器
信任根证明系统加上公证/代理假设硬件认证加上经审计的 enclave 代码
链上结果签名或验证过的释放数据由验证器检查的 EIP-712 PaymentAttestation
04

隐私边界

  • 你的收款账号以哈希形式记录在链上;对大多数支付方式而言,任何知道该账号的人都能把它与你的存款对应起来。请把它视为公开信息。
  • 对手方会看到完成付款所需的收款标识。
  • 链上看到的是哈希、nullifier、签名、金额、合约地址和释放事件。
  • USDCtoFiat 不持有你的法币账户,不托管你的私钥,也无法撤销一笔支付应用转账。

常见问题

付款证明和截图一样吗?

不一样。截图容易伪造,并且需要人工判断。ZKP2P 验证经认证的付款数据,并签发一份结构化证明,供链上验证器检查。

USDCtoFiat 会公开我的支付应用历史吗?

不会。你的支付应用历史不会发布到链上,释放过程使用哈希、nullifier 和签名证明。你的收款账号以哈希形式记录;对大多数支付方式而言,任何知道该账号的人都能把它与你的存款对应起来,因此请把它视为公开信息。

为什么提 TEE,而不是假装一切都是零知识?

因为准确性很重要。ZKP2P 历史上用过 zkEmail 和 zkTLS,而 V3 对受支持的流程使用 TEE 托管的付款证明。安全模型不同,用户应得到一个精确的解释。

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 或你的银行的要求。