Cosmos
Last updated
Last updated
Cosmos, soprannominato “Internet delle blockchain”, è un concetto all'avanguardia che prova ad affrontare con soluzioni innovative il problema delle blockchain isolate e incompatibili tra loro.
Costruendo una rete di blockchain collegate da strumenti open-source che accelerano le transazioni tra le varie blockchain, Cosmos cerca di risolvere il problema di interoperabilità.
Le altre blockchain, tra cui Ethereum, Binance Smart Chain, Solana e altre ancora, possono essere paragonate ai negozi che si trovano su strade diverse; Comsos invece rappresenta il centro commerciale che raggruppa tutti i negozi.
La ricerca sulla Byzantine Fault Tolerance (BFT) è stata inizialmente utilizzata in un ambiente blockchain pubblico . In seguito ha fondato Tendermint Inc. (nota anche come All Bits Inc.) per sviluppare Tendermint BFT.
Per mettere le cose in prospettiva, Tendermint BFT è stato creato per risolvere i problemi di velocità, scalabilità e ambiente legati ai sistemi “Proof of Work” di Bitcoin ed Ethereum. Si tratta dell'implementazione più avanzata dell'algoritmo di consenso BFT e Proof-of-Stake (PoS) fino ad oggi.
In seguito ha incontrato Ethan Buchman, che lo ha aiutato a creare Tendermint negli anni successivi. Tendermint è stato reso collegabile con applicazioni scritte in qualsiasi linguaggio utilizzando l'Application Blockchain Interface (ABCI) ed è stato aggiunto il supporto per lo sviluppo di EVM su Tendermint (Ethermint 1.0).
I cofondatori di Tendermint hanno pubblicato il e la Interchain Foundation li ha ingaggiati per sviluppare Cosmos (di cui si parlerà più avanti). Nel 2019 hanno presentato Cosmos Hub.
Cosmos sfrutta diversi strumenti open-source per creare una rete di blockchain interoperabili tra loro, in particolare:
Tendermint
Cosmos SDK
Inter-Blockchain Communication (IBC)
CosmWasm
Per comprendere appieno Tendermint, dobbiamo innanzitutto esplorare 3 livelli di blockchain, in modo da poter vedere l'innovazione di Tendermint.
Livello dell'applicazione: Il livello che consente al codice di creare qualche tipo di funzionalità in cima agli altri livelli.
Livello di rete: Il livello che trasmette le transazioni e i messaggi relativi al consenso.
Livello di consenso: Il livello che permette ai nodi (ossia i validatori) di accordarsi sullo stato attuale del sistema. Prima di Tendermint, il problema della creazione di una blockchain propria è che bisogna creare tutti i suddetti livelli da zero.
Sebbene l'innovazione abbia fatto passi da gigante, come la Ethereum Virtual Machine (EVM) che consente a chiunque di personalizzare e distribuire contratti intelligenti su una blockchain, gli stack tecnologici dei sistemi blockchain tradizionali, come Bitcoin ed Ethereum, rendono gli altri livelli della blockchain, a parte l'Application Layer, ancora difficili da personalizzare e un processo tedioso.
È qui che entra in gioco Tendermint.
Tendermint mira a combinare sia il livello di consenso che quello di rete di qualsiasi blockchain come un motore generico, sul quale è possibile costruire applicazioni.
Con Tendermint, gli sviluppatori possono creare la propria blockchain in modo pratico, poiché ora devono concentrarsi solo sul livello di applicazione della blockchain.
Questo dà loro anche la possibilità di creare una blockchain privata o pubblica - poiché Tendermint gestisce solo i livelli di rete e di consenso, che propagano le transazioni e consentono ai validatori di concordare un insieme di transazioni da aggiungere alla blockchain, mentre il livello applicativo è quello che definisce come è costituito l'insieme dei validatori - e la libertà di scegliere il linguaggio di programmazione su cui costruire la propria applicazione, dato che il motore centrale di Tendermint (Tendermint Core) è collegato alle applicazioni tramite un protocollo socket chiamato Application Blockchain Interface (ABCI), che può essere integrato in qualsiasi linguaggio, risparmiando così molto tempo al lavoro di sviluppo.
Anche qui c'è una cosa interessante da notare: Poiché l'ABCI è modulare, è possibile portare le basi di codice blockchain esistenti, come quelle della Ethereum Virtual Machine (EVM), collegarle a Tendermint (come EVMOS/Ethermint) e avere la compatibilità con gli strumenti Ethereum esistenti, come Metamask o Truffle, beneficiando al contempo di tutte le proprietà di Tendermint (di cui si dirà più avanti) senza dover riscrivere gli smart contract.
Tendermint riduce drasticamente i tempi di sviluppo delle blockchain. Ma come possiamo ridurre ulteriormente i tempi di sviluppo?
Con il Cosmos Software Development Kit (Cosmos SDK)!
Cosmos SDK è un framework modulare per la creazione di applicazioni blockchain sicure e gli sviluppatori possono utilizzare moduli già pronti per costruire le proprie blockchain senza dover affrontare la complessità della codifica di funzionalità comuni (ad esempio, Staking, Governance).
Ora sappiamo cos'è Tendermint e abbiamo finalmente capito che aiuta gli sviluppatori a creare facilmente blockchain altamente performanti senza doversi preoccupare dei livelli di rete o di consenso, e che dispone di moduli già pronti per rendere il tutto ancora più semplice.
Ora, sarebbe possibile collegare tra loro 2 blockchain?
Sì, e la risposta è il protocollo di comunicazione inter-blockchain (in breve, IBC).
Sebbene le chain costruite sopra Tendermint abbiano tutte livelli applicativi diversi, ricordiamo che la tecnologia sottostante (Tendermint) condivide gli stessi livelli di rete e di consenso, rendendo così facile la connessione tra loro.
Supponiamo che un account della blockchain A voglia inviare 50 X token alla blockchain B.
50 X token sono bloccati sulla catena A.
La prova che 50 X token sono bloccati sulla catena A viene quindi trasmessa dalla catena A alla catena B, e la catena B tiene traccia del set di validatori della catena A.
Se la prova è firmata da più di 2/3 dei validatori della catena A, questa prova è considerata valida.
50 X token vengono quindi creati sulla catena B.
Per sbloccare i token e invertire la transazione (cioè inviare nuovamente i token alla catena A dalla catena B), si utilizza un meccanismo simile.
Un'ultima cosa da notare è che i token creati sulla Catena B non sono in realtà il vero “gettone X” - poiché il “gettone X” esiste solo sulla Catena A - ma piuttosto una rappresentazione sulla Catena B del “gettone X” della Catena A, insieme alla prova che questi gettoni sono congelati sulla Catena A.
Ora sappiamo che gli sviluppatori amano Tendermint perché è in grado di trasferire valore e connettersi ad altre chain basate su Tendermint.
Ma che dire delle blockchain non Tendermint?
Le blockchain non Tendermint con algoritmi di consenso fast-finality possono connettersi a Cosmos adattando IBC.
Ma per le blockchain non Tendermint con algoritmi di consenso a finalità probabilistica - come le blockchain Proof-of-Work come Bitcoin - non è possibile adattare l'IBC (ricordiamo che l'IBC sfrutta la capacità di Tendermint di avere una finalità istantanea), il che rende le cose difficili.
È qui che entra in gioco una chain proxy chiamata Peg-Zone - una blockchain che tiene traccia dello stato di un'altra blockchain.
La Peg-Zone consente alle blockchain non-Tendermint di connettersi all'ecosistema Cosmos.
Ora mettiamo insieme tutti i componenti per creare una rete di blockchain. Quale sarebbe il modo migliore per farlo?
Collegare ogni blockchain della rete e le Peg-Zones con ogni altra blockchain tramite IBC?
Collegare più blockchain direttamente potrebbe funzionare, ma c'è una sfida significativa di scalabilità: il numero di connessioni aumenta esponenzialmente con ogni blockchain aggiuntiva. Ad esempio, con solo 2 blockchain, ci sono 2 connessioni. Tuttavia, la situazione si aggrava rapidamente con l'aggiunta di altre blockchain. Con 100 blockchain, ci si trova di fronte a ben 4.950 connessioni. Questa crescita esponenziale rende impraticabili le connessioni dirette per un gran numero di blockchain.
Per risolvere il problema della quantità insostenibile ed esponenziale di connessioni e fiducia necessarie tra le blockchain nel tentativo di collegarle tra loro, Cosmos propone un'architettura modulare con due classi di blockchain.
Zone: Le zone sono blockchain regolari ed eterogenee.
Hub: Gli hub sono blockchain utilizzate specificamente per collegare tra loro le zone. In sostanza, quando una zona si connette a un hub, può inviare e ricevere token da ogni zona e stabilire un numero limitato di connessioni con un insieme ristretto di hub. Quindi, quando una Zona riceve un token da un Hub, deve solo fidarsi della Zona di origine del token e dell'Hub.
CosmWasm è una soluzione multi-chain che permette agli sviluppatori di creare e rilasciare dApps sulle chain dell'ecosistema Cosmos abilitate all'esecuzione di smart contracts.
Le sue caratteristiche principali sono:
Strumenti maturi per lo sviluppo e il test di smart contracts.
stretta integrazione con l'SDK e l'ecosistema Cosmos
Un'architettura sicura per evitare vettori di attacco
Il design di CosmWasm rende il codice agnostico rispetto ai dettagli delle catene sottostanti. Richiede solo che un'applicazione Cosmos SDK incorpori il modulo Wasm.
Con CosmWasm, gli smart contracts possono essere eseguiti su più chains con l'aiuto del protocollo IBC: questo aggiunge ulteriore flessibilità agli sviluppatori e rende più veloce lo sviluppo dei contratti intelligenti. CosmWasm è scritto come modulo da inserire nell'SDK Cosmos e sfrutta la velocità di Wasm e la potenza di Rust. CosmWasm è ideale per gli sviluppatori Rust che cercano una piattaforma blockchain con una rapida finalizzazione delle transazioni.
Ora che abbiamo trattato praticamente tutto quello che c'è da sapere su Cosmos, come il concetto alla base e la tecnologia utilizzata, parliamo dell'ecosistema Cosmos.
Cosmos Hub è il primo Hub dell'ecosistema Cosmos ed è una chain Proof of Stake costruita con Tendermint, che permette l'esecuzione di smart contracts. La moneta nativa ATOM, permette di svolgere alcune attività on-chain tra cui:
Proteggere il Cosmos Hub: La sicurezza del Cosmos Hub - più comunemente nota come staking - funziona in due modi. Attualmente, ATOM ha un tasso di rendimento di circa il 7-20%.
Partecipare alla governance della catena: mettendo in stake i tuoi ATOM, avrai il diritto di votare sulle proposte e di prendere decisioni sul futuro della rete.
Stakedrops: Le nuove catene che vengono costruite con l'SDK Cosmos sono incentivate a fare stakedrop ai possessori di ATOM, fornendo così stabilità alla nuova catena. Esempi passati di stakedrops sono OSMO, JUNO, DYM, SAGA e molti altri.
Sentinel è un Hub dell'ecosistema Cosmos, con l'obiettivo di decentralizzare l'industria globale delle reti private virtuali (VPN), gettando le basi di un layer open source sul quale chiunque può:
Acquistare servizi VPN decentralizzati Navigare mantenendo la privacy
Costruire applicazioni per offrire servizi VPN decentralizzati
Contribuire alla rete fornendo la banda internet e ricevendo una ricompensa per le risorse messe a disposizione.
Puoi approfondire Sentinel nella sezione della Wiki dedicata Sentinel.
Bitsong è un ulteriore Hub di Cosmos, che si pone come finalità la costruzione di un ecosistema di dApps interamente dedicato al mondo della musica ed intrattenimento.
A differenza delle blockchains per smart contracts più generaliste, come Ethereum o Solana, Bitsong punta ad essere la casa per tutti quei progetti legati al mondo dell'intrattenimento, impostando e governando la chain a seconda delle necessità del settore in questione.
Una delle prime dApps ad essere stata lanciata su questa chain è infatti Bitsong Studio. Bitsong Studio permette la tokenizzazione e vendita di musica sotto forma di NFT, in particolare:
Gli artisti possono tokenizzare e vendere la musica, ricevendo pagamenti diretti e senza intermediari.
I fan possono acquistare, conservare e scambiare gli NFTs musicali, aggiungendo una importante caratteristica di scarsità
Puoi approfondire Bitsong nella sezione della WIki dedicata a Bitsong.
Il concetto alla base è piuttosto semplice, ma naturalmente dal punto di vista tecnico è molto più profondo di così. Se vuoi saperne di più sull'architettura, puoi leggere qui: .
Se vuoi saperne di più su come funzionano i trasferimenti da una zona di un hub a un'altra zona di un altro hub, e se vuoi sapere come l'architettura impedisce ad altri hub/zone di spendere due volte, puoi leggere questo articolo: .