Die Kurzversion
Ein Verkäufer erstellt eine Einzahlung, indem er USDC in EscrowV2 auf Base sperrt und die Fiat-Zahlungsmethode, Währung, Auszahlungskennung und den Kurs auflistet. Ein Käufer wählt diese Liquidität, startet einen Onchain-Intent, zahlt dem Verkäufer in der gewählten Zahlungs-App und reicht den Zahlungsnachweis ein.
Das Protokoll verlangt nicht, dass eine der Parteien einem Chat-Screenshot vertraut. Zahlungsnachweise werden offchain durch den Attestierungsdienst geprüft, und die resultierende EIP-712 PaymentAttestation wird onchain verifiziert, bevor der Vertrag USDC freigibt.
Der Lebenszyklus einer Ausführung
- 01Verkäufer zahlt natives USDC auf Base in EscrowV2 ein und gibt akzeptierte Zahlungsmethoden, Währungen und Zahlungsempfängerdetails an.
- 02Käufer wählt die Einzahlung und signalisiert einen Intent durch OrchestratorV4. Dieser Intent reserviert den spezifischen Betrag, während der Käufer zahlt.
- 03Käufer zahlt dem Verkäufer direkt in der gewählten Fiat-App. USDCtoFiat empfängt oder hält nie den Fiat-Transfer.
- 04Zahlungsnachweise werden gegen den Intent verifiziert: Betrag, Währung, Empfänger, Zeitstempel, Zahlungsmethode und Routen-Einschränkungen.
- 05Der Attestierungsdienst signiert eine PaymentAttestation. Der Onchain-Verifier prüft die Signatur, Snapshot-Werte und den Nullifier, dann gibt OrchestratorV4 USDC frei.
Warum der Vertrag sicher freigeben kann
| Primitiv | Funktion | Bedeutung |
|---|---|---|
| EscrowV2 | Hält Verkäufer-USDC auf Base | Weder USDCtoFiat noch der Käufer können es ohne Vertragsregeln bewegen |
| Intent-Hash | Identifiziert eine Käufer-Order | Bindet den Fiat-Zahlungsnachweis an die genaue Ausführung |
| PaymentAttestation | EIP-712 signiertes Verifizierungsergebnis | Ermöglicht einem Verifier-Vertrag, mehrere Zahlungsmethoden zu handhaben |
| Nullifier | Einmaliger Marker für eine Zahlung | Verhindert, dass dieselbe Zahlung zweimal beansprucht wird |
| Zahlungsempfänger-Details-Hash | Hash der Auszahlungskennung des Verkäufers | Bindet die Zahlung an den Verkäufer. Bei den meisten Methoden ungesalzen, also kann jeder, der das Handle kennt, es zuordnen |
Was öffentlich ist
Dein Auszahlungs-Handle wird nicht als Klartext auf Base geschrieben, aber jede Einzahlung speichert einen Hash davon, und bei den meisten Zahlungsmethoden ist dieser Hash ungesalzen. Wer deinen Cashtag, Revtag, deine Zelle-E-Mail oder Venmo-Konto-ID kennt oder errät, kann sie hashen und jede Einzahlung finden, die sie nutzt. Die öffentliche Maker-Abfrage von ZKP2P gibt außerdem das zu einem Hash registrierte Handle zurück. Behandle dein Auszahlungs-Handle als öffentlich. Dein Login und Kontoverlauf in der Zahlungs-App werden nicht auf Base veröffentlicht.
Deine Auszahlungskennung ist weiterhin für die Gegenpartei sichtbar, die dich bezahlen muss. Das ist in jedem Zahlungs-App-Abwicklungsflow unvermeidlich: Der Käufer kann ohne ein Ziel kein Fiat senden.