Home » f i l之最不差的“共识”

f i l之最不差的“共识”

昨天,在写fil的选举机制时候,我说今天要好好聊一聊。我不是密码学大师,我只是把我理解的东西通俗的告诉你。

 

 

第一,设计目的与现有缺陷

 

 

首先,为什么要设计共识机制。为了公平。

 

 

对于fil来说,要保证你存的数据多,你获得的奖励越多。

 

 

现有的共识机制是什么样子?最好的就是p o w机制。

 

 

好处很多,公平,不可预知,算出的这个结果,别人可以迅速的验证。加密算法就是这个特点,找这个随机数很难,把这个随机数带进去验算,很容易。

 

 

那是不是就完美了呢?答案是否定的。太耗能。效率很低。你想想,现在比特币算力已经非常高,费电,矿机也贵。

 

 

这还不是关键,全网的节点确认,这种验算结果。会非常的慢,而且越到后面,他会越中心化,强者恒强。

 

第二,目前的最优替代方案。

 

 

为了克服以上困难,天才们开始了各种各样的探索。直到19年,有了突破。这就是,多轮选举机制。

 

 

啥意思?每隔一段时间,挑选出一部分人中的一个,作为出块节点,全网共享账本。

 

 

先说这种机制的好处。

 

 

一是项链上提交零知识证明。占用空间不大。

 

 

二是节点自己算自己的,不用交互,通信成本和复杂度就大大降低,安全性提高。

 

 

三是去中心化,大量的节点都可以参与,全网50%以上的人会支持这个计算结果。抗攻击。

 

 

选举具体过程是怎样进行的呢?还是用一个班级里同学们猜数字的方法,来做个比喻。

 

 

首先,假设一个班级里有很多个同学,这些人有的聪明一点,有的不那么聪明。这些人脑子的聪明程度,代表整个网络的总算力。

 

 

游戏规则是这样的,在1~100之中,有一个数字是符合要求,于是你要不停的带数字进去试。

 

 

这个数字是怎么来的呢?完全随机。老师会在黑板上放一个带指针的转盘。然后转动这个转盘,得到随机数字。

 

 

有的人一次试两个数字。有的人一次试一个数字。这道题就是那么脑残,但你就得是带往里带,不能作弊,最关键的是,大家各算各的,中间没有联系。

 

 

于是,老师喊开始,大家开始试。试出来以后,你的工作停止,等着。一段时间后,老师会喊停,有谁算出来了?

 

 

于是算出来,同学就会举手。公布答案,网络进行验证。

 

 

注意每一轮做题结束,老师就会重置这个过程。然后重置随机数,大家进行下一轮的计算。

 

 

大概就是这样,凑合着理解。

 

 

这个规则其实很不错。首先是公平。你脑子反应越快,越聪明,你得到这个数字的概率就越大。

 

 

这个数字是随机的,没有人能够作弊。实际上,这个也是通过哈希算法来实现的。他并不是我们理解的,转酒瓶子那种随机。而是因为哈希算法的不可逆,而随机。

 

 

最后,由于同学们不需要互相进行沟通,你自己拿根笔独立算,网络通信压力小。

 

 

这就是目前接近于最优的共识方法。

 

第三,缺点在哪里?

 

 

我在上一篇中说过,大胡子胡安贝内特,其实是有理想的人。在我看来,这种方式已经非常好了。但是他还不是很满意。

 

 

就是这个原因,去年fil迟迟不上线。他还给了奖金,谁能想出来更好的共识算法,就能领赏。

 

 

问题到底出在哪儿?昨天我简单说了一下。关键就在于,各个学生算数学题的时候,他们之间是没有联系的。

 

 

你算了,我也可以算。它不像比特币,一个人算出来,立即公布区块,其他人接收验算,会立即停止计算。

 

 

有的选举轮,可能没有学生算出来。有的选举轮,有很多学生算出来。极端一点,可能所有的学生都算出来。

 

 

这就会造成一条区块链,有的地方没有区块或者空区块,有的地方又很臃肿,好几个区块在一起。无法解决。这有什么问题呢?

 

 

没有区块的时候,交易信息就会被拉长,这段时间就浪费了。同时出块呢?同一段时间内,可能很多交易信息就是重复的,浪费了资源。

 

 

所以问题的关键就在于,要解决一轮计算,只能有一个出块,一个学生算出这个题,作为大家复制的账本。

来源: 扮猪不吃虎

发表评论

3 × 1 =