Blockweave 的设计最重要的还是服务于 Arweave 的共识机制. b. SPoRA 共识机制在讲解 Arweave 现在所使用的 SPoRA 共识机制之前, 我们可以先了解它之前所采用的 PoA + PoW 机制. PoW 机制我们已经很熟悉, 并且在很多区块链上我们都看到过 PoW 这个经典机制. 所以我们来着重看一下额外的 PoA 机制. PoA 代表了 Proof of Access, 访问证明. 如果矿工想要生成新的区块, 那么就必须访问随机的一个回忆区块. 我们可以重新回想一下 Blockweave 的数据结构. 在理想的情况下, 如果矿工想满足这个 PoA 机制的条件, 那么他会去选择存储所有区块的数据, 因为每个下一个区块会指向当前区块以及之前随机的一个区块. PoA 激励了矿工去多存储 Arweave 的区块, 并且这也鼓励矿工去存储一些不被存储的区块, 来提高满足 PoA 的概率. 当然单单的 PoA 是不可行的, 因为如果大家都把所有数据存储了, 那么每个人的出块概率都是 1 . 所以在 PoA 之外还有 PoW 机制来保证去中心化. PoA 与 PoW 共识下, 矿工的出块概率 = 拥有随机回忆区块的概率 * 第一个找到 hash 的概率. 这样 PoA 独特的设计激励了矿工去多存储数据, 并且存储稀有的数据, 实现了数据的永久存储. 另外为了调节网络中块的生成速度, PoW 算法允许调整难度, PoW 难度越大, 计算周期越久, 如果网络中块的生成速率超过目标频率, 则增加了未来块生成的 PoW 难题的难度; 同样, 随着网络中块生成速度的降低, 难度设置也将向下调整; 通过这种方式, 网络能够调节区块生成率, 而不会受限于网络中的节点数量和算力影响. 在 PoA 的共识机制基础上, Arweave 在今年上半年把 PoA 升级到了 SPoRA (Succinct Proofs of Random Access). 单纯 PoA + PoW 的机制只是在数据的永久存储上达到了目的, 但是在数据的访问速度上没有做到激励, 所以矿工很可能把数据库放在成本更低的其他地区, 而并非本地. 这样会导致由于距离等因素造成的网络访问速度变慢. SPoRA 的机制降低了之前矿工出块概率中的权重, 加入了对数据访问速度的考量. PoW 在出块概率中的权重下降, 使得在寻找 hash 中浪费的算力和能源大大减少, 降低了能耗, 对环境更加友好. 将 PoA 升级成了 SPoRA 让矿工更加专注于维护自己本地的硬件和节点, 避免矿工们都把数据存储在同一个费率低的数据中心, 做到节点地理位置的多样化, 和更强的去中心化. 通过这些设计独特且巧妙的共识机制, Arweave 保证了数据的永久存储, 访问速度和爆块时间. c. 去中心化存储Arweave 的另一大特性就是矿工的体验非常良好. 相对于传统的区块链, Arweave 不需要矿工下载整个区块链所有节点的数据, 而是只需要下载几个区块就可以开始挖矿 (虽然这个时候出块的概率很低). 这其实是非常重要的一点. 如果作为一个存储的链, 而没有这样的设计的话, 那新节点的加入是特别困难的. (责任编辑:admin) |