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