【TIPS】深入了解Filecoin如何构建区块

IPFS搬运工 2020-02-27 16:48 前 分享
分享到微信朋友圈
7612

原文作者:IPFS Community

本文由IPFS中国社区编译整理

原文链接:

https://filecoin.io/blog/tipsets-family-based-approach-to-consensus/


aaa.jpg


协议实验室(Protocol Labs)旨在打破常规。我们启动了IPFS,以使Web更快,更安全,更开放。现在,借助Filecoin,我们正在建立一个分散在区块链上的分布式存储市场,用户可以在其中租用额外的存储空间。


区块链建立在区块上,这些区块由唯一的密码哈希表示,并永久记录在区块链上。这些信息块串在一起,构成了区块链,并携带了一组对状态进行编码的系统更新。区块链使用共识协议来确定如何扩展其账本。这包括可以更新/扩展区块链的各方,以及如何选择。


世界上存在着与区块链一样多的共识协议,无论是BFT还是Nakamoto-style,最长链规则或权重规则,工作量证明或时空证明或某种全新的系统。每个共识协议的工作方式略有不同。但是,许多共识协议的总体目标是建立可扩展,安全的分布式网络,通过矿工的竞争和参与推动自身的增长。


比特币建立在一个简单的线性区块链上。每个块均加权,并且仅计数一次。将比特币区块链想像成君主制,即根据与创世块的直接关系来传递和扩展权力。鼓励矿工在最长的链上进行开采:区块最多的那条链。


本文发布前,比特币区块链的长度超过600,000个区块(自创世以来,每10分钟大约一个)。有时,两个区块的开采距离相对较近(暂时)。比特币的最长链规则和10分钟的阻止时间允许大多数网络隐式地“投票”他们希望以相对较短的时间使用哪个块。这种选择可能取决于多种因素,例如矿工最先听到哪个区块以及区块中包含的交易。取决于矿工来决定,重要的是,大多数网络最终会同意开采哪个区块和放弃哪个区块。废弃的块称为孤立块。下表中的紫色表示孤立的块。


bbb.jpg

以上为紫色的孤立块


孤立区块是有效的块,不会影响链的总长度和稳定性。其他区块链,例如以太坊,设计奖励开采这些区块的矿工,称为“叔叔区块”(uncle blocks)。矿工在开采矿块时会获得奖励,即使他们最终并未被包括在链中。这有助于抵消矿工因网络延迟而面临的潜在不利因素,并消除网络集中化的麻烦:单个或连接不佳的矿工也将获得补偿。


ccc.jpg

叔叔块,与使用最长链的比特币不同,Filecoin的共识力图尽可能多地利用权重链的算法。

随着2015年“比特币中的安全高速交易处理”的发布(Sompolinsky,Zohar),将区块链的思想不再是链本身,而是有向无环图(DAG)。通过这种方式,我们可以查看块最多的DAG,而不是简单地看最长的链。Filecoin就是这样一种协议,它使用块的总数以及它们在其链选择规则中编码的存储能力。


GHOSTy协议使矿工可以参考过去观察到的所有区块,以增加其链的权重。Filecoin的共识机制建立在这种称为技巧集的变体上。如果比特币像生产最长和最有效链条的竞赛一样运作,则Filecoin的“预期共识”是基于选举的,并且可以在回合中选举多个矿工作为领导者。这又意味着可以在每个回合中创建多个有效的同级块。随着每个EPOCH的到来,可以增加新一代的家谱,称为提示集,这是我们网络独有的系统。


Filecoin中的块按EPOCH排序。每个新块都指代前一个EPOOCH中产生的至少一个块(父)。提示集由具有相同父代且在相同EPOCH中开采的有效块组成。


下图简化为不考虑底层存储能力,它以不同的颜色显示了来自同一祖父母块的3个技巧集。让我们计算这些技巧的权重。


4.jpg

Epoch 2中有3个提示集的示例


在下面的第一个图表中,祖父母+父母+孩子给Epoch 2中的第一个提示总重量为5。

5.png

Epoch 2中的第一个小技巧,总重量为5。


下面的第二个提示总权重为4(一个祖父母,两个父母,一个孩子)。

6.png

Epoch 2中的第二个小技巧,总重量为4。


最后的提示集(第三个图表)的总权重为3(一个祖父母,一个父母,一个孩子)。
7.png

Epoch 2中的第三个技巧组,总重量为3。


最终图表提供了该链的全面视图,其中在第2阶段中获得了最高的第一个提示,尽管直到下一个第一个周期才被确认。

8.png

来自相同时代的所有提示集及其权重。到目前为止,最重的链是权重为5的第一个提示集,不过直到下一个时期才被确认。

与以太坊一样,该系统通过确保不浪费任何工作来激励协作并总体提高链吞吐量。此外,由于严格要求其所有块都具有相同的父代并且在相同的高度开采,因此在叉的情况下,链条可实现快速收敛。

最终,Filecoin权衡了提供更多存储功能的区块,因为它的核心是存储网络。随着时间的流逝,矿工们会聚在最重的链条上,那些链条正在创造价值。较轻的链条成为孤立块。


Filecoin矿工存储的数据越多,矿工的存储能力就会增长得越多,网络上的存储能力越大,矿工就更有可能生成新区块并赢得区块奖励。要了解有关Filecoin加权系统的更多信息,请查看此testnet挖掘文章(https://filecoin.io/blog/filecoin-testnet-mining/),其中概述了Filecoin的存储证明系统。


本文来源:IPFS Community
版权声明:原站点及作者保留权利。文章为作者独立观点,不代表IPFS.CN社区的立场。

收藏 分享

全部评论