La version courte
Un vendeur crée un dépôt en verrouillant ses USDC dans EscrowV2 sur Base et en listant la méthode de paiement en fiat, la devise, l'identifiant de versement et le taux. Un acheteur choisit cette liquidité, lance une intention onchain, paie le vendeur dans l'application de paiement sélectionnée, et soumet une preuve de paiement.
Le protocole ne demande à aucune des deux parties de faire confiance à une capture d'écran de chat. La preuve de paiement est vérifiée offchain par le service d'attestation, et le PaymentAttestation EIP-712 résultant est vérifié onchain avant que le contrat ne libère les USDC.
Le cycle de vie d'une exécution
- 01Le vendeur dépose des USDC natifs sur Base dans EscrowV2 et déclare les méthodes de paiement, devises et coordonnées de bénéficiaire acceptées.
- 02L'acheteur sélectionne le dépôt et signale une intention via OrchestratorV4. Cette intention réserve le montant précis pendant que l'acheteur paie.
- 03L'acheteur paie le vendeur directement dans l'application fiat sélectionnée. USDCtoFiat ne reçoit ni ne détient jamais le transfert en fiat.
- 04La preuve de paiement est vérifiée par rapport à l'intention : montant, devise, destinataire, horodatage, méthode de paiement et contraintes de route.
- 05Le service d'attestation signe un PaymentAttestation. Le vérificateur onchain contrôle la signature, les valeurs de l'instantané et le nullifier, puis OrchestratorV4 libère les USDC.
Pourquoi le contrat peut libérer en toute sécurité
| Primitive | Ce qu'elle fait | Pourquoi c'est important |
|---|---|---|
| EscrowV2 | Détient les USDC du vendeur sur Base | Ni USDCtoFiat ni l'acheteur ne peuvent les déplacer en dehors des règles du contrat |
| Hash d'intention | Identifie un ordre acheteur | Lie la preuve de paiement en fiat à l'exécution exacte |
| PaymentAttestation | Résultat de vérification signé EIP-712 | Permet à un seul contrat vérificateur de gérer plusieurs méthodes de paiement |
| Nullifier | Marqueur à usage unique pour un paiement | Empêche que le même paiement soit réclamé deux fois |
| Hash des coordonnées du bénéficiaire | Hash de l'identifiant de versement du vendeur | Lie le paiement au vendeur. Pour la plupart des méthodes, il n'est pas salé : quiconque connaît l'identifiant peut le retrouver |
Ce qui est public
Votre identifiant de paiement n'est pas écrit en clair sur Base, mais chaque dépôt enregistre un hash de celui-ci et, pour la plupart des méthodes de paiement, ce hash n'est pas salé. Quiconque connaît ou devine votre Cashtag, Revtag, e-mail Zelle ou identifiant de compte Venmo peut le hacher et retrouver tous les dépôts qui l'utilisent, et la recherche publique de makers de ZKP2P renvoie l'identifiant enregistré pour un hash. Considérez votre identifiant de paiement comme public. Votre connexion et l'historique de votre compte dans l'app de paiement ne sont pas publiés sur Base.
Votre identifiant de versement reste visible pour la contrepartie qui doit vous payer. C'est inévitable dans tout flux de règlement sur application de paiement : l'acheteur ne peut pas envoyer de fiat sans destination.