Transferências entre redes (CCTP)
Como o USDC se move entre a Base e outras redes, o que é o seu endereço de depósito e o que o MozaikPay pode e não pode fazer com um depósito.
Sua carteira fica na Base, mas seu USDC pode vir de outros lugares. Uma exchange pode pagar só na Polygon, ou um amigo pode ter USDC na Solana. Esta página explica como o USDC se move entre redes no MozaikPay, e por que nenhuma ponte e nenhuma empresa fica com ele no caminho.
O problema das pontes
Um token não consegue passar sozinho de uma rede para outra. Cada rede mantém os próprios registros, e nenhuma rede consegue ler os registros de outra. A solução de costume é uma ponte. A ponte trava seus tokens na primeira rede e te dá uma cópia na segunda.
A cópia é outro token, e ela só é tão segura quanto a ponte. Se um atacante invadir a ponte, as cópias podem perder todo o valor, e ataques a pontes causaram algumas das maiores perdas do mundo cripto. O USDC.e, que você ainda encontra na Arbitrum e na Polygon, é uma cópia desse tipo.
O que o CCTP faz no lugar
A própria Circle emite o USDC em cada rede, então ela não precisa de uma cópia. O Cross-Chain Transfer Protocol (CCTP) da Circle move o USDC em três passos.
- Um contrato queima o USDC na primeira rede. A queima registra o valor e o destinatário na segunda rede.
- O serviço de atestados da Circle vê a queima e assina uma mensagem que a confirma.
- Qualquer pessoa pode enviar essa mensagem na segunda rede. Lá, o contrato da Circle confere a assinatura e cunha a mesma quantidade de USDC para o destinatário.
Nenhum pool e nenhuma empresa fica com o USDC entre a queima e a cunhagem. O USDC que chega é USDC nativo, o mesmo token de qualquer outro USDC daquela rede.
O CCTP tem duas velocidades. Uma transferência padrão (Standard) espera até a queima ficar definitiva na primeira rede. Ela é gratuita, mas na Ethereum e na Arbitrum a espera é de uns 15 a 20 minutos. Uma transferência rápida (Fast) não espera, porque a Circle assume o risco da espera e cobra uma taxa pequena por isso, de cerca de 0,01%. O MozaikPay usa transferências rápidas a partir da Ethereum e da Arbitrum. A partir da Polygon e da Solana, uma transferência padrão é gratuita e leva só alguns segundos, então o MozaikPay usa a transferência padrão nessas redes.
Como um depósito chega à sua carteira
Seu endereço de depósito na Ethereum, na Arbitrum e na Polygon é um pequeno contrato. O endereço dele vem do endereço da sua carteira, com a mesma fórmula em todas as redes, por isso é um só endereço nas três redes. O contrato contém o endereço da sua carteira, e ele só consegue enviar USDC para essa carteira. O contrato não tem dono, e ninguém pode mudar o código dele.
Quando chega USDC no seu endereço de depósito, acontecem estes passos.
- O MozaikPay vê a transferência naquela rede.
- O MozaikPay manda o endereço de depósito repassar o USDC. O contrato queima o USDC pelo CCTP, com a sua carteira na Base como destinatária.
- A Circle atesta a queima.
- O MozaikPay envia o atestado na Base, e o contrato da Circle cunha o USDC na sua carteira.
O MozaikPay paga as taxas de rede nas duas redes. É por isso que cada rede tem um mínimo. Abaixo do mínimo, a taxa de rede fica grande demais para o valor, então o USDC espera até chegar mais. As taxas de rede na Ethereum às vezes sobem por pouco tempo. Quando um repasse custa mais de 2% do valor, o MozaikPay espera as taxas baixarem.
Depósitos via Solana
Muitas exchanges só aceitam um endereço de carteira Solana comum como destino. Por isso, seu endereço de depósito Solana é um endereço de carteira Solana comum, que seu telefone deriva da sua chave de gastos.
Quando você configura o endereço, seu telefone assina uma transação. Essa transação deixa um programa do MozaikPay na Solana mover USDC para fora do endereço. O programa só pode fazer uma coisa com esse USDC. Ele queima o USDC pelo CCTP, com a sua carteira na Base como destinatária. O app só configura um endereço quando ninguém mais consegue mudar esse programa. O MozaikPay paga pela configuração.
Uma restauração dá à sua conta uma nova chave de gastos, por isso o telefone novo configura um novo endereço Solana. O endereço antigo mantém a permissão, então USDC enviado para o endereço antigo continua chegando à sua carteira.
Saques para outras redes
Um saque para outra rede faz os mesmos passos no sentido contrário. Sua carteira queima o USDC na Base pelo CCTP, e o destinatário é o endereço que você digitou. Depois, o Forwarding Service da Circle envia a mensagem na outra rede e paga a taxa de rede de lá.
A taxa de ponte é a taxa da transferência rápida mais a taxa do Forwarding Service. As duas vão para a Circle. O MozaikPay não fica com nenhuma parte da taxa de ponte, e paga a taxa de rede na Base, como em toda transferência.
O que o MozaikPay pode e não pode fazer
Seu endereço de depósito segue as mesmas regras da sua carteira. Os pontos abaixo vêm de código público, não de uma política.
- O MozaikPay não pode desviar um depósito. O endereço de depósito e o programa na Solana só conseguem enviar USDC para a sua carteira na Base.
- O MozaikPay não pode ficar com um depósito. Nem o endereço de depósito nem o programa na Solana têm dono, administrador ou um jeito de mudar o próprio código.
- O MozaikPay não é necessário para a entrega. Qualquer pessoa pode mandar um endereço de depósito fazer o repasse, e qualquer pessoa pode enviar o atestado da Circle na Base. Se o MozaikPay parar, o USDC espera no seu endereço de depósito até alguém fazer esses passos.
- O MozaikPay pode atrasar um depósito. Normalmente é o MozaikPay que inicia cada repasse, então um problema do nosso lado atrasa o depósito.
O CCTP só move USDC. USDC.e ou outro token no seu endereço de depósito fica lá. Só a sua carteira pode autorizar a saída desse token do endereço de depósito, e o app ainda não oferece isso.
A Circle também tem um poder real aqui. É a Circle que opera o serviço de atestados, então uma pausa na Circle pausa todas as transferências. A Circle também pode bloquear um endereço no CCTP quando a lei exige. O que são dólares digitais? explica o papel da Circle.