我要介紹的是 Polkadot 接下來幾個月會推進發展的事情。其中一個就是過去幾周在社區里面提出的關于平行鏈發展的顧慮和問題。
現狀:平行鏈預備金金額較大
我們的愿景是希望很多團隊來建設平行鏈,希望這些平行鏈可以發展良好。其中一個比較大的顧慮就是,搭建一個平行鏈需要在網絡中提交較大金額的預備金。雖然這個預備金最終可以被退回,但這畢竟也是一個比較大的金額。
當然我們也有一些幫助團隊來籌集這部分資金的方式,比如通過中繼鏈上發布眾籌的活動的功能;以及 DOT 代幣借貸,在平行鏈不活躍之后全額償還的機制。在這個基礎上,我們還是希望可以設計出一套針對希望搭建平行鏈的開發者的,更加靈活,即用即付的收費模式。
新設計:共享稀缺資源的 “平行線程”
因此,我在過去幾天結合了互聯網領域的一些收費方式,做了一些思考和研究。本質上,Polkadot 網絡中的平行鏈是稀缺資源。而 Polkadot 的中繼鏈在短的時間內,每一個區塊鏈產出的區塊內,只能處理 100 條左右平行鏈的數據。目前的假設是,這 100 條平行鏈是同樣的那 100 條。然而,原則上來說,中繼鏈可以在每一個產出的區塊中,處理任意 100 條平行鏈上傳來的驗證信息,并不需要是固定的 100 條平行鏈。
在互聯網和計算網絡的領域有幾個稀缺資源的類比,其中一個是內存資源 (Memory),另一個是硬件線程 (Hardware Threads)。
一般的手機和電腦,都有 2-8 個核 CPU,允許做多線程并發信息處理。然而計算機操作系統有更多的任務線程,比如這臺蘋果操作系統,就大約 390 個不同的操作任務線性,同時并行獨立運行。一般來說,這 390 多個不同的操作任務線程,并不會占用太多的計算資源,它們在被呼叫操作之后會被喚醒。單個線程都會認為它們是獨立在 CPU 上運行,然而事實上,這些線程在共享 CPU 的計算資源。一般來說,當每一個單位不需要實時占用大量稀缺資源的時候,系統設置會讓這些進程共享稀缺資源,允許某些單位在短的時間內使用這些資源。
通過分析和類比這個共享體系,我想到了為何不在平行鏈這塊,也采用這樣的共享收費機制。換句話說,平行鏈的插槽(Slots)可以被其他平行鏈共享。因此我們把這個被共享了插槽的稱為平行線程(Parathreads)。
平行線程是一個新的抽象,他的意義是如果你的項目并不需要所有平行鏈的功能和吞吐量,不需要像平行鏈那樣,通過所有的驗證者節點,把所有的區塊數據,交易等都打包進入區塊。如果你的項目只是需要處理一部分你需要處理的交易,并在你需要的時候將它們打包進區塊中,就適合使用平行線程。
平行線程跟平行鏈使用的是同樣的 API 模型、同樣的底層代碼和計算模型。平行線程跟平行鏈一樣有跨鏈互通的功能,整個網絡對待平行線程跟對待平行鏈是一樣的地位。它永久擁有自己的插槽,這跟計算機軟件認為它們時刻擁有 CPU 資源是一樣的道理。平行線程和平行鏈也可以按需互相轉換。
平行線程和平行鏈在付費模型上的區別
之后平行線程和平行鏈最主要的區別是在經濟體系和付費模型上面。平行鏈需要通過拍賣質押的方式來獲取一個插槽的位置,一共大約 100 個左右插槽位置。有了這個插槽位置之后,他們可以確保每一個 Polkadot 網絡的產出區塊里面都可以有他們平行鏈上產出的區塊數據,并可以跨鏈傳播轉換到其他各個平行鏈當中。獲得這個平行鏈名額需要通過質押 DOT 代幣拍賣的方式獲取,當參與拍賣插槽的團隊比較多的時候,此質押代幣的數量可能會比較大。
然而,平行線程并不需要做這個拍賣。它只需要支付儲備金 10-100 個 DOT 即可,相比獲取一個平行鏈要便宜很多,比一個智能合約要貴一些。平行線程僅會在他們的交易被 Polkadot 網絡處理的時候,才會需要支付費用。當平行線程網絡靜止的時候,他們并不需要支付費用,僅僅是一開始的儲備金。當平行線程有比較多的交易需要處理,插入到 Polkadot 區塊鏈的時候,他們用 DOT 代幣做支付費用。平行線程也可以獲得優化處理,當其他也有很多平行線程需要處理交易,產生區塊插入到 Polkadot 網絡時,平行線程可以被協調,切換到相對網絡不那么繁忙的時間段,從而來降低網絡費用。
中繼鏈容量的分配
這一頁就是 Polkadot 中繼鏈的結構介紹。大概會有 100 個平行鏈的插槽。
這其中一部分會是特別預留的插槽,這些插槽會被用來確保 Polkadot 網絡運行健康良好。會有一些系統級別的平行鏈,比如治理層邏輯的平行鏈,staking 邏輯平行鏈,以及網絡內部進行 DOT 代幣賬戶轉賬邏輯的平行鏈,這些是比較重要的平行鏈,跟中繼鏈同時發起建立。另外的預留插槽會給用來讓中繼鏈可以后續做深度擴張的嵌套中繼鏈,和那些連接不同共識機制獨立的區塊鏈網絡進入 Polkadot 網絡的轉接橋 hub 的平行鏈。
另外一部分插槽我們稱之為租用插槽,這些是永久存在于波卡網絡的成員。這些成員會永遠產出區塊,并讓這些區塊得以驗證進入到 Polkadot 區塊鏈網絡中。他們擁有持續的網絡吞吐量資源,有全額的網絡功能。
最后剩下的這些插槽會被預留給這些平行線程項目。每一個區塊都會在所有的平行線程中做拍賣,誰最需要這些插槽,就可以在這些平行線程中通過拍賣方式競拍然后獲取這個平行鏈的插槽。
平行線程運作方式舉例
接下來我們看一看這個平行線程具體是怎么運作的。
這個 PPT 當中有兩個特定的區塊,Block42 和 Block43。同時我們有一堆收集者,這些收集者會從那些需要在這個區塊中寫入交易的平行線程中收集區塊。
收集者通過同樣的數據發出指令來分別哪些區塊是來自同一個平行線程的。然后中繼鏈從中選出 3 個收集者收到的最高競拍,把這三個區塊寫入中繼鏈中,并向這三個平行線程收費。
這個平行線程的收費和出塊驗證機制,跟平行鏈出塊和驗證接入到中繼鏈當中的機制是一樣的。
平行線程的經濟模型
讓我們來看一下平行線程的經濟模型,它包含 2 個不同的收費部分。
其中一個部分是交易手續費,也就是根據需要處理的數據量和區塊個數來計算的交易手續費。
另一個部分是來自平行線程的贊助。這部分的收費模型是圖中左下的收費曲線,X 軸代表距離上一個被平行線程創建、驗證并最終接入到區塊鏈中的區塊有多少的時間。起初因為有一個緩沖休眠期,所以需要的額外費用是 0,但 X 軸的時間超過一定數量之后,平行線程需要支付指數級增長的費用,來確保他們需要創建的交易區塊肯定可以在不那么大的延遲下被處理,驗證進入到區塊鏈網絡中。
例如這個圖中,我假設平行線程已經休眠了 12 個區塊,然后需要重新出塊的話,需要支付 60 個平行線程特定的 TOK 代幣,而如果已經休眠了 24 個區塊的話,則需要支付可能 60 億個平行線程特定 TOK 代幣才可喚醒。
然后我們把這兩部分的費用加到一起,然后告知收集者,如果某個收集者可以將這個來自平行線程的區塊收集并獲得驗證,則這個收集者可以獲得 100 個 TOK 代幣 —— 40 個來自交易手續費,60 個來自贊助或者叫額外的 top up 費用。
在這個 PPT 中,Dave 作為一個收集者,他意識到 100 個 TOK 代幣作為收集獎勵的價值大于 5 個 DOT 代幣的價值。因為他作為收集者,會獲得這 100 個 TOK 代幣,并給出 5 個 DOT 給中繼鏈,來確保他可以收集下一個區塊的交易數據,并可以將區塊進入到中繼鏈中。
這 5 個 DOT 里的 1 個 DOT 會被分配給中繼鏈的區塊發布者(他們會選擇最高獎勵的平行線程,因而有經濟動力來確保這個區塊可以寫入中繼鏈),另 4 個 DOT 會被分配給用于整個網絡治理,滿足全網絡成員利益的財務管理(Treasury)賬戶。
如果 100 個 TOK 價值是 6 個 DOT 代幣的話,Dave 作為收集者整個過程下來花費了 5 個 DOT 讓這個平行線程的區塊得以獲得驗證,并最終寫入到了中繼鏈,自己最終獲得 1 個 DOT 的獎勵。
平行線程讓鏈的轉移更平滑
另一個需要分析的比較重要的內容就是鏈的轉移。
每一個平行鏈都有 2 年的有效期,6 個月之后他們就可以開啟不斷更新 2 年有效期的拍賣。但是有一定的概率,某些平行鏈參與的插槽拍賣不斷的失敗,他們離 2 年的有效期截止不斷接近,他們最終會被踢出平行鏈的陣營。有一個顧慮來自于某一些平行鏈被其他的平行鏈惡意競爭,最終被惡意擠出平行鏈陣容的情況。
這種情況的經常發生對于整個 Polkadot 網絡也是不利的。盡管這是一個相對極端的情況,發生的可能性幾率不大。因為如果真的這樣的情況發生,平行鏈可能被其他的惡意踢出,那么很可能在發生之前整個 Polkadot 網絡的治理機制就會介入,來做協調治理。
在這邊我們假設這是一個潛在會發生的問題,平行線程就會在這種情況下提供一個中間的臺階。當平行鏈將要接近生命周期截止時,他們一般會直接變成一個轉接橋鏈,或者更壞的情況直接變成一個完全獨立的鏈。而現在,他們就可以變成一個平行線程,仍然可以被使用、接收和發出信息、提供服務,哪怕并不能像平行鏈那樣每個區塊都可以接入跨鏈網絡。
因為之前是從平行鏈轉過來的,大概率他們鏈上會有一些使用場景和有效應用,大概率他們鏈上的交易和數據會可以被有效驗證接入到中繼鏈上,盡管可能不能像平行鏈一樣每個區塊都接入。通過這樣的機制,對于這些無法續簽的平行鏈來說,也是一個比較體面的降權機制。同時,如果這樣的鏈會有收益和場景保持,未來仍然也可以繼續競拍插槽,最終回到平行鏈的陣營。
平行線程到平行鏈的切換并不是很重的轉換過程,而是一個比較輕的操作,僅需要一個區塊和一些簡單的技術邏輯就可以完成。當然平行線程也可以變成轉接橋鏈和安全鏈,當有經濟激勵的情況下,也會有可能讓驗證者去驗證他們的區塊。
總結:平行線程的地位和作用
總結來說,平行線程是一個介于平行鏈和轉接橋鏈之間的中間層級的地位。
平行線程擁有跟平行鏈一樣級別的來自中繼鏈的共享安全性和互通性,并確??斓狡诘钠叫墟溸€可以一直保持在線。它讓每個開發團隊都可以以降低的成本接入區塊,小的平行線程可以不用跟大的鏈去競爭,并確保每個平行線程都可以通過支付一定的 DOT 代幣來支付交易費和通脹成本來享受到共享安全性。
評論
查看更多