火星链 火星链
Ctrl+D收藏火星链

LOCK:EKT多链技术是如何解决智能合约数据的存储与设计问题的

作者:

时间:1900/1/1 0:00:00

自从去年以太坊上的游戏CtyptoKitties流行起来以后,很多人发现了智能合约的新玩法——做游戏!在手机游戏市场中,棋牌类的游戏占领了很大的市场,比如斗地主、德州扑克等。这类游戏有一个共同的特点:在每轮游戏开始前,需要通过生成随机数来洗牌,来保证每一局牌面的随机性。通过智能合约来实现这类棋牌游戏遇到的一个问题就是:因为智能合约包括区块链上的数据都是开源的,一旦本轮洗牌使用的随机数在本轮游戏结束前记录到区块链上,那玩家就可以根据这个随机数计算出所有其他玩家的牌面,那这个洗牌也就失去原本的意义,游戏也就无法进行下去了。这种情况在区块链上如何解决呢?本文我们就一起来探讨下智能合约的数据存储问题。一、棋牌游戏的洗牌算法大家可能都玩过斗地主或者德州扑克一类的棋牌游戏。在这些游戏里,每一局开始时,玩家手里的牌面都是不一样的,这个是怎么实现的呢?这个问题在计算机领域被称为“洗牌算法”,抽象来讲,它描述的问题是如何对一个有限集合生成一个随机排列的算法。这个算法生成的随机排列是等概率的,同时这个算法又需要非常高效。我们来看一下比较流行的Fisher–Yatesshuffle洗牌算法的解决方案:1-N张牌存储在原始列表list1中随机洗好的牌存储在新列表list2中随机生成一个数字i(1到剩下的数字(包括这个数字))从低位开始,得到第i个数字(这个数字还没有被取出),取出,并存在list2中重复第三步,重新生成i,直到所有数字都被取出取出的这个列表,就是原始列表的随机排序列表,完成算法上述算法用伪代码表示如下:在这个算法里,随机数i是非常重要的一个角色,直接决定了最后各个玩家手里的牌面。如果这个数字暴露,那就可以很容易的推测出最后的洗牌结果。二、智能合约的随机数问题区块链由于自身的公开透明以及不可篡改特性,没有给庄家留下作弊的空间。因此基于区块链的智能合约来实现一个棋牌游戏能够非常好的保证玩家的利益,也是一个非常有前景的应用。问题是如何通过智能合约生成及保存随机数,才能保证游戏的公平性以及玩家的利益?我们首先对目前以太坊上游戏合约的情况进行一个分析,然后提出了我们的思考。1.不安全的随机数生成方式基于区块内的某些变量区块中记录了很多关于区块的元信息,比如block.coinbase,block.difficulty,block.gaslimit,block.number,block.timestamp等。很多人觉得可以基于这些元信息来生成随机数,但其实这个不安全的。首先如果这个随机数可以产生足够的利益,那么维持区块链运转的矿工就有修改这些数据的动机。其次如果攻击者想要进行攻击,也可以基于这些信息可以同时生成这个随机数。基于某些已生成区块的blockhash每一个区块都有自己的blockhash,EVM也通过block.blockhash()提供了获取blockhash的接口。在目前很多的智能合约里,上一个区块的blockhash,也就是block.blockhash(block.number-1)经常被用来生成随机数。这种方案的缺点也是非常明显的:如果攻击者想要进行攻击,他完全可以同样基于上一个区块的blockhash生成具有同样随机数的智能合约。2.如何更安全的生成和保存随机数我们在之前的文章里解释过预言机的问题,预言机是连接区块链世界和真实世界信息的一个桥梁。我们既可以自己实现一个随机数生成器,然后通过预言机导入智能合约,也快成直接调用类似Random.org之类的网站获取真正的随机数。关于这个方面,随着EKT的不断完善,我们也会提供一个良好的机制解决这个问题。回到我们一开始提到的棋牌游戏的例子,即使随机数生成的问题解决了,那什么时间把这个随机数写入到区块链上呢?我们可以把每一局游戏看成一个“会话”。每一轮会话的开始都是基于随机数的生成,但是这个随机数生成以后,并不是马上就写入到区块链上。这个信息会首先记入自己“私有”的持久化空间。在每一轮游戏结束之后,这个数据才会从自己的私有空间写入到区块链上,进而既保证了游戏的公平,又不会提前泄露牌局的信息。

Rekt Dogs项目Discord服务器遭到攻击:金色财经消息,据CertiK监测,RektDogs项目Discord服务器遭到攻击。请社区用户在服务器修复之前不要点击任何链接。[2023/2/1 11:40:46]

rektguy系列NFT24小时交易额为351.27万美元:金色财经消息,据NFTGo.io数据显示,rektguy系列NFT总市值达1615.23万美元,在所有NFT项目总市值排名中位列第207;其24小时交易额为351.27万美元,增幅达26.57%。截止发稿时,该系列NFT当前地板价为0.93ETH。[2022/5/30 3:51:03]

rektguy NFT系列24小时交易额在OpenSea排名达到第一:金色财经消息,据OpenSea数据显示,rektguy NFT系列24小时交易额在OpenSea排名达到第一。截至发稿时,24小时的具体交易额为1697.53ETH,地板价为0.9ETH。[2022/5/30 3:50:34]

墨西哥零售巨头Grupo Elektra将增加比特币闪电支付:9月6日消息,墨西哥零售业巨头GrupoElektra将支持比特币闪电网络。亿万富翁Ricardo Salinas Pliego表示,新的支付功能将很快进入Electra的商店。SalinasPliego是墨西哥第三大富豪,估计净资产为154亿美元,长期以来一直是比特币的坚定支持者。去年11月,他曾宣布将其投资组合的10%投资于比特币。(U.today)[2021/9/6 23:03:21]

标签:LOCKLOCBLOBLOCLBLOCK币blockchain是什么软件blockchain手机安卓版Misbloc

抹茶交易所热门资讯
比特币:星球日报 | OK集团即将推出稳定币OKUSD?;香港证监会发布有关证券型代币发行的声明

头条OK集团投资美国信托机构PrimeTrust,将共同推出稳定币OKUSD美国信托机构PrimeTrust在官方渠道宣布,OK集团已完成PrimeTrust的战略投资,未来双方将进行深度合作.

1900/1/1 0:00:00
区块链:海外周报 | 值得关注的三个新项目;支付巨头 PayPal首涉区块链投资;比特币闪电火炬即将“熄灭”(4.1-4.7)

海外重磅播报比特币闪电火炬即将“熄灭”,仅剩余约10次的传递次数比特币闪电火炬似乎很快就要“熄灭了”。到目前为止,闪电火炬已经覆盖到了全球54个国家.

1900/1/1 0:00:00
比特币:科普园地16 | 识别山寨币、空气币、币

自从莱特币出现之后呢,涌现了大量的山寨币,林子大了什么鸟都有,这里面鱼龙混杂,掺杂了一些空气币和币,让人猝不及防。其实,山寨币、空气币、币,虽然他们的界限是很模糊的,但是各有各的特点.

1900/1/1 0:00:00
TOKEN:波场假币攻击全过程:BTTBank理财合约遭黑客假BTT攻击

04月11日凌晨00:17,PeckShield态势感知平台监测到TCX1Cay…开头的黑客,创建了名为BTTx,tokenid为1002278的TRC10token.

1900/1/1 0:00:00
ONO:Staking Economy会为PoS生态带来什么?

导读本月29日CoinbaseCustody宣布开始对TezosStaking提供支持,由此也将StakingEconomy从幕后推至前台.

1900/1/1 0:00:00
比特币:“闪电火炬”即将落幕,背后是李嘉诚投的这家公司

再有大约一周的时间,名为“闪电火炬”的闪电网络支付活动即将落幕。这是一场由全职比特币爱好者hodlonaut在1月19日无意中发起的社会实验活动.

1900/1/1 0:00:00