I Canali di Pagamento o Canali di Pagamento, sono una tecnologia progettata per consentire pagamenti istantanei senza custodia tra due o più persone che utilizzano una criptovaluta. Questo per offrire una migliore esperienza di pagamento con un'eccellente sicurezza e commissioni molto basse.
LI canali di pagamento o Canali di pagamento, sono un mezzo progettato in modo che gli utenti di criptovalute può eseguire transazioni istantanee ea basso costo senza impatti negativi sul blockchain.
Questa esigenza è motivata dai limiti delle criptovalute come Bitcoine la maggior parte delle criptovalute nel sistema, in termini di scalabilità nelle transazioni al secondo e spazio totale della blockchain. Così, un canale di pagamento consente a molte persone di effettuare un gran numero di transazioni in background, ma solo due transazioni vengono conteggiate sulla blockchain principale.
Ovviamente, quando si apre un canale di pagamento (o canale di pagamento in inglese), i nodi devono bloccare le valute degli utenti in modo che non possano essere utilizzate al di fuori del canale durante la vita utile del canale. Ciò ha un costo enorme che rende poco attraente mantenere aperti i canali di pagamento. Ma per questo motivo, i canali di pagamento sono ancora un modo molto efficace per fornire una grande scalabilità alle criptovalute.
A questo punto ti chiederai sicuramente, come funzionano? Sono al sicuro? Quali sistemi esistono oggi? Risponderemo a tutte queste domande di seguito in questo nuovo articolo di Bit2Me Academy.
Origine dei canali di pagamento in criptovalute
L'idea dei canali di pagamento in criptovaluta non è nuova. Dall'inizio dello sviluppo della tecnologia, questa idea era lì. Satoshi Nakamoto Lo ha presentato come una possibilità tecnologica applicabile a Bitcoin. Questo supportato da CODICI_OP de Bitcoin Script che sono stati utilizzati per sostituire le transazioni e controllare la loro convalida. Parliamo di OP_CODES nSequence y nLockTime, che ha consentito a due o più parti di aggiornare ripetutamente lo stato di una transazione non confermata prima che fosse confermata.
Il sistema rudimentale di Nakamoto consentirebbe di creare transazioni che potrebbero contenere più voci. Ciascuna di queste voci sarebbe firmata e verificata dall'utente e dal detentore dei fondi descritti in detta voce. Così ad ogni nuova firma, il valore di nSequence cambia ad un valore più alto, fino a quando la catena di firme termina con la conferma della transazione in un blocco. Allo stesso tempo, la transazione contiene una contabilità interna con cui gli utenti concordano.
Pertanto, una singola transazione può significare diverse transazioni diverse per utenti diversi. Il sistema consente inoltre la possibilità che, nel caso in cui i risultati non siano concordati, l'utente in questione eviti la firma e quindi esca dal sistema. In tal caso, i fondi torneranno sotto il tuo controllo e potrai procedere senza problemi.
D'altra parte, Nakamoto ha spiegato che nLockTime può essere utilizzato nel trading ad alta frequenza tra un insieme di parti. Per ottenere ciò, nLockTime consentirebbe di continuare ad aggiornare una determinata transazione in formato MemPool, se c'è un accordo unanime tra le parti. In questo modo, la transazione verrebbe aggiornata ogni volta che una delle parti vuole partecipare alla transazione (che funge da canale di pagamento). Quando le parti accettano di chiudere il canale, arrivano le firme di tutti i partecipanti e impostano il nLockTime finale per la transazione e attendono che venga confermato. Con la sua conferma il canale viene chiuso e tutte le operazioni descritte dagli ingressi e dalle uscite vengono eseguite nella stessa transazione.
Tuttavia, entrambe le opzioni non sono sicure. I valori nSequence e nLockTime potrebbero essere manipolati da un minatore dannoso o anche da un nodo dannoso. Tuttavia, l'idea di base dei canali di pagamento era emersa e dietro di essa sarebbero iniziate ricerche approfondite per sviluppare una soluzione più sicura per tutti.
Inizia lo sviluppo dei primi canali di pagamento
Le idee di Satoshi Nakamoto hanno rapidamente attirato l'attenzione degli sviluppatori della community, che presto si sono trovati con un problema complesso da risolvere. Come far partecipare più persone a un sistema di pagamento istantaneo sicuro, decentralizzato, basato sul protocollo Bitcoin senza alterarlo inutilmente? Ideare una funzionalità come questa è una questione complicata, ma è più complicato programmarla, e se aggiungiamo che tale programmazione è compatibile senza rompere nulla di quanto sopra, è estremamente complessa. Anche con questo, sono emerse rapidamente due modalità di esecuzione dei canali di pagamento e le spieghiamo di seguito.
Tipi di canali di pagamento
Unidirezionale
Il sistema di canali di pagamento più semplice è il sistema di canali a senso unico. In questo sistema, l'utente A può effettuare un pagamento B. Un nuovo utente C può unirsi al canale ed effettuare un pagamento a D. E quindi, la catena di pagamenti nel canale può continuare ad espandersi.
Tali pagamenti sono controllati e garantiti da transazioni del tipo multi-firmaPertanto, per la loro esecuzione, le parti coinvolte devono firmare secondo i dati riportati negli input e output dell'operazione. Man mano che il canale cresce, crescono anche le aziende del sistema e tutti devono firmare affinché i fondi vengano sbloccati.
Inoltre, viene applicato un nLockTime di 50 blocchi, per impedire agli utenti di utilizzare il denaro immediatamente, ma al contrario, il denaro sarà disponibile solo dopo che 50 blocchi saranno stati confermati. A questo punto, puoi vedere nLockTime come un controllo valido solo dopo una certa data, prima di quella data è solo un pezzo di carta senza valore. Il nLockTime può essere regolato in qualsiasi modo le parti desiderano.
In questo modo, tutti i partecipanti possono essere sicuri che il pagamento è stato effettuato, ma riceveranno il denaro solo dopo che saranno soddisfatte le condizioni aggiuntive della negoziazione di quel pagamento. Prendiamo, ad esempio, che A ha pagato B per riparare un computer e B ha circa 500 minuti per riparare detto computer. In caso contrario, A può comunque intervenire nella transazione, modificarne il valore e riavere i suoi soldi.
Bidirezionale
I canali di pagamento a due vie sono in realtà due canali unidirezionali che lavorano insieme. Grazie a questo, A e B possono inviare pagamenti in modo bidirezionale, senza la necessità di chiudere un canale precedente e aprire un altro nuovo canale per le operazioni di pagamento. L'operazione di base viene mantenuta, con l'eccezione che i canali bidirezionali sono perfetti per eseguire operazioni più dinamiche tra due utenti o entità.
Perché sono stati creati canali di pagamento?
In Bitcoin le transazioni possono essere confermate solo se incluse in un blocco all'interno della blockchain. Un processo che avviene ogni 10 minuti circa e in cui può entrare solo 1 MB di informazioni. Ciò limita notevolmente il numero di transazioni che possono essere confermate in ogni blocco, con circa 2200 transazioni confermate ogni 10 minuti.
Ma cosa succede se imbrogliamo? Cosa succede se includiamo molti input e output in una transazione e le parti coinvolte in quella transazione firmano la transazione per dare la loro approvazione? Con questo, la transazione viene finalmente inviata alla rete e convalidata, e quindi una transazione sarebbe l'equivalente di diverse transazioni individuali. Una trappola molto sottile vera, ma anche molto utile ed è proprio quello che fa un canale di pagamento. Almeno nelle sue caratteristiche più elementari.
In questo modo, i canali di pagamento si trasformano in una soluzione di secondo livello che consente agli utenti di effettuare transazioni senza dover dipendere direttamente dal blocco successivo affinché una transazione sia considerata completa. Quindi, possiamo effettuare transazioni istantanee che verranno poi registrate all'unanimità sulla blockchain principale, quando il canale di pagamento sarà chiuso. Non si perde nulla, le monete non vengono create da zero, alla fine finisce tutto nella stessa contabilità, ei numeri si sommano.
Ecco perché sono stati creati i canali di pagamento o canali di pagamento. È uno strumento perfetto per rendere più flessibile il pagamento utilizzando le criptovalute, e tutto questo, senza alterare i protocolli attuali.
Vantaggi e svantaggi dei canali di pagamento
Vantaggi
- Offrono la possibilità di effettuare pagamenti istantaneamente tra le parti che partecipano al canale di pagamento. Ma ti consente anche di programmare i pagamenti e renderli più sicuri a determinate condizioni.
- Puoi effettuare micropagamenti, persino inviare alcuni satoshi.
- Consente di abbassare le commissioni di transazione, grazie al fatto che il pagamento della quota di conferma on-chain viene effettuato tra tutti i partecipanti al canale.
- Consente alle aziende di ricevere pagamenti in criptovalute lasciando indietro i tempi di conferma on-chain, ma senza sacrificare la sicurezza.
- Con le attuali specifiche del canale di pagamento è molto difficile (se non impossibile) rubare fondi. Questo perché le implementazioni del canale di pagamento utilizzano lo schema di indirizzi multi-firma, in cui le azioni vengono eseguite solo se portano le firme di tutti i partecipanti.
Svantaggi
- C'è un limite al numero di transazioni che possiamo fare con un canale di pagamento.
- I fondi da spendere su un canale di pagamento devono essere versati in anticipo. Ciò significa che se il canale esaurisce i soldi, sarà necessario aprirne uno nuovo per effettuare più operazioni.
- Ci sono ancora alcuni problemi di sicurezza riguardanti i canali di pagamento. Casi come vulnerabilità nei codici di client e nodi per questo tipo di sistema. O anche, vulnerabilità della struttura operativa stessa, come nel caso di Attacco di dilatazione temporale. Questi sono alcuni dei problemi da risolvere prima della massificazione di questi sistemi.
Quanto sai, Cryptonuta?
I canali di pagamento sono una soluzione insicura per il ridimensionamento delle criptovalute?FALSO!
C'è un mito in cui cadono molti utenti di criptovalute come Bitcoin, e cioè, molti dicono che i canali di pagamento come Lightning Network sono insicuri. La realtà è che anche se la tecnologia è ancora nella sua fase di sviluppo, i canali di pagamento come LN sono molto sicuri. Questo è diverso da altre opzioni come quelle basate su protocolli di consenso ad alta velocità che a loro volta portano alla centralizzazione (come PoA o PoET).
Prime implementazioni dei canali di pagamento
Tuttavia, le implementazioni dei canali di pagamento si sono evolute negli ultimi anni e continuano a evolversi. Qui nomineremo alcune proposte e quali sono stati i loro risultati più importanti.
BitcoinJ e i suoi canali di pagamento
Gli sviluppatori Mike Hearn e Matt Corallo hanno aggiunto il supporto per i canali di pagamento in formato Bitcoin J, il 27 giugno 2013. Con l'implementazione, BitcoinJ è diventata la prima libreria esterna a Bitcoin Core in grado di supportare questo sistema in sicurezza. Bitcoin Core, poteva utilizzare un sistema di pagamento di questo tipo, ma come abbiamo accennato all'inizio di questa pagina, era insicuro perché i minatori oi nodi potevano manipolare questi canali utilizzando i mezzi esistenti (nLockTime e nSequence).
BIP-65, la nascita di CLTV
Bitcoin Core ha fatto una svolta nella capacità di creare canali di pagamento con l'attivazione OP_CHECKLOCKTIMEVERIFY o CLTV, un nuovo OP_CODE per Bitcoin.
Grazie a questo codice è possibile dimostrare che è impossibile spendere l'output di una transazione fino a un momento futuro. Ciò è possibile grazie al fatto che CLTV consente di implementare un test in grado di sapere se è stata creata una firma valida per una diversa transazione che spende un determinato output. Se questo caso viene rilevato, CLTV può invalidare la nuova transazione, evitando possibili schemi di doppia spesa.
In poche parole, il BIP-65 consente di creare un metodo di verifica della spesa che nLockTime non è in grado di gestire, consentendo la creazione di canali a due vie sicuri.
HTML
I HTML sono un altro sviluppo a favore dei canali di pagamento. Gli HTLC funzionano fondamentalmente nel routing dei pagamenti. Cioè, instradano i pagamenti in modo sicuro attraverso più canali di pagamento. In questo modo HTLC evita uno dei problemi dei canali di pagamento: il costo per l'apertura di nuovi canali di pagamento. In questo modo HTLC è in grado di utilizzare canali di pagamento sempre aperti e instradare i pagamenti di tutti tra questi pagamenti. Il risultato è un'enorme rete di canali di pagamento aperti quasi permanentemente, pronti a consentire pagamenti bidirezionali al loro interno.
Questa funzionalità ha reso HTLC parte integrante della progettazione di canali di pagamento più avanzati, come quelli utilizzati da Lightning Network.
Canali di pagamento su altri blockchain
Come sapete, Bitcoin non è l'unica blockchain di criptovaluta, e non è l'unica in cui è in grado di integrare i protocolli dei canali di pagamento. Criptovalute come Litecoin o EthereumSono anche in grado di utilizzare questo tipo di sistema. Quasi tutte le criptovalute con problemi di scalabilità hanno cercato un metodo per utilizzare i canali di pagamento per scalare. Il motivo è semplice: i canali di pagamento sono più facili da implementare rispetto a una riscrittura dei protocolli collaudati di quei blockchain.
Ad esempio in Litecoin possiamo usare oggi il Lightning Network, e in Ethereum possiamo usare il Raiden Network o Liquidity Network, sebbene quest'ultimo utilizzi uno schema di canale di pagamento diverso.
Come vedi, Blockchain non si ferma e l'innovazione attorno ad essa è incessante. I canali di pagamento sembrano essersi fermati e, nonostante siano nelle prime fasi, mirano a rimanere, soprattutto se vogliamo vedere le criptovalute in modo massiccio in tutto il mondo.