以下是對(duì)sparkswap即時(shí)結(jié)算技術(shù)的深入研究,這是一種交易加密貨幣而不在交易所存放資產(chǎn)的新方式。這是一篇技術(shù)文章,建議讀者熟悉閃電網(wǎng)絡(luò)
以下是對(duì)sparkswap即時(shí)結(jié)算技術(shù)的深入研究,這是一種交易加密貨幣而不在交易所存放資產(chǎn)的新方式。這是一篇技術(shù)文章,建議讀者熟悉閃電網(wǎng)絡(luò)和原子跨鏈交換技術(shù)原理。
無信任的原子跨鏈交換被認(rèn)為是托管加密貨幣交換問題的潛在解決方案,但在很大程度上未能實(shí)現(xiàn)大量用戶采用。我認(rèn)為,失敗的一個(gè)重要原因是普通金額交易的最終速度慢得讓人無法接受。使用2層解決方案的原子交換(如閃電網(wǎng)絡(luò)(和更普遍的支付通道網(wǎng)絡(luò))有可能顯著提高這些交換的速度,但到目前為止,主要是針對(duì)具體實(shí)施的演示。
跨網(wǎng)絡(luò)預(yù)映像檢索是支付通道網(wǎng)絡(luò)上無信任原子交換的一種新機(jī)制,增加潛在的貨幣支持并簡(jiǎn)化實(shí)施,同時(shí)保持鏈?zhǔn)浇粨Q的原子和無信任屬性。
托管交易所重新引入風(fēng)險(xiǎn)
今天的加密貨幣交易主要是在托管交易所進(jìn)行的,在托管交易所中,用戶直接將其貨幣存入交易所,在交易所系統(tǒng)內(nèi)進(jìn)行交易,然后在以后提取新的貨幣余額。從交易所的角度來看,這一結(jié)構(gòu)雖然最簡(jiǎn)單,但它將托管風(fēng)險(xiǎn)重新引入了一個(gè)系統(tǒng)(比特幣/加密貨幣),該系統(tǒng)旨在消除托管風(fēng)險(xiǎn)并為其用戶提供金融主權(quán)。
因此,監(jiān)管交流表現(xiàn)出傳統(tǒng)金融體系的所有問題,盡管在某些情況下,行業(yè)的新的和大多數(shù)不受管制的性質(zhì)加劇了這種問題。在過去的幾年里,數(shù)十億人從交易所被盜,資產(chǎn)經(jīng)常被地方政府凍結(jié),或者由于運(yùn)營(yíng)積壓,用戶根本無法將貨幣轉(zhuǎn)出。
原子互換交易速度太慢
無信任的原子交換是這個(gè)問題的潛在解決方案。使用加密貨幣原生的屬性(例如腳本),用戶可以構(gòu)建兩個(gè)不同區(qū)塊鏈上的貨幣之間的交換,其中交易在各方之間是無信任的,不需要可信中介,并且是原子性的(即它完成或不完成,它不能部分完成)。
Decred已經(jīng)在Script中發(fā)布了一個(gè)簡(jiǎn)單易懂的原子交換合同,并生成了一個(gè)交換多種貨幣的示例實(shí)現(xiàn)(該研究擴(kuò)展到包括以太坊)。
然而,通過鏈上交易使用原子交換需要相當(dāng)長(zhǎng)的時(shí)間來保持不信任——在使用比特幣(迄今為止最具流動(dòng)性的加密貨幣)進(jìn)行交易的情況下,這些交換需要一個(gè)多小時(shí)才能完成。對(duì)于價(jià)格在幾秒鐘和幾分鐘內(nèi)變動(dòng)的交易貨幣,這種緩慢的最終確定將導(dǎo)致其中一方退出交易。因此,它們不會(huì)像預(yù)期的那樣進(jìn)行結(jié)算交換,而是完全沒有交換。
一些項(xiàng)目正在使用0確認(rèn)事務(wù)和專用仲裁節(jié)點(diǎn)或類似系統(tǒng)的組合來嘗試提高交換的速度,這降低了交換的不信任性質(zhì)。另一些機(jī)構(gòu)則利用鏈上掉期的延遲方面,將其構(gòu)建成類似期權(quán)合約的交易——這是一個(gè)很有前景的研究領(lǐng)域,但不能解決現(xiàn)貨交易問題。
閃電網(wǎng)絡(luò)交換目前受到限制
像閃電網(wǎng)絡(luò)這樣的2層解決方案以一般方式解決了比特幣和其他加密貨幣中的交易終結(jié)速度問題,并且也可以用于原子交換。事實(shí)上,原子交換在其白皮書中被列為閃電網(wǎng)絡(luò)的潛在應(yīng)用。 閃電實(shí)驗(yàn)室在2017年底使用閃電Daemon演示了BTC / LTC交換。
雖然BOLT規(guī)范是迄今為止最成熟的支付通道網(wǎng)絡(luò),但它是為比特幣(理所當(dāng)然地)構(gòu)建的,并且可能無法支持用戶想要交換的更的多種加密貨幣。Raiden作為非BOLT兼容網(wǎng)絡(luò)的發(fā)展是朝這個(gè)方向邁出的明確一步。
作為鏈上和鏈下交換的混合解決方案,Alex Bosworth創(chuàng)建了潛艇交換,允許用戶使用鏈上交易支付閃電網(wǎng)絡(luò)發(fā)票。該軟件擴(kuò)大了與其他貨幣的互操作性,并為閃電網(wǎng)絡(luò)發(fā)票提供了獨(dú)特的視角。但是,由于鏈上交易,結(jié)算速度仍然受到限制。
跨網(wǎng)絡(luò)原像檢索
基于閃電實(shí)驗(yàn)室團(tuán)隊(duì)和Alex Bosworth的工作,我們開發(fā)了一種新機(jī)制,使用支付通道網(wǎng)絡(luò)(如Lightning Network)執(zhí)行加密貨幣之間的無信任原子交換:
· 增加交換對(duì)其他區(qū)塊鏈和貨幣的潛在影響
· 簡(jiǎn)化交換的實(shí)施
· 維護(hù)交換的不信任和原子屬性
我們稱這種機(jī)制為跨網(wǎng)絡(luò)原像檢索。
在我解釋這種機(jī)制的具體結(jié)構(gòu)之前,我將簡(jiǎn)要介紹支付通道網(wǎng)絡(luò)支付和交換的背景,這是了解跨網(wǎng)絡(luò)原像檢索的兩個(gè)關(guān)鍵組件。
支付通道網(wǎng)絡(luò)支付
在諸如閃電網(wǎng)絡(luò)之類的支付通道網(wǎng)絡(luò)中,支付是通過僅為最終支付的接收者所知的原像來調(diào)節(jié)的。在從起點(diǎn)(付款人)到目的地(收款人)的路線上不可撤銷地承諾付款,每個(gè)節(jié)點(diǎn)不可撤銷地承諾如果他們呈現(xiàn)對(duì)應(yīng)于散列的前映像,則向下一節(jié)點(diǎn)支付給余額。
為了兌現(xiàn)她的付款,目的地節(jié)點(diǎn)將預(yù)映像呈現(xiàn)給倒數(shù)第二個(gè)節(jié)點(diǎn),傳輸承諾的貨幣并完成付款。然后,倒數(shù)第二個(gè)節(jié)點(diǎn)使用該預(yù)映像來兌現(xiàn)到期的付款,依此類推,沿到原點(diǎn)的路線向后觸發(fā)整個(gè)結(jié)算鏈,使原點(diǎn)節(jié)點(diǎn)的貨幣更少,目標(biāo)節(jié)點(diǎn)的貨幣更多,并且每個(gè)中間節(jié)點(diǎn)的余額沒有變化(例如提取費(fèi)用除外)。
在接收到閃電網(wǎng)絡(luò)中的預(yù)映像時(shí),用于不可撤銷地承諾付款的合同是一個(gè)哈希時(shí)間鎖定合同。
支付通道網(wǎng)絡(luò)交換
使用支付通道網(wǎng)絡(luò)的原子交換最好被視為循環(huán)支付。如果最簡(jiǎn)單的多跳支付沿著從用戶A到用戶X到用戶B的路徑都在同一區(qū)塊鏈上,則最簡(jiǎn)單的交換沿著區(qū)塊鏈1上的用戶A到用戶B的路由,以及從用戶B到用戶的路由。A區(qū)塊鏈2.此付款是一個(gè)循環(huán),其起源位于區(qū)塊鏈1上的用戶A和區(qū)塊鏈2上用戶A的目的地。由于這是一條路線的所有部分并且與一個(gè)前映像和散列相關(guān)聯(lián),因此其結(jié)果是原子的。如果交換成功,則用戶A在區(qū)塊鏈1上用較少的貨幣結(jié)束,并且區(qū)塊鏈2上的貨幣更多(用戶B具有相反的結(jié)果)。
正如他們迄今為止所證明的,支付通道網(wǎng)絡(luò)交換依賴于用戶B在區(qū)塊鏈1和區(qū)塊鏈2上操作他的節(jié)點(diǎn),這樣他就可以在區(qū)塊鏈1上收到支付承諾(HTLC),并在區(qū)塊鏈2上延長(zhǎng)支付承諾,并在整個(gè)路徑上向后結(jié)算。
此設(shè)置為用戶B帶來了重大困難,即:
· 他運(yùn)行的軟件必須支持他希望交易的每一個(gè)區(qū)塊鏈(或者:他必須擁有支持他希望每一筆交易的軟件)。
· 支付轉(zhuǎn)發(fā)機(jī)制必須支持本地交換,并且可以訪問(或邏輯)用戶的交易偏好。
#1顯著限制了理論和實(shí)踐中的兼容性,#2顯著增加了實(shí)現(xiàn)復(fù)雜性。
跨網(wǎng)絡(luò)原像檢索交換
使用跨網(wǎng)絡(luò)原像檢索的支付通道網(wǎng)絡(luò)交換要求每個(gè)參與者操作三個(gè)組件:
· 每個(gè)不同網(wǎng)絡(luò)的支付通道網(wǎng)絡(luò)節(jié)點(diǎn)(共兩個(gè)節(jié)點(diǎn))
· 連接支付通道網(wǎng)絡(luò)節(jié)點(diǎn)的節(jié)點(diǎn),我們稱之為鏈間路由器。
· 這些組件都是由同一個(gè)用戶控制和操作的,因此它們之間的交互模式是半可信的。
準(zhǔn)備交換
設(shè)置交換,用戶A(發(fā)起方)在區(qū)塊鏈2上運(yùn)行的支付通道網(wǎng)絡(luò)節(jié)點(diǎn)上創(chuàng)建一個(gè)只有她知道的原始圖像的發(fā)票。她將帶有此原像的哈希發(fā)送給用戶B帶外。
用戶B(轉(zhuǎn)移方)在他的支付通道網(wǎng)絡(luò)節(jié)點(diǎn)上為用戶A發(fā)送的哈希在區(qū)塊鏈1上創(chuàng)建發(fā)票。由于用戶B不知道該發(fā)票的原像,他將其標(biāo)記為外部原像發(fā)票,或者從外部存儲(chǔ)原像的發(fā)票。
開始交換
然后,用戶A在收到區(qū)塊鏈1上的PCN節(jié)點(diǎn)到區(qū)塊鏈1上的用戶B的PCN節(jié)點(diǎn)的預(yù)映像(HTLC)后,通過延長(zhǎng)不可撤銷的付款承諾來啟動(dòng)交換。
區(qū)塊鏈1上的用戶B的PCN節(jié)點(diǎn)在收到此付款承諾后,通常會(huì)拒絕它,因?yàn)樗鼪]有兌換它的映像。在我們的案例中,用戶B創(chuàng)建了一個(gè)特殊的外部映像發(fā)票,表明付款的映像可以通過外部服務(wù)獲得。區(qū)塊鏈1上的用戶B的PCN節(jié)點(diǎn)從外部服務(wù)請(qǐng)求映像,在我們的例子中是鏈間路由器。
跨區(qū)塊鏈轉(zhuǎn)換交換
鏈間路由器根據(jù)價(jià)格、交易對(duì)手和規(guī)模決定是否進(jìn)行交換交易。如果鏈間路由器確實(shí)決定繼續(xù)交換,它通過使用區(qū)塊鏈2上的用戶B的PCN節(jié)點(diǎn)來轉(zhuǎn)換支付,以便在收到預(yù)映像(HTLC)后,將不可撤銷的支付承諾擴(kuò)展到區(qū)塊鏈2上的用戶A的PCN節(jié)點(diǎn)。
解決交換的最后一步
區(qū)塊鏈2上的用戶A的PCN節(jié)點(diǎn),在為其知道的預(yù)映像(見步驟1)擴(kuò)展此付款后,結(jié)算付款,從而將預(yù)映像顯示給區(qū)塊鏈2上的用戶B的PCN節(jié)點(diǎn)。
跨區(qū)塊鏈轉(zhuǎn)換原像
區(qū)塊鏈2上的用戶B的PCN節(jié)點(diǎn)將預(yù)映像返回到鏈間路由器(發(fā)起支付)。一旦鏈間路由器具有預(yù)映像,它就可以將預(yù)映像返回到區(qū)塊鏈1上的用戶B的PCN節(jié)點(diǎn)。
結(jié)算交換的初始階段
現(xiàn)在擁有擴(kuò)展到它的支付的預(yù)映像,區(qū)塊鏈1上的用戶B的PCN節(jié)點(diǎn)結(jié)算初始支付,觸發(fā)結(jié)算回區(qū)塊鏈1上的用戶B的PCN節(jié)點(diǎn)。
交換結(jié)果
結(jié)果是用戶A在區(qū)塊鏈1上減少貨幣以換取區(qū)塊鏈2上的貨幣,而用戶B則相反。
在正常操作中,此交換將在各自的支付通道網(wǎng)絡(luò)上進(jìn)行兩次支付所需的時(shí)間內(nèi)結(jié)算,在閃電網(wǎng)絡(luò)的情況下通常是在數(shù)百毫秒內(nèi)。
增加互操作性
兩個(gè)支付通道網(wǎng)絡(luò)及其基礎(chǔ)區(qū)塊鏈需要具有的唯一共同屬性是為了使用跨網(wǎng)絡(luò)原像檢索完成原子交換,基于收到原像后不可撤銷的付款承諾和對(duì)同一個(gè)預(yù)映像的支持的支付過程。這些原像的哈希函數(shù)(例如sha256)。對(duì)于通過無腳本消除甚至是散列函數(shù)的通用性限制也有積極的研究,但即使沒有這樣的開發(fā),保持對(duì)單個(gè)散列函數(shù)的互操作性要求也會(huì)打開大量的潛在貨幣,包括目前正在開發(fā)的網(wǎng)絡(luò)。開發(fā)(如RAIDEN和閃電網(wǎng)絡(luò))。
除了紙面上增加的互操作性外,跨網(wǎng)絡(luò)原像檢索通過消除對(duì)單個(gè)客戶機(jī)支持兩個(gè)區(qū)塊鏈的要求,提高了實(shí)際的互操作性。對(duì)于不同的足夠貨幣(如比特幣和zcash),即使是遵循相同規(guī)格的客戶(如bolt)也可能不同到需要(或至少建議)一個(gè)單獨(dú)的客戶。
簡(jiǎn)化實(shí)施
消除兩個(gè)區(qū)塊鏈上的兩種貨幣同時(shí)在同一客戶機(jī)內(nèi)共存的需求,顯著降低了交換實(shí)施的復(fù)雜性(正如Lightning Labs團(tuán)隊(duì)為L(zhǎng)ND取消優(yōu)先級(jí)的并行多鏈支持所證明的那樣)。
此外,跨網(wǎng)絡(luò)原像檢索通常使用每個(gè)支付通道網(wǎng)絡(luò)都應(yīng)該使用的原語。具體來說,它使用:
· 發(fā)送付款
· 結(jié)算付款
· 發(fā)票/原像創(chuàng)建
在一個(gè)區(qū)域中,支付通道網(wǎng)絡(luò)節(jié)點(diǎn)必須執(zhí)行非標(biāo)準(zhǔn)動(dòng)作,即檢索存儲(chǔ)在外部服務(wù)上的原像。鑒于原像的潛在敏感性和分離問題的愿望,即使該功能可能最終在跨網(wǎng)絡(luò)交換之外具有實(shí)用性。
權(quán)衡
當(dāng)然,這種方法也有取舍。最容易想到的兩個(gè)問題是減少隱私和限制跨網(wǎng)絡(luò)消息傳遞。
閃電網(wǎng)絡(luò)實(shí)驗(yàn)室演示的交換只要求發(fā)起方用戶A知道用戶B的身份,即轉(zhuǎn)移方。跨網(wǎng)絡(luò)原像檢索要求每一方都知道對(duì)方的身份(至少在一個(gè)支付通道網(wǎng)絡(luò)上),因?yàn)槊恳环蕉钾?fù)責(zé)構(gòu)建一條路線。在我看來,這是一個(gè)可以接受的折衷方案,因?yàn)樵谶M(jìn)行交易時(shí),交易對(duì)手的身份可能是一個(gè)相關(guān)細(xì)節(jié)。
此外,由于這是一種跨網(wǎng)絡(luò)和跨規(guī)范交換,因此將特定于網(wǎng)絡(luò)的消息傳遞回來的能力是有限的。這也可能是一個(gè)可以接受的折衷方案,因?yàn)樵诰W(wǎng)絡(luò)間傳遞此類消息的需要也是有限的。
快速、簡(jiǎn)單且可互操作的跨鏈交換
跨網(wǎng)絡(luò)原像檢索允許交換利用支付通道網(wǎng)絡(luò)帶來的速度,允許交易與當(dāng)今保管加密貨幣交換所允許的速度相當(dāng),同時(shí)保持鏈上的原子性,無信任性和最終性交換交易。
這種新機(jī)制允許在不同基礎(chǔ)區(qū)塊鏈上構(gòu)建的多個(gè)不同類型的網(wǎng)絡(luò)之間進(jìn)行交換,這些網(wǎng)絡(luò)在不同的網(wǎng)絡(luò)客戶端中實(shí)現(xiàn)。它是一種更簡(jiǎn)單的方法,能夠更好地利用這些網(wǎng)絡(luò)的內(nèi)置功能,從而使其成為更強(qiáng)大的交換機(jī)制。
實(shí)踐中的跨網(wǎng)絡(luò)原像檢索
我們?cè)跇?gòu)建Sparkswap的同時(shí)開發(fā)了跨網(wǎng)絡(luò)原像檢索,這是一種交換加密貨幣的新系統(tǒng),無需將資產(chǎn)存入第三方(如交易所)。這些交換正在為在測(cè)試網(wǎng)上運(yùn)行的軟件提供動(dòng)力,執(zhí)行比特幣/萊特幣交易,這些交易可以在幾秒鐘內(nèi)完成。(鏈三豐)
關(guān)鍵詞: sparkswap 即時(shí)結(jié)算 金融主權(quán)