作者 :Gavin Wood,PolkaWorld
6 月28 日,波卡的年度旗艦活動 Polkadot Decoded 大會在丹麥哥本哈根舉行,來自全球的Web3 愛好者、Builder、投資人共同探討波卡生態的最新進展。
這次大會最令人驚喜的環節,應該就是波卡創始人Gavin Wood 作為神秘嘉賓出席,並且帶來了非常重磅的觀點。
Gavin 分享了波卡未來的發展方向,並提出了一個新的看待波卡的角度:不再受限於原有的平行鏈、中繼鏈,而是聚焦於區塊鏈所需的更底層資源—— 計算核心(核),將波卡看作一個多核計算機。
並且Gavin 提出,波卡在未來有可能取消現有的插槽競拍方式,而是採用以核為中心的更加靈活的資源分配方式,例如對“核” 的按月“大宗採購” 和“即時採購”。
以下文字由PolkaWorld 整理自Gavin 的本次演講內容。
波卡1.0
現階段波卡可以叫做波卡1.0 版本。
在這個階段,波卡的功能已經完備,已經實現了7 年前在白皮書中提到的所有功能,並且即將發布波卡1.0 的代碼庫。
那麼波卡1.0 是什麼呢?在最初的白皮書中,我寫道“波卡是可擴展的異構多鏈”。也就是說它是一條區塊鏈,但它有一個獨特的共識機制“BABE”,它可以為其他區塊鏈(平行鏈)提供安全性。
藝術化地概括一下,它大概是這樣的。
中間就是中繼鏈,它負責Crowdloan、Auction、管理餘額、質押、治理等,是功能很多的中繼鏈。邊上的小點是平行鏈,中繼鏈還要保障平行鏈的安全。而且這些平行鏈可以互相通信。
那麼波卡提供的產品形式是什麼呢?是以插槽的形式,6 個月一個租期,最長可以提前獲取兩年的插槽使用期,再加上Crowdloan 的機制。但除此之外,沒有其他方式可以利用波卡了。在波卡1.0 中僅有的產品就是平行鏈插槽。
看待波卡的新角度:多核計算機
這句名言說了這樣一個道理:一個人想要真正了解這個世界,那麼視角的轉變是至關重要的,甚至比去到更廣大的世界更重要。
因此在這裡我們將轉變視角,重新認識波卡是什麼。
平行鏈、中繼鏈這些概念都很好,也是我和很多人早期理解波卡的方式,是我們努力在構建的對象。
但隨著時間的推移,我們發現自己在做的東西其實和原本設想的不太一樣。有時候如果你比較幸運,或者你的團隊很強,可能會做出比你最初想做的更牛逼的東西。
在計算機科學裡,抽象化和通用化是很重要的。後來我們發現,我們對波卡進行的抽象化和通用化程度,遠比我們之前想像的要高。
那麼看待波卡的新角度到底是什麼樣的?
波卡是一個多核計算機
首先,我們所做的東西其實不是關於鏈,而是關於空間,關於鏈所需的底層資源。
其次,波卡是讓構建者去創造應用,讓用戶去使用應用的平台。從本質上說,它不是託管區塊鏈的平台。鏈剛好是讓波卡變得有用的方式之一,但可能不是唯一的方式。
最後,它的韌性(Resilience)也很強。我覺得這是比Unstoppable 更加中性的詞,意思是可以抵禦任何想要讓它做它本來無意去做的事情,也就是說可以抵禦對原有意圖的扭曲。
所以總的來說,波卡是一個很有韌性的、通用的、連續計算的提供商。連續計算的意思是—— 並不是你有一個工作,你把它做完了,這事兒就結束了;我們想做的是長期進行的任務,就算中間暫停了,但是可以繼續持續做。有點類似在2015、2016 年所說的“世界計算機” 的願景。
那麼從這個角度看波卡是什麼呢?它是一個多核計算機,多個核可以同時運行,做不同的事情。那麼我們會發現,在一個核上運行的區塊鏈就是平行鏈,平行鏈就是在一個預留好的核上持續不斷地運行。現在我們用這種新的範式來理解了平行鏈。
“波卡超級計算機” 是什麼樣的
那麼我們來更深入地了解一下這個“波卡計算機”。
“波卡超級計算機” 是多核的,比普通的計算機更強大。它有大概50 個核,在持續不斷地運行,並且是並行的。
根據我們的預測模型,再過幾年,當它經過大量的基準測試、優化之後,後期核的數量可以增加到500-1000 個。
每個“核” 的性能
再來看看每一個“核”。
這些核和CPU 核差不多。它有很多特徵、屬性,你可以描述它,本質上它就是一個做計算的東西,和CPU 核很像。
-
帶寬,也就是進出這個核的總數據量,大概是1 MB/s。
-
底層的算力,也就是它可以做多少計算呢?在Geekbench 5 的情況下大概是380。
-
延遲,也就是做兩個連續工作的間隔時間,大概是6 秒。
隨著時間的推移和硬件的進步,這些指標還會有一定的提升。
在過去,這些核能夠發揮用處的唯一方式是通過平行鏈。但其實,還有其他的使用核的方式,讓它更普惠,讓人人都可以使用。
波卡需要更靈活的分配方式
這些意味著什麼呢?
核其實是很靈活的。它不是僅能永遠處理一個固定任務,它可以輕鬆地切換它做的事情,就像一個CPU 可以切換任務一樣。既然核很靈活,那麼核的採購也應該是靈活的。
而插槽拍賣模型不夠靈活,它是基於波卡原有的範式——長期運行的單鏈而設計的。不過後來我們又有了平行線程作為補充,但也僅僅是朝向正確範式的一小步而已。
而這個模型給波卡生態設置了很高的進入門檻。如果你像我一樣,是一個喜歡自己搗鼓各種技術的人,以我自己為例,我可不想去搞些募資、營銷的東西,我只想部署一下代碼,然後看看能不能跑起來。但在當前的模型下,我想我們錯過了很多這樣的潛在合作者。
一種可能的未來—— 靈活版波卡
下面我將提出一種可能的未來方案,可以叫它“靈活版波卡”。
我們可以拋棄掉租期、插槽模型,而是將波卡視為一些“核”。這些核上的時間,我們現在叫做“核時間(Core Time)”,但之前也被稱為“區塊空間(Block Space)”。這些時間可以被定期出售,即大家可以購買並使用核時間。
我的建議是這樣。對於波卡原生的核時間出售(一級市場),可以分為大宗採購和即時採購兩種方式。
大宗採購每個月進行一次,買一次可以使用4 週。
即時採購有點像平行線程的即用即付模型,是按需採購。使用波卡的費用,準確來說是使用波卡的核的費用,會根據市場情況來定。可能市場上有多個核可用,也可能沒有,市場就是這樣的。對於即時的使用,它會是核時間的連續性出售。
也就是說,我們把靈活性做到最大化,剩下的交給市場。
大宗採購
讓我們更進一步地了解一下大宗採購怎麼運作。不過這不是最終的提案,而是一個提出來供大家討論的版本。
它的售賣每四周進行一次,每次以固定價格賣出四周的核時間。所有人都會付一樣的價錢。
-
目標是75% 的可用核時間都通過大宗採購來租出。
-
價格會根據上述比例有一定的浮動。
-
未出租的核會進入即時市場。
-
對之前租賃過的老客戶有特殊照顧。
即時採購
再說說即時採購。本質上就是在需要使用時再去採購的核。
-
它採用鏈上做市商或者經紀人模式,有規定好的價格,目標是100% 的使用。
-
可以從大宗市場拿出核時間,分成小塊,然後分別拿到即時採購市場來出售。
-
即時採購獲得的總銷售收益會由核時間提供商(包括波卡自己)均分。
即時採購的本質
-
由鏈通過收集人來採購
-
可以用於增加交易吞吐量(當你有額外的調用時,可以增加到雙倍的處理能力)
-
可以用於降低延遲(鏈本來是12-18 秒出一個塊,新增一個額外的核之後,就可以是6 秒出一個塊)
-
可以支持“核合約” 等新形式
大宗採購的本質
-
它是非同質化的資產。核本來是同質化的,但當它們被分成很多份不同的時間,就成了非同質化資產。這種非同質化資產理論上可以由XCM 來展示。經紀人可以展示這些核時間給其他鏈,這些鏈可能會想去交易這些時間。
-
這個經紀人鏈(系統鏈)可以讓這些四周的時間段切分開,分成很多個NFT。
-
這些時間段可以由經紀人平行鏈來消費,讓所有者可以將計算分配給波卡的核。
大宗採購的使用方式
那麼你獲得這些時間之後,要如何去使用呢?
-
可以把它們都指定給某條平行鏈,這就是目前的情況,只不過不是一個月一個月地進行,但都是一條鏈獨占一個核。
-
可以指定給多條平行鏈來共享,輪流使用一個核。
-
可以放到即時市場上去。
-
還可以瓜分之後分開售賣,可能可以通過一個單獨的平行鏈用NFT XCM 的方式來做到。
大宗採購中的租金控制
那麼如果你想要長時間鎖定一個核呢?那你當然需要去預測價格的走勢。
我建議設置這樣一個規則。當分配一個新的月份的大宗核時間時,經紀人記錄價格和分配給了誰作為備用。在下個月,這個人可以用限價購買到(會設置一個漲價上限)。
這對現有的平行鏈意味著什麼?
-
現有的平行鏈租約會照舊。比如你已經拍到了兩年的插槽,那麼會繼續。
-
大宗採購的定價由治理決定。
-
我個人認為應該從一個比較低的價格開始,來降低參與門檻。
-
對於已會設置地板價、租金控制和優先受讓權,來確保價格方面的長期保證。我們目前最多只是保證兩年的使用時間,但之後理論上是可以保證無限期地續約的。
另外,平行鏈將擁有更靈活的出塊時間。
目前平行鏈都是固定的出塊時間,大概是12 秒,等進一步優化之後大概是6 秒。在未來,我覺得平行鏈的出塊時間會更靈活。
平行鏈會有一個“基礎速度”。比如一條平行鏈與其他一條或幾條平行鏈共享一個核,每隔12 或18 秒出一個塊。但如果需要更高的吞吐量時,可以去即時市場或者在一些企業鏈上通過OTC 購買更多的核時間。
核時間還可以壓縮(通過犧牲帶寬來降低延遲)。把多個平行鏈區塊壓縮為一個中繼鏈的核,這會降低延遲,但會增加一些帶寬的成本,因為你得為一個區塊的開啟和結束來付費。
核時間還可以結合(通過增加額外的核來提高性能從而降低延遲)。你可以搞兩個同一時段的核,來獲得兩個完整的平行鏈區塊。這樣就可以把出塊時間從12 秒降低到6 秒甚至再降到3 秒。
以上所有這些東西,對於現有平行鏈的意義就是:
-
在你需要的時候,獲得更多的交易帶寬
-
在你不需要的時候,只需更低的成本
-
可以成為高性能多核鏈
-
可以成為周期性運行的鏈
-
可以成為純粹按需付費的鏈
-
可以成為低延遲鏈(例如做到每1 秒出一個塊)
-
可以進行長期資金支出規劃
那麼核可以怎樣使用呢。核的時間可以拆分開然後重組。
核的傻瓜式用法
這張圖是目前情況,對核時間的傻瓜式用法。從左至右,時間逐漸向後。每一行相當於波卡上的一個核。目前5 條平行鏈每條佔據一個核。
但實際上每條鏈分配給哪一個核不重要,都無所謂。即平行鏈可以在任何可用的核上運行,而不會影響性能,這些核並不會對某一條鏈有特殊的親和力。
核的靈活式用法
靈活的核用法,又叫做新型調度(exotic scheduling)。
可以分割區間
區間可以分割,區間的所有者可以分割區間並交易。一條平行鏈可以運行一段時間,然後停止自己的交易處理,讓另一條平行鏈來運行。
我們看到淺藍色的這條平行鏈,它停止了一段時間,然後又繼續了。綠色的鏈也是一樣。
可以跨越區間
多條鏈可以輪流在一個核心上運行,以分攤成本。可能你佔2/3 的時間,另一條鏈佔1/3,例如圖中淺藍色和黃色的鏈。
可以將核壓縮
同一個核在同一個時間可以處理多個區塊。在一個核心上驗證多個區塊,以實現更高的區塊速率和更低的表現延遲。
可以將核組合
使用多個核心獲得更強大的計算能力,這些核可以是瞬時的或長期的。
同一個paraID,同一個“任務”,可以在同一時間分配給多個核。它可以運用兩個核,從而在這一時段里處理兩個區塊。比如這裡的橙色有一個固定使用的核,但還有另一個間歇性使用的核。
未來可能的方向:多鏈共享一個核
兩至三條鏈可以在同一時間共享同一個核,以降低成本,而不降低延遲。這是一種比較投機的用法啦。
未來可能的方向:把上面的用法混搭
理論上說上述所有的用法都是可組合的,把它們混搭起來用,就會得到一個極致靈活的普適計算資源。
以鍊為中心→ 以應用為中心
波卡1.0 是以鍊為中心的範式:讓孤立的鏈可以互相發送消息,這種方式本質上和單鏈加跨鏈橋很相似,只不過平行鏈都連接到中繼鏈而已。
這導致了碎片化的用戶體驗。用戶可能在一條鏈上使用某應用,但他在另一條鏈上也想使用這個應用,也就是用多鏈的方式來使用應用。
但如果我們擁有以鍊為中心的範式,那麼也會擁有以鍊為中心的用戶體驗。而如果某個應用不是以鍊為中心,那麼所有事情都會變得很難。
在現實中,如果我們想充分利用波卡的潛力,那麼應用就需要跨鏈部署,而且需要是無縫跨鏈,至少對於用戶來說要如此,更理想的情況是對於開發者來說也是如此。
這是一個“波卡是什麼樣子” 的藝術化示意圖:
我們為了快速上線波卡,而選擇了把波卡的很多應用能力放到中繼鏈上。但這其實是一種權衡取捨。
好處是,這我們可以在技術基礎完全完成前,在較短的時間內交付很多功能,例如很棒的質押、治理、代幣、身份系統。
但它也有代價。如果我們把很多東西都綁在一條鏈上,就會出現一些問題。比如中繼鏈不能一直把它的資源用在自己的本職工作—— 保障網絡安全和確保消息傳遞上。並且它誘導大家形成一種以鍊為中心的思維模式。
在過去,我們可以只關註一條鏈,在上線時把波卡所有的功能都放在中繼鏈上,我們最早的目標就是這樣。但不巧的是,相關的工具還沒有跟上這個應用和用戶都在跨鏈的時代。
現在,系統級功能正在轉向跨鏈部署的範式。系統鏈更加普遍,中繼鏈處理的東西越來越少。應用需要能夠跨越這些鏈,並且不能因此讓用戶體驗變得困難。
這是我半小時前剛畫的示意圖,這是我認為理解“波卡是什麼” 的更好的觀察角度。
波卡其實並不是中繼鏈在中間,平行鏈圍繞在周邊,至少對於來到波卡生態的人來說不應該是這樣。事實上,波卡應該是一個集成系統,一個運行了很多應用的計算機。
沒錯,不同鏈的業務邏輯組件(即平行鏈)之間是有邊界的,但這對用戶來說可能沒有我們以為的那麼重要。更重要的是,用戶能做到他們想做的事情,並且是輕鬆地、清楚地、快速地做到。
圖上的圓點是應用,分割圓點的虛線是“paras”,我不想說成平行鏈,因為那會引誘我們掉入“每條平行鏈對應一個核” 的思維陷阱。這是波卡到目前為止的模式,但並不是唯一的選擇。
這些圓點在正常情況下應該可以互相交流,並且幾乎與在虛線範圍內的空間交流一樣輕鬆。
XCM
要怎樣做到這一點呢?這就說到 XCM 了。
XCM 是一種語言,而真正傳遞消息的傳輸層叫XCMP,我承認這兩個名字有點容易混淆。
XCM 是做什麼的呢?它的作用是抽像出鏈中常見的功能,它創造了一種描述性的語言,來描述你想要做什麼或者想要什麼事情發生。
只要鏈誠實地翻譯這個消息,那麼一切都好。但不幸的是,無法保證鏈會誠實地翻譯你的XCM 消息。在去信任的環境中,XCM 並不理想。
打個比方。在貿易中,我們會說XCMP 這種運輸手段給了我們一條安全貿易通道,我們不會在中途被打劫。發出的東西能確保被收到。然而,它沒有給我們一個在不同貿易主體間創建有約束力條款的框架。
舉一個更直觀的例子—— 歐盟。它是什麼呢?本質上它是一個聯盟,你可以加入它,它是一個條約框架,讓不同的主權國家遵守特定的條約。但是,它並不完美,因為雖然有共同的司法部門可以翻譯每個國家的法律,保障它遵守了法律,但它無法阻止某個國家改變其法律,讓其不與歐盟的要求一致。
在波卡中,我們也面臨類似的問題。 XCM 是一種表達意圖的語言,WebAssembly 是表達平行鏈在波卡中要遵守的法律,可以把它想像成歐洲法院(ECJ),保證平行鏈遵守了自己提出的邏輯,但這並不意味著這個邏輯無法被平行鏈合法地更改,從而去拒不遵守XCM 語言。
XCM 是一種表達意圖的語言,比如“我準備去轉賬資產”、“我準備去投票”。在互相信任的系統鏈之間,這不成問題。但如果它們是在不同的治理流程、立法程序之間,就會有問題了。在波卡生態中我們可以做得更好。
Accord(協定)
這裡我提出了一個新的術語叫Accord(協定)。協定是跨多條鏈的自願性條約。有點像說“我自願遵守這一個業務邏輯,並且我做的任何事情都不會改變這一點”。鏈自己不能破壞條約的邏輯。
波卡保障該邏輯的忠實執行。協定會針對特定的函數。任何加入該協定的鏈都要遵守規則,這個規則會針對這個特定的函數。
為了保證較低的進入門檻,提出協定是無需許可的。因為它是自願加入的,所以在通過和註冊之前都不會影響任何人。
這個示意圖不是最精確的,但大概意思是這樣。外圈是波卡,裡面有一些小圓點,我們把這個圖水平放置。那麼Accord 就是一個統治其本地的主權性的單獨的機制。
Accord 並不是在所有系統中都能存在的。據我所知,波卡是唯一能夠支持它的存在的系統,因為波卡是唯一一個擁有同強度安全層的系統,而且還能為每個分片提供特定的狀態轉換函數。這些特點讓波卡可以做到在其他架構(如跨鏈橋)中不可能達到的合作模式。
對波卡比較熟悉的人可能聽過“SPREE”,SPREE 就是可以實現Accord 的技術。
一些Accord 的使用場景
我們來看一些Accord 的可能案例。
其中一個就是資產樞紐。
目前,如果兩條鏈想要有資產的交互,必須通過第三條鏈,即資產樞紐鏈。如果其中一條鍊是本地資產的鏈,會稍有不同。但理論上,如果兩條不相關的鏈想要交易第三方資產,你必須額外去打通一條路徑。
有了Accord 就不需要這樣做了。你可以把它看作一個大使館,它存在於通用流程空間中,和平行鏈在同一時間在同一核上調度,但又不是平行鏈業務邏輯的一部分,而是另外存在的。這有點像大使館有自己原本國家的法律,但它們的地理位置卻在當地的國家。同樣地,Accord 就像外部業務邏輯,但是又是大家認可的,而且存在於本地。
另一個案例是多播XCM 路由器。它可以發送一條消息,但是跨越到多條鏈,還可以是以某種順序進行。比如在這裡做一個操作,在那裡做另一個操作,但是永遠是在我的允許下的。這也是目前做不到的。
還有一個案例是去中心化交易所,它可以在多條不同的鏈上設置前哨站,好讓兌換直接在本地發生,而不需要開啟雙向通道。
這只是我暫時能想到的幾個例子,相信在之後這個技術的潛力會被進一步發揮出來。
Project CAPI
簡單講講用戶界面—— Project CAPI。它的作用是讓跨越多條鏈的波卡應用可以擁有順滑的、體驗良好的用戶界面,即使是在使用輕客戶端的情況下也是如此。
隱士中繼(Hermit Relay)
也就是將中繼鏈中所有用戶級功能,都轉移到系統鏈中。例如:
-
餘額
-
質押
-
治理與身份
-
核的租賃
最終讓波卡的功能跨越多個平行鏈,釋放中繼鏈的空間。
打造有韌性的應用平台
最後一個部分,我想重申一下我們在做的事情,以及為什麼要做。一切都是關於韌性。
世界總在變化,但如果大家有明確的意向,那麼讓這些意向能夠被尊重是很重要的。我們現在所用的系統不夠有韌性,它們是基於很老派的思想而建立的。
當你的系統沒有加密學、博弈論時,就會發生一些糟糕的情況。例如在這條新聞中提到的大型網絡攻擊,讓600 萬人的信息遭到洩露,也就是世界上千分之一的人啊。而且這些事情經常發生。
那麼怎樣打造一個不受到這些威脅的系統呢。首先當然是建造一個去中心化的、基於密碼學的、經得起博弈論考驗的系統了。但我們具體要做什麼呢?
雖然我們天天都在宣揚“去中心化”,但是如果所有東西都要通過同一個RPC 供應商,就算不上真正的去中心化。
去中心化需要由多種因素共同提供:
-
輕客戶端的使用:Smoldot 和CAPI 將允許高性能的基於輕客戶端的UI
-
ZK 原語:構建一個功能豐富的、高性能的ZK原語庫。第一個庫已經快完成了,將為鏈上集體(包括Fellowship)提供隱私保護。
-
Sassafras 共識:新的無分出塊共識算法。提高了安全性和隨機性,具有高性能的交易路由。提高了平行鏈的性能和用戶體驗,加密的交易防止了Front-Running,可能帶來潛在的MEV收益。
-
混合網絡/洋蔥路由:避免洩露交易的IP信息。是用戶、鍊和OCW之間的通用消息系統。
-
人的去中心化:引入很多的且足夠多元的人參與到系統中。通過治理、國庫支出、工資、補助等方式激勵大家的參與,並且吸取和維護集體知識。
牢記初心
最後,我想要重申一下我們的初心。波卡並不是為了創建某個特定的應用而存在,而是去提供一個平台,在該環境中提供一個部署多種應用的方式,並且讓應用可以互相利用對方的功能,來提高廣大用戶的福祉。並且我們要確保這個願景能夠盡快實現,這就是波卡的使命所在。
如果波卡無法對世界上的變化保持一定的韌性,那麼構建波卡將毫無意義。這些變化可以是達到同樣目的的其他方式,或者已有的來自厭惡去信任世界的外部組織的威脅。