自從去年以太坊上的游戲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的不斷完善,我們也會提供一個良好的機制解決這個問題。回到我們一開始提到的棋牌游戲的例子,即使隨機數生成的問題解決了,那什么時間把這個隨機數寫入到區塊鏈上呢?我們可以把每一局游戲看成一個“會話”。每一輪會話的開始都是基于隨機數的生成,但是這個隨機數生成以后,并不是馬上就寫入到區塊鏈上。這個信息會首先記入自己“私有”的持久化空間。在每一輪游戲結束之后,這個數據才會從自己的私有空間寫入到區塊鏈上,進而既保證了游戲的公平,又不會提前泄露牌局的信息。
Rektguy聯創:Red Lite District #44已在蘇富比上架拍賣:金色財經報道,NFT項目Rektguy聯合創始人OSF在社交媒體宣布“Red Lite District #44” NFT已在蘇富比上架拍賣,拍賣將于太平洋時間3月31日上午11:05結束,蘇富比提供的拍賣估價為15,000-25,000美元,當前出價為17,000美元。另據OpenSea數據顯示,當前Red Lite District系列的地板價約為12,69 ETH。[2023/3/25 13:25:48]
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]
墨西哥零售巨頭Grupo Elektra將增加比特幣閃電支付:9月6日消息,墨西哥零售業巨頭GrupoElektra將支持比特幣閃電網絡。億萬富翁Ricardo Salinas Pliego表示,新的支付功能將很快進入Electra的商店。SalinasPliego是墨西哥第三大富豪,估計凈資產為154億美元,長期以來一直是比特幣的堅定支持者。去年11月,他曾宣布將其投資組合的10%投資于比特幣。(U.today)[2021/9/6 23:03:21]
金色熱搜榜:EKT居于榜首:根據金色財經排行榜數據顯示,過去24小時內,EKT搜索量高居榜首。具體前五名單如下:EKT、SOC、NEO、HC、SMT。[2020/8/28]
Tags:BLOCBLOCKLOCKBLOBlockWarriorBlockBenydsblockchainBlockmax
本周大事記 EOS價格漲幅達30.12%,市值跌落至第六;本周去中心化交易所增勢明顯;BM私下表示,不久的將來會有一系列重大產品與消息對外公布.
1900/1/1 0:00:00頭條 比特幣大漲觸及5000美元關口,港股美股區塊鏈概念股最高漲超20%繼A股連續兩日漲停后,4月2日,回調多日的港股雄岸科技終放量突破,午后升幅一度擴大至22%,后略有收窄.
1900/1/1 0:00:00作者|蘆薈編輯|盧曉明 奢侈品假貨市場防不勝防,前有媒體暗訪廣州皮革五金城,曝光海外代購拿貨變“代購正品”,后有奢侈品集團路易威登LVMH正準備推出一個區塊鏈平臺以求證奢侈品的真實性.
1900/1/1 0:00:00Odaily星球日報譯者|MoniCoinbase已經正式宣布支持恒星幣交易,但市場對這個消息做出的反應卻讓不少投資者感到失望,因為與之前瑞波幣上架Coinbase相似.
1900/1/1 0:00:00作者|秦曉峰編輯|盧曉明美國信托機構PrimeTrust在其官網宣布,OK集團已完成對PrimeTrust的戰略投資。未來雙方將進行深度合作,共同推出基于OKChain的穩定幣OKUSD.
1900/1/1 0:00:002019年第一季度,冷清的幣圈內似乎都在彌漫著“幣安引領走出熊市”的高調吹捧聲,而事實上似乎也確實有那么點意思.
1900/1/1 0:00:00