区块链网站|NFTS 爆裂币(Burstcoin) POC容量证明的算法特点

POC容量证明的算法特点

广告位

POC容量证明的算法特点

传统的PoW算法将分块生成与芯片需要消耗功率的物理规律捆绑在一起,没有人能够克服这个规律,从而成功解决了区块链的安全问题。

但是电力也有许多缺点:

消耗大量能源对采矿设备的要求很高。从最初的CPU、GPU,到ASIC,都需要专门生产和采购,这必然导致PoW挖矿门槛的逐渐提高。

电力便宜的矿商和矿机厂商逐渐垄断了矿市,矿霸开始出现,引发了很多问题。

在矿难中,大量的ASIC器件因为只能采矿而不能用于其他用途而被废弃,既浪费资源又污染环境。

BurstCoin的设计者以去中心化为第一目标,试图让所有人都参与进来。最后,他们成功地提出了一个PoC算法。

PoC算法的特点:

1、仓储硬化,迫使所有仓储空间用于挖掘。这意味着提高开采效率的最有效和唯一可行的方法是增加用于开采的存储容量。

2.I/O不敏感,对存储设备的读写速度要求不高。这意味着不需要RAID、SSD甚至内存等昂贵而特殊的存储设备,挖掘的门槛大大降低。

3.网络带宽不敏感,挖矿本身的搜索过程是离线的。只有在接收和广播事务和块时,才需要网络。这意味着不需要使用网络带宽这种高度集中的资源。

4.计算资源不敏感。一旦产生了挖掘所需的数据,几乎不需要计算资源参与实际的挖掘过程。这意味着挖矿不再需要强大的CPU和GPU,不再需要消耗大量的能量。

结合这些特点,每台电脑的机械硬盘都成为挖矿的不二之选,几乎人人都能实现,大大降低了挖矿的门槛。甚至,一些大容量的手机、平板电脑等设备也可以参与挖矿,避免了挖矿的集中化。矿用设备是硬盘,即使遇到矿难,也不再像ASIC一样,不能用于其他任何用途。只能变成电子垃圾,污染环境,浪费资源。硬盘的能耗远低于其他计算硬件,有利于节约能源。

PoC算法的核心是将分块的产生与存储设备的存储密度不能无限增加的物理定律绑定,从而限制分块的产生,保证区块链的安全性,最终使整个区块链达成共识。

PoC算法原理

在计算机科学中,一些经常使用的数据和中间结果会被存储起来,这就是所谓的缓存。

缓存是一种非常常见的做法。我们举个例子。让我们进行如下计算:

4 x 5545 x 55 93445 x 55 72345 x 55 98如果所有计算都正常执行,则需要4次乘法和3次加法。

聪明的你一定发现45 x 55出现了四次。为什么每次都要重新计算,只有一次,然后记录结果?如果下次再遇到,可以直接用结果,不需要重新计算。

所以,做同样的工作,我们只需要1个乘法和3个加法。

但是,节省计算量也不是没有成本的。代价是我们需要一个空间来存储这个中间结果。

这种方法叫做空间换时间。计算越复杂,缓存的性能越好。

为了保证公平性,PoW算法在每个块竞争的时候,解决的谜题都是新的,根本没有可以复用的中间结果。

BurstCoin-PoC还设计了一种消耗大量计算资源的算法。但是,与PoW不同的是,这个计算过程中最复杂的部分可以被缓存,这导致了消耗存储空间进行缓存的巨大优势。

我们之前提到过,计算越复杂,消耗存储空间进行缓存的优势越大,可以保证矿工选择更多的存储空间而不是更强的计算能力来竞争。

但是计算复杂度不可能无限增加,因为非矿工检查一个块的PoC结果时,需要重新计算结果。我们不能要求一个非挖掘用户配备大量存储资源进行缓存。

过高的计算复杂度会导致一般用户检查块的速度非常慢。所以计算复杂度需要一定的平衡,既不能太复杂造成验证困难,也不能太简单造成缓存优势不足,从而退化为PoW。

在足够高的计算复杂度下,人为制造空间对时间的巨大优势,这就是PoC算法的原理。

PoC算法的实现

PoC算法的核心是一个哈希函数:Shabal。

国家标准与技术研究所(NIST)在2007年举办了一次竞赛,Shabal是下一代哈希函数标准收集方案的候选人。这个方案通过了第一轮筛选。可惜第二轮没通过,无缘决赛。但是Shabal仍然是一个很好的哈希算法,至今没有发现明显的安全弱点。

事实上,这次比赛虽然很多算法最后都没有胜出,但是由于其优秀的特性,还是被加密货币选中了。PoW X11中的11种哈希算法中有许多都是这次竞赛的候选算法。

我们来看看BurstCoin-PoC算法是如何实现的。

BurstCoin-PoC需要生成大量的缓存数据,这些缓存被称为绘图文件。

步骤1:选择一个8字节的随机数Nonce,将您的帐户ID加在一起执行Shabal256计算,并获得一个散列结果。此帐户ID是从您的私钥中推出的,可用于识别您的身份。之所以在计算中加入账号ID,是为了防止几个人共享同一套缓存数据作弊,同时也增加了搜索空间的范围。哈希结果称为哈希#8191,这不是错误。下面将解释它为什么如此命名。

然后,将在第一步中获得的散列#8191添加到账户ID和Nonce之前,并且再次执行Shabal256计算以获得散列#8190。

在以后的计算中,每次都会将获得的哈希值添加到数据的前面。当数据长度超过4096字节时,每次只会对最接近的4096字节数据进行哈希处理。

例如,当计算散列#7000时,只有散列#7001-7128的128个散列值将用于计算。

因为每个哈希值的长度是32个字节,所以128正好是4096个字节。

完成8192个循环后,会得到8192个哈希值,用来计算哈希值的数据也会变成这样:

您需要对所有这些数据再次进行Shabal256计算,以获得最终散列。

最后,将之前的8192个哈希值与最终哈希值逐一进行异或运算,并保存8192个经过异或运算的哈希值。这些数据是未来挖掘要搜索的范围。

这8192个哈希值将被成对分组,称为Scoop,这是挖掘中使用的最小数据单元,Scoop是64个字节。

现在可以回答前面的问题了。其实Hash的个数是倒过来的,这也是为什么第一次Hash操作的结果叫做Hash #8191而不是Hash #0的原因。

对于每个矿工来说,帐号ID是固定的,上面生成的8192个哈希值实际上只与Nonce相关。Nonce为8字节,取值范围为0-18446744073709551615,是一个非常大的数字。

对应于随机数的数据量是32字节*8192=256KB。

如果要存储nonces对应的所有数据,需要256 KB x 1844674073709551615=4096 zb的空间。不过据说目前人类所有数据的总和不超过40ZB。事实上,事先保存nonces的所有数据是不可能的。

挖掘器将只缓存尽可能多的Nonce和相应的4096 Scoop,以提高找到解决方案的概率。

存储优化

PoC的另一个设计要求是I/O要求应尽可能低。

有两种方法可以降低I/O需求:

1.减少要读取的数据量,优化数据排列。

2.减少I/O的数量。

PoC算法采用第一种方法。

其实PoC搜索的时候,只会搜索某个固定号码的独家新闻。

假设一个矿工缓存了以下数据:

这个表不全,只是为了说明问题。省略了许多独家新闻,且仅抽取了五个随机数。真正的矿工会缓存比这多得多的数据。

在挖掘一个区块时,选择Scoop2进行扫描,这样矿工只需要扫描4096个Scoop中的一个,大大减少了要读取的数据量。

不用担心矿工会删除其他的勺子,因为不同的区块会选择几乎随机需要使用的勺子。如果某个勺子没有被存储,就意味着他将无法参与需要这个勺子的区块的挖掘,按比例降低了挖掘效率。如果他没有存储足够多的Nonce,他可以搜索的范围就会缩小,这也会按比例影响他的挖掘效率。

我们来算算,就算矿工用的是目前最大的单硬盘,比如希捷酷狼14T。

14T硬盘实际可以用12.7T左右,即使缓存满了数据,也只需要扫描12.7T x 1/4096=3100.5859MB的数据。

BurstCoin的阻塞时间是4分钟,只要硬盘能在这4分钟内完成扫描。

300.5859 MB/240s=12.91910792 MB/s,只要硬盘的读写速度超过这个值,一般机械硬盘的读写速度超过150 MB/s。

帮助PoC挖掘者减少每个块中要扫描的数据量。矿工也很聪明。他们使用第二种方法来减少I/O的数量并进一步优化它。

想象一下,你去超市买东西。可乐和啤酒都在同一个货架上,你只需要跑一趟就能全部买到。

相反,尿布和啤酒可能离得很远,你不得不跑两趟。

超市发现很多人同时买啤酒和纸尿裤,就把它们放在同一个货架上,每个人只跑一趟就能得到两样东西。这是超市对商品排列的优化。

与超市的例子非常相似,对于机械硬盘,数据存储在磁盘的不同位置。如果数据存储位置彼此靠近,可以在一个I/O中读取。

让我们看一个例子:

当绘图文件第一次生成时,它被存储为一个Nonce,具有不同数量的相同Nonce的Scoop被存储在一起。

相同的颜色表示存放位置相互靠近,不同的颜色表示存放位置相距较远。

但是,在挖掘的时候,我们是根据Scoop来扫描的。如果采用这种安排,我们扫描0-56个随机数的Scoop2需要6 I/O。

这将极大地影响扫描效率和硬盘的寿命。

因此,smart miners将在生成绘图文件后重新排列数据,如下所示:

打破现时,把同样的勺子放在一起。这样,只需要一个I/O就可以访问一个勺子。是不是很聪明?磁盘上的磁头表示非常开心。

事实上,在这两种优化的作用下,绝大多数硬盘都可以在不到30秒的时间内扫描完所有数据,几乎不影响电脑的正常使用,因此不会出现挖矿和正常使用的延迟。可以一边玩游戏,一边挖矿。太美了。

#硬盘狗社区# #硬盘挖矿#

广告位
本文来自网络,不代表区块链网站|NFTS立场,转载请注明出处:https://www.qklwz.com/jzb/burstcoin/2743.html

作者: 玩大的

上一篇
下一篇

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

返回顶部