Come creare un'applicazione decentralizzata scalabile? Utilizza meno blockchain

No, lanciare un'applicazione decentralizzata (dapp) sulla blockchain non porterà a un business di successo. In realtà, la maggior parte degli utenti non si preoccupa nemmeno di sapere se l'applicazione funziona sulla blockchain: scelgono semplicemente il prodotto che è più economico, veloce e facile da usare.

Sfortunatamente, anche se la blockchain ha caratteristiche e vantaggi unici, la maggior parte delle applicazioni che vi operano sono molto più costose, lente e meno comprensibili rispetto ai loro concorrenti centralizzati.

Come creare un'applicazione decentralizzata scalabile? Utilizza meno blockchain

Spesso nei whitepaper delle applicazioni costruite sulla blockchain si trova un paragrafo che dice: "la blockchain è costosa e non riesce a supportare il numero richiesto di transazioni al secondo. Fortunatamente, molte menti brillanti stanno lavorando per scalare la blockchain e al momento del lancio della nostra applicazione, sarà abbastanza scalabile".

In un semplice paragrafo, il developer della dapp potrebbe evitare di discutere in modo più approfondito i problemi di scalabilità e le soluzioni alternative. Questo porta spesso a un'architettura inefficiente, dove il backend e il nucleo dell'applicazione sono smart contract che operano sulla blockchain.

Tuttavia, ci sono ancora approcci non provati nell'architettura delle applicazioni decentralizzate che permettono una scalabilità molto migliore, riducendo la dipendenza dalla blockchain. Ad esempio, Blockstack sta lavorando su un'architettura in cui la maggior parte dei dati e della logica dell'applicazione è memorizzata al di fuori della blockchain.

Esaminiamo prima un approccio più tradizionale, in cui la blockchain è usata come intermediario diretto tra gli utenti dell'applicazione, e che non scala particolarmente bene.

Approccio #1: Blockchain come backend

Per rendere più chiara la situazione, prendiamo l'industria alberghiera come esempio. È un settore enorme, in cui intermediari come Booking.com, richiedono commissioni enormi per connettere ospiti e hotel.

In qualsiasi situazione in cui desideriamo superare tale intermediario, utilizzando questo approccio, cercheremo di riprodurre la sua logica di business usando smart contract su una blockchain come Ethereum.

Smart contract open-source, eseguiti su un "computer mondiale", possono connettere venditori e consumatori senza una terza parte tra di loro, riducendo in ultima analisi le commissioni e le spese addebitate dall'intermediario.

Come mostrato nell'immagine sottostante, gli hotel utilizzano un'app decentralizzata per inserire sulla blockchain informazioni sulle stanze, la loro disponibilità e i prezzi nei giorni feriali o nel fine settimana, e forse anche descrizioni delle stanze con tutte le altre informazioni pertinenti.

Come creare un'applicazione decentralizzata scalabile? Utilizza meno blockchain

Chiunque desideri prenotare una stanza utilizza questa app per cercare hotel e stanze pubblicate sulla blockchain. Una volta che l'utente seleziona una stanza, la prenotazione avviene inviando l'importo necessario di token all'hotel come cauzione. In risposta, lo smart contract aggiorna l'informazione sulla blockchain, indicando che la stanza non è più disponibile.

Questo approccio presenta due aspetti del problema della scalabilità. In primo luogo, il numero massimo di transazioni al secondo. In secondo luogo, la quantità di dati che possono essere memorizzati sulla blockchain.

Facciamo alcune stime approssimative. Booking.com dichiara di avere registrati quasi 2 milioni di hotel. Supponiamo che in media ogni hotel abbia 10 stanze e ognuna venga prenotata solo 20 volte all'anno: questo ci dà una media di 13 prenotazioni al secondo.

Per valutare questo numero, è importante notare che Ethereum può elaborare circa 15 transazioni al secondo.

Va tenuto conto che nella nostra applicazione ci saranno anche transazioni da parte degli hotel, per caricare e aggiornare continuamente le informazioni sulle loro stanze. Gli hotel aggiornano il prezzo delle stanze molto frequentemente, a volte anche quotidianamente, e ogni cambiamento di prezzo o descrizione richiede una transazione sulla blockchain.

Ci sono anche problemi di dimensione: il peso della blockchain di Ethereum ha recentemente superato i 2TB. Se le applicazioni con tale approccio diventassero davvero popolari, la rete di Ethereum diventerebbe estremamente instabile.

Un sistema basato sulla blockchain può escludere gli estranei a causa della sua imparzialità e mancanza di centralizzazione, che sono i principali vantaggi della tecnologia blockchain. Ma la blockchain ha anche altre caratteristiche: è distribuita e non riscrivibile, sono ottime caratteristiche, ma richiedono un prezzo in termini di velocità e commissioni sulle transazioni.

Pertanto, gli sviluppatori di dapp devono valutare attentamente se ogni funzionalità che utilizza la blockchain ha realmente bisogno di distribuzione e non riscrivibilità.

Ad esempio: qual è il vantaggio della distribuzione dei dati di ogni hotel su centinaia di macchine in tutto il mondo e del loro costante stoccaggio lì? È davvero importante che i dati storici sui prezzi e sulla disponibilità delle stanze siano sempre inclusi nella blockchain? Probabilmente no.

Se iniziamo a porre tali domande, inizieremo a realizzare che non abbiamo necessariamente bisogno di tutte le costose caratteristiche della blockchain per tutte le nostre funzioni. Quindi, qual è l'alternativa?

Approccio #2: Architettura ispirata a Blockstack

Sebbene l'attenzione principale Blockstack sia su applicazioni in cui gli utenti possiedono i propri dati (come ad esempio Airtext, BentenSound, ImageOptimizer o Grafite), Blockstack ha anche una filosofia di uso limitato della blockchain — solo quando è assolutamente necessario. Il loro argomento principale è che la blockchain è lenta e costosa, quindi deve essere utilizzata solo per operazioni singole o rare. Tutto il resto dell'interazione con le applicazioni dovrebbe avvenire tramite peer-to-peer, cioè gli utenti delle applicazioni decentralizzate dovrebbero scambiarsi dati direttamente tra loro, anziché tramite la blockchain. Alla fine, le applicazioni decentralizzate più antiche e di successo, come BitTorrent, email e Tor, sono state create prima ancora della concezione stessa della blockchain.

Come creare un'applicazione decentralizzata scalabile? Utilizza meno blockchain
A sinistra: primo approccio, in cui gli utenti interagiscono tramite la blockchain. A destra: gli utenti interagiscono direttamente tra loro, e la blockchain viene utilizzata solo per identificazione e simili..

Torniamo all'esempio della prenotazione degli hotel. Vogliamo un protocollo imparziale, indipendente e aperto per collegare gli ospiti agli hotel. In altre parole, vogliamo eliminare il mediatore centralizzato. Non abbiamo la necessità, ad esempio, di conservare continuamente i prezzi delle stanze in un registro distribuito comune.

Perché non semplicemente permettere agli ospiti e agli hotel di interagire direttamente, anziché attraverso la blockchain? Gli hotel possono conservare i loro prezzi, la disponibilità delle stanze e qualsiasi altra informazione in un luogo accessibile a tutti — come ad esempio IPFS, Amazon S3, o anche il proprio server locale. Questo è esattamente ciò che offre il sistema di archiviazione decentralizzato di Blockstack, chiamato Gaia. Permette agli utenti di scegliere dove vogliono archiviare i loro dati e di controllare chi può accedervi attraverso un approccio chiamato archiviazione multi-utente..

Per instaurare fiducia, tutti i dati dell'hotel sono criptograficamente firmati dallo stesso hotel. Indipendentemente da dove sono archiviati questi dati, la loro integrità può essere verificata utilizzando chiavi pubbliche collegate alle informazioni identificative di quell'hotel, conservate nella blockchain.

Nel caso di Blockstack, nella blockchain viene archiviata solo la tua informazione identificativa. Le informazioni su come ottenere i dati di ogni utente sono archiviate in file di zona (zone files) e diffuse attraverso una rete peer-to-peer tramite nodi. E ancora una volta — non è necessario fidarsi dei dati forniti dai nodi, perché puoi verificare la loro autenticità confrontandoli con gli hash memorizzati nella blockchain e presso altri utenti.

In una versione semplificata del sistema, gli ospiti utilizzeranno la rete peer-to-peer di Blockstack per cercare hotel e ottenere informazioni sulle loro stanze. E l'autenticità e l'integrità di tutti i dati che riceverai possono essere verificate utilizzando le chiavi pubbliche e gli hash memorizzati in un chain virtuale Blockstack.

Questa architettura è più complessa rispetto al primo approccio e richiede un'infrastruttura più complessa. In effetti, è proprio qui che entra in gioco Blockstack, fornendo tutti i componenti necessari per creare un sistema decentralizzato del genere.

Come creare un'applicazione decentralizzata scalabile? Utilizza meno blockchain

Con questa architettura, memorizziamo nella blockchain solo i dati che devono effettivamente essere distribuiti e non riscrivibili. Nel caso di Blockstack, hai bisogno di transazioni nella blockchain solo per registrarti e indicare dove devono essere memorizzati i tuoi dati. Potrebbe essere necessaria più transazioni se desideri modificare qualcosa di queste informazioni, ma ciò non è un evento ricorrente.

Inoltre, la logica dell'applicazione, a differenza del primo approccio, funziona sul lato client e non su smart contract. Questo consente allo sviluppatore di modificare questa logica senza costosi o talvolta impossibili aggiornamenti dello smart contract. Mantenendo i dati e la logica dell'applicazione non nella blockchain, le applicazioni decentralizzate possono raggiungere livelli di prestazioni e scalabilità simili a quelli dei sistemi centralizzati tradizionali.

Conclusione

Le applicazioni che funzionano su Blockstack possono scalare molto meglio rispetto alle normali applicazioni blockchain, ma questo è un approccio più giovane con propri problemi e questioni irrisolte.

Ad esempio, se un’applicazione decentralizzata non utilizza smart contract, ciò riduce la necessità di utility token. Questo potrebbe causare problemi per le aziende, considerando che le ICO sono state la principale fonte di finanziamento per le applicazioni decentralizzate (incluso Blockstack stesso).

Ci sono anche problemi tecnici. Ad esempio, è relativamente semplice implementare una funzione di prenotazione alberghiera in uno smart contract, dove l'operazione atomica di prenotazione delle stanze avviene in cambio di token. Non è molto chiaro, tuttavia, come funzionerà la prenotazione in un'applicazione Blockstack senza smart contract.

Le applicazioni che mirano a mercati globali con potenziale di milioni di utenti devono scalare molto bene per avere successo. È un errore fare affidamento esclusivamente sulle blockchain per raggiungere tale livello di scalabilità nel prossimo futuro. Per poter competere con grandi attori centralizzati come Booking.com, gli sviluppatori di applicazioni decentralizzate devono considerare approcci alternativi alla progettazione delle proprie applicazioni, come quello offerto da Blockstack.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster