它做什么

当你想购买的商店只收现金或只支持某种特定支付方式时,你用加密货币付款 (目前为 BTC signet 和 USDC),由代购者(proxy shopper)替你买下商品并寄给你。

每笔订单的资金都进入一个 2-of-3 多签(用户(user)、代购者、托管方(escrow))。

  • 商品送达后,用户和代购者共同签名,把钱付给代购者。
  • 如果发生纠纷,托管方与另外两方中的一方一起决定如何分配资金。
  • 即使有人不再响应,时间锁也能保证这笔钱最终归到某一方。

架构

浏览器 (proxy-shopping-web)                  Go 节点 (proxy-shopping-go)
  密钥与签名都在浏览器中                  shopper / escrow / operator / relay
        │ WSS(仅出站)                          │ WSS           │ libp2p
        ▼                                        ▼               ▼
   Nostr 中继(由运营者指定)      ◀──▶      Go 节点网络
   = 始终在线的入口 + 信箱                   (gossipsub;通过 circuit relay v2 和 DCUtR 穿透 NAT)
  • 用户什么都不用运行。 打开公开的 Web 应用就能加入。 密钥在浏览器中生成,永远不会离开浏览器;所有授权(签名)都在浏览器里进行。
  • 位于 NAT 之后的用户也能连接,因为到 Nostr 中继的连接是出站连接。
  • 发给不常在线的人(用户、托管方、运营者(operator)、协调者(coordinator))的消息, 会以加密状态存放在充当信箱的 Nostr 中继上等待。每条消息都会发往多个中继。
  • 只有代购者需要始终在线。它运行一个 Go 节点,以及一个操作商店网站的浏览器自动化工具(shopper-bot)。

信任如何传递

coordinator(用户信任它的公钥)
  └─ 委托:"这个 operator 可以发布列表"
       └─ 列表:"在这个地区,这个 shopper 和这个 escrow 可以一起被信任"
  • 用户只信任协调者的公钥。信任从这里延伸到运营者,再延伸到代购者 × 托管方的组合。
  • 列表带有版本号,永不过期。要移除某人,就发布一个新版本。
  • 用户把某个协调者从设置中删除,就等于”罢免”了它。

费用

付给谁 可强制执行? 方式
代购者 是 包含在报价中
托管方(预付) 是 在注资时一并直接付给托管方。对于未付预付费的订单,托管方没有仲裁义务
托管方(纠纷) 是 从裁决的分配中扣除
运营者 / 协调者 否 在协议之外约定,例如收录费。列表出售的是”被找到的机会”

托管方的保证金及其没收不属于协议的一部分。 它们被视为运营者与托管方之间自行约定的条款;项目提供了一份参考合约。

只收现金的商店

商店的位置用地区代码表示(例如 JP-13-13104 = 东京新宿区)。 代购者声明自己能前往并用现金支付的地区,只接受这些地区内商店的订单。

商店风险

接单前,代购者会给商店打分: 它是否在代购者的白名单上、是否使用 HTTPS、结账页面是否为已知的支付网关。 把银行卡信息发送到任意网站是有风险的,因此得分低的商店的订单会被拒绝。