CertiExchMANUALI OPERATIVI
Home
Manuale simulatori e sistemi esterni

Rail EVM, Polygon e signer remoto

Rail EVM, Polygon e signer remoto#

Il rail EVM consente di pubblicare una rappresentazione permissioned di uno strumento già governato da CertiExch. Nella configurazione prevista il contratto esterno è un mirror: la fonte autoritativa delle posizioni resta il registro CertiExch.

Architettura a due livelli#

Registro CertiExch
→ riserva o autorizza una quantità
→ adapter LedgerRailInterface
→ provider EVM
→ signer remoto
→ contratto mirror su Polygon/EVM

Il core dialoga con LedgerRailInterface, non con Polygon direttamente. Questo consente di sostituire la famiglia di rail senza modificare la logica di dominio.

Componenti#

ComponenteFunzione
LedgerRailInterfaceContratto generico del dominio: deploy, mint, transfer, lock, release, burn, lettura e verifica.
EvmLedgerRailAdapterTraduce le operazioni generiche verso il provider EVM.
EvmRailProviderInterfaceContratto tecnico EVM.
Provider simulatoRiproduce contratti, saldi, hold, eventi e blocchi nello store di test.
Provider JSON-RPCLegge la rete EVM e delega le scritture al signer remoto.
RemoteLedgerWalletProviderInvia una richiesta firmabile a un servizio esterno che detiene la chiave.
CertiExchBondMirrorContratto di rappresentazione permissioned.

Funzioni del mirror#

Il contratto di riferimento supporta:

  • deployment del mirror;
  • allowlist degli indirizzi;
  • mint collegato a una riserva;
  • burn collegato a un lock;
  • hold per il settlement;
  • esecuzione o rilascio dell’hold;
  • lettura di balance e total supply;
  • eventi on-chain.

La presenza di un saldo on-chain non deve essere interpretata da sola come titolarità giuridica fuori dal modello approvato.

Public-permissioned#

Polygon è una rete pubblica, ma le operazioni del mirror restano controllate tramite:

  • allowlist;
  • ruoli del contratto;
  • istruzioni originate dal core;
  • signer separato;
  • riconciliazione con le riserve del registro.

Pubblico non significa che chiunque possa scrivere o che dati personali debbano essere pubblicati.

Provider JSON-RPC#

Il provider reale:

  • accetta solo endpoint HTTPS;
  • verifica il chain ID atteso;
  • legge blocco corrente, log, balance e supply;
  • non contiene la chiave privata;
  • delega ogni scrittura al wallet provider esterno.

Se il chain ID osservato è diverso da quello configurato, il provider deve interrompere l’operazione.

Signer remoto#

Il signer remoto è un confine di sicurezza. La richiesta contiene:

network
network_id
key_reference
operation
payload
request_id

L’adattatore applica:

  • HTTPS obbligatorio;
  • TLS peer e hostname verification;
  • nessun redirect;
  • endpoint senza credenziali incorporate;
  • bearer token separato;
  • key reference controllata;
  • timeout limitato;
  • idempotency key;
  • risposta entro 1 MiB;
  • transaction hash EVM valido;
  • correlazione del request ID.

La chiave privata non entra nel processo PHP né negli export di continuità.

Pubblicare un mirror#

Mint e riserva#

Il mint deve essere preceduto da una riserva o da un lock nel registro. Il riferimento della riserva collega la quantità on-chain alla posizione autoritativa.

Non eseguire mint “di comodo” per far quadrare la supply. Prima correggere la causa nel registro o usare una procedura di rettifica autorizzata.

Hold e DvP#

L’hold rappresenta una quantità bloccata in attesa del settlement. Deve contenere:

  • hold/transfer ID;
  • indirizzo cedente;
  • indirizzo cessionario;
  • unità;
  • settlement reference.

Esecuzione o rilascio devono essere idempotenti e collegati allo stesso oggetto DvP.

Riconciliazione#

La metrica essenziale è:

supply osservata sul rail
− unità riservate/mintate nel registro
= differenza

Valore zero significa coerenza quantitativa, non assenza di ogni altro problema. Verificare anche:

  • contract address;
  • chain ID;
  • allowlist;
  • saldi per indirizzo;
  • hold aperti;
  • eventi;
  • cursor di acquisizione;
  • finalità dei blocchi;
  • transazioni orfane o duplicate.

Log esterni#

Prima di acquisire un log:

  1. verificare chain ID;
  2. verificare contract address autorizzato;
  3. verificare topic/event signature;
  4. verificare transaction hash e block hash;
  5. attendere il numero di conferme previsto;
  6. decodificare con ABI approvata;
  7. verificare non duplicazione;
  8. correlare con un’istruzione del core.

Explorer pubblico#

Il link all’explorer serve a consultare la transazione, ma non sostituisce la verifica programmatica. L’explorer è un’interfaccia di terzi e può mostrare etichette o dati derivati non controllati da CertiExch.

Qualificazione produttiva#

Prima di usare il rail reale servono:

  • smart contract auditato;
  • governance di upgrade o immutabilità;
  • HSM/KMS o custodia qualificata;
  • policy di nonce e gas;
  • gestione reorg e finalità;
  • monitoraggio RPC multiplo;
  • allowlist governance;
  • runbook chiave compromessa;
  • capacity e costi;
  • privacy assessment;
  • riconciliazione indipendente;
  • exit strategy verso altro rail.