区块链投注算法
① 区块链:防篡改的哈希加密算法
同学A和B在教室里抛硬币,赌谁打扫卫生,正面朝上,则A打扫,反面朝上,则B打扫,这个策略没有什么问题。
然而,如果把情景迁移到网络聊天室,A和B同样进行抛硬币的游戏,估计B就不会答应了,因为当A抛了硬币,B不论是猜
正面还是反面,A都可以说B猜错了。
怎么解决这个问题呢?要不先给抛硬币的结果加密,B再猜?这个方法可以试一下。
假设任意奇数代表硬币正面,任意偶数代表反面。A想一个数375,然后乘以一个258,把其结果告诉B为96750,并声明A想的375为密钥,由他保管。
在接下来验证结果时,A可以谎称258为他想的数,375为密钥,A还是立于不败之地。那如果A事先把密钥告诉B呢?B可以直接算出原始数字,失去了保密作用。
这种知道加密方法就知道了解密方法显然行不通,那有没有一种方法,知道了加密方法仍然无法恢复原文呢?
显然是有的,在加密过程中加入不可逆运算就OK了。A设计新的加密方式:
假设A想的数是375,进行加密:
B拿到结果120943,但他几乎不能根据120943反算出密匙375。
如果B想要验证A是否说谎:
终于可以抛硬币了……
这种丢掉一部分信息的加密方式称为“单向加密”,也叫 哈希算法 。
有个问题:
这个是有可能的,但可以解决,就是增加上述算法的难度,以致于A很难很难找到。
根据以上表述,一个可靠的哈希算法,应该满足:
密码学中的哈希函数有3个重要的性质,即 抗碰撞性、原像不可逆、难题友好性 。
碰撞性,就是指A同学事先找出一奇一偶使得哈希结果一致,在计算上是不可行的。
首先,把大空间桑拿的消息压缩到小空间上,碰撞肯定是存在的。假设哈希值长度固定为256位,如果顺序取1,2,…2 256 +1, 这2 256 +1个输入值,逐一计算其哈希值,肯定能找到两个输入值使得其哈希值相同。
A同学,看到这里时, 请不要高兴的太早。因为你得有时间把它算出来,才是你的。为什么这么说呢?
根据生日悖论,如果随机挑选其中的2 130 +1输入,则有99.8%的概率发现至少一对碰撞输入。那么对于哈希值长度为256为的哈希函数,平均需要完成2 128 次哈希计算,才能找到碰撞对。如果计算机每秒进行10000次哈希计算,需要约10 27 年才能完成2 128 次哈希计算。
A同学,不要想着作弊了,估计你活不了这么久。当然如果计算机运算能力大幅提升,倒是有可能。
那么完整性还用其他什么用途呢?
用来验证信息的完整性,因为如果信息在传递过程中别篡改,那么运行哈希计算得到的哈希值与原来的哈希值不一样。
所以,在区块链中,哈希函数的抗碰撞性可以用来做区块和交易的完整性验证。
因为一个哈希值对应无数个明文,理论上你并不知道哪个是。就如,4+5=9和2+7=9的结果一样,知道我输入的结果是9,但能知道我输入的是什么数字吗?
如果,对消息m进行哈希计算时,在引入一个随机的前缀r,依据哈希值H(r||m),难以恢复出消息m,这代表该哈希函数值隐藏了消息m。
所以,B同学,根据结果想反推出原数据,这是不大可能的事,就犹如大海里捞针。
难题好友性,指没有便捷的方法去产生一满足特殊要求的哈希值。是什么意思呢,通俗的讲,就是没有捷径,需要一步一步算出来。假如要求得到的哈希结果以若干个0开头,那么计算找到前3位均为0的哈希值和找到前6位均为0的哈希值,其所需的哈希计算次数是呈一定数量关系。
这个可以怎么用呢?在区块链中,可以作为共识算法中的工作量证明。
主要描述了哈希函数的3个重要性质: 抗碰撞性、原像不可逆、难题友好性 。
因为这些重要性质,区块链中的区块和交易的完整性验证、共识算法的工作量证明等功能用哈希函数来实现。
[1].邹均,张海宁.区块链技术指南[M].北京:机械出版社,2016.11
[2].长铗,韩锋.区块链从数字货币到信用社会[M].北京:中信出版社,2016.7
[3].张健.区块链定义未来金融与经济新格局[M].北京:机械工业出版社,2016.6
② 鍖哄潡閾炬寲鐭跨畻娉曟湁鍑犵嶅憿
SHA-256锛歋HA鏄鎸囧畨鍏ㄦ暎鍒楃畻娉曪紝SHA-256鏄鐢盢SA璁捐$殑SHA-2鍔犲瘑鏁e垪鍑芥暟鐨勬垚鍛樸傚姞瀵嗘暎鍒楀嚱鏁版槸瀵规暟瀛楁暟鎹杩愯岀殑鏁板﹁繍绠楋紝閫氳繃灏嗘墍璁$畻鐨勨滄暎鍒椻濅笌宸茬煡鐨勬暎鍒楀艰繘琛屾瘮杈冿紝浜轰滑鍙浠ョ‘瀹氭暟鎹鐨勫畬鏁存с 鍗曞悜鏁e垪鍙浠ヤ粠浠绘剰鏁版嵁鐢熸垚锛屼絾涓嶈兘浠庢暎鍒楃敓鎴愭暟鎹銆傚湪姣旂壒甯佺瓑澶氫釜鍖哄潡閾炬瘮濡備腑鐨勫氫釜鐜鑺傝浣跨敤銆傛瘮濡傦細Bitcoin(BTC)銆丅itcoinCash(BCH)銆丳eercoin(PPC)銆乑etacoin(ZET)銆乁niversal(UNIT)銆丏eutsche eMark(DEM)銆丄UR-SHA(AUR)銆丏GB-SHA(DGB)銆係crypt锛歋crypt鏄涓涓鍐呭瓨渚濊禆鍨嬬殑hash绠楁硶銆傛湁瓒g殑鏄绠楁硶鏄鐢辫憲鍚嶇殑FreeBSD榛戝Colin Percival涓轰粬鐨勫囦唤鏈嶅姟Tarsnap寮鍙戠殑銆傚唴瀛樹緷璧栭【鍚嶆濅箟浼氬崰鐢ㄥ緢澶氬唴瀛樼┖闂达紝浠庤屽噺灏慶pu璐熻嵎銆傜敱浜庡叾鍐呭瓨渚濊禆鐨勮捐$壒鍒绗﹀悎褰撴椂瀵规姉涓撲笟鐭挎満鐨勮捐★紝鎴愪负鏁板瓧璐у竵绠楁硶鍙戝睍鐨勪竴涓涓昏佹瘮濡傛柟鍚戙傛瘮濡傦細Litecoin(LTC)銆丏ogecoin(DOGE)銆丏Notes(NOTE)銆丗lorin(FLO)銆丟ulden(NLG)銆丏GB-Scrypt(DGB)銆丟ameCredits(GAME)銆乂erge-Scrypt(XVG)銆丒insteinium(EMC2)銆丄UR-Scrypt(AUR)銆俋11锛 X11绠楁硶鐨勬帹鍑哄拰litecoin閲囩敤鐨凷crypt绠楁硶鐩鐨勪竴鏍凤紝涓轰簡鎶靛埗ASIC鐭挎満鐨勬墿寮犮俋11灏辨槸浣跨敤浜11绉嶅姞瀵嗙畻娉曪紙BLAKE, BMW, GROESTL, JH, KECCAK, SKEIN, LUFFA, CUBEHASH, SHAVITE, SIMD, ECHO锛夈傛暟鎹闇瑕佽繘琛11娆′笉鍚岀畻娉曠殑杩愮畻锛屼竴鏂归潰鎻愰珮瀹夊叏鎬т竴鏂归潰澧炲姞璁$畻閲忋傛瘮濡傦細Dash(DASH)銆丳rime-XI(PXI)銆丱nix(ONX)銆丼tartcoin(START)銆丆reamcoin(CRM)銆両nfluxcoin(INFX)銆丮onetaryUnit(MUE)銆丮onoeci(XMCC)銆侲quihash锛欵quihash鏄鐢卞崲妫鍫″ぇ瀛﹁法瀛︾戜腑蹇冨紑鍙戠殑闈㈠悜鍐呭瓨鐨勫伐浣滈噺璇佹槑(PoW)绠楁硶銆傜畻娉曠殑鏍稿績鐐规槸鍩轰簬骞夸箟鐢熸棩闂棰(Generalized Birthday Problem)銆傛垜涓浜烘槸姣旇緝鐪嬪ソ杩欎釜绠楁硶鐨勶紝浠栨彁楂樹簡瀹氬埗纭浠(ASIC)鐨勬垚鏈鏁堢泭銆傛瘮濡傦細Zcash(ZEC)銆乑encash(ZEN)銆丅itcoinGold(BTG)銆乑classic(ZCL)銆丠ush(HUSH)銆並omodo(KMD)銆俆ensority锛歍ensority鏄涓绉嶆柊鍨嬬殑PoW鍏辫瘑绠楁硶锛岀敱姣斿師閾剧巼鍏堟彁鍑猴紝灏嗙煩闃靛拰寮犻噺璁$畻铻嶅叆鍒板叡璇嗙畻娉曡繃绋嬩腑锛屼粠鑰屽疄鐜癆I鍔犻熻姱鐗囧彲浠ュ弬涓庡尯鍧楅摼鍏辫瘑璁$畻銆俆ensority鍏辫瘑绠楁硶鐨勭壒鑹插湪浜庣畻娉曡繃绋嬩腑绌挎彃浜嗗緢澶氱殑鐭╅樀鐢熸垚锛岀煩闃靛彉鎹锛岀煩闃典箻娉曠瓑杩愮畻锛岃岃繖浜涜兘鍔涘湪浜哄伐鏅鸿兘鍔犻熶腑涔熶細棰戠箒浣跨敤锛屽悓鐞嗗彲寰楋紝鏀鎸佺煩闃佃繍绠楃殑鐭挎満鍙浠ョ敤浣滀汉宸ユ櫤鑳界殑鍔犻熸湇鍔★紝浠ユゆ潵鎻愬崌鐭挎満鐨勮祫婧愬埄鐢ㄧ巼銆傛瘮濡傦細Bytom(BTM)銆丷RChain(RRC)銆侼eoScrypt锛歂eoScrypt鏄鏇夸唬Scrypt鐨勪笅涓浠e伐浣滈噺楠岃瘉绠楁硶銆 瀹冩秷鑰楃殑鍐呭瓨灏戜簬鍚庤咃紝浣嗗唴瀛樻洿瀵嗛泦锛屽瘑鐮佹洿寮恒 灏嗘祦瀵嗙爜绠楁硶Salsa20锛孲alsa20鏀硅壇鐨凜haCha20锛孊LAKE2s鍜孎astKDF鐨勫姛鑳界粨鍚堝埌涓涓瀹夊叏鐨凙SIC鎶楁цВ鍐虫柟妗堜腑銆傛瘮濡傦細GoByte(GBX)銆両nnova(INN)銆乀rezarcoin(TZC)銆乂ivo(VIVO)銆丆rowdcoin(CRC)銆丳hoenixcoin(PXC)銆侺yra2REv2锛歏ertcoin浣跨敤Lyra2REv2浣滀负宸ヤ綔閲忚瘉鏄庣畻娉曟敼杩汢itcoin锛岀洰鐨勫悓鏍蜂篃鏄涓轰簡鎶垫姉ASIC銆俈ertcoin鍚慡crypt绠楁硶寮曞叆浜嗏滆嚜閫傚簲N鍥犲瓙鈥濄 Scrypt鐨凬鍥犲瓙缁勪欢鍐冲畾璁$畻鏁e垪鍑芥暟闇瑕佸氬皯鍐呭瓨銆 Vertcoin鐨凬鍥犲瓙闅忕潃鏃堕棿鐨勬帹绉昏屽炲姞锛屼互闃绘㈠紑鍙戜笓鐢ㄧ殑鈥滈噰鐭库濈‖浠跺苟榧撳姳鍦ㄤ釜浜虹敤鎴风殑鐢佃剳涓婂垎鍙戦獙璇佷换鍔°傜洰鍓嶇殑LyraREv2鐢盉LAKE, Keccak, CubeHash, Lyra2,Skein 鍜 Blue Midnight Wish 鍝堝笇绠楁硶缁勬垚銆傛瘮濡傦細Vertcoin(VTC)銆丮onacoin(MONA)銆乂erge-Lyra2REv2(XVG)銆侲thash锛欵thash灏咲AG锛堟湁鍚戦潪寰鐜鍥撅級鐢ㄤ簬宸ヤ綔閲忚瘉鏄庣畻娉曪紝閫氳繃鍏变韩鍐呭瓨鐨勬柟寮忛樆姝涓撶敤鑺鐗囷紝闄嶄綆鐭挎満鐨勪綔鐢ㄣ 杩欎釜绠楁硶鏄浠ュお鍧(Ethereum)鐜伴樁娈电殑杩囧害绠楁硶锛屽墠韬鏄疍agger-Hashimoto銆侰asper the Friendly Finality Gadget(FFG)瀹炵幇鍚庝互澶鍧婂皢浠庢傜巼鏈缁堟у彉鎴愮‘瀹氭渶涓鎬с傛瘮濡傦細Ethereum(ETH)銆丒thereumClassic(ETC)銆丳irl(PIRL)銆丮usicoin(MUSIC)銆丒xpanse(EXP)銆丮etaverse(ETP)銆俋11Gost锛氫粙缁嶏細x11GOST鐢10涓猄HA3绠楁硶鍜孲tribog鍝堝笇鍑芥暟缁勬垚 鏁e垪鍊硷紝鍚勪釜绠楁硶閫愪釜杩涜岃$畻鏈夋晥鐨勯槻姝浜咥SIC鐨勮幏鑳滄傜巼銆傛瘮濡傦細Sibcoin(SIB)銆侰ryptoNight锛欳ryptoNight鏄涓绉嶅伐浣滆瘉鏄庣畻娉曘 瀹冭璁捐′负閫傜敤浜庢櫘閫氱殑PC CPU锛屽埄鐢ㄧ幇鏈塩pu鐨勪紭鍔匡紙鏈鍦癆ES鍔犲瘑鍜屽揩閫64浣嶄箻娉曞櫒 - 璋冩暣涓轰娇鐢ㄤ笌鑻辩壒灏擟PU涓婄殑姣忔牳蹇冧笁绾ч珮閫熺紦瀛樺ぇ灏忕浉褰撶殑鏆傚瓨鍣锛屽ぇ绾2MB锛夛紝鍥犳CryptoNight鍙鑳借繘琛孋PU鎸栨帢锛岀洰鍓嶆病鏈変笓闂ㄧ殑閲囩熆璁惧囬拡鍏跺仛鍑鸿捐° CryptoNight渚濊禆闅忔満璁块棶鎱㈤熷唴瀛樺苟寮鸿皟寤惰繜渚濊禆鎬э紝姣忎釜鏂板潡閮藉彇鍐充簬鎵鏈変互鍓嶇殑鍧楋紙涓嶅儚scrypt锛夈傛瘮濡傦細Dinastycoin(DCY)銆丏inastycoin(DCY)銆丒lectroneum(ETN)銆並arbo(KRB)銆丅ytecoin(BCN)銆丮onero(XMR)銆侭lake(14r)锛欱LAKE鍜孊LAKE2鏄鍩轰簬Dan Bernstein鐨凜haCha娴佸瘑鐮佺殑瀵嗙爜鏁e垪鍑芥暟锛屼絾鏄鍦ㄦ瘡涓狢haCha鍥炲悎涔嬪墠娣诲姞涓涓杈撳叆鍧楃殑鎺掑垪鍓鏈锛屽叾涓鍖呭惈涓浜涘父閲忓紓鎴栥侭LAKE鐨勪袱涓涓昏佸疄渚嬫槸BLAKE-256鍜孊LAKE-512銆 瀹冧滑鍒嗗埆浣跨敤32浣嶅拰64浣嶅瓧锛屽苟鐢熸垚256浣嶅拰512浣嶆憳瑕併傛瘮濡傦細Decred(DCR)銆
鎴戜滑閫氳繃浠ヤ笂鍏充簬鍖哄潡閾炬寲鐭跨畻娉曟湁鍑犵嶅憿鍐呭逛粙缁嶅悗,鐩镐俊澶у朵細瀵瑰尯鍧楅摼鎸栫熆绠楁硶鏈夊嚑绉嶅憿鏈変竴瀹氱殑浜嗚В,鏇村笇鏈涘彲浠ュ逛綘鏈夋墍甯鍔┿
③ 有没有大佬告诉我 区块链游戏的运作原理 用最简洁明了的语言描述区块链游戏。
区块链游戏,主要是指Dapp中属于游戏类的区块链应用,需要和各种区块链公链有一定程度上的交互。区块链游戏从17年11月开始逐渐兴起,发展历史极为短暂,与成熟游戏相比,目前的玩法也相当简单。在业界人士看来,很多游戏甚至只是个裹着游戏外衣的资金盘。
根据Cryptogames的分类,目前上线的区块链游戏中,hot potato、收藏交易、菠菜和ponzi是最主要的游戏玩法。数量最多的要属于hot potato类游戏,包括近期火爆的两款游戏都是这个类型的 - CryptoCelebrities(加密名人)和 CryptoCountries(加密世界)。收藏交易类有35款,居第二,主要代表作为CryptoKitties(加密猫)。菠菜和ponzi类共17款,居第三,明星产品分别为EtherRoll和Etheremon。
区块链游戏所使用的主题也是五花八门,从猫、狗、龙、猪等各种动物,到人、车、国家、球队等等各种各样的题材。
区块链游戏1.0时代
时间:2017年11月到12月
主要玩法:收藏+交易
代表作:CryptoKitties、CryptoPunks
区块链技术给玩家的数字资产赋予了唯一性。这便逐渐了产生了NFT(non-fungible tokens,不可替代的令牌)概念,人们在区块链游戏中的资产唯一性和稀缺性不会随游戏本身而改变。最先应用这个概念的是LarvaLabs在17年6月推出的CryptoPunks。系统随机生成一万张朋克头像,通过智能合约放在以太坊上,免费发放给玩家后供玩家交易。
当Axiom Zen工作室在NFT的基础上增加属性、繁殖和拍卖功能后,Cryptokitties爆款便诞生了。人们可以购买不同属性的小猫,与别的猫“繁衍后代“,或者将自己的猫通过荷兰式拍卖卖出。拥有稀缺独特基因的小猫被人们疯狂追捧,获得了相当高的溢价。
人们在Cryptokitties的基础上继续开发,添加了饰品和战斗功能,也增加了掘金、喂养、夺宝等玩法。
区块链游戏2.0时代
时间:2017年12月到2018年1月
主要玩法:类Ponzi
代表作:Etheremon
刚开始时,Etheremon的玩法一开始非常简单粗暴,在玩家买了某个宠物之后,后面只要有人购买相同的宠物,玩家就可以获得一小部分eth奖励。游戏团队在一周内迅速获得了2000ETH左右的利润。然后彻底改变玩法,成功转型为收藏+战斗的游戏。这种类Ponzi的玩法迅速被其他厂家所效仿,出现了以太车、ethertanks等众多模仿者。
区块链游戏3.0时代
时间:2018年1月
主要玩法:固定售价、强制涨价的hot potato模式
代表作:CryptoCelebrities, CryptoCountries
玩家购买加密名人(中本聪,马斯克等)和加密国家(日本,美国等),由于资产的唯一性,后续玩家只能用更高的价格从资产拥有者中购买,价格强制涨价,平台赚取一部分差价。目前最高价格的国家是日本,大约700多ETH,最贵的名人是Elon Musk,”身价“大约200ETH。
区块链游戏4.0时代
时间:2018年2月
主要玩法:多种机制结合
代表作:World.Mycollect,Cryptocities
游戏中采用了多级销售和分成,玩家探索(随机性),抽奖,资源独特性等多种玩法。比如在Cryptocities中,玩家可以购买国家、大洲和世界来进行“征服”。征服了世界的玩家可以获得大洲和国家交易额的1%税收,征服大洲的玩家可以获得国家交易额1%的税收。而征服国家的玩家在未来可以获得其下属城市的交易额1%税收。玩家在探索新城市的时候,有几率探索出宝石,获得宝石即可获得ETH奖励。
同时期兴起的,还有菠菜类游戏。区块链的高透明度让它们更容易获得投资者信任。比较有名的有Etheroll和Vdice,玩法简单粗暴,玩家花费一定的ETH投注某个数字,当系统随机生成的数字小于该数字时,就可以获得收益。
除此之外,还有RPG(EtherCraft),战斗游戏(Etherbots)和二次元(以太萌王)等。
2
区块链游戏的优势和劣势
纵观这些成功的案例,我们发现区块链游戏确实有着独特的优势:
较高的信任度:通过开源合约快速建立信任,使用过程完全透明,信息完全对称。公正性:可以做到数据无法篡改、规则永远不变。资产属于玩家个人:玩家资产不会随游戏的衰落而流失。具有极强的社区属性:区块链本身具有较强的交易和社区属性。
当然,目前区块链游戏也处于萌芽时期,有着明显的缺点:
无法及时交互:区块链交易存在着不确定的等待时间和拥堵的可能,很难在玩家之间形成及时交互。发送指令费用较高:每次发送指令都需要消耗GAS,而ETH的价格仍然使得GAS费用显得比较高昂。开发环境不成熟:目前以太坊的虚拟机和编程语言solidity已经是众多公链中开发环境最为成熟的一个了。但是其和其他热门语言比起来还非常的不成熟。
3
游戏化将助推区块链落地
在传统的桌面网络游戏中,厂商不断激励新进玩家导致了通货膨胀,一个游戏账号所有资产的实际价值往往远低于玩家的投入。手游出现后,道具绑定账号,账号绑定身份证的模式很快得到了普及。这也使得一旦玩家决定离开某个游戏,就必须放弃所有在游戏中的虚拟资产。区块链技术的出现和不断成熟,将使得游戏规则去中心化制定和虚拟资产去中心化储存从技术层面变得可行。而虚拟资产上链的便捷性,也使区块链在游戏场景中更容易落地。
Cryptogames认为,区块链游戏的发展方向,或者说是经典游戏(就像篮球、足球和棋类一样,一经确定规则,便经久不衰)的发展方向,一定是“去中心化”的:
规则是由玩家协商确定玩家之间互相监督保证游戏按照规则来进行游戏中所用的所有道具都由各个玩家自己所有有人破坏规则或者玩的不爽可以直接走人游戏本身不存在一个中心化的组织者
CryptoKitties的风靡极大地推广了私人钱包,区块链游戏作为早期落地的区块链应用,迅速推动了区块链的普及。同样,利用游戏开发经验和游戏设计理念开发出