A versão curta
Um vendedor cria um depósito bloqueando USDC no EscrowV2 na Base e listando o método de pagamento em moeda fiduciária, a moeda, o identificador de pagamento e a taxa. Um comprador escolhe essa liquidez, inicia uma intenção onchain, paga o vendedor no app de pagamento selecionado e envia a evidência do pagamento.
O protocolo não pede que nenhum dos lados confie em um print de tela. A evidência do pagamento é verificada offchain pelo serviço de atestado, e o PaymentAttestation EIP-712 resultante é verificado onchain antes de o contrato liberar o USDC.
O ciclo de vida do preenchimento
- 01O vendedor deposita USDC nativo na Base no EscrowV2 e declara os métodos de pagamento aceitos, moedas e dados do beneficiário.
- 02O comprador seleciona o depósito e sinaliza uma intenção pelo OrchestratorV2. Essa intenção reserva o valor específico enquanto o comprador paga.
- 03O comprador paga o vendedor diretamente no app fiduciário selecionado. A USDCtoFiat nunca recebe nem guarda a transferência em moeda fiduciária.
- 04A evidência do pagamento é verificada contra a intenção: valor, moeda, destinatário, timestamp, método de pagamento e restrições de rota.
- 05O serviço de atestado assina um PaymentAttestation. O verificador onchain confere a assinatura, os valores do snapshot e o nullifier, e então o OrchestratorV2 libera o USDC.
Por que o contrato pode liberar com segurança
| Primitivo | O que faz | Por que importa |
|---|---|---|
| EscrowV2 | Guarda o USDC do vendedor na Base | Nem a USDCtoFiat nem o comprador podem movê-lo sem as regras do contrato |
| Hash da intenção | Identifica uma ordem de comprador | Vincula a prova de pagamento em moeda fiduciária ao preenchimento exato |
| PaymentAttestation | Resultado de verificação assinado em EIP-712 | Permite que um único contrato verificador lide com vários métodos de pagamento |
| Nullifier | Marcador de uso único para um pagamento | Impede que o mesmo pagamento seja reivindicado duas vezes |
| Hash dos dados do beneficiário | Hash do identificador de pagamento do vendedor | Vincula o pagamento ao vendedor sem publicar o handle onchain |
O que não está onchain
Seu nome de usuário do Venmo, Revtag, Wisetag, handle do PayPal.me, e-mail do Zelle, sessão de conta e dados detalhados de pagamento não são publicados na Base. A blockchain vê o estado do contrato, hashes, assinaturas, valores e eventos de liberação, não todo o histórico privado da conta de pagamento.
Seu identificador de pagamento ainda fica visível para a contraparte que precisa pagar você. Isso é inevitável em qualquer fluxo de liquidação em app de pagamento: o comprador não pode enviar moeda fiduciária sem um destino.