自从去年以太坊上的游戏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回应关于Fantom像是中心化赚钱计划文章问题,删除并致歉:3月11日消息,rekt 回应此前关于发布Fantom 像是中心化的赚钱计划文章问题,并表示向所有读者和受影响的协议道歉,同时删除该文章。
rekt 此前发布文章表示,疑似由 Fantom 基金会控制的单一地址在过去 5 个月中总共发送了约 7.5 亿个 FTM 被间接发送到 Binance 地址,同时用于激励计划的 6000 万 FTM 并未由多签地址管理,fUSD 也存在明显风险,并进行了具体链上分析。基于这些发现,Fantom 看起来更像是一个中心化的赚钱计划。这篇文章于发布后被多位 KOL 证实缺乏研究,多数陈述都可以被证伪。[2022/3/11 13:50:23]
DAO链游聚合平台SEEKTIGER官方NFT上架币安NFT市场:据官方消息,DAO链游聚合平台SEEKTIGER将于北京时间2月22日19时登陆币安NFT市场,发售币安专属版Pirate Tiger NFT。
SEEKTIGER是由DAO治理的链游聚合平台,允许用户在平台上架游戏并拥有自主管理权,产品还包括NFT交易市场、跨链融合的元宇宙生态体系,多个产品板块组成内需强劲且资产自由流通的元宇宙。
即将在币安NFT市场发售的币安专属版Pirate Tiger NFT总量1000个,单价300 USDT,每一个NFT都是通过BEP721协议铸造,可以存入SEEKTIGER的盲盒系统,直接参与DAO荣誉勋章的合成。[2022/2/18 10:00:37]
墨西哥零售巨头Elektra宣布支持比特币支付:12月17日,墨西哥零售巨头、Elektra的所有者Ricardo Salinas Pliego宣布他们现在将接受比特币作为支付方式。Ricardo在 Twitter 上宣布了这一消息,同时还宣布 Elektra 是墨西哥有史以来第一家开始使用比特币支付的零售店。该公司为使用加密货币进行购买的客户提供了 20% 的额外折扣,计划与加密支付公司Bitpay合作来处理他们的 BTC 交易。(coingape)[2021/12/17 7:45:43]
动态 |Google Trends显示“REKT”搜索频率超过“HODL”:据coinspeaker报道,Google Trends数据显示,\"HODL\"一词搜索的数量有相当大的下降。而在另一方面,“REKT”一词的搜索频率一直在增长。事实上,“REKT”已经超过了今年7月的“HODL”的搜索频率。
“HODL”、“REKT”是加密领域中使用的流行术语,用于对加密投资者进行分类,“HODL”表示投资者坚持长期持有策略,拒绝在短期价格波动中抛售。另一方面,“REKT”则用于描述巨大的交易损失。[2018/8/27]
StakingasaService是加密货币圈最火热的话题之一,重量级玩家Coinbase已经在StakingEconomy这个领域连续出招,今天消息传出Coinbase托管系统支持TezosStaking.
1900/1/1 0:00:00“USDT疯了。”4月8日早6点,币民肖策在群里说,配上一个哭笑不得的表情,“7.03了。”在过去的一个月内,USDT从最低6.76元,涨到今天早上的7.03元,涨幅4%.
1900/1/1 0:00:00随着区块链数字货币市场回归理性,区块链技术逐渐受到大众关注,无论是互联网巨头还是区块链企业纷纷将目光锁定至区块链专利这一领域,在区块链最终争夺战中,区块链专利是不可或缺的一场战役.
1900/1/1 0:00:00编者按:本文来自链捕手,作者:胡韬,星球日报经授权发布。01民生银行简介中国民生银行成立于1996年,由全国工商联牵头组建,是第一家由民间资本设立的全国性商业银行,股东均为工商联合员企业.
1900/1/1 0:00:00编者按:本文来自:橙皮书,作者:orangefans,观点来源:EricMeltzer,https://proofofwork.news/,Odaily星期日报经授权转载.
1900/1/1 0:00:00传统领域巨头在区块链领域动作越发频繁。今年1月,英国《金融时报》报道,伦敦证券交易所集团LondonStockExchangeGroup正在与加密货币交易所AAX(AtomAssetExchange)合作,伦敦证券交易所集团的交易技术.
1900/1/1 0:00:00