解讀SCP:跳出Rollup 定式的去信任化基礎架構範式

ForesightNews

如何跳脫Rollup 的思維定式,以更廣泛、更開放的框架,將Web2 平台與Web3 融合?

撰文:霧月,極客Web3

導語:本文將前瞻性地介紹一種看起來有點特立獨行的Web3 基礎設施設計範式——存儲共識範式SCP(Storage-based Consensus Paradigm),這種產品設計模式雖然在理論上,與以太坊Rollup 等主流模組化區塊鏈方案存在較大差異,但在落地簡易度以及與Web2 平台銜接的難易度上,可行性卻很高,因為他從一開始就不打算像Rollup 那樣把自己限制在一個狹窄的實現路徑上,想要以一種更寬泛、更開放的框架,將Web2 平台與Web3 設施融合起來,可以說是一個腦洞大開、頗具想像力的做法。

**正文:**讓我們設想一種公鏈擴容方案,具有下列特性:

  • 擁有媲美傳統Web2 應用或交易所的速度,遠超任何公鏈、L2、rollup、側鍊等。
  • 沒有Gas 費,使用成本幾乎為0。
  • 資金安全性高,遠超中心化設施如交易所等,遜於Rollup 但大於等於側鏈。
  • 與Web2 相同的使用者體驗,無需對區塊鏈的公私鑰、錢包、基礎設施等有任何認知。

這樣的方案確實令人非常興奮:一方面它在擴容上基本上已經做到了極致;另一方面在Web3 的mass adoption 上也奠定了很堅實的基礎,基本消除了Web2 與Web3 使用體驗的鴻溝。

不過,我們似乎想不到多少方案能做到如此完備,因為主流討論與實踐確實太少。

我們在上面用擴容這個大家非常熟悉的議題作為引子,實際上**SCP 並不僅限於擴容使用,其設計靈感確實來自比特幣、以太坊等公鏈的擴容方案與社區討論。而它的願景和實際應用是建構新一代的去信任化基礎設施,甚至是非區塊鏈結構的運算平台。 **

SCP 基礎元件和工作原理

一般而言,**SCP 也像以太坊和Celestia 社群所說的「模組化區塊鏈」一樣,**具有資料可用性層、執行層、共識層、結算層等模組劃分。

  • **資料可用性層:**由一條被廣泛認可且久經考驗的公鏈來承擔,或儲存類別設施作為資料可用性層,如以太坊、Arweave、Celestia 等。
  • **執行層:**一台伺服器,用於接收使用者交易並執行,同時將使用者簽署後的交易資料批次提交到DA 層,與Rollup 的排序器相似。但執行層不一定要有區塊鍊式的鍊錶結構,它可以完全是Web2 資料庫+ 運算系統,但整個運算系統必須開源,具備透明度。
  • **共識層:**由一群節點組成,它們拉取執行層提交到DA 層上的數據,並用與執行層相同的演算法,對這些數據進行運算,確認執行層的結果輸出是否正確,並可作為執行層的防災冗餘。使用者也可以讀取共識層各節點傳回的數據,確保執行層沒有詐欺行為。
  • **結算層:**由一群節點與其他鏈上的合約或位址組成,用於處理使用者儲值進入SCP,或提現離開SCP 的行為,有點類似於跨鏈橋的運作模式。結算層節點透過多簽合約或基於TSS 的位址,控制儲值位址的提現功能。儲值時使用者向所在鏈的指定位址充入資產,提現時則發送請求,結算層節點讀取到資料後,透過多簽或TSS 對資產放行。結算層的安全程度,取決於所採用的跨鏈機制。

SCP 的實踐框架

我們可以透過以下框架,來理解SCP 範式。一個滿足SCP 框架的產品,可以具備如儲值、轉帳、提現、swap 等主要功能,在此基礎上還可以進一步擴展。 下圖是一個此類產品的原理圖:

  • 此專案的DA 層使用了永久儲存設施Arweave,即圖中的大圓圈。
  • **協調者Coordinator,即執行層。 **使用者將交易提交至協調者,協調者執行運算並展現運算結果,然後將使用者的原始輸入資料批次提交至DA 層。
  • **偵測者Detector,**從Arweave 上拉取協調者提交的交易原始數據,使用與協調者一致的演算法,對數據和結果進行驗證。檢測者的客戶端同樣也是開源的,任何人都可以運作。
  • **守望者Watchmen,掌管了一組提現系統多籤的偵測者。 **會根據交易資料對提現請求進行驗證和放行。另外守望者也負責簽署提案。

我們可以看到整套系統,他們達成的共識是全部位於鏈下的,這即**存儲共識範式的核心——它拋棄了區塊鍊式的節點共識系統,**讓執行層擺脫繁重的共識交流和確認過程,只需要做好一台伺服器的工作即可,從而達到近乎不受限制的TPS 和經濟性。這點和Rollup 非常相似,但SCP 走向了和Rollup 不同的道路,將其從一個擴容專屬的用例,**嘗試轉向為一種Web2 到Web3 的新的過渡模式。 **

上面提及的協調者是一台伺服器,但這並不意味著協調者可以為所欲為。和Rollup 的排序器道理類似,在將使用者提交的原始資料批次地在Arweave 上提交後,任何人都可以執行偵測者程式對其進行驗證,並和協調者返回的狀態進行比較。 **某種程度上,這和銘文類應用的思路如出一轍。 **

在這種架構下,一個中心化的伺服器、資料庫並不構成根本的挑戰。這也是SCP 範式另一點,將「中心化」和「單一實體」這兩個概念綁定解耦了——**一個去信任化的體系裡,可以有中心化元件,**甚至可以是一個核心部件,但這並不影響整體的去信任化。

我們可以喊出這樣一個口號-「下一代去信任化基礎設施不是要依賴共識協議,但應當是開源的系統與P2P 節點網路」。

人們發明和使用區塊鏈的初衷是去信任化、帳本一致、不可偽造、可溯源等等老生常談的基本面,這在比特幣白皮書裡有明確闡述。 **但在以太坊之後,**不論是舊公鏈的擴容方案,還是Rollup 或模組化區塊鏈,大家都形成了思維定式:我們做的東西必須是一條區塊鏈(由節點的共識協議組成),或者是Rollup 這種看起來是一條鏈的方案(只是有區塊鏈的資料結構,但節點沒有直接的共識訊息互換)。

但現在來看,基於SCP 的框架下,即使不是區塊鏈,也可以實現去信任化、帳本一致、不可偽造、可溯源等等一系列需求,當然前提是要有更明確的實作細節。

執行層

執行層是在整個系統中是至關重要的,它承擔了整個系統的運算過程,也決定了系統上可以運作什麼樣的應用。

無限可能的執行環境

理論上執行層中的執行環境可以做成任何形態,可能性是無窮無盡的,這取決於專案方如何定位自己的專案:

  • 交易所。基於SCP 可以建構公開、透明的、高TPS 的交易所,該交易所既可以有CEX 迅速、0 成本的特點,又保持了DEX 的去中心化。 CEX 和DEX 的分野在這裡就變得模糊起來。
  • 支付網路。類似支付寶、PayPal 等。
  • 支援載入程式/ 合約的虛擬機器/ 區塊鏈。任意開發者可以部署任意的應用程式在其上,和其他程式共享所有使用者的資料並根據使用者的指令進行操作。

**SCP 這種支持任意執行環境的設計模式,有其獨特的好處:**不必再依賴於某些存在歷史包袱的組件,尤其是像以太坊社區獨創的“帳戶抽象”概念,對SCP 來講天生就不需要。

而在SCP 架構下,本身就不存在帳戶抽象的概念——你可以隨意採用Web2 標準帳戶和區塊鏈帳戶等。從這個角度講,**許多成熟的Web2 用例不需要重新思考和構建,就可以直接用於SCP 上。這一點或許是SCP 相比於Rollup 的益處。 **

透明與非對稱性

上面提到了帳戶系統,敏感的讀者應該已經發現,SCP 雖然可以利用Web2 的帳戶體系,但原封不動地使用似乎也有問題。

因為這整個系統,是完全透明的!直接使用使用者對伺服器的互動模型,會出現嚴重問題,導致整個系統毫無安全性可言。 我們先回顧下傳統的伺服器- 使用者模型是如何運作的:

**1.帳號註冊:**使用者在應用程式的註冊頁面輸入使用者名稱和密碼。為保護使用者的密碼,伺服器收到後會透過雜湊函數來處理密碼。為增加哈希的複雜性並抵禦彩虹表攻擊,通常會為每個用戶的密碼連接一個隨機生成的字串(稱為“鹽”),一起哈希處理。 **使用者名稱、鹽、雜湊被明文儲存在服務提供者的資料庫中,並未對外公開。 **但即使如此,也需要做加鹽和安全處理,一防內鬼,二防攻擊。

**2.使用者登入:**使用者在登入表單上輸入他們的使用者名稱和密碼。系統比對處理後的密碼雜湊值和資料庫中儲存的雜湊值。如果兩個雜湊值匹配,表示使用者提供了正確的密碼,登入程序繼續。

**3.操作認證:**登入驗證通過後,系統會為使用者建立一個會話。通常情況下,會話資訊被儲存在伺服器上,並且伺服器發送一個標識(例如或token)給使用者的瀏覽器或應用程式。使用者在接下來的操作中不再需要重複輸入使用者名稱和密碼:**瀏覽器或應用程式會保存標識,**並在每個請求中附帶標識,表明自己獲得了關聯的伺服器的許可。

我們再回顧下典型的Web3 的區塊鏈- 使用者互動體系:

**1.帳戶註冊:**實際上沒有帳戶註冊此過程,也沒有使用者名稱- 密碼系統。帳戶(地址)不需要註冊,天然存在,誰掌握其私鑰誰控制該帳戶。私鑰由錢包在本地隨機生成,也不涉及聯網過程。

**2.用戶登錄:**區塊鏈的使用並不需要登錄,大部分dApp 沒有登入這個過程,而是連接錢包。有的dApp 在連接錢包後,會要求用戶進行簽名驗證,確保用戶真的持有私鑰,而不是僅僅是向前端傳了個錢包地址。

**3.操作認證:**使用者直接向節點提交簽署後的數據,節點驗證後會向整個區塊鏈網路廣播該交易,滿足區塊鏈網路共識後用戶的操作即被確認。

兩種模式的差異是由對稱和非對稱導致的。在伺服器- 使用者架構中,雙方掌握相同的秘密。在區塊鏈- 用戶架構中,只有用戶掌握秘密。

SCP 的執行層雖然可以不是區塊鏈,但所有的資料都需要同步到公開可見的DA 層,**因此SCP 所使用的登入、操作的驗證方式必須是不對稱的。 **但又因為不想有讓用戶保管私鑰、使用錢包等影響大規模採用的累贅動作和較差體驗,在SCP 上建立的應用程式使用傳統的ID 密碼或OAuth 三方認證登入的需求也很強,那麼如何結合二者呢?

由於非對稱密碼學和零知識證明對具有不對稱性,我設想了兩種可能的方案:

  • 如果想使用ID- 密碼體系,可以將這個保存密碼的模組不做進SCP 中,這樣其他人也就不可見。 SCP 執行層內部仍使用區塊鏈的公私鑰帳戶和操作邏輯,沒有註冊,沒有登入等。 **使用者的ID 實際上會對應一個私鑰。 **這個私鑰當然不能保存在專案方,比較可行的方案是使用2-3 的MPC 來解決中心化儲存的問題,同時又不讓使用者有使用私鑰的累贅。
  • **當依賴OAuth 登入時,可以利用JWT(Json Web Token)可以作為身份認證的方式。 **這個方式會比上面的顯得稍微中心化一些,因為它本質上需要依靠Web2 大廠提供的第三方登入服務作為身分認證。

  • 第一次使用第三方登入時,將JWT 中表徵使用者身分和服務商身分的欄位註冊在系統內。在使用者的後續操作中,將操作指令作為public input,而JWT 整體作為一個secret witness,用ZKP 驗證每一筆用戶的交易。
  • 每個JWT 都有過期時限,用戶下次登入時也會申請新的JWT,所以無需永久保管。另外這個系統內還需要依賴JWK,這裡可以理解為大廠為驗證JWK 提供的公鑰。那麼JWK 去中心化地如何輸入到系統內,日後應對私鑰輪替的方法等,也值得探討。

**不論使用哪一種方式,都比傳統方式的開發和運算的成本都要高一些,但這也是去中心化所付出的必要代價。 **當然,專案方如果不認為做到極致的去中心化是必要的,或者在開發的不同階段有不同的milestone,沒有這些設計也是可以的,因為去中心化不是非黑即白,而是存在中間的灰色區域。

隱私性

上述的透明的問題,不僅對使用者的互動範式造成影響,也會對使用者資料造成影響。使用者的資料都是直接暴露的。雖然在區塊鏈中不是問題,但這在某些應用中是不太能接收的,所以開發者也可以建立隱私交易系統。

收費

執行層如何收費是另一個值得關注的點。因為向DA 層提交資料也需要成本,包括自身伺服器的運作等。傳統區塊鏈向用戶收取gas 費的第一個核心目的是避免用戶刷大量重複的交易來破壞交易網絡,第二個是根據gas 來排序交易。 Web2 沒有類似的擔憂,所以只有洪水、DDoS 這些基本的概念。

**執行層可以自訂各種的收費策略,例如完全免費或部分收費,**也可以從其他的行為如MEV(在排序器中已經非常成熟),市場活動等進行獲利。

抗審查性

執行層不具備抗審查性,理論上可以無限制地拒絕用戶的交易。在Rollup 中抗審查性可以由L1 合約的強制歸集功能來保證,而側鏈或公鍊是完整的分散式區塊鏈網絡,也難以進行審查。

**目前並沒有明確的方案來解決抗審查問題,是SCP 範式的問題。 **

共識層

該層是由鬆散的節點組成,這些節點並不主動構成網絡,因此不是嚴格意義的有共識的一層,而僅僅是用來向外界(如用戶)確認當前執行層狀態的。

例如,**如果你對這些節點的運作狀態有所懷疑,可以下載其偵測者客戶端,其中會執行與協調者相同的程式碼。 **

不過這和Rollup 類似,由於資料是批次提交的,執行層給使用者回傳的狀態總是比DA 層上的更新的。這裡面就涉及一個預先確認的問題:

**執行層給使用者的是預先確認、軟最終性的結果,**因為還沒有提交到DA 層;

**而共識層提供給使用者的是硬最終性。 **使用者對此可能不是特別在意,不過對於跨鏈橋等應用,必須遵循硬最終性。例如,交易所的充提現系統是不會相信Rollup 序列器在鏈下廣播的數據的,必須要等這些數據上以太坊後,才認可。

除了能用來確認結果以外,**共識層還有一點很重要的作用,就是作為執行層的防災冗餘。 **如果執行層永久罷工、嚴重作惡,這個時候理論上任意的共識層都可以接手執行層的工作,接收用戶的請求。如果發生如此嚴重的情況,社群應該會選擇出穩定可靠的節點來作為執行層的伺服器。

結算層

由於SCP 並不是Rollup,所以無法做到像Rollup 的提現結算層那樣,不需要人工介入、完全基於密碼學和智能合約代碼的去信任化提現。 **SCP 跨鏈橋的安全程度是與側鍊或第三方見證人跨鏈橋相同的,**需要依賴有權限的多簽管理者為資產放行,我們稱為見證人模式。

將見證人橋做的盡可能去中心化,是許多跨鏈橋研究的議題。篇幅所限這裡就不具體展開了。一個設計良好的SCP 平台,在實務上也必須有信譽良好的去中心化橋的多簽合作方。

**有人可能會問SCP 為什麼不使用有智慧合約的鏈作為DA 層? **這樣可以做出給予合約,完全免信任的結算層。

長遠來看,只要克服一些技術困難,如果將DA 層放到以太坊等有合約的DA 層上,並能構建出相應的用於驗證的合約,SCP 也可以獲得與Rollup 相同的結算安全性,而不需要使用多簽。

但實踐中這未必是最優選擇:

1.以太坊並非專門用於資料保存,相對於純粹的資料儲存公鏈來說價格太高。而**對於SCP 範式來講,足夠低的或固定的儲存成本是至關重要的。 **只有這樣才可能支撐的起Web2 等級的吞吐量。

2.**證明系統非常難以開發,因為SCP 中不光可以模擬EVM,而可以實現任何邏輯。 **而我們看大象Optimism 這種團隊目前其詐欺證明仍然沒有上線,以及zkEVM 的開發難度,就可以想像在以太坊上想實現各式各樣的系統的證明,是難度極高的一件事。

所以**Rollup 這個方案只在特定的情況下,才有更優秀的實踐可行性,**如果你打算實現一種更寬泛、更開放,擺脫EVM 體系轉而融入更多的Web2 feature,則以太坊Rollup 的想法並不合適。

**SCP 並不是某種公鏈的擴容方案,而是一種更大的Web3 運算平台架構,所以顯然不需要走以太坊Layer2 的思路。 **

一張圖比較SCP 與其他範式

查看原文
免責聲明:本頁面資訊可能來自第三方,不代表 Gate 的觀點或意見。頁面顯示的內容僅供參考,不構成任何財務、投資或法律建議。Gate 對資訊的準確性、完整性不作保證,對因使用本資訊而產生的任何損失不承擔責任。虛擬資產投資屬高風險行為,價格波動劇烈,您可能損失全部投資本金。請充分了解相關風險,並根據自身財務狀況和風險承受能力謹慎決策。具體內容詳見聲明
留言
0/400
暫無留言