什麼是通道工廠,它們是如何工作的?
閃電網路的一個開放研究問題是,需要大量的鏈上交易才能為所有閃電網路使用者創建足夠的支付渠道。最近,我在這種情況下看到了“頻道工廠”¹這個詞。
什麼是渠道工廠?它們是如何工作的?這如何幫助擴展閃電網路?
¹ 顯然,該術語是由 C. Burchert、C. Decker 和 R. Wattenhofer的論文Scalable Funding of Bitcoin Micropayment Channel Networks引入的
什麼是渠道工廠?
簡而言之,渠道工廠是可以用來創建更多支付渠道的支付渠道。這聽起來很奇怪,但實際上非常簡單:
在正常支付渠道中,您始終擁有由所有參與方簽署的交易,準備好將目前渠道餘額送出給區塊鏈。例如,在 Alice 和 Bob 之間的通道中,該交易可能有兩個輸出,一個支付 Alice 0.25 BTC,一個支付 Bob 0.75 BTC。如果此範例交易被廣播,它將關閉 Alice 和 Bob 之間的支付通道。
但是,可以將準備送出交易格式化為不僅關閉現有支付渠道而且打開新支付渠道的交易。在這種情況下,允許初始支付通道具有零確認安全性的相同安全性也將其安全性擴展到第二個支付通道。
正常支付通道的關鍵特性是能夠多次安全地更新通道狀態(餘額)而無需創建額外的鏈上交易,因此通道工廠的關鍵特性是能夠安全地創建和銷毀新支付無需創建額外的鏈上交易的渠道。
它們是如何工作的?
至少兩個人,最好是十個人或更多人聚在一起創建支付通道(通道工廠)存款交易。這具有正常的支付渠道邏輯,如果他們都同意,則允許所有參與者花錢,或者如果其他參與者不合作,不滿意的參與者可以單獨提取他的資金。
當存款交易有足夠的確認來滿足所有參與者時,他們會更新初始支付通道(通道工廠)的狀態以創建一堆在他們之間打開的非廣播支付通道。(通道需要在它們之間,因為它們每個都需要確保用於打開通道的比特幣沒有被花費兩次,即雙花。)
由於初始支付通道(通道工廠)已經有足夠的確認,打開二級支付通道是即時的。然後,第二個支付通道可以像普通支付通道一樣使用(例如用於可路由支付閃電網路),除了當需要關閉它們時,參與者可以選擇將最終狀態送出給區塊鍊或簡單地更新他們的餘額在通道工廠中以啟動新通道。
這如何幫助擴展閃電網路?
假設我們有一群使用者都想互相開放支付渠道。對於
n
使用者來說,他們需要在m
哪裡開通渠道m = n(n-1)/2
。對於目前一代的閃電網路通道開放,他們可能會花費至少兩個輸入並產生至少三個輸出(大約 240 vbytes 乘以m
通道)。對於通道工廠,它們將有大約n
輸入(70 vbytes)和n + 1
輸出(大約 25 vbytes)加上 10 vbytes 成本。這是儲蓄會計:這不包括渠道關閉成本,因為渠道可能會在可變的時間長度內保持開放,因此更難計算。Schnorr 簽名聚合帶來的額外節省也不包括在內——如果應該在比特幣上啟動它,它將通過減少輸入使用的空間量來適度提高通道工廠的效率。請注意,此處使用的數字是粗略的近似值。
請注意,儘管渠道工廠即使對於少量參與者也能提供顯著降低的成本,但他們真正擅長的地方在於降低在使用者之間建立密集的支付渠道網路的成本。這可能會通過確保從消費者到接收者的大多數路徑保持較短,從而顯著提高分佈廣泛的閃電網路的服務質量,這有助於分佈廣泛的網路進一步有效地與更集中的網路競爭,後者在大型樞紐之間具有較短的路徑 -像實體。