文章转载来源: 戈多Godot
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 关闭。
来源:戈多Godot
发布人:暖色
声明:该文观点仅代表作者本人,不代表火讯财经立场。火讯财经系信息发布平台,仅提供信息存储空间服务。
如文章涉及侵权, 请及时致函告之,本站将第⼀时间删除⽂章。邮箱:840034348@qq.com