兩年前的今天,整個加密領域都對Polkadot 即將推出的平行鏈插槽競標充滿熱烈的期待。然而,隨著時間的推移,這種競拍機制被證明具有相對高的參與門檻,這在一定程度上阻礙了其生態系統的進一步拓展。但值得慶幸的是,Gavin Wood 博士帶領的的團隊及時洞悉了問題所在,決心推翻先前設置的障礙,積極思考如何推進生態的持續發展,降低進入門檻,更為注重提供真正有價值的區塊鏈產品—— 「區塊空間」。
在這樣的歷史背景和轉變中,Polkadot 未來的佈局和發展走向會是如何?讓我們一起透過這篇文章全面的了解Polkadot 如何更好的服務Web3 用戶。
了解Polkadot 1.0 及其背後的哲學將幫助我們更好的理解Polkadot 生態的未來方向!
重新定義:Polkadot 將作為一種計算資源
現在Polkadot 已經被抽象化和概括得超越了白皮書中原來提出和設想的內容。 Polkadot 是:
-
區塊空間(鏈需要的底層資源),而不是鏈。
-
一個建立供人們使用應用程式而不是鏈的平台。本質上說,Polkadot 不是一個託管鏈的平台,鏈只是一種建立應用程式和增加Polkadot 實用性的方式。
-
一個能夠持續、穩定地提供運算服務的平台,而這種運算服務不僅僅是特定的或限制的,而是通用的,可以適用於各種不同的應用和場景。其中,「持續」意味著在開始執行某個動作或計算後,然後在某個時刻暫停,之後再從暫停的地方繼續執行或轉而執行其他的任務。
-
一個多核心計算機,其中連續在不同核上並行運行的鏈被稱為平行鏈。目前,透過插槽競標機制,一個鏈使用一個核,但對於平行執行緒可能是在不同時期按需為多個鏈提供資源。目前在Polkadot 上,大約有50 個核獨立並行運行。
從現在開始,應用程式將被用作一個通用術語,描述任何可以使用Polkadot 核心來存取安全性和去中心化計算的東西。
Polkadot 主要發展方向
如果我們把Polkadot 想像成一個服務提供者,透過其核心提供既無需信任又具有彈性的計算服務,並確保應用程式之間能夠安全地互通或互相通信,那麼Polkadot 的未來發展可以朝以下主要方向發展—— 從以鏈為中心的生態系統轉變為以應用為中心的生態系統。消除每個應用程式都擁有一個核心的假設,而是所有核心都是資源,可以根據應用程式的需要進行消耗和使用。
以前,透過競標機制保障平行鏈插槽是一個競爭性的過程。有了coretime,現在不再需要插槽競標。團隊可購買一些即時的coretime,或根據需要預約大量coretime。這大大降低了軟體玩家和平行鏈團隊的進入門檻。
除了這些主要變化,敏捷的核心使用(agile core usage)和coretime 分配將允許任何應用程式根據其需求存取Polkadot 的計算,而不會浪費寶貴的區塊空間。協定也將改善跨鏈通訊和XCM 訊息的安全保證。最後,Polkadot 本身將透過把核心邏輯分解到自己的系統平行鏈上來實現擴展,從而為平行鏈協定和accords 提供更多的頻寬。
從插槽競標Coretime 市場
區塊鏈的最終產物是區塊空間。應用程式需要存取Polkadot 的區塊空間,而存取區塊空間的入口是核心(Core)。因此,應用程式將需要預留一些在核心上的時間或核心時間,以獲得有限期間存取Polkadot 的安全區塊空間和互通性的權利。
核心必須是敏捷(agile)和通用的(general):
-
「敏捷性」 意味著核心可以快速地調整或切換它們的運行任務,就像現代的CPU 可以快速地在不同的程式或任務之間切換。
-
「通用性」 意味著這些核心不是專門為某一個特定任務設計的,而是可以適應和處理多種不同的任務。
因為核心具有這樣的特性,所以為了充分利用它們,獲取(或分配)這些核心的方式也需要是靈活和快速的,即「敏捷的」。
插槽競標機制不是敏捷的,它創造了高門檻,並且是為長時間運行的單一應用程式設計的(即白皮書中提議的原始Polkadot 願景)。
我們摒棄了經典的租賃競標,提議為核心時間建立一個「敏捷的」市場,基本上核心時間成為一個可以被代幣化、出售和交易的商品。這種設定最大化了Polkadot 的敏捷性,讓市場找出應用程式成功所需的最佳解決方案。
應用程式將能夠根據其需求預訂批量核心時間和即時核心時間。批量核心時間租賃將透過broker 系統平行鏈,在固定的時間內以固定的價格批量租用核心時間。即時核心時間租賃將基於即時需求而進行銷售,租賃價格將根據當前的即時價格來確定的。這樣的系統將降低潛在建造者的進入門檻。
核心時間銷售的收入可以被銷毀,或流入國庫,或用於這些選項的混合。該話題目前正在討論中。欲了解更多信息,請參閱RFC-0010 和RFC-0015。
-
RFC-0010:https://github.com/polkadot-fellows/RFCs/pull/10
-
RFC-0015:https://github.com/polkadot-fellows/RFCs/pull/17/files
從以鏈為中心到以應用為中心
Polkadot 1.0 是一個以鍊為中心的範式,由能夠交換訊息的孤立鏈組成。這與完全不同的鏈透過橋連接並沒有本質的不同,唯一的區別是有中繼鏈保護網絡,提供訊息傳遞能力,並執行一些額外的任務,如Crowdloan、Auction、Staking、帳戶、餘額和治理。如果一個系統是以鏈為中心設計的,那麼最終它產生的應用和為使用者提供的體驗也將是以鏈為中心的。系統的設計和架構方式會直接影響它產生的應用程式的特性和提供給使用者的體驗。如果系統的重點是鏈,那麼應用和使用者體驗也會反映出這種傾向。
Polkadot 的真正創新在於利用不同鏈提供的獨特價值主張,並利用這些鏈的合作潛力來建立跨鏈應用來解決實際問題。因此,這些應用需要跨鏈。
未來,中繼鏈處理的任務越來越少,它只會專注於主要任務:保護網路並提供安全的訊息傳遞能力。系統平行鏈將用於接手如質押、治理等的次要中繼鏈任務。具體查看PolkaWorld 最新文章《Gavin Wood 提議最小化中繼鏈,身份、質押和治理系統將首先遷移到系統平行鏈! 》
XCM 和Accords
XCMP 是一個專門用來傳送XCM 訊息的傳輸層協定。它為訊息的傳送提供了具體的方法和一個安全的路徑,但不涉及更高層次的協定細節或結構,這可能涉及如何格式化訊息、如何處理特定的互動邏輯或其他更高級的協定功能。簡而言之,XCMP 專注於基本的訊息傳輸,而不是處理複雜的協定邏輯或規範。
XCM 是一個專門設計的格式或語言,用來表示在鏈上常見操作的意圖。這就好像一種描述「我打算這樣做」或「我希望這樣發生」的通用語言。 XCM 訊息是透過XCMP 機制在多個鏈之間傳輸的。在一個理想的、完全無需信任的環境中,系統需要有強有力的機制來確保每一條鏈都能正確、忠實地解讀並執行XCM 訊息。簡單地說,即使我們可以安全地發送跨鏈訊息,但仍然存在這些訊息被接收方鏈誤解或誤解釋的風險。為了確保這種正確性和安全性,可以使用一種稱為「Accords」 的機製或協定。
Accord 是一種在多個鏈之間達成的可選協議或條約。這個條約的邏輯是固定的,不能被任何參與的鏈更改或破壞。 Polkadot 作為一個平台,承諾會忠實地執行這些Accord 協議,確保它們在所有參與鏈上都得到適當的執行。每一個Accord 都會針對某個特定功能或特定需求。一旦某個鏈決定加入某個Accord,那麼這個鏈就需要遵循這個Accord 的規定,並提供Accord 中所描述的功能。為了讓更多的鏈可以方便地參與,創建一個新的Accord 是開放和無需特定權限的。然而,儘管任何鏈條都可以提議一個新的Accord,但它不會立即生效。只有當其他鏈同意並註冊這個Accord 之後,它才會正式生效。總的來說,Accord 是一種幫助多個鏈在Polkadot 平台上協同工作的機制,它確保了協議的一致性和安全性。
總之,當一條鏈向另一條鏈發送XCM 訊息時,Accord 將確保接收鏈會按照發送鏈的原意來解讀和處理這個訊息。其次,Accord 在應用程式之間創造了一個完全無信任和協作的環境。儘管各個應用程式或鏈之間可能沒有預先建立的信任關係,但是透過Accord,它們可以安全、可靠地互相溝通和合作。
Polkadot 是唯一一個Accord 可以正常存在的生態系統,因為它具有一個同質的安全層,該層還為其每個邏輯組件提供了一個特定的狀態轉換功能。這允許多個邏輯元件(即跨應用程式)之間的合作模式,這在橋上是不可能實現的。
Accord 將使用SPREE 技術來實現。 https://wiki.polkadot.network/docs/learn-spree
Polkadot 1.0 中的核心使用
在Polkadot 1.0 版本中,不論實際需求如何,應用程式都會每12 秒產生一個區塊。這種做法造成了資源的浪費,因為無論交易是否繁忙,都會以這樣的速度生產區塊。當網路交易非常繁忙時,為了得到經濟獎勵,會有激勵去生產充滿交易的滿區塊。而在交易不太繁忙時,又可能產生沒有任何交易的空區塊,這同樣是不經濟的。
下圖顯示了Polkadot 1.0 的核心使用情況,其中橫軸代表時間,每一行代表一個核心。顏色顯示了使用一個核心的不同的平行鏈。
上述設定提供了一個簡單且安全的,分片執行環境。
然而,為了實現全面效率,必須在需要時生產區塊,系統必須目標全區塊容量,降低激勵驗證者生產半滿或空區塊的可能性。
敏捷的核心時間分配
在Polkadot 1.0 版本中,所謂的「核心時間」指的是一個應用程式可以在特定的核心上運行的固定時長,這個時長是兩年。但現在,這個固定兩年的限制被取消了,以便更靈活地滿足各種應用的需求。也就是說,核心時間的使用變得更加通用和靈活,不再受到先前版本中的固定兩年時限的約束。
分割核心時間
核心時間的所有者可以分割或交易它。應用程式A1 可以在核心C1 上運行一段有限的時間,然後另一個應用程式A2 可以繼續在核心C1 上運行,或者應用程式A1 可以繼續在另一個核心C2 上運行。某些應用程式可能會暫時停止運行並在後來恢復。
分段的核心時間
範圍可以進行分段(即應用程式可以在一個核心上輪流運行),以分享成本或減少區塊生產速率,例如下圖所示。
組合核心時間
一個應用可以同時被分配到多個核心。某些應用可能有一個永久的核心分配和一個間歇性的分配,例如,在高需求時期,可以在同一時間段向多個核心發送多個區塊,以減少延遲。
敏捷的核心使用
在Polkadot 1.0 的版本中,系統中的每一個”核心”都是被分配給一個特定的應用使用,而這裡的應用等同於一個平行鏈。但是,從理論上講,哪個應用被分配到哪個核心上運行這種分配關係並不是特別重要。也就是說,每一個核心都是中立的,它不會對任何特定的應用有特殊的偏好或更友善的處理。
在這裡,我們去除了每個應用都擁有一個核心的假設,而是所有的核心都是資源,按照生態系統中所有應用的需要來消耗和使用。
壓縮核心(Compressed Cores)
一個核心有能力同時處理和保障同一應用的多個區塊。將多個應用的區塊組合在同一個中繼鏈核心中可以降低處理這些區塊的延遲時間,但這會導致所需的頻寬增加。而為了組合這些區塊,所需的費用是固定的,具體體現在開啟和關閉區塊的費用上。
共享核心(Shared Cores)
與其他應用程式共享核心以共享成本,但不減少延遲。請注意,這與分割核心時間不同,其中一個核心在不同時間被多個應用使用,以更高的延遲為代價共享成本。
敏捷的可組合運算系統
上述所有關於敏捷核心時間分配和核心使用的選項都可以被組合起來,從而實現一個敏捷的去中心化全球計算系統。
因此,這個新的願景集中在Polkadot 的資源上,即安全、靈活且可用的區塊空間,這可以透過在核心上預留一些時間來獲得。在核心時間的分配和核心的使用上的敏捷性使得網路效率和區塊空間的使用得到了最大化。
Polkadot 的韌性
那些不考慮去中心化、密碼學和博弈論而進行設計的系統,容易被破解並容易受到網路攻擊。 Polkadot 是基於以下不同的支柱來建立其韌性:
-
使用輕客戶端:集中式的RPC 伺服器雖然常見,但容易受到攻擊,且對於基於區塊鏈的應用程式來說,RPC 不是一個無需信任的去中心化入口。透過Smoldot,Polkadot上可以使用輕客戶端。
-
零知識(ZK)原語:它們可能對審查和中心化產生問題,因為將大型狀態轉換函數歸結為一個正確執行的證明目前並不是構建有韌性系統的擴展解決方案。然而,Polkadot 正在為特定用例建立一個功能豐富且高效能的ZK 原語庫。第一個用例將用於改進像Polkadot Technical Fellowship 這樣的鏈上集體的隱私。
-
Sassafras 共識:新的無分叉區塊生產共識演算法,取代BABE,只有當一個區塊有望被整個網路確認並最終確定為有效時,這個區塊才會被生產。這將提供多種好處,如:
-
無分岔升級可以提高安全性、平行鏈效能和使用者體驗
-
為了防止某些實體在看到未確認的交易後試圖優先執行自己的交易,系統採用了高效能的交易路由機制。在這個機制中,交易會直接、快速地被加入區塊中,而不需要在整個網路中廣播。同時,為了增強安全性,所有交易都會進行加密處理。
4. 節點間混合網路:為短訊息提供的隱藏傳輸,可以
-
避免交易洩露IP 訊息,以及
-
引入一個通用的訊息系統,允許使用者、鏈、鏈下工作者、智慧合約、模組以及鏈中的任何其他存在的實體交換包含簽名、意圖等的訊息。
5. 社會去中心化:社會化的去中心化策略強調透過廣泛的參與來增強系統的穩健性。這種策略鼓勵眾多的成員參與到鏈上決策中,保證資金如國庫預算、薪資和資金支持得到適當且公正的分配。關鍵在於,為了維持這種去中心化的狀態,系統中至關重要的技術專家應該直接由Polkadot 網路激勵和招納,而不是由網路內的某些特定組織來做。這是為了確保網路的去中心化,使所有人在一個公平的環境中共同努力。