Fermata #71 - RGB: i colori di Bitcoin con Federico Tenga
Asset e token da emettere sulla tecnologia di Bitcoin: è ciò che consente di fare il protocollo RGB su cui sta lavorando, tra gli altri, Federico Tenga. Come funziona e quali sono i casi d'uso?
Si sente spesso dire che Bitcoin debba fare bene il mestiere del denaro e il resto possa essere lasciato al vasto mondo delle criptovalute. La verità però è che bitcoin - con la lettera “b” minuscola, cioè la valuta interna al network - interpreta ottimamente il ruolo del denaro, ma Bitcoin - con la lettera “B” maiuscola, dunque il protocollo - può essere utilizzato come base tecnologica per scopi diversi.
Uno di questi è l’emissione di token e asset digitali: l’attività è spesso accostata ad altre “blockchain”, una su tutte quella di Ethereum. Se la tecnologia alla base però è traballante, tutti i progetti che vi fanno affidamento non possono essere considerati stabili. Ecco che a una domanda di mercato, corrisponde un’offerta. RGB è un protocollo tecnologico costruito sopra a Bitcoin - potrebbe essere definito un second layer, come Lightning Network - pensato, tra le altre cose, anche per questo caso d’uso: l’emissione di token e asset digitali, ma su una tecnologia solida.
A spiegare a Bitcoin Train il funzionamento, i casi d’uso e i dettagli di RGB è Federico Tenga, già fondatore della piattaforma di pagamenti in bitcoin Chainside e oggi alla guida di un team in Bitfinex dedicato in particolare a tre obiettivi:
Sviluppo del protocollo RGB;
Elaborazione di librerie e tool per sviluppatori, come RGB Lib;
Sviluppo di quello che oggi è il primo e unico wallet compatibile con RGB, Iris Wallet, la cui versione di test è disponibile sul Play Store per Android.
Il testo che segue è un riassunto delle parti più significative dell’intervista pubblicata su YouTube
Smart contract è forse una delle buzzword più utilizzate negli ultimi anni, spesso associata a Ethereum e ad altre “blockchain”, molto meno a Bitcoin. In teoria però RGB è proprio un protocollo che permette di elaborare smart contract più complessi su Bitcoin. Quindi per capire bene il funzionamento e le implicazioni di RGB partirei dalle basi: come definiresti tu l’espressione “smart contract”?
La definizione originale di smart contract in realtà è molto vecchia, risale a un epoca precedente a Bitcoin: c’è un articolo del 1994 in cui Nick Szabo ipotizzava lo sviluppo di questi “contratti intelligenti” che venivano definiti come l’esecuzione automatica attraverso strumenti informatici dei termini di un contratto che rappresenta la volontà delle parti. Un esempio rudimentale di smart contract può essere la macchinetta automatica, dove io decido di inserire € 2 per ricevere la Coca Cola e lei automaticamente mi fornisce la lattina.
Oggi “smart contract” ha un significato molto ampio. La maggior parte delle persone intende lo smart contract come codice che viene eseguito su una blockchain con consenso globale.
Un codice che deve essere eseguito su tutti i nodi di tutti i partecipanti al network, giusto?
Sì, questa è già una definizione già molto più specifica e riguarda smart contract come quelli che vengono eseguiti su Ethereum, che hanno vantaggi e svantaggi ma non sono gli unici esistenti. In particolare l'idea da cui è nato RGB è quella di creare degli smart contract che invece di essere eseguiti a livello di consenso globale - ovvero dove tutti i nodi di una rete devono far girare il codice che ne definisce i termini - vengano eseguiti solo dalle parti che sono coinvolte nella transazione. Quindi nel modello che utilizza RGB - il modello cosidetto di validazione client side - ogni client, quindi ogni nodo, ogni software gestito dall’utente è interno alle logiche di validazione dei contratti. Quando noi due interagiamo, solo i nostri due wallet sono a conoscenza dei termini del contratto e sanno quindi verificare se sono stati raggiunti.
Quindi, per ricapitolare: eseguire uno smart contract on-chain - sul modello Ethereum - significa che tutti i nodi della rete devono validare ed eseguire lo stesso codice per verificarlo. Questo è un costo in termini di risorse perché più smart contract vengono implementati, più codice c'è da scrivere, più byte di dati vengono scritti e quindi sono necessari hardware performanti, dunque più costosi: un modello meno scalabile. Mentre nella validazione client side solo chi partecipa a un tipo di network specifico con un client compatibile deve validare il codice. Se uno smart contract coinvolge tre parti, deve essere validato e processato da quelle tre parti e non da tutto il resto della rete. Corretto?
Esatto. Il modello consente di guadagnare in scalabilità e anche in privacy, perché meno gente vede i termini del contratto, migliore è la privacy per le parti coinvolte. C’è però un compromesso: i tipi di smart contract che si possono fare con questo modello sono molto più limitati rispetto a quelli che funzionano proprio grazie al fatto che tutti possano vedere le transazioni. Per esempio, su Ethereum gli smart contract più popolari sono forse gli Automated Market Maker (Amm), cioè i dex (gli exchange decentralizzati) che permettono lo scambio automatico tra un token e l'altro. Quindi la scommessa di RGB è che scalabilità e privacy siano più importanti della flessibilità che offre Ethereum. A un certo punto se non hai la scalabilità poi tutto diventa centralizzato e quindi te ne fai poco della flessibilità.
Quindi cos’è RGB e come funziona?
RGB è nato per permettere di creare e trasferire token generici su Bitcoin. Come è stato ottenuto? Su RGB ci sono dei contratti - detti di issuance - che permettono di creare nuovi token e poi trasferirli tra gli utenti. Il contratto iniziale definisce tutti i parametri di token (nome, ticker, circolante, ritmo d’emissione, ecc…) e assegna i token emessi a qualcuno. Come fa? Assegnandoli a un UTXO on-chain1. In questo modo il detentore della chiave privata che controlla l'UTXO può dimostrare crittograficamente di essere il proprietario dei token. Quindi l’UTXO diventa questo contenitore che oltre a contenere dei bitcoin contiene anche dei token e spendendo quell’UTXO il proprietario spende anche i token contenuti. Quando i token vengono spesi, vengono assegnati all’UTXO del destinatario della transazione. L’unico modo che si ha per dimostrare di essere il legittimo proprietario di una data quantità di token - e anche il modo per evitare il double spending - è spendere l’UTXO a cui è associata.
RGB è costruito direttamente sopra la blockchain di Bitcoin. Se nella fase di issuance - quella di emissione dei token - non sono necessarie transazioni on chain, ogni volta che i token vengono spostati tramite una transazione RGB è necessaria anche una transazione on-chain.
Posto che a breve è prevista la compatibilità di RGB con Lightning Network - e questo in parte immagino risolva il problema - il fatto che sia necessaria una transazione on-chain per ogni transazione RGB potrebbe porre un problema di scalabilità nel lungo periodo?
RGB offre anche la possibilità di fare il batching (raggruppamento, nda) delle transazioni. Un UTXO può contenere vari tipi di token e io posso voler mandare quei token a “n” persone. Esempio più semplice: ho un token che voglio pagare in contemporanea a 20 persone diverse. Non devo fare 20 transazioni bitcoin - una per ogni trasferimento RGB - posso semplicemente fare 20 transazioni RGB, tutti quanti derivanti dalla stessa UTXO, e quindi la transazione Bitcoin che devo fare è solo una: questa transazione Bitcoin, che spende l’UTXO di riferimento, avrà dentro il commitment ai 20 trasferimenti RGB.
Come commitment si intende un hash che nasconde i metadati delle transazioni RGB?
Per farla semplice sì, c'è un hash che ha dentro tutti i dati delle transazioni RGB. Ora, chiaramente gli utenti normali raramente pagano più persone alla volta. A farlo, solitamente, sono i service provider. Per esempio un exchange che deve operare i prelievi per “n” utenti, con una singola transazione Bitcoin può fare il prelievo per centinaia di clienti potenzialmente.
Si è parlato tanto di NFT su Ethereum durante l’ultimo mercato rialzista ma sappiamo che il concetto di NFT nasce su Bitcoin. Qual è la storia che ha portato alla necessità di sviluppare una tecnologia che permetta determinati casi d’uso?
Sì, i primi token sono nati proprio su Bitcoin. Già nel 2013-2014 c'erano protocolli come Counterparty o Omni Layer che permettevano già di emettere token su Bitcoin. Perché è stato necessario RGB? Perché questi protocolli sono un po’ “vecchiotti”: sono stati sviluppati in un'epoca in cui non c'era nessuna attenzione per la scalabilità, perché all'epoca nella blockchain di Bitcoin i blocchi erano mezzi vuoti. C'era poi meno attenzione per la privacy perché si pensava che Bitcoin fosse anonimo. Quindi RGB è nato con l’obiettivo di offrire un'alternativa che fosse diversa rispetto ai protocolli che hanno poi avuto successo come Ethereum, Solana, Tron, eccetera. Essere costruito su Bitcoin significa avere più sicurezza, decentralizzazione, implica il non doversi fidare di sistemi molto più centralizzati. Allo stesso tempo significa utilizzare un protocollo più moderno che risponde maggiormente alle esigenze degli utenti di oggi rispetto a cose progettate 10 anni fa.
Quindi RGB permette tokenizzazione ed emissione di asset su Bitcoin: quali sono i casi d’uso principali?
Il caso d’uso più diffuso nel mondo della tokenizzazione è quello delle stablecoin: hanno un livello di adozione reale. Soprattutto in Paesi dove l'infrastruttura finanziaria non è delle migliori le stablecoin sono un'ottima alternativa alle valute locali. Sono molto comode anche per i trader che operano nel settore per spostare liquidità tra diverse piattaforme senza dover utilizzare l'infrastruttura bancaria.
C’è molto interesse per i token nel mondo del gaming. Si parla poi ti tokenizzazione dei crediti, come per esempio i voucher.
Passiamo alla compatibilità di RGB con Lightning Network, prevista entro metà 2023. Una transazione RGB con Lightning - inviando quindi dei token da una parte A a una parte B - può essere fatta tramite i canali di pagamento e dunque senza passare on-chain?
Sì, però è necessario che quei canali di pagamento abbiano tutti liquidità denominata in quello specifico token. Questo per via della natura del Lightning Network, che si basa sul fatto che i bitcoin siano fungibili tra di loro. Quindi per fare una transazione Lightning attraverso più canali serve che tutti i canali coinvolti abbiano liquidità nello stesso token che stanno facendo transitare. Servirà liquidità per ogni singolo token. Non ci saranno canali RGB, ci saranno canali specifici per ogni token: per cui ogni token avrà il suo livello di liquidità e il suo Lightning Network.
Non è scontato avere un network sufficientemente liquido per ogni token…
Sì, non è banale. Realisticamente solo token molto popolari potranno avere una liquidità tale da avere il proprio Lightning Network. Io mi aspetto che per esempio le stablecoin potranno raggiungere l’obiettivo di avere un livello di liquidità paragonabile a quello che ha oggi bitcoin.
I token più di nicchia come quelli di un videogioco non troppo famoso difficilmente avranno un Lightning Network molto ampio. Probabilmente si può comunque ipotizzare un modello con un network molto centralizzato, dove ci sarà un grande nodo a cui tutti si collegheranno e quindi in questo modo riusciranno a farsi transazioni Lightning. Quel nodo però potrà potenzialmente fare operazioni di censura e potrà anche violare la privacy, è sempre una questione di trade-off. Si potranno avere alcuni dei vantaggi della scalabilità di Lightning Network sacrificando un po’ di resistenza alla censura e di privacy per il fatto che ci si troverà su un Lightning Network molto più centralizzato.
RGB è criticata da alcuni ambienti massimalisti per il rischio percepito di portare progetti truffa o dalla dubbia utilità su Bitcoin. Come rispondi a questa critica? C’è un rischio di potenziale narrativa contraria a Bitcoin se la sua tecnologia verrà sfruttata per eventuali truffe?
Non mi sembra utile diventare schiavi della narrativa. Bitcoin ancora oggi viene associato a fenomeni di criminalità, dark web, truffe. Il tema della narrativa non mi convince perché se la seguissimo dovremmo trasformare Bitcoin in Proof-of-Stake per la credenza relativa all’impatto ambientale.
Un’altra critica che spesso viene fatta a RGB è la seguente: “La maggior parte degli asset sono centralizzati, che bisogno c’è di metterli su una blockchain distribuita come quella di Bitcoin?” Io vedo la blockchain di Bitcoin come il layer base per tutti gli asset. Tu emetti gli asset sul posto più sicuro e più decentralizzato, che ti offre le migliori garanzie. Poi, se a livello di transazioni non hai sempre bisogno di avere tutte le garanzie di Bitcoin, se non vuoi pagare le commissioni di Bitcoin ogni volta, puoi spostare gli asset su layer che hanno altri trade-off, come il Lightning Network, le sidechain federate, qualunque cosa. Però l'emissione è la base e rimane sempre su fondamenta solide, di modo che avrai sempre l'opzione di tornare al layer base e usare la blockchain di Bitcoin per fare settlement di grosse transazioni. E’ vero che Tether è una società centralizzata ma se avessi 100 milioni di dollari in USDT (la stablecoin di Tether, nda) li vorresti tenere sulla blockchain di Tron o su quella di Bitcoin?
Alla conferenza Bitcoin 2022 di Miami è stato presentato Taro, progetto di Lightning Labs che ha raccolto una quantità significativa di fondi per andare avanti lo sviluppo. Se ne è parlato come una sorta di clone di RGB. Ci sono delle differenze o è davvero identico?
I principi di design sono gli stessi: in un certo senso è anche positivo che sia stato validato il design, che sia stato considerato vincente. E’ un progetto ancora molto work-in-progress, allo stato attuale la differenza principale sta nel modo in cui avvengono le transazioni. Mentre con RGB tu puoi mandare token a qualunque UTXO esistente, con Taro puoi mandare i token solo a output della stessa transazione bitcoin che sta spendendo quell’UTXO. Questo si traduce in minor privacy perché rimane il collegamento a livello del grafo delle transazioni bitcoin tra mittente e destinatario. Si perde inoltre la possibilità di fare il batching come descritto prima, perché di fatto per pagare “n” persone devi aggiungere “n” output alla transazione. Questo allo stato attuale, ma credo stiano ancora cambiando varie cose quindi Taro in futuro potrebbe divergere rispetto a RGB o addirittura convergere ulteriormente.
Perché il nome RGB?
Da quello che so è un omaggio a Colored Coin, cioè uno dei primi protocolli per fare token su Bitcoin. L’idea era quella di creare dei bitcoin colorati che rappresentassero qualcos'altro. Poi la gente ha provato anche a dare un significato all'acronimo, alcuni l’hanno chiamato Really Good for Bitcoin. Originariamente però era solo un riferimento a Colored Coin.
Bitcoin Train consiglia: BitBox02!
Per non delegare la responsabilità della custodia a terze parti, come gli exchange, è necessario proteggere autonomamente le proprie chiavi private e il modo più sicuro per farlo è offline. Per questo esistono i signing device: dispositivi privi di connessione Internet studiati appositamente per proteggere le chiavi private.
Il preferito di Bitcoin Train è BitBox02, prodotto da Shift Crypto. Il codice sorgente è completamente open-source e, a differenza degli altri principali signing device sul mercato, consente il backup e il ripristino della seed-phrase anche tramite una micro-SD. E’ disponibile sia nella versione Multi Coin che in quella Bitcoin-only (consigliata).
Potete provarlo acquistandolo da questo link. Per ulteriori informazioni potete rispondere a questa e-mail oppure scrivermi tramite i miei contatti.
***
Questo NON è un messaggio pubblicitario. BitBox02 è un prodotto che ho testato personalmente. Provatelo e fatemi sapere come vi trovate!
Online su YouTube la live di lunedì scorso con Massimo Musumeci
Sono tornati i video-approfondimenti live dedicati al tema della settimana di Bitcoin Train sul canale YouTube di Massimo Musumeci, fisico, ricercatore Bitcoin ed esperto di privacy e sicurezza informatica. Questa settimana si è parlato delle CBDC e delle loro possibili implicazioni sulle modalità di emissione della moneta fiat. Appuntamento a lunedì 16 gennaio!