Blockchain Development
Un pagamento Smart, che avviene tramite un contratto Hashed-Timelock (HTLC), è un trasferimento di Tokens in cui la condizione di pagamento è applicata dalla Blockchain. Si tratta di un concetto originato nell’ambito della comunità Bitcoin che viene applicato su Lightning Network e può essere utilizzato su Ethereum, e nelle chain Cosmos.
La condizione è un Hashlock.
Un Hashlock o il digest di una funzione di hash criptografico, come SHA-256, è un tipo di impedimento che limita la spesa di un output fino a quando un dato specifico non viene rivelato pubblicamente. Gli Hashlock hanno l’utile proprietà che, una volta che un Hashlock è reso pubblico, qualsiasi altro Hashlock protetto dalla stessa chiave, può anch’esso essere aperto. Questo permette di creare output multipli che sono tutti gravati dallo stesso Hashlock e che diventano tutti esguibili allo stesso tempo.
Il timelock è un impedimento temporale, come una cassaforte a tempo, dove lo Smart Contract stabilisce che il destinatario può richiedere i fondi presentando una pre-immagine valida del digest di hash prima di una determinata scadenza (timeout). Dopo il timeout, i fondi vengono automaticamente restituiti al mittente.
Gli HTLC vengono fatti rispettare dalla Blockchain, quindi le parti che effettuano le transazioni devono solo fidarsi che la Blockchain esegua correttamente il contratto, (non della controparte.) Si può anche prevedere che gli HTLC possano essere eseguiti su diverse Blockchain e addirittura senza la presenza di una Blockchain, con degli Agreements (HTLA).
Pagamenti Condizionali
Due parti che utilizzano un HTLA su una Blockchain che non supporta Hashlock e Timeout potrebbero procedere nel modo seguente: il mittente invia un messaggio al destinatario dicendogli che vuole “preparare” un trasferimento con un determinato Hashlock e Timeout. Le parti concordano che, se il destinatario presenti la pre-immagine dell’hash prima del Timeout, il trasferimento viene eseguito e il mittente deve il denaro al destinatario. I debiti vengono saldati tramite semplici trasferimenti sulla Blockchain.
Nel caso di un accordo post-finanziamento, il mittente può saldare il proprio debito con il destinatario per ogni pagamento, se la sua Blockchain è veloce e ha commissioni basse, oppure una volta che l’importo totale dovuto raggiunge il limite di credito delle parti. In questo caso, il destinatario deve affidarsi al mittente che paghi quanto da lui dovuto. Il rischio può essere ridotto limitando la quantità di denaro che il mittente può inviare prima del pagamento.
Per gli accordi pre-finanziati, il mittente trasferisce al destinatario l’importo di un singolo pagamento o un importo ingente e beneficia dell’equivalente di una linea di credito.
Il destinatario deduce quindi l’importo di ogni “trasferimento condizionale” eseguito dall’importo pre-finanziato. In questo caso, il mittente deve fidarsi che il destinatario non rubi l’importo pre-finanziato, ma questo rischio può ovviamente essere ridotto limitando l’importo pre-finanziato.
Gli HTLA funzionano quindi con Blockchain che supportano Hashlock e timelock (come HTLC) e con Blockchain che non li supportano.
In futuro questa metodologia potrebbe essere utilizzata nel modulo CommercioPay nella Blockchain di Commercio.network.