sparkswap原子跨鏈交換技術詳解

買賣虛擬貨幣
以下是對sparkswap即時結算技術的深入研究,這是一種交易加密貨幣而不在交易所存放資產的新方式。這是一篇技術文章,建議讀者熟悉閃電網路和原子跨鏈交換技術原理。無信任的原子跨鏈交換被認為是託管加密貨幣交換問題的潛在解決方案,但在很大程度上未能實現大量使用者採用。我認為,失敗的一個重要原因是普通金額交易的最終速度慢得讓人無法接受。使用2層解決方案的原子交換(如閃電網路(和更普遍的支付通道網路)有可能顯著提高這些交換的速度,但到目前為止,主要是針對具體實施的演示。跨網路預映像檢索是支付通道網路上無信任原子交換的一種新機制,增加潛在的貨幣支援並簡化實施,同時保持鏈式交換的原子和無信任屬性。
託管交易所重新引入風險今天的加密貨幣交易主要是在託管交易所進行的,在託管交易所中,使用者直接將其貨幣存入交易所,在交易所繫統內進行交易,然後在以後提取新的貨幣餘額。從交易所的角度來看,這一結構雖然最簡單,但它將託管風險重新引入了一個系統(比特幣/加密貨幣),該系統旨在消除託管風險併為其使用者提供金融主權。因此,監管交流表現出傳統金融體系的所有問題,儘管在某些情況下,行業的新的和大多數不受管制的性質加劇了這種問題。在過去的幾年裡,數十億人從交易所被盜,資產經常被地方政府凍結,或者由於運營積壓,使用者根本無法將貨幣轉出。
原子互換交易速度太慢無信任的原子交換是這個問題的潛在解決方案。使用加密貨幣原生的屬性(例如指令碼),使用者可以構建兩個不同區塊鏈上的貨幣之間的交換,其中交易在各方之間是無信任的,不需要可信中介,並且是原子性的(即它完成或不完成,它不能部分完成)。Decred已經在Script中釋出了一個簡單易懂的原子交換合同,並生成了一個交換多種貨幣的示例實現(該研究擴充套件到包括以太坊)。
然而,透過鏈上交易使用原子交換需要相當長的時間來保持不信任——在使用比特幣(迄今為止最具流動性的加密貨幣)進行交易的情況下,這些交換需要一個多小時才能完成。對於價格在幾秒鐘和幾分鐘內變動的交易貨幣,這種緩慢的最終確定將導致其中一方退出交易。因此,它們不會像預期的那樣進行結算交換,而是完全沒有交換。一些專案正在使用0確認事務和專用仲裁節點或類似系統的組合來嘗試提高交換的速度,這降低了交換的不信任性質。另一些機構則利用鏈上掉期的延遲方面,將其構建成類似期權合約的交易——這是一個很有前景的研究領域,但不能解決現貨交易問題。閃電網路交換目前受到限制
像閃電網路這樣的2層解決方案以一般方式解決了比特幣和其他加密貨幣中的交易終結速度問題,並且也可以用於原子交換。事實上,原子交換在其白皮書中被列為閃電網路的潛在應用。 閃電實驗室在2017年底使用閃電Daemon演示了BTC / LTC交換。雖然BOLT規範是迄今為止最成熟的支付通道網路,但它是為比特幣(理所當然地)構建的,並且可能無法支援使用者想要交換的更的多種加密貨幣。Raiden作為非BOLT相容網路的發展是朝這個方向邁出的明確一步。作為鏈上和鏈下交換的混合解決方案,Alex Bosworth建立了潛艇交換,允許使用者使用鏈上交易支付閃電網路發票。該軟體擴大了與其他貨幣的互操作性,併為閃電網路發票提供了獨特的視角。但是,由於鏈上交易,結算速度仍然受到限制。
跨網路原像檢索基於閃電實驗室團隊和Alex Bosworth的工作,我們開發了一種新機制,使用支付通道網路(如Lightning Network)執行加密貨幣之間的無信任原子交換:· 增加交換對其他區塊鏈和貨幣的潛在影響
· 簡化交換的實施· 維護交換的不信任和原子屬性我們稱這種機制為跨網路原像檢索。
在我解釋這種機制的具體結構之前,我將簡要介紹支付通道網路支付和交換的背景,這是瞭解跨網路原像檢索的兩個關鍵元件。支付通道網路支付在諸如閃電網路之類的支付通道網路中,支付是透過僅為最終支付的接收者所知的原像來調節的。在從起點(付款人)到目的地(收款人)的路線上不可撤銷地承諾付款,每個節點不可撤銷地承諾如果他們呈現對應於雜湊的前映像,則向下一節點支付給餘額。

為了兌現她的付款,目的地節點將預映像呈現給倒數第二個節點,傳輸承諾的貨幣並完成付款。然後,倒數第二個節點使用該預映像來兌現到期的付款,依此類推,沿到原點的路線向後觸發整個結算鏈,使原點節點的貨幣更少,目標節點的貨幣更多,並且每個中間節點的餘額沒有變化(例如提取費用除外)。

在接收到閃電網路中的預映像時,用於不可撤銷地承諾付款的合同是一個雜湊時間鎖定合同。

支付通道網路交換

使用支付通道網路的原子交換最好被視為迴圈支付。如果最簡單的多跳支付沿著從使用者A到使用者X到使用者B的路徑都在同一區塊鏈上,則最簡單的交換沿著區塊鏈1上的使用者A到使用者B的路由,以及從使用者B到使用者的路由。A區塊鏈2.此付款是一個迴圈,其起源位於區塊鏈1上的使用者A和區塊鏈2上使用者A的目的地。由於這是一條路線的所有部分並且與一個前映像和雜湊相關聯,因此其結果是原子的。如果交換成功,則使用者A在區塊鏈1上用較少的貨幣結束,並且區塊鏈2上的貨幣更多(使用者B具有相反的結果)。

正如他們迄今為止所證明的,支付通道網路交換依賴於使用者B在區塊鏈1和區塊鏈2上操作他的節點,這樣他就可以在區塊鏈1上收到支付承諾(HTLC),並在區塊鏈2上延長支付承諾,並在整個路徑上向後結算。

此設定為使用者B帶來了重大困難,即:

· 他執行的軟體必須支援他希望交易的每一個區塊鏈(或者:他必須擁有支援他希望每一筆交易的軟體)。
· 支付轉發機制必須支援本地交換,並且可以訪問(或邏輯)使用者的交易偏好。

#1顯著限制了理論和實踐中的相容性,#2顯著增加了實現複雜性。

跨網路原像檢索交換

使用跨網路原像檢索的支付通道網路交換要求每個參與者操作三個元件:

· 每個不同網路的支付通道網路節點(共兩個節點)
· 連線支付通道網路節點的節點,我們稱之為鏈間路由器。
· 這些元件都是由同一個使用者控制和操作的,因此它們之間的互動模式是半可信的。

準備交換

設定交換,使用者A(發起方)在區塊鏈2上執行的支付通道網路節點上建立一個只有她知道的原始影象的發票。她將帶有此原像的雜湊傳送給使用者B帶外。

使用者B(轉移方)在他的支付通道網路節點上為使用者A傳送的雜湊在區塊鏈1上建立發票。由於使用者B不知道該發票的原像,他將其標記為外部原像發票,或者從外部儲存原像的發票。

開始交換

然後,使用者A在收到區塊鏈1上的PCN節點到區塊鏈1上的使用者B的PCN節點的預映像(HTLC)後,透過延長不可撤銷的付款承諾來啟動交換。

區塊鏈1上的使用者B的PCN節點在收到此付款承諾後,通常會拒絕它,因為它沒有兌換它的映像。在我們的案例中,使用者B建立了一個特殊的外部映像發票,表明付款的映像可以透過外部服務獲得。區塊鏈1上的使用者B的PCN節點從外部服務請求映像,在我們的例子中是鏈間路由器。

跨區塊鏈轉換交換

鏈間路由器根據價格、交易對手和規模決定是否進行交換交易。如果鏈間路由器確實決定繼續交換,它透過使用區塊鏈2上的使用者B的PCN節點來轉換支付,以便在收到預映像(HTLC)後,將不可撤銷的支付承諾擴充套件到區塊鏈2上的使用者A的PCN節點。

解決交換的最後一步

區塊鏈2上的使用者A的PCN節點,在為其知道的預映像(見步驟1)擴充套件此付款後,結算付款,從而將預映像顯示給區塊鏈2上的使用者B的PCN節點。

跨區塊鏈轉換原像

區塊鏈2上的使用者B的PCN節點將預映像返回到鏈間路由器(發起支付)。一旦鏈間路由器具有預映像,它就可以將預映像返回到區塊鏈1上的使用者B的PCN節點。

結算交換的初始階段

現在擁有擴充套件到它的支付的預映像,區塊鏈1上的使用者B的PCN節點結算初始支付,觸發結算回區塊鏈1上的使用者B的PCN節點。

交換結果

結果是使用者A在區塊鏈1上減少貨幣以換取區塊鏈2上的貨幣,而使用者B則相反。

在正常操作中,此交換將在各自的支付通道網路上進行兩次支付所需的時間內結算,在閃電網路的情況下通常是在數百毫秒內。

增加互操作性

兩個支付通道網路及其基礎區塊鏈需要具有的唯一共同屬性是為了使用跨網路原像檢索完成原子交換,基於收到原像後不可撤銷的付款承諾和對同一個預映像的支援的支付過程。這些原像的雜湊函式(例如sha256)。對於透過無指令碼消除甚至是雜湊函式的通用性限制也有積極的研究,但即使沒有這樣的開發,保持對單個雜湊函式的互操作性要求也會開啟大量的潛在貨幣,包括目前正在開發的網路。開發(如RAIDEN和閃電網路)。

除了紙面上增加的互操作性外,跨網路原像檢索透過消除對單個客戶機支援兩個區塊鏈的要求,提高了實際的互操作性。對於不同的足夠貨幣(如比特幣和zcash),即使是遵循相同規格的客戶(如bolt)也可能不同到需要(或至少建議)一個單獨的客戶。

簡化實施

消除兩個區塊鏈上的兩種貨幣同時在同一客戶機內共存的需求,顯著降低了交換實施的複雜性(正如Lightning Labs團隊為LND取消優先順序的並行多鏈支援所證明的那樣)。

此外,跨網路原像檢索通常使用每個支付通道網路都應該使用的原語。具體來說,它使用:

· 傳送付款
· 結算付款
· 發票/原像建立

在一個區域中,支付通道網路節點必須執行非標準動作,即檢索儲存在外部服務上的原像。鑑於原像的潛在敏感性和分離問題的願望,即使該功能可能最終在跨網路交換之外具有實用性。

權衡

當然,這種方法也有取捨。最容易想到的兩個問題是減少隱私和限制跨網路訊息傳遞。

閃電網路實驗室演示的交換隻要求發起方使用者A知道使用者B的身份,即轉移方。跨網路原像檢索要求每一方都知道對方的身份(至少在一個支付通道網路上),因為每一方都負責構建一條路線。在我看來,這是一個可以接受的折衷方案,因為在進行交易時,交易對手的身份可能是一個相關細節。

此外,由於這是一種跨網路和跨規範交換,因此將特定於網路的訊息傳遞回來的能力是有限的。這也可能是一個可以接受的折衷方案,因為在網路間傳遞此類訊息的需要也是有限的。

快速、簡單且可互操作的跨鏈交換

跨網路原像檢索允許交換利用支付通道網路帶來的速度,允許交易與當今保管加密貨幣交換所允許的速度相當,同時保持鏈上的原子性,無信任性和最終性交換交易。

這種新機制允許在不同基礎區塊鏈上構建的多個不同型別的網路之間進行交換,這些網路在不同的網路客戶端中實現。它是一種更簡單的方法,能夠更好地利用這些網路的內建功能,從而使其成為更強大的交換機制。

實踐中的跨網路原像檢索

我們在構建Sparkswap的同時開發了跨網路原像檢索,這是一種交換加密貨幣的新系統,無需將資產存入第三方(如交易所)。這些交換正在為在測試網上執行的軟體提供動力,執行比特幣/萊特幣交易,這些交易可以在幾秒鐘內完成。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;