角色 需始终在线 使用 职责 如果作弊
用户(user) 否 浏览器 下单、注资、确认收货、发起纠纷 ―
代购者(proxy shopper) 是 Go 节点 + shopper-bot 报价、代用户购买、报告发货情况;赚取费用 在托管方的裁决中失去其份额;运营者将其从列表中移除
托管方(escrow) 否 浏览器或 Go 节点 在 T1 之前对纠纷作出裁决 运营者将其从列表中移除;视双方条款,其保证金被没收并用作赔偿
运营者(operator) 否 浏览器、Go 节点或 psctl 按地区签署可信的代购者 × 托管方组合列表;接收举报 协调者撤销对它的委托
协调者(coordinator) 否 浏览器或 psctl 签署对运营者的委托 用户将其从设置中删除(罢免)

用户

  1. 打开 Web 应用,创建助记词(12 个单词)并抄写下来,然后设置一个用于加密密钥的口令。
  2. 输入商店 URL、商店所在地区和商品。
  3. 从提供的代购者 × 托管方组合中选择一个并下单。
  4. 收到报价。如果其汇率与你自己查到的汇率相差超过 3%,会给出提醒;超过 10% 则给出强烈警告。
  5. 接受并注资。资金会分成两部分:进入多签的部分和托管方的预付费。
  6. 商品送达后,点击”已收货”(在显示金额和收款方的确认页面之后,你的部分签名会发送给代购者)。
  7. 如果没有收到,就发起纠纷。应用会替你收集证据。

代购者

  • 以 role: shopper 运行 Go 节点,并连接 shopper-bot(浏览器自动化工具)。
  • 配置支付方式、币种、可用现金支付的地区、你的费用以及商店风险策略。
  • 银行卡信息只保存在 shopper-bot 内部,从不交给节点或网络。
  • 如果用户一直不确认收货且 T1 已过,你可以单独取走资金。

托管方

  • 只对支付了其预付费的订单的纠纷进行裁决。
  • 通常无法读取收货地址。发生纠纷时,代购者(或用户)会把解密密钥交给它。
  • 裁决以签名交易的形式送达双方;只要其中一方副署,裁决即生效。

运营者

  • 签署它负责的地区(一个或多个)、组合列表,以及它推荐的中继和链端点。
  • 收到举报后,发布一个不含违规者的新版本列表。保证金的处理依照它与托管方约定的条款。

协调者

  • 向运营者签发委托。撤销委托就是发布一个带有 revoked 的新版本。

被收录(登记处)

维护者的信任登记处是 GitHub 仓库 pad01g/proxy-shopping-registry。pull request 被合并即代表批准: 每次合并后,CI 会用登记处的密钥签署新的委托和列表并发布 (发布到公共 Nostr 中继以及 https://pad01g.github.io/proxy-shopping-registry/events.json)。

你想成为 在 pull request 中添加 合并后的效果
代购者 shoppers/<name>.json(pk、联系方式、简介、现金地区、支付方式、与你合作的托管方) 登记处的运营者把你的代购者 × 托管方组合列入列表
托管方 escrows/<name>.json(pk、联系方式、简介、SLA 天数) 代购者可以指定你;你的组合会出现
运营者 operators/<name>.json(pk、联系方式、简介、地区) 登记处的协调者向你委托;之后你签署自己的列表
协调者 coordinators/<name>.json(pk、联系方式、简介) 你会出现在应用向用户提供的协调者目录中(信任谁仍由每个用户自己选择)

pk 是你的 Nostr 公钥(64 个十六进制字符):Web 应用会在”设置”中显示它,psctl keys --mnemonic-file … 也会打印它。移除某人需要提交一个 pull request,把其文件移到 revoked/ 并注明理由。登记处的 README 中有确切的文件格式和命令。