閃電網(wǎng)絡(luò)中的潛交換是怎么回事
掃描二維碼
隨時(shí)隨地手機(jī)看文章
關(guān)于潛交換的討論已經(jīng)持續(xù)了有一段時(shí)間了,在許多產(chǎn)品和服務(wù)中也有了一些有趣的體現(xiàn)。但是,潛交換到底是什么?人們又是如何將其應(yīng)用在現(xiàn)實(shí)中的?通過這篇文章,我們將深入的探討這些問題。
要明白潛交換的原理,我們首先需要了解HTLC是什么。HTLC是一種散列的時(shí)間鎖定合同,事實(shí)上他們比聽上去更容易理解。更重要的一點(diǎn)是,了解HTLC不僅是了解潛交換的關(guān)鍵,而且也是了解閃電網(wǎng)絡(luò)本身的關(guān)鍵。
1. HTLC作為構(gòu)建基塊
假設(shè)你是一個(gè)比特幣的持有者,早些時(shí)候你將一些比特幣發(fā)送到了你朋友馬丁的地址上。要花費(fèi)你所發(fā)送的比特幣,馬丁需要證明他具有該地址相對(duì)應(yīng)的私鑰。這就是比特幣最基本的工作原理:馬丁證明他有鑰匙的所有權(quán),然后才可以花你發(fā)送給他的比特幣。
說這是最基本的原理是因?yàn)?,如果你想限制馬丁使用你所發(fā)送的比特幣,你其實(shí)可以增加更多的限制條件。比如馬丁必須在給定的時(shí)間段內(nèi)揭示某個(gè)秘密,否則時(shí)間到了之后,這些比特幣可能被另一個(gè)密鑰的擁有者所使用。
那這個(gè)秘密又是什么?這個(gè)秘密是馬丁或網(wǎng)絡(luò)中其他人創(chuàng)建的一條信息。如果是馬丁自己創(chuàng)建了這個(gè)秘密,他當(dāng)然會(huì)知道它是什么。但如果是別人創(chuàng)造的秘密,馬丁便需要想辦法找出這個(gè)秘密。無論如何,只要馬丁知道了這個(gè)秘密,他便可以使用比特幣,進(jìn)一步將比特幣發(fā)送到自己的錢包地址以防止超時(shí),我們稱此動(dòng)作為資金獲取。
這整個(gè)流程簡(jiǎn)而言之就是一個(gè)HTLC:它的本質(zhì)是一個(gè)合同,在某個(gè)交易中,其要求收款人在一定時(shí)間內(nèi)證明自己知道特定的秘密后才能花錢。
事實(shí)證明,添加這個(gè)條件后將實(shí)現(xiàn)一個(gè)非常有趣且實(shí)用的功能:鏈接付款功能。這可能與鏈上交易無關(guān),因?yàn)樵阪溕辖灰字?,人們可以直接向最終收款人付款,但是在閃電網(wǎng)絡(luò)中這非常有用,因?yàn)樵陂W電網(wǎng)絡(luò)中如果直接向所有人付款會(huì)使得效率非常低下。
在諸如閃電網(wǎng)絡(luò)之類的路由網(wǎng)絡(luò)環(huán)境中更容易理解HTLC的原理和目的,讓我們先來看一個(gè)脫鏈支付的示例??粗罢?qǐng)記住,無論交易發(fā)生在鏈上還是鏈下,HTLC其實(shí)都可以起到相應(yīng)的作用,它們甚至可以在其他區(qū)塊鏈(例如萊特幣)中工作。
2. 閃電網(wǎng)絡(luò)中的HTLC
假設(shè)你現(xiàn)在想向Sandra支付1個(gè)BTC,但你和她之間卻沒有付款通道。而托馬斯與你們兩個(gè)都有付款通道,于是你們便可以通過托馬斯來實(shí)現(xiàn)這筆交易。在沒有HTLC的情況下,這個(gè)交易過程中可能會(huì)出現(xiàn)什么問題?取決于誰先付款作為前提,可能會(huì)出現(xiàn)以下兩個(gè)問題:
如果你先付錢給托馬斯,并相信他會(huì)付錢給桑德拉,那么很有可能托馬斯會(huì)攜款而逃。
如果托馬斯先付錢給桑德拉,并相信你之后會(huì)再付給他,那么你就可以讓托馬斯為你支付費(fèi)用,然后永遠(yuǎn)不付這筆錢。
如果使用HTLC,Sandra便可以創(chuàng)建只有她自己知道的秘密,你則可以安全地將比特幣發(fā)送給Thomas并添加一個(gè)限制條件,比如他必須在一定時(shí)間內(nèi)揭示秘密,否則你便可以使用比特幣。而Sandra會(huì)給你看她閃電網(wǎng)絡(luò)的憑證,上面的二維碼會(huì)提示你相關(guān)的信息。
由于HTLC的特性,你將知道Thomas揭示的是否是Sandra所創(chuàng)建的秘密,即使你事先并不知道這個(gè)秘密是什么?,F(xiàn)在,Thomas可以向Sandra發(fā)送一個(gè)比特幣,并且包含相同的條款:如果要花費(fèi)它,她需要在一段時(shí)間內(nèi)揭示秘密。而已經(jīng)知道秘密的Sandra可以立即使用這筆錢。
在獲取資金的那一刻,Sandra揭示了秘密,于是Thomas也可以使用你發(fā)送給他的比特幣了。最終的結(jié)果是在彼此不信任的情況下,你通過Thomas成功向Sandra支付了比特幣?,F(xiàn)在,你和Thomas都知道了Sandra創(chuàng)造的秘密,你們都可以將其用作付款證明,因?yàn)镾andra揭示了這個(gè)秘密用來獲取她的款項(xiàng)。值得注意的是,如果Sandra拒絕或者無法揭示秘密,超時(shí)這個(gè)限制條件非常關(guān)鍵,其賦予了交易回滾的可能性。
3. 潛交換中的HTLC
我們一般稱普通的比特幣交易為鏈上交易, 閃電網(wǎng)絡(luò)通道建立后,所有交易都是鏈下交易, 也可以理解為閃電支付就是鏈下交易,而HTLC可以同時(shí)在鏈上和鏈下交易中實(shí)現(xiàn)。實(shí)際上,它們可以用于鏈接鏈上付款和鏈下收款的交易,反之亦然。這便是潛交換。
假設(shè)你想在閃電網(wǎng)絡(luò)中實(shí)現(xiàn)一筆交易,但又怕麻煩不想自己管理。潛交換允許你通過中介使用鏈上的比特幣來支付閃電憑證,這個(gè)過程是如何實(shí)現(xiàn)的?閃電網(wǎng)絡(luò)中的商人會(huì)生成一個(gè)二維碼,用來提示你需要向潛交換提供者獲取的秘密,只有揭示了這個(gè)秘密,你才能使用資金。完成這個(gè)步驟后你便可以安全的將比特幣發(fā)給服務(wù)提供商,形成一個(gè)鏈上的HTLC。服務(wù)提供商由于不知道秘密,所以無法立即使用你發(fā)給他們的比特幣。相反,他會(huì)將比特幣轉(zhuǎn)移到閃電網(wǎng)絡(luò)商家那里,并加上一條條款,要求閃電網(wǎng)絡(luò)商家必須披露相應(yīng)的秘密才可以獲取資金。
閃電網(wǎng)絡(luò)商家已經(jīng)知道了這個(gè)秘密,但要想獲取這筆錢,他必須揭露這個(gè)秘密。在這個(gè)過程中,交換服務(wù)提供商會(huì)了解到這個(gè)秘密,并獲取你支付給他們的錢。交換服務(wù)提供商和商家都可以收取相應(yīng)的錢,但是有一個(gè)區(qū)別:交換服務(wù)提供商收到的是鏈上的錢,而商家收到的是鏈下的錢。
4. 潛交換有什么用?
潛交換可能是通過閃電網(wǎng)絡(luò)進(jìn)行付款的最簡(jiǎn)便方法了。雖然它仍舊需要支付鏈上費(fèi)用,但付款流程類似于一個(gè)鏈上支付的過程,并且付款可以是即時(shí)的(取決于實(shí)現(xiàn)方式)。如果用戶需要將部分資金從鏈上轉(zhuǎn)移到鏈下(或者相反),那么潛交換將會(huì)非常有用。例如,在通過閃電網(wǎng)絡(luò)成功進(jìn)行了一周的運(yùn)作后,商家可能需要獲取鏈上的比特幣才能向提供商付款。而回滾機(jī)制則提供了一種反向潛交換的方法,同時(shí)可以重新平衡通道以獲取容量。
最后,考慮到其他代幣也可以進(jìn)行潛互換,例如使用Litecoin(費(fèi)用較低且確認(rèn)時(shí)間較短)和商家完成閃電付款或?yàn)槟那捞峁└嗟牧鲃?dòng)性。
潛交換是Alex Bosworth和Olaoluwa Osuntokun提出的想法,并隨著時(shí)間的推移越來越受到人們的歡迎。盡管潛交換不是完美的,但它現(xiàn)存的一些應(yīng)用程序可以幫助整個(gè)網(wǎng)絡(luò)在初期發(fā)展的過程中解決兩個(gè)主要問題:流動(dòng)性和采用率。