Solana 生態的可擴展性創新:Ephemeral Rollups(臨時 Rollups)????????
Ephemeral Rollups 是Magic Block開發的實時狀態更新引擎,為全鏈上遊戲、社交、交易等高並發場景設計。目前主要應用於全鏈上遊戲引擎。
全鏈上遊戲要求每個動作都要記錄在鏈上,比如移動、攻擊、道具消耗等等。
問題在於共識機制帶來可拓展性限制。
假設 1000 名玩家同時在綫。每個玩家位置每 100 毫秒更新一次,每秒産生 10,000 筆交易。將玩家數量擴展到 100,000 人,交易速率躍升至每秒 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)控制,錢包地址"指向"這個賬戶。
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 關閉。
内容來源:PANews
更多精彩內容,請登陸
財華香港網 (https://www.finet.hk/)
現代電視 (http://www.fintv.com)