LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 新闻观点 > Cocos-BCX 提供三种随机过程解决方案

Cocos-BCX 提供三种随机过程解决方案

2019-12-12 CocosBCX 来源:区块链网络

本文由币圈金马团队原创,并授权 Cocos-BCX 转载。

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1

Cocos-BCX 在白皮书中,定义了区块链游戏的四个发展阶段,分别是:第一阶段、使用同质资产作为游戏“金币”的结算。第二阶段、游戏“金币”和道具的自由兑换。第三阶段、游戏的关键规则上链运行。第四阶段、游戏整体上链运行。目前,大部分区块链游戏处于第一阶段,少部分处于第二阶段,而一些基于 Cocos-BCX 开发的游戏,比如:Cocos Shooting 游戏,已迈入第三阶段。Shooting 游戏采用 Cocos-BCX 链上内源可行信随机过程,在降低开发者开发成本的同时,大大降低了玩家的信任成本。通过 “数据链上交互,游戏链外运行”的策略,即“关键规则上链”,让游戏环境更公平。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1

一、外源随机 Vs. 内源随机

随机过程是依赖于参数的一族随机变量的全体,这个参数通常是时间。外源随机:指随机过程的不确定性因素,发生在区块链系统以外。外源随机,无法保证随机因素的生成过程是能被链系统信任的。内源随机:指随机过程的不确定性因素,发生在区块链系统以内。内源随机,能保证随机因素的生成过程被链系统信任。二、区块链系统如何保证随机过程及其结果可信?

1、完成随机过程执行的节点,不能知晓此随机信息被使用的场景和对象,以免这部分信息被用来作弊;2、随机过程在调用起业务行为结束前,不应被链上公示,以免因公示失去公正性。例如,一局正在进行中的斗地主,各位玩家手中的牌面信息,不应在链上公示;3、 内源随机过程应具备抵抗 BP/开发者作弊的特性。目前 Cocos-BCX 已经成功在链内实现了可信的随机过程,并且,将随机过程调用,以接口的形式供合约开发者调用。开发者只需在合约中调用 random 函数,即可获取内源随机数据。相当方便!不仅大大节约了开发时间,更大大降低了玩家的信任成本。三、三种随机过程解决方案

实现内源随机,即链上随机过程,需要解决一个关键问题:描述链上随机过程规则的智能合约是公开的,在合约运行时,需要节点的噪声参与输入。(这里的噪声,应该是指一个随机数序列)。然而,不同节点的噪声,不可能一致,简单说,就是其它节点无法通过再次运行这份智能合约,来验证这次随机过程的结果是否正确,最终就是无法完成共识。要解决这个问题,Cocos-BCX 提出了三种可行方案:方案一、随机数据池

在区块链动态数据区维护一个或若干随机数据池,出块人将随机过程的结果包裹在区块的加密数据段中,并且加密过程的代码不公开。所有节点将拥有同一套随机数据池。随机数据池的数据结构呈管道形态,具有读端和写端的封装,且仅允许符合规则的读写端访问,具有先进先出的特性。方案一特点:1、任意一种访问(读、写)行为都将导致随机数据池发生变化且无法复原;2、写入随机数据的行为由动态加密函数库完成,且函数库闭源、不公开;3、随机数据的生产者无法获知此次随机过程的结果将放入随机数据池的位置,以及这一随机过程将会被谁使用;方案一适用于:对事务处理顺序具有一致性的场景,例如 RPG(Role-playing game,角色扮演游戏)中玩家开启地图宝箱获取随机道具的过程。方案二、委托机制

通过委托机制,允许部分事务委托至某可信节点簇完成处理。节点簇中随机分配当前在线的可信节点执行事务,可信节点完成处理后记录随机过程结果,并由通知或轮询机制让委托方获取结果。方案二基于链事务委托机制,对链的改动小于方案一。但是,如果要保证方案的可行性,必须满足以下需求:1、受托方应通过可信执行环境验证,确保自身可信;2、受托方运行随机过程并发布结果时,应采用同样具备安全性的加密函数库完成;3、加密数据的传递需通过“零知识证明”或其他可靠证明方案证明受托方身份,并能够被委托方识别,确保委托方得到的数据不是由第三方伪造。方案二适用于:事务具有多方参与但仅需要同一批随机结果的应用场景,例如棋牌游戏中每一局的洗牌顺序等等。方案三、随机函数

当前的区块生产者接收到随机事务,通过随机函数生成一个随机结果,并将随机过程与随机结果通过加密函数加密写入区块数据,并打包发送到全网。其余普通节点接受该随机结果并应用,以此完成随机事务的共识。方案三目前已经完成。方案三适用于:游戏中的抽奖场景等,如掷骰子产生一个随机结果等等.四、Cocos Shooting

由 Orion Group 开发的 Cocos Shooting,是一款射击类游戏。玩家通过击毁敌机,获得 Cocos 代币奖励。此外,还有道具抽奖、道具强化等操作。而游戏中所有涉及概率的部分,都由 Coccos-BCX 智能合约的内源可行信随机过程完成,防止作弊,充分体现了链内游戏的公平性。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1

Cocos-BCX 首席技术顾问 Kevin 曾经表示,不同游戏关键部分各不相同,如 SLG(Simulation Game,策略游戏)游戏中的地图和怪物生成、开宝箱;棋牌游戏中的荷官;卡牌游戏中的抽卡。将游戏核心玩法先上链,能让玩家更真切感觉到区块链给游戏带来的改变(更公平)。

Cocos-BCX 内源可信随机过程的实现,让区块链游戏向前跨出一大步。

—-

编译者/作者:CocosBCX

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...