[转]挖矿算法比较

挖矿算法详情

开发挖矿程序需要熟悉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年,莱特币矿机被做出来了,芯片内集成了存储。

合并采矿是在矿池实现的。被合并采矿的币必须支持,才能和主链合并采矿。在几乎不影响主链挖矿收益的同时,更多的挖出被合并采矿的币,是矿池的竞争力。

比特股PTS(Bitshares PTS)是2013年发布的,开发团队提出了人人挖矿的理念,并表示只能CPU挖矿。过了才2个多月,就有公开的显卡挖矿程序了。

质数币(Primecoin)让挖矿计算有意义的数据。以前各种币挖矿都是进行无意义的计算,质数币的计算是用来寻找大质数,这是有意义的。质数币刚开始也是CPU挖矿,很快就有第三方做出来了显卡挖矿程序。

黎曼币(Riecoin)使用了改进的计算质数算法。黎曼币的算法涉及到数论极其极其复杂,需要片上存储和大内存,只能CPU挖矿,做不出来显卡挖矿程序和ASIC。黎曼币挖矿程序算法的作者是卡内基梅隆大学计算机科学终身副教授,他把算法公开在了自己博客上。https://da-data.blogspot.com/2014/03/fast-prime-cluster-search-or-building.html 4

恒久币(Aeternity)设计出了布谷鸟(Cuckoo)算法,核心散列函数是cuckaroo和cuckatoo。需要片上存储,适合CPU挖矿,CPU的缓存就是片上存储。当然,需要的存储空间不能超过CPU缓存。不适合显卡挖矿,显卡GPU的片上存储有限,板载存储显存需要外排序,效率能有CPU的10%就不错了。恒久币最初希望手机CPU能挖矿,设计了布谷鸟算法,后来恒久币还是放弃了手机CPU挖矿。恒久币实际使用的算法,需要的存储空间远远超过了CPU缓存,就适合显卡挖矿。

古灵币(Grin)算法中需要的存储空间也远远超过了CPU缓存,也是适合显卡挖矿。

门罗币(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,但制造门槛高,比显卡优势大不了多少,没有把显卡挖矿给淘汰了。

双挖是在本地实现的。在以太坊挖矿访问显卡显存的等待时间,双挖其它的显卡币。

Nicehash和Miningrigrentals是算力交易平台,能买卖很多算法的算力。以前只有机枪矿池才能做到某种算力挖同种算法的小币种,现在能直接通过平台买算力很方便。

信用币(Credits)实现了抵押挖矿和借贷功能,使用显卡挖矿。挖矿的时候,如果不抵押币,难度会很高,抵押了币难度会降低。如果没有币抵押,可以在钱包中向第三方借贷。信用币很少有人知道。https://github.com/credits-currency 4

比原链(Bytom)开发团队主动迎合ASIC,刚开始就ASIC挖矿,后来发现显卡挖矿效率更高。开发团队主动迎合ASIC是很不好的。

爆裂币(Burstcoin)是硬盘挖矿,虽然叫POC算法,但应该属于POW算法分类下。先向硬盘写入数据,挖矿过程是查询数据,查询完等待。由于有等待时间,挖矿收益与硬盘速度无关,只与硬盘容量有关。最近,已经有显卡和硬盘共用的挖矿程序了,硬盘中写入的是压缩数据,查询的时候由显卡解压缩,显卡已经提高了1倍硬盘利用率。随着挖矿程序的继续优化,硬盘利用率还能进一步提升。显卡的参与,已经违背了这个算法设计的初衷。另外,硬盘挖矿每个区块需要等待计算结果,这就造成了网络不安全,不需要51%算力就能发动攻击,大概只需要20%-30%的算力就能发动攻击。

点点币(PPcoin)是POS算法,使用很少的硬件用于计算,需要用币挖矿。点点币挖矿不需要一直运行钱包,一个月运行一次钱包,挖矿收益也差不多。有些POS算法的币,需要一直运行钱包才有收益。

比特股(Bitshares)是鉴证人,有101个。EOS是超级节点,有21个。比特股和EOS,既不属于POW,也不属于POS。鉴证人和超级节点,也被称为代理节点。需要全网投票选出代理节点,由代理节点挖矿。

51%攻击不能直接修改任意地址的币,可以无效掉正在进行的任意交易,包括无效掉别人的挖矿产出。拥有51%的算力,就可以获得全网100%的挖矿产出。51%攻击继续加大算力,可以回滚交易记录,把已经确认的交易再回滚掉。回滚掉自己的交易,达到双重支付的目的。想回滚的交易越久,需要的算力越大,回滚难度也越大。

本文转账自:https://talk.nervos.org/t/topic/2712

原文地址:https://www.cnblogs.com/kumata/p/11433781.html

时间: 2024-11-08 01:47:32

[转]挖矿算法比较的相关文章

PoW挖矿算法原理及其在比特币、以太坊中的实现

PoW,全称Proof of Work,即工作量证明,又称挖矿.大部分公有链或虚拟货币,如比特币.以太坊,均基于PoW算法,来实现其共识机制.即根据挖矿贡献的有效工作,来决定货币的分配.? 比特币区块 ? 比特币区块由区块头和该区块所包含的交易列表组成.区块头大小为80字节,其构成包括:? 4字节:版本号 32字节:上一个区块的哈希值 32字节:交易列表的Merkle根哈希值 4字节:当前时间戳 4字节:当前难度值 4字节:随机数Nonce值? 此80字节长度的区块头,即为比特币Pow算法的输入

通过源码学习比特币 -- 挖矿

挖矿的过程就是区块生成的过程 同时也是比特币"发行"的过程. 1. 矿工节点通过暴力碰撞法找到满足条件的哈希值(下文详述) 即为挖矿成功,从而获取比特币奖励 大约每十分钟产生一个区块, 每210000个区块(大约4年)奖励比特币减半 2009.1 – 50个比特币, 2012.11 – 25个, 2016 – 12.5个 到2040年, 总比特币数量达到 2099 9999.98个 2140年后 新区快不再奖励新比特币 矿工收益全部来自交易费 2. 矿工奖励分为两部分:coin bas

XMR恶意挖矿案例简析

前言 数字货币因其技术去中性化和经济价值等属性,逐渐成为大众关注的焦点,同时通过恶意挖矿获取数字货币是黑灰色产业获取收益的重要途径.本文简析通过蜜罐获取的XMR恶意挖矿事件:攻击者通过爆破SSH获取系统权限,配置root用户免密登录,并下载及执行XMR 挖矿程序,及XMR 网页挖矿程序.XMR挖矿程序耗肉鸡CPU/GPU资源,网页挖矿程序耗访问肉鸡服务器JS 网页的客户端资源 . 2018年10月11日,攻击者使用恶意IP(223.89.72.8)暴力破解Victim的SSH服务成功,获取系统账

共识算法POW原理及实现

POW简介 Proof of Work,工作证明.POW共识算法主要是通过计算难度值来决定谁来出块.POW的工作量是指方程式求解,谁先解出来,谁就有权利出块.方程式是通过前一个区块的哈希值和随机值nonce来计算下一个区块的哈希值,谁先找到nonce,谁就能最先计算出下一个区块的哈希值,这种方式之所以被称为计算难度值是因为方程式没有固定解法,只能不断的尝试,这种解方程式的方式称为哈希碰撞,是概率事件,碰撞的次数越多,方程式求解的难度就会越大.比特币就是采用POW共识算法 算法具体实现原理 这里涉

区块链(二)--Bitcoin、Ethereum、Hyperledger Fabric

在区块链(一)这个博文里面呢,我是简单的介绍了一下区块链和数字货币(Bitcoin),接下来我们这片文章呢讲一下这个Ethereum(以下简称以太坊). ================================================================== 本人建议大家可以先看一下以太坊白皮书,这个非常有用,看完了白皮书可以看一下黄皮书(黄皮书就是很细节性的文档了,包括数据结构算法之类的 ,看之前做好心理准备).看完这两个估计你也就不想看我在这胡扯了... ...

区块链(一)--Bitcoin、Ethereum、Hyperledger

现在区块链概念是炒的火热,而这其中Bitcoin是功不可没的.数字货币这个概念和前几年大火的物联网概念一样都是上个世纪就已经被人提出了,到了现在才火了起来. 数字货币在计算机网络刚刚兴起的时候就被人提出来了,也有人提出了很多实现的方案,但是都没有被实现它们或多或少都存在一些问题,直到bitcoin的出现.可以说中本聪不是第一个提出数字货币概念的,但他是第一个让数字货币从一个概念转化为现实的,这一点功不可没. 从事It行业的人对Bitcoin多少都会有一些了解,它自从2009年推出到现在已经经历了

【翻译】A Next-Generation Smart Contract and Decentralized Application Platform

原文链接:https://github.com/ethereum/wiki/wiki/White-Paper 当中本聪在2009年1月启动比特币区块链时,他同时向世界引入了两种未经测试的革命性的新概念.第一种就是比特币(bitcoin),一种去中心化的点对点的网上货币,在没有任何资产担保.内在价值或者中心发行者的情况下维持着价值.到目前为止,比特币已经吸引了大量的公众注意力, 就政治方面而言它是一种没有中央银行的货币并且有着剧烈的价格波动.然而,中本聪的伟大试验还有与比特币同等重要的一部分:基于

吴忌寒江卓尔批“闪电网络”背后,是链圈和矿圈的的利益之争

昨天,有媒体报道比特币核心开发者之一Peter Todd发推文批评"闪电网络",指出闪电网络在测试网络上运行时,出现大量记忆体区段错误(segfault,也称"存取权限冲突"):他认为闪电网络使用C编程语言不是个"好主意".他预测闪电协议在当前的版本中将很容易受到DoS攻击,无论是在P2P层面还是在区块链层面.在此之前,闪电网络是Peter Todd主导推广的(基于Thaddeus Dryja和Joseph Poon的授权的比特币交易加速解决方案

区块广播

矿工挖出区块后,就进行网络广播,传递给相邻的节点,节点接收到新的区块后会进行一系列的验证,比如区块数据格式是否正确:区块头的哈希值小于目标难度:区块时间戳是否在允许范围之内:区块中第一个交易(且只有第一个)是coinbase交易:区块中的交易事务是否有效等,总之就是一连串的检测,全部校验通过就把新的区块数据纳入到自己的区块链账本中.如果是挖矿节点接收到信息,就会立即停止当前的挖矿计算,转而进行下一区块的竞争. 比特币的挖矿过程说到这里,不知道有没有朋友会有个疑惑,那就是挖矿算法虽然能够提供工作量