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