Contratto proxy (Proxy contract)
In breve Un contratto proxy inoltra le chiamate a un contratto con la logica, permettendo di aggiornare il codice di un token senza cambiarne l'indirizzo.
Un contratto proxy è uno smart contract che mantiene l'indirizzo e i dati con cui interagiscono gli utenti, ma inoltra ogni chiamata a un contratto separato che contiene la logica effettiva. Gli utenti continuano a usare lo stesso indirizzo, mentre il codice sottostante può essere sostituito con una nuova versione. I team usano questo schema su Ethereum, BNB Chain e Base per correggere bug in codice che altrimenti sarebbe impossibile modificare.
A livello tecnico, il proxy usa una delegatecall. Esegue il codice del contratto di logica sul proprio storage, quindi saldi e impostazioni rimangono nel proxy, mentre le regole provengono dall'implementazione. Un indirizzo amministratore, che può essere un singolo wallet, un multisig o un timelock, è autorizzato a far puntare il proxy a una nuova implementazione. Standard come i proxy trasparenti e UUPS differiscono per dove risiede l'autorizzazione all'aggiornamento, ma l'idea è la stessa.
Questo è importante perché il codice che hai letto o visto sottoposto ad audit potrebbe non essere quello in esecuzione domani. Un aggiornamento può aggiungere una funzione di mint, una blacklist o una tassa di vendita nascosta dopo che hai già acquistato. Anche la rinuncia all'ownership del token può essere fuorviante, perché i diritti di aggiornamento fanno solitamente capo a un amministratore del proxy separato. Molti progetti legittimi usano proxy, quindi questo schema da solo non è un campanello d'allarme. Conta chi controlla gli aggiornamenti e con quanto preavviso vengono annunciati.
Su un block explorer, controlla se il contratto è indicato come proxy e individua l'indirizzo dell'implementazione e l'amministratore. Verifica se l'amministratore è un semplice wallet o un multisig, se un timelock impone un ritardo prima che gli aggiornamenti entrino in vigore e se l'audit copre l'implementazione attuale anziché una precedente. Esamina la cronologia delle implementazioni per individuare sostituzioni recenti. Su Solana l'equivalente è un programma aggiornabile con un'upgrade authority: se questa viene revocata, il codice non è più modificabile.




