关于 Arweave “挖矿”

Arweave 网络中的挖矿目的是尽可能增加数据的复制次数,这是通过在每个区块的创建和测试大量的 Succinct Proofs of Random Access(随机访问的简洁证明 SPoRA)实现的。

SPoRA 是 Arweave网络的一种新型共识机制。在区块633720(约2021年2月)之前,Arweave一直采用经典的工作量证明(PoW)共识机制,额外的要求是区块包括对网络上过去数据的引用(这对系统的区块编织架构至关重要的结构) - 统称为访问证明(PoA)。2021年 2 月 24 日,新的共识机制有两个特点:

首先,使挖矿收益与数据访问速度保持一致。PoA实现了Arweave永久存储和数据访问的主要目标,但它并没有对矿工快速检索数据加以重大激励。由于没有数据检索访问的要求。矿工们使用了远程存储池而不是维护单独的分散节点。SPoRA 激励矿工更高效、更快速地复制数据,结束了只靠CPU统治的时代。因此,SPoRA 通过抑制 CPU 之间的存储资源池来促进更加去中心化和高效的区块编织结构。

其次,减少维护网络所需的能源需求。PoW 虽然安全、可靠且有弹性,但是一种极其耗能的共识机制。SPoRA的架构需要更少的能源来维护,不仅降低了矿工的开销,而且使整个系统更清洁,更高效。与比特币的经典PoW网络只为了共识而消耗能源相比,在Arweave SPoRA网络上挖矿所消耗的能量还用于数据存储和检索。这种体系结构是资源支出和效用之间更优雅的统一协调方式。

挖矿的主要步骤

1, 在生成新的区块时,将选择全网范围的10%作为搜索子空间,节点将在这个子空间中随机访问数据。

2,使用RandomX (XMR使用的算法,适合CPU挖矿)算法将候选区块的元数据和随机数一起计算出一个Hash。

3, 此Hash是一个非常大的整数,被缩小到搜索空间大小给出的范围内。这个数字被添加到搜索空间的底部(在步骤1中计算),并用作“挑战字节”——数据集中的一个点,矿工必须证明他们可以访问它才能继续挖矿。

4,现在,矿工要尝试将包含挑战字节的区块从磁盘读取到内存中。如果矿工没有持有给定区块的副本,他们会从第二阶段重新启动挖矿过程。

5,然后,矿工根据需要读取或重新创建在数据集中适当位置包含给定字节的证明(Merkle 证明)。

6,然后使用 RandomX 将块元数据、Merkle 证明、从磁盘中读取的数据和随机数一起计算出一个Hash值。

7,此Hash值将被转换为一个数字,然后根据网络中的当前难度级别进行验证。网络中每个区块生产周期中除了一个尝试外,其他所有尝试都将验证检查失败,这些失败的矿工将从第二步骤重新开始。

8,当节点为有效的候选块生成证明时,SPoRA 证明和块头将分发到网络的其他部分。

激励促进广泛的数据复制

AR 通证将按通货膨胀的计划逐步发放,同时向生产区块的矿工发放捐赠(视情况而定)。如果矿工无法访问所要的挑战字节,他们将在挖矿过程的第四步失败(如上所述),那么挖矿优化就变成了一场平衡CPU和存储支出的游戏。矿工存储的数据越多,他们能够调用挑战字节并继续挖矿过程到第七步的最终检查的可能性就越高。尽管协议不要求矿工存储每个区块,但未能复制足够的数据集会导致挖掘性能较差(有效SPoRA率较低,而支出较高)。

SPoRA挖矿算法的设计迫使矿工在算法中的每对哈希的数据复制上承担额外支出,无论数据存储在哪里。简单地说,每增加一焦耳的能源,就必须与数据访问上的一些支出相匹配。

数据复制的自动平衡

通过对网络的搜索空间进行约束,可以强制激励矿工存储网络中复制不佳的数据。这种机制被证明是有效的,因为当选择包含稀有数据的搜索子空间时,能够访问网络复制性较差部分的矿工将能够以比无法访问稀有数据的矿工以更高的速率产生有效的SPoRA候选者(在挖掘过程中达到第七步)。

奉献挖矿

为了在挖矿过程中取得优势,矿工可能会选择通过将他们不与他人共享的数据提交到网络中来“奉献”通证。当这部分数据被Arweave网络选中用于验证时,其他矿工也无法访问这些“私有”数据,从而增加该奉献矿工的相对SPoRA成功率。这为网络增加了一层经济安全性,类似于“燃烧证明”系统。如果奉献矿工从未将数据播种到网络中,他们也会增加对网络中用户存储数据的有效捐赠奖励(因为将数据加入到Arweave网络的区块中,即使不上传数据,也需要花费通证。)。这是因为网络将为整个数据集发布通证,无论数据目前是否在网络中扩散。