当前位置:首页 > 知识 >

深入探究区块链共识:PoC原理讲解

本系列文章是链博核心区块链研究小组输出的高质量区块链研究性文章,旨在研究和分享底层区块链技术的原理解析,新技术趋势,拒绝讨论任何token、行情和投资建议。

上一篇文章中,我们探讨了StefanDziembowski的PoC形式化模型和证明的讨论,本篇文章着重讨论BurstCoin实际运行的PoC完备系统的算法细节,涵盖Plot文件和出块流程两个方面。

PoC硬盘利用与Plot文件 Plot文件是每个参与出块的节点或矿工需要在硬盘中存储的文件,其内容由大量特定结构的Hash值组成。Plot文件包含以下基本概念:

- Shabal256:BurstCoin所使用的Hash算法,相比SHA256等其他算法,Shabal需要更多CPU计算时间和计算量。 - Nonce:Plot文件中拥有固定编号的基本单元,由256KB的数据构成,是矿工用来参与PoC过程的基础逻辑单元。 - Scoop:每个Nonce由4096个Scoop构成,同样拥有编号,其编号范围为0-4095。每个Scoop包含2个Hash值,也即一个Nonce包含8192个Hash值。

Nonce的生成流程如下:

- Nonce文件的种子由AccountId(即BurstCoin网络中的用户地址或者用户Id)与NonceId(即Nonce编号)组成,经过第一次Hash,生成Hash#8191,即Nonce中的编号为8191的Hash值。 - #8190Hash值由之前一个#8191Hash值与AccountId,NonceId生成。 - #8189Hash值由之前两个#8191Hash,#8190Hash值与AccountId,NonceId生成,依次类推,每下个Hash值,都有其之前计算的所有Hash值与AccountId,NonceId生成。如果过程中超过了4096个bytes,则取最近生成的4096bytes由Hash#0-8191与AccountId,NonceId共同生成,之后对8192个Hash值都分别对其进行异或操作,作为每个Hash最终的值。 - 得到了8192个Hash值后,Scoop文件的结构如图所示。

这同时也是矿工参与挖矿的最低门槛,即只要有大于等于1个Nonce文件即可参与挖矿。而根据BurstCoin全网算力估计,需要约117亿个Nonce,但一般家用主机只能存储200万个Nonce,因此低算力往往以参加矿池的形式参与挖矿。

PoC的共识与出块 PoC共识的完整挖矿流程包括GenHash的生成、ScoopNumber的计算、target和deadline的计算、交易打包及区块铸造和广播。

值得一提的是,BurstCoin的区块负载大小限制为176KB,平均可以承载19k个左右的交易,理论tps上限约为80,与其他PoW类型的区块链系统相类似。

结合StefanDziembowski的模型,我们可以探讨BurstCoin是否可以纳入其框架之下,并分享某些核心问题的解决方案。

链博科技致力于分享区块链领域的底层技术知识,同时从产业结合角度深入思考,推进区块链落地项目的建设,并为企业提供

猜你喜欢

微信二维码

微信