一文詳解比特幣Layer2 協議Ark:閃電網絡的替代方案?

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

在前不久的邁阿密海灘上,Bitcoin 2023 如火如荼,比特幣開發者Burak Keceli 就這一問題為現場觀眾帶來了比特幣Layer2 協議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 應運而生,其創新性將會大大降低用戶使用Layer2 支付的門檻,並且模仿了CoinJoin、盲化、靜默支付等諸多比特幣原語構建Ark 協議,實現比特幣的可擴展性與隱私支付。與閃電網絡相比,Ark 協議不僅提出其固有的流動性問題的解決方案,還兼容閃電網絡,至少已經是一種可以與其相輔相成的協議了。

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

Total
0
Shares
Related Posts