区块链应用

Cocos-BCX去中心化应用与数字资产管理和交易平台

Cocos-BCX 来源:区块网 2018-07-26 09:02

Cocos-BCX希望向游戏开发者提供易用、完善的区块链游戏基础设施,包含可视化的开发套件和链上生态环境,开发者无需关注区块链技术的实现,即可直接以图形化的方式,低门槛、快速高效的完成区块链游戏的开发。
Cocos-BCX希望向游戏玩家提供一个数据透明、规则透明、不会发生后台操纵道具掉率、恶意诱导消费的公平、公正、公开的游戏环境,希望游戏玩家的资产能够长时效、安全、去中心的保存。同时,我们希望通过区块链承载的数字资产经济模型,帮助开发者和玩家实现更好的利益一致性:我们帮助开发者将其生产的内容资产化,使其在资产的使用、管理和交易过程中持续获得收益,并提供便利、去中心的游戏分发渠道;我们帮助玩家将其消耗时间与精力形成的数据和消费获得的道具转化为可以安全存放和流通的资产,让玩家拥有将其管理和商业化的权利。
项目架构
1. 概要
Cocos-BCX 将打造一个完整的多平台游戏运行环境,最大程度地为游戏开发者提供区块链游戏的开发便利性和完善的生态环境,同时将为游戏用户带来全新的游戏体验和超越以往的游戏形态—用户将拥有游戏资产的自主权、游戏环境将最大可能的公平、公开、公正。
为了达到以上目标,Cocos-BCX 将提供包含且不限于如下技术特性:
·带有区块链系统互操作接口的多平台游戏运行环境;
·支持同质和非同质 Token 的跨链承兑网关;
·基于 DPoS 的改进高速共识,和委托见证模式;
·支持语法级别的共识任务;
·包括高效链网络与高速合约虚拟机的测试链;
·支持委托的事务机制;
·能够跨块执行的智能合约;
·支持定时器、支持 Standby 模式,带有心跳支持的合约运行模式;
·支持链网络内的可信随机过程。
同时,提供包含且不限于如下的功能:
·去中介资产(道具)交易接口;
·道具资产交易市场的范例;
·玩家自治和铁匠铺机制的支持;
·可视化 IDE(含游戏程序和合约的可视化编辑);
·完整的钱包、用户系统和区块链浏览器;
目前,Cocos-BCX 测试链的理论吞吐量可以达到 100,000 tps,实际吞吐接近 3,500tps,出块时间为 3 秒,即每 3 秒完成一次全网信息广播。Cocos-BCX 的实际吞吐量在完成可由合约设定的分区共识、多链联合和“见证委托”后将得到进一步提高,足以支撑大部分游戏的关键逻辑上链运行,“无延迟交易确认”技术将进一步提高交易体验。
Cocos-BCX 测试链附带的钱包直接集成资产交易市场,用户可根据交易市场的游戏 Token 与主链基础货币的兑换率评估游戏金币、道具和账号的价值。
Cocos-BCX 被 COCOS Creator 可视化游戏编辑器直接支持,Creator 产出的游戏能够直接在Cocos-BCX 的区块链运行环境中运行。
2. 带有区块链互操作接口的多平台游戏运行环境

2.1. 多平台游戏集成运行环境

Cocos-BCX 认为未来的区块链游戏的运行环境应具备以下的特征:

·一致和完善的链互操作接口;
·向下透明的承接方式;
·封装的原子操作;
·多平台兼容。

为了简化开发者的使用过程,Cocos-BCX 设计了一套可适配多种类型 APP 的集成运行环境,以及配套的互操作接口。和 COCOS Creator 结合,简化游戏程序和区块链的对接过程,使链内交互工作对开发者透明化,让传统游戏的开发者也能无门槛地开发或迁移区块链游戏。

Cocos-BCX 链上游戏运行 SDK 被集成到 Cocos 引擎 Runtime 中,对游戏提供完整的链交互接口,游戏开发者基于 Cocos-BCX SDK 完成游戏内容向区块链网络的接入,链交互过程透明化、结构化,游戏开发团队不再需要投入研发力量用于适配链网络和不同设备。

同时,运行环境将兼容原生 Android、iOS 和 PC Web、移动 H5 等系统和环境。运行环境内的游戏将具备原生的跨平台能力,实现链上游戏在多个平台无障碍运行的特性。

2.2. 区块链交互接口

Cocos-BCX 提供链的互操作接口,支持重要游戏数据和交易数据的链上存储,具备不可篡改特性。

Cocos-BCX 提供的数据交互接口主要包括两种形式:JavaScript 接口和本地动态库。

Cocos-BCX 的主要连接方式包括 WebSocket 和 HTTP,其中数据交互的函数接口包括 Database API和 AccountHistory API 两大类,诸如用户注册、用户信息、用户资产操作、用户游戏数据操作等功能都通过这类接口完成。链上数据接口允许用户在链上存储游戏金币和数据,并且为了提供最佳的兼容性和可定制特性,区块链系统不会对加密封装的游戏数据进行解析,以便游戏厂商更灵活的设计自己的链上游戏存储结构,这些游戏数字信息可通过游戏客户端以及资产市场的游戏插件解析。

目前运行环境的接口主要提供游戏 Token 和道具查询、转移等基础接口。

3. 支持同质和非同质 Token 的跨链承兑网关

Cocos-BCX 提供一套承兑网关用于游戏金币和道具的自动化承兑,在统一的价值衡量体系下,实现链上不同游戏、不同平台间内容的平滑过度,可用于承兑的内容包括游戏金币、游戏装备数据等。

3.1. 游戏 Token 的承兑

游戏数字资产(游戏 Token)与以太坊 ERC20 数字 Token 承兑如下图所示:

3.2. 游戏道具资产的承兑

ERC875 和 ERC721 Token 标准都是针对非同质 Token 的标准协议。在某种程度上,ERC875 更像是 ERC721 的“简略缩水”升级版。ERC721 Token 标准创建了非同质 Token 的标准先河,其随后更新的 ERC841 和 ERC821 都是在其上某部分进行的优化修改;而 ERC875 Token 标准,则更加简单直接。其定义的函数包括,name 、symbol、balanceOf、transfer、transferFrom,totalSupply、ownerOf、trade。对比 ERC721 Token 标准,ERC875 的函数更加简单。

通过进一步扩展承兑网关支持的 Token 技术,网关将能够在未来支持以 ERC721、ERC875 为代表的非同质复合型合约,承兑网关对游戏道具与非同质合约的承兑类似于一个专用编译器,通过对结构化数据的翻译和转换,实现非同质合约到链内游戏道具的双向承兑,兼容更多类型的链内外道具流转,提供更丰富的游戏内容和用户体验。

4. 对已有区块链系统的优化和扩展

4.1. 合适的区块大小、出块时间和流转方案

目前石墨烯区块链网络的最大区块大小为 2,000,000 字节/块,实际大小不足 2M,导致结构化数据很难在如此小的区块中完成高效的读写,现有的区块链网络完全无法承担游戏上链运行对结构化数据链上存储的要求。

因此,Cocos-BCX 考虑到未来各阶段链上游戏对区块容量量的需求,对区块链封包的区块体积进行了拓展优化,为更多数据在链上交互先行提供硬件基础。

4.2. 链上自定义结构数据存储

链游戏最终是需要将更多的游戏内容放在区块链网络中运行的,传统区块链数据结构在设计之初未充分考虑扩展性,导致无法容纳较大规模的数据,且缺乏灵活性的结构设计导致现有区块链技术下的链上数据结构仅适用于数字货币流通。此外,缺乏扩展的合约解释器进一步加重了区块链上数据结构使用受限的情况。

Cocos-BCX 从区块链底层着手修改,将原本的结构进行了重新设计,在原有的链结构中增加了一个自定义数据结构以容纳以后可能的游戏数据和扩展内容,同时也相应调整了链内与链结构数据处理相关的共识、见证、出块等关键流程以匹配新设计的数据结构。

修改后的链上数据,包括区块中每一笔交易、游戏数据档案、游戏规则数据等都可以通过区块号及相应 ID 查询,游戏数据存档的变更历程亦可从区块中回溯,不再有删档或数据丢失的风险。游戏内容交易也可通过区块在链上回溯内容流转历程,保证用户游戏金币的安全。

Cocos-BCX 中的道具数据,只在生成和属性变动时在块数据中作完整记录,普通的交易和流转时,则仅记录哈希指针,确保块数据的体积不会因长期的交易过快的增长。

4.3. 改进的 DPOS 共识机制

Cocos-BCX 测试链的共识层采用 DPOS 共识算法。

DPOS 算法通过预定见证人和规定时间槽位来推测区块的生产者以及出块时间,通常时间槽位间隔为 5 秒,在实际使用过程中为了更快的网络广播速度以及更大的网络吞吐量而将时间槽位间隔设置为 3 秒,如果预定的见证人在规定的时间槽到来时,因为网络原因或者设备硬件故障没有正常的出块,则该时间槽位不会出块,网络将等待下一个时间槽位到来选择另一个预定见证人进行出块。

Cocos-BCX 中,所有的预定见证人都由所有的持股人从见证人中投票选举,预定见证人统称为活跃见证人,活跃见证人数量通常为 11~21 个。所有的活跃见证人在 DPOS 共识算法的见证人预定算法中具有相同的出块预定概率,这保证了所有见证人的出块概率和获取出块奖励是一致的。石墨烯投票更新时间通常为 24 小时,但处于安全性、稳定性、公平性的考虑,项目初期网络投票更新时间通常较短,可能为 12 小时甚至更短。

在 DPOS 算法中通过预定见证人和规定时间槽位来推测区块的生产者以及出块时间,主链的活跃见证人总是多于支链,故此主链区块高度一定高于支链,同时全网投票机制避免了见认证人集中化,保证了网络的安全性,不同见证机制之间的优劣对比如图 2-4-1 所示。

4.4. 使用现代密码学保障的安全性

现代密码学技术一门基于数学原理的密码学技术,目前已经广泛应用于互联网领域的多种行业,常见的对称加密技术包括 WiFi 使用的 AES 加密,以及不对称加密算法(公私钥密码体系)RSA、ECC 等,其中 ECC(椭圆加密算法)是区块链领域常用的加密算法。这些算法通过数学原理设计出一种不可接受解算消耗的加解密体系来防止加密被攻破。在没有正确获得密钥的前提下,对此类加密算法的破解尝试均会因为计算量过大导致实施时间过长(通常需要花费近百年的时间用于尝试破解/猜解密钥体系)而失去破解行为的价值。

ECC 算法全称 Elliptic curve cryptography(椭圆曲线加密算法),于 1985 年由 Neal Koblitz和 Victor Miller 分别提出。

4.5. 低分叉风险

在比特币和以太坊网络中的工作量证明机制下,矿工遵循相同的机制,当矿工同时挖出了两个区块时,就出现了分叉现象。在遵循“最长链”原则的共识机制下,分叉的链会在 6 个区块后,短的链就会被废弃。但是当矿工不遵循同样的机制时,就会出现两种会产生深远影响的分叉结果,软分叉和硬分叉。相对而言,软分叉就是区块链系统的旧版本与新版本的区别,当原有旧系统完全升级后,软分叉现象就会消失;硬分叉是原本同一区块链主链的矿工,选择采取不同的共识机制进行挖矿,同一条主链将会被分成同源但却分离的两条链。2016 年 7 月份的”The DAO”事件就是最著名的以太坊网络硬分叉案例。而当以太坊分叉为以太坊和以太坊经典后,其对应原有主链的算力就会降低,进而对整个主链网络的安全性产生重大影响。

Cocos-BCX 使用 DPOS 共识机制,不需要矿工使用矿机进行挖矿,可以有效避免中心化算力对整个基础链的影响,进而降低分叉风险。在 DPOS 机制下,若有见证人想要通过投票进行分叉,则需要保证 1/3 以上的见证人都同时违背机制才有可能。与此同时,用户也可以通过票选罢免活跃见证人来降低可能的分叉问题。 相比较比特币和以太坊网络的 POW 共识机制下的高分叉风险,Cocos-BCX的分叉风险更低,可以有效保证游戏开发者和用户的数据安全。

4.6. 多链挂接

除跨链承兑网关外,Cocos BCX 将在未来支持更加直接的多链挂接方案,例如,在下一阶段的升级中,Cocos BCX 将支持使用 IPFS 存储大段的合约与一些游戏数据。

5. BCX 测试链:高效链网络与高速合约虚拟机

Cocos-BCX 拥有足够的高并发处理能力。

目前的绝大部分联网游戏,当用户规模达到一定程度时,其服务器需要在短时间内进行大量的数据处理,而在现有的以太坊网络中是无法实现的。

Cocos-BCX 采用改进的 DPOS 共识,理论吞吐量约 10 万 TPS,其高并发处理性能在合理的数据管理模式设计下足以支持现有游戏的开发与正常运行,基本满足大型联网游戏在平台中的运营诉求,保证用户的游戏体验与现有的中心化游戏几乎没有区别。

由于大规模网络游戏的数据交互频率非常高,DNF 曾创下 60 万人同时在线的记录,Steam 游戏平台更有 1420 万人同时在线的惊人数据。如果每一个在线用户提交数据的行为都视为发起了一次共识申请,Cocos-BCX 的极限吞吐能力不足以支撑这样级别的处理请求,开发团队按见证速度的需求设计了不同的见证委托模式(Delegation Templates),使单一见证委托人不用对所有运行中的游戏作同时见证和处理,而是专注于对复数个同类型游戏作见证和计入区块的工作。并且,在这一模式下,不同游戏的数据提交/见证是相对异步的过程,每一个游戏会选择适合的委托模式,而异步模式下的数据验证则可以通过链上数据库服务来完成,即用户在链上验证并完成数据存取。这一过程非常高效,足够支撑大规模游戏场景下的玩家数据操作。

合约是一段可以自动执行的程序,同时作为系统参与者,按照环境的基本规则(编译器规则)执行预设的任务,合约可以定义输入和输出,能够接受和存储价值,同时向外发送信息和价值。智能合约是以“不信任原则”为前提设计的,每一个节点均认为彼此不可信任。由于区块链的分布式保存特性,链上的每一个节点均保存有同样的合约执行代码,合约的运行结果由全网算力共同见证,并通过全体表决形式决定运算结果是否被认可。Cocos-BCX 的合约支持见证委托的定义。

为了保障合约执行的效率足以向用户提供足够良好的游戏体验,Cocos-BCX 重新设计了一套针对链上游戏场景的基于 LUA 的高速合约虚拟机方案。不同于现有区块链的合约虚拟机方案,除了通过大幅定制和优化现有的区块链运行环境及合约虚拟机的执行效率外,Cocos-BCX 的虚拟机使用与游戏SDK 相同的语言和 API 系统,并提供链和游戏执行环境的互操作接口,这将彻底改变区块链合约环境单一、灵活性差、定制能力差的现状。智能合约的应用场景将不再限制于作为货币描述,而是开始能够接纳更多与游戏直接相关的内容,包括可能的诸如:基础规则、设定、单位、场景、甚至地图等。改进后的虚拟机不仅支持更为复杂和灵活的合约形态,并且将大幅度提高现有智能合约的运行效率。

6. 业务与运行设计

6.1. 道具资产交易市场

Cocos BCX 项目中,道具买卖主要由两个函数实现:

道具的购买函数是一个多步合成的原子操作,在支付费用的同时完成用户账户游戏道具数据的更新,如果支付动作或账户商品数据更新动作中某一个动作不被主链区块认可,则整个交易将被回滚,避免异常交易。

对于道具的出售,Cocos BCX 提供的函数并不能直接卖出装备,而是向 OTC 交易平台(中心或去中心)发起挂单卖出的请求。原则上讲,链内只允许用户对自己的资产发起主动操作,而不应被任何第三方控制,例如平台对实际资产的托管、代交易。OTC 交易平台需记录本函数执行成功时生成的orderObejct 订单对象。(在交易前可调用 getItems 函数,列出用户道具,以便用户选择卖出),当买入请求抵达,交易发生时,实质是订单的点对点成交。

与传统的游戏交易所不同,Cocos-BCX 的去中心交易所并不存在中介机构,一方面提高了买卖双方进行交易的效率,一方面能够让原本支付给中介机构的费用直接支付给了卖方,达到卖家多赚钱、买家少付钱的效果。

玩家可以在道具交易市场完成“游戏金币”和游戏中道具资产的挂单、售卖和购买消费。在整个交易过程中,为了更加高效的帮助用户进行售卖购买服务,交易所将采用智能合约进行自动交易撮合。
交易所将对接多平台运行的游戏数据,由于具备最佳的兼容性和可定制特性,游戏厂商可以灵活的设计自己的链上游戏存储结构,并将游戏数据对接到交易所,用户可以方便的在交易所查询到多种游戏的金币和道具资产。为游戏内的资产流通提供强有力的支持。

用户在授权登录交易所后,可以选择将自己的游戏道具资产以挂单的方式挂入交易市场,符合买卖价格的买单和卖单将被系统自动撮合,交易内容不局限于游戏内货币,也涵盖道具、装备、游戏数据等完成挂单后,挂卖信息将被写入链上。游戏内对应的资产也将被同时冻结。

用户也可以在交易所购买游戏道具资产,用户可以自由选择其他用户挂卖的道具资产进行购买。交易完成时,游戏道具资产将会在游戏内转入买家的账户中,交易信息同时更新在链上。一个典型的交易流程如下图所示:

6.2. 铁匠铺机制

“铁匠铺”的本质是一系列具有道具、装备制作权限的帐号和一系列合约,作为所有游戏世界的核心功能之一,铁匠铺可由游戏厂商管理,亦可由玩家公会、设计师工作室经营。玩家可通过铁匠铺,将金币和材料合成为道具(或直接购买道具)。铁匠铺创造道具的过程公开透明,与游戏中的其他道具一样具有唯一性,能够从区块链浏览器中检索和查询。

在“玩家-铁匠铺-玩家”的整个过程中,核心部分包含:玩家提交素材给铁匠铺,以及铁匠铺将制作完成游戏道具交易给玩家,两者合起来可视为一个完整的交易。两部分交易信息都将上链,确保用户的交易信息真实可靠不可篡改,保证玩家交易的材料、游戏金币或游戏 Token 不会像以往中心化的游戏系统一样出现暗箱操控,数据丢失等情况,能够切实保护玩家利益。

铁匠铺拥有以下特性:

·具有道具、装备制作权限的帐号和一组合约;
·铁匠铺是独立于游戏的道具产出点;
·铁匠铺的道具具有唯一性;
·铁匠铺由世界观管委会(厂商、玩家公会、设计师联盟)管理。

Cocos-BCX 允许向铁匠铺授权世界观下的道具产出权限。例如胜利与誓约之剑,可以有亚瑟传奇世界观的版本,亦可以有 TYPE MOON 世界观的版本,两者可在各自的世界中跨作品流通,使用统一的世界观 Token 买卖。

6.3. 完整的钱包和区块链浏览器

Cocos-BCX项目向多种运行平台提供数字资产钱包,包括 Android、iOS及Windows等操作系统,确保主流运行环境下的用户均可以参与资产交易。通过数字资产钱包,用户可以将所有的游戏 Token和通过承兑网关导入的 ERC20 Token 存储在其中,更加方便在游戏金币交易市场进行消费和交易。另一方面,Cocos-BCX 对数字资产钱包进行了金融级别的算法加密,同时会结合运行平台的 KYC 认证服务,确保用户存储在钱包中的数字财产安全。

Cocos-BCX 在钱包中直接提供区块链浏览器功能。区块链浏览器是浏览区块链信息的主要窗口,每一个区块所记载的内容都可以从区块链浏览器上进行查阅。每一个独立的区块链系统都有对应的区块链浏览器。Cocos-BCX 提供一个完整的、带有查询和跳转功能的区块链浏览器,例如当用户在游戏中产出一件珍惜级别的道具资产时,对应的游戏道具数据就会在主链中产生,用户可在区块链浏览器中查询到对应的交易信息,Cocos-BCX 的区块链浏览器支持原子操作的查阅。区块链浏览器可以让用户更加透明的了解自己的资产分布,所有的数据在链上记录,真实不可篡改。

6.4. 一个道具交易市场的实例

交易市场中可以完成 CocosToken、独立发行的“游戏金币”与道具资产的自由交易。

交易市场中 CocosToken 与游戏金币的交易服务主要包括使用 CocosToken 与各种游戏金币相互兑换、不同游戏间金币的互换、流通等服务,其中不同游戏金币的价格由其对应 CocosToken 交易对决定。交易市场能够在提高游戏行业流转率同时给不同游戏金币的价值提供一个统一的评估依据。

交易市场中的游戏内容交易则主要用于 CocosToken、金币与游戏道具资产的互换、买卖。由于游戏道具数据的高度自定义性,不同的游戏道具的数据结构可能不一致,故接入游戏内容交易市场的游戏内容需由游戏厂家授权并提供解析方法。

用户在游戏内容交易市场上提交挂卖订单时,订单对应的游戏内容(金币或道具等)将被锁定,无法在游戏使用。挂单中包含出售人的主链账户 ID 以及挂卖的物品内容,当挂单被卖出时,系统自动完成道具资产的转移,并且向出售人支付 CocosToken 或金币,完成买卖。在买卖中资产的转移操作是原子的, CocosToken 或金币的支付、道具资产的获取将打包成一笔交易,两个动作的状态具有一致性,交易正常完成将产生唯一链上可查的交易 ID。其流程参见图 2-6-2 所示。

6.5. 声明世界观和道具流通

当下游戏体系中,许多道具设计都是泛用,为了减少重复设计,增加游戏开发效率以及趣味性,Cocos-BCX 引入了世界观的概念,世界观相同的游戏资产和道具可以进行互通,例如图 2-6-3 中的游戏 B 的道具,可以进入游戏 A 与游戏 C 的世界中进行使用。

以“型月世界”(TYPE-MOON)为例,其世界观是统一的——每作有相同的世界观,并且在不断完善它。其作品包含:

·同人作品发售的月姬;
·作为个人小说出版的空之境界;
·作为商业化第一作的 Fate/Stay Night;
·Fate/Stay Night 的 fan disc Fate/Hollow Ataraxia;
·剧情格斗游戏 Melty Blood 系列。

一个世界观内的各作品中的人物、道具、设定体系通常是通用的,现实中也常有数个厂商共同在一个世界观中开发各类作品的情况。

Cocos-BCX 允许游戏开发者在创世时声明世界观,允许世界观有自己的治理委员会(和共识委员会),未来还将允许世界观具备自己独立的链环境。

6.6. 玩家自治和资产安全

Cocos-BCX 公开节点工具包,游戏开发商、运营商、玩家公会、设计师工作室等均可成为节点,并参与理事节点选举。

由于区块链网络公开、透明的特性,玩家在游戏中所获得的数字资产信息可以通过区块链浏览器被任何人查阅到。而在游戏世界中,拥有高价值道具资产的帐号往往会成为盗号者黑客勒索的首选目标。Cocos-BCX 对玩家账号的资产安全非常重视,针对游戏资产安全提供以下安全保障机制:

·操作权限制
游戏内道具所有及处置权仅归玩家所有,物品销毁的操作仅能由用户自己授权处理;

·道具交易操作原子化
发生交易行为时,买/卖以挂单的形式提交至交易所,支付费用与道具数据更新被视为一次不可分割的操作,即买卖双方的行为均需被共识认可,如果支付动作或账户道具数据更新动作任一方不被主链区块认可,则整个交易将被回滚,避免异常交易;

·可扩展的多步验证
除去区块链交易验证密码以外,游戏商提供进一步的二次密码验证以及随机码验证等,进一步提高玩家资产安全性。

6.7. 可视化的合约编辑器

Cocos-BCX 项目向开发者提供的可视化合约编辑器,编辑器从用户友好的角度简化设计,将合约常用的功能、方法等以图形化的方式展现给用户,即使是不具备脚本编写能力的使用者也能够根据需要便捷地完成合约编辑;此外,面向具备脚本编写能力的进阶使用者,合约编辑器也提供更详细的高级编辑模式,为使用者提供充分发挥的途径。

可视化编辑器是一种以图形界面辅助使用者完成快速开发的编辑工具。以按键精灵为例,软件将大部分常用方法以快捷方式展现在工具栏,用户通过简单拖放、点击和填写参数等动作即可完成一段脚本代码的编写和插入,如图 2-6-4 所示。

7. 链上游戏的分布式记账体系深度开发

在上文中我们提到链上游戏的最终形态是实现游戏整体逻辑的上链运行,但现有的区块链技术尚不满足承载游戏完整逻辑所必须的最低限度特性,其中最为关键的几点包括:

·节点数据同步的数据量与时间成本
只有完整节点具备执行合约的能力,但完整节点存储有全网的所有事务数据,其数据量之大显而易见,且新建一个节点时同步这些数据的时间消耗也非常惊人;

·游戏逻辑完整上链需要能够支持大型合约
若实现游戏完整逻辑上链,那么合约本身将包含游戏的全部后台逻辑,合约将可能变得非常大,甚至超过一般区块的块大小,而在现有区块链技术的设计下,无法被块容纳的合约是永远无法运行并得出结果的;

·合约持续执行
游戏逻辑完整上链则意味着一个游戏应用在结束前,游戏合约将会持续运行,也即是游戏合约的运行时间是远大于出块周期,跨块执行的,现有任何区块链技术都无法支持这样的合约运行模式;

·链内实现的定时器与心跳
定时器与心跳机制是所有链上合约、游戏内容实现定时运行、自动运行、条件运行的前提条件,而这一特性的时候背后还隐含了时间同步、同步防伪等过程,这对现有区块链技术来说是完全空白的区域;

·事务执行延迟
游戏完整上链意味着链上处理了所有游戏中可能会执行的事务,其中不乏要求高速响应的部分,而传统区块链的事务响应取决于出块行为,而最快确认速度也受限于出块周期限制,难以满足游戏合约对事务即时响应的需求。

针对这些问题,Cocos-BCX 提出了对现有的分布式记账体系进行深度改造的设想,提出了下述的多种特性、机制设计,以最终实现链上游戏能够具备实际落地运行的目标:

·减少数据量和时间成本;
·在语法级别支持共识任务;
·合约持续执行;
·链内实现定时器与心跳;
·极小的事务延迟执行。

7.1. 轻量级节点

在Cocos-BCX设计中,轻量级节点(下文简称为“轻节点”)本质上是一个具备与链互操作能力的环境,与全节点不同,轻节点不需要同步全网数据,取而代之的是同步运行必须的合约信息与环境数据,这样的设计可以大幅减少节点同步的数据量和同步时间,使链上游戏端软件具备了实际使用的容量、时间成本可行性。

Cocos-BCX 开发的游戏整体以合约形式在轻节点上本地化运行,但合约中标识出需要共识的部分将被单独拆分为一个或多个子合约发布至相关节点进行共识(详细介绍见 2.7.2. 在语法级别支持共识任务),这样的设计能够让巨大的游戏合约以更具效率、几乎无延迟的方式运行,其原理如图 2-7-1 所示,分别处理合约的共识与非共识部分也能够在尽可能保障用户体验的前提下保持与传统区块链一样,数据具有可靠性。同时,对于轻节点的验证也不再像传统区块链一样进行过程和结果的验证,而是对节点运行环境和输入数据的验证(可信执行环境验证),进一步提高了整体的运行效率。

7.2. 在语法级别支持共识任务

Cocos-BCX 提出了让合约在语法级别支持共识任务的设计,通过将脚本中需要共识的部分以特定的关键词修饰,使合约解释器能够识别并在运行全文扫描时将标记为需要共识的合约部分拆分出形成子合约发送至链网络的相关节点进行共识。

当合约运行时,合约整体在本地执行,到达需要共识的部分时,得到链网络返回的共识结果并继续执行,此时实际上合约主体的运行过程与共识过程是两个相对独立的异步过程,使游戏合约的运行更加流畅,可能发生的阻塞等待更低、时间更短。

此外,需要被共识的合约部分是拆分后以子合约方式分发执行的,这些子合约内容应该具备完整的上下文关系和无额外依赖的设计,以便在其他节点上也能正确的得到结果。

7.3. 合约的持续执行

通过轻节点的方式,游戏整体作为一个合约运行的设想得到了实现可能,本地运行的游戏合约能够长期、持续地在轻节点中运行这一过程与出块周期或块大小都无关,与之相关的仅是游戏合约中包含共识的子合约内容。

游戏合约与子合约以一种“异步共识、同步返回”的方式,在持续运行的同时也不断完成关键步骤的验证和同步,实现了游戏合约持续运行以及结果共识见证的机制。

7.4. 合约会话机制

链上提供会话建立接口,该接口在合约公共数据区建立一个具有效限制的用户会话列表,同一个会话区间的用户将有权限向同会话区间的其他用户推送事务,其他用户收到数据变动通知时,可及时获取对应数据。

7.5. 事务的并发处理机制

在并发性事务处理机制中,事务可根据设定的优先级处理,见证人将从已完成并发处理的事务池中,按优先级顺序抽取事务完成打包,并执行区块广播。这一机制是对传统交易事务串行打包的一次改进,能够避免合约内部出现的死循环和无限递归导致的交易事务打包阻塞。在早期区块链网络环境下,这样的阻塞往往会导致整个链网络的阻塞甚至完全崩溃。

合约支持语法级别的共识标记,合约运行时,被标记为优先共识的事务将被抽出并立即广播,当任意节点收到后会立即运行该过程得到结果并广播运行结果,同时本周期的出块人将把广播的结果存入结果池,当相同的结果数量达到判定通过的阈值时,出块人立即广播事务确认的结果并将此事务写入出块缓存,整体流程如图 2-7-5。

7.6. 委托型事务机制与随机过程实现

委托型事务主要用于处理随机性高,不同节点执行会产生不同结果的事务类型(如产生一组随机数),但此类型事务仅限于非个人数据关联的事务请求。合约中的共识标记允许定义需要委托参与共识的节点名称或簇 (节点组) 名称,当数量只有一件时(N=1),网络中任一(或被指名)的节点将被分配处理该事务,例如处理随机事件;当委托节点数量大于一件 (N>1)或为一个簇时,被指名的簇中的多个节点将被分配至处理该事务。通过可信执行环境认证的受托人收到委托事务之后,会验证事务的可行性并执行委托,完成后将事务结果向链上广播。

在此机制下,链内的随机过程成为了可能,用户可以委托可信节点生成一个随机数、委托可信节点维护合约公共数据等。进一步的,合约的开发者可以在此机制上可实现合约内部的函数回调机制。

7.7. 定时器和心跳

几乎所有的游戏与应用都需要实现在线检测,而在Cocos-BCX设计区块链游戏时,为了解决用户的状态检测与持续的会话机制,提出了定时器与心跳的概念。

在区块链网络中实现定时器首先需要实现时间同步机制,而传统的时间同步机制通常是由外部授时或信任中心实现的,而在区块链去信任的逻辑下,外部授时或信任中心的都存在无法自证的缺陷,因此链上时间的同步只能由链内完成。

Cocos-BCX 提出的时间同步方案是:利用块数据时间戳,出块节点在发布块时即等效的进行了时间同步广播,各节点收到块广播后完成时间同步操作,最终全网在一个块同步周期中即完成了一次时间同步过程。

基于这个设计,定时器能够顺理成章地实现:定时器以块周期为最小计时粒度,按照预先设定的计时目标工作。由于区块数据时间戳为标准时间计数,不存在时区等因素的偏差,可认为是全网统一的计时标准,计时器可以在任意网络区域、时区以同样的计时规则正常执行。

7.8. 极小延迟的事务响应

传统区块链的事务执行确认是在节点接收到区块数据,完成事务内容解析,运行并得到正确结果验证通过写入块数据时确认的,当一个事务被提交时这个事务实际进入了pending队列,而此时事务仍并未执行,直到下一个出块周期,这个机制导致事务始终无法更及时地得到响应和处理。

Cocos-BCX 提出异步确认的方式,即在用户向节点发出交易请求时,节点将立即向网络发出事务广播,并同时向用户返回事务 hash 值。在这个设计下,其实事务最终记录周期与传统设计并没有太大差异,但事务的响应却几乎是没有延迟的,节点会在第一时间完成事务提交,而区块生成与事务提交/确认过程变成了相互异步的操作,大幅提高了事务的响应速度。

进一步的,用户可通过交易 hash 值跟踪交易状态,同时交易事务将更新到用户历史事务数据表中动态向用户推送。用户不必等待事务在链网络中验证、应用之后的回调再响应,我们借鉴了以太坊的 hash 跟踪特性,并在此之上加入了用户事务动态推送的机制。

此外,为了进一步提高节点利用率和处理效率,Cocos-BCX 提出在委托见证的基础上提出了分区见证的设计,即某些节点专注处理特定类型的合约请求,其原理如图 2-7-2 所示。

分区见证在游戏行业应用的意义在于能够针对不同请求类型针对性优化相关节点的处理能力,例如对浮点运算集中型请求重点加强核心算力,对结构数据处理集中型请求重点加强存储 IO 能力等,最终达到整体的效率、效益最优配置。

7.9. 链内的可信随机过程

区块链游戏规则上链能否具有实际应用价值与能否在链上实现随机过程密切相关。通过研究发现,完整的链上随机过程需要解决一个关键问题:链上随机过程规则由智能合约描述,而合约的过程是公开的,若需要产生无法被第三方推算的随机结果,则需要合约运行时有节点的噪声参与这一过程的输入,但不同节点的噪声不可能一致,即其他节点无法通过再次运行这份合约来验证这次随机过程的结果是否正确,最终导致无法完成共识。

要解决这个问题,我们提出了两种可实施方案:

方案一

·在区块链动态数据区维护一个或若干随机数据池,出块人将随机过程的结果包裹在区块的加密数据段中并且加密过程的代码以闭源、不公开的形式发布。此时,所有节点将拥有同一套随机数据池。随机数据池的数据结构呈管道形态,具有读端和写端的封装,且仅允许符合规则的读写端访问,具有先进先出的特性。

·因为区块链的所有节点事务处理具有一致性,应用在申请随机过程结果时可从随机数据池中读取。在该随机过程产生、分配机制下,过程与结果的安全性能够满足区块链网络对随机过程的安全性需求:

·任意一种访问(读、写)行为都将导致随机数据池发生变化且无法复原;
·写入随机数据的行为由动态加密函数库完成,且函数库闭源、不公示;
·随机数据的生产者无法获知此次随机过程的结果将放入随机数据池的位置以及这一随机过程将会被谁使用;

这一随机过程的实现方案适用于链网络对事务处理顺序具有一致性的场景,例如 RPG 游戏中玩家开启地图宝箱获取随机道具的过程。

方案二

·通过委托机制,允许部分事务委托至某单一可信节点完成处理,可信节点完成处理后记录随机过程结果,并由通知或轮询机制让委托方获取结果。

·因为该方案基于链事务委托机制,对链的改动会小于方案一,但要保证方案的可行性,应满足以下需求:
·受托方应通过可信执行环境验证,确保自身可信;
·受托方运行随机过程并发布结果时,应采用同样具备安全性的加密函数库完成;
·加密数据的传递需通过“零知识证明”或其他可靠证明方案证明受托方身份并能够被委托方识别,确保委托方得到的数据不是第三方伪造。

此随机过程实现方案适用于事务具有多方参与但仅需要同一批随机结果的应用场景,例如棋牌游戏中每一局的洗牌顺序等。

平台经济体系

1. 区块链为游戏行业带来的本质改变

从使用体验的角度,“区块链游戏”和普通游戏对玩家并无区别。然而,区块链可能对游戏市场起到根本性影响。游戏行业现行的商业逻辑是“付费获取服务”,即用户付出金钱、时间和行为数据以单向开支的形式交换游戏体验。但基于区块链机制上数据公开、不可逆、永久存续等特点,游戏内的道具可被用户管理和转移,从体验服务转变为体验资产。我们认为,“付费获取服务”与“购买和使用资产”对于开发者、发行者和玩家是截然不同的价值诉求,会相应形成不同的行为和商业模式。这些潜在的改变可以被归纳为:

1) 资产属性。资产是由过往经济活动形成,被某方控制并可获得未来所产生的经济利益的资源。游戏内容在区块链上具备了成为资产的两个特性:(1)独立存在和延续,在跨链机制下还可存在于不同的区块链系统内。理论上游戏的链上资产部分可以永久存续,且不受任何链、节点的控制与影响;(2)独立、公开定价。区块链生态上的任何参与者均可以通过使用、交易、搜索等行为对目标游戏资产进行不同维度的定价,同样不受任何链、节点的控制和影响。数字内容具备了被拥有的权利和被评估的机制,真正成为了资产;

2)博弈模型。在目前“付费获取服务”的商业模式下,发行者(包括用户流量平台和发行商)对用户消费的支配权大,对游戏内容的生命周期(能否上线和运营时间)、单位价格(物品定价)和玩家规模(流量推广)有最大的议价权。同时,游戏的玩法、产出与数据不对玩家公开。各方在有限的时间区间内围绕游戏体验和价格的匹配度进行非合作性的不完美信息博弈。以一款中国市场内渠道评级为 B 的动作角色扮演(Action RPG)移动游戏为例:发行者从自身利益出发选择游戏产品、测试、上线并进行不超过数天的集中推广;开发者为在有限时间内转化用户进行支付,在数小时游戏时间后开始设置收费点,并预期多数账户的生命周期不超过 75天;大量玩家在明知游戏大概率运营不超过 12 个月的情况下,被迫在游戏体验和付费间进行抉择。从长期看,开发者、发行者和玩家三者的博弈鼓励短期利益最大化,降低了游戏的整体体验,对行业的发展起到了负面的作用。

而对于一个长期存在,定价可以不受中心化(如发行方)影响、数据透明的游戏资产,开发者、玩家和其他相关方的博弈模型有可能发生改变,即相对原有模型更为长期、合作和信息完美。在游戏可以长时间在区块链环境内独立存续、被版权机制管理、并被代币化的条件下,开发者在资产被不断的交易的过程中持续受益,将更有意愿提升内容质量、增加游戏的长期总体价值;玩家付出金钱、时间和隐私换取可被使用、修改和出售的资产而非纯粹的使用体验,其购买与交换资产的意愿可能加强;同时,任何游戏代币持有者都会因游戏资产升值而受益,将有动力发现、推广和协助提升优质的游戏内容。开发者、玩家、第三方参与者将围绕资产价值长期最大化这一目标进行博弈,有利于提升游戏行业的水平。

3)资产定价和定价行为动机。从金融角度,上述的博弈过程是对游戏资产的定价行为。在目前的行业结构下,游戏内容被发行者选择推向市场。游戏的使用者不是定价者,市场定价效率没有实现最大化。造成现状的原因除了传统游戏技术、运营和商业模式的中心化特质外,玩家参与定价行为的动机不足是另一个主要因素。玩家发现和推广优秀的游戏内容很难有实质回报,仅能获得消费心理意义上传播美誉的满足感、以及开发者或发行者基于结果给予的有限经济奖励(例如介绍一个注册用户送游戏道具等)。

然而在区块链经济体系内,数字资产的价格被实时反映到相关的代币上。参与者可以通过调节对游戏、平台的代币和道具持有量决定自己参与定价行为的收益程度。例如,玩家发现了使用Cocos-BCX 平台开发的游戏后,可以买入其限量道具、游戏自身代币、甚至 Cocos 平台代币,自发对外推广游戏,并从道具和代币的升值中获得收益。资产化和代币化为市场参与者的资产定价行为提供了足够的动力和灵活的媒介。

综上所述,“区块链游戏”可以被更准确地定义为“使用区块链技术、具备区块链经济机制的游戏”。 从经济角度看,区块链游戏发展路径也可以被视为市场各方参与资产定价、利益逐步统一的四个阶段,是商业模式变化推动开发者和用户的结果,势必给游戏行业带来根本变化。

以上的资产化路径也适用于游戏以外的广义数字资产,我们将在Cocos-BCX平台的后续发展中对更多类别的资产进行支持。

2. Cocos-BCX 经济体的设计原理

通过提供底层公链、数字产权管理、交易所等一套完整的功能组件,Cocos-BCX 平台承载了开发者所创造的游戏资产价值。随着更多的游戏、游戏内资产被生产、管理和交换,平台的经济总量持续膨胀。

Cocos-BCX 基于石墨烯标准的技术和治理架构设计,拥有 DPoS 共识机制对应的经济属性。平台具备非挖矿、委托共识、低分叉可能、可定义交易成本等特性,开发者与用户可以将主要资源投入数字资产本身的创造与交换中,系统资源的整体消耗成本低。

在真实的商业环境中,参与方的经济行为和心理既存在宏观规律又有微观离散性。我们认为Cocos-BCX 的经济、治理、产品和技术规则设定应充分考虑和兼容各类行为的复杂性与不完美。平台仅提供最小可行、灵活的工具与规则,帮助和促进参与者根据各自的利益进行高度自由的经济活动与社区治理。各个生态角色在无需互信的前提下形成博弈关系和自激励机制,从而提升行业的整体效率和价值。同时,全球游戏开发者社区拥有长期的历史,具备成熟的价值观。我们希望最大程度地将该价值观反映到经济体系的设计中。

3. COCOS 代币:全域、广义去中心化数字资产的原生定价媒介

为实现上述的设想,我们创建了平台代币COCOS作为平台生态经济活动的流通媒介和治理凭证。

除作为 Cocox-BCX 的价值交换载体和社区参与证明以外,COCOS 将有可能作为基础定价代币,对数字资产生态起到关键的作用。大量去中心化数字资产未来将以不同标准存在于多个区块链生态中,跨越链生态的资产定价媒介有存在的必要性。基于以下原因,COCOS 能够成为区块链生态数字资产原生的定价媒介:

1)Cocos-BCX 平台在底层技术、共识机制、应用功能等方面原生支持全域、同质/非同质去中心化数字资产的交换。COCOS 具备成为基础定价媒介的技术基础;

2)在 Cocos-BCX 平台上的资产创造过程中,生产行为(例如委托共识出块)和生产要素(例如从平台应用商店购买游戏内的设计素材)均以 COCOS 作为原生的定价媒介。所产出资产的 COCOS 价格体现了对生产成本与利润的价值确认,而非名义标价。COCOS 具备成为基础定价媒介的经济基础;

3)Cocos-BCX 平台支持和鼓励同一世界观、相关世界观下的资产流通,在全域数字资产间建立了真正的用户使用价值联系,而不仅代表资产间的名义兑换率。COCOS 具备成为基础定价媒介的流通基础。

基于 COCOS,开发者和用户可以对不同链生态、世界观内容、技术标准的数字资产进行评估、比较、交易和管理。同时,COCOS 作为原生和基础的定价媒介,是未来区块链行业进行数字资产金融产品和衍生品开发与交易的必要条件。

关于更多Cocos-BCX信息:http://cocosbcx.io/

文章来源:http://www.qukuaiwang.com.cn/news/11032.html
原文作者:Cocos-BCX
特别申明:区块链行业ICO项目鱼龙混杂,投资风险极高;各种数字货币真假难辨,需用户谨慎投资。blockvalue.com只负责分享信息,不构成任何投资建议,用户一切投资行为与本站无关。

1.价值区块链(blockvalue.com)遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.价值区块链的原创文章,请转载时务必注明文章作者和"来源:价值区块链(blockvalue.com)",不尊重原创的行为本站或将追究责任;3.作者投稿可能会经价值区块链编辑修改或补充。