在比特币的网络中,其实每天都是可以源源不断的收到交易的,而这些交易是需要通过节点来不断地打包的,在比特币的网络中,所有的节点都是对等的,那么就需要有一个判断谁可以打包这些交易的方法,以此来避免对交易的重复打包。我们知道比特币挖矿其实就是找到一个随机数参与哈希运算,使得最后得到的哈希值符合难度要求,而比特币的挖矿也是需要算法的,那么究竟挖矿算法什么意思?如果大家想要知道的话,就让rensheng123小编来为大家介绍一下这个挖矿算法。
挖矿算法什么意思?
开发挖矿程序需要熟悉CPU指令集、显卡指令集、显卡驱动。使用C++开发,关键地方要用汇编优化。大多数币的开发团队主要都是开发应用,对挖矿算法的开发很少,一般都是使用现有的挖矿算法,简单修改一下参数。挖矿算法开发的好,币不一定能成功;挖矿算法开发的差,币一定会失败。
很多币都是开发团队发布了钱包,刚开始只能钱包挖矿。过了几天,就有第三方做出来了CPU挖矿程序,收一点手续费。再过段时间,就有第三方做出来了显卡挖矿程序,也是收一点手续费。有些开发者以专门优化挖矿程序程序为主业。
挖矿算法主要分为两种:需要使用大量硬件资源用于计算是POW算法。不需要使用大量硬件资源用于计算,但需要用币挖矿是POS算法。POW算法出了新币种都说自己是POW。POS算法喜欢标新立异,只要出了新算法,起个新名字,都说自己不是POS。POW各种算法之间的差别很大,POS各种算法之间的差别很小,主要是名字上的差别。
POW算法比POS更安全。无论POW,还是POS,想让网络安全和稳定,全网确认时间最少是90秒。当然,可以把一个块拆分开,出块的时候先出块头,块头出来了,再出块的内容。这样可以减少全网确认时间。
不同币种的算法介绍
比特币(Bitcoin)是Sha256d算法,中本聪设计的时候提出了人人挖矿的理念。比特币最初是钱包挖矿,后来有了CPU挖矿程序,再后来有了显卡挖矿程序,2012年有了ASIC挖矿。早期很多山寨币都是使用的Sha256d算法,比特币矿机出现后,这些山寨币由于全网算力低,经常被51%攻击,就存活不下去了。
大部分币的开发团队都反对ASIC,使用各种不能用于ASIC挖矿的算法,很少有开发团队希望自己的币能被ASCI挖矿。
莱特币(Litecoin)是Scrypt算法,对内存依赖很高。2013年,比特币和莱特币价格大涨。那时候莱特币还是显卡挖矿,认为做不出来ASCI,大量新出现的山寨币使用Scrypt算法。机枪池大量出现,矿工在矿池挖莱特币,矿池实际让矿工挖的是同算法其它收益更高的币,矿池还是支付给矿工莱特币。矿池在交易平台大量砸盘卖出挖到的这个币,一直跌到挖矿收益很低,这个币基本就完了,矿池再换挖其它币用机枪池挖矿。2014年,莱特币矿机被做出来了,芯片内集成了存储。
合并采矿是在矿池实现的。被合并采矿的币必须支持,才能和主链合并采矿。在几乎不影响主链挖矿收益的同时,更多的挖出被合并采矿的币,是矿池的竞争力。
门罗币(Monero)是CPU挖矿,用了AES-NI指令,不适合手机CPU挖矿。门罗币开发团队一直反对ASIC,并声称出现ASIC就硬分叉换算法。2018年,门罗币ASIC出现后,门罗币开发团队就对门罗币换了新算法并进行硬分叉。门罗币新链和旧链都获得了交易平台和矿池的支持,ASIC还能继续在旧链挖矿。矿机商又改进ASIC,制造出来了能挖新链的ASIC,门罗币开发团队再次换算法硬分叉。矿机商和开发团队持续升级争斗,门罗币换了很多算法,也出来了很多链。钱包有很多版本,用户在使用时不方便,造成了很多用户和矿工流失。各个版本的门罗币发展的都不好。
真正CPU挖矿的币就只有黎曼币,但黎曼币没有发展起来。由于很多做CPU挖矿的币,要么做出来了显卡挖矿程序,要么做出来了ASIC。以后就很少有开发团队提起人人挖矿的理念,不再想着做CPU挖矿的币了。
达世币(Dash)是X11算法,开创了主节点概念。达世币在开始是显卡挖矿,开发团队不希望ASIC挖矿,后来还是出现了ASIC。达世币主节点需要一直在线才有收益,主节点不参与计算,网络安全由POW保障,POW负责给主节点发币,主节点只领币。不要把主节点的概念和POS弄混了,主节点和POS不能共存。达世币主节点验证算法最初很简单,但没有任何安全可言,就不断改进主节点验证算法,后来变得极其复杂。其它主节点币,都是用的达世币主节点算法,只是用的版本不同。
X13、X16R等算法,都是X11算法的变种,设计之初都希望抵御ASIC,但随着市场越来越大,还是会做出来ASIC。
以太坊(Ethereum)出块时间10多秒,全网需要20多个确认,全网确认时间也5分钟了。以太坊挖矿需要大内存和大内存带宽,适合显卡挖矿。GPU运算,显存存储,GPU和显存之间带宽足够。以太坊虽然出来了ASIC,但制造门槛高,比显卡优势大不了多少,没有把显卡挖矿给淘汰了。
上文中的内容就是rensheng123小编对于挖矿算法什么意思这一问题的详细解答。其实在比特币的网络中,是对挖矿的难度做出了标识的,但是因为比特币的挖矿所要占用的存储空间比较大,所以比特币的挖矿采用了一种压缩的算法。另外,矿机挖矿的时候还会出现很长的时间找不到符合条件的哈希值的情况,如果找不到哈希值的话,是不能打包区块的,矿工也就没有收益,这明显对矿工是非常不友好的,但是如果挖到的话,就像中彩票一样,会获得非常丰厚的回报。