跳至主要内容

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

OpenVPT

争议与仲裁:OpenVPT 如何处理交易纠纷

什么时候可以发起争议、哪些信息算证据、仲裁员如何分配与裁决、比例分配怎么算,以及裁决如何通过 2-of-3 签名在链上执行。

作者
OpenVPT 团队
发布于
阅读
13 分钟阅读
标签
  • 争议
  • 仲裁
  • 托管
  • USDC
  • 买家保障
  • 卖家保障
目录

TL;DR

  • 只有买家可以发起争议,而且必须在卖家交付后、验收期结束前(默认 3 天)提出。
  • 争议期间,款项留在托管合约中,不会自动放款给任何一方。
  • 仲裁员依据平台上留存的记录判断:商品描述、交付内容和文件 SHA-256、双方提交的证据。
  • 裁决不是"一方全赢",而是一个比例分配(精确到 0.01%);平台手续费只按卖家分得部分的比例收取。
  • 裁决由平台对结算方案签名,再由买家或卖家任意一方共同签名后才会在链上执行。平台无法单独动用资金。
  • 当前版本不支持申诉,每笔订单的裁决只会签署一次。

为什么需要争议机制

数字商品交易中最常见的问题往往不是"付没付款",而是"交付的东西是不是约定的东西"。授权码用不了、文件内容与描述不符、账号资料不全——这类情况只听一方的说法很难判断。

OpenVPT 的做法是:买家付款后,USDC 先存入链上的托管合约(VPTEscrow),既不直接打给卖家,也不存放在平台的账户里。只有当买家、卖家、平台签名者三方中的任意两方对同一份结算方案签名后,合约才会放款。交易顺利时,买家确认收货、平台联合签名即可完成;出现争议时,由仲裁员先确定分配方案,再走同样的签名流程。

本文会把争议从发起到结算的每个环节讲清楚,让买卖双方都知道自己能做什么、需要准备什么。

什么时候可以发起争议

发起条件

按照目前的实现,发起争议需要同时满足以下条件:

  1. 由买家发起。卖家不能主动发起争议(卖家的保障来自验收期到期后的自动放款,见下文)。
  2. 订单状态为"已交付"(DELIVERED),即卖家已经提交了交付内容。
  3. 仍在验收期内。验收期从交付时开始计算,天数由商品设置(1 至 30 天,默认 3 天)。超过期限后,系统会拒绝发起争议。
  4. 每笔订单只能有一个争议。已经发起过的,不能再发起第二次。
  5. 需要填写争议原因,长度为 10 至 5,000 个字符。

哪些情况不需要发起争议

  • 卖家逾期未交付:订单在"已付款"状态下超过交付期限(商品设置的交付天数,默认 3 天),系统会自动发起全额退款,不需要走仲裁。
  • 还没付款:订单在待付款阶段可以申请取消,不涉及托管资金。为避免取消与付款同时发生,取消会在付款签名失效(最长 15 分钟)并经过一段缓冲时间后才正式生效。

验收期到期后会怎样

如果买家在验收期内既没有确认收货,也没有发起争议,系统会在到期时自动发起"全额给卖家(扣除手续费)"的结算。所以,买家一旦发现问题,一定要在期限内处理,不要拖到最后一刻。

哪些信息算证据

仲裁员只能依据平台上可以核实的信息做判断。主要的证据来源如下:

证据来源内容说明
商品描述卖家发布时写明的规格、版本、交付方式这是判断"是否符合约定"的基准
交付记录交付类型(文件、授权码、清单)与时间文件上传时平台会记录其 SHA-256 哈希值;授权码加密存储
平台内聊天双方在订单聊天中的对话平台会保存记录,但目前仲裁员无法直接查看聊天内容;请把关键对话截图或摘录后作为证据提交
双方提交的证据文字说明、链接、文件争议发起后,买卖双方都可以补充

可以提交的证据类型

  • 文字(TEXT):最多 10,000 个字符,适合写清时间线和复现步骤。
  • 链接(LINK):仅支持 http 或 https 地址。
  • 文件(FILE):比如截图、录屏、错误日志,默认单个文件不超过 20 MiB,上传时同样记录 SHA-256。

在争议状态为"待处理"(OPEN)或"审理中"(UNDER_REVIEW)时都可以补充证据;裁决完成后就无法再新增。请注意,双方和仲裁员都能看到全部证据,不要上传与本案无关的个人信息。

为什么交付文件的 SHA-256 很重要

SHA-256 相当于文件内容的"指纹",内容哪怕只改动一个比特,哈希值也会完全不同。平台在卖家上传交付文件时就记录下这个值,因此事后可以确认"买家下载到的文件"就是"卖家当时交付的文件",双方不必再争论文件有没有被调包。

为什么平台外的沟通没有用

聊天系统会识别邮箱、手机号、各类即时通讯软件账号以及站外付款链接,并弹出提醒(消息不会被拦截,只会被标记)。原因很简单:仲裁员无法核实平台外发生的事情,而且在托管之外支付的款项,平台既无法退款,也无法纳入争议处理。

仲裁流程:从发起到裁决

第一步:发起争议

买家在订单页提交争议原因后,订单从"已交付"变为"争议中"(DISPUTED),争议本身的状态为"待处理"(OPEN)。卖家会收到通知,提醒其提交证据。此时验收期到期的自动放款不再执行,款项留在合约中等待裁决。

第二步:分配仲裁员(UNDER_REVIEW)

拥有仲裁员或管理员角色的账号会在队列中看到争议,按发起时间先后排序。分配规则如下:

  • 仲裁员可以把争议分配给自己;只有管理员才能分配给他人,或接手已由其他仲裁员负责的案件。
  • 订单的买家或卖家不能担任自己案件的仲裁员,也不能对自己的案件作出裁决。
  • 被分配的人必须是有效的仲裁员或管理员账号,且没有被封禁。
  • 每次分配都会写入审计日志。

分配完成后,争议状态变为"审理中"(UNDER_REVIEW),此后只有被分配的仲裁员或管理员可以裁决。

第三步:审阅证据

仲裁员可以查看双方提交的证据,以及该订单的交付内容(下载链接为短时有效,访问行为会被记录)。仲裁员一般会对照三件事:商品描述写了什么、卖家实际交付了什么、买家反映的问题能否复现。

第四步:作出裁决

裁决包括两部分:

  • 卖家分得的比例:0 到 10,000 个基点(bps),即 0% 到 100%,精度为 0.01%。
  • 裁决理由:文字说明,会保存在争议记录中。

常见的裁决情形:

情况可能的比例
交付内容完全不符或无法使用卖家 0%(全额退款给买家)
交付完整,买家反映的问题不成立卖家 100%
部分可用,或双方都有过失按实际情况分配,例如卖家 30%

以上只是说明比例的用法,每个案件都会根据证据单独判断,不存在预设结果。

实例计算:1,200 USDC 订单,卖家 30% / 买家 70%

假设一笔订单金额为 1,200 USDC,手续费率为默认的 5%(500 bps)。

下单时:手续费 = 1,200 × 500 ÷ 10,000 = 60 USDC。这个数字在付款时就写入了合约。如果交易正常完成,卖家收到 1,140 USDC,平台收到 60 USDC。

仲裁裁决卖家 30% 时,平台共享代码中的分配公式为:

text
卖家总分配 gross = 金额 × 卖家比例 ÷ 10,000
平台收取        = 手续费 × gross ÷ 金额(向下取整)
卖家实收        = gross − 平台收取
买家退款        = 金额 − gross

代入数字:

  1. gross = 1,200 × 3,000 ÷ 10,000 = 360 USDC
  2. 平台收取 = 60 × 360 ÷ 1,200 = 18 USDC
  3. 卖家实收 = 360 − 18 = 342 USDC
  4. 买家退款 = 1,200 − 360 = 840 USDC

核对:342 + 840 + 18 = 1,200,正好等于托管金额。

项目金额(USDC)链上最小单位(6 位小数)
卖家342342,000,000
买家840840,000,000
平台1818,000,000
合计1,2001,200,000,000

关键在于:手续费只按卖家分得部分的比例收取。买家拿回的 840 USDC 不收任何手续费。如果裁决全额退款(卖家 0%),平台收取同样为 0,买家拿回全部 1,200 USDC。

合约层面还有一道校验:三个金额之和必须等于托管金额,并且平台所得不能低于"手续费 × 卖家实收 ÷ 金额"。在本例中,按 USDC 最小单位计算的下限是 60 × 342 ÷ 1,200 = 17.1 USDC(17,100,000 最小单位,正好整除),平台所得 18 符合规则。任何不符合规则的分配方案都会被合约直接拒绝。

裁决如何在链上执行

裁决本身只是一份"分配方案",资金要真正转出,必须通过合约的 2-of-3 签名校验:

  1. 仲裁员提交裁决:订单从"争议中"变为"结算中"(SETTLING),分配金额写入订单,争议状态变为"已解决"(RESOLVED)。
  2. 平台签名:平台签名者对这份结算(订单编号和三个金额)生成 EIP-712 签名。如果签名暂时失败,裁决依然有效,仲裁员或管理员可以重试,系统每 5 分钟一次的巡检也会补签。
  3. 一方联合签名:买家或卖家任意一方,用订单上已验证的钱包对完全相同的金额签名。系统会校验金额是否与方案一致、签名钱包是否正确。
  4. 平台代为提交:集齐两个有效签名后,平台把交易发送上链。合约校验签名和金额后,一次性转账给卖家、买家和手续费地址。
  5. 状态更新:链上确认后,卖家所得大于 0 的订单标记为"已完成",等于 0 的标记为"已退款"。

实际上,能分到钱的一方最有动力去签名。比如上面的例子,买家要拿回 840 USDC,自然会去签;卖家也可以签,任意一方签名都能完成结算。

为什么平台无法单独动用资金

合约要求两个不同的签名者,平台签名者只算其中一方。即使平台想更改分配,也必须拿到买家或卖家的签名。合约所有者(owner)能做的只有:暂停新的付款、更换平台签名者、设置允许的代币和手续费收款地址;不能结算订单,也不能提取合约中的资金。

时间线一览

阶段期限(当前实现)超时后的处理
付款下单后 24 小时订单自动取消
付款签名有效期最长 15 分钟需要重新获取付款参数
交付付款后,按商品设置(默认 3 天,最长 60 天)自动发起全额退款
验收交付后,按商品设置(默认 3 天,最长 30 天)未确认也未发起争议:系统发起放款给卖家的结算(平台签名,卖家共同签名)
仲裁目前没有固定的处理时限款项留在合约中,不会自动放款
裁决后补签系统每 5 分钟巡检补上平台签名;仍需一方联合签名

我们不承诺仲裁一定在几天内完成,实际用时取决于案件的复杂程度以及双方提交证据的速度。

仲裁做不到的事

了解这些限制,才能对结果有合理的预期:

  • 不支持申诉:当前版本没有申诉渠道。平台对每笔订单最多签署一次结算,裁决提交后分配方案即固定。
  • 不能超出托管金额:裁决只能分配合约里的这笔钱,不能要求任何一方额外赔偿。
  • 不能处理站外交易:平台外的付款和私下约定都无法核实,也无法退款。
  • 不能撤销已上链的结算:链上转账一旦完成就无法逆转。
  • 验收期结束后不能再发起:超过期限,系统会拒绝。
  • 不能代替当事人签名:平台签名后仍需一方联合签名。如果需要签名的一方账号已被封禁,结算会停留在"结算中",需要管理员单独处理。
  • 不是法律裁判:仲裁是平台依据交易规则作出的资金分配决定,不构成法律意见,也不影响双方依法主张权利。

如何避免争议

给卖家的建议

  • 商品描述写清楚版本、适用平台、使用限制和交付方式。
  • 交付前自己先测试一遍文件或授权码。
  • 交付时附上使用说明或激活步骤。
  • 所有沟通都在订单聊天中进行。
  • 买家反馈问题时,尽快在平台上回复并设法解决。

给买家的建议

  • 下单前完整阅读商品描述,有疑问先在平台上咨询。
  • 收到交付后马上检查,别拖到验收期最后一天。
  • 遇到问题先截图,记录错误信息和时间。
  • 先与卖家沟通,沟通无果再发起争议。
  • 绝不在平台外付款,也不要交换联系方式私下交易。

发起争议时的原因示例

text
交付的授权码于 9/26 14:05 激活时提示"该密钥已被使用"(见截图)。
商品描述写明为"全新未激活"。已于 14:20 在聊天中告知卖家,
截至 16:00 未收到回复或替换的授权码。请求全额退款。

好的原因说明应当包括:发生了什么、什么时候发生、与商品描述哪里不符、已经做过哪些沟通、希望如何处理。

常见问题

卖家可以发起争议吗? 目前不可以。卖家的保障在于:只要买家在验收期内没有发起争议,系统就会自动放款。争议发起后,卖家可以提交证据进行回应。

争议期间可以撤回吗? 目前的流程没有提供买家自行撤回争议的功能,建议发起前先与卖家充分沟通。

被裁决的一方不签名怎么办? 不需要对方签名。平台已经签名,只要任意一方签名即可执行,通常是分到款项的一方。

仲裁员是谁? 是平台上拥有仲裁员角色的账号。系统禁止交易双方仲裁自己的案件,所有分配和裁决都有审计日志。

本文介绍的是 OpenVPT 当前的产品机制,不构成法律、税务或投资建议。

下一步

延伸阅读