《区块链开发指南》一一2.3 挖矿算法解析

2.3 挖矿算法解析

2.3.1 PoW挖矿算法及分析
PoW(Proof of Work),即工作证明。也就是说,你获得多少货币,取决于你挖矿贡献的有效工作,比如,你的电脑性能越好,分给你的矿就会越多,即根据你的工作证明来执行货币的分配。大部分的虚拟货币,比如比特币、莱特币等,都是基于PoW模式的虚拟货币(算力越高、挖矿时间越长,你获得的货币就会越多)。
第1章已经说过挖矿算法其实就是通过一个Hash函数找到一个满足当前难度的Nonce(包含在区块头里面)的值,Hash函数输入数据的长度是任意的,将产生一个固定且绝不雷同的值,可将其视为输出的数字指纹。对于特定输入,Hash的结果每次都不一样,任何实现相同Hash函数的人都可以计算和验证。加密Hash函数的主要特征就是不同的输入几乎不可能出现相同的数字指纹。因此,相对于随机的选择输入,有意地选择输入去找一个特定的Hash值,这几乎是不可能的,否则就破解了所使用的Hash算法,如SHA-256等。
矿工用一些交易来构建候选区块,他会计算这个区块头Hash的值,看其是否小于当前目标值,如果这个值小于目标值,矿工就会修改这个Nonce的值,然后再试一次。通常来说一个矿工会做成千上万次Hash运算,从而得到一个合适的Nonce的值,使得区块头Hash满足当前难度。这也是PoW(工作量证明)算法的由来。
PoW要求出示一定的证明表明工作量,证明可以是直接记录也可以通过概率表示,其中对于由小概率事件累计而成的工作,出示结果等同于证明了工作量(因为不太可能直接得到小概率结果)。在比特币和其他类比特币的系统中,PoW系统是以合乎要求的Hash作为工作结果的。由于矿工需要一定量的计算才能取得合法的计算结果,因此得到合法的计算结果就可以证明完成了一定量的计算。
2.3.2 PoS股权证明算法及分析
PoS(Proof of Stake),即股权证明。它又是什么意思呢?简单来说,它是根据你持有货币的量和时间,给你发利息的一个制度。在股权证明模式下,有一个名词叫币龄,每个币每天产生1币龄,例如你持有100个币,总共持有了30天,那么,此时你的币龄就为3000,这个时候,如果你发现了一个PoS区块,你的币龄就会被清空为0。你每被清空365币龄,你将会从区块中获得0.05个币的利息(可以理解为年利率5%),那么在这个案例中,利息= 3000×5%/365 = 0.41个币。
以现有的比特币运行发展情况来看,比特币每年的挖矿产量都在不断减半,我们可以预计,随着比特币产量的不断降低,矿工人数也会越来越少,这样就会导致整个比特币网络的稳定性出现问题。PoS的解决方案是鼓励大家都去打开钱包客户端程序,因为只有这样才可以发现PoS区块,才会获得利息,这也增加了网络的健壮性。
其次还有一个担忧,就是当矿工人数降低时,比特币很可能会被一些高算力的人或团队进行51%攻击,如果采用PoS体系,你即便拥有了全网51%的算力,也未必能够进行51%攻击,因为这还要求攻击者持有全球51%的货币量,而这是很难达到的。
现在,我们知道比特币是一个永远不会膨胀的体系了,因为它的货币总量看起来貌似是固定的,但实际上比特币是一个货币紧缩的体系,因为总存在钱包永久丢失的可能,PoS采用类似年利率的方式在一定程度上是可以缓解这个问题的。
不过,到目前为止,PoS算法还没有被比特币采用的迹象。
2.3.3 DPoS股份授权证明算法及分析
股份授权证明机制(DPoS)是一种新的保障加密货币网络安全的算法,由比特股bitshares提出。它在尝试解决比特币采用的传统工作量证明机制(PoW)及点点币和NXT所采用的股份证明机制(PoS)的问题的同时,还能通过实施科技式的民主,来抵消中心化所带来的负面影响。
以比特股为例来说,DPoS机制是让每一个持有BTS(比特股发行的一种加密货币)的人对为整个系统资源当代表的人进行投票,而获得票数最多的101个代表将进行交易打包计算。对此,可以理解为有101个矿池,这101个矿池彼此的权利是完全对等的。那些握着BTS选票的人可以随时通过投票更换这些代表(矿池),但如果他们提供的算力不稳定,计算机宕机或试图利用手中的权力作恶,那将会立刻被愤怒的选民们踢出整个系统,而后备代表可以随时顶上去。从某种角度来看,DPoS有点像美国的议会制度,只不过不是四年一次选举,而是时刻都在选举中。

时间: 2024-10-01 20:16:07

《区块链开发指南》一一2.3 挖矿算法解析的相关文章

《区块链开发指南》一一导读

前 言 Preface 比特币于2009年诞生,在很长一段时间内,人们只知比特币,不知区块链.从2015年开始,区块链像狂风一样席卷全球,倍受金融界和科技界的关注:2015年年底,区块链技术逐渐得到国内金融界和科技界的了解和认同. 区块链行业的蓬勃发展源于区块链有可能给各行业带来巨大的变革.麦肯锡在2016年年初发布报告,指出区块链技术将在未来五年内颠覆众多行业,特别是银行业和保险业:埃森哲预测到2025年,区块链技术每年可帮助全球8大投资银行节省80亿美元至120亿美元的基础设施成本. 全球金

《区块链开发指南》一一1.3 挖矿、矿池

1.3 挖矿.矿池 1.3.1 挖矿原理与区块的产生比特币的挖矿和节点软件是基于对等网络.数字签名来发起和验证交易的.节点向网络广播交易,这些广播出来的交易需要经过矿工的验证,矿工们会用自己的工作证明结果来表达确认,确认后的交易会被打包到数据块中,数据块会串起来形成连续的数据块链.中本聪本人设计了第一版的比特币挖矿程序,这一程序随后被开发为广泛使用的第一代挖矿软件bitcoind,这一代软件在2009年到2010年期间都比较流行.每一个比特币的节点都会收集所有尚未确认的交易,并且会将其归集到一个

《区块链开发指南》一一2.4 Sidechains

2.4 Sidechains Sidechains(侧链)实质上不是指特定的某个区块链,而是指那些遵守侧链协议的所有区块链,这个词是针对比特币主链来说的.侧链协议是指可以让比特币安全地从比特币主链转移到其他区块链,同时又可以让其他区块链上的货币安全返回到比特币主链的一种协议. 所以从某种程度上来说,现在市面上的所有区块链,例如以太坊.莱特币.狗狗币等区块链都可以成为侧链应用.侧链的实现具有重大意义,它意味着比特币可以在不同的区块链上流通,其应用范围和应用前景会更加广泛.一旦侧链的应用流行起来,有

《区块链开发指南》一一1.5 合约应用案例

1.5 合约应用案例 1.4节的脚本系统,详细说明了脚本的运行原理,本节将描述在实际应用场景中如何使用脚本系统构建合约应用.1.5.1 合约应用原理 每个比特币交易都有一个或多个输入和输出,每个输入或输出都有一个小的纯函数与之相关联,称为脚本,脚本可包含简化形式交易的签名. 每个交易都有一个锁定时间,使得该交易处于特定状态并且可被新交易替换,直至锁定时间来临.预定时间可以是块索引或时间戳(这两个因素使用同一个内存项,小于5亿是块索引,大于5亿是时间戳).当一个交易的锁定时间到了,则称之为终结.

《区块链开发指南》一一2.5 最新比特币技术

2.5 最新比特币技术 随着区块链的不断发展,区块链技术也在飞速发展,不仅已经有了相对成熟的应用,还有一些原型应用也被提出,下面将介绍几个现在比较流行的在区块链中的应用.2.5.1 IBLT 比特币系统(Bitcoin)需要矿工(或者说矿池)及全节点的分散化,以实现某些人认为的比特币核心属性:抗审查性(censorship resistance).因此,区块大小的争议也意味着是一种权衡.更大的区块,允许比特币网络可以承载更多的交易,但也会带来更多的问题,它需要更多的时间来传播交易,虽然这有利于大

《区块链开发指南》一一第1章 区块链基础

第1章 区块链基础 区块链究竟是什么?狭义地说,区块链就是比特币的底层技术:不过,经过7年的发展,区块链已经不再"依附于"比特币,而是独立地发展成为了一种革命性的技术,比特币则是区块链最大.最成功的应用.从技术层面来看,区块链是一个基于共识机制.去中心化的公开数据库.共识机制是指在分布式系统中保证数据一致性的算法:去中心化是指参与区块链的所有节点都是权力对等的,没有高低之分,同时也指所有人都可以平等自由地参与区块链网络,唯一的限制就是个人自己的选择:公开数据库则意味着所有人都可以看到过

《区块链开发指南》一一1.2 区块和区块链

1.2 区块和区块链 比特币网络中,数据会以文件的形式被永久记录,我们称这些文件为区块.一个区块是一些或所有最新比特币交易的记录集,且未被其他先前的区块记录.可以将区块想象为一个城市记录者其记录本上单独的一页纸(对房地产产权的变更记录),或者是股票交易所的总账本.在绝大多数情况下,新区块会被加入到记录的最后(在比特币中的名称为区块链),一旦写上,就再也不能改变或删除.每个区块记录了它被创建之前发生的所有事件.1.2.1 区块结构一个区块的结构如表1-2所示. 每个区块都包括了一个被称为"魔法数&

《区块链开发指南》一一第2章 区块链进阶 2.1 外带数据

第2章 区块链进阶 2.1 外带数据 区块链的外带数据是指那些保存在区块链上但不进行货币交易的信息,比如需要永久保存的信息,前面提到过存在于区块链上的每一笔交易都有一个输入和输出,区块链的外带数据也是采用类似的方式来存储的.如果有在比特币上永久存储数据的需求,那么你目前有两种选择,即:"OP_RETURN"和"Multi-Signatures".OP_RETURN是指在每个交易的公钥脚本中嵌入OP_RETURN操作码,之后放置外带数据:Multi-Signature

《区块链开发指南》一一2.2 Counterparty

2.2 Counterparty 合约币Counterparty是以合约币协议运行的全套金融工具,合约币协议建立在比特币块链的基础之上,把比特币块链当成可信的时间戳服务和可信的信息发布证明. 目前合约币已经实现了众多的技术创新点,比如燃烧证明.合约.去中心化XCP与BTC交易所.赌约或期货.资产或股份发行.分红等.Counterparty是建立在比特币协议上的传输层,用于建立和使用去中心化的财务工具协议.简单来说,可以将XCP理解为很多"小的BTC"即XCP="小的BTC&q