1. 首页
  2. 区块链

Filecoin测试为什么要抢算力排名?

Filecoin测试网第二阶段已经进行了一月有余,本周进行网络重置。一有重置必然会掀起算力大战,排名、爆块、挖矿效率…已经成为整个市场的默认目标。

Filecoin测试为什么要抢算力排名?

Filecoin测试网第二阶段已经进行了一月有余,本周进行网络重置。一有重置必然会掀起算力大战,排名、爆块、挖矿效率…已经成为整个市场的默认目标。

为什么?市场宣传的需要使然。

但是这个时候,这些数据并不能真正说明问题。实际上,在当前的算法下,算力高可能意味着吃亏,而且出块权的计算方式仍在改变。

市场一览

周五(6月19日) 8:00,Filecoin 测试网按计划重置了。

因为很多改变与原实现不兼容,本次重置直接通过重置升级,好处是节省时间。这也是为了让开发团队集中精力在实现奖励阶段的实现上,而不用花很多时间来进行链的维护。

重置之后我们仍然看到,不少团队的宣发还是集中在:

  • 算力排名

  • 出块效率

  • Seal速度

可以理解,大家都需要做市场,做宣传,推动生态发展。总要宣传点什么。

但是,在目前阶段仅关注这几个方面,可能会一些误导:

  • 广大受众并不一定能有一个准确的判断

  • 信息也并不一定准确

之所以这么说,是因为就目前的实现而言:

  • 算力占比过高,实际上代币收益是吃亏的;

  • 在现在的网络中,算力占比较小者理论上更占优势,但与网络状况和同步效率关系较大;

  • Seal 速度展示了一定的优化能力,但是有时候和效率是相悖的;

  • Seal速度的展示是可以伪造的*(具体怎么造请参考第二阶段刚上线的时候的一些讨论,当然也可以通过第三方进行挑战的方式进行证明)。

*注:这里并不是说一定有人伪造,只是说技术上可行。

为什么这个阶段大家还抓住这些点不放,重复之前的各种指标呢?可能是因为节奏被带成这个样子了,可惜的是这次没人带新节奏。

算力与出块

为什么说算力占比过高,实际上代币收益是吃亏的?因为在第二阶段测试网中,算法又变了。

判断一个矿工能否赢得一轮挖矿权利依靠一个简单判断:Filecoin测试为什么要抢算力排名?

这里 h(vrfout) 是一个随机数;e 是预期每个高度的区块数,目前设置为 5;myPower/totalPower 是矿工的算力占比。

上面公式的意思是:如果你的算力占比是 r = myPower/totalPower,那么你获得选举的概率就是 r*e。
问题来了,因为 e=5,因此当你的算力超过20%时,你一定能够赢得出块权

也就是说,无论你的算力是20%, 还是21%, 还是60%, 80%,理论上你都应该每一轮都能够出块,获得区块奖励。这样的话,超出20% 部分的算力就没有意义了。

相反,如果你拥有 10% 的算力,理论上你应该拥有 50% 的出块权,也就是有一半的机会出块。
大家可以自己权衡一下,是否达到了这个指标。

另外,因为受到各种因素的干扰,实际成功出块并加入最重链的几率要小于理论出块权的。

出块与安全

为什么改成现在这个样子呢?一句话,为了稳定和安全作出的权衡。
这里主要考虑如下几个因素:

  • 区块奖励和算力占比成正比 – 公平性

  • Filecoin网络出块更稳定,消息打包更完备 – 可扩展性

  • 系统安全性提升 – 安全性

为达到这些目的,Filecoin团队做了不少的探索。

在最初的设计和去年的开发网阶段,基本上是考虑每一个高度平均一个区块。这样比较容易实现出块和奖励的公平性,但是空块的轮次太多了。

于是,在测试网第一阶段做出了一个简单且有意思的改进:

  • 增大每一个矿工的出块率;

  • 推出一个新概念:ExpectedBlocksPerEpech,也就是 e,目前这个值设为 5,也就是说每一轮的出块数为 5;

  • 并在其中采用了复杂的 GenerateCandidates 机制,按照sector的固定比例来计算;

  • 推出选票制,按照选票来计算区块奖励。

无论一个矿工赢得几张选票,出一个区块就可以了。这个机制比较复杂。但是还是非常公平的。

但是,这种算法仍然隐含着问题,主要是在算力增大的情况下,在一个区块时间内的计算量呈线性增加,然而,区块时间是固定的,计算量逐步增大不合理

因此,测试网第二阶段开始前,算法进一步改进,就是去掉了选票制。每一个矿工出块奖励都一样。但是,这里出现了一个 20% 上限的问题。

POS的秘密

20%的上限,看起来不公平,因为对于大于20%算力的矿工而言肯定是吃亏了。

但是这个重要吗?不重要。因为它对于算力小于20% 的矿工而言是公平的。如果全网每一个矿工的算力都小于 20%,就公平了。

也就是说,这个算法实际上是设置了一条算力的软上限——你可以超越这条线,但没有一丝好处。

这样的设置,对于去中心化而言反而是有帮助的。所以团队在设计时对此并不在意。但是矿工却需要很重视。

然而,在市场上我们却看到这个上限确实被不少矿工有意无意地忽视了。

既然如此,这个算法是否就没问题了?其实不然。

这个算法有一个很大的问题,没有秘密了

区块链出块的一个重要的安全因素就是随机性和不可预测性,也就是秘密选举。但是在目前的算法中,一个算力达到20%以上的矿工每一轮理论上都可以赢得选举,这就没有秘密可言了。

没有秘密,那很多事就好办了。比如几个大矿工一起做点坏事,那就太简单了。

Filecoin的出块权选举是POS,其权益比例已经公开了,在这个秘密选举的世界,公开的信息越多就越容易被利用。那么如果一个算法能够被利用来推算出谁能够肯定赢得选举,这就不太妥当了。

没有秘密的选举,缺失了随机性,就增加了一份危险。

更好的算法

是的,我们需要更好的算法、更安全,更随机地选举制,来保证链的安全。这个问题一旦提出,大家头脑风暴一番,方案可能不少。比如:

  • 还是加入选票制,减小大矿工的出块几率,提高选票权重来调节出块奖励

  • 另外设置一个出块权概率的上限(也就是把上面的软上限进一步降低)

  • 让每一个矿工在每一个高度进行多轮选举

  • ……

我个人倾向于简单地设置上限的方式来解决问题,这样代码改变较小,可以兼顾效率和工程实现。但出块权不是小事,一定要慎重考虑和分析。

期待下一次的改进吧,应该很快就会发生了。

原创文章,作者:CoinKaola,如若转载,请注明出处:https://www.coinkaola.co/news/153462/

发表评论

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