I Cross-chain Swap o Inter-Chain Exchange sono un tipo di scambio P2P che ci permette di trasformare in sicurezza le nostre criptovalute o altre, senza intermediari di alcun tipo.
Lcross-chain swap o atomic cross-chain swap, sono un tipo di scambio di valuta che avviene tra due diverse criptovalute che funzionano da sole blockchain. Cioè, è un meccanismo che consente agli utenti di scambiare diverse criptovalute direttamente tra due coppie.
Il modo più semplice per vedere questo tipo di modifica è modificare il file valute legali per tutta la vita. In tali scambi, due persone (una con l'euro e l'altra con i dollari) vogliono scambiare le loro valute l'una con l'altra a un certo tasso. Per questo, in fiat semplicemente conoscendo il tasso e facendo i conti, ciascuna delle parti può dare all'altro la quantità di monete equivalente al cambio. Ad esempio, € 100 equivarrebbe a circa $ 121,55, utilizzando un tasso di cambio di $ 1,2155 per euro. Basti pensare che questo cambiamento è stato diretto e senza alcun intermediario.
Tuttavia, in questo esempio stiamo parlando di cose tangibili, sono i soldi che sono nel mondo reale. La domanda qui è: come rendere possibile un tale scambio utilizzando criptovalute i cui sistemi funzionano su piattaforme diverse? Bene, la risposta a questa domanda sono gli scambi cross-chain e imparerai molto di più su di loro di seguito.
Inizio degli scambi incrociati
Il primo whitepaper che spiega ampiamente la natura degli swap cross-chain è "Atomic Cross-Chain Swap"di Maurice Herlihy del Dipartimento di Informatica alla Brown University Providence. Questo documento, presentato durante il Simposio ACM 2018, spiega chiaramente come funziona uno scambio atomico cross-chain, le sue possibilità e le principali sfide nella creazione di questo tipo di strumento.
Fondamentalmente ciò che fa uno scambio cross-chain è; prendere i soldi dalle parti e depositarli secondo un programma speciale che garantisce che l'operazione possa essere completata solo con l'approvazione di entrambe le parti. E nel caso in cui una parte agisca in modo malizioso, non può assumere il controllo dei nostri fondi.
Ora, la parte di programmazione ha sicuramente attirato la tua attenzione a questo punto. Ebbene, prima di tutto, ricorda che ogni transazione di criptovaluta avviene grazie al fatto che dette valute rispondono ad una programmazione o smart contract che consente di inviare, prendere e fornire il controllo di dette valute. In Bitcoin, ad esempio, chiamiamo questa programmazione possibile grazie a Bitcoin Script , E in Ethereum, grazie a Solidity. In generale, tutte le criptovalute utilizzano questo modello di gestione per le loro operazioni. A proposito, se vuoi sapere come iniziare a programmare contratti intelligenti per Ethereum, puoi controllare il nostro articolo Come iniziare a programmare in Solidity?
Ora, tenendo conto che le criptovalute sono valute programmabili, possiamo realizzare una programmazione speciale che ci permette di scambiarle cross-chain in totale sicurezza. Questo è ciò che rende possibile questo tipo di scambio, e ne parleremo di più nella prossima sezione.
La programmazione delle valute, la chiave per gli swap cross-chain
Adesso andiamo un po 'al lato pratico degli swap cross-chain e per questo prenderemo, ad esempio, Bitcoin. Come abbiamo già accennato, in Bitcoin abbiamo il linguaggio di programmazione Bitcoin Script. Questo linguaggio di scripting ci consente di inviare e ricevere monete in modo completamente programmato. In effetti, ogni transazione in Bitcoin è possibile solo utilizzando tale programmazione.
Ma c'è qualcosa di molto interessante con le capacità di questo linguaggio, più specificamente con le funzioni OP_CHECKSEQUENCESSEVERIFY (CSV) y OP_CHECKLOCKTIMEVERIFY(CLTV). Il primo è un codice operazione molto utile o OP_CODE, poiché ci consente di bloccare l'esecuzione di un determinato script o transazione fino a quando non vengono soddisfatte determinate condizioni. Grazie a questo, cose come Lightning Network sono possibili, così come scambi decentralizzati e scambi P2P sicuri. Questi ultimi due sono proprio quelli che entrano nel campo delle operazioni di scambio cross-chain. Il secondo codice, da parte sua, ci consente di inserire blocchi temporali sulle nostre transazioni, qualcosa che possiamo usare per creare meccanismi di sicurezza per i nostri scambi.
Pertanto, se utilizziamo un portafoglio in grado di darci la possibilità di eseguire operazioni di scambio cross-chain, possiamo utilizzare le funzioni OP_CHECKSEQUENCEVERIFY e OP_CHECKLOCKTIMEVERIFY ed eseguire operazioni di scambio cross-chain con persone che hanno la stessa capacità. E tutto, perché il nostro portafoglio programmerà le monete in modo che possano essere scambiate solo in una serie di condizioni che entrambe le parti hanno deciso in anticipo e senza alcun intermediario.
Naturalmente, questa è una spiegazione molto semplice di come tutto accade effettivamente, quindi di seguito spiegheremo come tutto ciò accade effettivamente.
Come funziona uno scambio cross-chain?
Supponiamo ora il seguente scenario. Da un lato, abbiamo Laura che vuole scambiare il suo Bitcoin (BTC) con Monero (XMR). E d'altra parte, abbiamo Juan che vuole scambiare il suo Monero con Bitcoin. Entrambe hanno bisogno di scambio ed entrambe le parti hanno la valuta di cui hanno bisogno.
Detto questo, Laura e Juan iniziano il processo di scambio avendo le loro borse addestrate per questo. Innanzitutto, Laura crea una transazione utilizzando il codice operativo OP_CHECKSEQUENCEVERIFY e blocca la quantità di Bitcoin da scambiare con Juan. Detto script può essere sbloccato solo una volta che Juan rispetta le condizioni di scambio, emette la sua transazione equivalente in Monero e conosce il segreto che protegge la transazione di Laura. Nel caso in cui qualcosa vada storto, la transazione di Laura ha una misura di sicurezza che le consentirebbe di recuperare i soldi dopo un po ', utilizzando OP_CHECKLOCKTIMEVERIFY per questo.
Da parte sua, Juan emette anche una transazione in Monero utilizzando la programmazione corrispondente. In questo caso, Monero non supporta OP_CHECKSEQUENCEVERIFY, ma utilizza invece un'operazione chiamata DLTC o contratto con blocco temporale a log discreto, un sistema che consente pagamenti condizionati in questa valuta. Questa operazione consente a Juan di emettere un pagamento in Monero, che sarà efficace solo se Laura soddisfa le condizioni. Come Laura, Juan ha incluso condizioni che gli consentiranno di recuperare i fondi nel caso in cui qualcosa vada storto.
A questo punto, entrambe le parti hanno emesso i pagamenti, ma nessuno ha i soldi. A questo punto, è il momento di verificare le condizioni di sblocco, che consentiranno a Laura e Juan di prelevare efficacemente i soldi dallo scambio. Così, sia Laura che Juan rivelano i segreti che proteggono le loro transazioni. È quando entrambi conoscete questi segreti, quando potete usarli per sbloccare lo script che contiene i pagamenti. Nel caso in cui una delle parti abbia agito in modo doloso, una delle parti può utilizzare misure di sicurezza per le proprie transazioni.
Queste misure di sicurezza sono vincoli temporali e la loro funzione è garantire che i fondi siano inaccessibili a entrambe le parti per un periodo di tempo determinato e prudente. Quindi, se dopo un po 'una delle parti non rispetta le condizioni, l'altra può semplicemente ritirare il proprio denaro dallo scambio e riaverlo, rimanendo come all'inizio.
Swap cross-chain con altre criptovalute
L'esempio che abbiamo fornito qui lo abbiamo fatto con Bitcoin e Monero. E, sebbene sia un esempio fittizio, è vicino alla realtà di questo sistema. In effetti, il team di Monero sta attualmente lavorando a un protocollo cross-chain per consentire agli utenti di Bitcoin di convertire i loro BTC in Monero utilizzando questo approccio.
Ovviamente questo non è limitato solo alle criptovalute come Bitcoin o Monero, tutte le criptovalute hanno questa possibilità, purché soddisfino questi due requisiti:
- Devono consentire il blocco a livello di script.
- Devono consentire il blocco a livello di tempo.
Entrambi i blocchi di esecuzione delle transazioni hanno lo scopo di aggiungere la sicurezza necessaria affinché questi scambi siano protetti. Così, ad esempio, Ethereum potrebbe implementare questo sistema per consentire il cross-chain con altre criptovalute, e lo stesso con il resto delle criptovalute. L'unico limite in tutto questo è quello che gli sviluppatori possono interporre non supportando determinate funzioni o equivalenti in blockchain e criptovaluta.
altre alternative
Altre alternative agli swap cross-chain sono Scambi atomici succinti (SAS), la cui operazione consentirebbe anche il cambio di valute cross-chain. Tuttavia, questo sistema è stato appena definito e al momento non esiste un modello operativo teorizzato completo e rivisto.
Pro e contro degli swap cross-chain
Innanzitutto, tra i pro degli swap cross-chain possiamo citare:
- Permette una nuova funzionalità decentralizzata, sicura e privata per scambiare le nostre valute con altre senza dipendere da scambi centralizzati o decentralizzati.
- Ci aiuta a generare una dinamica molto maggiore di utilizzo della valuta. Il cambio di valuta, ad esempio, ci consentirebbe di espandere il nostro uso delle valute in qualsiasi momento e senza grandi complicazioni. Quindi potremmo cambiare rapidamente il nostro BTC per EOS, nel caso in cui un'azienda o un'istituzione accetti solo EOS come forma di pagamento.
Per i suoi svantaggi possiamo menzionare:
- Se utilizziamo portafogli che hanno una scarsa implementazione di questo tipo di protocollo, rischiamo di perdere i nostri soldi. La sicurezza di questo sistema sta nella programmazione di condizioni molto chiare e sicure che ci proteggono in ogni momento.
- Possono essere un po 'complessi da usare, soprattutto per coloro che stanno iniziando nel mondo delle criptovalute.