CaptainZ

CaptainZ

Prompt Engineer. Focusing on AI, ZKP and Onchain Game. 每周一篇严肃/深度长文。专注于AI,零知识证明,全链游戏,还有心理学。
twitter

Dojo:我们为什么要做可验证化链上游戏

大型 MMORPG 游戏可以运行在链上吗?#

我们都渴望一个没有腐败、恶意和轻蔑的自主世界;一个持久、永恒和自主的世界。

我们怎样才能实现这一点?就像在区块链不可能三角中,这些努力总需要某种程度的妥协。

blockchain-trilemma

自主世界(AWs)面临着同样的不可能三角问题。AWs 需要能够扩展到数百万并发玩家,这是一个难以解决的问题。

Rollups 通过将三难问题部分转化为二难问题来解决它,这得益于继承了结算层的安全性 —— 只要有第一层(L1)原生资产和无需许可的退出机制。

使用乐观 rollup,你需要在可扩展性和安全性之间做出选择,这就是为什么一些 rollup 方法通过使用替代数据可用性(alt DA)或 plasma DA 来实现可扩展性时会在安全性上妥协。然而,使用 ZK Rollup,你可以在最小信任假设下证明状态的完整性,旨在解决所有三个挑战:可扩展性、安全性和去中心化。ZK 是最终解决方案。

什么是可验证化游戏(Provable Games)?#

链上游戏承诺给我们自由表达和对我们信息的主权。它们之所以具有这些属性,是因为它们运行在通过共识验证的区块链上。使用 zk 证明的可验证化游戏(Provable Games),允许在没有大型共识方案的情况下验证游戏状态和计算。用 Cairo、Noir 等语言编写或运行 RISC-Zero 的这些游戏,可以在类似浏览器的独立 zkVM 上独立运行,可验证的输出确保了真实的执行。这扩大了我们在链上游戏行业的可能性。

一个具有代表性的例子是像大金刚(Donkey Kong,类似于马里奥兄弟的游戏)这样的游戏。目前,要想在排行榜上认证你的高分,你必须在认证的机器上玩游戏以防止作弊,同时记录你的游戏过程。然而,如果大金刚是一个可验证化游戏,玩家就可以在隔离环境中竞争。取得高分只需向游戏提交一个证明进行验证。这种方法允许玩家在家的舒适环境中确立自己作为大金刚之王的地位,无需录制游戏过程!

在独立的 zkVM 中运行完整游戏目前还面临挑战。为了解决这一问题,Dojo 生态系统正在努力简化过程,以减少复杂性。像 Tonk 这样的团队在可验证化游戏领域取得了进展,他们的一个显著成就是在 zkVM 上运行了《毁灭战士》(Doom)。随着证明成本的降低和新的证明者,如 Stwo 的出现,设计可验证化游戏和应用的潜力在不断扩大。

我们不必在一个孤立的 zkVM 中运行我们的可验证化游戏。相反,我们可以在带有最少参与者的 mini-StarkNet 网络上运行我们的游戏,仍然能够保证安全性。

值得注意的是,这种方法并不是非此即彼的。例如,你可以在一个 EVM 上运行一个链上游戏,然后在其上层叠加一个基于 Cairo 的游戏,增强核心游戏的同时扩展其功能。

为什么要做可验证化游戏?#

想象一下,如果《RuneScape》(一个 MMORPG 开放世界游戏)的世界突然关闭了,永久地抹去了每个人的游戏数据。那会有一些非常愤怒的玩家。这种情况迟早会发生,当开发者决定关闭服务器的时候。我们能做得更好吗?我们能创造一个像《RuneScape》那样丰富、多样并且强烈的世界,而不让这种情况发生吗?

这个挑战正是整个链上游戏场景目前正在努力解决的问题:创建一个永久存在、永恒不变和自主的世界。许多团队正在探索各种方法,这正是所需要的创新和实验的类型。

许多创新正被投入到链上游戏中,但我们的焦点在于使用 Cairo 和 Starknet VM 探索可验证化游戏技术树。这篇文章旨在将一些可验证化游戏概念翻译成一个实际的例子,灵感来自于传奇游戏《RuneScape》。

lumbridge

在传奇的 Skystrife chad Kooshoba 在以太坊伊斯坦布尔大会上的演讲后受到启发而写下这篇文章

可验证化的 “哥布林”#

让我们构建一个有哥布林(goblins)存在的世界,并以 RuneScape 为例,我们将专注于游戏的初始区域,卢姆布里奇及其周边环境来探索:

  • 卢姆布里奇城堡

  • 茂密的森林

  • 哥布林

  • 库存物品
    对于可验证化的哥布林,我们需要:

  • 模拟哥布林和生物的动态移动,为游戏世界带来生机。

  • 当玩家捡起物品时,实时更新库存。

  • 全球追踪并保存玩家的进度,以保持一致的游戏体验。

  • 设计机制防止利用,确保游戏的完整性。

  • 支持数百万并发玩家的可扩展性。

Web2 游戏的扩展方式#

传统游戏开发依赖于中央服务器来进行核心功能,如进度管理、NPC 行为、玩家状态管理、物品控制和规则执行。为了扩展,会增加更多服务器,并将游戏状态分割(分片),允许不同玩家群体的游戏区域有不同的实例。虽然这是一个有效的扩展解决方案,但这种中心化意味着开发者拥有最终控制权,包括关闭服务器的能力。这就是为什么链上游戏产业被创造出来 - 以便能够拥有一个无需信任的 RuneScape...

trad-server

传统区块链方式#

在尝试使用传统区块链方法复制中央服务器的功能时,虽然理论上是可行的,但由于几个限制,实际上变得不切实际并且几乎不可能扩展到几千个并发用户以上:

交易的验证

交易或玩家行为必须由网络中的多个节点验证和处理。虽然这种方法通过复制处理过程并使用共识来使系统更难被破坏从而确保安全性,但它也在交易处理速度上引入了一个重大瓶颈 —— 即 TPS。当然,这可以通过使用单一的中心序列器(就像几乎所有的第二层技术那样)来规避,但这需要更多的信任假设。

每秒交易数

区块链 VM 上的 TPS 限制影响游戏处理玩家行动的能力。随着玩家数量及其行为超过区块链的 TPS 容量,会形成积压,导致费用激增和玩家体验恶化。这实际上限制了单个区块链序列器能够管理的并发玩家数量。为了克服这些限制,以太坊专注于以 rollup 为中心的路线图,将执行移至 rollup 层。

在 rollup 上运行游戏世界可以显著提高可扩展性,但如果没有 zk 证明,我们仍然依赖于大型共识机制或广泛可能不稳定的信任假设,这引入了风险。因此,尽管 zk 被认为是扩展的终极解决方案,但它尚未完全实现。

op-zk-sec

相较于 OP 层,ZK 层的信任假设。ZK 假设在低参与度下仍然保持强大,允许存在 mini zk rollups

一种可验证化的方式 - 使用递归证明和多层架构#

任何区块链的目标是让用户对他们的行为拥有绝对的信任。这一原则在行业中常被遗忘;如果我们的目标不是创建无需信任的系统,那我们努力的意义何在?我们不妨依赖中心服务器,它们在其功能方面表现卓越。

在我们的 RuneScape 世界中,我们将专注于使用 STARKs 开创的递归扩展。Tarrence 就这个话题写了一篇深入的文章,强调了递归证明在保持第二层、第三层的最小信任假设方面的重要性。

在我们的世界中,我们可以利用递归证明来扩展和分片世界,同时确保任何人击败的哥布林确实是哥布林。

一个简单的图示:

shards

架构分析#

L1 以太坊

我们在这里确定最终状态,所以任何人如果选择的话,都能重构 L2。这是每一个真正的 rollup 所做的。

L2 Starknet

我们在这里确定 L3 的状态,所以任何人如果选择的话,都能重构 L3。这是我们维持整个世界状态的地方。

L3 Realms World 或其他 L3

这是一个支持玩家全局状态的高性能执行层。我们在这里保存 Lumbridge 分片的最终状态。这允许在需要时快速创建新的分片,恢复玩家的余额。

短暂的 Lumbridge 分片

“短暂” 意味着临时的,强调高效和安全管理每个玩家游戏状态的重要性 —— 这对所有玩家来说是最重要的关注点。通过采用链分片,将每个分片限制在最多 30 个玩家 —— 这是一个理论上的数字,可能更高,但作为一个可管理的示例 —— 我们反映了传统服务器的结构,但有一个关键的增强:使用 zk 证明来确保状态变更的完整性。这允许我们水平扩展到成千上万的碎片,而不牺牲玩家的任何性能。

将这种方法应用于 RuneScape

就像传统游戏服务器中的水平扩展概念一样,我们在这里采用了类似的策略。通过将游戏世界分成许多更小的碎片,我们使系统能够有效地扩展并容纳数百万并发用户。

传统游戏服务器与这种方法之间的关键区别是,玩家对自己的游戏状态拥有完全的控制,确保了更大的自主权和安全性。每一点状态都可以重构!

一个例子#

当玩家到达 Lumbridge 时,他们被分配到一个有容量的短暂链,允许他们与多达 29 名其他玩家进行互动,同时通过快速和低成本的交易确保高性能。现在我们深入探讨:

森林,有诸如木材之类的资源

有了这个短暂链,可以跟踪玩家移动到森林的情况,执行一定级别的移动物理学,我们利用这个分片提供的廉价计算能力来实现这一点。然后他们可以继续砍木头,将其添加到他们的余额并推进他们的玩家进度。

哥布林和其他低级怪物

哥布林可以通过序列器上的内置游戏时钟有效地模拟。当游戏时钟滴答作响时,序列器推进状态和它们的位置,直到有用户来并将它们杀死。如果我们选择,我们可以在这上面使用相当多的分片带宽,因为我们限制了玩家数量,我们可以最大化 NPC 的移动。

各种散落或由怪物掉落的物品

物品可以被捡起并存储在玩家的余额中。当玩家结束他们的会话时,这些物品将保存到全局状态中。这些值不是短暂的,而是保存到 L3 中,供下一次会话中使用。

结束游戏

在游戏会话结束时,玩家的状态通过回转到 L3 来保留在一个全局状态中,为他们的下一个区域或会话设置舞台。然后在 StarkNet L2 上进行验证,随后在 L1 上进行验证,有效地建立了一个可证明公平的 RuneScape。

Q&A#

我们正在构建的整个堆栈是开源的 - 加入 dojo discord 或直接为核心做出贡献。

问题 1:那么在这些层之间的桥接怎么办?这对玩家来说不会是一场噩梦吗?

是的,目前桥接确实存在问题。然而,已经有一个清晰的解决方案正在 Starknet 生态系统中使用,并将很快在其他第二层上可用。这些被称为存储证明。是的,我正在嵌入我的推文。第二部分将讨论此事。

问题 2:为什么选择递归证明和短暂链而不是其他方法?

澄清一下,这是 Dojo、Cartridge 和 Realms 生态系统采用的方法,以扩展我们想象中的世界。而这不是唯一的方法,探索各种方法是有益的。我认识的一些最聪明的人也在解决这个领域中最具挑战性的问题,他们的工作绝对值得一看。

Lattice - OP Plasma 与 Redstone 结合,实现非常便宜的交易。

Playmint - 独特的乐观引擎,用于快速游戏玩法。

PoP - 专门的 EVM 分片。

Argus - 定制的 EVM 游戏分片。

Curio - 修改过的 EVM 服务器方法。

创建一个能够支持数百万并发玩家的自由开放的 RuneScape 绝非易事。然而,链上游戏行业的集体智慧和创造力是强大的力量。因此,预期在未来 12-24 个月内出现像这样的游戏是合理的。是时候返回 RuneScape 了,或者更恰当地说,是时候欢迎 RealmScape 的黎明了。

本文由 @lordofafew 原创

@hicaptainz 翻译和编辑

关注我,web3 游戏不迷路。

原文链接:https://loaf.coffee/posts/provable-goblins

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。