“50000 EOS 砸向你”抽奖活动的哈希算法解读

Posted 币圈杨小白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了“50000 EOS 砸向你”抽奖活动的哈希算法解读相关的知识,希望对你有一定的参考价值。


昨天下午,EOS Cannon社区联合币乎,举办了“50000 EOS 砸向你”活动,随后,币乎热门榜单第一名就被这个活动霸屏了,相信各位币乎的小伙伴们都在忙着参与抽奖当中,在文章内EOS Cannon将抽奖算法代码做了公示,算法链接:

 

https://github.com/bihu-id/bihu-tools/blob/master/bihu-airdrop-tool.py

 

价值4000000元的EOS(按80元/个单价计算),大家都很乐意转发,帮EOS Cannon进行推广,可能小白们有疑惑:抽奖方式是不是靠谱呢,不会有内幕吧?!今天就来帮大家解读一下,哈希算法是怎样让这一次的抽奖活动做到公平公正?!

 

 

PART  1   什么是哈希算法?

 

所谓"哈希"就是计算机可以对任意内容,计算出一个长度相同的特征值。我们这里采用sha256,哈希长度是256位,这就是说,不管原始内容是什么,最后都会计算出一个256位的二进制数字。而且可以保证,只要原始内容不同,对应的哈希一定是不同的。

 

解读方式1:

 

举例来说,字符串123的哈希是a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0(十六进制),转成二进制就是256位,而且只有123能得到这个哈希。

 

解读方式2:

 

简单来说,哈希算法是一种数据映射的过程,输入”小明”和”小明明”,得到”哈希1”和”哈希2”,虽然”小明”和”小明明”的长相很相似,但是两个生成的哈希是完全不一样的,只有输入”小明”的时候,才能得到”哈希1”。

 

 

PART  2   哈希算法的特点

 

概括性来说,哈希算法能用极快的速度给你的文件编出不重复的号码,而且任何人都无法通过这个号码推算出文件原来的样子,这就是哈希算法的意义。

 

(1)不可倒推:

也就是说,你可以把任意字符串映射成哈希值,却没办法通过哈希值去倒推它之前是什么字符串,甚至连之前是图片还是文字、或者数字都无从得知。这就是区块链技术不可篡改的底层逻辑。

 

(2)速度极快:

哈希一部20G高清电影,只需0.1秒即可得出结果。

 

(3)固定长度:

任意长度信息经过哈希函数的输出结果是固定长度:再多的文字输出都是固定字节长度,对于提取摘要非常便捷,减少了数据传输量。

 

(4)不同输入有不同输出

任意两个输入在数学理论上都存在经过函数运算后结果一样的可能,出现一样的结果就叫做“碰撞”,哈希函数就是为了近似于0碰撞。

 

 

 

PART  3   哈希算法如何做到抽奖公平、公开?

 

(1)什么样的抽奖是公平的

 

抽奖过程可以描述为从 1~N (奖券总数) 的整数中抽取一个或多个随机整数的过程。为了公平抽奖,消除暗箱操作的可能性,我们选取的随机数应具有如下的性质:

 

A. 可验证的随机性,即抽奖号码是均匀分布且不可控的随机数,并且任何人都可以验证。

B. 可验证的唯一性,即只抽取一次随机数,并且任何人都可以验证。

 

如果不满足第一条性质,那么活动举办方即可通过指定随机数来指定中奖者,并且其他人无法验证这一点;如果不满足第二条性质,那么活动举办方即可通过多次抽取随机数,直到出现指定的中奖者为止来操纵中奖结果,并且其他人无法验证这一点。

 

(2)“EOS 50000砸向你”活动是否符合上述原则

 

由于哈希算法的独特性,“EOS 50000砸向你”活动通过运用哈希算法计算用户名的哈希值,得到的抽奖号码符合可验证的随机性、以及可验证的唯一性。抽奖实际上是用完全公开可验证的方法生成了一个或多个不可控的随机数。任何参与者都可以在开奖前得到一样的随机数,从而实现了随机数的可验证性和唯一性。

 

所以通过上述对哈希算法的简单了解,这次的活动抽奖还是很靠谱的哦,还没参与的小伙伴赶紧去吧~





 

币圈杨小白:一枚90后大叔,不排版,是因为懒…


以上是关于“50000 EOS 砸向你”抽奖活动的哈希算法解读的主要内容,如果未能解决你的问题,请参考以下文章

抽奖活动中的学习

福大软工1816 · 团队现场编程实战(抽奖系统)

项目实战——Java根据奖品权重计算中奖概率实现抽奖(适用于砸金蛋大转盘等抽奖活动)

php概率算法(抽奖广告首选)

php概率算法(抽奖广告首选)

通过感知哈希算法跟踪视觉相似图像的恶意软件活动