為了找到 Cake Wallet 的最佳解決方案,以便為用戶提供用戶友好且非託管的閃電網絡,我深入研究了 Spark 和 Ark。兩者都是比特幣第二層網絡的全新方案,其核心設計旨在與更廣泛的比特幣網絡互操作,通過閃電網絡進行支付。雖然兩者都“僅”可用於閃電支付,但在未來數月乃至數年內,這兩個網絡都將迅速擴展,其用途將遠不止於此。
需要記住的一點是,雖然 Spark 和 Ark 從表面上看非常相似,但在實踐和實施上它們是截然不同的。
為什麼我們需要新的第二層?
比特幣本質上是一個令人難以置信的自由工具,但由於區塊大小的限制,我們知道世界上大多數人永遠無法在鏈上進行交易。閃電網絡的出現,讓一筆鏈上交易能夠支持幾乎無限的鏈下交易,從而擴展了比特幣底層的實用性,讓更多人能夠進行交易。
雖然閃電網絡為比特幣支付的擴展提供了一種頗具前景的方法,但最終人們逐漸意識到,它的最佳角色是作為互操作層,而不是最終用戶自行運行的工具。鏈上需求、流動性管理、活性要求以及其他核心障礙,使得用戶友好型、自主託管的閃電網絡幾乎不可能實現。這一點顯而易見,因為大多數閃電網絡錢包和用例都出於簡化用戶體驗和降低實施難度的需要,選擇使用託管或聯合模型。
Spark 和 Ark 為比特幣領域帶來的最大好處是,為普通開發者提供了一種更簡單、更輕鬆的方式向用戶提供閃電網絡,同時允許在閃電支付之外大大擴展功能。
方舟,簡化版
歷史
方舟 (Ark) 的概念由閃電網絡的倡導者和開發者布拉克 (Burak) 於 2023 年 5 月提出。其背後的驅動力是,人們意識到現有的閃電網絡由於入站流動性需求等諸多因素,無法有效地作為普通用戶的入門工具,而且隱私性也常常不足。雖然布拉克發明了該協議本身,但兩家公司——方舟實驗室 (Ark Labs) 和 Second——已介入,將方舟協議構建為比特幣的端到端第二層網絡。
雖然兩家公司都圍繞相同的開源 Ark 協議進行開發,但它們的實現方式和目標卻大相徑庭。因此,我將盡可能地在下面對兩者進行概括。
術語
Ark: Ark 是一種協議,利用用戶和 Ark 運營商之間的多重簽名和預簽名交易,將比特幣交易轉移到鏈下。比特幣上的所有操作,Ark 都能做到,而且速度更快,費用更低。
Ark 運營商:運行中心化 Ark 服務器基礎設施的實體,負責在到期前為用戶的 VTXO 提供流動性。
閃電網關:為 Ark 用戶提供使用 Ark VTXO 進行無需信任的原子交換來發送或接收閃電支付的實體。此功能可以由與 Ark 運營者相同的實體提供,但通常為了分散交易對手風險而單獨提供。
虛擬交易輸出:也稱為“VTXO”,其本質與鏈上 UTXO 非常相似,但它們是虛擬的,因為它們在鏈上不以唯一的 UTXO 形式存在,而是完全存在於鏈下。用戶在 Ark 內發送和接收 VTXO。
輪次:為了獲得真正的最終結果和/或刷新 VTXO,Ark 用戶需要加入輪次,與其他 Ark 用戶和 Ark 運營商合作以獲取新的 VTXO 並支付費用。
進行交易
Ark 的功能與鏈上比特幣交易非常相似,並繼承了許多相同的特性,同時允許交易近乎即時完成,並最大限度地減少 Ark 參與者之間的信任。發送者與 Ark 運營商合作,將 VTXO 簽名給接收者,或者在 Ark Labs 的情況下,為接收者創建一個新的鏈式 VTXO。這使得用戶體驗在很多方面都類似於鏈上支付,但費用更低,交易時間更快。當用戶想要發送或接收閃電支付時,他們可以使用閃電網關根據需要自動將 VTXO 轉換為閃電支付。目前,Ark 無法離線接收閃電支付,但這個問題很可能會在 Ark 中以類似於 Spark 的信任最小化方式得到解決。
如果用戶希望獲得最終確定性(例如,他們收到了大額付款),他們可以選擇加入一輪交易來最終確定付款,並獲得與鏈上比特幣相同的最終確定性假設。此輪交易的頻率將根據方舟運營商而有所不同——估計從每10分鐘到每小時不等——並且需要所有希望加入此輪交易的用戶與方舟運營商之間進行一個相對較長的協調簽名過程。輪次頻率甚至可以根據需求進行調整,並且不像比特幣的區塊時間那樣必須固定為一個頻率。
由於 Ark 直接從鏈上比特幣繼承了比特幣腳本和 UTXO 模型,Ark 未來可能會擴展以支持 Taproot Assets 等代幣協議。
信任權衡
Ark 的目標是以一種信任最小化的方式實現比特幣的擴容,在可用性方面,以及在閃電網絡和 Spark 之間的權衡取捨方面,找到了一種折衷方案。需要注意的是,Ark 協議正在快速發展,其中一些權衡取捨有望通過使用新穎的鏈下方法,或在比特幣中引入契約機制後得到解決。
缺乏輪次終結性
Spark 缺乏可證明的最終性,而 Ark 則在某種程度上找到了折中方案。對於小額支付,用戶可以信賴 Ark 運營者和之前的付款人不會串通一氣,從而實現即時轉賬,無需多輪協作簽名。需要注意的是,默認情況下,Ark 中的付款將是“非循環”付款,缺乏真正的最終性,這種權衡使得 Ark 能夠提供良好的開箱即用用戶體驗。
話雖如此,真正需要或想要真正確定性的用戶可以通過加入一輪並從 Ark Operator 接收新的 VTXO 來實現。接收者基本上可以控制他們偏好的信任模型。
VTXO 到期
由於運行方舟實例需要流動性,方舟運營者需要一種定期回收流動性的方法。為了實現這種流動性回收,方舟 VTXO 將定期到期(即 30 天后,VTXO 到期時間由每個方舟運營者設置),要求其所有者要麼加入一輪以刷新 VTXO,要麼冒著將其資金控制權完全交給方舟運營者的風險。雖然方舟運營者有強烈的動機在 VTXO 重新上線時僅向已到期 VTXO 的所有者發放新的 VTXO,但方舟運營者和用戶都有權使用資金,直到新的 VTXO 發放給用戶。
為避免資金過期,用戶需要在該時間段內直接刷新其 VTXO,或將刷新工作委託給委託人。或者,可以通過 Boltz 等機構將即將過期的 VTXO 原子交換為生命週期更長的 VTXO,並收取一定費用,但目前該方案尚未實現。
複雜的圓形用戶體驗
如果您曾經在比特幣上使用過 Coinjoin,您就會知道與其他比特幣用戶協作簽署交易是多麼繁瑣且不可靠。在 Ark 中,那些尋求 VTXO 真正最終確定性的人需要在整個簽名過程中保持在線,直到簽名過程完成,這在很大程度上取決於其他參與者是否能夠正確完成簽名過程。雖然對於在始終在線的服務器上運行的錢包來說,實現這一點相當簡單,但在移動平臺上可靠地執行卻相當複雜,尤其是在 iOS 上,因為任何應用程序都無法保證後臺執行(因此無法在正確的時間在線進行簽名)。
鑑於這種複雜的用戶體驗,Ark Labs 設計了一個系統,利用委託的第三方以信任最小化的方式為用戶執行刷新,將活躍度要求轉移給第三方。雖然第三方無法竊取資金,但如果他們因任何原因離線或拒絕刷新某個 VTXO,用戶將被迫在到期前自行加入下一輪。為了降低這種風險,用戶可以指定多個委託人,將到期的信任假設改為 1/N 假設,只要任何委託人誠實,他們的 VTXO 就會被正確刷新。
Second 也有一個類似設計的系統,為用戶提供無信任、非交互式的輪次,允許任意數量的參與方在一輪期間為用戶簽名(即錢包提供商和第三方代表),如果其中任何一方正確簽名,則用戶的 VTXO 將被正確刷新。
請注意,雖然這兩種解決方案可以刷新即將到期的 VTXO,但如果用戶不主動參與,它們就無法為用戶提供真正的最終性。
最後,值得一提的是,如果在比特幣升級過程中部署一個簡單的契約,那麼整個過程的絕大多數複雜性都可以完全減輕,這將為 Ark 帶來極大改善的用戶體驗。
隱私權衡
從本質上講,Ark 繼承了比特幣糟糕的隱私性,並且作為協議本身並沒有提供任何顯著的隱私改進。話雖如此,Ark 能夠將執行任務轉移到鏈下,並擴展比特幣的功能,這使得未來可以在其基礎上構建現有和新型的隱私協議,並通過契約完全解鎖 Ark 內部的隱私輪次等功能。
短期內,Ark Labs 計劃使用類似 WabiSabi 的盲憑證來提高用戶參與回合時操作員的隱私。
交易可見性
雖然 Ark 中的所有交易無需在鏈上發佈,從而提供了一定的短暫性,但所有交易細節對 Ark 運營者而言都是可見的,因此不應被視為真正意義上的隱私。相反,將 Ark 提供的短暫隱私視為類似於 VPN 模型(將交易的可見性從比特幣區塊鏈轉移到可信的第三方)是一種有用的思維模型。
目前尚不清楚 Ark Labs 和 Second 是否會將交易數據保密或公開發布,但與 VPN 一樣,用戶不應完全依賴不記錄隱私的承諾。
瞭解更多
- 官方文檔(Ark Labs):https://docs.arkadeos.com/
- 官方文檔(第二版):https://docs.second.tech/
- 來自 Second 的精彩 Ark 解釋視頻:https://www.youtube.com/watch?v=WvwmLv0SgAc
- “方舟和火車的類比”:https://pakovm.substack.com/p/ark-and-the-train-analogy-a-guide
Spark,簡化
歷史
Spark 網絡由 Lightspark 的團隊於今年早些時候推出,Lightspark 是一家與比特幣相關的公司,有著一段有趣的歷史。從UMA (一個為銀行合作伙伴提供原生集成合規功能的用戶名系統)到與失敗的 Libra 貨幣的聯繫,他們在構建工具方面有著一段奇怪的經歷,這些工具與比特幣更具密碼朋克風格的根基並不相符。但是,當我拋開他們奇怪的經歷,純粹關注 Spark 協議本身時,我發現它總體上是一個相當實用、實用且強大的工具。
Spark 的核心吸收了狀態鏈的許多有用特性,狀態鏈是 Ruben Somsen 於 2018 年創建的一種新穎的比特幣第二層方法。Spark 特別用“葉子”的概念擴展了狀態鏈,允許用戶在交易中發送任意金額,而不是隻能使用整個 UTXO 進行交易,這是狀態鏈迄今為止最大的問題之一。
術語
Spark 實體:運行給定 Spark 實例(例如 Lightspark)的實體,由一組 Spark 運算符組成。由於 Spark 是一個開源協議,任何人都可以啟動自己的 Spark 實體,但每個 Spark 實體都控制著哪些 Spark 運算符可以加入。
Spark 運營商:每個 Spark 實體由一個或多個 Spark 運營商組成,每個運營商負責驗證和簽署 Spark 實例內用戶的操作,包括資金和代幣的轉移、新代幣的發行ETC。這些運營商可以與 Spark 實體是同一個實體,也可以(希望)在關係和管轄權上與 Spark 實體不同。目前,Spark 的兩個運營商是 Lightspark 本身和 Flashnet,但預計不久的將來會添加更多運營商。
Spark 服務提供商:向 Spark 用戶提供各種服務的實體,包括使用原子交換代表用戶無信任地發送和接收閃電支付。
Spark 葉子節點: Spark 通過引入葉子節點解決了狀態鏈中全幣轉移的需求問題。葉子節點可以理解為類似於比特幣中的 UTXO,因為它們可以自由地拆分成任何大小。
進行交易
Spark 的核心功能是允許用戶通過 Spark 運營商以信任最小化的方式將單個葉子的所有權轉移給他人,從而輕鬆地在 Spark 網絡中近乎即時地轉移比特幣。無需區塊鏈、確認或發送方和接收方之間的活躍性,支付過程簡單快捷。當用戶想要在閃電網絡上付款時,他們只需原子地將錢包中的一片或多片葉子與 Spark 服務提供商交換,然後由後者以無需信任的方式代表用戶支付,並收取一定費用。
要轉移 Spark 葉子節點,發送者需要共同簽署該葉子節點的所有權,將其從自己 + Spark 運營者轉移到新的所有者 + Spark 運營者。這樣做的目的是,如果任何 Spark 運營者或之前的所有者誠實地刪除了他們在共同簽署操作中使用的密鑰共享,那麼該葉子節點將完全歸接收者所有,從而避免雙重支付。由於此操作僅需要 Spark 運營者和發送者之間的協作,而無需其他 Spark 用戶參與,因此這些簽名輪次非常快速,並且能夠抵禦 DoS 攻擊。
Spark 還包含類似的 1-of-N 信任模型,用於離線接收閃電網絡支付,這比標準閃電網絡錢包的使用體驗有了顯著提升。這一點在移動錢包上使用 Spark 時尤為重要,因為移動平臺無法保證後臺執行或全天候完美網絡訪問。
除了常規支付之外,Spark 還擴展了其理念,加入了原生代幣支持,核心重點在於支持USDT和USDC等穩定幣在 Spark 網絡內無縫發行和轉移。代幣轉移本身與 Spark 上的標準交易共享類似的信任模型,並保留了單方面鏈上退出的能力。
最後,Spark 用戶可以隨時通過在鏈上發佈預先簽名的退出交易,單方面退出鏈上。雖然退出成本會因葉節點深度和鏈上費率等變量而差異很大,導致退出金額較小,但退出交易是確保在發生惡意攻擊或 Spark 實體不可用時資金能夠被取回的關鍵工具。
信任權衡
Spark 做出了一系列務實的權衡,彌補了閃電網絡和比特幣目前使用中存在的問題。話雖如此,Spark 與鏈上比特幣或閃電網絡的使用相比,還是存在一些重大差異。在談論 Spark(以及大多數其他二層網絡)時,我更傾向於使用“信任最小化”一詞,因為只有比特幣在鏈上的自主託管才能真正被視為“無需信任”。
缺乏真正的終結性
Spark 中自我主權的核心風險在於缺乏真正的最終性,用戶永遠無法確定他們的資金是否會因為 Spark 運營者與之前的支出者合謀而被雙花。在 Spark 中,最終性(即知道你的資金只能通過你的密鑰轉移)存在——但無法證明——前提是任何單個 Spark 運營者在簽署 Spark 交易後刪除其密鑰共享。另一方面,如果所有 Spark 運營者都心懷惡意,拒絕刪除其密鑰共享,並與你擁有的某個葉子節點的先前發送者合謀,他們就可以對該葉子節點進行雙花,從而有效地竊取資金。
雖然在實踐中我認為這種 1-of-N 信任假設是合理的,但它顯然與常規的鏈上比特幣信任假設相差甚遠,因為後者默認具有真正的最終確定性。同樣值得注意的是,由於 Spark 交易的匿名性,之前的發送者可能與 Spark 實體是同一個實體。
潛在的中心化代幣控制
雖然代幣轉移本身與常規 Spark 支付一樣,遵循 1-of-N 信任假設,但如果發行方決定啟用此功能,代幣本身可能會隨時被凍結。雖然這與許多中心化控制的穩定幣(例如USDT ,它們經常出於法律原因凍結和沒收Tether )類似,但需要特別指出的是,許多受監管的穩定幣(例如USDC和USDT)很可能也會啟用此功能。
1-of-N 離線閃電網絡接收安全性
雖然離線閃電網絡接收不像標準閃電網絡支付那樣信任最小化,但資金盜竊需要所有 Spark 運營商合謀竊取一筆閃電網絡支付,由於閃電網絡支付規模較小,並且一旦被發現從用戶那裡竊取資金將帶來巨大的聲譽風險,因此這種做法並不積極,但由於閃電網絡本身具有支付證明功能,因此很容易檢測到這種情況。
隱私權衡
Spark 本身不應被視為隱私工具,因為它繼承了比特幣底層的核心隱私問題,並且在隱私方面最初的設計選擇也很糟糕。話雖如此,Spark 的核心技術可以擴展,通過引入所有交易的盲簽名、代幣轉移的保密金額以及其他在比特幣生態系統中通常無法實現的隱私技術,實現極佳的隱私保護。
交易可見性
雖然 Spark 內部的交易不會像鏈上交易那樣一直髮布到區塊鏈上,但所有 Spark 運營商都能完全查看交易。理論上,如果 Spark 運營商採用非日誌記錄策略,這可以提供短暫性,但實際上,所有交易數據目前都由 Spark 運營商之一 Flashnet 發佈到瀏覽器。這意味著外部觀察者可以輕鬆查找 Spark 地址,查看所有交易詳情、代幣餘額,甚至可以通過時間和金額分析將閃電網絡支付與地址關聯起來。
請注意,Spark 正在努力為錢包開發人員增加選擇退出此數據發佈的功能,方法是將交易標記為私有,然後回退到與之前為 Ark 描述的相同的 VPN 式信任模型。如果錢包開發人員選擇啟用此功能(我希望他們都會這樣做!),Spark 運營商將承諾不公開發布此交易數據,但當然,如果他們願意,仍然可以將這些數據存儲在本地。
缺乏地址輪換
目前,Spark 不支持在單筆交易中使用來自多個不同 Spark 地址的資金。雖然這個問題即將得到修復,並且已被公認為 Spark 的一個關鍵缺陷,但目前,這意味著大多數 Spark 實現將依賴一個單一的靜態地址來處理所有交易,這使得 Spark 的隱私性目前甚至比鏈上比特幣還要差。地址重用加上所有金額均可見,意味著攻擊者可以輕而易舉地對付款執行時間 + 金額啟發式算法,以確定哪些閃電網絡付款屬於哪些 Spark 地址。
Spark地址洩露
Spark 當前隱私問題的三重奏在於,Spark 提供的核心 SDK(以及最常見的 Spark 實現——Satoshi 錢包)默認在 BOLT 11 閃電網絡發票中包含用戶的 Spark 地址,而這並非必要。這意味著,由於使用了靜態地址,並且所有詳細信息都已發佈到瀏覽器(如上所述),任何人都可以輕鬆解碼提供的 BOLT 11 發票,並在 Spark 中瞭解該用戶的每筆交易。
請注意,這不是絕對必要的,錢包開發人員可以輕鬆禁用它,並且已經在使用 Spark 的 Breez Nodeless SDK 中刪除,並且正在迅速獲得採用,但仍然需要注意。
瞭解更多
- 官方文檔:https://docs.spark.money/home/welcome
- 比特幣第 2 層:狀態鏈:https://bitcoinmagazine.com/technical/bitcoin-layer-2-statechains
結論
Spark 和 Ark 都為比特幣的可用性和可擴展性帶來了激動人心的新紀元,但正如所有事物一樣,它們也各自存在著各自的優缺點。雖然兩者都不是完美的解決方案,但令人興奮的是,錢包開發者終於有了兩個相互競爭且有趣的方案,可以解決閃電網絡、原生代幣以及其他功能在其錢包和軟件中的實現問題,而無需像傳統閃電網絡那樣複雜。Spark 和 Ark 都為比特幣的擴展帶來了務實的結果,代表了一條艱難但合理的道路,在信任最小化、用戶體驗和擴展性之間取得了平衡。
由於兩者都是快速發展的協議,我們希望這兩種解決方案所帶來的權衡將在未來幾個月和幾年內得到迅速改進和最小化,從而提供更好的選擇,讓非託管比特幣落到更多人手中,同時擴展我們可以在比特幣之上構建的東西。
特別感謝 Spark、Ark Labs、Second、Breez、Spiral 和 Bitcoin QnA 的各位成員抽出時間為本文提供反饋!這些新系統的所有信任假設和權衡利弊需要團隊共同努力才能解決,我非常感謝各位成員抽出寶貴的時間來提供幫助。
這是 Seth For Privacy 的客座文章,表達的觀點完全是他們自己的,並不一定反映BTC Inc 或 Bitcoin Magazine 的觀點。
這篇文章《Spark 和 Ark:看看我們最新的比特幣第二層》最初出現在比特幣雜誌上,由 Seth For Privacy 撰寫。



