前言:今日Qtum开发团队已将POS 3.0共识机制融合到Bitcoin Core V0.13版本,并内部发布了一个支持POS3.0的V0.13版本的BTC Core版本,这个测试网络是Qtum项目在开发过程中的一个副产品,也是未来Qtum代码的一部分。对于这个内部测试版本的发布,Qtum发起人帅初表示,这项工作在现有比特币代码和生态的基础上,增加了一些有意义的探索。
Qtum的部分代码基础图示
很多人一直抱怨的比特币网络的确认速度慢的问题,在Qtum系统中会得到很大的解决,并且之前也考虑过一种可能性就是 hybrid pow+pos 的比特币网络的存在的可能性,pos区块有可能可以大大降低比特币网络的确认时间,也从另外一个角度实现了比特币网络的扩容。
关于为什么选择Sunny King的相对成熟的Proof of Stake 机制为Qtum共识机制的一部分,帅初表示,主要从Qtum作为公链的要求出发,在公链系统的共识机制的设计中:1 考虑代码的安全性和可靠性 2 考虑网络的去中心的程度 3 行业的适用性,综合这三个因素,我们选择SunnyKing的POS机制为基础,并加入激励的成本,把这个共识机制应用于现有的Bitcoin 13版本的代码上。
目前现存的POS货币的代码大部分都还在使用bitcoin core 0.8版本的非常陈旧的代码库,Qtum的开发团队跨越比特币的5个版本,(V0.9 V0.10 V0.11 V0.12 V0.13),从V0.8版本port到了V0.13版本,在该版本的pos网络中,我们可以使用所有最新的比特币代码重要的特征,例如隔离验证和未来的闪电网络等。除此之外,Qtum的团队还改进了SunnyKing的POS机制,提升了整个POS共识机制的安全性。以安全、可靠、充分测试过的代码作为Qtum平台的主干代码,会降低开发成员的学习成本,也会增加Qtum系统的安全性,并且可以和现有的比特币生态和以太坊生态实现极大的兼容性。
权益证明(POS)是针对数字货币的共识模式,其中的区块链可以通过使用硬币生成区块,从而得到保护,而不用通过专用硬件网络。工作证明(PoW)共识模式则要通过解决复杂问题来生成区块。由于所使用的计算算力的数量问题,这个问题变得更加困难了。
POS模式可以让Qtum所有者使用他们的个人设备来保护区块链的安全。这意味着可以使用笔记本电脑或个人计算机,而不用昂贵的专用集成电路(ASIC),现场可编程图形阵列(FPGA)或图形处理器单元(GPU)。
在本文写作的时候,目前每秒约有200万兆哈希值用于攻克区块。假设每个人都使用最新的ASIC设备——蚂蚁矿机(Antminer)S9,14 Terahash每秒,这种设备数量将超过14万个。每个设备使用1400瓦功率,目前成本大约为1200.00美元,因此设备总价值为1.68亿美元,功率为1.96亿瓦。以每千瓦时10美分,即每天约47万美元。请注意,电费差别很大,还有许多用陈旧的(低效的)ASIC硬件保护比特币的区块链。只要电力的成本小于开采和销售比特币的成本,困难就会逐步上升。
保护Qtum的POS区块链的能源成本只是传统POW模式的一小部分。也许成本低到一万瓦才会被认为是安全的。这将需要大约100台设备主动使用他们的“网络权重”来攻克区块。从这个比较中我们可以看出,POS模式相比于POW是环境友好的。
Qtum是基于Bitcoin Core版本0.13的,并计划并入Blackcoin(黑币)的POS 3.0共识机制中。这种方法不是说没有挑战,因此我们将通过以下8个步骤克服挑战:
1.研究并选择一个共识机制
Blackcoin自2014年成立以来,已经实施了3个POS版本。版本2解决了许多潜在的安全问题,并阻截了网络滥用问题。版本3进行了一些更新,最显著的改变是从1%的年度POS奖励变为静态1.5BLK(黑币),这意味着只有参与保护网络安全的Blackcoin所有者,通过让他们的钱包保持在线状态,才有机会获得一个区块。
在查看多个POS统计模式后,Qtum决定将Blackcoin POS 3.0整合到Bitcoin Core 0.12中。
2.将Blockchain POS 3.0 实施到Qtum Core中
此部分需要仔细研究Blackcoin POS 3.0将如何在其生态系统中发挥作用。Blackcoin Core的‘祖先’来自于2013年的Bitcoin Core版本,所以如果要让它在0.12版本上运作的话,还需要翻译为代码,才能进行编译。
Blackcoin的POS 3.0实现是复杂的,并且在代码中没有清楚的解释哪些部分是和其他部分相关联的。代码将分发到多个文件中,其挑战是让Qtum开发人员识别可整合部分的标记。
比特币和Blackcoin同步区块链的方式是不同的;Blackcoin会下载整个区块,而Bitcoin会区分区块的标题再进行下载,以便能更快使用。在实现到Bitcoin Core 0.12的时候要考虑到来自Blackcoin的移植代码是经过修改的,同时还有一些其他修改,这种修改是通过Blackcoin接受并处理区块的方式进行的。Blackcoin的“挖矿”软件也会被整合,这是为了让Qtum Core的用户解决生成硬币所需的方程问题。
3.测试没有节点的Qtum的POS实现
一旦Blackcoin挖矿软件实施到Bitcoin Core 0.12版本,将使用RPC调用的程序daemon进行访问。这些修改实现了在单个计算机上挖矿,这些算法会被检查,并且这个阶段是成功的。
4.第一个测试网络
第一个测试网是用10个节点创建的,其中5个被硬编码到新创建的Qtum Core中。其他5个在各种云计算供应商上编译和执行。一旦创建了Genesis区块,网络就会根据指示每64秒生成新的区块,并且每16分钟都会调整难度。用于测试目的的POS区块的奖励为5个硬币。每个节点由预先开采的硬币资助,并且会设置成一旦启动daemon (虚拟光驱)就会开采硬币。
5. Qtum POS所需修复
这个阶段出现了一些问题,许多日志输出可以让开发人员修复问题。节点中的一些错误会导致通信问题,一些节点因此遭到禁止,并且创造了它们自己的链。这种困难没有得到很好的解决,一些钱包出现了腐败问题。
一旦这些问题得到解决,为了确保稳定性,会对网络进行几天的监控。
6.在多个平台上搭建Qtum Core
Linux被用于第一个测试网(Testnet),仅仅是因为这是最简单的搭建环境。为了搭建一个适合Mac编译的环境,就要做出适当改变。最初使用的是MingW和Msys2,但是遇到了代码库问题。最终决定使用MingW,并且会在Linux上交叉编译。这让工作钱包可以在Mac和Windows 64位上编译执行。
7.将Qtum整合到Bitcoin Core 0.13中
Blackcoin POS 3.0在Bitcoin Core 0.12上的实现是成功的,但是最近在测试期间对比特币钱包的改变使得开发进度后退,并且要重新评估。做出这个决定是为了推出具有最佳功能的Qtum。Bitcoin Core 0.13可以让钱包的同步速度更快,不用下载整个Blockcoin,只需下载区块标题。这可以让Qtum所有者的用户体验比使用0.12版本更加顺畅。
在此阶段会遇到一些问题,钱包交易会在日志文件中创建错误。Testnet保持运行以观察所有错误。
8.Qtum质量保证测试
测试一个新的区块链需要时间,每个区块需要大约60秒来完成生成,此举是为了让区块的运行时间尽可能长。然后设置了多个测试网,利用130个基于云的Linux节点进行会话。每个测试网会运行1.5万个区块。
由于Bitcoin Core 0.13的实现,一些POS区块在尝试同步时会被部分下载。当代码更新到适应POS和POW区块时,这个问题就很快会被修复。每个测试网都成功的开采了1.5万个区块,也没有出现更多的问题。
声明:此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。本网站所提供的信息,只供参考之用。