La messaggistica cross-chain
Di Massimiliano Casini
La possibilità di inviare messaggi tra due blockchain diverse è sempre stato uno dei problemi principali di questa tecnologia, ma perché? E soprattutto, quali sono le soluzioni più sviluppate a oggi?
Introduzione al focus on
Le blockchain sono dei registri distribuiti e immutabili, che vivono su di un network composto da diversi nodi. Il passaggio di informazioni tra i vari account all’interno di una rete è più o meno semplice ed è integrato nelle funzionalità basilari di una chain. Ma come può questa comunicare con altre blockchain?
Visto che l’informazione a un certo punto dovrebbe essere trasmessa verso un’altra chain, significa che il dato per un momento dovrà passare da una struttura on-chain (che è sicura controllata da delle regole definite alla base dell’algoritmo), a una insicura, off-chain (che invece è incontrollabile e non regolamentata da degli standard).
Questo può creare ovviamente una serie di problematiche per la veridicità e l’immutabilità di questi dati, perché l’informazione, una volta che lascia la chain di partenza, potrebbe essere compromessa; oppure ci potrebbe essere del ritardo nella comunicazione verso un’altra chain e nel contempo eventuali “attaccanti” potrebbero sfruttare questa breve o lunga assenza di regolamentazione a proprio vantaggio, potendo effettuare double spending o exploit.
Scopriamo quindi quali sono le possibili soluzioni su cui si sta lavorando.
Questo focus on è stato pubblicato in esclusiva sulla nostra newsletter Whale Weekend dell’8 marzo 2024. Iscriviti per non perdere articoli inediti, analisi, news della settimana e tanto altro ancora!
Indice
- La prima soluzione: bridge
- Ecosystem interoperability protocols: layer zero
- Blockchain Interoperability Protocol (BIP)
- LayerZero Protocol - Omnichain Communication
- Axelar - Universal Overlaying Network
- Wormhole - Messaging Protocol
- Celer - Inter-chain Messaging (IM)
- Hyperlane - Modular Security (ISM)
- Conclusioni
La prima soluzione: bridge
Le prime soluzioni sviluppate sono apparse durante la fase di DeFi 1.0. Durante questo periodo sono state create molte piattaforme DeFi, dai DEX a quelle di lending e CDP.
Tuttavia, la necessità di poter spostare degli asset digitali da una catena a un’altra è diventata una delle richieste più impellenti del mercato, soprattutto dopo che le varie soluzioni EVM compatibili si sono sviluppate e molte chain “gemelle” di Ethereum hanno attivato il loro liquidity mining program per attrarre liquidità e TVL.
La risposta degli sviluppatori in quel periodo è stata quella di creare delle soluzioni definite Bridge, ossia “ponti”.
Il nome rende perfettamente l’idea su cosa permettessero di fare queste soluzioni DeFi. Il problema però non era nel nome, ma nel funzionamento di questi protocolli che, a differenza dei network su cui si sviluppano, creano un single point of failure, cioè un singolo punto di attacco.
Esistono due famiglie di bridge: Trusted e i Trustless.
La prima tipologia necessità di riporre fiducia in qualcuno e implementano la custodia degli asset sulla catena di partenza attraverso l’utilizzo di un wallet multi-sig custodial. Quando andiamo a sfruttare i loro servizi, stiamo depositato i nostri asset all’interno di un wallet di cui non disponiamo delle chiavi private e che può essere attaccato dall’esterno o manomesso dall’interno. Non il massimo.
La seconda tipologia non implementa la custodia tramite un wallet multi sig, ma tramite uno smart contract (SC). Ciò minimizza la possibilità per gli sviluppatori della dApp di poter accedere ai nostri fondi, ma aumenta la possibilità di attacco da parte di hacker esterni al protocollo.
Entrambe le soluzioni funzionano allo stesso modo: il wallet o SC riceve gli asset sulla catena di partenza; dopodiché invia un input alla catena di trasferimento e, tramite l’utilizzo di un altro SC, genera una versione tokenizzata di quell’asset.
Tutto il processo si regge sul collaterale vincolato all’interno dello SC o wallet iniziale, e sulla garanzia di resa 1 ad 1 fatta dal protocollo.
Ciò consente ai due asset (reale e derivato) di mantenere un’ancoraggio e di non perdere il PEG.
Il meccanismo di tokenizzazione appena descritto è simile a quello che avviene quando viene creata una stablecoin. Da una parte vengono bloccati del capitale FIAT, mentre on-chain viene mintata una quantità di stablecoin con un rapporto 1 a 1 col collaterale. Questo asset è a tutti gli effetti considerato un derivato o asset sintetico.
Il derivato è ancorato all’asset da cui è collateralizzato e mantiene il suo PEG per via della “promessa” fatta dal protocollo di poter rendere in qualsiasi momento il collaterale alla sua base, in seguito alla restituzione e burn(distruzione) dell’asset sintetico.
In questo modo, se la stablecoin valesse meno di 1$, diciamo 0.9$, alcuni arbitraggisti potrebbero comprare a mercato una grande quantità di coin stabile a un prezzo di 0.9$. Poi potrebbero renderla all’emittente della stablecoin, che provvederà a rendere in rapporto 1:1 il collaterale alla base, distruggendo contemporaneamente l’asset sintetico. L’acquisto massivo da parte degli arbitraggisti consentirebbe alla stable di tornare al prezzo di 1$.
In maniera opposta, se la stablecoin a un certo punto valesse più di 1$, diciamo 1,1$, gli arbitraggisti potrebbero mettere in atto il procedimento opposto. Verseranno quindi 1$ dollaro nel fondo dell’emittente per mintare 1 stablecoin, per poi venderla a mercato al prezzo di 1.1$. In questo modo otterranno profitto e, creando selling pressure, riporterrano il prezzo dell’asset al suo valore di equilibrio, ossia 1$.
Quando sfruttiamo un bridge utilizziamo un meccanismo molto simile, ma tra due chain.
Ad esempio, quando inviamo ETH da rete Arbitrum verso chain BSC sfruttando un bridge, andremo a depositare il nostro ETH in uno SC atto a custodirlo.
Dopodiché, questo utilizzerà uno scambio di informazioni off-chain per poter comunicare allo SC su chain BSC che 1 ETH è stato depositato sullo SC su rete Ethereum. Una volta verificato questo deposito, lo SC su rete BSC minterà una versione di ETH chiamata WETH (o potrà scegliere un altro nome), che seguirà il meccanismo di tokenizzazione descritto in precedenza.
Tutto funziona fino a che la comunicazione off-chain non ha intoppi e finché il ritardo nella due comunicazioni è breve. Ma, soprattutto, finché il collaterale rimane alla base dello SC o wallet da cui è partita la comunicazione. Ma se qualcosa va storto, vuoi per bug, vuoi per attacchi o errori, il meccanismo si inceppa. Se volete comprendere meglio il funzionamento dei Bridge ecco un articolo scritto da noi che può esservi utile.
Nell’aspetto teorico, il funzionamento di questi bridge sembra impeccabile. Però, come sappiamo, nella fase successiva allo sviluppo della DeFi 1.0, quella che va dal 2021 al 2023, ci sono stati numerosi esempi che fanno capire come le soluzioni di bridging appena descritte non siano sicure e presentino molti problemi.
Infatti, le stime dicono che, solo nell’anno 2022, siano stati rubati circa 2B$ in seguito ad attacchi verso bridge, ossia il 70% circa dei fondi totali rubati in seguito ad attacchi avvenuti nella DeFi. Per i più curiosi, ecco un link di Github con una lista di tutti gli hack avvenuti.
Vediamo quindi altre soluzioni che consentono l’interoperabilità tra diverse blockchain e cerchiamo di capire quali potrebbero essere le alternative migliori.
"I bridge hanno limiti importanti, che obbligano a cercare soluzioni alternative"
Ecosystem interoperability protocols: layer zero
Le blockchain definite “Layer zero”, come Polkadot, Cosmos o Avalanche, hanno compreso questo problema della comunicazione cross-chain molto tempo fa, cercando una soluzione da subito.
L’idea alla base di queste chain è di costruire sopra di esse altre blockchain che condividono i principali layer di funzionamento.
In questo modo. queste chain possono dialogare fra di loro utilizzando come “canale comunicativo” la chain di costruzione che condividono.
Infatti, i vari L1 (parachain, appchains, subnets) sviluppati sulle chain elencate in precedenza possono comunicare tra loro proprio grazie all’immutabilità del registro dei propri dati condivisa sulla catena alla loro base.
Il limite di queste soluzioni è che per accedere alla comunicazione cross-chain, un dev necessiti di dover costruire una chain o appchain utilizzando il framework fornito da questi progetti.
Ovviamente, ognuno di questi ecosistemi ha diversi meccanismi di funzionamento e permette lo sviluppo di chain con caratteristiche diverse l’una dall’altra, per offrire al mercato diverse meccaniche customizzabili a seconda delle necessità.
Questi sono i diversi sistemi di comunicazione sfruttati da queste realtà:
- Polkadot: Cross-consensus Message Format (XMC)
- Cosmos: Inter-Blockchain Communication Protocol (IBC)
- Avalanche: Avalanche Warp Messaging (AWM)
Bridgechain
Esistono delle chain costruite su questi layer zero che consentono di integrarsi con altri ecosistemi, così da ridurre il problema della creazione del fork di gran parte delle soluzioni sviluppate su EVM o SVM. In più, queste realtà possono essere utilizzate come dei “canali” indiretti per permettere l’arrivo di liquidità.
Ad esempio Moonbeam (costruita su Polkadot) e EVMMOS (costruita su Cosmos) sono sviluppate in due ambienti totalmente diversi l’uno dall’altro, ma entrambe sono EVM compatibili. Sarà quindi possibile forkare le applicazioni create sulla macchina virtuale di Ethereum con il massimo della semplicità.
Le app integrate sono tantissime. Il numero è così elevato proprio per via della semplicità che dà il supporto della EVM, consentendo agli sviluppatori di poter copiare e incollare il codice sorgente di un app da chain nativa alla propria catena senza grosse problematiche.
Una volta che queste hanno integrato le principali dapp, l’arrivo di liquidità solitamente sfrutta una serie di canali secondari come ad esempio i DEX cross-chain, che consentono un trasferimento tra due catene diverse utilizzando i liquidity pool costruiti su di essi.
Dopo che gli swap cross-chain sono avvenuti, i validatori registrano le informazioni aggiornate sulla bridge-chain, così da garantirne l’immutabilità. Da qui, i token possono ora sfruttare i meccanismi di messaggistica elencati nella sezione precedente per muoversi liberamente tra gli altri network supportati dell’ecosistema tramite l’utilizzo del layer sottostante.
Ma vediamo adesso altre soluzioni diverse da quelle presentate fino ad ora, che permettono una comunicazione cross-chain senza sfruttare ecosistemi o DEX cross-chain.
Blockchain Interoperability Protocol (BIP)
Si tratta di soluzioni “agnostiche” all’ecosistema di creazione della chain, ma che consentono a quest’ultima di poter comunicare con altre blockchain senza il supporto di soluzioni centralizzate, o web 2.
In questo modo, qualsiasi network potrà comunicare con un altro senza che ci siano particolari restrizioni o limiti imposti dalla VM utilizzata o dal linguaggio di programmazione.
Ecco in seguito alcune delle principali soluzioni offerte dal mercato, che un po’ come per le soluzioni di comunicazione dei Layer zero viste in precedenza, si differenziano per nome e per alcuni dettagli di funzionamento.
Possono quindi essere viste come dei servizi esterni o delle soluzioni plug and play che consentono l’aggiornamento di alcuni parametri alla base della chain o dei suoi smart contract, così da poter comunicare con altre chain supportate senza problemi. Tutto in cambio di una piccola fee.
Chainlink – CCIP
Il cross-chain Interoperability protocol sviluppato da Chainlink consente di far comunicare due chain sfruttando il suo network di oracoli (DON – Decentralized Oracle Network). Mediante esso, prende vita uno scambio di informazioni a basso costo, latenza ridotta ed elevata sicurezza, tutto attraverso gli smart contract sviluppati da questo framework.
I vari protocolli che hanno cominciato a consentire lo scambio cross-chain tramite questa soluzione sono tantissimi, ecco una lista per i più curiosi. Qui invece troverai una dashboard per monitorare le fee.
Tra i principali utilizzatori abbiamo la stablecoin USDC di Circle, che utilizza questo metodo per trasferire la coin sulle reti supportate. Troviamo anche stETH di Lido, che impiega questo metodo per potersi muovere liberamente sulle chain EVM compatibili.
Se volete avere una visione chiara di come funziona Chainlink e di quello che consente di fare, ecco un articolo immediato scritto da Gabri, un video fatto da Luke (qui sotto), e un articolo approfondito scritto da Matte.
LayerZero Protocol - Omnichain Communication
Layer zero, che non è una delle soluzione viste in precedenza perché non ha una sua blockchain né una serie di catene sviluppate sopra di sé, utilizza l’omni-chain communication per permettere comunicazioni cross-chain.
Attraverso questa tecnologia è possibile far comunicare diverse blockchain sfruttando una soluzione ibrida che impiega:
- Layer zero endpoint: gli smart contract di Layerzero, creati su tutte le chain integrate;
- Relayer: la dapp che fa da “check” e che sfrutta il protocollo alla base per permettere funzioni cross-chain;
- Oracoli: dei propri oracoli o delle soluzioni esterne come Chainlink, Band o Pyth per avere la condivisione di dati off-chain.
È importante notare che i relayer e gli oracoli devono essere indipendenti gli uni dagli altri.
La soluzione consente quindi agli sviluppatori di creare dapp e token “omni-chain”, che vivono quindi in maniera nativa su più chain in parallelo ottenendo:
- Scambio di asset cross-chain (DEX);
- Strategie di farm cross-chain (Yield farm);
- Lending cross-chain (money market).
Sono gia state integrate diverse app sfruttando questa tecnologia come TraderJoe, Radiant capital, Stargate, Maverik e altre ancora.
Axelar - Universal Overlaying Network
Axelar è una blockchain che, utilizzando l’IBC e tendermint di Cosmos, funge da bridge-chain all’interno e all’esterno del mondo Cosmos. È compatibile con tantissime chain EVM, permettendo una rapida comunicazione cross-chain.
Axelar è una chain DPoS che utilizza la sua coin $AXL per mettere in sicurezza il network, nonché come gas fee.
Sopra questa chain sono stati costruiti anche degli applicativi che possono rendere il trasferimento cross-chain alla portata di tutti. Squid Router ne è un esempio.
Oltre che poter partecipare alla governance del protocollo, i proprietari del token $AXL raccolgono parte delle fee generate sotto forma di revenue.
Il protocollo consente una comunicazione cross-chain tramite l’integrazione di diverse applicazioni con il suo Stack verso soluzioni L1 che fungono da porte d’ingresso (gateway).
Esso va poi a verificare queste informazioni all’interno della propria chain, così da assicurare l’immutabilità di queste ultime.
Axelar funziona principalmente grazie a due protocolli diversi:
- Cross Chain gateway protocol (CGP), che consente a due catene di poter dialogare fra loro anche se utilizzano dei linguaggi di programmazione diversi. Inoltre, permette ad Axelar di essere permissionless, ossia che qualsiasi sviluppatore può integrare la propria chain.
- Cross Chain Transfer Protocol (CTP), che permettono agli SC che supportano il suo stack di fare richieste cross-chain consentendo il trasferimento di coin, token e NFT.
Per approfondire, ecco una lista di chain supportate da Axelar. Mentre, di seguito, ecco un’immagine delle chain IBC supportate da Axelar (Maps of zones).
Wormhole - Messaging Protocol
Wormhole è un protocollo decentralizzato di messaggistica universale per blockchain. Non si tratta quindi di una soluzione che si appoggia a oracoli o relayer, né di una che ha alla sua base una blockchain.
Viene invece creato un layer di consenso condiviso chiamato “Wormhole core Layer”. Esso funziona sviluppando sopra ogni chain supportata un proprio contratto chiamato “Core contract”, che ha la funzione di ricevere e inviare informazioni all’interno della chain su cui è sviluppato e di poter comunicare liberamente con gli altri core contract.
Questi messaggi tra core contract sono poi controllati dal “Guardian network”, una rete composta da 19 nodi che hanno la responsabilità di approvare o rifiutare lo scambio di informazioni. Un messaggio viene reputato corretto quando almeno 2/3 dei nodi lo approvano.
Come applicativo bridge per rendere il suo servizio alla portata di tutti è stato sviluppato Portal. Purtroppo, a febbraio 2023 fu vittima di un hack. Tuttavia, la causa non era nella soluzione di comunicazione di Wormhole, ma in una vulnerabilità (poi risolta) di alcuni smart contract sviluppati su Solana.
Nelle ultime settimane, Wormhole ha rilasciato anche una nuova funzionalità chiamata NTT (Native token Transfers) che somiglia molto all’concetto di omni-chain token creato da Layer zero. Questo non è altro che un framework open source, che consente il trasferimento di token su più chain, mantenendo invariate le proprietà alla base di quest’ultimo.
Per completare l’opera, ecco una lista delle chain supportate da Wormhole.
Celer - Inter-chain Messaging (IM)
Questa soluzione utilizza un approccio diverso rispetto a quelle viste in precedenza.
Celer cerca infatti di non andare a costruire copie isolate di smart contract, ma bensì dapp “inter-chain-native”. In questo modo, si possono utilizzare in maniera più efficiente le risorse necessarie allo sviluppo di contratti e della liquidità, creando una logica di applicazione e di funzionamento più coerente.
Celer ha sviluppato un proprio framework chiamato “Celer IM” che permette alle applicazioni di non dover ricostruire da capo il proprio codice sorgente, ma di utilizzare delle soluzioni “plug’n’play”, così da poter effettuare operazioni cross-chain tramite un aggiornamento dei contratti.
Se volete approfondire nel dettaglio come Celer potrebbe offrire il suo servizio a diverse soluzioni di dapp come queste citate qua sotto, vi lascio un link informativo:
- DEX
- NFT Bridge
- Yield Aggregators
- Lending Protocols
- DAO Governance
- NFT Marketplace
- Metaverse Game
La soluzione applicativa di Celer per consentire il trasferimento di asset tra due chain è cBridge.
"cBridge supporta oltre 45 chain e 175 token."
Hyperlane - Modular Security (ISM)
Hyperlane è un protocollo di interoperabilità universale e permissionless, implementabile da altre blockchain attraverso il suo stack modulare. In questo modo sarà possibile integrare questa soluzione di cross-chain messaging con L1, rollup o app-chain.
L’integrazione avviene attraverso lo sviluppo di applicazioni interchain che sono poi copiate su tutte le chain integrate. Attraverso le Warp Routes si consente ai token ERC-20 ed ERC-721 di potersi muovere liberamente tra le catene che utilizzano il suo stack. In più, esistono altri due protocolli chiamati Interchain accounts e Interchain Queries, che consentono a degli account (wallet single-sig e multi-sig) di effettuare chiamate di visualizzazione e di esecuzione su altre chain.
Purtroppo questa soluzione si è sviluppata da poco, quindi le spiegazioni sul suo funzionamento e le reti supportate sono ancora ridotte. Però, sembra un’idea elegante e che potrebbe funzionare molto bene per tutto il mondo EVM.
Rimaniamo in attesa per comprendere se questo metodo di cross-chain messaging prenderà piede o meno.
Conclusioni
Come abbiamo potuto notare, la comunicazione tra le blockchain sta diventando sempre più evoluta e numerosi attori stanno utilizzando tecnologie diverse per offrire una vasta gamma di soluzioni. Questa sana competizione consente agli attori coinvolti non solo di dare il meglio, ma anche di mantenere un costo del servizio accettabile.
Tuttavia, è importante ricordare che la tecnologia blockchain è nata per offrire un’alternativa senza intermediari al sistema finanziario, con lo scopo di sottrarre il controllo di questo settore dalle mani di pochi e darlo nelle mani di tutti. Sebbene possa sorgere qualche dubbio riguardo questo futuro utopico, si spera che almeno i costi di utilizzo possano essere ridotti al minimo.
Ciò che si nota è che il numero di servizi necessari per garantire che questa tecnologia decentralizzata funzioni tanto bene quanto quella centralizzata sta aumentando sempre di più.
Storage di memoria, oracoli per avere dati off-chain e soluzioni di comunicazione cross-chain sono solo alcuni delle tecnologie necessarie al potenziamento di una blockchain.
E questo, in un certo senso, rimette in mezzo una serie di intermediari che vanno giustamente pagati. Speriamo però che il mantenimento di un’economia sana all’interno di questo nuovo mercato, senza cartelli e monopoli, potrebbe comunque consentire ai prezzi di questi servizi di rimanere bassi.
Sarà interessante vedere nel prossimo ciclo di mercato se queste soluzioni saranno all’altezza delle aspettative e della forte domanda che la comunicazione cross-chain avrà durante l’arrivo della mass adoption. Oppure se sarà necessario evolvere ancora una volta per non ripetere gli errori commessi dalle prime soluzioni di bridge durante la prima DeFi Summer.