Cocos BCX 区块链游戏资产交易技术白皮书
2020-02-27 207浏览
- 1.Project Cocos-BCX Cocos BlockChain Expedition 去中心化应用与数字 资产的生产、管理和 交易平台 技术白皮书Version:1.0.2Date:May 22, 2018 Preparedby:陈昊芝、尹健辉、杨小龙、刘冠群、王哲 0
- 2.Project Cocos-BCX 摘要 项目目标 本文描述了一个用于在区块链生态上开发、运行、管理和交易去中心化应用及应用内资产的平 台—Cocos-BCX Expedition(简称“Cocos-BCX”或“平台”)的设计思想与技术实现原理。该平台 包括(1)支持多种操作系统、多种区块链环境的应用开发框架,(2)完全脚本化、组件化和数据 驱动的应用开发工具,和(3)一个面向高性能应用、基于石墨烯技术框架的区块链系统及相关功能 组件。能够支持开发者进行面向区块链环境的去中心化应用、混合架构应用的编程、调试与发布。 同时,平台整合了包括基于区块链的分布式用户账户系统、钱包和数字资产交易系统,可以实现应 用内资产的脱链永久保存及跨应用使用。 第一阶段目标 由于游戏是最早、最大的区块链应用领域之一,我们以该行业中开发者和用户的需求作为项目 初期版本的设计出发点。本文所探讨的技术、产品、经济体系设计与用例均基于游戏这一应用场 景。 3
- 3.Project Cocos-BCX 目录 摘要.................................................................................................................................................................................. 3 项目目标...................................................................................................................................... 3 第一阶段目标............................................................................................................................... 3 1. 项目背景 ................................................................................................................................................................... 6 1.1. 区块链生态与数字资产是经济发展方向之一,具备价值基础 ................................................. 6 1.2. Cocos-BCX 希望解决的问题 ................................................................................................. 6 1.3. 区块链游戏的四个发展阶段................................................................................................... 7 1.3.1. 使用 Token 做游戏“金币”的结算 ...................................................................................................... 7 1.3.2. 游戏“金币”和道具的自由交易 ........................................................................................................... 8 1.3.3. 关键规则上链运行 ............................................................................................................................ 8 1.3.4. 游戏整体上链运行 .......................................................................................................................... 10 2. 项目架构 .................................................................................................................................................................11 2.1. 概要 .................................................................................................................................... 11 2.2. 带有区块链互操作接口的多平台游戏运行环境 .................................................................... 12 2.2.1. 多平台游戏集成运行环境 ............................................................................................................... 12 2.2.2. 区块链交互接口.............................................................................................................................. 13 2.3. 支持同质和非同质 Token 的跨链承兑网关........................................................................... 14 2.3.1. 游戏 Token 的承兑 ......................................................................................................................... 14 2.3.2. 游戏道具资产的承兑 ...................................................................................................................... 14 2.4. 对已有区块链系统的优化和扩展.......................................................................................... 15 2.4.1. 合适的区块大小、出块时间和流转方案 ......................................................................................... 15 2.4.2. 链上自定义结构数据存储 ............................................................................................................... 15 2.4.3. 改进的 DPOS 共识机制 ................................................................................................................. 16 2.4.4. 使用现代密码学保障的安全性 ........................................................................................................ 17 2.4.5. 低分叉风险 ..................................................................................................................................... 17 2.4.6. 多链挂接 ........................................................................................................................................ 18 2.5. BCX 测试链:高效链网络与高速合约虚拟机 ....................................................................... 18 2.6. 业务与运行设计 .................................................................................................................. 19 2.6.1. 道具资产交易市场 .......................................................................................................................... 19 2.6.2. 铁匠铺机制 ..................................................................................................................................... 20 2.6.3. 完整的钱包和区块链浏览器 ........................................................................................................... 21 2.6.4. 一个道具交易市场的实例 ............................................................................................................... 21 2.6.5. 声明世界观和道具流通................................................................................................................... 23 2.6.6. 玩家自治和资产安全 ...................................................................................................................... 23 2.6.7. 可视化的合约编辑器 ...................................................................................................................... 24 2.7. 链上游戏的分布式记账体系深度开发................................................................................... 25 4
- 4.Project Cocos-BCX 2.7.1. 轻量级节点 ..................................................................................................................................... 26 2.7.2. 在语法级别支持共识任务 ............................................................................................................... 26 2.7.3. 合约的持续执行.............................................................................................................................. 27 2.7.4. 合约会话机制 ................................................................................................................................. 28 2.7.5. 事务的并发处理机制 ...................................................................................................................... 28 2.7.6. 委托型事务机制与随机过程实现 .................................................................................................... 28 2.7.7. 定时器和心跳 ................................................................................................................................. 28 2.7.8. 极小延迟的事务响应 ...................................................................................................................... 29 2.7.9. 链内的可信随机过程 ...................................................................................................................... 29 3. 平台经济体系.......................................................................................................................................................31 3.1. 区块链为游戏行业带来的本质改变 ...................................................................................... 31 3.2. Cocos-BCX 经济体的设计原理 ........................................................................................... 32 3.3. COCOS 代币:全域、广义去中心化数字资产的原生定价媒介 ............................................ 33 3.4. COCOS 代币的基本使用模型 ............................................................................................. 33 3.4.1. COCOS 的获取方式....................................................................................................................... 34 3.4.2. COCOS 的消耗及应用场景............................................................................................................ 35 3.5. COCOS 的使用分配............................................................................................................ 35 4. 团队构成 .................................................................................................................................................................37 5. 总结...........................................................................................................................................................................38 5
- 5.Project Cocos-BCX 1. 项目背景 1.1. 区块链生态与数字资产是经济发展方向之一,具备价值基础 2009 年以来,针对区块链和数字货币的讨论逐步从技术延伸至经济、社会和政治等多个领域。 公众开始关注区块链对社会发展的影响,以及数字货币在世界经济活动中的作用。在全球科技进步 存在瓶颈、资源消耗上升、人口老龄化、地缘政治冲突加剧等背景下,部分地区或行业范围内由政 府主导的生产力组织方式有可能发生变化。与之对应的货币体系也可能从“政府-法币”变为“非政 府生产力组织者-多种共识通货”。我们认为,以区块链技术和经济机制为基础的去中心化社会形态 是未来一段时间内部分地区、人群和行业生产秩序变革的产物。区块链经济生态和数字货币的存在 具备价值基础。 相比传统物理资产,数字资产在区块链机制上的生命力更强。在数字经济中,人是生产力的绝 对主导因素,数字资产的生产、使用和分配行为能够在区块链上形成闭环,对中心化资源支配者的 依赖度低。另一方面,去中心化后的数字内容可以依赖单个或多个区块链生态存续,并被公开、公 允地定价,成为真正具备独立物权的“数字资产”,并衍生出新的商业模式和社会价值。 在不同类别的去中心化应用中,游戏是制作模式最成熟、商业化程度最高、开发者和用户基础 最深的场景之一。在本项目的第一阶段,我们将围绕它进行研究与开发,解决区块链游戏领域存在 的问题。 1.2. Cocos-BCX 希望解决的问题 我们希望向游戏开发者提供易用、完善的区块链游戏基础设施,包含可视化的开发套件和链上 生态环境,开发者无需关注区块链技术的实现,即可直接以图形化的方式,低门槛、快速高效的完 成区块链游戏的开发。 我们希望向游戏玩家提供一个数据透明、规则透明、不会发生后台操纵道具掉率、恶意诱导消 费的公平、公正、公开的游戏环境,希望游戏玩家的资产能够长时效、安全、去中心的保存。 同时,我们希望通过区块链承载的数字资产经济模型,帮助开发者和玩家实现更好的利益一致 性:我们帮助开发者将其生产的内容资产化,使其在资产的使用、管理和交易过程中持续获得收 益,并提供便利、去中心的游戏分发渠道;我们帮助玩家将其消耗时间与精力形成的数据和消费获 得的道具转化为可以安全存放和流通的资产,让玩家拥有将其管理和商业化的权利。 6
- 6.Project Cocos-BCX 1.3. 区块链游戏的四个发展阶段 1.3.1. 使用 Token 做游戏“金币”的结算 这一阶段的区块链游戏使用区块链系统中的 Token 作为游戏中“金币”产出的结算载体。这一阶 段的典型代表是以太坊系统的 ERC20 Token 标准。 该标准在如今的区块链项目中已经众所周知。很多的项目 Token 都会基于以太链的 ERC20 Token 标准进行制作,基于 ERC20 协议发行的 Token 容易交换和兼容,并且能够在 dApps 上行使应有的功 能, Token 的持有人可以完全控制资产并且跟踪其流通的任何地址、任何数量,而且这些 Token 可 以用于不同项目和平台, Token 的流通路径可在区块链浏览器中查询。 这一阶段的区块链技术主要解决如下几个问题: 游戏“金币”产出量和流通的透明化; “金币”的跨游戏流通; “金币”兑换通道的多样化。 该阶段的代表作:Candy Shooter 和 Candy 游戏平台。 Candy Shooter 是 Candy.One 平台的一个 STG 游戏,类似于多年前的“雷电”游戏。其游戏“金 币”即为 Candy。每次开始游戏时,用户需要支付 100 Candy 作为门票。用户控制一个小飞机射击所 有的“敌人”并且保证自己不会被对方的子弹打到,每一关卡会有一个大 Boss,击败大 Boss 将会获 得更多的“游戏金币”奖励。 当用户生命耗尽或全部通关后,游戏便会结束。结算系统会根据用户在游戏内获取的各种“游 戏金币”(以及其他赞助商 Token)的数量,按照特定比例换算成 Candy,而这些 Token(含 Candy 在内)同样被 Big.One 和其他数字货币交易所接纳,并可在各自的应用场景中使用。 图 1-3-1 Candy Shooter 游戏画面 7
- 7.Project Cocos-BCX 这一阶段的 Token 是同质化的,只能表达积分、金币类的数值,用作游戏结果的结算。 1.3.2. 游戏“金币”和道具的自由交易 以 ERC20 Token 为例,它只能用于发行可替代性通证(Fungible Token),用其来代表各种可替 代性事物,其决定在交易或使用过程中同等或相似类型的物品或数量是否可以完全互换。因此,项 目 Token 本身只具有单一价值媒介的作用(例如证劵、积分、Token 等)。 但是,在现实生活中,还有一些事物是不可替代的(任何带有唯一属性的人、事、物,例如一 件文物等)。而这些事物也可以被 Token 代替,但是其价值无法通过 Fungible Token 衡量,因此, 在以太坊的改进计划中(EIP)的代号 721 项(ERC: Non-fungible Token Standard #721),就提 出了新的“非同质” Token 标准—ERC721 Token 标准。非同质 Token 可以在任何交易所中使用,但 是它们的价值取决于和每个 Token 相关联的独特性及稀缺性,例如游戏中的装备、道具和高等级账 户。 前一阶段很火的以太猫是非同质 Token 标准的例子。每一只猫都是一个“具备独特基因的生 物”,而非同质化的货币,并且,每一只猫都不能进行拆分,永远都是完整的个体。当然,每只猫 都会拥有自己的标签、价格等等独特属性。展开来看,除了以太猫之外,特殊的游戏道具或者任何 具有一定收藏价值的物品,都可以对应一个 Token 来表明其身份信息。并且非同质 Token 在某种程 度上就是唯一的,不可分割、不可拆分。 在这一阶段中,不论是游戏中的道具、装备、玩家账号,其价值体现都可由非同质 Token 表 达,游戏内的所有广义交易行为(包括但不限定于道具购买、玩家交易、道具掉落等场景)最终都 以 Token(同质和非同质)的形式结算,特定的游戏内容(例如 MOD)甚至可以单独作为一种 Token 发行流通。 正因为游戏中的内容有了一个统一标准的价值载体,使得所有和区块链系统对接的游戏内容具 备了可以流通的基本价值体系,因此和链对接的游戏具备了跨平台交易能力,对于玩家而言,可通 过同质和非同质 Token 完成一组游戏资产到另一组游戏资产的迁移。 相对第一阶段,本阶段把道具作为非同质的唯一标识放在区块链的记录中,道具、金币的产 量、流通路径是透明的,但游戏的运行规则是在链外执行的,道具和金币的生产逻辑仍在暗箱中, 需要变通的解决。Cocos-BCX 已经实现本阶段的全部特性,正在尝试下一阶段的解决方案。 1.3.3. 关键规则上链运行 在这一阶段,链上游戏所需的基础设定及关键规则将以合约或其他便于公开的形式写入区块 中,供全网见证,保证游戏规则和产出逻辑的公正公开。例如扭蛋中的道具出现概率、RPG 地图上的 8
- 8.Project Cocos-BCX 遇敌设定、开宝箱掉落设定、发牌规则等游戏的数值逻辑,都将会写入链中,实现规则的公开、透 明、不可篡改,保证游戏的公平性,增强用户体验和玩家群体信心。 这一特性有效解除了玩家群体对游戏运营舞弊的担忧,能够提高玩家群体的信心并吸引更多玩 家参与游戏,更加利于社区的建设与发展。 合约的运行和见证是需要时间的,如果以 SLG 游戏地图中的宝箱刷新逻辑为例,则可以归纳两种 运行思路: 所有宝箱内容在地图载入时一次性的在合约中生成 此模式下,合约在场景载入时一次性执行,网络压力较小,运行时除了记录道具的获取 外,无需执行其他耗时操作,可以带来更加流畅的游戏体验,但缺点在于灵活性较差,缺 乏普适性,无法对地图场景内的剧情上下文做响应; 每一次开箱子行为即时运行合约生成内容 此模式下,合约在每一次开启宝箱时执行,即时演算道具的产出逻辑,合约运行次数多, 对链网络压力大,但合约使用和运行灵活,能够和地图场景内的剧情上下文相关联。 此阶段的区块链游戏已有较多规则和数据在链上执行,用户增长将导致链网络的压力剧增。在 没有新的突破前,这一阶段的技术只能适用于敌我回合中有 Cool-Down Time(冷却时间)的游戏。 去中心和性能是矛盾的,高性能的共识以及合约虚拟机是下一阶段的主要任务。DAG 等延时较小的技 术可能成为突破口,但离终极的解决方案仍有距离。 9
- 9.Project Cocos-BCX 1.3.4. 游戏整体上链运行 游戏整体上链是行业最终形态,游戏的全部逻辑代码在链环境中执行,并由去中心化的分布式 网络承载和存储数据,在这个场景下,游戏即是合约本身,游戏的运行需要可信、高效、无延迟的 集成运行环境与轻量级的用户节点,目前业界尚无决定性的技术方案。 以太猫的设计初衷是游戏整体上链运行,但由于以太坊网络的吞吐性能的问题,无论是数据交 互还是内容承载都受到极大限制,最终以太猫选择了妥协的做法,即:“数据链上交互,游戏链外 运行”的策略—即上一阶段的“关键规则上链”。 Cocos-BCX 下一阶段的思路为: 1. 玩家拥有轻量级的全节点环境; 2. 服务栈在区块链环境中运行; 3. 游戏引擎作为节点的基础设施之一; 4. 提供包含引擎、可视化 IDE、链网络交互接口的联合开发/调试环境; 5. 节点间具备一组异步共识任务,用以确保引擎环境的可信,该共识有可能基于引擎关键函 数目标代码的特征码判别; 6. 游戏代码(合约)由引擎控制的安全虚拟机执行,该合约的关键数值运算的部分可能采用 “可信执行环境”方案,和合约主体分开执行; 7. 合约的关键过程被临近或相关节点(如同一个副本中的玩家)们共识见证。 10
- 10.Project Cocos-BCX 2. 项目架构 2.1. 概要 Cocos-BCX 将打造一个完整的多平台游戏运行环境,最大程度地为游戏开发者提供区块链游戏的 开发便利性和完善的生态环境,同时将为游戏用户带来全新的游戏体验和超越以往的游戏形态—用 户将拥有游戏资产的自主权、游戏环境将最大可能的公平、公开、公正。 为了达到以上目标,Cocos-BCX 将提供包含且不限于如下技术特性: 1. 带有区块链系统互操作接口的多平台游戏运行环境; 2. 支持同质和非同质 Token 的跨链承兑网关; 3. 基于 DPoS 的改进高速共识,和委托见证模式; 4. 支持语法级别的共识任务; 5. 包括高效链网络与高速合约虚拟机的测试链; 6. 支持委托的事务机制; 7. 能够跨块执行的智能合约; 8. 支持定时器、支持 Standby 模式,带有心跳支持的合约运行模式; 9. 支持链网络内的可信随机过程。 同时,提供包含且不限于如下的功能: 1. 去中介资产(道具)交易接口; 2. 道具资产交易市场的范例; 3. 玩家自治和铁匠铺机制的支持; 4. 可视化 IDE(含游戏程序和合约的可视化编辑); 5. 完整的钱包、用户系统和区块链浏览器; 目前,Cocos-BCX 测试链的理论吞吐量可以达到 100,000 tps,实际吞吐接近 3,500tps,出块时 间为 3 秒,即每 3 秒完成一次全网信息广播。Cocos-BCX 的实际吞吐量在完成可由合约设定的分区共 识、多链联合和“见证委托”后将得到进一步提高,足以支撑大部分游戏的关键逻辑上链运行, “无延迟交易确认”技术将进一步提高交易体验 11
- 11.Project Cocos-BCX Cocos-BCX 测试链附带的钱包直接集成资产交易市场,用户可根据交易市场的游戏 Token 与主链 基础货币的兑换率评估游戏金币、道具和账号的价值。 Cocos-BCX 被 COCOS Creator 可视化游戏编辑器直接支持,Creator 产出的游戏能够直接在 Cocos-BCX 的区块链运行环境中运行。 2.2. 带有区块链互操作接口的多平台游戏运行环境 图 2-2-1 Cocos-BCX 链上游戏、应用的运行环境架构 2.2.1. 多平台游戏集成运行环境 Cocos-BCX 认为未来的区块链游戏的运行环境应具备以下的特征: 一致和完善的链互操作接口; 向下透明的承接方式; 封装的原子操作; 多平台兼容。 12
- 12.Project Cocos-BCX 为了简化开发者的使用过程,Cocos-BCX 设计了一套可适配多种类型 APP 的集成运行环境,以及 配套的互操作接口。和 COCOS Creator 结合,简化游戏程序和区块链的对接过程,使链内交互工作对 开发者透明化,让传统游戏的开发者也能无门槛地开发或迁移区块链游戏。 Cocos-BCX 链上游戏运行 SDK 被集成到 Cocos 引擎 Runtime 中,对游戏提供完整的链交互接口, 游戏开发者基于 Cocos-BCX SDK 完成游戏内容向区块链网络的接入,链交互过程透明化、结构化,游 戏开发团队不再需要投入研发力量用于适配链网络和不同设备。 同时,运行环境将兼容原生 Android、iOS 和 PC Web、移动 H5 等系统和环境。运行环境内的游 戏将具备原生的跨平台能力,实现链上游戏在多个平台无障碍运行的特性。 2.2.2. 区块链交互接口 Cocos-BCX 提供链的互操作接口,支持重要游戏数据和交易数据的链上存储,具备不可篡改特 性。 Cocos-BCX 提供的数据交互接口主要包括两种形式:JavaScript 接口和本地动态库。 Cocos-BCX 的主要连接方式包括 WebSocket 和 HTTP,其中数据交互的函数接口包括 Database API 和 AccountHistory API 两大类,诸如用户注册、用户信息、用户资产操作、用户游戏数据操作等功 能都通过这类接口完成。链上数据接口允许用户在链上存储游戏金币和数据,并且为了提供最佳的 兼容性和可定制特性,区块链系统不会对加密封装的游戏数据进行解析,以便游戏厂商更灵活的设 计自己的链上游戏存储结构,这些游戏数字信息可通过游戏客户端以及资产市场的游戏插件解析。 目前运行环境的接口主要提供游戏 Token 和道具查询、转移等基础接口。 13
- 13.Project Cocos-BCX 2.3. 支持同质和非同质 Token 的跨链承兑网关 图 2-3-1 承兑网关 Cocos-BCX 提供一套承兑网关用于游戏金币和道具的自动化承兑,在统一的价值衡量体系下,实 现链上不同游戏、不同平台间内容的平滑过度,可用于承兑的内容包括游戏金币、游戏装备数据 等。 2.3.1. 游戏 Token 的承兑 游戏数字资产(游戏 Token)与以太坊 ERC20 数字 Token 承兑如下图所示: 图 2-3-2 ERC20 数字资产承兑关系 游戏金币支持通过承兑网关与其他联盟链以及独立链进行资产转移。 2.3.2. 游戏道具资产的承兑 图 2-3-3 Cocos-BCX 与 ERC721 数字资产承兑关系 ERC875 和 ERC721 Token 标准都是针对非同质 Token 的标准协议。在某种程度上,ERC875 更像 是 ERC721 的“简略缩水”升级版。ERC721 Token 标准创建了非同质 Token 的标准先河,其随后更 14
- 14.Project Cocos-BCX 新的 ERC841 和 ERC821 都是在其上某部分进行的优化修改;而 ERC875 Token 标准,则更加简单直 接。其定义的函数包括,name 、symbol、balanceOf、transfer、transferFrom,totalSupply、 ownerOf、trade。对比 ERC721 Token 标准,ERC875 的函数更加简单。 通过进一步扩展承兑网关支持的 Token 技术,网关将能够在未来支持以 ERC721、ERC875 为代表 的非同质复合型合约,承兑网关对游戏道具与非同质合约的承兑类似于一个专用编译器,通过对结 构化数据的翻译和转换,实现非同质合约到链内游戏道具的双向承兑,兼容更多类型的链内外道具 流转,提供更丰富的游戏内容和用户体验。 2.4. 对已有区块链系统的优化和扩展 2.4.1. 合适的区块大小、出块时间和流转方案 目前石墨烯区块链网络的最大区块大小为 2,000,000 字节/块,实际大小不足 2M,导致结构化数 据很难在如此小的区块中完成高效的读写,现有的区块链网络完全无法承担游戏上链运行对结构化 数据链上存储的要求。 因此,Cocos-BCX 考虑到未来各阶段链上游戏对区块容量量的需求,对区块链封包的区块体积进 行了拓展优化,为更多数据在链上交互先行提供硬件基础。 2.4.2. 链上自定义结构数据存储 链游戏最终是需要将更多的游戏内容放在区块链网络中运行的,传统区块链数据结构在设计之 初未充分考虑扩展性,导致无法容纳较大规模的数据,且缺乏灵活性的结构设计导致现有区块链技 术下的链上数据结构仅适用于数字货币流通。此外,缺乏扩展的合约解释器进一步加重了区块链上 数据结构使用受限的情况。 Cocos-BCX 从区块链底层着手修改,将原本的结构进行了重新设计,在原有的链结构中增加了一 个自定义数据结构以容纳以后可能的游戏数据和扩展内容,同时也相应调整了链内与链结构数据处 理相关的共识、见证、出块等关键流程以匹配新设计的数据结构。 修改后的链上数据,包括区块中每一笔交易、游戏数据档案、游戏规则数据等都可以通过区块 号及相应 ID 查询,游戏数据存档的变更历程亦可从区块中回溯,不再有删档或数据丢失的风险。游 戏内容交易也可通过区块在链上回溯内容流转历程,保证用户游戏金币的安全。 Cocos-BCX 中的道具数据,只在生成和属性变动时在块数据中作完整记录,普通的交易和流转 时,则仅记录哈希指针,确保块数据的体积不会因长期的交易过快的增长。 15
- 15.Project Cocos-BCX 2.4.3. 改进的 DPOS 共识机制 Cocos-BCX 测试链的共识层采用 DPOS 共识算法。 DPOS 算法通过预定见证人和规定时间槽位来推测区块的生产者以及出块时间,通常时间槽位间 隔为 5 秒,在实际使用过程中为了更快的网络广播速度以及更大的网络吞吐量而将时间槽位间隔设 置为 3 秒,如果预定的见证人在规定的时间槽到来时,因为网络原因或者设备硬件故障没有正常的 出块,则该时间槽位不会出块,网络将等待下一个时间槽位到来选择另一个预定见证人进行出块。 Cocos-BCX 中,所有的预定见证人都由所有的持股人从见证人中投票选举,预定见证人统称为活 跃见证人,活跃见证人数量通常为 11~21 个。所有的活跃见证人在 DPOS 共识算法的见证人预定算法 中具有相同的出块预定概率,这保证了所有见证人的出块概率和获取出块奖励是一致的。石墨烯投 票更新时间通常为 24 小时,但处于安全性、稳定性、公平性的考虑,项目初期网络投票更新时间通 常较短,可能为 12 小时甚至更短。 图 2-4-1 现存共识机制优劣势对比 在 DPOS 算法中通过预定见证人和规定时间槽位来推测区块的生产者以及出块时间,主链的活跃 见证人总是多于支链,故此主链区块高度一定高于支链,同时全网投票机制避免了见认证人集中 化,保证了网络的安全性,不同见证机制之间的优劣对比如图 2-4-1 所示。 16
- 16.Project Cocos-BCX 图 2-4-2 基于委托的分区共识 2.4.4. 使用现代密码学保障的安全性 现代密码学技术一门基于数学原理的密码学技术,目前已经广泛应用于互联网领域的多种行 业,常见的对称加密技术包括 WiFi 使用的 AES 加密,以及不对称加密算法(公私钥密码体系)RSA、 ECC 等,其中 ECC(椭圆加密算法)是区块链领域常用的加密算法。这些算法通过数学原理设计出一 种不可接受解算消耗的加解密体系来防止加密被攻破。在没有正确获得密钥的前提下,对此类加密 算法的破解尝试均会因为计算量过大导致实施时间过长(通常需要花费近百年的时间用于尝试破解/ 猜解密钥体系)而失去破解行为的价值。 ECC 算法全称 Elliptic curve cryptography(椭圆曲线加密算法),于 1985 年由 Neal Koblitz 和 Victor Miller 分别提出。 2.4.5. 低分叉风险 在比特币和以太坊网络中的工作量证明机制下,矿工遵循相同的机制,当矿工同时挖出了两个 区块时,就出现了分叉现象。在遵循“最长链”原则的共识机制下,分叉的链会在 6 个区块后,短 的链就会被废弃。但是当矿工不遵循同样的机制时,就会出现两种会产生深远影响的分叉结果,软 17
- 17.Project Cocos-BCX 分叉和硬分叉。相对而言,软分叉就是区块链系统的旧版本与新版本的区别,当原有旧系统完全升 级后,软分叉现象就会消失;硬分叉是原本同一区块链主链的矿工,选择采取不同的共识机制进行 挖矿,同一条主链将会被分成同源但却分离的两条链。2016 年 7 月份的”The DAO”事件就是最著名 的以太坊网络硬分叉案例。而当以太坊分叉为以太坊和以太坊经典后,其对应原有主链的算力就会 降低,进而对整个主链网络的安全性产生重大影响。 Cocos-BCX 使用 DPOS 共识机制,不需要矿工使用矿机进行挖矿,可以有效避免中心化算力对整 个基础链的影响,进而降低分叉风险。在 DPOS 机制下,若有见证人想要通过投票进行分叉,则需要 保证 1/3 以上的见证人都同时违背机制才有可能。与此同时,用户也可以通过票选罢免活跃见证人 来降低可能的分叉问题。 相比较比特币和以太坊网络的 POW 共识机制下的高分叉风险,Cocos-BCX 的分叉风险更低,可以有效保证游戏开发者和用户的数据安全。 2.4.6. 多链挂接 除跨链承兑网关外,Cocos BCX 将在未来支持更加直接的多链挂接方案,例如,在下一阶段的升 级中,Cocos BCX 将支持使用 IPFS 存储大段的合约与一些游戏数据。 2.5. BCX 测试链:高效链网络与高速合约虚拟机 Cocos-BCX 拥有足够的高并发处理能力。 目前的绝大部分联网游戏,当用户规模达到一定程度时,其服务器需要在短时间内进行大量的 数据处理,而在现有的以太坊网络中是无法实现的。 Cocos-BCX 采用改进的 DPOS 共识,理论吞吐量约 10 万 TPS,其高并发处理性能在合理的数据管 理模式设计下足以支持现有游戏的开发与正常运行,基本满足大型联网游戏在平台中的运营诉求, 保证用户的游戏体验与现有的中心化游戏几乎没有区别。 由于大规模网络游戏的数据交互频率非常高,DNF 曾创下 60 万人同时在线的记录,Steam 游戏平 台更有 1420 万人同时在线的惊人数据。如果每一个在线用户提交数据的行为都视为发起了一次共识 申请,Cocos-BCX 的极限吞吐能力不足以支撑这样级别的处理请求,开发团队按见证速度的需求设计 了不同的见证委托模式(Delegation Templates),使单一见证委托人不用对所有运行中的游戏作 同时见证和处理,而是专注于对复数个同类型游戏作见证和计入区块的工作。并且,在这一模式 下,不同游戏的数据提交/见证是相对异步的过程,每一个游戏会选择适合的委托模式,而异步模式 下的数据验证则可以通过链上数据库服务来完成,即用户在链上验证并完成数据存取。这一过程非 常高效,足够支撑大规模游戏场景下的玩家数据操作。 18
- 18.Project Cocos-BCX 图 2-5-1 Cocos-BCX 的合约 合约是一段可以自动执行的程序,同时作为系统参与者,按照环境的基本规则(编译器规则) 执行预设的任务,合约可以定义输入和输出,能够接受和存储价值,同时向外发送信息和价值。智 能合约是以“不信任原则”为前提设计的,每一个节点均认为彼此不可信任。由于区块链的分布式 保存特性,链上的每一个节点均保存有同样的合约执行代码,合约的运行结果由全网算力共同见 证,并通过全体表决形式决定运算结果是否被认可。Cocos-BCX 的合约支持见证委托的定义。 为了保障合约执行的效率足以向用户提供足够良好的游戏体验,Cocos-BCX 重新设计了一套针对 链上游戏场景的基于 LUA 的高速合约虚拟机方案。不同于现有区块链的合约虚拟机方案,除了通过 大幅定制和优化现有的区块链运行环境及合约虚拟机的执行效率外,Cocos-BCX 的虚拟机使用与游戏 SDK 相同的语言和 API 系统,并提供链和游戏执行环境的互操作接口,这将彻底改变区块链合约环境 单一、灵活性差、定制能力差的现状。智能合约的应用场景将不再限制于作为货币描述,而是开始 能够接纳更多与游戏直接相关的内容,包括可能的诸如:基础规则、设定、单位、场景、甚至地图 等。改进后的虚拟机不仅支持更为复杂和灵活的合约形态,并且将大幅度提高现有智能合约的运行 效率。 2.6. 业务与运行设计 2.6.1. 道具资产交易市场 Cocos BCX 项目中,道具买卖主要由两个函数实现: 道具的购买函数是一个多步合成的原子操作,在支付费用的同时完成用户账户游戏道具数据的 更新,如果支付动作或账户商品数据更新动作中某一个动作不被主链区块认可,则整个交易将被回 滚,避免异常交易。 19
- 19.Project Cocos-BCX 对于道具的出售,Cocos BCX 提供的函数并不能直接卖出装备,而是向 OTC 交易平台(中心或去 中心)发起挂单卖出的请求。原则上讲,链内只允许用户对自己的资产发起主动操作,而不应被任 何第三方控制,例如平台对实际资产的托管、代交易。OTC 交易平台需记录本函数执行成功时生成的 orderObejct 订单对象。(在交易前可调用 getItems 函数,列出用户道具,以便用户选择卖出), 当买入请求抵达,交易发生时,实质是订单的点对点成交。 与传统的游戏交易所不同,Cocos-BCX 的去中心交易所并不存在中介机构,一方面提高了买卖双 方进行交易的效率,一方面能够让原本支付给中介机构的费用直接支付给了卖方,达到卖家多赚 钱、买家少付钱的效果。 玩家可以在道具交易市场完成“游戏金币”和游戏中道具资产的挂单、售卖和购买消费。在整 个交易过程中,为了更加高效的帮助用户进行售卖购买服务,交易所将采用智能合约进行自动交易 撮合。 交易所将对接多平台运行的游戏数据,由于具备最佳的兼容性和可定制特性,游戏厂商可以灵 活的设计自己的链上游戏存储结构,并将游戏数据对接到交易所,用户可以方便的在交易所查询到 多种游戏的金币和道具资产。为游戏内的资产流通提供强有力的支持。 用户在授权登录交易所后,可以选择将自己的游戏道具资产以挂单的方式挂入交易市场,符合 买卖价格的买单和卖单将被系统自动撮合,交易内容不局限于游戏内货币,也涵盖道具、装备、游 戏数据等 完成挂单后,挂卖信息将被写入链上。游戏内对应的资产也将被同时冻结。 用户也可以在交易所购买游戏道具资产,用户可以自由选择其他用户挂卖的道具资产进行购 买。交易完成时,游戏道具资产将会在游戏内转入买家的账户中,交易信息同时更新在链上。 一个典型的交易流程如下图所示: 2.6.2. 铁匠铺机制 图 2-6-1 道具交易完整流程 “铁匠铺”的本质是一系列具有道具、装备制作权限的帐号和一系列合约,作为所有游戏世界 的核心功能之一,铁匠铺可由游戏厂商管理,亦可由玩家公会、设计师工作室经营。玩家可通过铁 匠铺,将金币和材料合成为道具(或直接购买道具)。铁匠铺创造道具的过程公开透明,与游戏中 的其他道具一样具有唯一性,能够从区块链浏览器中检索和查询。 20
- 20.Project Cocos-BCX 在“玩家-铁匠铺-玩家”的整个过程中,核心部分包含:玩家提交素材给铁匠铺,以及铁匠铺 将制作完成游戏道具交易给玩家,两者合起来可视为一个完整的交易。两部分交易信息都将上链, 确保用户的交易信息真实可靠不可篡改,保证玩家交易的材料、游戏金币或游戏 Token 不会像以往 中心化的游戏系统一样出现暗箱操控,数据丢失等情况,能够切实保护玩家利益。 铁匠铺拥有以下特性: 具有道具、装备制作权限的帐号和一组合约; 铁匠铺是独立于游戏的道具产出点; 铁匠铺的道具具有唯一性; 铁匠铺由世界观管委会(厂商、玩家公会、设计师联盟)管理。 Cocos-BCX 允许向铁匠铺授权世界观下的道具产出权限。例如胜利与誓约之剑,可以有亚瑟传奇 世界观的版本,亦可以有 TYPE MOON 世界观的版本,两者可在各自的世界中跨作品流通,使用统一的 世界观 Token 买卖。 2.6.3. 完整的钱包和区块链浏览器 Cocos-BCX 项目向多种运行平台提供数字资产钱包,包括 Android、iOS 及 Windows 等操作系统, 确保主流运行环境下的用户均可以参与资产交易。通过数字资产钱包,用户可以将所有的游戏 Token 和通过承兑网关导入的 ERC20 Token 存储在其中,更加方便在游戏金币交易市场进行消费和交易。另 一方面,Cocos-BCX 对数字资产钱包进行了金融级别的算法加密,同时会结合运行平台的 KYC 认证服 务,确保用户存储在钱包中的数字财产安全。 Cocos-BCX 在钱包中直接提供区块链浏览器功能。区块链浏览器是浏览区块链信息的主要窗 口,每一个区块所记载的内容都可以从区块链浏览器上进行查阅。每一个独立的区块链系统都有对 应的区块链浏览器。Cocos-BCX 提供一个完整的、带有查询和跳转功能的区块链浏览器,例如当用 户在游戏中产出一件珍惜级别的道具资产时,对应的游戏道具数据就会在主链中产生,用户可在区 块链浏览器中查询到对应的交易信息,Cocos-BCX 的区块链浏览器支持原子操作的查阅。区块链浏览 器可以让用户更加透明的了解自己的资产分布,所有的数据在链上记录,真实不可篡改。 2.6.4. 一个道具交易市场的实例 交易市场中可以完成 CocosToken、独立发行的“游戏金币”与道具资产的自由交易。 交易市场中 CocosToken 与游戏金币的交易服务主要包括使用 CocosToken 与各种游戏金币相互兑 换、不同游戏间金币的互换、流通等服务,其中不同游戏金币的价格由其对应 CocosToken 交易对决 定。交易市场能够在提高游戏行业流转率同时给不同游戏金币的价值提供一个统一的评估依据。 21
- 21.Project Cocos-BCX 交易市场中的游戏内容交易则主要用于 CocosToken、金币与游戏道具资产的互换、买卖。由于 游戏道具数据的高度自定义性,不同的游戏道具的数据结构可能不一致,故接入游戏内容交易市场 的游戏内容需由游戏厂家授权并提供解析方法。 用户在游戏内容交易市场上提交挂卖订单时,订单对应的游戏内容(金币或道具等)将被锁 定,无法在游戏使用。挂单中包含出售人的主链账户 ID 以及挂卖的物品内容,当挂单被卖出时,系 统自动完成道具资产的转移,并且向出售人支付 CocosToken 或金币,完成买卖。在买卖中资产的转 移操作是原子的, CocosToken 或金币的支付、道具资产的获取将打包成一笔交易,两个动作的状态 具有一致性,交易正常完成将产生唯一链上可查的交易 ID。其流程参见图 2-6-2 所示。 图 2-6-2 游戏内容交易/挂单流程 22
- 22.Project Cocos-BCX 2.6.5. 声明世界观和道具流通 当下游戏体系中,许多道具设计都是泛用,为了减少重复设计,增加游戏开发效率以及趣味 性,Cocos-BCX 引入了世界观的概念,世界观相同的游戏资产和道具可以进行互通,例如图 2-6-3 中 的游戏 B 的道具,可以进入游戏 A 与游戏 C 的世界中进行使用。 图 2-6-3 支持相同或相似世界观的不同游戏道具流通 以“型月世界”(TYPE-MOON)为例,其世界观是统一的——每作有相同的世界观,并且在不断完 善它。其作品包含: 同人作品发售的月姬; 作为个人小说出版的空之境界; 作为商业化第一作的 Fate/Stay Night; Fate/Stay Night 的 fan disc Fate/Hollow Ataraxia; 剧情格斗游戏 Melty Blood 系列。 一个世界观内的各作品中的人物、道具、设定体系通常是通用的,现实中也常有数个厂商共同 在一个世界观中开发各类作品的情况。 Cocos-BCX 允许游戏开发者在创世时声明世界观,允许世界观有自己的治理委员会(和共识委员 会),未来还将允许世界观具备自己独立的链环境。 2.6.6. 玩家自治和资产安全 Cocos-BCX 公开节点工具包,游戏开发商、运营商、玩家公会、设计师工作室等均可成为节点, 并参与理事节点选举。 23
- 23.Project Cocos-BCX 由于区块链网络公开、透明的特性,玩家在游戏中所获得的数字资产信息可以通过区块链浏览 器被任何人查阅到。而在游戏世界中,拥有高价值道具资产的帐号往往会成为盗号者黑客勒索的首 选目标。Cocos-BCX 对玩家账号的资产安全非常重视,针对游戏资产安全提供以下安全保障机制: 操作权限制 游戏内道具所有及处置权仅归玩家所有,物品销毁的操作仅能由用户自己授权处理; 道具交易操作原子化 发生交易行为时,买/卖以挂单的形式提交至交易所,支付费用与道具数据更新被视为一次 不可分割的操作,即买卖双方的行为均需被共识认可,如果支付动作或账户道具数据更新 动作任一方不被主链区块认可,则整个交易将被回滚,避免异常交易; 可扩展的多步验证 除去区块链交易验证密码以外,游戏商提供进一步的二次密码验证以及随机码验证等,进 一步提高玩家资产安全性。 2.6.7. 可视化的合约编辑器 Cocos-BCX 项目向开发者提供的可视化合约编辑器,编辑器从用户友好的角度简化设计,将合约 常用的功能、方法等以图形化的方式展现给用户,即使是不具备脚本编写能力的使用者也能够根据 需要便捷地完成合约编辑;此外,面向具备脚本编写能力的进阶使用者,合约编辑器也提供更详细 的高级编辑模式,为使用者提供充分发挥的途径。 可视化编辑器是一种以图形界面辅助使用者完成快速开发的编辑工具。以按键精灵为例,软件 将大部分常用方法以快捷方式展现在工具栏,用户通过简单拖放、点击和填写参数等动作即可完成 一段脚本代码的编写和插入,如图 2-6-4 所示。 24
- 24.Project Cocos-BCX 图 2-6-4 可视化编辑器示例 2.7. 链上游戏的分布式记账体系深度开发 在上文中我们提到链上游戏的最终形态是实现游戏整体逻辑的上链运行,但现有的区块链技术 尚不满足承载游戏完整逻辑所必须的最低限度特性,其中最为关键的几点包括: 节点数据同步的数据量与时间成本 只有完整节点具备执行合约的能力,但完整节点存储有全网的所有事务数据,其数据量之 大显而易见,且新建一个节点时同步这些数据的时间消耗也非常惊人; 游戏逻辑完整上链需要能够支持大型合约 若实现游戏完整逻辑上链,那么合约本身将包含游戏的全部后台逻辑,合约将可能变得非 常大,甚至超过一般区块的块大小,而在现有区块链技术的设计下,无法被块容纳的合约 是永远无法运行并得出结果的; 合约持续执行 游戏逻辑完整上链则意味着一个游戏应用在结束前,游戏合约将会持续运行,也即是游戏 合约的运行时间是远大于出块周期,跨块执行的,现有任何区块链技术都无法支持这样的 合约运行模式; 25
- 25.Project Cocos-BCX 链内实现的定时器与心跳 定时器与心跳机制是所有链上合约、游戏内容实现定时运行、自动运行、条件运行的前提 条件,而这一特性的时候背后还隐含了时间同步、同步防伪等过程,这对现有区块链技术 来说是完全空白的区域; 事务执行延迟 游戏完整上链意味着链上处理了所有游戏中可能会执行的事务,其中不乏要求高速响应的 部分,而传统区块链的事务响应取决于出块行为,而最快确认速度也受限于出块周期限 制,难以满足游戏合约对事务即时响应的需求。 针对这些问题,Cocos-BCX 提出了对现有的分布式记账体系进行深度改造的设想,提出了下述的 多种特性、机制设计,以最终实现链上游戏能够具备实际落地运行的目标: 减少数据量和时间成本; 在语法级别支持共识任务; 合约持续执行; 链内实现定时器与心跳; 极小的事务延迟执行。 2.7.1. 轻量级节点 在 Cocos-BCX 设计中,轻量级节点(下文简称为“轻节点”)本质上是一个具备与链互操作能力的 环境,与全节点不同,轻节点不需要同步全网数据,取而代之的是同步运行必须的合约信息与环境 数据,这样的设计可以大幅减少节点同步的数据量和同步时间,使链上游戏端软件具备了实际使用 的容量、时间成本可行性。 Cocos-BCX 开发的游戏整体以合约形式在轻节点上本地化运行,但合约中标识出需要共识的部分 将被单独拆分为一个或多个子合约发布至相关节点进行共识(详细介绍见 2.7.2. 在语法级别支持共 识任务),这样的设计能够让巨大的游戏合约以更具效率、几乎无延迟的方式运行,其原理如图 2-71 所示,分别处理合约的共识与非共识部分也能够在尽可能保障用户体验的前提下保持与传统区块链 一样,数据具有可靠性。同时,对于轻节点的验证也不再像传统区块链一样进行过程和结果的验 证,而是对节点运行环境和输入数据的验证(可信执行环境验证),进一步提高了整体的运行效率。 2.7.2. 在语法级别支持共识任务 Cocos-BCX 提出了让合约在语法级别支持共识任务的设计,通过将脚本中需要共识的部分以特定 的关键词修饰,使合约解释器能够识别并在运行全文扫描时将标记为需要共识的合约部分拆分出形 成子合约发送至链网络的相关节点进行共识。 26
- 26.Project Cocos-BCX 图 2-7-1 轻节点与合约拆分运行原理 当合约运行时,合约整体在本地执行,到达需要共识的部分时,得到链网络返回的共识结果并 继续执行,此时实际上合约主体的运行过程与共识过程是两个相对独立的异步过程,使游戏合约的 运行更加流畅,可能发生的阻塞等待更低、时间更短。 此外,需要被共识的合约部分是拆分后以子合约方式分发执行的,这些子合约内容应该具备完 整的上下文关系和无额外依赖的设计,以便在其他节点上也能正确的得到结果。 2.7.3. 合约的持续执行 通过轻节点的方式,游戏整体作为一个合约运行的设想得到了实现可能,本地运行的游戏合约 能够长期、持续地在轻节点中运行这一过程与出块周期或块大小都无关,与之相关的仅是游戏合约 中包含共识的子合约内容。 游戏合约与子合约以一种“异步共识、同步返回”的方式,在持续运行的同时也不断完成关键 步骤的验证和同步,实现了游戏合约持续运行以及结果共识见证的机制。 27
- 27.Project Cocos-BCX 2.7.4. 合约会话机制 链上提供会话建立接口,该接口在合约公共数据区建立一个具有效限制的用户会话列表,同一 个会话区间的用户将有权限向同会话区间的其他用户推送事务,其他用户收到数据变动通知时,可 及时获取对应数据。 2.7.5. 事务的并发处理机制 在并发性事务处理机制中,事务可根据设定的优先级处理规则获得优先处理,见证人将从已完 成并发处理的事务池中,按优先级顺序抽取事务完成打包,并执行区块广播。这一机制是对传统交 易事务串行打包的一次改进,能够避免合约内部出现的死循环和无限递归导致的交易事务打包阻 塞。在传统区块链网络环境下,这样的阻塞往往会导致整个链网络的阻塞甚至完全崩溃。 2.7.6. 委托型事务机制与随机过程实现 委托型事务主要用于处理随机性高,不同节点执行会产生不同结果的事务类型(如产生一组随机 数),但此类型事务仅限于非个人数据关联的事务请求。通过可信执行环境认证的受托人收到委托事 务之后,会验证事务的可行性并执行委托,完成后将事务结果向链上广播。 在此机制下,链内的随机过程成为了可能,用户可以委托可信节点生成一个随机数、委托可信 节点维护合约公共数据等。进一步的,合约的开发者可以在此机制上可实现合约内部的函数回调机 制。 2.7.7. 定时器和心跳 几乎所有的游戏与应用都需要实现在线检测,而在 Cocos-BCX 设计区块链游戏时,为了解决用户 的状态检测与持续的会话机制,提出了定时器与心跳的概念。 在区块链网络中实现定时器首先需要实现时间同步机制,而传统的时间同步机制通常是由外部 授时或信任中心实现的,而在区块链去信任的逻辑下,外部授时或信任中心的都存在无法自证的缺 陷,因此链上时间的同步只能由链内完成。 Cocos-BCX 提出的时间同步方案是:利用块数据时间戳,出块节点在发布块时即等效的进行了时 间同步广播,各节点收到块广播后完成时间同步操作,最终全网在一个块同步周期中即完成了一次 时间同步过程。 基于这个设计,定时器能够顺理成章地实现:定时器以块周期为最小计时粒度,按照预先设定 的计时目标工作。由于区块数据时间戳为标准时间计数,不存在时区等因素的偏差,可认为是全网 统一的计时标准,计时器可以在任意网络区域、时区以同样的计时规则正常执行。 28
- 28.Project Cocos-BCX 2.7.8. 极小延迟的事务响应 传统区块链的事务执行确认是在节点接收到区块数据,完成事务内容解析,运行并得到正确结 果验证通过写入块数据时确认的,当一个事务被提交时这个事务实际进入了 pending 队列,而此时事 务仍并未执行,直到下一个出块周期,这个机制导致事务始终无法更及时地得到响应和处理。 Cocos-BCX 提出异步确认的方式,即在用户向节点发出交易请求时,节点将立即向网络发出事务 广播,并同时向用户返回事务 hash 值。在这个设计下,其实事务最终记录周期与传统设计并没有太 大差异,但事务的响应却几乎是没有延迟的,节点会在第一时间完成事务提交,而区块生成与事务 提交/确认过程变成了相互异步的操作,大幅提高了事务的响应速度。 进一步的,用户可通过交易 hash 值跟踪交易状态,同时交易事务将更新到用户历史事务数据表 中动态向用户推送。用户不必等待事务在链网络中验证、应用之后的回调再响应,我们借鉴了以太 坊的 hash 跟踪特性,并在此之上加入了用户事务动态推送的机制。 此外,为了进一步提高节点利用率和处理效率,Cocos-BCX 提出在委托见证的基础上提出了分区 见证的设计,即某些节点专注处理特定类型的合约请求,其原理如图 2-7-2 所示。 图 2-7-2 合约的分区见证机制 分区见证在游戏行业应用的意义在于能够针对不同请求类型针对性优化相关节点的处理能力, 例如对浮点运算集中型请求重点加强核心算力,对结构数据处理集中型请求重点加强存储 IO 能力 等,最终达到整体的效率、效益最优配置。 2.7.9. 链内的可信随机过程 区块链游戏规则上链能否具有实际应用价值与能否在链上实现随机过程密切相关。通过研究发 现,完整的链上随机过程需要解决一个关键问题:链上随机过程规则由智能合约描述,而合约的过 程是公开的,若需要产生无法被第三方推算的随机结果,则需要合约运行时有节点的噪声参与这一 过程的输入,但不同节点的噪声不可能一致,即其他节点无法通过再次运行这份合约来验证这次随 机过程的结果是否正确,最终导致无法完成共识。 29
- 29.Project Cocos-BCX 要解决这个问题,我们提出了两种可实施方案: 方案一 在区块链动态数据区维护一个或若干随机数据池,出块人将随机过程的结果包裹在区块的 加密数据段中并且加密过程的代码以闭源、不公开的形式发布。此时,所有节点将拥有同 一套随机数据池。随机数据池的数据结构呈管道形态,具有读端和写端的封装,且仅允许 符合规则的读写端访问,具有先进先出的特性。 因为区块链的所有节点事务处理具有一致性,应用在申请随机过程结果时可从随机数据池 中读取。在该随机过程产生、分配机制下,过程与结果的安全性能够满足区块链网络对随 机过程的安全性需求: 任一访问(读、写)行为都将导致随机数据池发生变化且无法复原; 写入随机数据的行为由动态加密函数库完成,且函数库闭源、不公示; 随机数据的生产者无法获知此次随机过程的结果将放入随机数据池的位置以及这一随 机过程将会被谁使用; 这一随机过程的实现方案适用于链网络对事务处理顺序具有一致性的场景,例如 RPG 游戏中玩 家开启地图宝箱获取随机道具的过程。 方案二 通过委托机制,允许部分事务委托至某单一可信节点完成处理,可信节点完成处理后记录 随机过程结果,并由通知或轮询机制让委托方获取结果。 因为该方案基于链事务委托机制,对链的改动会小于方案一,但要保证方案的可行性,应 满足以下需求: 受托方应通过可信执行环境验证,确保自身可信; 受托方运行随机过程并发布结果时,应采用同样具备安全性的加密函数库完成; 加密数据的传递需通过“零知识证明”或其他可靠证明方案证明受托方身份并能够被 委托方识别,确保委托方得到的数据不是第三方伪造。 此随机过程实现方案适用于事务具有多方参与但仅需要同一批随机结果的应用场景,例如棋牌 游戏中每一局的洗牌顺序等。 30
- 30.Project Cocos-BCX 3. 平台经济体系 3.1. 区块链为游戏行业带来的本质改变 从使用体验的角度,“区块链游戏”和普通游戏对玩家并无区别。然而,区块链可能对游戏市 场起到根本性影响。游戏行业现行的商业逻辑是“付费获取服务”,即用户付出金钱、时间和行为 数据以单向开支的形式交换游戏体验。但基于区块链机制上数据公开、不可逆、永久存续等特点, 游戏内的道具可被用户管理和转移,从体验服务转变为体验资产。我们认为,“付费获取服务”与 “购买和使用资产”对于开发者、发行者和玩家是截然不同的价值诉求,会相应形成不同的行为和 商业模式。这些潜在的改变可以被归纳为: 1. 资产属性。资产是由过往经济活动形成,被某方控制并可获得未来所产生的经济利益的资源。 游戏内容在区块链上具备了成为资产的两个特性:(1)独立存在和延续,在跨链机制下还可存 在于不同的区块链系统内。理论上游戏的链上资产部分可以永久存续,且不受任何链、节点的 控制与影响;(2)独立、公开定价。区块链生态上的任何参与者均可以通过使用、交易、搜索 等行为对目标游戏资产进行不同维度的定价,同样不受任何链、节点的控制和影响。数字内容 具备了被拥有的权利和被评估的机制,真正成为了资产; 2. 博弈模型。在目前“付费获取服务”的商业模式下,发行者(包括用户流量平台和发行商)对 用户消费的支配权大,对游戏内容的生命周期(能否上线和运营时间)、单位价格(物品定 价)和玩家规模(流量推广)有最大的议价权。同时,游戏的玩法、产出与数据不对玩家公 开。各方在有限的时间区间内围绕游戏体验和价格的匹配度进行非合作性的不完美信息博弈。 以一款中国市场内渠道评级为 B 的动作角色扮演(Action RPG)移动游戏为例:发行者从自身利 益出发选择游戏产品、测试、上线并进行不超过数天的集中推广;开发者为在有限时间内转化 用户进行支付,在数小时游戏时间后开始设置收费点,并预期多数账户的生命周期不超过 75 天;大量玩家在明知游戏大概率运营不超过 12 个月的情况下,被迫在游戏体验和付费间进行抉 择。从长期看,开发者、发行者和玩家三者的博弈鼓励短期利益最大化,降低了游戏的整体体 验,对行业的发展起到了负面的作用。 而对于一个长期存在,定价可以不受中心化(如发行方)影响、数据透明的游戏资产,开发 者、玩家和其他相关方的博弈模型有可能发生改变,即相对原有模型更为长期、合作和信息完 美。在游戏可以长时间在区块链环境内独立存续、被版权机制管理、并被代币化的条件下,开 发者在资产被不断的交易的过程中持续受益,将更有意愿提升内容质量、增加游戏的长期总体 价值;玩家付出金钱、时间和隐私换取可被使用、修改和出售的资产而非纯粹的使用体验,其 31
- 31.Project Cocos-BCX 购买与交换资产的意愿可能加强;同时,任何游戏代币持有者都会因游戏资产升值而受益,将 有动力发现、推广和协助提升优质的游戏内容。开发者、玩家、第三方参与者将围绕资产价值 长期最大化这一目标进行博弈,有利于提升游戏行业的水平。 3. 资产定价和定价行为动机。从金融角度,上述的博弈过程是对游戏资产的定价行为。在目前的 行业结构下,游戏内容被发行者选择推向市场。游戏的使用者不是定价者,市场定价效率没有 实现最大化。造成现状的原因除了传统游戏技术、运营和商业模式的中心化特质外,玩家参与 定价行为的动机不足是另一个主要因素。玩家发现和推广优秀的游戏内容很难有实质回报,仅 能获得消费心理意义上传播美誉的满足感、以及开发者或发行者基于结果给予的有限经济奖励 (例如介绍一个注册用户送游戏道具等)。 然而在区块链经济体系内,数字资产的价格被实时反映到相关的代币上。参与者可以通过调节 对游戏、平台的代币和道具持有量决定自己参与定价行为的收益程度。例如,玩家发现了使用 Cocos-BCX 平台开发的游戏后,可以买入其限量道具、游戏自身代币、甚至 Cocos 平台代币,自 发对外推广游戏,并从道具和代币的升值中获得收益。资产化和代币化为市场参与者的资产定 价行为提供了足够的动力和灵活的媒介。 综上所述,“区块链游戏”可以被更准确地定义为“使用区块链技术、具备区块链经济机制的 游戏”。 从经济角度看,本文 1.3 节中所阐述的区块链游戏发展路径也可以被视为市场各方参与资 产定价、利益逐步统一的四个阶段,是商业模式变化推动开发者和用户的结果,势必给游戏行业带 来根本变化。 以上的资产化路径也适用于游戏以外的广义数字资产,我们将在 Cocos-BCX 平台的后续发展中对 更多类别的资产进行支持。 3.2. Cocos-BCX 经济体的设计原理 通过提供底层公链、数字产权管理、交易所等一套完整的功能组件,Cocos-BCX 平台承载了开发 者所创造的游戏资产价值。随着更多的游戏、游戏内资产被生产、管理和交换,平台的经济总量持 续膨胀。 Cocos-BCX 基于石墨烯标准的技术和治理架构设计,拥有 DPoS 共识机制对应的经济属性。平台 具备非挖矿、委托共识、低分叉可能、可定义交易成本等特性,开发者与用户可以将主要资源投入 数字资产本身的创造与交换中,系统资源的整体消耗成本低。 在真实的商业环境中,参与方的经济行为和心理既存在宏观规律又有微观离散性。我们认为 Cocos-BCX 的经济、治理、产品和技术规则设定应充分考虑和兼容各类行为的复杂性与不完美。平台 仅提供最小可行、灵活的工具与规则,帮助和促进参与者根据各自的利益进行高度自由的经济活动 32
- 32.Project Cocos-BCX 与社区治理。各个生态角色在无需互信的前提下形成博弈关系和自激励机制,从而提升行业的整体 效率和价值。同时,全球游戏开发者社区拥有长期的历史,具备成熟的价值观。我们希望最大程度 地将该价值观反映到经济体系的设计中,即: 独立生存:平台自身拥有清晰的商业模式,能够稳定存续; 自治与共识:社区与子社区(例如同一世界观下的生态)逐步建立共同决策机制,并最终 按照共识原则运行,建立以参与者投票为基础的发展决策体系; 共享:社区产生价值中的一部分作为共同财富,用于社区的生存和竞争力提升; 自我进化:建立奖励机制,未来鼓励成员对社区的技术和经济机制持续提出挑战。 3.3. COCOS 代币:全域、广义去中心化数字资产的原生定价媒介 为实现上述的设想,我们创建了平台代币 COCOS 作为平台生态经济活动的流通媒介和治理凭证。 除作为 Cocox-BCX 的价值交换载体和社区参与证明以外,COCOS 将有可能作为基础定价代币,对 数字资产生态起到关键的作用。大量去中心化数字资产未来将以不同标准存在于多个区块链生态 中,跨越链生态的资产定价媒介有存在的必要性。基于以下原因,COCOS 能够成为区块链生态数字资 产原生的定价媒介: 1. Cocos-BCX 平台在底层技术、共识机制、应用功能等方面原生支持全域、同质/非同质去中心化 数字资产的交换。COCOS 具备成为基础定价媒介的技术基础; 2. 在 Cocos-BCX 平台上的资产创造过程中,生产行为(例如委托共识出块)和生产要素(例如从平 台应用商店购买游戏内的设计素材)均以 COCOS 作为原生的定价媒介。所产出资产的 COCOS 价格 体现了对生产成本与利润的价值确认,而非名义标价。COCOS 具备成为基础定价媒介的经济基 础; 3. Cocos-BCX 平台支持和鼓励同一世界观、相关世界观下的资产流通,在全域数字资产间建立了真 正的用户使用价值联系,而不仅代表资产间的名义兑换率。COCOS 具备成为基础定价媒介的流通 基础。 基于 COCOS,开发者和用户可以对不同链生态、世界观内容、技术标准的数字资产进行评估、比 较、交易和管理。同时,COCOS 作为原生和基础的定价媒介,是未来区块链行业进行数字资产金融产 品和衍生品开发与交易的必要条件。 3.4. COCOS 代币的基本使用模型 33
- 33.Project Cocos-BCX 平台代币 COCOS 具备三个作用:(1)平台生态内的价值交换媒介、(2)Cocos-BCX 公链的委托 共识权益份额代表、和(3)平台社区参与和贡献的衡量。COCOS 从平台共识工作贡献奖励(例如出 块)、开发者产出资产的过程中产生,并通过游戏内货币和道具、交易所传导至用户。用户和开发 者也通过平台代币的流通设施对 COCOS 进行交换。 作为平台的价值交换媒介,COCOS 可用于支付社区内的资源消耗、购买平台功能、消费和交易数 字资产,以及支付跨链生态的消费、交易和资源交换(例如通过平台发布以太坊应用需要的 GAS 等)。 作为 Cocos-BCX 公链的委托共识权益份额代表,COCOS 的持有者直接参与共识代理投票。具体的 投票机制请参考本白皮书中“2.4.1. 改进的 DPOS 共识算法”部分。 作为平台参与度衡量证明,COCOS 可作为未来社区事项的投票权代表和完成平台任务的激励手 段。例如使用 COCOS 作为赏金征集开发者,针对平台的特定功能进行开发或优化。 在平台的第一阶段,我们发行基于 ERC-20 标准的 COCOS Token,数量设定为 100,000,000,000 (一千亿)枚,总量维持不变,最小计量单位为 10-18 COCOS。在我们推出自有公链后,持有 ERC-20 COCOS 代币的用户可根据凭证获得等量的自有公链 COCOS 币,同时其 ERC-20 Token 将被回收。 3.4.1. COCOS 的获取方式 参与者在 Cocos-BCX 平台中拥有相同的身份权限。无论是普通游戏玩家,亦或是开发者都可以充 分使用平台功能创造出属于自己的数字资产,并通过这种方式获得收益。 COCOS 的获取方式包括但不限于: 1) 价值创造:包括(A)创造数字资产行为的贡献,即开发游戏、制作道具。针对单一的数字 资产(包括游戏、应用、游戏/应用内道具),平台激励的发放量与参与者创作的该资产价 值成正比、与 Cocos-BCX 平台的存续时间和系统总资产价值成反比,激励总量设有上限;和 (B)创造数字资产价值的贡献,即创造资产到达一定的收费与交易规模可获得 COCOS。针 对单一的数字资产(包括游戏、应用、游戏/应用内道具),激励发放量与开发者创作的该 资产总交易量成正比,激励总量不设上限; 2) 平台贡献奖励:为 Cocos-BCX 社区做出贡献的用户可获得 COCOS。初期,我们以开发者社区 的历史贡献度(对 COCOS 引擎的代码贡献积分、在线社区互动积分等)进行 COCOS 发放。后 期,平台将采用赏金任务、免费资产(例如无偿赠送开发者的游戏人物形象)等多种形 式,激励开发者对平台进行新功能开发、升级、错误修改、测试等社区行为。此部分将从 平台基金会的代币预留和平台分成部分拨出,激励总量不设上限; 34
- 34.Project Cocos-BCX 3) 市场交易:出售在游戏中获取的道具资产获得 COCOS。该部分的激励与游戏玩法和经济体系 相关,由游戏开发者与市场规律决定,平台原则上不做规则和数量限制; 4) 行为激励:在 Cocos-BCX 平台、社区及平台游戏内的多种有效行为将按照一定的贡献度兑换 成 COCOS。例如,用户注册平台账号、参与社区各类互动以获得 COCOS。平台通过分析访问 有效性、信息完整性、行为合理性等维度,确认用户行为是否有效,并进行 COCOS 的发放激 励。该部分的激励数量与互动内容(如发帖、点赞、回复等)成正比、与平台总用户量、 平台存续时间成反比,激励总量设有上限; 5) Cocos-BCX 公链共识工作贡献奖励。 3.4.2. COCOS 的消耗及应用场景 COCOS 的使用场景包括但不限于: 1) 从第三方开发者购买开发资源(例如游戏角色形象等); 2) 从平台处购买开发功能组件等增值服务; 3) 从游戏内或资产交易市场中购买游戏金币和道具资产。基于平台的资产权利管理机制,道 具在其完整生命周期内的每一次交易均向开发者缴纳一定的费用; 4) 在社区发布悬赏任务,发起和参与社区事务的投票。 在每一次 COCOS 的流转行为中,平台将抽取一定比例的费用,并将其锁定为社区的共同财富。在 一定时间后,平台将释放使用该部分财富用于生态建设的资源。 3.5. COCOS 的使用分配 在初始状态,我们建议将 80%的 COCOS 拨备用于各种方式的平台社区建设,其中包括但不限于见 证人出块奖励、平台生态开发者的激励、全球社区建设、营销和推广、行业联盟、生态投资、研 究、财务与法律合规等。使用该部分 COCOS 的使用包括通过共识工作贡献换取、无偿赠送、赠送换 取服务、赠送换取其他 Token 等。 20%的 COCOS 拟用于激励本项目的发起团队。我们预计全球区块链社区在未来 3 年内将有关键发 展,并希望项目的商业和社会价值在 3 年内得到验证。因此,激励部分将予以锁定,在 Token 流通后 的 3 年内逐步等比解锁。 35
- 35.Project Cocos-BCX 首批微信小游戏引擎占比 代币用途示意 生态参与者激励 10.0% 生态推广 8.0% 机构捐助者T1 6.4% 团队激励 18.0% 核心行业顾问 3.0% 机构捐助者T2 20.0% 共识工作奖励 与项目预留 34.6% 用途 生态参与者激励 生态推广 机构捐助者T1 占比 说明 锁定条件 10% 对用户和开发者参与生态内使用、推广、 研究与开发行为的激励 视业务情况 为在业内推广项目,建立项目的市场地 8% 位所进行的战略级别代币交换、资源支 视业务情况 持 6.4% 对企业、机构与相关行业捐助者的回报 无 机构捐助者T2 共识工作奖励 与项目预留 核心行业顾问 团队激励 总计 ~20% 对企业、机构与相关行业捐助者的回报 待定 34.6% 项目的长期发展资源储备, 视业务情况 3% 对项目做出重大贡献的技术、商业等领 域顾问的激励 按贡献 逐步释放 18% 团队在项目研究、开发、持续维护付出 Token流动3年内 时间和精力的激励 逐步释放 100% 图 18 Token 用途示意 36
- 36.Project Cocos-BCX 4. 团队构成 Cocos-BCX 团队具备项目所需要的完整技能、知识和行业经验,即区块链技术开发、游戏引擎与 IDE、开发者社区运营、游戏制作与发行、娱乐社区运营、金融市场机制、资产定价和跨国企业运 营。项目的核心发起人具备两个商业周期的创业经验,在全球的信息科技创业、游戏领域拥有广泛 的业务网络与知名度,具备建立生态级平台的决策力、执行经验和行业资源。 主要创始人之一是中国知名的互联网连续创业者,自 1999 年来先后主导和参与创立了卓越网、 爱卡汽车网、译言网,并于 2009 年创立了 Chukong Technology。Chukong 是中国领先的游戏研发与 发行企业,并是全球 Cocos 开源游戏引擎、开发者社区的主要维护者和支持者。Cocos 是中国第一、 全球第二的游戏引擎,拥有 110 万注册开发者和超过 300 万的使用者。Cocos 的引擎数据及广告网络 拥有 1,400 万的日活跃用户和 6.05 亿总设备安装数。在他的领导下,Chukong 在中国、美国、日本 和韩国均设立了分支机构,并与全球的游戏产业链建立了紧密的业务联系。 另一发起人拥有超过 14 年科技创业和投资经历,曾共同创立了中国领先的娱乐社交网络企业。 作为投资人,他曾任职于中国领先的私募股权基金,主导和参与了总金额超过 10 亿美元的投资项 目,并实现了部分项目的境内外退出。他的兴趣与专长集中于全球晚期一级市场、二级市场的信息 科技与宏观多资产类别投资,对金融市场机制、资产定价有较深入的理解。他还是中国领先的科技 投资基金的投资合伙人,并为中美对冲基金、风险投资基金和大型企业提供顾问建议。 37
- 37.Project Cocos-BCX 5. 总结 我们认为数字资产是最符合区块链经济本质的资产类别,拥有广阔的发展前景。游戏作为巨大 的市场,是区块链大规模应用的第一步。 为帮助开发者大规模在区块链环境中生产资产提供条件,我们推出一个应用开发和数字资产管 理与交易的平台。该平台支持大规模数字内容的创建、区块链机制的集成,以及数字内容资产化、 管理和流通的必要组件。 通过原型验证,我们初步实现了游戏内资产制作、发布、上链、交易的完整流程。 38