跳至主要内容

公开测试版,运行在 Base Sepolia 测试网。 付款使用没有实际价值的测试 USDC,请勿转入真实资金。担保合约尚未完成外部安全审计,条款仍是待律师审阅的草稿。 测试版意味着什么

OpenVPT

为什么 OpenVPT 用 Base 上的 USDC 结算?稳定币、网络和手续费一文讲清

OpenVPT 为什么选择 Base 网络上的 USDC 作为结算资产:价格稳定、6 位小数、Gas 低、需要准备什么、如何核对代币和合约地址,以及最常见的转账错误。

作者
OpenVPT 团队
发布于
阅读
12 分钟阅读
标签
  • USDC
  • Base
  • 稳定币
  • Gas
  • 钱包安全
  • 托管
目录

TL;DR

  • OpenVPT 的订单以 USDC(一种与美元挂钩的稳定币,6 位小数)计价和结算,运行在 Base 网络上(主网 chainId 8453)。
  • 用稳定币,是为了让买卖双方在从付款到放款的这几天里,都不用承担币价波动。
  • 用 Base,是因为它兼容以太坊(EVM)、交易费用通常很低,而且有 Circle 原生发行的 USDC。
  • 买家需要:Base 上的 USDC(订单金额)+ 少量 Base 上的 ETH(支付 approve 和付款两笔交易的 Gas)。确认收货、签署结算都是链下签名,不花 Gas;结算交易由平台代为提交。
  • 最常见的错误:选错网络、选错代币(比如桥接版 USDbC)、直接从交易所转账、把 USDC 直接转进托管合约地址。
  • 本文仅为产品和技术说明,不构成任何投资、法律或税务建议。

在 OpenVPT 上买卖软件授权、数字文件、账号服务等虚拟商品时,你付出去的不是信用卡扣款,也不是平台账户里的“积分”,而是一笔锁定在链上托管合约(VPTEscrow)里的 USDC。不少新用户会问:为什么是 USDC?为什么是 Base?我要准备些什么?这篇文章一次讲清楚。

一、为什么用稳定币,而不是 ETH 或 BTC?

一笔虚拟商品交易,从下单到钱款放给卖家,中间要经过好几个时间段:

阶段OpenVPT 默认时长
付款期限(下单后需完成付款)24 小时
付款签名有效期(每次获取的付款参数)最长 15 分钟,过期后重新获取即可
交付期限按商品设置的交付天数
验收期(卖家交付后)按商品设置,默认 3 天
争议处理视具体情况而定

如果用价格大幅波动的资产结算,这几天里的涨跌就会直接变成某一方的损失:币价跌了,卖家拿到的价值缩水;币价涨了,买家等于多付。更麻烦的是,一旦发生争议,“当初谈好的价格”该按哪天的汇率算,本身又会变成新的争议。

稳定币把这个问题去掉了。以 USDC 计价,1,200 USDC 的订单付款时是 1,200,放款时还是 1,200,双方只需要关注商品本身。手续费的计算也因此简单、可预期。

注意:“稳定”指的是设计上与美元挂钩,并不等于零风险。稳定币依然存在发行方、储备管理、监管变化等风险,历史上也出现过短暂偏离 1 美元的情况。是否适合持有,请自行评估。

二、USDC 是什么?

USDC 是由 Circle 发行的美元稳定币。按 Circle 官方的说法,每一枚 USDC 都有等值的美元储备资产(主要是现金和短期美国国债等)支持,可以向 Circle 按 1:1 兑换成美元;Circle 也会定期公布由第三方会计师出具的储备证明报告。详细说明和最新数据请直接查看 Circle 的 USDC 官方页面 (在新标签页中打开)。OpenVPT 不对发行方的储备或兑付能力作任何保证。

对用户来说,下面几个技术细节值得了解:

  • 小数位是 6 位。 1 USDC 在链上记为 1000000(10 的 6 次方个最小单位)。OpenVPT 内部所有金额都按最小单位的整数计算,不用浮点数,所以不会出现 0.1 + 0.2 ≠ 0.3 这类误差。
  • 它是一个 ERC-20 代币合约。 “USDC”这个名字谁都能起,真正代表身份的是合约地址。同一条网络上可能有好几个自称 USDC 的代币,只有地址正确的那个才是真的。
  • 不同网络上的 USDC 是不同的合约。 以太坊主网的 USDC、Base 上的 USDC、其他链上的 USDC,地址各不相同,也不能直接互转。

三、为什么选 Base?

Base 是一条以太坊二层(Layer 2)网络,由 Coinbase 孵化、基于 OP Stack 构建。放到 OpenVPT 的使用场景里,关键在于:

  1. 交易费用通常很低。 作为 Layer 2,它把交易打包后再提交到以太坊,单笔 Gas 一般远低于以太坊主网。实际费用会随网络拥堵变化,钱包在你确认前都会显示预估值。
  2. 兼容以太坊(EVM)。 常用的以太坊钱包都能直接添加 Base;OpenVPT 的托管合约用 Solidity 编写,EIP-712 签名、ERC-20 授权等机制都与以太坊一致。
  3. 有 Circle 原生发行的 USDC。 不需要经过跨链桥包装,少了一层跨链桥风险。
  4. 生态和充值渠道。 Base 属于 Coinbase 生态,很多交易所和钱包都支持 Base 网络的 USDC 充提。

OpenVPT 的网络配置:

环境网络chainId
正式环境Base 主网8453
测试环境Base Sepolia 测试网84532

更多 Base 的技术资料可参考 Base 官方文档 (在新标签页中打开)。

四、需要准备什么?Gas 要多少?

先明确一点:在 Base 上,Gas 用 ETH 支付,不是用 USDC。所以买家钱包里需要同时有两样东西:

  1. Base 网络上的 USDC:够支付订单金额。
  2. Base 网络上的少量 ETH:用来支付交易 Gas。

买家付款时会发出的交易

OpenVPT 的付款流程在网页上会自动引导,实际上最多有两笔链上交易:

  1. approve(授权额度):允许托管合约从你的钱包转走“这笔订单的金额”。OpenVPT 只会请你授权正好等于订单金额的额度,不会要求无限授权;如果你原有的授权额度已经够用,这一步会自动跳过。
  2. fund(付款):调用托管合约的 fund(),USDC 从你的钱包转入合约锁定。合约会同时校验平台对这笔订单的签名,确保金额、手续费、卖家地址和代币都没有被篡改。

之后的步骤都不需要你付 Gas:

操作是否需要 Gas说明
连接钱包、用 SIWE 验证钱包否只是签一段文字消息
approve是(买家)额度足够时跳过
fund 付款是(买家)一笔链上交易
确认收货/签署结算否EIP-712 链下签名
settle 结算上链否(对用户而言)由平台的中继账户提交,Gas 由平台承担
卖家收款否结算时 USDC 直接转入卖家钱包

也就是说,卖家收款不需要准备 ETH;买家只需准备够两笔交易用的少量 ETH。建议多留一点余量,以免网络稍有拥堵时卡在“Gas 不足”。

五、怎么核对代币和合约地址?

最常见的骗局之一,是弄一个名字叫“USDC”但地址不同的假代币,或者诱导你把钱转到一个看起来很像的地址。请养成下面的核对习惯:

核对清单

  • 钱包当前连接的网络是 Base(chainId 8453),而不是以太坊主网或其他链。
  • 你持有的 USDC 合约地址,与 Circle 官方公布的 Base 原生 USDC 地址一致。OpenVPT 默认使用的就是这个地址:
text
Base 主网原生 USDC:0x833589fCD6eDa6E08f4c7C32D4f71b54bdA02913
  • 付款时钱包弹出的 approve 请求,授权对象是 OpenVPT 订单页显示的托管合约地址,金额等于订单金额。
  • fund 交易的目标地址同样是托管合约地址,而不是某个个人钱包。
  • 核对地址要看完整字符串,至少比对开头和结尾各 6 位以上;不要只看钱包显示的缩写。
  • 在聊天、私信、邮件里收到的任何“新地址”“新合约”,一律不要相信。OpenVPT 的聊天会识别疑似站外联系方式并给出提醒,就是为了应对这类情况。

OpenVPT 前端在把付款参数交给钱包之前,也会自动再检查一遍:订单编号、链 ID、代币地址、卖家地址、金额、手续费和托管合约地址,任何一项与订单不符都会拒绝发送。但最后点“确认”的是你,钱包界面上显示的信息才是最终依据。

六、最常见的错误

1. 选错网络

你的 USDC 在以太坊主网或其他链上,但订单要求的是 Base,钱包就会显示余额不足。OpenVPT 付款前会请求钱包切换到正确网络,但资产本身不会跟着过去,你需要先通过正规渠道把 USDC 转到 Base 上。

2. 选错代币

Base 上除了 Circle 原生发行的 USDC,还有早期通过跨链桥包装的 USDbC,以及各种名字相近的代币。它们都不是 OpenVPT 接受的付款代币。托管合约只接受白名单内的代币,用错代币交易会失败,但你可能白白花掉 Gas。

3. 直接从交易所付款

OpenVPT 的付款必须由你自己的钱包调用托管合约,因为合约会把调用者记录为买家,退款也会退回这个地址。交易所的提币功能只能“转账”,没法替你调用合约,也没法签署之后的结算消息。正确做法是:先从交易所把 USDC 提到你自己的钱包(网络选 Base),再用这个钱包付款。

4. 把 USDC 直接转进托管合约

这是最危险的错误。VPTEscrow 只把通过 fund() 进来的款项记为订单;资金离开合约的唯一途径是 settle(),而且必须有买家、卖家、平台三方中两方的签名,并对应一笔已存在的订单。直接转进去的 USDC 不属于任何订单,合约里没有任何函数能把它转出——包括平台和合约所有者在内,谁都取不回来。请务必通过 OpenVPT 订单页的付款按钮操作。

5. 付款前拖得太久

每次获取的付款签名最长只有 15 分钟有效期。如果交易在钱包里挂了很久才确认,合约会以“签名已过期”拒绝。刷新订单页获取新参数即可,资金不会因此损失(只损失失败交易的 Gas)。

七、没有“信用卡拒付”,靠什么保障?

信用卡付款可以事后向发卡行申请拒付(chargeback),款项可能在几周甚至几个月后被撤回。这对买家是一种保障,但对卖虚拟商品的卖家来说,常见的情况是:商品已经交付、无法收回,钱却被退走了。

链上的 USDC 转账一旦确认,就无法由第三方撤销。OpenVPT 用另一套机制来替代拒付:

  • 先托管:买家付款后,钱款锁在合约里,既不在卖家手上,也不在平台手上。
  • 验收期:卖家交付后有验收期(默认 3 天)。交付文件会记录 SHA-256 哈希,授权码类商品以加密方式保存。
  • 2-of-3 签名:钱款要离开合约,需要买家、卖家、平台签名者三方中的两方签名。平台单方面无法动用资金;合约所有者只能暂停“新的付款”、更换平台签名者、管理代币白名单和手续费收款地址,不能结算或提取资金。暂停也不影响已有订单的结算。
  • 争议与仲裁:验收期内买家可以发起争议,由指派的仲裁员根据证据作出分配比例的裁决,平台按裁决签名,再由买家或卖家其中一方(通常是分得款项的一方)共同签名后上链。

也就是说,保障从“事后撤销”变成了“事前托管 + 明确规则”。好处是双方的结果都更可预期;代价是结算一旦完成就无法反悔,所以付款前、确认收货前都请仔细核对。

八、算一笔账:手续费怎么扣?

OpenVPT 默认平台手续费为 5%(feeBps = 500),只按卖家实际获得的部分按比例收取,买家支付的就是商品标价。

例一:正常完成的 1,200 USDC 订单

项目金额
买家付款(锁入托管)1,200 USDC
平台手续费 5%60 USDC
卖家实收1,140 USDC

例二:同一笔订单发生争议,仲裁裁决卖家获得 30%

  1. 卖家的总分配额:1,200 × 30% = 360 USDC
  2. 平台手续费按比例:60 × 360 ÷ 1,200 = 18 USDC
  3. 卖家实收:360 − 18 = 342 USDC
  4. 退还买家:1,200 − 360 = 840 USDC
  5. 核对:342 + 840 + 18 = 1,200 USDC(一致)

例三:全额退款给买家:卖家分配为 0,手续费也是 0,买家拿回全部 1,200 USDC。

由于 USDC 是 6 位小数、金额按整数计算,手续费向下取整(floor),合约也会校验三方金额之和必须与托管金额完全相等。

九、买家和卖家的快速检查表

买家

  1. 准备好 Base 上的 USDC(订单金额)和少量 Base 上的 ETH(Gas)。
  2. 用自己的钱包(不是交易所地址)连接 OpenVPT。
  3. 在订单页点击“付款至托管合约”,核对钱包弹窗里的网络、代币、授权对象和金额。
  4. 收到交付后在验收期内检查,没问题再确认;有问题就在期限内发起争议。

卖家

  1. 完成 KYC(状态需为“已验证”),并用 SIWE 验证你的收款钱包。
  2. 确保收款钱包是你能长期掌控的自托管钱包,并妥善备份助记词。
  3. 收款不需要 ETH;之后如果要把 USDC 转出或兑换,才需要少量 ETH 支付 Gas。

十、关于安全与透明

VPTEscrow 合约使用 OpenZeppelin 的标准组件(EIP-712、ECDSA、SafeERC20、ReentrancyGuard、Ownable2Step、Pausable),合约所有权不能放弃,只能通过两步流程移交。正式上线前,我们计划委托第三方进行合约安全审计,并计划推出漏洞赏金计划;完成后会另行公告,在此之前请不要把本文理解为任何“已审计”的声明。

免责声明

本文介绍的是 OpenVPT 的产品设计和一般技术知识,不构成投资、法律或税务建议。持有和使用任何数字资产都有风险,包括但不限于价格偏离、发行方风险、智能合约风险和操作失误。各地对数字资产的监管规定不同,请结合自身情况自行判断,必要时咨询专业人士。

下一步

延伸阅读