Meccaniche del protocollo

Come ZKP2P trasforma un pagamento in fiat in un rilascio onchain di USDC.

ZKP2P è il protocollo che sta sotto USDCtoFiat. I venditori bloccano USDC in uno smart contract su Base, gli acquirenti pagano in fiat tramite una normale app di pagamento, e un'attestazione di pagamento firmata sblocca gli USDC dopo che il pagamento corrisponde all'ordine.

01

La versione breve

Un venditore crea un deposito bloccando USDC in EscrowV2 su Base e indicando il metodo di pagamento in fiat, la valuta, l'identificativo di pagamento e il tasso. Un acquirente sceglie quella liquidità, avvia un intent onchain, paga il venditore nell'app di pagamento selezionata e invia la prova del pagamento.

Il protocollo non chiede a nessuna delle due parti di fidarsi di uno screenshot di una chat. La prova del pagamento viene verificata offchain dal servizio di attestazione, e la PaymentAttestation EIP-712 risultante viene verificata onchain prima che il contratto rilasci gli USDC.

02

Il ciclo di vita del fill

  1. 01Il venditore deposita USDC nativi su Base in EscrowV2 e dichiara i metodi di pagamento accettati, le valute e i dettagli del beneficiario.
  2. 02L'acquirente seleziona il deposito e segnala un intent tramite OrchestratorV2. Quell'intent riserva l'importo specifico mentre l'acquirente paga.
  3. 03L'acquirente paga il venditore direttamente nell'app fiat selezionata. USDCtoFiat non riceve né detiene mai il trasferimento in fiat.
  4. 04La prova del pagamento viene verificata rispetto all'intent: importo, valuta, destinatario, timestamp, metodo di pagamento e vincoli della rotta.
  5. 05Il servizio di attestazione firma una PaymentAttestation. Il verificatore onchain controlla la firma, i valori dello snapshot e il nullifier, poi OrchestratorV2 rilascia gli USDC.
03

Perché il contratto può rilasciare in sicurezza

PrimitivaCosa faPerché è importante
EscrowV2Detiene gli USDC del venditore su BaseNé USDCtoFiat né l'acquirente possono spostarli senza le regole del contratto
Hash dell'intentIdentifica un singolo ordine dell'acquirenteLega la prova del pagamento in fiat al fill esatto
PaymentAttestationRisultato di verifica firmato EIP-712Permette a un solo contratto verificatore di gestire più metodi di pagamento
NullifierMarcatore monouso per un pagamentoImpedisce che lo stesso pagamento venga rivendicato due volte
Hash dei dettagli del beneficiarioHash dell'identificativo di pagamento del venditoreLega il pagamento al venditore senza pubblicare l'identificativo onchain
04

Cosa non è onchain

Il tuo username Venmo, Revtag, Wisetag, identificativo PayPal.me, email Zelle, sessione dell'account e dati di pagamento dettagliati non vengono pubblicati su Base. La chain vede lo stato del contratto, gli hash, le firme, gli importi e gli eventi di rilascio, non l'intera cronologia privata dell'account di pagamento.

Il tuo identificativo di pagamento resta comunque visibile alla controparte che deve pagarti. Questo è inevitabile in qualsiasi flusso di regolamento via app di pagamento: l'acquirente non può inviare fiat senza una destinazione.

Percorso di produzione V3

Escrow non custodial più attestazione di pagamento offchain.

ZKP2P V3 sposta l'analisi del pagamento offchain e mantiene le regole finali di rilascio onchain, ed è per questo che la UX del venditore può supportare più metodi di pagamento senza un contratto verificatore su misura per ogni rotta.

L'esatto flusso di pagamento-app differisce per metodo. La registrazione di estensione non sovrascrive la politica del fornitore: Wise vieta le ricevute di cripto-vendita di P2P e PayPal può richiedere la preapprovazione.

EscrowV2
0x777777779d229cdF3110e9de47943791c26300Efcontratto di custodia del venditore
OrchestratorV2
0x888888359E981B5225CA48fbCdCeff702FC3b888ciclo di vita dell'intent
USDC
0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913token nativo di Base
Verifier
UnifiedPaymentVerifierV2controlla le attestazioni di pagamento

Domande frequenti

Cos'è USDCtoFiat?

USDCtoFiat coordina vendite non-custodial di USDC nativo su Base in cambio di USD, EUR o GBP tramite gli smart contract ZKP2P. Restano valide l’idoneità richiesta dal fornitore di pagamento e le sue regole dell’account; il supporto tecnico di un percorso non autorizza l’uso di un account esterno e Wise vieta attualmente gli incassi da vendite P2P di criptovalute.

USDCtoFiat detiene i miei fondi?

No. Firmi ogni transazione dal tuo wallet. I tuoi USDC sono bloccati in un contratto pubblico su Base e vengono rilasciati all'acquirente solo dopo che il suo pagamento è comprovato. Puoi prelevare in qualsiasi momento qualsiasi deposito non riempito.

Quanto costa vendere?

Creating and managing a seller deposit is free, though Base gas applies to onchain actions. The offramp SDK is free to integrate. On delegated fills, Delegate's 0.10% manager fee comes from the USDC released to the buyer, not from your fiat proceeds or your quoted rate. Peerlytics analytics and API credits are priced separately.

Mi serve un account su un exchange centralizzato?

Non è richiesto alcun account exchange per usare USDCtoFiat. Ti serve un wallet con USDC su Base e un account sull'app di pagamento in cui vuoi essere pagato. Restano valide le regole e i limiti dell'app di pagamento stessa.

Devo completare il KYC?

USDCtoFiat non raccoglie documenti d'identità, non detiene i tuoi fiat e non detiene le tue chiavi. L'app di pagamento che usi controlla comunque le proprie verifiche, i limiti e le regole dell'account. Il regolamento degli USDC avviene tramite smart contract su Base, e non possiamo modificare ciò che Venmo, PayPal, Wise, Zelle o la tua banca richiedono.

ZKP2P è la stessa cosa di USDCtoFiat?

No. ZKP2P è il protocollo e il sistema di contratti sottostante. USDCtoFiat è un prodotto orientato al venditore costruito su di esso per trasformare USDC su Base in fiat tramite le app di pagamento supportate.

Lo stesso pagamento in fiat può rilasciare USDC due volte?

No. Le attestazioni di pagamento includono un nullifier, un marcatore monouso controllato dal verificatore per impedire di rigiocare lo stesso pagamento contro più intent.

Cosa succede se l'acquirente avvia un intent ma non paga mai?

Quella parte del deposito del venditore resta temporaneamente legata all'intent aperto finché non scade o viene annullato. La liquidità non riempita resta prelevabile dal venditore.