Sei controlli prima di interagire con un contratto sconosciuto

Verificare il contratto di una collezione NFT in sei passaggi: fonti indipendenti, sorgente pubblicato, poteri amministrativi, cronologia e finestra di firma.

magnifying glass document

Un indirizzo di contratto compare in un messaggio privato, nella descrizione di un video o in un annuncio piazzato sopra il primo risultato di ricerca. Il nome della raccolta è scritto correttamente, l’immagine di anteprima è identica a quella che circola da mesi, il sito ha un aspetto curato. Nulla di tutto questo prova qualcosa.

Il registro non conosce nomi. Conosce indirizzi, e due contratti possono dichiararsi entrambi la raccolta ufficiale senza che il sistema abbia modo di stabilire quale dei due menta. La verifica è quindi un lavoro di riscontro esterno, che si fa prima di aprire il portafoglio e non dentro di esso.

Quello che segue è l’ordine in cui conviene procedere, con il criterio che fa passare o fermare ciascun passaggio. Serve a valutare un contratto, non un progetto: non contiene indicazioni su che cosa acquistare né stime di valore, e nessun controllo tecnico elimina la possibilità che una raccolta digitale si riveli priva di mercato.

I sei controlli, e quanto tempo prendono

  • L’indirizzo prima del nome. Il nome è un’etichetta scritta da chi pubblica il contratto e non è sottoposta ad alcuna assegnazione in esclusiva.
  • Due fonti che non si copiano. Un riscontro solo non basta: l’indirizzo va ritrovato identico in due luoghi indipendenti fra loro.
  • Codice verificato non significa codice sicuro. Attesta che il sorgente pubblicato corrisponde a quello in esecuzione, e si ferma lì.
  • Le funzioni amministrative decidono il resto. Chi può sospendere, coniare o cambiare l’indirizzo dei metadati conserva un potere che la vendita non trasferisce.
  • Tempo richiesto. Fra i dieci e i venti minuti la prima volta, meno di cinque quando la sequenza diventa abitudine.

L’indirizzo del contratto è l’unica identità che conta

Un contratto espone un nome e un simbolo perché lo standard prevede due funzioni di sola lettura che li restituiscono. Quei due valori li scrive chi pubblica il contratto, e nessuno li controlla: non esiste un registro dei nomi, non esiste un’assegnazione in esclusiva, non esiste un conflitto che il sistema possa rilevare da solo.

Ne segue che la stessa stringa può comparire su decine di contratti distinti, tutti tecnicamente validi e tutti operativi nello stesso momento. Le sedi di scambio aggirano il problema con un contrassegno di verifica, che però è una decisione commerciale di quella sede: vale dentro quell’interfaccia e non è una proprietà del contratto, tanto che la stessa raccolta può risultare contrassegnata su una piattaforma e non su un’altra.

L’identificativo stabile è quindi soltanto l’indirizzo. Va trattato come si tratta un codice di conto: si copia dalla fonte, si incolla, non si digita mai a mano e non si confronta a occhio. Questa abitudine da sola elimina la maggior parte degli errori, e vale anche quando si valuta dove svolgere una compravendita piuttosto che il singolo pezzo.

Come verificare il contratto di una collezione NFT partendo da fonti indipendenti

Il primo passaggio consiste nel ritrovare lo stesso indirizzo in due luoghi che non attingono l’uno dall’altro. Il sito del progetto raggiunto da un segnalibro salvato in un momento tranquillo è una fonte; un aggregatore di dati di mercato ne è un’altra; l’esploratore della catena, che mostra chi ha creato il contratto e quando, è una terza.

Non sono fonti indipendenti due schede che ripubblicano il dato ricevuto dal progetto, né due profili collegati fra loro. L’indipendenza si misura su una domanda sola: se chi controlla il progetto volesse cambiare l’indirizzo pubblicato, quante di queste fonti si aggiornerebbero da sole nello stesso istante? Se la risposta è tutte, si tratta di una fonte sola travestita da tre.

Il confronto va fatto sull’intera stringa. Guardare i primi sei caratteri e gli ultimi sei è la scorciatoia che rende profittevole la fabbricazione di indirizzi somiglianti, e chi la usa sta verificando molto meno di quanto crede. Il metodo pratico è incollare l’indirizzo nel campo di ricerca dell’esploratore e controllare che la pagina che si apre sia quella attesa, con la stessa data di creazione e lo stesso creatore riportati altrove.

Secondo controllo: il sorgente pubblicato e quello in esecuzione

Sugli esploratori più diffusi un contratto può risultare verificato. La parola descrive un’operazione precisa e più ristretta di quanto suggerisca: qualcuno ha caricato il codice sorgente e il compilatore ha confermato che, con quelle esatte impostazioni, quel sorgente produce il codice compilato realmente presente all’indirizzo. Nient’altro.

Un contratto verificato può contenere difetti gravi, funzioni ostili scritte alla luce del sole e permessi sbilanciati. La verifica non è una revisione di sicurezza e non è un’approvazione: rende leggibile il testo, che è esattamente ciò che serve per i controlli successivi. Un contratto non verificato, al contrario, è un punto di arresto ragionevole per chi non ha strumenti per leggere il codice compilato.

C’è una trappola ricorrente in questa fase. Molti contratti sono pubblicati come deleganti, cioè rimandano l’esecuzione a un secondo contratto che contiene la logica vera. Il codice verificato che si sta leggendo può essere quello del delegante, mentre la sostanza sta nell’implementazione collegata, che va aperta a parte e verificata a sua volta. Gli standard che descrivono questi schemi sono pubblicati e consultabili nell’archivio delle proposte di miglioramento del protocollo, ed è lì che si trova la struttura esatta da cercare.

Terzo controllo: le funzioni amministrative e chi le può richiamare

Mazzo di chiavi metalliche appese a un anello sopra un piano di legno chiaro
advokatsmart.no / BY 2.0

Non serve saper programmare per eseguire questo controllo. Serve scorrere l’elenco delle funzioni che modificano lo stato e isolare quelle riservate a un ruolo. Sono riconoscibili perché portano quasi sempre un termine amministrativo nel nome e perché il codice le protegge con una condizione sul chiamante.

Le categorie che contano sono quattro. La facoltà di coniare nuovi pezzi dopo la chiusura dell’emissione, che modifica la quantità in circolazione. La facoltà di sospendere i trasferimenti, che congela quello che si possiede. La facoltà di modificare l’indirizzo base dei metadati, che cambia l’immagine associata a un pezzo già venduto. La facoltà di aggiornare l’implementazione, che consente di sostituire in blocco il comportamento del contratto.

Una volta individuate, la domanda si sposta su chi le controlla. Un indirizzo singolo significa una chiave sola: se viene compromessa, tutti quei poteri passano a qualcun altro. Una firma multipla con soglia è più robusta, e un ritardo obbligatorio fra l’annuncio di una modifica e la sua esecuzione è ciò che permette a chi detiene i pezzi di uscire prima. La presenza di poteri ampi non è di per sé un difetto: lo è la loro presenza senza ritardo e senza distribuzione delle chiavi.

Quarto controllo: la cronologia dice l’età e la forma della distribuzione

La pagina del contratto sull’esploratore riporta la data di creazione, l’indirizzo che lo ha pubblicato e il numero di operazioni registrate. Sono tre dati grezzi che rispondono a domande molto concrete e che nessuno può riscrivere a posteriori.

Un contratto creato poche ore prima dell’annuncio che lo pubblicizza è un segnale forte, perché i progetti che esistono davvero hanno una cronologia lunga quanto la loro comunicazione. Conviene poi guardare che cosa ha fatto l’indirizzo creatore: se ha pubblicato decine di contratti quasi identici in poche settimane, sta producendo raccolte in serie, e la circostanza dice più di qualunque presentazione.

Il numero di detentori distinti va letto insieme al numero di trasferimenti. Molte operazioni concentrate fra pochi indirizzi che si rimandano gli stessi pezzi producono attività apparente senza scambio reale, uno schema che si riconosce dai dati pubblici come sa chiunque provi a stimare il valore di un pezzo. Il rapporto fra detentori e quantità emessa, senza essere un giudizio, dice se la distribuzione è avvenuta oppure è stata simulata.

Quinto controllo: che cosa restituisce davvero il contratto

L’ultimo controllo tecnico si esegue dalle funzioni di sola lettura, che gli esploratori permettono di richiamare senza costi e senza firmare nulla. Interrogare il contratto per un identificativo qualsiasi restituisce l’indirizzo dove risiede la descrizione del pezzo, e quell’indirizzo va aperto e confrontato con ciò che l’interfaccia di vendita mostra.

Le discordanze possibili sono tre e vanno distinte. L’interfaccia mostra un’immagine che il contratto non indica, e allora l’immagine è un elemento della vetrina e non del bene. L’indirizzo restituito punta a un dominio ordinario controllato dal progetto, e la sopravvivenza del contenuto dipende dal rinnovo di quel dominio. L’indirizzo restituito è costruito su un riferimento derivato dal contenuto, e in quel caso una modifica successiva sarebbe rilevabile da chiunque.

Conviene ripetere l’interrogazione su due o tre identificativi diversi, scelti fra i primi emessi e fra gli ultimi. Se l’indirizzo restituito cambia forma passando da un pezzo all’altro, significa che la raccolta è stata costruita in momenti diversi con criteri diversi, e la parte più recente è quella su cui vale la pena insistere. È un controllo di trenta secondi che smonta molte raccolte assemblate in fretta.

Vale la pena richiamare anche la funzione che restituisce il proprietario del contratto e quella che indica la quantità già emessa. Sono due numeri che chiudono il quadro: chi comanda e quanti pezzi esistono davvero, indipendentemente da quanti ne siano stati annunciati.

Sesto controllo: la finestra di firma, un istante prima

Tutti i passaggi precedenti diventano inutili se l’ultima schermata viene approvata senza leggerla. È lì che il lavoro di verifica si traduce in una decisione, e il confronto da fare è uno solo: l’indirizzo del contratto di destinazione mostrato dal portafoglio deve coincidere per intero con quello verificato.

Vanno lette altre due informazioni. La funzione richiamata, che deve essere coerente con l’operazione annunciata: un acquisto non richiede un permesso sull’intera raccolta, e un accesso non richiede alcuna autorizzazione a spostare. L’importo, che deve corrispondere al prezzo esposto più il costo di rete, senza voci aggiuntive.

Quando l’operazione parte da un dispositivo di firma, il confronto va fatto sullo schermo del dispositivo e non su quello del computer, perché il secondo può essere alterato dal sito e il primo no. La priorità di questo controllo finale rispetto a tutti gli altri ricorre nelle raccomandazioni operative dell’agenzia europea per la cibersicurezza, che colloca la conferma consapevole fra le poche difese praticabili da chiunque.

I sei controlli con il criterio di superamento

Controllo Dove si esegue Criterio di superamento
Indirizzo su fonti indipendenti Sito, aggregatore, esploratore Stringa identica in due fonti che non si copiano
Sorgente e codice in esecuzione Scheda del contratto Verificato, e verificata anche l’implementazione se è delegante
Funzioni amministrative Elenco delle funzioni Poteri dichiarati, chiavi distribuite, ritardo previsto
Cronologia e distribuzione Pagina del contratto Età coerente con la comunicazione, detentori numerosi
Metadati restituiti Funzioni di sola lettura L’indirizzo restituito porta al contenuto mostrato
Finestra di firma Portafoglio o dispositivo Destinazione, funzione e importo coerenti

I sei criteri sono binari per costruzione: o la condizione è soddisfatta o non lo è. Un solo esito negativo non impone di rinunciare, ma impone di sapere che cosa si sta accettando, e il quarto e il sesto sono quelli che vengono saltati più spesso proprio perché sembrano i più noiosi.

Gli inganni più usati per far fallire questa verifica

Maschera veneziana decorata appesa a una parete accanto a una vetrina illuminata
gnuckx / BY 2.0
  • Indirizzo somigliante. Fabbricato per condividere i primi e gli ultimi caratteri con quello autentico, così da superare il confronto rapido.
  • Contrassegno riprodotto. Il simbolo di verifica inserito come immagine nella pagina o nell’intestazione del profilo, dove nessuna piattaforma lo assegna.
  • Delegante pulito. Un contratto verificato e sobrio che rimanda a un’implementazione mai aperta da nessuno.
  • Sito clone con una sola pagina diversa. Tutto identico all’originale tranne la sezione che riporta l’indirizzo.
  • Cronologia gonfiata. Trasferimenti ripetuti fra pochi indirizzi controllati dalla stessa persona, per simulare movimento.
  • Urgenza dichiarata. Un termine di poche ore che serve solo a impedire i controlli, ed è il segnale più affidabile di tutti.

Nessuno di questi schemi richiede competenze straordinarie, e proprio per questo ricorrono ovunque con le stesse forme, come accade a gran parte dei raggiri che circolano nel settore. Riconoscerli è più una questione di sequenza che di conoscenza tecnica: chi esegue i controlli sempre nello stesso ordine li intercetta, chi improvvisa no.

Domande frequenti

Il contrassegno di verifica su una piattaforma di scambio è sufficiente?

È un indizio utile e non una prova. Indica che quella sede ha svolto un proprio accertamento secondo criteri che non pubblica per intero, riferito a quel momento. Non è un attributo del contratto, non si trasferisce fra piattaforme e non dice nulla sulle funzioni amministrative, che restano quello che sono anche su una raccolta contrassegnata.

Un contratto non verificato va escluso a priori?

Per chi non sa leggere il codice compilato, sì. Non è un giudizio sull’onestà di chi lo ha pubblicato: è la constatazione che manca la base per svolgere tutti i controlli successivi, e decidere senza quella base equivale a fidarsi di una descrizione. Pubblicare il sorgente costa pochi minuti, e la sua assenza in un progetto che chiede denaro è essa stessa un dato.

Che cosa cambia se il proprietario ha rinunciato ai propri poteri?

La rinuncia trasferisce la proprietà a un indirizzo da cui nessuno può agire, e rende il contratto immodificabile. Elimina il rischio che qualcuno cambi le regole, ma elimina anche la possibilità di correggere un difetto o di sospendere il contratto dopo un attacco. Sono due facce della stessa scelta, non un miglioramento in sé, e vanno valutate insieme alla qualità del codice che resta congelato.

Questi controlli valgono anche fuori dalla catena principale?

La sequenza è identica, cambiano gli strumenti. Ogni rete ha il proprio esploratore e i propri aggregatori, e la disponibilità dei dati è a volte inferiore. La differenza pratica riguarda le fonti indipendenti, che su reti meno frequentate si riducono di numero: dove il riscontro incrociato non è possibile, il livello di incertezza va considerato più alto e non ignorato.

Quanto spesso vanno ripetuti su una raccolta già verificata?

Il controllo sulle funzioni amministrative va rifatto se il contratto è aggiornabile, perché l’implementazione può essere sostituita in qualsiasi momento senza che l’indirizzo cambi. Gli altri restano validi. Chi detiene pezzi in una raccolta con implementazione modificabile fa bene a ricontrollare periodicamente quale implementazione sia attiva, ed è un’operazione di due minuti.

La parte che richiede più disciplina non è nessuno dei sei passaggi presi singolarmente, ma il rifiuto di saltarli quando l’occasione sembra scadere. Un contratto che esiste davvero esisterà anche fra un’ora, e questa è l’unica prova che si ottiene senza aprire nulla.

Giurista specializzata in regolazione dei mercati digitali, segue l’applicazione del quadro europeo e i suoi effetti pratici in Italia. Traduce testi normativi in obblighi concreti. Cita la fonte e la data di ogni regola che descrive.
12