“Un click e ti prosciugo il conto”: attenzione ai pericoli degli smart contract

La blockchain seguirà le istruzioni contenute nelle funzionalità degli smart contract senza che nessuno posso impedirlo, per questo motivo dovremmo fare attenzione e preoccuparci di conoscere quali rischi si nascondono dietro un semplice click.

Gli smart contract su blockchain ci permettono di dare il via libera a determinate interazioni che avvengono tra i nostri wallet e altre parti, come le piattaforme di non fungible token (NFT) e i servizi offerti dalla Finanza Decentralizzata (DeFi).

smart contract rischi
Adobe Stock

Molte persone non sanno come interpretare queste funzioni, per cui confermano la transazione basandosi sulla fede invece di confermare realmente ciò che stanno firmando prima di farlo. I truffatori avranno delle giornate molto ricche grazie a questa vulnerabilità.

Le truffe perpetrate attraverso approvazioni dannose di contratti smart stanno diventando sempre più comuni. Sapere esattamente cosa si sta firmando non è mai stato così importante.

I truffatori stanno attualmente utilizzando le funzionalità degli smart contract come metodo numero uno per frodare le persone delle criptovalute e dei token non fungibili che hanno duramente guadagnato – non pensate che sia ora di acquisire le competenze necessarie per leggerli?

Le firme sugli smart contract sono per natura irreversibili

Un componente non negoziabile di Web3 è la capacità di interagire con gli smart contract. In effetti, i contratti intelligenti sono la forza trainante di alcune delle più popolari applicazioni e piattaforme di criptovalute e determinano il modo in cui il vostro wallet interagisce con tali piattaforme. In poche parole, hanno fatto spazio a un nuovo tipo di libertà digitale nel mondo decentralizzato, aprendo porte che prima erano chiuse.

Tuttavia, questa indipendenza è accompagnata da un ulteriore e significativo dovere. Quando ci si avventura nell’ignoto, si tende ad essere ignari dei potenziali pericoli che si possono incontrare. È normale che i nuovi arrivati si sentano sopraffatti dalle conoscenze spesso sofisticate in materia di UX e di portafoglio che sono richieste.

Per questo motivo, oltre al fatto che c’è in gioco un’immensa quantità di valore, il web3 è un ambiente fertile per i truffatori e altri individui senza scrupoli. Per essere del tutto sinceri, non tutti i software o le piattaforme blockchain in cui ci si può imbattere sono piacevoli, e nemmeno tutti sono onesti.

Interagire con i contratti intelligenti espone a un certo grado di rischio, nonostante il fatto che gli smart contract stessi non presentino alcun pericolo intrinseco. Cosa succede quindi quando si intraprende una conversazione con uno smart contract malevolo?

Ma prima di arrivare a questo punto, rivediamo alcuni elementi fondamentali: Innanzitutto, cosa significa esattamente funzionare come contratto intelligente?

Quali sono le potenzialità e i rischi di uno smart contract

In altre parole, le funzioni di uno smart contract sono singole linee di codice che consentono agli smart contract di eseguire particolari operazioni. Il processo di “chiamata di una funzione” avvia un’interazione specifica tra il vostro wallet e la piattaforma web3 che state utilizzando in quel momento.

In altre parole, se date il vostro consenso a una di queste funzioni, lo smart contract sarà in grado di eseguire una determinata operazione che coinvolge il vostro wallet.

Perché è fondamentale avere una buona comprensione del funzionamento dei contratti intelligenti

Quando si utilizza un’applicazione blockchain, si ha a che fare con gli smart contract. Per questo motivo, è estremamente importante riconoscere una funzione di smart contract dannosa quando la si vede. Come potete vedere, non tutte le piattaforme blockchain hanno in mente i vostri interessi e alcuni truffatori faranno di tutto per rubare i beni digitali che avete guadagnato con tanta fatica.

Per arrivare al nocciolo della questione: Alcuni smart contract possono incorporare funzioni che hanno lo scopo di rubare i vostri beni. I truffatori riescono a rubare ogni giorno innumerevoli beni digitali preziosi sfruttando le funzionalità vulnerabili degli smart contract e facendo un po’ di ingegneria sociale. Per questo motivo, è fondamentale essere consapevoli di cosa tenere d’occhio.

Pertanto, per navigare nel Web3 in modo sicuro, ci sono alcune funzioni essenziali dello smart contract che dovete conoscere. Queste funzioni sono SetApprovalForAll, SafeTransferFrom e SendETH. Anche se nessuna di queste funzioni specifiche indica la possibilità di avere a che fare con un contratto dannoso, è comunque fondamentale essere consapevoli dei contesti in cui si può prevedere di vederle.

Tuttavia, questo non è che solo l’inizio. Se volete diventare un’autorità in materia di tecnologia blockchain, dovrete conoscere un gran numero di altre funzionalità degli smart contract.

Ma prima di entrare nel merito, diamo un’occhiata ai fondamenti del funzionamento dei contratti intelligenti e a come i malintenzionati possono utilizzarli per rubare i vostri beni.

Cos’è e quali sono i rischi della funzione smart contract setapprovalforall

Man mano che si acquisisce familiarità con Web3, ci si accorgerà che il metodo SetApprovalForAll è piuttosto frequente. Quando mettete in vendita i vostri token non fungibili su un mercato, vi imbatterete molto spesso in questa funzione.La funzione di questo token è semplice: ogni volta che viene venduto, consente al marketplace di riferimento di trasferire il vostro NFT dal vostro portafoglio a quello dell’acquirente. Sembra sensato? D’altra parte, ciò comporta alcune conseguenze.

È possibile che la funzione SetApprovalforAll sia piuttosto frequente. Tuttavia, poiché il suo campo di applicazione è così ampio, interagire con essa potrebbe essere considerato un po’ pericoloso per utenti come voi. Se si approva questa funzione, si concede alla piattaforma con cui si lavora l’accesso a tutti i token ERC 20 o NFT associati a un determinato smart contract che sono memorizzati nel proprio wallet. Inoltre, l’accordo è aperto, il che significa che si applica a tutti i futuri token generati tramite smart contract e depositati nel vostro wallet.

È un po’ come dare a un amico un assegno aperto da spendere come desidera. In pratica state dicendo: “Mi fido di questa piattaforma perché faccia ciò che dice di fare e agisca entro i limiti che mi aspetto”.

Come conseguenza di ciò, SetApprovalforAll è un’azienda che colpisce pesantemente quando si tratta di frodi che coinvolgono le criptovalute. Di conseguenza, è assolutamente necessario essere in grado di riconoscere gli scenari in cui la firma di qualsiasi cosa è priva di rischi, così come gli scenari in cui si potrebbe avere a che fare con uno smart contract dannoso.

Come riconoscere un comportamento pericoloso SetApprovalforAll Functions è il comando da utilizzare.

Dovreste vedere questo avviso solo quando quotate il vostro NFT su un mercato o vi impegnate con un DEX. Non dovrebbe comparire in nessun’altra circostanza.Questo ha perfettamente senso, dato che dovete concedere l’autorizzazione alla piattaforma per spostare i token dal vostro portafoglio in caso di vendita o scambio. Ma a parte queste circostanze, il funzionamento del contratto intelligente dovrebbe far scattare un campanello d’allarme.

Prima di dare accesso ai vostri token a un’altra persona o entità, ponetevi sempre questa domanda: perché lo sto facendo? Se visto sotto questa luce, diventa molto più semplice determinare se la transazione in questione è legale o meno.Ma per essere chiari:

  • State producendo un NFT?- NON ci si aspetta di trovare una funzione SetApprovalforAll.
  • Se state acquistando un NFT, NON dovreste trovare una funzione SetApprovalforAll.
  • Preferite scambiare o trasferire un NFT? Non è previsto che troviate una funzione ImpostaApprovaTutto.
  • Avete intenzione di iscrivervi a un elenco di permessi?- Non è previsto che troviate una funzione ImpostaApprovaTutto.

Ora dovreste avere una chiara comprensione di cosa significhi firmare una transazione di questo tipo.Siete in grado di analizzare ogni singolo caso in cui si verifica e di scegliere da soli se si tratta di un segnale di avvertimento o meno.

nft
Adobe Stock

Cosa significa il termine “SafeTransferFrom

Il metodo SafeTransferFrom è un’altra funzione estremamente tipica dei contratti smart che potete utilizzare. Ogni volta che si trasmette un NFT dal proprio wallet a un altro portafoglio, questo messaggio viene visualizzato durante la transazione per informare l’utente che è stato ricevuto.

Immaginiamo, ad esempio, che abbiate recentemente acquistato un Ledger e che vogliate trasferire gli NFT memorizzati nel vostro attuale hot wallet al nuovo conto Ethereum (ETH) sicuro che si trova sul vostro dispositivo Ledger. Sul vostro hot wallet noterete che è stata aggiunta una voce SafeTransferFrom e dovrete convalidarla. In queste particolari circostanze, l’uso di una funzione SafeTransferFrom ha perfettamente senso.

Ricordate che state confermando di voler trasferire un NFT a un altro portafoglio e, a meno che il portafoglio non sia vostro, sono davvero pochi i casi in cui vorreste farlo. Il problema emerge quando si incontra questa funzione in altri contesti.

I modi in cui si può stare alla larga dalle pericolose funzioni SafeTransferFrom

Quali sono le caratteristiche che distinguono l’approvazione di una transazione SafeTransferFrom come proveniente da uno smart contract dannoso da una che non lo è? Prima di tutto, prima di dare accesso ai vostri token a un’altra persona, dovreste sempre porvi la seguente domanda: perché lo sto facendo?

Ma per essere chiari:

  • State producendo un NFT? – NON ci si aspetta di vedere una funzione SafeTransferFrom.
  • Se si acquista una NFT, la funzione SafeTransferFrom NON deve essere presente.
  • Avete intenzione di iscrivervi a un elenco di permessi? – NON è previsto che venga visualizzata la funzione SafeTransferFrom.

Questa funzione dovrebbe essere visualizzata solo quando si trasferisce un NFT, e in nessun altro momento!

Qual è la funzione dello smart contract SendEth

Se avete esperienza con Web3, è molto probabile che conosciate già la funzione SendEth.In poche parole, indica che state spostando Ether da un portafoglio a un altro. È possibile che stiate inviando Ethereum (ETH) tra vari indirizzi associati a wallet che controllate. È anche possibile che si stia effettuando un acquisto in formato digitale da un mercato.I n circostanze come queste, osservare la funzione SendEth sarebbe un passo assolutamente necessario.

Come si può rimanere al sicuro quando si utilizzano funzioni SendEth dannose come la coniazione, l’acquisto, la vendita, il trasferimento o lo scambio di NFT? – Non ci si aspetta di vedere una funzione SendEth.

Quando si invia ETH al proprio wallet o al wallet di un’altra persona, e solo allora, si dovrebbe vedere questa funzione!

D’altra parte, se siete sfortunati, potreste anche scoprire che questa funzione appare in un luogo che non vi aspettavate di vedere.Un’eccellente illustrazione di questo fenomeno si verifica durante una menta NFT. In questo scenario, gli utenti pensano di stare coniando, mentre in realtà stanno solo spostando il contante a un altro indirizzo.

La chiamata di funzione è la prima cosa da esaminare.

Per rendersene conto non basta guardare la chiamata di funzione (che avrebbe dovuto recitare “mint” se si trattasse davvero di una zecca), ma bisogna anche guardare l’indirizzo di ricezione in alto a destra dello schermo. Il minting è una transazione diretta con la blockchain stessa, non con un altro portafoglio.Pertanto, la presenza di un indirizzo di ricezione in questa situazione dovrebbe essere un altro importante segnale di allarme.

Cosa succede nel caso in cui uno smart contract potenzialmente pericoloso non venga riconosciuto, ma la sua funzione sia comunque autorizzata?

Uno smart contract dannoso è stato messo in atto, ad esempio, con il progetto Momoco NFT. Questo è un esempio eccellente. Questa organizzazione ha attirato i degenerati ottimisti sul suo sito web fornendo un mint gratuita per la distribuzione dei suoi NFT.

Qual è il problema? Non c’era una mentina disponibile. Quando gli utenti hanno cliccato sul pulsante “mint”, il sistema ha avviato una richiesta al server SafeTransferFrom. Un gran numero di utenti ha dato il proprio consenso all’utilizzo di questa funzione fraudolenta dello smart contract perché credeva, a torto, che fosse una parte normale del processo di conio.

Dopo aver ricevuto l’approvazione per questa funzione, il contratto è stato in grado di spostare un NFT dal portafoglio di destinazione. Sono centinaia le persone che sono rimaste vittime di questa frode non fungibile, realizzata con un singolo contratto smart rogue.

Come evitare gli smart contract che presentano rischi ed evitare di cadere vittima di truffe

Quando si lavora con le chiamate di funzione degli smart contract, è importante tenere presente che l’unica cosa garantita è ciò che viene inserito nella casella della funzione.I malintenzionati ricorreranno all’ingegneria sociale nel tentativo di distogliere l’attenzione dalle loro attività. Ma tenete presente che qualsiasi altra funzione diversa da quella prevista dovrebbe farvi scattare immediatamente un allarme rosso.

Se si tratta di un conio, piuttosto che di un trasferimento, si dovrebbe notare una chiamata di funzione per l’operazione di “mint”. Non ci si aspetta di vedere una funzione SetApprovalForAll se si sta effettuando un trasferimento. Controllate le specifiche della funzione dello smart contract che state utilizzando, assicurandovi di verificare sia il tipo di interazione che state verificando sia la direzione in cui avverrà il trasferimento.In questo modo non dovrete affidarvi alle condizioni, poiché sarete in grado di verificare la transazione.

Ora che avete compreso il significato di questi diversi ruoli, le truffe ad essi collegate sono probabilmente abbastanza evidenti. Non lasciatevi ingannare, però: il potere dell’ingegneria sociale può essere piuttosto subdolo, soprattutto se combinato con i nuovi e complessi standard del Web3. Per questo motivo, è fondamentale assicurarsi di essere ben informati prima di intraprendere la propria avventura.

 

*NB: Le riflessioni e le analisi condivise sono da intendere ad esclusivo scopo divulgativo. Quanto esposto non vuole quindi essere un consiglio finanziario o di investimento e non va interpretato come tale. Ricorda sempre che le scelte riguardo i propri capitali di rischio devono essere frutto di ricerche e analisi personali. L’invito è pertanto quello di fare sempre le proprie ricerche in autonomia.
L’autore, al momento della stesura, detiene esposizioni in Bitcoin e altri asset crittografici, anche legati a quanto trattato nell’articolo.

Impostazioni privacy