说起挖矿,市面上有很多数字货币都是可以进行挖矿的,而现在挖矿人数最多的币种就是比特币。我们知道,开发挖矿程序是需要熟悉CPU的指令集、显卡指令集、显卡驱动等内容的,不同的币种都会有不同的算法。而现在大多数币的开发团队主要都在开发应用,而对挖矿算法的开发是很少的,一般的币种都会使用现有的挖矿算法,再简单修改一下参数就直接使用了。很多挖矿的矿工还不知道挖矿算法的原理是什么?下面就让币圈子小编为大家介绍一下挖矿算法的原理。
可以说比特币的整个实现就是建立在已有的甚至存在多年的计算机科学领域里的技术或概念的整合,其中哈希算法在比特币中的应用几乎是方方面面,主要包括SHA256和RIPEMD160,比特币将这两个哈希算法的应用组合成两个函数:hash256(d)=sha256(sha256(d))和hash160(d)=ripemd160(sha256(d)),其中d为待哈希的字节数组,两者分别生成256位(32字节)和160位(20字节)的16进制数值。hash256主要用于生成标志符,如区块ID,交易ID等,而hash160主要用于生成比特币地址。
对于hash160比较认同的答案是ripemd160可以使得生成的地址更短,但是只做ripemd160一次哈希可能会存在安全漏洞所以同时使用sha256起到安全加固;至于hash256使用两次sha256哈希算法的原因来源于sha1算法,由于一次sha1哈希存在被生日攻击(birthday attack)的风险,所以当使用sha1运算时一种有效方式就是做两次sha1哈希,sha256本身并不存在生日攻击漏洞,但是防御性的使用两次sha256哈希借鉴于sha1。
开发挖矿程序需要熟悉CPU指令集、显卡指令集、显卡驱动。使用C++开发,关键地方要用汇编优化。大多数币的开发团队主要都是开发应用,对挖矿算法的开发很少,一般都是使用现有的挖矿算法,简单修改一下参数。挖矿算法开发的好,币不一定能成功;挖矿算法开发的差,币一定会失败。
很多币都是开发团队发布了钱包,刚开始只能钱包挖矿。过了几天,就有第三方做出来了CPU挖矿程序,收一点手续费。再过段时间,就有第三方做出来了显卡挖矿程序,也是收一点手续费。有些开发者以专门优化挖矿程序程序为主业。
挖矿算法主要分为两种:需要使用大量硬件资源用于计算是POW算法。不需要使用大量硬件资源用于计算,但需要用币挖矿是POS算法。POW算法出了新币种都说自己是POW。POS算法喜欢标新立异,只要出了新算法,起个新名字,都说自己不是POS。POW各种算法之间的差别很大,POS各种算法之间的差别很小,主要是名字上的差别。
POW算法比POS更安全。无论POW,还是POS,想让网络安全和稳定,全网确认时间最少是90秒。当然,可以把一个块拆分开,出块的时候先出块头,块头出来了,再出块的内容。这样可以减少全网确认时间。
上面这篇文章就是币圈子小编对于挖矿算法的原理是什么这一问题的具体阐述。现在比特币挖矿采用的是Sha256d算法,中本聪在设计这一算法的时候就提出了人人挖矿的理念。其实比特币最初是用钱包来挖矿,直到后来有了CPU挖矿程序,再后来又有了显卡挖矿程序,2012年甚至还有了ASIC挖矿。其实早期有很多山寨币都是使用这一Sha256d算法,但是自从比特币矿机出现后,这些山寨币就应为全网算力低,经常被攻击,所以存活不下去了。