无信任、可脱链互动、去中心化的虚拟世界游戏频道
Game Channels for Trustless Off-Chain Interactions in Decentralized Virtual Worlds
Daniel Kraft([email protected])
翻译:詹先觉(Oceanus.E.Data)
ICO邀请注册链接: https://token.chimaera.io/user/register/?ref=7PJ77XGYQBCQ
摘要:区块链可用于构建不需要中央服务器的多玩家在线游戏和虚拟世界。这个概念是Huntercoin率先提出的,但是它导致了区块链的大量增长和资源需求的大量增加。在本文中,我们提出了一个由支付通道和侧链启发的新协议,它允许私人回合游戏中的玩家进行可靠的脱链互动。通常它们在不需要公共区块链空间的情况下执行,但如果发生争议,则可以使用公共网络来解决冲突。我们还分析了由此产生的安全性保证,并描述了可能的共享转向游戏和近实时互动的扩展。我们所提出的观念能够用于扩展Huntercoin到很大甚至是无限的领域,并允许玩家近实时互动。
- 介绍
区块链,特别是比特币协议已经被证明是一个真正的创新,它允许交易系统摆脱可信的各方和中心化实例,以便在点之间进行各种互动【14】。这个领域的大部分努力都集中在金融活动上,就像比特币本身。例如,Omni(以前称为Mastercoin)【6】或t0【17】。非金融(或至少不是仅仅由财务动机)系统是Namecoin【20】,StorJ【18】,和以太坊【9】。这种不完全是区块链的项目已经证明了区块链技术的有用性和多样性。
区块链可以帮助消除信任方的另一个非常有趣的情况是在线游戏【21】。这是由Huntercoin开创的,它利用区块链来实现没有任何中央服务器的多玩家在线游戏世界。Huntercoin网络上的每个节点都有能力参与游戏,并根据游戏规则验证当前游戏状态是否有效。这使得开发者可以建立一个公平的多玩家世界,用户可以赚取硬币并将其转移到他们的在线钱包。从这个方面看,这个游戏需要人工挖掘huntercoin。更多细节将在第2节中给出。
在这种情况下,我们再提一下另一种接近人工挖掘的方法:由Motocoin【22】引入的玩量证明(proof-of-play)。与Huntercoin不同,这种区块链与全球游戏状态并不相关。相反,用于挖掘硬币和确保区块链安全的工作量证明(prooof-of-work)算法本身就是根据游戏制定的。这可以直接比喻为第2.4节中给出的数独谜题“解决比特币”来解释比特币挖掘。Motocoin定义了一个基于确定性物理模拟的简单视频游戏。在一个层上,人类矿工构建了一个可验证的命令链,证明他们找到了解决方案。然后,将这个证明附加到块中,而不是基于比特币和大多数其他区块链系统中使用的部分散列冲突的经典工作量证明。
尽管区块链技术允许在完全分散的,不受信任的环境中实现虚拟世界和多人游戏,但是当然,通常这增加了技术难度。尤其是,存储游戏世界的完整历史可能会导致区块链的大幅增长和后续的扩展问题。这可以在Huntercoin区块链的历史实践中观察到,,正如我们将在2.2节中讨论的那样。此外,直接基于区块链的世界将按区间间隔进行量化。根据实际的游戏逻辑,这可能只是一个小小的麻烦,对于某些类型的玩家之间的互动也可能是行不通的。为了克服这两个问题,我们提出了一个在玩家之间进行离线相互作用的协议。我们首先在Bitcointalk的一个帖子上发布了这个游戏频道(game channels)的时候概念【13】。我们将在第3节中对两个(或几个)玩家之间基于回合的互动的最简单情况进行更详细的讨论。我们将在第4节讨论由此产生的安全保证。在第5部分,基于回合的模型将被扩展到更一般的游戏概念。最后,在第6部分,我们描述如何使用游戏频道来增强未来的Huntercoin的可扩展性和游戏体验。
- Huntercoin指南
在本节中,我们简要介绍Huntercoin的重要概念,并描述当前系统遭受的两个问题。这可以作为随后对游戏频道讨论的动机,我们将在第6节中解决这些问题。请注意,这里的描述只涉及对理解本文其余部分很重要的核心概念。我们没有详细描述游戏机制或实现;为此,我们参考原始公告【8】中的代码库和描述。
Huntercoin是一种原生的加密货币(huntercoins,HUC),它可以使用类似比特币的方式进行转账交易,并使用工作证明进行挖矿。它采用比特币的SHA-256和莱特币的scrypt算法挖矿,并可以与比特币和莱特币合并挖矿。然而,主要特征是设置在二维世界中的嵌入式多人游戏,(创作者称它为Chronosius)。游戏截图如图1,第一个月的在线世界的视频记录在Youtube上可见【7】。用狩猎币支付的费用,用户可以在游戏世界中创建猎人(大致对应于玩家账户)。它可以进行人工挖掘:部分块奖励放置在游戏世界中,并不支付给工作证明的矿工,猎人们可以把它们捡起来,然后把它们存入链式地址。然而,并没这么简单,而是需要技巧,因为其他猎人可以抢夺或者窃取硬币,直到它们被安全存储。这是为了让玩家有机会通过玩游戏来“挖掘”猎手币。由于使用区块链,每个人都能够完全验证所有动作的历史,并根据Huntercoin的游戏规则自行验证所有人造硬币是否正确支付。这种公平的游戏设置使Huntercoin有别于现有的由中央服务器控制游戏逻辑的多人游戏。
图1. Huntercoin的Unity客户端屏幕截图,显示了猎人在游戏世界中收集硬币。由Andrew Colosimo提供。
2.1 游戏的实现 - 现在我们来仔细看看游戏是如何在内部实现的,以及它如何与底层区块链进行互动。抽象地说,人们可以用下面的方式解释比特币:当前分类账状态(未使用交易输出或UTXO)是网络中所有节点都同意的状态。每个人都可以通过交易来改变这种状态,通过成批的交易(块),个别的、离散的变化从一个块到下一个块产生。除了状态和转换更为复杂之外,同样的抽象模型也适用于Huntercoin。除了潜在的加密货币所必需的UTXO之外,Huntercoin的共享状态还包括有关游戏世界的所有信息。这种状态根据共识(决定性的游戏机制)编入客户端从块到块演进。用户可以通过制定特殊的非货币交易来影响游戏世界:当它们被包含在一个区块中时,它们对游戏状态转换(由游戏规则再次确定)有一定的影响。
这当然是一个非常高级的描述。为了理解具体的实现,第一个重要的说明是,Huntercoin的代码(不是区块链)是从Namecoin【20】分叉出来的,而Namecoin则是基于比特币代码库。它们每一个都增加了一个单独的功能层:比特币的代码负责管理区块链以及货币方面(猎人币,UTXO,地址,货币交易)。Namecoin在其上实现了去中心化的键/值数据库,它允许用户注册唯一的名称,并随后附加(和更新)数据到名称上。粗略地说,每个名字都有一个彩色的硬币表示。只有相应的私钥的所有者能够附加或更新数据,这是通过特定的交易发送代表名字的特定硬币来完成的。最后,Huntercoin把名字当作一个猎人。如果通过块中的交易来更新名称,则附加值被解释为改变猎人在游戏世界中的行为的特定动作。这样的动作可能会使猎人的目标坐标在地图上行走,或者可能表示攻击附近的敌人。游戏机制的细节超出了本文讨论的范围。
我们还要强调,硬币可以在普通UTXO和游戏世界之间双向流动:根据Namecoin协议,与名称相关联的相应颜色的硬币永远不会被“漂白”。因此,可以通过增加锁定在名称中的金额来“破坏”UTXO中的硬币。这样的行为可以被游戏引擎解释为根据一定的规则在游戏世界中创造硬币。反过来也是可能的:在特定区块处理游戏状态改变之后,Huntercoin客户端可以创建改变UTXO的特殊游戏交易。特别是,当猎人被杀死(然后与他们的名字相对应的硬币被发送到没有输出的交易中)和当游戏世界中的硬币被储存时(然后创建将链上的对应值发送到用户的指定地址的交易)就是这么做的。这些交易(根据共识协议定义)没有签名,但有效,因为它们可以由每个节点根据游戏规则独立地确定和验证。把所有这些放在一起,Huntercoin处理块的规则如下:
(1)根据比特币的规则验证块。最重要的是,检查证明工作和所有签名是否有效,并且所有交易输入都在当前UTXO中。
(2)对于每次修改名称的交易,除了Namecoin的规则之外,还要验证交易,并根据Huntercoin的游戏机制检查附加动作是否有效。
(3)如果块有效,则根据所有事务更新UTXO集。
(4)加载游戏世界的当前状态,根据当前块中的移动对猎人进行更改,并使用游戏引擎计算下一个游戏状态。将这个游戏状态与新的UTXO一起保存。
(5)如果游戏世界中的猎人死亡或硬币存入,则根据游戏规则构建相应的游戏交易并相应地更新UTXO集。
最后,注意游戏可能包含随机事件,即使每个节点都可确定性地验证一切:为此,块的散列被用作种子来产生影响该块的游戏状态转换的伪随机数。从理论上讲,矿工可以抛弃带有“随机”变化的哈希值的块,但这种风险在实践中很小,原因如下:大多数Huntercoin矿工(合并采矿池)不是活跃的参与者,因此不直接关心关于游戏的变化。此外,挖矿奖励激励他们发现块,一旦发现块,除非假设作弊的收益大于块奖励。到目前为止,没有证据表明有矿工试图进行这样的攻击。在这种情况下,例如可以通过使用最后n个块散列的组合来调整协议以防止这种攻击。
2.2 规模的痛苦 - 用户对Huntercoin的抱怨之一是速度太慢和不可预测:游戏被各个块有效地量化。Huntercoin目前的游戏机制是否真的存在这个问题是值得商榷的(有些玩家认为在战斗中手动控制多个猎人的时间确实很快),但这绝对是一个主要的限制。我们将在第5.2小节中描述一个消除这个限制的策略。
然而,要看到两个最重要的问题,让我们看看Huntercoin区块链的一些指标:图2显示了一些关于前800,000区块的重要统计数据,时间跨度从Huntercoin在2014年2月1日推出到2015年7月23日。同时请注意,这段时间内绝大部分的交易,即93.8%,都是动作。这清楚地表明,Huntercoin实现了首先是一个在线游戏的目标,第二它是比特币的克隆。
最初,Huntercoin明确地设计为,允许开采没有费用的动作交易。这导致了区块链增长速度非常快以及相应的可扩展性问题。Huntercoin在推出后几周就达到了几乎100KB的平均区块尺寸和多个GB的区块链。这就需要引入动作交易的强制性费用,这些费用是在图上垂直红线所示的时间点实施的。这大大减少了交易数量和区块大小,这从图2a中可以清楚地看出。它也明显地阻碍了图2d的区块链增长,产生了曲线中的第一个“凹痕”。
然而,地图上的猎人数量仍然很高,这主要是由于机器人控制着大型军队。这对于玩家来说是一个很大的问题,特别是因为最初的游戏规则让机器人很容易就能通过数量庞大的猎手来控制地图。这些规则随着时间的推移得以完善,再次为人类玩家带来竞争优势。蓝色和绿色的线条表明了造成猎人更加昂贵的两个特殊变化。这显然导致了地图上的猎人数量的减少(见图2b),并进一步阻碍了区块链的增长,在图2d中又产生了两个凹陷。其中第一条(蓝线)特别剧烈:它引入了一个游戏规则,在随机选择的实例中(当发生“自然灾害”时)杀死地图上的每个猎手。第一场灾难,相当于图2b中地图上蓝线处巨大下降的玩家,可以在游戏世界的另一个延时视频中的2:21:40左右看到【5】。
(a)每个块的动作交易 (b)在地图上有效的玩家队伍
(c)平均区块大小 KB (d)区块链大小 MB
图2. Huntercoin区块链最初800,000块的统计数据。垂直线表示协议的重要变化,防止网络过载。参见2.2小节的讨论。
经过这些变化,似乎大多数猎人再次受到人类的控制,而不是机器人,区块链的增长速度也受到控制。然而,可扩展性仍然是Huntercoin以及潜在的未来竞争对手的一个主要难点:Huntercoin中引入的紧急修复是成功的,但只能通过严格限制系统。由于显而易见的原因,这是不可取的,因为最终目标是创建一个成功的在线游戏,而不是人为限制的游戏世界。本文其余部分的目的是介绍一个可能允许Huntercoin和其他游戏世界扩大到无限大(世界本身)和大量玩家的想法,同时仍然保持底层区块链的大小。为此,我们在下一节中以抽象形式介绍游戏频道的概念,并在第6节讨论其对Huntercoin的适用性。
- 基于回合互动的游戏频道
在比特币中,关于脱链交易和扩大规模的重要提议是基于支付通道【1】的闪电网络(Lightning Network)【16】。它们允许双方之间的脱链和即时交易。参与方不需要相互信任,而工作假设是“通常”不会出现分歧。在这种情况下,几乎所有的互动细节都可以私下完成,而不会给比特币网络或区块链造成负担。然而,如果发生争议,仍有可能使用点对点网络和区块链来解决冲突,而不需要任何可信的第三方或其他机构。这个概念激发了我们下面介绍的游戏频道。另一个重要的扩展创新是挂钩侧链(pegged sidechain)【4】,这也构成了我们游戏频道协议的基础。事实上,我们的协议将基于与公有主链平行的分支私有链。
更一般地说,按照一定规则以安全和无信任的方式处理两方或多方之间的互动的问题很早就已经引起人们的关注。关于最优契约签署的研究就是一个例子【15】。最近还有一些基于加密货币和区块链的研究【10,11】。我们自己的协议将在下一节中以抽象的方式来描述,以使重要的概念和想法尽可能清楚,但这并不意味着就是玩家间私人互动的最新成果。相反,我们的重点是该协议的应用,以增强大型多人在线世界,如Huntercoin,见第6节。事实上,未来可能会使用一些现代的合同签署和私人游戏协议来优化协议。
在本节中,我们总是假定两个玩家建立一个游戏频道,在一个回合游戏中为了一些硬币进行竞争。我们可以把这个扩展到两个以上的玩家,但这不在当前的考虑范围内。我们将在下面的第五部分讨论这个模型,这样可以减少更多的一般情况。因此,我们感兴趣的互动看起来是这样的:
(1)两个参与者都同意这个模型的规则和模式游戏和共同资助的奖品,这打开了游戏频道。
(2)他们交替轮流动作。每一个动作根据一些定义的规则确定性地修改当前的游戏状态。
(3)某些情形终结游戏并导致双方玩家之间的奖金分配。奖金相应地支付给玩家,游戏频道关闭。
(a) 关于游戏的共识没有任何争议。 游戏频道关闭后,以灰色显示的私人连锁可以被丢弃。
(b) Alice提出争议并在等待阈值时间过后收到奖金。移动顺序(黑色)永久记录在争议交易的公开区块链中。
(c) Alice提出了争议,Bob通过他的下一步行动解决了争议,游戏继续达成一致。 只有在争议解决交易之前的游戏部分才需要在公开区块链中进行。
图3在不同场景下游戏频道涉及的区块链示意图
上面的链是公共链,而下面的链是包含由爱丽丝和鲍勃(分别用“A”和“B”标记)相互创建和签名的块的私有链。暗条指与公共区块链中包含的游戏频道相关的交易。
对于下面的讨论,我们想到的情况是这样的:游戏频道上的两个玩家彼此私下和直接通信。这可以通过直接(并且极可能是被认证和加密的)的网络链接完成。这个连接是用来中转移动到彼此以及建立一个私人区块链。这两名玩家仍然连接到公共点对点网络,而矿工建立的公有区块链不受任何玩家的控制。
3.1. 关于游戏的协议 --- 理想情况下,双方都遵循既定的规则,玩家总是在合理的时间内做出回应。在这种情况下,游戏本身完全可以在公共区块链之外进行,并按以下方式进行:
(1)打开频道,既定的规则和参数在发送到网络的联合交易中被编码。交易至少包含用于识别当前游戏中的每个玩家的公共密钥。这个开放式交易由两个玩家共同资助,分别获得奖金。
(2)一旦开放交易确认,奖金被锁定在公共网络上,并且游戏频道对于两个玩家之间的私人互动是开放的。
(3)在游戏中,玩家建立一个包含他们操作的私人区块链。这可以在没有工作量证明的情况下完成,因为每个时刻都清楚谁是玩家。每个玩家将一个包含他或她下一步操作的块添加到私人区块链中。该块由玩家的公钥签名。
(4)当一个操作终结游戏时,双方玩家根据游戏结果构建一个解锁奖金并支付给玩家的交易。如果两个玩家都签署了这个交易,那么公共网络接受这个交易,并且相应地转移锁定的硬币。
如图3a中描绘,根据该协议,只有打开和关闭交易必须记录在公共区块链中。一旦关闭交易被发布并通过公共区块链确认,则可以丢弃游戏中所有个人操作的私有侧链。另一方面,如果私人操作的顺序被发布,则网络上的每个人都能够验证所有游戏规则被遵守,并且正确的玩家签署了操作。他们还可以计算每次操作产生的当前游戏状态。
3.2. 争议解决 --- 当然,更具挑战性的情况是发生冲突。特别是“失败”的玩家可能更喜欢停止下一步操作或者可能关闭交易签署失败。也可能由于技术问题(比如网络故障)而导致其中一名玩家无法回应,即使这不是故意的。在这种情况下,剩下的玩家必须有可能获得奖金,而不能让任何玩家欺骗对方。因此,我们必须为解决纠纷定义额外的协议规则。为此,让我们假设Alice做出了最后操作,轮到Bob做出下一步操作,或者签署关闭交易,但是他在一定的时间内没有做出回应。如果他不同意Alice,并发送Alice认为无效的回复,这导致了相同的情况(因为鲍勃没有提供有效的答复给她)。在这种情况下,争议解决过程如下:
(1)爱丽丝通过向公众网络发送特定交易中的一系列操作来引发争议。
(2)只要公布的序列有效,网络就确认公开链上的争议交易。
(3)如果由一序列操作产生的游戏状态已经对应于结束状态,则网络可以立即支付Alice和Bob。
(4)如果情况并非如此,如果鲍勃没有给出有效的答复,公共网络在公有链经过一定数量的区块之后将全额奖励给爱丽丝。这与比特币的锁定时间类似;尤其是比较BIP 65【19】。见图3b所示。
(5)另一方面,鲍勃可以在另一个特殊的争议解决交易中公布他的下一步操作。如果这个交易包含对Alice发布在争议中的最后一招的有效答复,那么这个交易将被网络所接受和确认。
(6)在这种情况下(如图3c所示),争议解决,单方面向爱丽丝支付奖金被取消。由于爱丽丝现在还有一个新的有效操作,私人游戏可以继续下去,直到它有序完成或另一个争议由其中一名玩家提出。
- 安全分析
现在我们进一步详细分析第3部分协议所提供的安全保证。为了实现无信任的互动,游戏频道必须确保没有玩家可以在游戏规则方面作弊。此外,第3.2小节的争议解决必须确保能够以Alice的方式解决任何冲突,如果Bob未能合理回应,同时确保Bob有机会纠正错误提交的纠纷。而事实上,我们的协议满足了所有这些要求。特别是,它具有以下特性:
[完整性] 当前的游戏状态总是明确的,并且对于每个私人区块链操作来说都是可以验证的。由于每个玩家都需要签署他们的操作,所以不可能伪造一个操作。此外,请注意,任何玩家也不可能替换或撤销已经做出的操作:如果Alice在任何时候根据相同的游戏状态发布两个或更多的签名操作,则Bob可以选择是否建立他的下一步操作。由于鲍勃并且只有鲍勃(由他的公钥签名)能生成下一个有效的块,他总是能够在争议索赔中产生最长的有效区块链。为此,他可以自己挑选爱丽丝的某个操作,如果她发表多个操作。
[无拖延] Alice确信在某个明确定义的时间内总是能接收Bob的下一个操作,如果Bob没有响应,Alice就是赢家。争议程序保证了这一点,除非Bob在阈值时间内发布有效的操作,否则将支付给她全额奖金。此外,只要达到游戏最终的结束状态,如果鲍勃拒绝签署结束交易,爱丽丝可以立即通过发布完整的游戏历史来声称自己应得的奖金。请注意,阈值时间根据3.2小节给出。相应的实际时间是一个众所周知的分布随机变量【12】。也可以直接根据实时来定义阈值时间(与比特币的锁定时间的工作原理相同),但这是目前的工作范围之外。
[欺诈证明]根据游戏规则,如果Alice发布争议声明,而实际上,Bob并不打算停止回应,则Alice不能利用争议程序来欺骗他。只要Bob能够挖出解决纠纷的交易块,(我们假设情况是这样的,如果他支付了合理的交易费用,采矿并不是由Alice单独控制)他总是能够防止这种情况发生:由于Alice的争议声明必须包含她最后一个动作的一系列动作,些后仅由Bob决定生成一个更长的序列,网络将接受这个更长的序列作为争议解决,从而取消对Alice的单边付款。
现在让我们来讲一下游戏频道实现中仍然会出现的两种不良情况:首先,如果玩家因网络故障或其他问题而无意中退出游戏,那么除非门限时间足够长,以便他们恢复网络访问并且及时响应。这是无法避免的,因为游戏频道的目标和解决争议过程正是为了保证不拖延。门槛时间是初始合同中双方同意的一部分,因此这在任何方面都不能说是“不公平”。
其次,无拖延只保证两次移动之间的一个确定的最大时间,此外,这个时间必须比游戏中每一步移动的预期时间大。因此,攻击者有可能故意拖延游戏,并在此过程中通过争议交易膨胀公开链。我们认为这是不太可能大规模发生,因为这种行为并没有给攻击者带来任何有意义的经济利益。此外,由于玩家最初都同意这些规则并表示有兴趣开放游戏频道,所以他们通常在游戏网络中拥有赌注,因此没有兴趣不必要干扰它,由于目前还没有大规模的类似概念(如闪电网络)的公众经验,所以在实践中这个假设是否成立仍有待观察。
5.扩展到更一般的情况
到目前为止,我们只考虑了两个玩家的情况和一个可以表示为两个玩家之间交替轮流的游戏。当然,这是一个不适合所有潜在应用的模型的游戏频道。在本节中,我们将解释如何将两种更一般的情况还原为基于回合的模型,以便适用第3节所述的游戏频道。
5.1 共享型回合 - 让我们首先假设游戏仍然是以回合为基础的,但是两个玩家同时进行移动操作。换句话说,游戏的时间线是量化的回合,但是每个回合都不是由一个玩家“控制”的。相反,他们都可以在每一个回合执行一定的动作,由此产生的游戏状态由两个回合的组合的最后状态来确定。这是应用于Huntercoin的游戏模式。这种情况的困难在于,了解对手的行动可能给尚未决定行动的玩家带来不公平的优势。为了防止这种影响,可以使用微回合和散列约定的组合。让我们假设Alice和Bob在玩一个共享型回合游戏。在协议层面上,游戏仍然分为一系列交替回合,其中每个共享回合包含四个微回合,其方式如下:
(1)Alice发布了一个动作的散列。
(2)Bob公布了一个动作的散列。
(3)Alice揭示了她的举动,必须与之前发布的散列匹配才能被接受。
(4)鲍勃以同样的方式揭示他的举动。
如图4,如前所述,每个玩家用他或她的公钥签署相应的微动作。在第四次微动作之后,每个玩家都可以计算下一个游戏状态。此外,由于第(2)项中的散列约定,Alice知道Bob必须在不知道她的计划的情况下固定他的移动,反之亦然。因此,这确实导致真正的共享型回合而不给任何玩家不公平的优势。只存在一个难点:如果Alice的可能或合理的动作集合是有限的,Bob可以枚举和检查所有的哈希来计算一个原像。在这种情况下,Alice必须在描述动作中包含一个随机数。
图4.由爱丽丝和鲍勃之间交替的四个微转角组成的单个共享转弯的插图。哈希承诺是使用SHA-256计算的。
5.2 近实时互动 - 另一类重要的游戏需要(近)实时互动。不是明确的离散的时间步骤,而是有一个看似连续的时间流逝,每个玩家可以在任意时刻采取行动。游戏频道也可以模仿这样的实时游戏。当然,玩家电脑的处理能力以及网络连接的带宽和延迟仍然会导致离散的时间步骤。但是,它们不再受到公开区块链的区块时间或其他外部约束的限制。随着计算能力和网络技术的进步,这些限制自然减轻;将来只有光速才能成为全球通信延迟的最终限制。
为了将这种近实时的互动融入到游戏频道的回合制模式中,我们只需要允许“无所事事”作为每个玩家的明确行动。然后,玩家的客户端仍然轮流为私人区块链添加区块——然而,这一次,区块的生成频率与每个客户端的计算能力相同。大部分区块都是“空”的,指的是一个无所事事的动作,除非其中一个玩家真的决定在当前时刻触发一个行动。当然,这导致了私人区块链的快速增长。如果没有争议,由于在比赛结束后可以丢弃私人区块链,所以这不是一个大问题。
- 在Huntercoin上应用
我们终于准备好描述目前形式的Huntercoin所遭遇的问题的可能解决方案(如2.2小节所述)。主要的问题是可扩展性。我们相信游戏频道可以用来极大地提高可扩展性,同时也可以使更大的(甚至可能是无限的)游戏世界。这可以通过分解世界来实现。每个碎片对应于一组猎人彼此靠近的世界的一部分。他们都在游戏频道中传播世界,除非对游戏机制产生分歧,否则他们的互动可以被抛弃。这样,公共Huntercoin区块链不再需要记录整个游戏历史中的所有移动,并且验证节点不必为每个猎人处理移动。相反,节点只处理当前正在播放的碎片,而公共区块链仅用于碎片的全局管理和纠纷解决。此外,在这样的设计中,根据5.2节,甚至可以使用接近实时的互动来加速游戏体验超出阻止时间。
请注意,这个想法还没有一个功能的实现,并且有很多方法来实现这个分片的细节,并使精确的游戏规则适应碎片。例如,一个重大的决定将是如何在世界各地的奖励分配在碎片之间。但是,让我们来详细介绍一下可能的设计:如上所述,当前活动的每个分片(即,当前正在播放的猎人)都与游戏频道相关联。另外,一个特殊的地址被关联到分片。当猎人想要进入时(包括当第一个进入的碎片最初创建时),玩家必须支付一定的费用,将被锁定在碎片地址中。这对应于如上所述的游戏频道中的奖金存入。被分配放置在某个碎片中的挖矿奖励也被存入这个地址。但是,该协议不是使用简单的多重地址,而是要求当前在碎片中的所有玩家必须签署从碎片地址支付的交易。换句话说,根据当前游戏状态动态确定该组签名者。这样,只要大家都认同游戏规则已经遵循,游戏就可以安全地将正确地在碎片中获得的硬币分配给正确的玩家。另一方面,争议可以按照第3.2小节的规定处理。最后,当猎人再次离开碎片时,最初的存款将被退还。如果玩家拒绝合作(例如,未能签名),其他玩家也可以提出争议,把犯规玩家踢出碎片,可能会杀死相应的猎人。然后存入的硬币可以用来补偿合作玩家由于争议而造成的延迟和不便。通过这种方式,玩家可以在激活的时候继续对碎片进行处理,因为如果没有这样做,他们就会把他们存入的硬币剥离。
7.结论
在本文中,我们已经描述了处理玩家或者更一般地说,代理人遵循定义的规则的私人互动的方法。虽然这样的协议并不新颖,我们的模型也不是现场最先进的,但是我们展示了如何使用游戏频道来极大地改进目前基于区块链的分散式多玩家游戏世界的设计。这些世界(比如开拓性的Huntercoin)受到这样一个事实的困扰,那就是时间有限,阻碍了间隔,并且受到实际可用的区块链空间和全节点处理能力的限制。根据游戏频道和第六部分所描述的方法,这些限制可以被解除,并且可能无限的游戏世界以有效但仍然分散,安全和公平的方式实现。
未来,在实际系统中实现游戏频道和下一代游戏世界依然存在。共同的争议将会如何,还有待观察。我们有理由相信,大多数时候,碎片处理将在玩家之间达成共识,因此只有少量的区块链资源可以解决争议。如果事实证明冲突更为常见,则可能需要进一步研究以完善第3.2小节所述的协议。可以应用最佳合同签署和其他相关领域的见解来做到这一点。
致谢
作者要感谢Andrew Colosimo,别名snailbrain,由于他关于分布式虚拟世界在区块链上的想法。与Mikhail Sindeyev合作,他把这个愿景变成了Huntercoin。在与Andrew讨论Huntercoin未来的时候,游戏频道的最初想法出现了。这项工作是由奥地利科学基金(FWF)和国际研究培训小组IGDK 1754支持。
利益冲突
作者目前是Namecoin和Huntercoin免费客户端软件的主要开发者,也是Crypto Realities Ltd.的股东,但不涉及公司的任何专有开发。Crypto Realities公司致力于进一步发展基于区块链的游戏和虚拟世界。
注释和参考
【1】 No Author. “Rapidly-adjusted (micro)payments to a pre-determined party.” Bitcoin Wiki (18 October 2015)
https://en.bitcoin.it/wiki/Contracts#Example_7:Rapidly-adjusted.28micro. 29payments_to_a_pre-determined_party
【2】 Alexander, R. “HunterCoin: The Massive Multiplayer Online Cryptocoin Game (MMOCG).” Bitcoin Magazine (29 August 2014)
https://bitcoinmagazine.com/articles/huntercoin-the-massive-multiplayer-online-cryptocoin-game-mmocg-1409336751
【3】 Antonopoulos, A. M. Mastering Bitcoin: Unlocking Digital Cryptocurrencies. Sebastopol: O’Reilly Media (2014)
【4】 Back, A., et al. “Enabling Blockchain Innovations with Pegged Sidechains.” No Publisher (2014)
https://www.blockstream.com/sidechains.pdf
【5】 Pseudonymous (BGB HUC). “Huntercoin (HUC) Ttime Lapse Blocks 0–499,999.” Youtube (27 December 2014)
【6】 Buterin, V. “Mastercoin: A Second-Generation Protocol on the Bitcoin Blockchain.”
Bitcoin Magazine (4 November 2013)
https://bitcoinmagazine.com/articles/mastercoin-a-second-generation-protocol-on-the-bitcoin-blockchain-1383603310
【7】 Colosimo, A. (Chronokings). “Huntercoin - Day 1 to Day 32 - Time Lapse - Human Mine-able Crypto Currency.” Youtube (5 March 2014)
【8】 Colosimo, A. (snailbrain). “[ANN][HUC] Huntercoin - Human Mining - Decentralized MMO and Crypto Game.” Bitcointalk (27 January 2014)
https://bitcointalk.org/index.php?topic=435170.0
【9】 Ethereum. “A Next-Generation Smart Contract and Decentralized Application Platform.” Github (18 October 2015)
https://github.com/ethereum/wiki/wiki/White-Paper
【10】 Kosba, A., Miller, A., Shi, E., Wen, Z., Papamanthou, C. “Hawk: The Blockchain Model of Cryptography and Privacy-Preserving Smart Contracts.” Cryptology ePrint Archive 2015/675 (2015)
https://eprint.iacr.org/2015/675
【11】 Kumaresan, R., Moran, T., Bentov, I. “How to Use Bitcoin to Play Internet Poker.” No Publisher (2014)
http://www.cs.technion.ac.il/~ranjit/papers/poker.pdf
【12】 Kraft, D. “Difficulty Control for Blockchain-Based Consensus Systems.” Peer-to-Peer Networking and Applications 9.2 397–413 (2016) DOI:10.1007/s12083-015-0347-x
【13】 Kraft, D. (domob). “Game Channels for Near Real-Time Interaction among Players.” Bitcointalk (16 October 2015)
https://bitcointalk.org/index.php?topic=435170.msg12699299#msg12699299
【14】 Nakamoto, S. “Bitcoin: A Peer-to-Peer Electronic Cash System.” No Publisher (2008)
https://bitcoin.org/bitcoin.pdf
【15】 Pfitzmann, B., Schunter, M., Waidner, M. “Optimal Efficiency of Optimistic Contract Signing.” 17th Symposium on Principles of Distributed Computing, New York: ACM 113–122 (1998)
【16】 Poon, J., Dryja, T. “The Bitcoin Lightning Network.” No Publisher (2015)
https://lightning.network/lightning-network-paper.pdf
【17】 Rizzo, P. “Overstock Unveils Blockchain Trading Platform at Nasdaq Event.” CoinDesk (5 August 2015)
http://www.coindesk.com/overstock-unveils-blockchain-trading-platform-to/
【18】 Spaven, E. “Cloud Storage Startup Storj Raises 910 BTC in Crowdsale.” CoinDesk (22 August 2014)
http://www.coindesk.com/cloud-storage-startup-storj-raises-910-btc-crowdsale/
【19】 Todd, P. “BIP 65: OP CHECKLOCKTIMEVERIFY.” Github (18 October 2015)
https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki
【20】 Pseudonymous (vinced). “[announce] Namecoin - a distributed naming system based on Bitcoin.” Bitcointalk (18 April 2011)
https://bitcointalk.org/index.php?topic=6017
【21】 Wagner, A. “Cryptocurrencies in Video Games: Preview Roundup.” Bitcoin Magazine (21 November 2014)
https://bitcoinmagazine.com/articles/cryptocurrencies-in-video-games-preview-roundup-1416609489
【22】 Pseudonymous (WilliamLie2). “[ANN][MOTO] Motocoin.” Bitcointalk (1 May 2014)
https://bitcointalk.org/index.php?topic=591724.0