跳至主要内容

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

OpenVPT

01 · 安全中心

先验证,再信任:OpenVPT 安全中心

你的付款存放在智能合约里,而不是 OpenVPT 的账户。这一页讲清楚我们能与不能对它做什么、密钥放在哪里、我们存储了你哪些数据,以及哪些还在规划中。

状态标签

已实现:目前已写入 OpenVPT 代码。设计:生产环境预定的运行方式,尚未上线。规划中:尚未开发。

security --summary
保管方式
非托管的托管合约
放款规则
三方中两方签名
OpenVPT 持有的密钥
三把中的一把
提取函数
不存在
第三方审计
规划中,尚未进行

02 · 资金

我们能与不能对你的资金做什么

付款进入 VPTEscrow 合约。只有当三方(买家、卖家、平台)中的两个不同方签署同一个分配方案,合约才会放款。OpenVPT 只持有三把密钥中的一把。

合约所有者可以

四个管理开关,没有一个能动用资金。

  • 暂停新的付款

    停止新的 fund() 调用。合约暂停期间,已付款的订单仍可正常结算。
  • 更换平台签名密钥

    替换平台的密钥。它仍然只是三把中的一把:每笔结算都还需要买家或卖家签名。
  • 调整代币白名单

    决定新订单可以使用哪些代币(MVP 为 USDC)。已付款的订单不受影响。
  • 设置手续费收款地址

    决定之后的结算中,平台所得部分付到哪个地址。

任何人都不能,包括我们

由合约代码强制执行,而不是靠政策。

  • 提取托管中的资金

    合约没有任何提取或清空函数,资金只能通过 settle() 离开合约。
  • 只用一把密钥放款

    settle() 需要两个不同方的有效签名。同一把密钥签两次会被拒绝。
  • 付出超过付款金额的钱

    卖家、买家与平台的金额相加必须正好等于付款金额,而且每笔订单只能结算一次。
  • 弃置合约

    合约所有权无法放弃,只能通过两步转移,并且必须由新所有者确认接受。
VPTEscrow.settle()
签名
{buyer, seller, platform} 中两个不同方
分配
toSeller + toBuyer + toPlatform == amount
平台所得
toPlatform >= fee * toSeller / amount
重放
只结算一次,之后即关闭
提交者
任何人都可以;权限来自签名

坦白说的限制

  • 结算签名没有有效期,也无法撤回。因此平台对每笔订单最多只签一次结算。
  • 如果 OpenVPT 停止运营,合约仍会接受由买家与卖家共同签署的结算。没有任何一方能单独放款。
  • 合约规定的是平台所得的下限,而不是上限。在请你的钱包签名之前,网站会先检查分配方案是否与页面上的订单一致。

03 · 密钥

三把密钥,一把在我们手上:密钥管理

谁持有哪把密钥、能签什么,以及每个部分目前是已写入代码,还是仍属于设计。

  • 已实现

    买家密钥

    用 fund() 付款,并签署你对结算的同意。OpenVPT 从不会看到或存储你的私钥或助记词。
    持有方
    你的钱包
  • 已实现

    卖家密钥

    接收货款,也可以共同签署结算。货款会付到订单上记录的钱包地址。
    持有方
    你的钱包
  • 已实现

    平台签名密钥

    共同签署每笔 CreateOrder,使金额、手续费与卖家无法被篡改,也共同签署结算提案。在本地开发环境中,这把密钥从环境变量读取。
    持有方
    OpenVPT API
  • 设计

    放在 KMS / HSM 的平台密钥

    在生产环境中,平台密钥预定保存在云端 KMS / HSM 内部并在其中签署摘要,私钥不会被导出。API 已实现 KMS 签名器(AWS KMS、secp256k1),并用模拟的 KMS 测试过;正式上线要等主网部署。
    持有方
    生产环境设计
  • 已实现

    中继密钥

    在已有两个签名后支付 gas 提交 settle()。它无法修改分配,也无法代任何人签名:合约检查的是签名,而不是提交者。
    持有方
    OpenVPT API
  • 规划中

    合约所有者

    只持有上面四个管理开关。部署脚本可以把所有权交给另一个地址,例如多签钱包;主网上改用多签所有者仍在规划中。
    持有方
    OpenVPT 管理员

04 · 合约

可以自行核对的合约信息

签名前,请把这些数值和钱包显示的内容对照。如果付款或结算消息的链、合约、订单或金额与页面上的订单不一致,网站会拒绝把它交给你的钱包。

eip712.domain
name
"VPTEscrow"
version
"1"
chainId
84532
网络
Base Sepolia 测试网
verifyingContract
0x0000000000000000000000000000000000000000

主网部署尚未完成。此地址属于Base Sepolia 测试网上的部署,并不是生产环境的合约。

你可能会被要求签署的结构化数据

CreateOrder(bytes32 orderId,address buyer,address seller,address token,uint256 amount,uint256 fee,uint64 expiresAt)
由平台签署;由 fund() 检查,最长 15 分钟后失效。
Settle(bytes32 orderId,uint256 toSeller,uint256 toBuyer,uint256 toPlatform)
由买家、卖家与平台其中两方签署;由 settle() 检查。

orderId = 订单 UUID 的 keccak256

技术栈

Solidity 0.8.24 与 OpenZeppelin v5:EIP712、ECDSA、SafeERC20、ReentrancyGuard、Ownable2Step、Pausable。

05 · 账号

账号安全

账号层面的保护,以及账号被封禁时会发生什么。

  • 两步验证登录(TOTP)

    在账号设置中为登录加上身份验证器 App 的动态码。密钥加密存储,多次输错验证码会被限制尝试。
  • 密码

    至少 12 个字符,只以 Argon2 哈希存储。多次登录失败后会暂时锁定登录。
  • 钱包验证(SIWE)

    钱包通过 Sign-In with Ethereum(EIP-4361)绑定。每个 nonce 只能用一次,10 分钟后失效,签名无法被重放。
  • 登录会话

    每次使用 refresh token 都会换发新的。实时连接会在 token 过期时断开。
  • 被封禁的账号

    封禁会立即撤销所有登录会话、拦截所有需要登录的请求和实时连接,并暂停该用户的商品。进行中的订单不会被冻结:会通过另一方、自动期限与仲裁继续推进。

06 · 数据

我们存储什么、如何存储

我们只存储服务运行所需的数据,并保护其中敏感的部分。

data-inventory
OpenVPT 存储的数据与保护方式
数据存储方式
联系表单的 IP 地址只存储加盐的 SHA-256 哈希,从不存储原始 IP。
交付给买家的授权密钥用 AES-256-GCM 加密,并绑定该笔订单。
交付的文件上传时记录 SHA-256 哈希,下载使用短时有效的签名链接。
两步验证密钥用 AES-256-GCM 加密,并绑定该账号。
密码只存储 Argon2 哈希。
钱包地址你验证过的公开地址,从不存储私钥或助记词。
订单聊天随订单存储。包含联系方式或站外付款链接的消息会带有警示标记。

我们从不收集银行卡号:付款是从你自己的钱包以 USDC 支付。

07 · 防骗指南

防骗指南:留在平台上交易

数字商品交易的损失,大多发生在托管之外。五个习惯让你留在托管的保护之内。

  1. 只通过托管付款

    不要把 USDC 直接转到卖家的钱包,也不要理会 OpenVPT 以外的“托管”链接。只有 OpenVPT 合约上的 fund() 受到保护。

  2. 认真对待联系方式警示

    订单聊天会标记邮箱、手机号、Telegram、WhatsApp、微信和站外付款链接。被标记的消息不会被拦截,但把交易转到站外是常见的诈骗第一步。

  3. 核对地址

    签名前,把钱包显示的合约地址和链与本页的合约信息对照。只要不一致,就停下来。

  4. 绝不透露机密

    OpenVPT 绝不会向你索要助记词、私钥、密码或两步验证码,无论在聊天、邮件还是其他任何地方。

  5. 验收后再确认

    在验收期内检查交付内容。确认收货就会放款,已结算的订单无法重新打开;如果有问题,请改为发起争议。

08 · 负责任披露

发现漏洞?负责任披露

如果你认为在 OpenVPT 的合约、API 或应用中发现了漏洞,请先私下告诉我们。

report.txt
  1. 使用联系表单并选择“安全”主题。安全报告会被专门标记给团队。
  2. 请附上受影响的组件、复现步骤和你预期的影响。
  3. 只用你自己的账号,在本地或测试网络上测试。不要访问他人的数据或资金,也不要进行拒绝服务测试。
  4. 在公开任何内容之前,请给我们合理的时间修复问题。

目前尚未提供

  • 规划中

    漏洞赏金计划

    规划中。目前没有提供赏金。
  • 规划中

    第三方审计

    规划中。托管合约尚未经过外部机构审计;目前由项目自身的自动化测试覆盖。

本页说明系统是如何构建的,不构成法律、财务或投资建议。

09 · 延伸阅读

延伸阅读