Le DApp o applicazioni decentralizzate sono un tipo di applicazione, il cui funzionamento si basa su una rete decentralizzata di nodi che interagiscono tra di loro.

DApp è l'acronimo di "Decentralized Applications" o "Applicazioni decentralizzate". Si tratta di una tipologia di apllicazioni, il cui funzionamento non dipende da punti di controllo o da server centrali, bensì, funziona sulla base di una rete decentralizzata. Una rete in cui i suoi utenti hanno il pieno controllo del suo funzionamento. Le DApp consentono alle persone d'accedere a diversi servizi in modo sicuro. Queste applicazioni possono essere utilizzate su personal computer, smartphone e sono anche accessibili via web.

Per avere un'idea più chiara di cosa sia una Dapp, dobbiamo pensare ad una App tradizionale (applicazione / servizio). In questa categoria di app tradizionali abbiamo ad esempio YouTube, Facebook, Twitter o Instagram. In tutti questi servizi, i dati e le decisioni vengono presi su alcuni server centrali, consentendo alla società che sta dietro a questi servizi d'intraprendere azioni di censura, di manipolare il comportamento o persino di avvantaggiare o danneggiare determinati utenti mettendo costantemente in discussione la neutralità e la parità di condizioni. Si comportano come dei dittatori, puoi solo sperare che siano "buoni".

L'origine

Il concetto di DApp non è una novità. Le prime DApp conosciute sono state viste nei protocolli di condivisione file come BitTorrent o DC ++. Entrambe le applicazioni sono sistemi di condivisione di file peer-to-peer con elevata resistenza alla censura. Tuttavia, la prima DApp ad aver utilizzato la blockchain è stata proprio Bitcoin; questo perché la sua struttura e il suo funzionamento descrivono con successo la prima DApp blockchain nella storia.

Tuttavia, non è stato fino al 2014, con la presentazione di Ethereum, il suo linguaggio Solidity e la sua capacità di realizzare smart contract È merito di questa triade, se le DApp in esecuzione su blockchain hanno iniziato a diventare molto popolari. Una situazione che può portare all'adozione massiva della tecnologia blockchain consentendo nuove forme d'interazione tra gli utenti e tra il mondo reale e quello virtuale.

Differenze tra una DApp e un'app tradizionale

Le DApp e le app tradizionali hanno molti elementi in comune, tuttavia, la loro differenza sta nel modo in cui interagiscono con questi elementi. Entrambi i tipi di applicazioni posseggono tre strutture di base che sono: il frontend, il backend e il livello di archiviazione dei dati.

Frontend

Il primo livello, il frontend, è l'interfaccia che gli utenti utilizzano per interagire con l'applicazione. In questo caso, sia le DApp che le App tradizionali possono utilizzare le vaste risorse grafiche esistenti per questo. Dalle interfacce web scritte in HTML5 a quelle più elaborate, in framework come Qt o GTK. Lo scopo di questo livello è semplicemente quello di dare all'utente la possibilità di interagire, ricevere e inviare informazioni all'applicazione che sta utilizzando.

dapps-schema

BACKEND

Questo secondo livello fa riferimento alla logica principale dell'applicazione. In un'applicazione tradizionale, questa logica è centralizzata, a differenza delle DApp in cui è decentralizzata. In DApp, il backend è correlato a uno smart contract che viene eseguito su una blockchain, ad esempio Ethereum. In questo modo, uno smart contract ha una programmazione che garantisce il funzionamento della DApp. Poiché i contratti intelligenti sono visibili e pubblici, viene garantito un elevato livello di trasparenza e sicurezza. Gli utenti possono essere sicuri che DApp non farà nulla che non sia specificato nello smart contract.

Oltre a ciò, il backend è supportato dalle API (Application Programming Interface) e dalle funzionalità della blockchain; ad esempio, in Ethereum ci sono varie API per controllare l'interazione dell'utente con i livelli d'archiviazione o d'autenticazione.

Archivio dati

Infine, c'è il livello d'archiviazione. In un'applicazione tradizionale anche questo livello è centralizzato. Normalmente i dati vengono conservati sul computer dell'utente o su server controllati da terze parti. Questo modo di lavorare ha molti punti deboli. Un utente, ad esempio, potrebbe perdere le informazioni sull'applicazione se il suo computer viene danneggiato. Può anche accadere che i server s'interrompano o vengano bloccati. Queste azioni impedirebbero all'utente d'utilizzare correttamente l'applicazione o addirittura di perdere informazioni.

Ma in DApp, anche l'archiviazione dei dati è completamente decentralizzata. Ogni utente DApp memorizza una cronologia completa delle azioni eseguite sulla rete DApp; inoltre, le interazioni vengono memorizzate nella blockchain all'interno dei blocchi . Tutto questo avviene in modo crittograficamente sicuro, impedendo l'accesso non autorizzato da parte di terzi. In questo modo, se il computer o lo smartphone di un utente dovessero essere danneggiati, basterebbe utilizzare la DApp su un nuovo dispositivo per recuperare tutte le sue informazioni immagazzinate fino a quel preciso momento. Aggiungiamo anche che il livello di ridondanza e sicurezza con i dati aumenta man mano che aumenta il numero degli utenti delle DApp.

Come funziona una DApp?

Una DApp funziona in modo simile ad una rete blockchain. In questo caso, ogni utente DApp è un nodo all'interno della rete. Ciascun utente vigila sul corretto funzionamento e sulle operazioni svolte su tale rete.

Il canale di comunicazione utilizzato da DApp è la blockchain. In esso, viene lasciato un record di ogni operazione che passa attraverso lo smart contract controllato dalla DApp. L'accettazione o meno delle operazioni effettuate dagli utenti della DApp, è subordinata alla programmazione di detto smart contract. In questo modo, cerca di garantire che tutti i partecipanti agiscano nel quadro da esso specificato.

Il contratto intelligente in questo caso, è un punto intermedio che è responsabile di corroborare la validità di ogni interazione. Ogni volta che c'è una nuova operazione nella DApp, le informazioni sulla piattaforma vengono aggiornate in ogni nodo. Ciò garantisce che le informazioni siano memorizzate in ciascuno di essi. In questo modo, ogni utente contribuisce al mantenimento dell'applicazione con le risorse del proprio computer. Questa struttura garantisce inoltre che la piattaforma sarà sempre in servizio. Ciò è dovuto all'impossibilità di rimuovere tutti i nodi dalla rete contemporaneamente. Una situazione che può verificarsi a causa di un attacco informatico o per altri motivi come la censura.

A questo punto, le DApp fanno un grande passo avanti, perché quando lavorano e girano su una blockchain, godono delle sue capacità di sicurezza, privacy e persino di anonimato. Inoltre, garantiscono anche che i dati utilizzati dalla DApp siano accessibili solo dalla persona che ha originato tali informazioni. Con ciò gli utenti mantengono il controllo assoluto dei propri dati in ogni momento.

Funzionalità DApps

Sicurezza

Questa è una delle caratteristiche principali di DApps, grazie al fatto che funziona su una blockchain che utilizza una crittografia avanzata per proteggere i dati che gestisce. Questo primo punto garantisce che le informazioni possano essere viste solo da chi le ha generate e gli altri possono solo verificarne la validità o meno. In nessun momento, le informazioni originate da un utente sono visibili ad altri.

Inoltre, i dati trattati dall'applicazione sono in ogni momento in possesso dell'utente. Le DApp non memorizzano le informazioni nel cloud o in server esterni, questo riduce al minimo i rischi associati al furto d'informazioni private o alla vendita delle stesse da parte dell'azienda, violando così la privacy dell'utente.

security-dapp

Decentramento

Un'altra delle caratteristiche principali delle DApp è la loro decentralizzazione o la capacità di funzionare senza server centrali, che sono poi la stessa cosa. Per renderlo più chiaro, consideriamo il seguente esempio:

Facebook è uno dei social network più utilizzati al mondo. Con oltre 2000 miliardi di utenti, i suoi data center gestiscono un enorme carico di dati. A questo punto, mantenere la tua infrastruttura attiva e funzionante è un compito arduo; si sono verificati degli errori, che hanno portato la rete a non essere disponibile su scala globale. Tutto questo perché Facebook è un social network centralizzato.

Una DApp, invece, non ha questo punto di debole, grazie alla decentralizzazione. Ogni utente DApp ha una cronologia completa delle azioni eseguite nella DApp. Qualcosa come una copia globale di tutto ciò che è accaduto. Per questo motivo, dato che gira su una blockchain, è sufficiente che un solo utente sia attivo affinché la rete continui a funzionare senza problemi. In questo modo, è garantito che la DApp e la sua rete funzionino sempre e che non si verifichi quello che è successo a Facebook.

Rete decentralizzata

Open Source

Questa è un'altra caratteristica molto comune delle DApp. Il fatto che il codice sorgente sia disponibile garantisce un alto livello di trasparenza dell'applicazione; ciò è possibile perchè la community può sapere in ogni momento cosa sta facendo DApp. Consente inoltre audit della comunità, in modo che chiunque abbia le informazioni possa controllare il codice sorgente dell'applicazione, permettendo di migliorarlo e comunque di continuare il suo sviluppo nel caso in cui il progetto venga abbandonato dai suoi autori originari (fork).

Tutte le DApp mantengono pubblicamente il codice sorgente dei loro smart contract e delle altre parti dell'applicazione. In questo modo, chiunque può ispezionare il codice, migliorarlo o generare un nuovo software partendo da esso.

Open Source

Eredità blockchain

Le DApp interagiscono sulla blockchain in cui viene eseguito il loro smart contract; ciò significa che ogni interazione nella DApp genera un'immissione di dati nella blockchain. Questi dati vengono archiviati in modo crittografico per aggiungere trasparenza e sicurezza. Tutte queste azioni possono essere riviste pubblicamente nel blockchain explorer.

Ma solamente le interazioni crittografiche possono essere viste, poiché tutti i dati sono archiviati crittograficamente in modo sicuro. Oltre a ciò, il fatto che una DApp funzioni su una blockchain significa che viene utilizzato un protocollo di consenso per verificare ogni interazione. Questo potrebbe essere la Proof of Work (PoW) o la Proof of Stake (PoS) o qualunque cosa scelga lo sviluppatore DApp. In questa maniera si cerca di garantire lo stesso livello di sicurezza applicabile alla blockchain su DApp.

Classificazione di DApps

Le DApp possono essere classificate in tre categorie, che sono:

Tipo I.

Questa classificazione include tutte quelle DApp che hanno la propria blockchain. Cioè, quelli che hanno la propria infrastruttura e non dipendono da alcuna blockchain per essere eseguiti. Al riguardo, Bitcoin è la prima DApp blockchain mai esistita. Lo stesso vale per Bitcoin Cash, Litecoin, Ethereum, Dash, Monero, fra le altre.

Tipo II

In questa classificazione troviamo quelle DApp che dipendono da una blockchain e dalle sue caratteristiche per funzionare. In questo caso, le DApp possono funzionare utilizzando i propri token o la blockchain su cui girano. Un esempio di questo caso è Golem.

Golem è una DApp che funziona sulla blockchain di Ethereum. È stato creata per consentire ai propri utenti d'affittare risorse informatiche per elaborare dati per usi diversi. Devi pensare a Golem come ad un supercomputer decentralizzato da cui possiamo affittare potenza d'elaborazione. Per raggiungere questo obiettivo, Golem ha un token ERC-20, il GNT (token di rete Golem). Questo token viene utilizzato per pagare gli utenti che noleggiano la loro potenza di calcolo e per altre attività all'interno della rete.

Tipo III

DApp di questo tipo utilizzano DApp di tipo II per il loro funzionamento. Generalmente, le DApp di tipo III utilizzano i token delle DApp di tipo II per svolgere le loro operazioni. Un esempio di queste DApp è Rete sicura. Safe Network fa affidamento a Omni Layer, una DApp di tipo II, per generare Safecoin, la propria criptovaluta. Questa criptovaluta viene utilizzata in Safe Network per eseguire tutte le operazioni all'interno di detta DApp.

Limitazioni delle DApp

Alcune delle limitazioni più importanti delle DApp sono le seguenti:

  1. Difficoltà a sfruttare appieno le potenzialità dell'hardware dei dispositivi degli utenti. Ciò è particolarmente vero per DApp eseguite da browser Web. Qualcosa che è dovuto al numero di livelli di astrazione e all'altissimo livello di esecuzione dei linguaggi di programmazione utilizzati.
  2. La complessità dell'applicazione può spesso rendere difficile il debug e la revisione della sicurezza. Questa situazione è particolarmente critica nella programmazione dei contratti intelligenti. Ciò è dovuto a una vulnerabilità in essi, può interessare tutti gli utenti DApp contemporaneamente.
  3. La crescita e il miglioramento delle DApp sono legati all'arricchimento dei miglioramenti all'interno delle strutture blockchain. Una DApp può avere uno sviluppo molto vivace, ma questo sarà rallentato se lo sviluppo della blockchain e dei suoi strumenti è scarso o inesistente. A questo punto, la correlazione evolutiva tra DApp e blockchain è simbiotica. Entrambi devono continuare il loro sviluppo per raggiungere obiettivi a lungo termine.
  4. Difficoltà nell'implementazione delle funzionalità necessarie per il corretto funzionamento delle DApp. Alcune DApp sono molto semplici nei loro requisiti di programmazione, altre non così tanto. Prendiamo, ad esempio, Golem DApp e il suo sistema di elaborazione decentralizzato. La principale difficoltà del progetto è orchestrare l'archiviazione dei dati elaborati e da elaborare all'interno della rete. Inoltre, un altro problema che presenta è la sincronizzazione durante l'esecuzione di processi di calcolo per un determinato compito assegnato ai nodi. Quanto descritto fa si che lo lo sviluppo di Golem sia un cammino in salita, ma è una sfida che gli sviluppatori hanno raccolto nella sua totalità.

Quanto sai, Cryptonuta?

Le DApp hanno il potenziale per portare all'adozione di massa della tecnologia blockchain?

Certo!

Le DApp hanno il potenziale per portare all'adozione di massa della tecnologia blockchain, consentendo agli utenti di interagire in modo radicalmente diverso con il resto del mondo. Non solo in termini di sicurezza e privacy, ma anche in termini di economia e innovazione che finora non abbiamo visto.

Esempio di alcune DApp

CryptoKitties

Questo è stato uno dei primi giochi al mondo ad essere stato creato sulla base della tecnologia blockchain. CryptoKitties, consiste nella raccolta di "gattini virtuali unici". Ognuno di questi gattini ha caratteristiche e proprietà che lo rendono diverso dagli altri. È proprio la loro estrema rarità, che dà loro valore e che li trasforma nella criptovaluta del gioco. I gattini possono essere acquistati e venduti, ottenendone la proprietà in forma virtuale.

Oltre a questo, possiamo "allevare" gattini in CryptoKitties, possiamo, cioè, unire due gattini per ottenere una prole genetica unica che possiamo mantenere, aumentare o vendere per fare affari. CryptoKitties funziona sulla blockchain di Ethereum, ed è una DApp di tipo II.

cryptokitties

NASH

Questa è una DApp di tipo II che gira sulla blockchain NEO. L'obiettivo di NASH è quello di eseguire un motore di corrispondenza off-chain per consentire scambi molto più veloci e complessi rispetto agli scambi decentralizzati esistenti.

Saturn Network

Saturn Network è uno scambio decentralizzato per il token trading ERC-20 o ERC-223. Funziona sulla base di una catena incrociata disponibile in Ethereum ed Ethereum Classic. Saturn Network offre un sistema di scambio rapido e semplice, poiché non è necessario compilare un KYC o creare un account.

Crazy Dogs Live

Crazy Dogs Liveè un sistema di gioco d'azzardo incentrato sulla creazione di una piattaforma trasparente, sicura e divertente per i suoi utenti. È rivolto alle corse di cani con innovative funzionalità di mining di scommesse e live streaming. Consente inoltre ai giocatori di interagire e di distrarsi con il divertimento del gioco mentre realizzano un profitto. La piattaforma rilascerà anche altre funzionalità nel prossimo futuro affinché l'intero ecosistema di gioco cresca in modo esponenziale.

Crazy Dogs Live è un tipo di DApp che funziona sulla blockchain di TRON.