自從去年以太坊上的游戲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]
元宇宙游戲開發公司Rekt Studios完成150萬美元融資:11月17日消息,位于迪拜的技術初創公司 Rekt Studios 宣布完成 150 萬美元融資,旨在推出其首個游戲元宇宙項目 Unseen,該項目支持內容創作者創建游戲、元宇宙建筑和數字資產。[2022/11/18 13:19:08]
墨西哥零售巨頭Grupo Elektra將增加比特幣閃電支付:9月6日消息,墨西哥零售業巨頭GrupoElektra將支持比特幣閃電網絡。億萬富翁Ricardo Salinas Pliego表示,新的支付功能將很快進入Electra的商店。SalinasPliego是墨西哥第三大富豪,估計凈資產為154億美元,長期以來一直是比特幣的堅定支持者。去年11月,他曾宣布將其投資組合的10%投資于比特幣。(U.today)[2021/9/6 23:03:21]
Rekt Capital:比特幣自2020年3月以來首次到達RSI的超賣區域:加密貨幣分析師Rekt Capital發推表示,比特幣自2020年3月以來首次到達RSI的超賣區域,當BTC已經超賣時不要賣出。據悉,RSI即relative strength index,相對強弱指數指標,根據上升和下降趨勢之間動力的比較來判斷市場價格以后的走勢。RSI小于或等于30表示情況是超賣或低估,當前RSI值為28.48。[2021/5/24 22:37:25]
Tags:BLOBLOCKBLOCLOCAra BlocksHashBit BlockChainblockchain錢包iosLINE Blockchain
周報摘要上周全球數字資產市場回暖,市值上漲1.22%,交易量上漲9.40%。其中,TOP5日均市值較上一周微漲0.72%。全球30家代表性交易所,新上交易對17個.
1900/1/1 0:00:002)是否有因為他人努力而獲利的預期,在文件中“他人”被稱為活躍參與者(ActiveParticipant”簡稱“AP”),一般是指創始人.
1900/1/1 0:00:00在國家網信辦備案的197個區塊鏈項目中,有一個在建設雄安新區中已經發揮效用的項目——“翼帆區塊鏈資金管理平臺”吸引了Odaily星期日報的注意.
1900/1/1 0:00:004月2日,Coinbase首席信息安全官PhilipMartin在官方博客中透露其熱錢包加密保險的詳細信息.
1900/1/1 0:00:00如果你一直關注加密貨幣的最新動態,你可能已經注意到,最近的一個趨勢是,大型傳統金融機構進入該領域的前景普遍令人興奮.
1900/1/1 0:00:00編者按:本文來自中國經營網,作者:鄭瑜何莎莎,Odaily星球日報經授權轉載。日前,國家互聯網信息辦公室發布首批境內區塊鏈信息服務備案編號。此次備案,被廣泛認為是區塊鏈行業向好的信號.
1900/1/1 0:00:00