作者:@MohamedFFouda / 来源: https://twitter.com/MohamedFFouda/status/171219302208599245
翻译:火火/白话区块链
之前,我讨论了关于使用水平扩展来扩展应用程序合并的问题,重点放在完全基于区块链的游戏上。
水平扩展在单人游戏中运作良好。对于多人游戏来说,零知识状态通道是一种更好的扩展选择。
1、那么,什么是零知识状态通道呢?
状态通道并不是新概念。实际上,它们是以太坊最早的扩展解决方案之一。
状态通道基本上是这样运作的:
1)获取链上状态的一部分
2)在链外不断更改该状态
3)在需要时将最终状态提交到链上。
状态通道并不是新的概念。实际上,它们是以太坊最早的扩展解决方案之一。
状态通道的基本原理如下:
1)获取链上状态的一部分
2)在链下持续地更改该状态
3)在需要时将最终状态提交到链上。
显然,这个概念是比特币闪电网络设计的延伸,而闪电网络本质上是一个支付通道。
然而,如果没有零知识证明(ZKPs),状态通道的意义就不大。
如果没有零知识证明(ZKPs),所有授权更改状态(链外)的签名都必须在链上进行验证。
这与链上交易相比,并没有显著降低成本的效果。
零知识证明(ZKPs)轻松解决了这个问题。
状态通道参与者只需生成一个证明(链外),证明他们所有的交互和签名都是有效的。这个证明可以在链上廉价地进行验证,从而节省了大量的成本。
2、那么,这与扩展多人在线游戏有什么关系呢?
许多多人游戏,例如扑克,是基于比赛的,即一组玩家创建一个游戏,参与游戏竞争,并根据游戏结果改变每个人的资产。
对于这种类型的游戏,您需要一个共享层来存储每个人的资产。每个游戏的具体细节并不像游戏的最终结果(即资产余额的变化)那样重要。
此外,一个玩家不能同时参与多个游戏。
这使得这些游戏成为零知识状态通道的理想选择。
一旦游戏开始,参与玩家的状态就会被锁定在合并链上。
在游戏过程中,玩家生成零知识证明,证明他们的行为是有效的。
这些零知识证明会递归地建立在之前的零知识证明之上,以此类推。
当游戏结束时,只有最终的零知识证明和相关的状态变化被提交到应用程序合并进行结算。
由于中间交易不在应用程序合并上进行处理,这实现了高达100倍的更好扩展性。
这种方法也适用于非回合制的游戏,例如《Among Us》。
然而,在这种情况下,需要一个实体充当“临时”排序器,对通道交易进行排序并生成中间的递归式零知识证明。
我将这种情景称为“短暂的L3”。
零知识状态通道方法的主要挑战是通道参与者的活跃性要求。如果有一个玩家退出,可能会迫使其余玩家在应用程序合并上继续执行,从而迫使其他玩家支付更高的成本。
确实,这种方法具有巨大的潜力,许多团队正在朝着这个目标努力,包括 @ontropy、@PaimaStudios 和 @cartridge_gg。可以查看他们相关的技术进展。