Solana 生態的可擴展性創新:Ephemeral Rollups(臨時Rollups)????????
Ephemeral Rollups 是Magic Block開發的即時狀態更新引擎,為全鏈上游戲、社交、交易等高並發場景設計。目前主要應用於全鏈上遊戲引擎。
全鏈遊戲要求每個動作都要記錄在鏈上,例如移動、攻擊、道具消耗等等。
問題在於共識機制帶來可拓展性限制。
假設1000 名玩家同時在線上。每個玩家位置每100 毫秒更新一次,每秒產生10,000 筆交易。將玩家數量擴展到10 萬人,交易速率躍升至每秒1,000,000 筆。這是目前任何共識都無法承受的。
所以,其實想將QQ 遊戲大廳上鍊,是非常難的,甚至不可實現,更不用說《魔獸世界》《夢幻西遊》這種大量玩家在線,且每名玩家每秒有多種複雜操作的遊戲了。
但MagicBlock 希望實現將高並發遊戲上鍊。任何參與者都可無許可地整合或修改遊戲內容,或創造"自治世界" (Autonomous Worlds)。
遊戲狀態和邏輯儲存在鏈上,無法篡改。分散式伺服器確保遊戲韌性,沒有單點故障。
Ephemeral Rollups(臨時Rollups)提供了一個解決方案。
核心原理是,把遊戲高頻數據,暫時"借"到一個專門的高速環境裡—"臨時Rollup"。
在臨時環境裡,延遲低至50 毫秒,和傳統遊戲伺服器一樣快。完全免費,不用付Gas 費。也可以編輯被動觸發的邏輯,例如遊戲裡的劇情。
最新狀態同步會定期更新至主鏈,主鏈可隨時查看資料。如果臨時環境出問題,資料會自動回滾並歸還給主鏈。
且整個過程,使用者無感知。後台的RPC 路由器會自動決定哪些操作走快速通道(臨時Rollup),哪些操作需要走主鏈。
具體如何實現?
需要介紹幾個概念:Solana 帳戶結構、程式派生位址(PDAs)、帳戶修改權限的委託機制(Account Modification Delegation)。
1/ Solana 的帳戶結構
Solana 核心概念是「一切皆帳戶」。程式碼、使用者資料、Token 餘額等訊息,都儲存在帳戶中。
Solana 帳戶主要分為兩類(代碼與資料分離):
1)可執行帳戶(Executable Accounts) = 程式帳戶(唯讀)
儲存程式碼,類似其他區塊鏈的智能合約。
2)非可執行帳戶(Non-Executable Accounts) = 資料帳戶(可修改)
帳戶儲存資料和狀態,不包含可執行程式碼。
要注意的是,這個「帳戶」跟用戶的錢包地址是不同的。
查看瀏覽器會發現,普通位址的Owner 擁有者是System Program,位址固定為11111111111111111111111111111111 。
System Program 是Solana 官方內建程式。
所以其實,當你創造一個Solana 錢包,像是Phantom,得到的地址實際上是:
- 帳戶類型:非可執行帳戶(資料帳戶)
- Owner:System Program(系統程式)
也就是說,錢包位址= 系統程式擁有的資料帳戶。
錢包地址,由私鑰派生而來,用戶擁有對應私鑰,可以簽署交易。
帳戶是鏈上儲存的資料結構,由某個程式(owner)控制,錢包位址"指向"這個帳戶。
2/ 程式派生位址(PDAs)
Solana 帳戶系統的高階特性,對遊戲來說非常重要。
PDA 是一種特殊的帳戶地址,本質上就是一個普通的Solana 帳戶,但它的地址產生方式很特殊,由程式派生,只能由創建它的程式控制,沒有私鑰(不由用戶控制)。
所以,對全鏈上遊戲而言,只有遊戲程式可以修改這個PDA,其他程式只能讀取。
於是,透過PDA 可完成:
1)輕鬆創建大量遊戲狀態帳戶
2)所有權可轉移(委託機制)
3)位址可預測(路由更容易)
4)程序控制(使用者通過程序授權)
對臨時Rollup 來說,可完成:
1)管理大量遊戲狀態帳戶
2)支援頻繁委託和取消委託
3)確定性地找到帳戶
4)實現程式控制(不是用戶直接控制)
然後還需要,3/ 帳戶修改權限的委託機制(Account Modification Delegation)
這是臨時Rollup 的關鍵創新:
正常情況:帳戶只能由其所有者程序修改;
委託機制:可以暫時將帳戶的修改權限"借給"另一個環境(暫時Rollup)。
需要注意的是,委託≠ 轉移資產所有權,委託的是"修改遊戲狀態的權限",不是"資產本身"。
再加上,4/Sealevel 並行處理
Sealevel 可辨識不互相衝突的交易,並同時處理。
於是,在具體遊戲時,
假設玩家Alice 用3vj 開頭Solana 地址玩全鏈上《魔獸世界》,需要頻繁更新位置、戰鬥、消耗道具等等,同時玩家在線超萬人。
此時,
1/ 遊戲啟動:遊戲程式計算Alice PDA 派生位址
2/ 使用者授權:Alice 授權委託遊戲狀態帳戶
3/ ER 啟動:節點偵測到委託請求,啟動Ephemeral Rollups(臨時Rollups,以下簡稱ER)
4/ 狀態同步:從Solana L1 同步Alice 的遊戲資料到ER
5/ 遊戲進行:玩家在遊戲中操作,ER 執行任務
6/ 跨層讀取:若需要讀取NFT 等信息,ER 可直接從Solana L1 上讀取,但無權修改
7/ 定期同步:ER 資料定期上傳至L1
8/ 資產操作:若遊戲道具或遊戲幣變現,則需取消ER 授權,在Solana L1 執行,需玩家前面,Token 轉移由Token Program 保證安全,遊戲金庫是PDA,只有遊戲程式能控制。這兩者的Owner 是不同的。
這樣就實際完成了《夢幻西遊》《魔獸世界》用遊戲幣買賣點卡,打金團變現等操作。
9/ 遊戲結束:玩家下線,ER 關閉。
