Aller au contenu principal

Ce que renvoie une lecture publique

getSettlement, getSettlements, getReservation, getReservations, getDispute et getDisputes sont des lectures ouvertes, non authentifiées, et elles ne renvoient plus l’identité des parties. Une partie lit ses propres enregistrements en entier via les méthodes avec preuve de portefeuille.

Pourquoi la rédaction plutôt que l’authentification

Un explorateur montrant le volume, les états et le calendrier des liquidations est une vue publique légitime d’un réseau public. Placer une signature devant le casserait tout en repoussant tout obstiné vers le gossip brut, ce qui n’aboutit à rien. Ce dont l’explorateur n’a jamais eu besoin, c’est qui — la lecture publique conserve donc tout sauf l’identité.

Ce que l’identité assemble, c’est le graphe des échanges, et l’argument contre sa divulgation est développé en entier sur la page lectures avec preuve de portefeuille : sur un marché fiat pair-à-pair, savoir à quel commerçant un portefeuille revient toujours et qui sont les habitués d’un commerçant actif est une question de sécurité physique, pas une préférence. Un seul appel non authentifié servait à le reconstruire.

Ce que cela vaut honnêtement

Ces enregistrements sont diffusés par gossip à chaque nœud. Quiconque en exécute un les lit tous, et la rédaction n’y change rien. Ce qui est protégé, c’est la facilité de la requête — la différence entre faire un curl sur le nœud d’accès public de quelqu’un d’autre et monter un nœud pour indexer le réseau. Cette différence est l’essentiel de ce dont la moisson occasionnelle est faite.

Le dire clairement importe plus qu’il n’y paraît : un intégrateur qui croit ces enregistrements confidentiels construira quelque chose qui s’appuie sur une garantie que le protocole ne donne pas.

Les formes

Settlement

ConservéRetiré
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 demeure car elle nomme une transaction on-chain que n’importe qui peut déjà lire sur Solana, et c’est ce qui rend une liquidation vérifiable de façon indépendante.

payment_reference est sans doute la pire des deux suppressions : c’est du texte libre où un acheteur met sa propre référence bancaire, il porte donc couramment un vrai nom ou un numéro de compte.

Reservation

ConservéRetiré
id, advertisement_id, amount, staterequester
requested_at, updated_at, expires_atrequester_public_key

advertisement_id est conservé délibérément. Une annonce est une offre publique et porte déjà le peer id de son commerçant sur chaque ligne du carnet d’ordres, elle divulgue donc un bout d’une arête qui n’a jamais été privée. Ce qu’elle ne divulgue pas, c’est l’autre bout — ce qui en fait une arête.

Dispute

ConservéRetiré
id, settlement_id, status, resolutionbuyer, seller, opener et leurs clés
required_arbitrators, arbitrators_seatedreason
commitments, reveals (décomptes)arbitrators, arbitrator_keys
onchain_execution_signatureles engagements et révélations individuels
opened_at, updated_atles indicateurs d’accord mutuel

Notez qu’ici commitments et reveals sont des décomptes, pas des listes — assez pour qu’un explorateur montre un dossier qui progresse, sans le vote de personne lié à son nom.

Trois raisons distinctes pour ce qui est écarté. Les parties, car un litige est le cas où savoir qui s’est brouillé avec qui est le plus manifestement digne d’être détourné. reason, car c’est du texte libre sur un désaccord réel autour d’argent réel et nomme des personnes, des banques et des références par défaut. Les listes d’arbitres, car un arbitre est un fournisseur enregistré dont l’identité n’est pas en soi un secret — mais quel arbitre a tiré quel dossier, et comment il a voté est exactement l’appariement qui rend le fait d’en presser un digne d’effort. Les indicateurs d’accord mutuel les accompagnent : « le vendeur a accepté et l’acheteur non » est une position de négociation, et la publier à des spectateurs change une négociation entre deux personnes.

Si vous ajoutez un champ

Un champ n’a sa place dans une vue publique que s’il dit quelque chose sur l’échange plutôt que sur les personnes. En cas de doute il reste dehors : en ajouter un plus tard est une note de version, et en retirer un est une divulgation qui a déjà eu lieu.