比特幣閃電網路替代方案,一文介紹 Ark 的工作方式及其技術特點

原文作者:Peng SUN,Foresight News

在比特幣閃電網路的發展歷程中,儘管 PTLC、CoinJoin 在很大程度上對中心化與隱私問題做了改進,但流動性卻是阻礙閃電網路大規模採用的硬傷之一。通常對新使用者而言,下載閃電錢包後必須要尋找到入站流動性(Inbound Liquidity)才能從閃電通道中接收比特幣,入站與出站流動性(Outbound Liquidity)的多少也決定了使用者能接收與傳送多少比特幣。同時,在閃電通道中,流動性總量是固定的,無法改變,除非關閉通道重新設定。因此,總體來說,閃電網路流動性帶來的實際使用者體驗可能並不佳。

在前不久的邁阿密海灘上,Bitcoin 2023 如火如荼,比特幣開發者 Burak Keceli 就這一問題為現場觀眾帶來了比特幣 Layer 2 協議 Ark,這是一種閃電網路的替代方案,允許使用者在不引入流動性限制的情況下傳送和接收資金。今天,Foresight News 將為大家介紹 Ark 的工作方式及其技術特點。

一、工作方式

在比特幣網路中,一筆交易由輸入與輸出組成,地址所持有的比特幣總額被稱為未被花費的交易輸出(Unspent Transaction Output,UTXO),一筆交易經由收款方的私鑰簽署解鎖指令碼後進入新地址的 BTC 將再次成為 UTXO。Ark 協議則採用一種共享 UTXO 集進行匿名的鏈下支付,協議中已提交但未公開的交易輸出被稱為虛擬 UTXO(vTXO)。獲取 vTXO 有兩種方式,一是從已擁有 vTXO 的使用者那裡獲取;二則是透過原子雙向掛鉤機制 lifting 將其鏈上 UTXO 按 1: 1 兌換為 vTXO。當然,使用者可以單方面將 vTXO 兌換為鏈上 UTXO,而無需尋求 ASP 合作。

Ark 協議涉及使用者與 Ark Service Provider(ASP)兩方。使用者是指那些持有、傳送和接收 vTXO 的非互動式實體,而 ASP 類似於閃電網路服務提供商,它擔任一種無需信任的中介,為網路提供 vTXO 流動性並收取流動性費用。同時,ASP 也充當盲 CoinJoin 協調員的角色,透過提供簡單的調整與盲混合(blinded mixing)為交易提供隱私保護。

當使用者在協議上進行付款時,需在 ASP 建立的共享 vTXO 資金池中支付 vTXO。ASP 每天 24 小時線上,其主要工作是每 5 秒建立一個盲交易池,對交易進行盲混合,避免支付跟蹤。同時,ASP 可將發款方的 vTXO 贖回成鏈上資產, 並利用自己的鏈上資金為 CoinJoin 建立新的 vTXO。因此,上鍊的交易池即便公開可查,但也只顯示 1 個或幾個由 ASP 提供的輸入,鏈上資料觀察者無法發現真正的付款方。隨後,從 ASP 的盲交易池中產生包含新建立 vTXO 的 vTXO 輸出。vTXO 被捆綁並巢狀在這個共享輸出下,並可以在鏈上公開。在 Ark 協議中,vTXO 輸出生命週期只有 4 周,收款方需要在前兩週內透過共同簽署 n-of-n 多重簽名領取巢狀 vTXO(nested vTXO)。如果 vTXO 在前兩週無人認領,vTXO 將重回傳送者的控制之下,這類似於閃電網路上的 HTLC 超時。另一方面,如果 ASP 在這段時間碰巧不合作或不回應,不共同簽署 ATLC,那麼 vTXO 所有者可以公開其巢狀 vTXO,然後等到合約中編碼的某個相對時間視窗(24 小時)之後再領取資金。當然,如果被公開的 vTXO 超過 4 周無人認領,ASP 將可以單獨清算它們。

二、技術特點

無流動性限制

與閃電網路的相比,Ark 協議沒有引入所謂的閃電通道、出站流動性與入站流動性。

非互動式

Ark 的非互動式支付透過一種類似於比特幣靜默支付的方式來實現,即收款方提供一個傳送方與收款方之間的「共享秘密」,併為傳送方提供一個類似於靜默支付的專用公鑰。每個新建立的 vTXO 都使用一個包含支付承諾的臨時共享秘密進行調整,該秘密會在 vTXO 被花費時,也即 2-of-2 聯結器關閉時,錨定 ATLC 會顯示付款證明。

不過,當前 Ark 協議的接收則是對非互動式的一種妥協,它採用一種互動式的方式即 n-of-n 多重簽名限制交易輸出,它的非同步離線接收尚未完善,收款人必須線上執行 Ark 客戶端才能簽名以限制共享 UTXO 的輸出。換言之,使用者必須每隔一兩週上線一次以接收其代幣,否則無人認領的代幣將會被 ASP 清理。因此,對於 Ark 而言,要想真正實現完全非互動式,使使用者接收離線支付,必須有一種類似於 BIP-118 與 BIP-119 的「限制條款」(covenant)原語來限制交易輸出。事實上,即便是為閃電網路附加這種原語,也依然無法實現非互動性。

絕對原子性

所謂原子性,就是指一筆交易不可切分,要麼完全成功,要麼完全失敗。Ark 使用一種稱為 Txlock 的新鎖定型別原語確保鏈下轉賬的絕對原子性。Txlock 是一種條件,在這個條件下,只有存在一個相互同意的交易識別符號才能解鎖。

在 Ark 協議中,Txlock 條件使用聯結器(connector)來滿足。聯結器是協議上的一種特殊輸出型別,其原語是如果我們希望比特幣指令碼檢查特定的交易 ID 是否存在,只需將該交易的輸出附加到支出交易(spending transaction)中,並對照支出交易的 Prevouts 檢查一個預簽名(pre-signed)的簽名。在簽名雜湊(sighash)原像(preimage)中的聯結器輸出點(outpoint)會提交給我們想要滿足 Txlock 條件的交易 ID。在 Ark 上下文(context)中,這是包含預期收款人的 vTXO 的資金池交易。Txlocks 在錨定時間鎖合約(ATLC)中使用,以提供原子單樞紐(single-hub)支付計劃。當首次建立 vTXO 時,ATLC 會附加到它上面。當一個 vTXO 被花費時,vTXO 所有者與 ASP 合作簽署 atlc:connect,透過 ATLC 的 2-of-2 金鑰路徑,預先附加的 ATLC 會連線到聯結器上以形成 Txlock。

這種 Txlock 結構確保,如果附加的 ATLC 要被 ASP 認領,那麼聯結器輸出點的上下文必須保持不變。換句話說,ASP 不能雙花其建立的交易池。這為傳送者提供了原子支付結構,因為收款人的 vTXO 與聯結器巢狀在相同的交易池中。

更少的鏈上 Footprint

與閃電網路相比,Ark 沒有開啟和關閉通道的概念,與鏈上互動次數少,因此佔用的鏈上空間更少。

隱私性

ASP 提供的 CoinJoin「混幣」隱私服務;收款人無需獲取入站流動性、實時執行伺服器以收款並將隱私洩漏給外部觀察者。

相容閃電網路

就像 ATLC 和聯結器一樣,Ark 可以透過將雜湊時間鎖合約(HTLC)和點時間鎖合約(PTLC)附加到交易池來與閃電網路相容。附加的 HTLC 存在於另一個稱為 HTLC 輸出的共享 UTXO 下,該輸出在四周後也會過期。ASP 將 HTLC 轉發到其交易池後的那一刻,就將其轉發到更廣泛的閃電網路。這意味著 ASP 也是 Lightning 服務提供商。Ark 使用者也可以使用巢狀了 HTLC 的 vTXO 從閃電網路收款。

由於任何人都可以執行 ASP,使用者可以透過不同的 ASP 傳送閃電發票,在將 HTLC(或 PTLC)附加到由不同 ASP 建立的交易池上後,HTLC 可以透過多方支付(MPP)轉發到最終的收款人。

零確認 vTXO

Ark 協議支援零確認 vTXO,支付隨交易池的建立而每 5 秒計入一次,但結算則每十分鐘一次。因此,支付是立即入賬的,收款方無需等待鏈上確認就可以花費其零確認 vTXO,用於轉賬或支付閃電發票(類似於收款碼)。所以,理論上,當一個交易池的交易還在記憶體池中時,ASP 可以雙花這筆交易。但 Burak 表示,由於轉賬的絕對原子性,如果 ASP 在雙方約定的 CoinJoin 交易 ID 下雙花收款方的 vTXO,那麼 ASP 將無法贖回傳送方的 vTXO。

Burak 認為,未來,Ark 可以利用假設的資料操作操作碼「opcode」(OP_XOR 或 OP_CAT) 來限制 ASP 的簽名中的 nonce,以避免雙重支付。到那時,如果雙花發生在 CoinJoin 交易中,使用者則可以偽造 ASP 簽名來認領其之前兌換的 vTXO。

三、總結

Ark 協議的創始人最初是閃電網路的強烈批評者,他對閃電網路入站流動性、非同步接收、鏈上足跡、接收者隱私、互動性等批評是 Ark 誕生的種子。Burak 自己也承認,他此前的一些反對意見從長遠來看是可以解決的,但是他找不到解決入站流動性問題的「良方」。在這個想法的推動下,Ark 應運而生,其創新性將會大大降低使用者使用 Layer 2 支付的門檻,並且模仿了 CoinJoin、盲化、靜默支付等諸多比特幣原語構建 Ark 協議,實現比特幣的可擴充套件性與隱私支付。與閃電網路相比,Ark 協議不僅提出其固有的流動性問題的解決方案,還相容閃電網路,至少已經是一種可以與其相輔相成的協議了。

不過,Ark 還有很多需要改進的地方。譬如,收款方必須每隔一兩週就要上線簽名以領取代幣,這產生了一種新的使用者體驗問題。事實上,比特幣開發者社羣對於 Ark 採用零確認(0-conf) 帶來雙花問題也產生了一些爭論。如果其在非互動式、雙花問題上能夠進一步完善,那麼 Ark 的使用者體驗與協議的安全性也會大大改善。此外,Ark 在鏈下完成,雖然鏈上無法觀察到傳送者與收款方,但 ASP 是否掌握隱私資料仍然需要打個問號。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *