Traduzione italiana di “An introduction to decentralized applications and smart contracts” scritto da @ElliotHill della Fondazione Cardano
Traduzione italiana a cura di Lordwotton di RIOT Stake Pools
Un’introduzione alle applicazioni decentralizzate e ai contratti intelligenti
Come abbiamo scoperto nel nostro precedente articolo, i libri contabili distribuiti si sono evoluti ben oltre i semplici livelli di valore, e ora possono essere utilizzati per costruire e distribuire applicazioni decentralizzate, o DApp, sulla blockchain.
Queste applicazioni stanno rendendo la tecnologia blockchain esponenzialmente più utile per gli utenti aziendali e di business, che possono sfruttare la natura blockchain delle DApp per rendere le transazioni più sicure e trasferire facilmente il valore.
Qui, esploreremo cosa sono le DApp, definiremo il loro rapporto con i contratti smart e scopriremo perché portare affidabilità e programmazione funzionale ai contratti smart potrebbe essere la chiave per sbloccare l’adozione di massa delle DApp da parte delle imprese di tutto il mondo.
Cosa sono le applicazioni decentralizzate?
In parole povere, le DApp sono applicazioni informatiche o programmi che girano su un sistema informatico distribuito come Cardano. Le DApp sono alimentate da contratti intelligenti, che sono programmi deterministici utilizzati per la liquidazione tra una o più parti.
I contratti intelligenti consentono alle DApp di interfacciarsi con la blockchain ed eseguire transazioni senza bisogno di terzi. Come afferma il direttore didattico di IOHK, Lars Brünjes, nel suo libro 'Plutus: Scrivere contratti intelligenti affidabili", il potere di un contratto intelligente sta nella sua capacità di servire come entità affidabile. Le parti che trattano con il contratto smart possono trasferire i fondi direttamente al programma, senza il rischio che una singola parte diventi un cattivo attore o abusi dei fondi.
A volte, i termini “DApp” e “contratto intelligente” sono usati in modo intercambiabile, e questo è tecnicamente corretto. Tuttavia, è normalmente sottinteso che le DApp hanno una qualche forma di interfaccia utente interattiva (UI), o interfaccia web 3.0, rendendo più facile per l’utente medio o per l’utente non tecnico interagire con l’applicazione. D’altra parte, un contratto intelligente potrebbe essere scritto e distribuito da sviluppatori senza un’interfaccia utente dedicata o un’interfaccia front-end.
Per meglio comprendere questa distinzione, esploriamo un flusso di processo per una semplice ipotetica DApp, che chiameremo ‘Cardano Critters’. Un gioco di raccolta su blockchain, Cardano Critters utilizza gettoni non fungibili, o NFT, per creare asset unici e rari che svolgono una funzione in un mondo di gioco virtuale, oltre ad avere un certo valore intrinseco come asset da collezione.
L’estrazione (la creazione dell’asset), il trading e l’emissione di Cardano Critter NFT verrebbero gestiti attraverso un contratto intelligente, che in questo caso si interfaccerebbe con la sottostante blockchain di Cardano.
A sua volta, la catena di blocco di Cardano funge da database distribuito per informazioni come quando i NFT sono stati coniati, le loro caratteristiche uniche e la loro storia di proprietà. I proprietari di questi beni possono essere identificati dalle loro chiavi pubbliche.
Mentre qualsiasi utente potrebbe vedere e verificare l’autenticità del contratto intelligente sottostante per se stesso visualizzandolo on-chain, molto probabilmente userebbe un portafoglio Cardano per interagire con la DApp attraverso un’interfaccia web 3.0 - spesso visivamente simile agli attuali siti web 2.0.
Di conseguenza, la maggior parte degli utenti medi non avrà bisogno di comprendere i principi tecnici della scrittura di un contratto intelligente per utilizzare una DApp, che è essenziale per l’adozione di massa. Tuttavia, le DApp non possono esistere senza contratti intelligenti.
Programmazione funzionale per contratti intelligenti affidabili
Il nostro esempio sopra riportato di una DApp NFT a catena di blocco è uno scenario abbastanza semplice e relativamente privo di rischi - in altre parole, non c’è molto in gioco dal punto di vista finanziario o in termini di dati degli utenti, nel caso in cui il contratto intelligente venisse sfruttato.
Ma con l’aumento della finanza decentralizzata, ogni giorno vengono depositati miliardi di dollari di attività in contratti intelligenti. Allo stesso modo, si stanno esplorando anche applicazioni basate su blockchain per una miriade di casi di utilizzo istituzionale e aziendale. Questi utenti istituzionali e aziendali richiedono un livello di garanzia che, ad oggi, altre piattaforme di contratti intelligenti non sono state in grado di fornire.
Se da un lato i contratti smart si sono dimostrati molto utili, offrendo funzionalità che vanno oltre i tradizionali contratti digitali, dall’altro sono stati soggetti a regolari vulnerabilità - spesso con la conseguente perdita di centinaia o addirittura milioni di dollari di asset digitali. Se i contratti smart e le DApp saranno mai utili per le istituzioni e le imprese, non possono essere vulnerabili a tali attacchi.
Al contrario, i contratti smart finanziari e pronti per l’impresa e le relative DApp devono poter essere scritti in modo rapido, affidabile e con codice ad alta sicurezza. Si dà il caso che Haskell, il linguaggio di programmazione principale della blockchain Cardano, sia perfettamente adatto proprio a questo scopo.
Questo è il motivo per cui diversi istituti finanziari, da Barclays alla Bank of America, utilizzano Haskell e altri linguaggi di programmazione funzionali per costruire la loro infrastruttura critica, dagli algoritmi di trading ai processi di regolamento transfrontalieri, alla base dell’attuale sistema finanziario così come lo conosciamo.
È logico che anche le DApp e i contratti intelligenti debbano essere conformi a questi stessi standard e scritti in linguaggi di programmazione funzionali affidabili come Haskell o, nello specifico, linguaggi basati su Haskell come Plutus e Marlowe su Cardano, come vedremo più avanti.
Al momento, la mancanza di garanzie disponibili per l’affidabilità dei contratti smart è un collo di bottiglia fondamentale per la seria (e diffusa) adozione della tecnologia blockchain da parte delle istituzioni, e diversi ricercatori hanno identificato la proliferazione di verifiche formali come un passo fondamentale per l’adozione di contratti smart.
Di conseguenza, è molto probabile che la prima blockchain che offre alle istituzioni finanziarie e alle imprese garanzie sull’affidabilità dei contratti smart causi l’esodo delle DApp istituzionali da altre blockchain.
Per saperne di più sulla necessità di contratti intelligenti affidabili e funzionali, guardate questa presentazione dei ricercatori senior IOHK, il professor Phillip Wadler e il professor Simon Thompson, e dell’architetto tecnico IOHK, Manuel Chakravarty, al Cardano Virtual Summit 2020: Edizione Shelley.
La Piattaforma Plutus e Marlowe DSL- prendi parte oggi
Su Cardano, i contratti intelligenti e le DApp saranno abilitati attraverso la piattaforma Plutus e, per i contratti finanziari, il linguaggio specifico del dominio Marlowe (DSL).
La piattaforma Plutus permetterà agli autori di contratti intelligenti di scrivere e implementare facilmente contratti intelligenti e di costruire DApps. La Piattaforma Plutus include il kit di sviluppo software (SDK) Plutus Haskell, che includerà librerie e strumenti di sviluppo per la scrittura di applicazioni contrattuali intelligenti in Haskell. I contratti intelligenti scritti sulla piattaforma Plutus conterranno la logica, che alla fine permetterà loro di funzionare su Plutus Core, distribuibile sulla blockchain Cardano.
Se avete pensato di creare un contratto smart finanziario o una DApp su Cardano, potete già esplorare il Marlowe Playground. Il DSL Marlowe è progettato per essere utilizzabile da professionisti della finanza, a differenza di altre piattaforme di contratti intelligenti progettate esclusivamente per programmatori esperti. Pertanto, un professionista finanziario potrebbe utilizzare Marlowe per creare contratti intelligenti espressivi con relativa facilità, resa ancora più semplice attraverso l’editor di programmazione visiva Blockly.
Non importa quale sia la vostra area di interesse, vi invitiamo a iscrivervi alla lista d’attesa del nostro Portale Sviluppatori, dove avrete accesso a contenuti e articoli su misura mentre anticipate il lancio del Portale Sviluppatori. Per saperne di più sul Portale Sviluppatori clicca qui.