农企新闻网

买不起币圈叫价77万的以太猫,于是我破解了它的遗传规律

发布者:金夕林
导读回到当下汹涌澎湃的AI浪潮,正如所有的企业都被互联网化一样,所有的互联网企业都将 AI 化。而这些互联网企业中,也包含CSDN。同时,作为全球最大的中文IT社区,CSDN还有一个历史使命——为广大的互联网公司进行AI赋能。 区块链探长(ID:qqtanzhang)编辑整理 | 李海丹约访人 | 某知名互联网公司 算法工程师 蔡志威去年,一款名为《以太猫》(CryptoKitties)的游
回到当下汹涌澎湃的AI浪潮,正如所有的企业都被互联网化一样,所有的互联网企业都将 AI 化。而这些互联网企业中,也包含CSDN。同时,作为全球最大的中文IT社区,CSDN还有一个历史使命——为广大的互联网公司进行AI赋能。

买不起币圈叫价77万的以太猫,于是我破解了它的遗传规律

区块链探长(ID:qqtanzhang)

编辑整理 | 李海丹

约访人 | 某知名互联网公司 算法工程师 蔡志威

去年,一款名为《以太猫》(CryptoKitties)的游戏创始了区块链游戏的风潮。

与普通游戏不同的是,区块链游戏不只是作为玩乐的游戏,也成为了各大用户们的一大投资手腕。

有媒体曝出,价钱最高的一只以太猫,以246.95个以太币的价钱成交,约为11.8万美金、77万人民币。

近日,一位互联网行业的算法工程师向区块链探长(微信大众号ID:qqtanzhang)泄漏,本人破解了以太猫属性的遗传规律,用普通特征属性的猫配种出高属性的猫来售卖,并给广阔读者们分享了这段“操作心得”。


以下为蔡志威的分享内容:

去年12月,以太坊上的养猫游戏大火,也吸引了一大批的用户入局。

这个游戏也吸引了我的关注,规则也很复杂:买两只猫,每隔一段工夫停止交配,然后生出一只新的小猫,小猫的属性跟猫父母有一定关联性。

以太猫的价钱一点儿也不比理想中的猫廉价,猫的外形特征和属性决议了本身的价钱,而属性特征都是由猫的基因决议的。

因而我生出了一个想法:假如能研讨出猫属性遗传的规则,能否可以用普通的小猫生育出稀有的小猫来售卖呢?

最初经过研讨,我破解了以太猫属性的遗传规律。总体来说,破解的规律流程一共有四步:

第一步:从区块链

读取到猫的基因信息

从游戏网站[1] 中,我们能看到一些小猫的基因,但是网站的数据更新很慢,最好是一次性失掉一切小猫的基因和属性来剖析,所以我从区块链方面动手。最初发现,可以从执行转帐的地址[2]中看到以太猫的合约地址。

详细操作是,首先在以太坊上的智能合约中,经过转账去执行一段代码,那么代码执行的后果会被写入到区块链中。

而读取的代码(比方读一个猫的基因)并不需求经过转帐。在本地的客户端同步数据后,便可以直接从本地的接口读取到。

买不起币圈叫价77万的以太猫,于是我破解了它的遗传规律

因而,我从工具页面 [3](如上图) 中读取到了以太猫的合约接口 ,其中GetKitty接口可以传入ID,这样便可以失掉猫的基因、父母ID、生育形态等信息。

第二步:理解哪种

特征属性的猫 需求哪些基因

失掉了猫的基因信息后,就要理解基因与特征之间的关系,明白什么样的基因能生出什么特征的小猫。

我看到很多人都尝试过来剖析基因与猫的特征的关系,但其实大局部人其实看到的是十六进制的数据,这样取得的无效信息会很少。

因而我改从二进制信息动手,用机器学习中常用的“决策树”的办法:按猫的基因的256位作为256个特征(注:在这个游戏中,猫的基因是一段256位的序列),来辨别预测猫能否有对应的特征。

猫的特征在某些位等于某个值的时分,基因就会有某个特征。比方说第234和235位都是1时,就会呈现jagur(猫的一个属性)特征。经过之后的尝试,这个猜测失掉了验证,经过这个后果模型训练出来的预测精确率为100%。关系如图(以第230位为例):

买不起币圈叫价77万的以太猫,于是我破解了它的遗传规律

至此,我们曾经可以晓得,假如要生出具有某种特征的小猫需求有什么样的基因。

第三步:理解哪些

猫父母 能生出特定基因的小猫

接上去,还需求晓得选什么猫来当父母,才可以生出特定基因的小猫。

在合约[4]中,我输出要交配的猫的基因,以及出生的block数,得出了可以生出的小猫的基因。

由于要少量的数据统计才干剖析出猫的每个属性是跟哪些基因位相关的。所以我经过机器学习的办法学习出父母的基因,分解后代基因的算法,抓取了一切小猫的代码。

接着,我把猫父母基因的二进制造为一个特征,再选用决策树这种可解释性更强的算法,训练出树, 如图(以第230位为例):

买不起币圈叫价77万的以太猫,于是我破解了它的遗传规律

经过训练树的办法后,我有两点总结:

第一,每一个猫后代的基因跟猫父母的每一位是对应的。 比方说猫父母的第134位都是1,那么后代第134位也是1的概率很大,这个几率高达50%以上。

第二,相邻位的基因同时遗传给下代的概率会更大。 (比方说父母133和134位辨别是10和01时,后代基因普通都是10或01,很少会呈现11或00的状况)。

第四步:推理出

两只普通猫生出稀有猫的办法

依据以上三步的发现,我失掉了一种战略去生出任何我们想要的稀有猫。详细流程总结如下:

首先,搜索如今一切在出售的小猫,找两只猫停止配对。

这两只猫需求满足两个条件:首先是基因里仅有1位不满足猫的稀有属性,并且两个猫不满的基因位要不相反、也不能相邻。

举个例子,你需求第125位是0,234位是1,235位是0属性的小猫,那么需求找两只配对的属性应该如下:一只猫是125,234,235位辨别是1,1,0的,另外一只猫125,234,235位辨别是1,0,0。

然后让这两只猫不时反复生育,在足够次数之后普通都能生出想要的猫。

从本钱来看,我一共用了10个左右的以太币来买猫(按事先的价钱来算,大约是8万左右人民币)。而经过得出的办法,我在两天内顺序自动买了几十只猫,生育了约500-600只小猫,失掉了50多只的稀有的僵尸猫和Mistletoe猫(约合人民币20万左右)。

最初,我在两周内一共赚了价值12万人民币左右的以太币 。但后来由于市场萎缩得太快,没什么新人入场买猫,我就没有再持续卖猫了。