Che cos'è la solidità e come viene utilizzata per sviluppare contratti intelligenti?

Che cos'è la solidità e come viene utilizzata per sviluppare contratti intelligenti?

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.





ascolta la musica con gli amici online

Che 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 sulla blockchain di Ethereum e creare contratti intelligenti su altre blockchain.





Solidity è simile a uno dei linguaggi di programmazione più comuni, JavaScript. Può essere considerato come un dialetto di JavaScript. Ciò significa che se capisci 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 zero. Rende molto più facile per gli umani scrivere programmi in modi che trovano più facili da capire, usando una combinazione di lettere e numeri.



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

La principale differenza tra i tipi di valore e i 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 in un'altra variabile, chiunque faccia riferimento a valori modificati nelle variabili di 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 sono create utilizzando Solidity. I contratti intelligenti creati utilizzando Solidity possono essere pensati come un modo per automatizzare i processi aziendali e non tra persone diverse. Ciò garantisce che le persone che effettuano transazioni sulla blockchain non debbano preoccuparsi di rischi come frodi o non poter 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 su 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 gratuita di Solidity, incluso il compilatore online Remix e un compilatore simile a un comando scaricato su un PC.

I contratti intelligenti 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 l'aritmetica 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 loro 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 i contratti intelligenti è attraverso le funzioni pubbliche.

Correlati: che 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 drenare un conto di fondi.

Un utente malintenzionato potrebbe richiamare 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 attori malintenzionati.

Standard e logica del codice

Stanno emergendo diversi standard che determinano come vengono utilizzati i contratti intelligenti di Solidity 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 restrizioni su come dovrebbe comportarsi il codice.

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. Solidity può essere utilizzato anche per fornire istruzioni dedicate su come i dati vengono archiviati nello smart contract. La logica e i 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 gravi rischi di sfruttamento del codice.

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 che vi sono scritti. Un modo per aggirare questo problema consiste nell'utilizzare un proxy per puntare a un altro contratto che contenga la logica aziendale effettiva. Ciò consente di correggere i bug durante l'implementazione di una nuova versione del contratto.

come inviare messaggi di testo dal computer al cellulare gratuitamente

Costi del gas

Ci sono costi aggiuntivi che vengono 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 essere eseguito in sicurezza su di esso.

Quando si scrivono contratti intelligenti, è importante ricordare che i costi del gas possono determinare le prestazioni di un contratto intelligente. Poiché i corrispettivi gas vengono pagati per ogni slot di stoccaggio utilizzato, le azioni eseguite con il codice Solidity costano 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ù popolari di ottimizzazione del gas includono l'uso di librerie e l'utilizzo di meno funzioni. Le librerie sono spesso utilizzate per salvare il bytecode.

Invece di aggiungere bytecode non necessari allo smart contract, la logica può essere inserita nelle librerie. Questo aiuta a mantenere piccole le dimensioni del contratto intelligente. Utilizzando meno funzioni, è necessario meno bytecode e si riduce anche la difficoltà di controllare il codice.

Come si può usare Solidity in Ethereum?

Solidity viene utilizzato per creare contratti intelligenti per token fungibili e token non fungibili. Diversi standard vengono utilizzati per costruire 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. Solidity consente alle persone di utilizzare token e token non fungibili su Ethereum. Dal conio di token non fungibili all'aggiunta di essi per produrre pool agricoli per un interesse extra, Ethereum rende possibili diversi tipi di usi per i token.

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 in cui votano le decisioni chiave del DAO.

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

Definizione degli standard per le blockchain

Solidity è 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 il funzionamento delle proprie applicazioni. Man mano che vengono creati nuovi standard per i contratti intelligenti in Ethereum, la lingua diventerà più sicura da usare.

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

È possibile un Internet veramente decentralizzato? Cosa significa decentralizzazione e come ti proteggerebbe?

Leggi Avanti
Argomenti correlati
  • La tecnologia spiegata
  • Programmazione
  • Ethereum
  • Blockchain
Circa l'autore Calvin Ebun-Amu(48 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 regni della tecnologia.

Altro da Calvin Ebun-Amu

Iscriviti alla nostra Newsletter

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

Clicca qui per iscriverti