Solidity ha fatto molta strada da quando è stato proposto per la prima volta nel 2014 e successivamente sviluppato dal team Solidity di Ethereum. Esistono centinaia di migliaia di sviluppatori che utilizzano il linguaggio di programmazione per creare servizi basati su blockchain per un numero crescente di casi d'uso.

Questo articolo spiega cos'è Solidity e come viene utilizzato nell'ecosistema Ethereum. Questo articolo è per te se sei interessato a saperne di più sul funzionamento interno di questo linguaggio di programmazione basato su blockchain.

Cos'è la solidità?

Solidity è un linguaggio di programmazione di alto livello orientato agli oggetti utilizzato per creare contratti intelligenti che automatizzano le transazioni sulla blockchain. Dopo essere stato proposto nel 2014, il linguaggio è stato sviluppato dai contributori al progetto Ethereum. Il linguaggio viene utilizzato principalmente per creare contratti intelligenti su la blockchain di Ethereum e crea contratti intelligenti su altre blockchain.

instagram viewer

Solidity è simile a uno dei linguaggi di programmazione più comuni, JavaScript. Può essere considerato come un dialetto di JavaScript. Ciò significa che se comprendi JavaScript, può essere facile raccogliere Solidity. Solidity condivide anche caratteristiche simili ai linguaggi di programmazione C ++ e Python.

Essendo un linguaggio di alto livello, Solidity elimina la necessità di digitare il codice in uno e zeri. Rende molto più facile per gli esseri umani scrivere programmi in modi che trovano più facili da capire, utilizzando una combinazione di lettere e numeri.

La solidità è tipizzata staticamente, con supporto per ereditarietà, librerie e tipi complessi definiti dall'utente. Poiché Solidity è tipizzato staticamente, l'utente specifica molto ogni variabile. I tipi di dati consentono al compilatore di verificare il corretto utilizzo delle variabili. I tipi di dati di solidità sono generalmente classificati come tipi di valore o tipi di riferimento.

La principale differenza tra tipi di valore e tipi di riferimento può essere trovata nel modo in cui vengono assegnati a una variabile e archiviati nell'EVM (Ethereum Virtual Machine). Sebbene la modifica del valore in una variabile di un tipo di valore non influisca sul valore di un'altra variabile, chiunque faccia riferimento a valori modificati nelle variabili del tipo di riferimento può ottenere valori aggiornati.

Come funziona la solidità?

La bellezza dell'ecosistema Ethereum è che così tante diverse criptovalute e applicazioni decentralizzate possono usarlo. I contratti intelligenti consentono di realizzare tecnologie uniche su Ethereum per tutti i tipi di aziende e organizzazioni.

Ogni anno, il mondo spende miliardi di dollari in soluzioni blockchain. Molte di queste soluzioni vengono create utilizzando Solidity. I contratti intelligenti creati utilizzando Solidity possono essere pensati come un modo per automatizzare i processi aziendali e non aziendali tra persone diverse. Ciò garantisce che le persone che effettuano transazioni sulla blockchain non debbano preoccuparsi di rischi come frodi o non essere in grado di utilizzare la stessa valuta.

Uno dei componenti chiave che rende possibile l'esecuzione del codice Solidity è l'EVM. L'EVM è descritto come un computer virtuale sulla blockchain che trasforma le idee delle persone in codice che esegue applicazioni sulla blockchain.

Sotto il cofano, Solidity crea codice a livello di macchina che viene eseguito sull'EVM. Un compilatore viene utilizzato per scomporre il codice leggibile dall'uomo di alto livello, che trasforma in istruzioni che il processore legge. Diverse piattaforme forniscono la compilazione Solidity gratuita, incluso il compilatore online Remix e un compilatore simile a un comando scaricato su un PC.

Gli smart contract EVM hanno alcune limitazioni che devono essere affrontate. Uno dei più significativi di questi è l'accesso limitato a utili funzioni di libreria per l'analisi di strutture JSON o operazioni aritmetiche in virgola mobile.

Funzioni pubbliche e private

Le funzioni pubbliche sono simili alle API a cui chiunque nel mondo può accedere. Chiunque può chiamarli nel proprio codice. Le funzioni pubbliche sono progettate, in molti casi, per processi condivisi su una piattaforma che tutti gli utenti utilizzano.

Ad esempio, potrebbe essere realizzata una funzione pubblica per consentire a tutti gli utenti di una piattaforma di controllare il saldo del proprio conto. Uno dei modi più comuni per sfruttare gli smart contract è attraverso le funzioni pubbliche.

Relazionato: Cos'è una Blockchain e come funziona?

Mentre i contratti intelligenti possono essere facili da scrivere con Solidity, spesso è molto difficile scriverli in modo sicuro. Ad esempio, se la funzione di prelievo in uno smart contract non è sicura, un utente malintenzionato può manipolare la funzione vulnerabile per svuotare un conto di fondi.

Un utente malintenzionato potrebbe chiamare una funzione di prelievo per inviare denaro a un conto diverso, utilizzando un ciclo che ripete ripetutamente la funzione di prelievo.

Le funzioni private sono richiamabili solo dall'interno dei contratti. Contengono istruzioni che possono essere eseguite solo dopo essere state richiamate da altre funzioni, in una catena. Ciò rende più difficile la manipolazione del codice da parte di malintenzionati.

Standard e logica del codice

Stanno emergendo diversi standard che determinano il modo in cui gli smart contract Solidity vengono utilizzati per creare applicazioni su Ethereum. Questi standard sono noti come standard ERC (Ethereum Request for Comments). Gli standard si basano su un documento che contiene linee guida sulle funzioni richieste e limitazioni su come il codice dovrebbe comportarsi.

Gli standard ERC che determinano il funzionamento di Solidity includono:

  • ERC20
  • ERC165
  • ERC721
  • ERC223
  • ERC621
  • ERC777
  • ERC827
  • ERC884
  • ERC865
  • ERC1155

Esistono diversi modi in cui Solidity può essere utilizzato per far interagire gli smart contract tra loro. La solidità può essere utilizzata anche per creare istruzioni dedicate su come i dati vengono archiviati nello smart contract. La logica ei dati negli smart contract possono essere separati utilizzando Solidity. Utilizzando contratti sostitutivi, la logica di un contratto può essere modificata per consentire ciò.

Immutabilità

È impossibile modificare il codice di uno smart contract dopo che è stato scritto e compilato. Ciò significa che ogni riga di codice deve funzionare come previsto, altrimenti potrebbero esserci seri rischi che il codice venga sfruttato.

Relazionato: Come diventare un programmatore Blockchain e iniziare a guadagnare un sacco di soldi

Poiché la blockchain di Ethereum è immutabile, è impossibile modificare i dati e la logica scritti su di essa. Un modo per aggirare questo problema è utilizzare un proxy per puntare a un altro contratto che contiene una logica di business effettiva. Ciò consente di correggere i bug durante l'implementazione di una nuova versione del contratto.

Costi del gas

Ci sono costi extra pagati per l'utilizzo di Solidity sulla mainnet di Ethereum. Alcuni dei costi aggiuntivi si basano sul sistema del gas su Ethereum, che richiede il pagamento ai minatori per proteggere la rete blockchain in modo che il codice possa funzionare in sicurezza su di essa.

Quando si scrivono contratti intelligenti, è importante ricordare che i costi del gas possono determinare quanto sia performante un contratto intelligente. Poiché le tariffe del gas vengono pagate per ogni slot di stoccaggio utilizzato, le azioni eseguite con il codice Solidity costano il gas. È improbabile che un contratto intelligente costoso da eseguire venga utilizzato a lungo termine.

L'ottimizzazione del gas aiuta a ridurre il costo del gas quando viene eseguito il codice Solidity. Alcuni dei metodi più diffusi di ottimizzazione del gas includono l'uso di librerie e l'utilizzo di meno funzioni. Le librerie vengono spesso utilizzate per salvare il bytecode.

Invece di aggiungere un bytecode non necessario allo smart contract, la logica può essere inserita nelle librerie. Questo aiuta a mantenere piccole le dimensioni dello smart contract. Utilizzando meno funzioni, è necessario meno bytecode e viene ridotta anche la difficoltà di controllo del codice.

Come può essere utilizzata la solidità in Ethereum?

La solidità viene utilizzata per creare contratti intelligenti per token fungibili e token non fungibili. Standard diversi vengono utilizzati per creare token non fungibili e token fungibili nell'ecosistema Ethereum.

Questi consentono di creare diversi tipi di casi d'uso per le persone che utilizzano la blockchain. La solidità consente alle persone di utilizzare gettoni e gettoni non fungibili su Ethereum. Dal conio di gettoni non fungibili all'aggiunta di gettoni per produrre pool di agricoltura per ulteriore interesse, Ethereum rende possibili diversi tipi di utilizzo dei gettoni.

Solidity rende possibili anche le organizzazioni autonome decentralizzate (DAO). Un DAO, che è un nuovo tipo di struttura organizzativa online, è scritto principalmente in Solidity. I DAO consentono a diverse persone di riunirsi come membri su una piattaforma online dove votano le decisioni chiave della DAO.

La solidità consente di automatizzare i processi all'interno del DAO. Esempi di automazione dei processi nelle DAO includono la votazione per decisioni chiave e l'assegnazione della reputazione ai membri DAO per i loro contributi al gruppo.

Definizione di standard per blockchain

La solidità è molto più di un linguaggio di programmazione. Sta definendo gli standard per il futuro della tecnologia blockchain.

Grazie al numero di sviluppatori open source che lavorano per migliorare la sicurezza e le prestazioni di Solidity, migliaia di applicazioni nell'ecosistema Ethereum continuano a dipendere da esso per le loro applicazioni operare. Man mano che vengono creati nuovi standard per i contratti intelligenti in Ethereum, il linguaggio diventerà più sicuro da usare.

E-mail
È possibile un Internet veramente decentralizzato? Come potrebbe funzionare con Blockchain

È possibile un Internet veramente decentralizzato? Cosa significa decentralizzazione e come ti manterrebbe al sicuro?

Leggi Avanti

Argomenti correlati
  • Spiegazione della tecnologia
  • Programmazione
  • Ethereum
  • Blockchain
Circa l'autore
Calvin Ebun-Amu (15 articoli pubblicati)

Calvin è uno scrittore di MakeUseOf. Quando non guarda Rick e Morty o le sue squadre sportive preferite, Calvin scrive di startup, blockchain, sicurezza informatica e altri ambiti della tecnologia.

Altro di Calvin Ebun-Amu

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Ancora un passo…!

Conferma il tuo indirizzo e-mail nell'e-mail che ti abbiamo appena inviato.

.