浅谈存在证明共识机制

浅谈存在证明共识机制_第1张图片

笔者最近看到一个项目关于容量存在证明的策略,提到以下几点:

1. 独一无二的随机数填充硬盘,确保每个矿工都是公平参与;

2. 占领磁盘,而不是保持硬盘空闲(避免扩容盘蹭收益);

3. 尽量减少硬盘转速对挖矿收益的影响(笔记本硬盘或者5400转硬盘依然友好)。

挖矿时的基本原理

为了便于描述,笔者在此用一个例子进行讲解。

整个区块链网络,是一个考试官,平均每4分钟开出一道题目。

矿工是应试的学生,每个人手头有一个答案库,答案库的大小取决于你参与挖矿的硬盘的大小。

每4分钟,考试官放出一道题目,所有矿工在自己的答案库里面搜索正确答案,并且把自己认为接近的答案提交给考试官,最接近正确答案的提交者,获得出块奖励。

基本上,学生提交的答案命中率,取决于你答案库的大小。答案库越大,得到高分的几率就越大,也更容易获得奖励。

问题在初见端倪。

浅谈存在证明共识机制_第2张图片

如果想要更容易挖到矿,就需要更大的硬盘存储更多的答案,但基于人性,矿工只会去存更多的答案,不会愿意将磁盘空间贡献出来给别人使用。

这个明显不能够促进生态的正常运作。

方案修改

来对方案进行优化。

矿工贡献自己存储空间,用户将自己文件分片并生成 hash 列表,每个矿工都保存着所有 hash 列表,以及 hash 对应的文件。

浅谈存在证明共识机制_第3张图片

创世块 hash 跟着项目启动诞生,每个块的诞生会往外扔一个 hash,这个 hash 主要是矿工地址和文件 hash 经过算法生成的。

共识机制有一个复杂度,复杂度决定了上一个块扔出的 hash 与文件 hash 之间的差是否能算挖矿成功

这个复杂度是根据块的生成速度自动调节,长久块不生成,所有矿工将一致决定降低复杂度。如果在一段时间内块生成速度很快,同理将提升复杂度。挖到矿的矿工会将自己的地址和文件片 hash 一起写入新的区块并接入主链对外广播,其他矿工收到后会对其进行验证,验证通过将对新块抛出的 hash 再进行挖矿操作。

到这里只是存储挖矿部分,Hero Node 项目中运行的功能将包含多条公链的同步,文件的存储,数据的计算。

在 Hero Node 的挖矿过程中我们需要考虑到这些元素,所以做出一些设想。出题人将由公链出任,多条公链轮流出题,比如最新块诞生的瞬间题目开始,矿工将寻找与这个块偏差复杂度以内的文件片 hash,找到即对外广播,并写入主链。

如果矿工希望挖到更多的矿则需要更及时的同步公链,存更多的文件等,这些将促使矿工们提升矿机性能,提高磁盘空间,增加网络带宽。这个对促进 Hero Node 生态的良性运作大有裨益。

你可能感兴趣的:(浅谈存在证明共识机制)