Cos’è Solidity? Un linguaggio di programmazione per smart contract.

Cos’è Solidity? Un linguaggio di programmazione per smart contract.

Una riga di codice Solidity scritta con noncuranza ha permesso a un hacker di impossessarsi di 3,6 milioni di ETH. Il codice ha eseguito esattamente ciò che gli era stato ordinato. Ed è proprio questo l'aspetto inquietante. Solidity gestisce denaro. Il suo codice sorgente è solitamente visibile a tutti. E una volta che un contratto è attivo, non c'è modo di correggerlo silenziosamente: il bug rimane, i fondi restano esposti e chiunque può leggere entrambi. È il linguaggio di programmazione dominante per la scrittura di smart contract su Ethereum e su tutte le blockchain EVM. Eliminando il gergo tecnico, la maggior parte della DeFi e degli NFT si basa su Solidity. Potente. Ma anche spietato. Ecco cos'è, come funziona effettivamente il codice, che aspetto ha un primo contratto e perché la sicurezza è sempre una priorità.

Cos'è Solidity come linguaggio di programmazione?

Tutte le guide dicono la stessa cosa: Solidity è un linguaggio di alto livello per smart contract. Bene. Ma questo non ti è di grande aiuto. Che tipo di linguaggio è, allora? A tipizzazione statica. Orientato agli oggetti. Parentesi graffe e punti e virgola, sintassi mutuata da JavaScript, C++ e Python. Se hai già scritto codice in uno di questi linguaggi, un file `.sol` ti sembrerà familiare in circa dieci minuti.

Gavin Wood ne ha abbozzato l'idea nel 2014, con l'aiuto di un piccolo team di Ethereum che includeva Christian Reitwiessner. L'obiettivo era semplice: permettere alle persone di scrivere smart contract per una blockchain pubblica. La sua unità centrale è il "contratto". Pensatelo come una "classe" che risiede su una blockchain: contiene lo stato, espone funzioni, eredita da altre. La particolarità sta nel luogo in cui viene eseguito. Compilandolo in bytecode, lo stesso contratto viene eseguito in modo identico su ogni nodo di una rete decentralizzata, con tutti i nodi che si controllano a vicenda. Questa singola esigenza spiega perché Solidity sembra così limitato.

Solidità in sintesi
Prima pubblicazione 2014
Progettista principale Gavin Wood (Ethereum)
Paradigma Orientato agli oggetti, orientato ai contratti
Digitare Statico
Compila per bytecode EVM
Compilatore più recente v0.8.35 (aprile 2026)
Estensione del file .sol

Come funziona Solidity: dal codice alla EVM

L'aspetto interessante di Solidity non è la sintassi, bensì la pipeline. Il codice leggibile diventa qualcosa che migliaia di macchine si impegnano a eseguire nello stesso modo. Il determinismo è il punto cardine. Se due nodi eseguissero lo stesso contratto ottenendo risultati diversi, la rete non potrebbe concordare sul saldo di nessuno. Questo singolo requisito spiega molti dei limiti peculiari del linguaggio: niente generazione di numeri casuali, niente chiamate a API web esterne durante l'esecuzione. Tutto deve essere riproducibile all'interno della blockchain stessa.

Il compilatore e il bytecode

Si scrive un file `.sol`, leggibile dall'uomo e di alto livello. Il compilatore Solidity, `solc`, lo trasforma in bytecode EVM, una lunga stringa di operazioni di basso livello, più un'ABI che elenca le funzioni del contratto. Il bytecode è ciò che finisce sulla blockchain. Nessuno lo legge a mano. È il target della macchina, nello stesso modo in cui il C finisce in assembly.

Il sistema EVM e il gas

La Ethereum Virtual Machine esegue quel bytecode. Ogni nodo Ethereum ne possiede una. Ogni operazione che esegue ha un costo in gas, una commissione pagata in ETH. Il gas non è un dettaglio secondario. È il modo in cui la rete calcola il costo del calcolo e si difende: un ciclo incontrollato non blocca la blockchain, ma consuma semplicemente il gas del mittente e annulla l'operazione. Un buon programma Solidy mantiene basso il costo del gas.

L'ABI

L'ABI, o Application Binary Interface, è la mappa JSON che definisce come comunicare con un contratto distribuito. Un wallet come MetaMask, o una dApp front-end, la utilizza per codificare una chiamata di funzione nel formato previsto dall'EVM, per poi decodificare la risposta. Si può pensare all'ABI come al ponte tra l'interfaccia visualizzata dall'utente e il contratto che risiede a un indirizzo sulla blockchain.

che-è-la-solidità

Scrivere il tuo primo smart contract in Solidity

Basta teoria. Il modo più rapido per capire Solidity è leggere un piccolo contratto e riconoscerne le parti.

Anatomia di un contratto

```solidità

// Identificatore di licenza SPDX: MIT

pragma solidity ^0.8.20;

contratto Contatore {

uint256 public count;

event Incremented(uint256 newCount);

function increment() public {

count += 1;

emit Incremented(count);

}

}

```

Pochi elementi costituiscono l'intero sistema. La riga `pragma` blocca la versione del compilatore, in modo che una versione incompatibile non possa ricompilare silenziosamente il codice. `contract Counter` apre il contratto, come se aprisse una classe. `count` è una variabile di stato, memorizzata sulla blockchain in modo permanente. `increment()` è una funzione pubblica che chiunque può chiamare. `event Incremented` registra ogni modifica in modo che le applicazioni off-chain possano reagire. Codice orientato agli oggetti, con una blockchain sottostante.

Gli strumenti che usi effettivamente

Non devi installare nulla per iniziare. Remix è un IDE basato su browser: scrivi, compila e distribuisci Solidity in pochi clic, il che lo rende il punto di riferimento per imparare Solidity. I progetti reali vengono spostati su framework locali. Hardhat e Foundry gestiscono correttamente la compilazione, il testing e la distribuzione. E quasi tutti si affidano a OpenZeppelin, una libreria di contratti riutilizzabili e verificati per token e controllo degli accessi, invece di reinventare codice rischioso da zero.

Dal codice a un indirizzo attivo

Il deployment consiste nell'inviare il bytecode compilato tramite una transazione. Prima di tutto, testate il tutto su una testnet gratuita. Sepolia è la scelta più comune su 2026. Collegate un wallet come MetaMask. Effettuate il push sulla mainnet solo quando il contratto funziona correttamente. Anche il deployment ha un costo in gas, che viene pagato in ETH reali. Ed ecco la frase che vale la pena tatuarsi sul polso: una volta distribuito, il codice è immutabile. Non è possibile modificare un contratto attivo. Questo singolo fatto, più di qualsiasi particolarità sintattica, è il motivo per cui esiste la prossima sezione.

Quali blockchain supportano Solidity?

Solidity ha smesso di essere "il linguaggio di Ethereum" anni fa. Tante reti hanno adottato l'EVM per riutilizzare gli strumenti di Ethereum che Solidity è diventato il linguaggio comune di un'intera famiglia di blockchain. ChainList tiene traccia di oltre 385 blockchain compatibili con EVM in 2026. I nomi più importanti sono tutti presenti: Polygon, BNB Chain, Arbitrum , Base e Avalanche, che utilizzano lo stesso bytecode in cui viene compilato il file `.sol`.

Ethereum rimane il centro di gravità. Secondo DeFiLlama , detiene circa 45 miliardi di dollari di valore totale bloccato, più della metà di tutto il DeFi. E l'attività è in crescita: circa 8,7 milioni di nuove implementazioni di smart contract solo nel quarto trimestre del 2025, secondo i calcoli di Token Terminal. Per uno sviluppatore, questa portata è il vero motivo per scegliere Solidity rispetto a un linguaggio legato a una singola blockchain.

Quindi, cosa si può costruire con Solidity? Praticamente ogni categoria di applicazioni decentralizzate di cui abbiate mai sentito parlare. Protocolli di prestito e trading DeFi. I contratti ERC-20 alla base della maggior parte dei token, i contratti ERC-721 alla base degli NFT. Le DAO codificano le loro regole di voto in Solidity. Le stablecoin gestiscono l'offerta con Solidity. I giochi on-chain mantengono la loro logica lì. Quando un progetto afferma di essere "su Ethereum", è quasi certo che qualcuno lo abbia scritto e implementato utilizzando Solidity.

Perché la sicurezza degli smart contract in Solidity è complessa

Le caratteristiche che rendono Solidity potente sono le stesse che rendono i suoi bug così costosi. Il codice contiene denaro. Il codice sorgente è spesso pubblico. Non può essere corretto. Un malintenzionato può leggere il contratto con calma e i fondi sono lì, all'indirizzo indicato. Questo non è un linguaggio adatto a muoversi velocemente e a rompere le cose. Non ho mai lavorato con un software in cui il divario tra "compila" e "è sicuro" fosse così ampio.

Reentrancy e l'attacco hacker alla DAO

La vulnerabilità classica di Solidity è la reentrancy. Un contratto invia ETH a un indirizzo esterno prima di aggiornare il proprio saldo interno, e il contratto ricevente effettua una nuova chiamata per prelevare i fondi, ripetutamente, prima che la prima chiamata sia completata. Nel giugno 2016, proprio questa falla ha sottratto circa 3,6 milioni di ETH, per un valore di circa 60 milioni di dollari all'epoca, a The DAO . Le conseguenze hanno portato alla divisione di Ethereum in ETH e Ethereum Classic, una blockchain ancora oggi attiva. E la soluzione? Quasi incredibilmente semplice: aggiornare prima il proprio stato e inviare i fondi per ultimi. Questo schema ha persino un nome: checks-effects-interactions.

Overflow degli interi e SafeMath

Prima di Solidity 0.8, le operazioni aritmetiche potevano sovrascrivere silenziosamente il valore massimo. Aggiungendo 1 al valore massimo di un `uint256`, il risultato veniva sovrascritto a zero, una vulnerabilità sfruttata dagli hacker per generare saldi di token assurdi, come nell'incidente BeautyChain (BEC) del 2018. Per anni, gli sviluppatori si sono protetti da questo problema con una libreria chiamata SafeMath, per un certo periodo uno dei file più importati in tutto Solidity. Poi, con la versione 0.8, sono stati integrati nel linguaggio stesso i controlli per overflow e underflow. Il bug aritmetico più comune ora viene risolto automaticamente, senza bisogno di librerie aggiuntive.

Le revisioni contabili e i relativi costi

Poiché gli errori sono permanenti, i progetti seri pagano per una revisione. Si basano sui componenti verificati di OpenZeppelin e poi assumono aziende per verificare l'intero sistema. Un audit professionale di uno smart contract costa in genere dai 25.000 agli oltre 100.000 dollari per un protocollo DeFi, secondo i dati di mercato di Sherlock , e gli audit di Solidity tendono ad essere dal 25 al 40% più economici rispetto agli audit equivalenti di Rust semplicemente perché il bacino di talenti è più ampio. Anche le aziende migliori sono molto richieste. Un protocollo di medie dimensioni può aspettare settimane per un appuntamento e altre settimane per il report. Niente di tutto ciò è veloce e niente è facoltativo.

Vulnerabilità Cosa va storto? Caso famoso Aggiustare
Rientranza La chiamata esterna rientra prima degli aggiornamenti di stato DAO, 2016 Controlli-effetti-interazioni
Overflow di interi L'aritmetica va oltre il suo limite BeautyChain (BEC), 2018 Controlli integrati (Solidity 0.8+)
Controllo degli accessi Chiunque può chiamare una funzione privilegiata Vari `onlyOwner` / guardie di ruolo
Chiamate esterne non controllate La chiamata fallita viene ignorata, la logica continua Vari Convalidare i valori di ritorno

La buona notizia è che i danni si stanno riducendo. Le perdite di criptovalute dovute a exploit specifici della DeFi sono scese a circa 680 milioni di dollari nel 2025, con un calo di circa il 74% rispetto al picco di 2,62 miliardi di dollari raggiunto nel 2022, secondo Immunefi . Strumenti migliori e i controlli di sicurezza ora integrati nel compilatore sono tra i motivi di questo miglioramento.

che-è-la-solidità

Solidity a confronto con altri linguaggi per smart contract

Solidity ha dei rivali. Non è nemmeno il più sicuro. Vyper è minimale e simile a Python, volutamente ridotto all'essenziale per eliminare ogni possibilità di errore; Curve lo utilizza. Rust alimenta i contratti su Solana e NEAR, più sicuro sotto certi aspetti, ma più difficile da imparare e più costoso da sottoporre ad audit. Allora perché Solidity continua a vincere? Non per via della progettazione del linguaggio. Per via degli effetti di rete. Gli strumenti più completi, le librerie più verificate, un intero ecosistema EVM di blockchain e wallet: tutto questo è già basato su Solidity.

Lingua Catene Base sintattica Ideale per Scambio
Solidità Ethereum + tutte le EVM JavaScript/C++ Massima portata, attrezzatura collaudata È facile scrivere codice non sicuro
Viper EVM Pitone Contratti semplici e di importanza critica per la sicurezza Meno funzionalità, comunità più piccola
Ruggine Solana, VICINO Ruggine Prestazioni elevate, sicurezza elevata Curva ripida, revisioni contabili più costose

Se vuoi distribuire il tuo software dove già si trovano gli utenti e il denaro, Solidity è la scelta predefinita più pragmatica, anche quando un concorrente è tecnicamente più sicuro.

Dovresti imparare la programmazione Solidity nel 2026?

L'entusiasmo speculativo intorno alle criptovalute si è attenuato, ma la domanda di persone in grado di scrivere codice Solidity di qualità non è diminuita. Secondo i dati di Electric Capital , tra gennaio e settembre 2025 Ethereum ha acquisito circa 16.181 nuovi sviluppatori e circa il 74% di tutti gli sviluppatori multi-chain lavora sulle blockchain EVM. È lì che si trovano le opportunità di lavoro più remunerative e le librerie riutilizzabili.

Un percorso sensato per imparare a programmare in Solidity: iniziate con Remix, leggete la documentazione ufficiale di Solidity, poi lavorate sui contratti di OpenZeppelin per capire come i professionisti strutturano i token e il controllo degli accessi. Implementate piccoli progetti su una testnet finché i modelli di sicurezza non vi sembreranno automatici, anziché da memorizzare. La vera competenza rara non è scrivere codice Solidity che compili; moltissime persone lo sanno fare. Ciò per cui uno sviluppatore Solidity viene effettivamente pagato è scrivere codice che resista al contatto con un avversario, ovvero qualcuno che ha letto il vostro contratto e ha investito denaro.

Perché Solidity rimane il linguaggio predefinito

Solidity è la scelta predefinita per un motivo concreto, non per una questione di moda. È presente su tutte le blockchain EVM. Offre gli strumenti più completi. È alla base della maggior parte delle piattaforme DeFi e NFT. Ma la prima cosa da imparare non è la sintassi. È questa: su una blockchain, il codice distribuito è legge e i bug sono per sempre. Imparate il linguaggio e i modelli di sicurezza insieme, perché qui i due aspetti sono inscindibili. Il passo successivo, onesto e concreto, è semplice e gratuito. Aprite Remix, scrivete un contratto di dieci righe e distribuitelo su una testnet questa settimana.

Qualsiasi domanda?

Non è tanto la sintassi. Se sai già programmare, un fine settimana è sufficiente per iniziare; ricorda JavaScript e C++. La parte difficile è la mentalità. I costi del gas. L’immutabilità. I modelli di sicurezza. Molti imparano Solidity in fretta, poi impiegano anni per imparare a scriverlo in modo sicuro.

Principalmente JavaScript e C++. Parentesi graffe, punti e virgola, tutta quella famiglia. Python ha influenzato alcune idee, ma Solidity è a tipizzazione statica, quindi i tipi vengono dichiarati a priori. Preferite un’opzione più simile a Python? Quella è Vyper, non Solidity.

Le basi, certo. Cos’è una transazione. Cos’è il gas. Perché una blockchain è decentralizzata. Non hai bisogno di conoscere i calcoli matematici del consenso. Un’idea è più importante di tutte le altre: il codice distribuito è pubblico e permanente. Una volta capito questo, il resto verrà da sé.

Solidity è il linguaggio di programmazione che scrivi. La Ethereum Virtual Machine è il motore che lo esegue. Il tuo compilatore trasforma un file `.sol` in bytecode EVM e ogni nodo esegue quel bytecode sulla propria EVM. Uno è il codice sorgente, l’altro è la macchina.

Sì, praticamente ovunque. Funziona su qualsiasi blockchain compatibile con EVM: Polygon, BNB Chain, Arbitrum, Base, Avalanche. ChainList ne conta più di 385. Questa ampia diffusione è il motivo principale per cui le competenze in Solidity sono richieste in tutto il settore, anziché vincolarti a una singola blockchain.

Sì. Ethereum ha aggiunto oltre 16.000 sviluppatori nei primi nove mesi del 2025 e la maggior parte degli sviluppatori multi-chain lavora su reti EVM. Gli ingegneri Solidity certificati sono rari rispetto al valore dei loro contratti. Questa scarsità mantiene alti i salari.

Ready to Get Started?

Create an account and start accepting payments – no contracts or KYC required. Or, contact us to design a custom package for your business.

Make first step

Always know what you pay

Integrated per-transaction pricing with no hidden fees

Start your integration

Set up Plisio swiftly in just 10 minutes.