跳到主要内容

公开读取返回什么

getSettlementgetSettlementsgetReservationgetReservationsgetDisputegetDisputes 是开放的、无需认证的读取,它们 不再返回当事方身份。当事方通过钱包证明方法 完整读取自己的记录。

为何是删节而非认证

一个展示结算量、状态和时间的浏览器,是对一个公开 网络的合法公开视图。在其前面加一道签名会 破坏这一点,同时把任何执意者推回到原始 gossip,而那毫无 成果。浏览器从不需要的是——因此公开读取保留了 除身份之外的一切。

身份所拼装出来的东西是交易图谱,反对把它 交出去的理由在钱包证明读取 一页中被完整阐述:在一个点对点的法币市场里,知道某个钱包 总是回到哪个商家、以及一个繁忙商家的常客是谁,是一个 人身安全问题,而非一种偏好。曾经一次无需认证的调用 就能重建它。

这诚实地值多少

这些记录会 gossip 到每个节点。任何运行一个节点的人都能读到 全部,删节并不改变这一点。受保护的是查询的容易程度—— curl 别人的公共访问节点,与架起一个节点去索引网络, 两者之间的差别。那种差别正是随手采集所依赖的大部分。

把这一点直白说清,比看起来更重要:一个相信这些 记录是保密的集成方,会构建出依赖于协议并未做出的 某个保证的东西。

各种形态

Settlement

保留移除
id, reservation_id, amount, statebuyer, buyer_public_key
escrow_release_signatureseller, seller_public_key
payment_submitted_at, merchant_responded_atpayment_reference
payment_discrepancy, created_at, updated_at

escrow_release_signature 得以保留,因为它指名一笔任何人在 Solana 上已经能读到的链上交易,而它正是使一次结算 可被独立核验的东西。

payment_reference 可以说是两处移除中较糟的一个:它是买方在其中 填入自己银行参考号的自由文本,因此常常携带一个真实姓名 或账号。

Reservation

保留移除
id, advertisement_id, amount, staterequester
requested_at, updated_at, expires_atrequester_public_key

advertisement_id 是刻意保留的。一个广告是一个公开报价, 且已在每一行订单簿上携带其商家的 peer id,因此它 披露了一条从未私密的边的一端。它不披露的 是另一端——而那正是使它成为一条边的东西。

Dispute

保留移除
id, settlement_id, status, resolutionbuyerselleropener 及其密钥
required_arbitrators, arbitrators_seatedreason
commitmentsreveals(计数)arbitrators, arbitrator_keys
onchain_execution_signature各个单独的承诺和揭示
opened_at, updated_at相互和解协议标志

请注意,这里的 commitmentsreveals计数,而非列表——足以 让浏览器显示一个案件在推进,而不把任何人的投票与其 姓名挂钩。

被丢弃之物有三个不同的理由。当事方,因为争议是 知道谁与谁反目最显然值得被滥用的那种情形。reason,因为它是 关于围绕真实金钱的真实分歧的自由文本,并且理所当然地 指名人、银行和参考号。仲裁员列表,因为一位仲裁员是一位 注册的提供者,其身份本身并非秘密——但哪位仲裁员抽到哪个 案件、以及他们如何投票,恰恰是使施压其中一位变得 值得的那种配对。相互和解标志随之一起去除:「卖方已同意而 买方尚未」是一个谈判立场,把它公之于旁观者,会改变 两个人之间的一场谈判。

如果你要添加一个字段

一个字段只在它讲述关于交易而非关于的某事时, 才属于公开视图。存疑时它就该留在外面:日后添加一个 是一条发布说明,而移除一个则是一次已经发生的披露。