近日Filecoin的项目方协议实验室发布了一则看起来不显眼,但实则非常重要的信息:
Filecoin协议又有了另外两个客户端实现:由ChainSafe团队用Rust开发的Forest和由Soramitsu团队用C++开发的Fuhon。也就是说到目前为止,Filecoin一共有了四个客户端:
用Go语言开发的Go-filecoin;
用Go语言开发的Lotus;
用Rust语言开发的Forest;
用C++语言开发的Fuhon;
这对基于区块链的去中心化项目而言是非常重要的。Filecoin有四个客户端是什么意思呢?
通俗地说,我们可以这么理解:如果有一份非常重要的货物需要从北京运到广州,这份货物是如此重要,乃至于运输过程中的风险要尽可能地减到最低。
BTC突破18100美元关口 日内涨幅为4.53%:火币全球站数据显示,BTC短线上涨,突破18100美元关口,现报18101.13美元,日内涨幅达到4.53%,行情波动较大,请做好风险控制。[2020/11/18 21:13:51]
对此我们有两种办法:一种办法是我们用四辆车,每辆车都运一份同样的货物,但是四辆车都走同样的路线;另外一种办法是我们用四辆车,每辆车都运一份同样的货物,但是四辆车每一辆都走不同的路线。
显然从安全和分散风险的角度看,我们一定会选第二种方案,因为如果用第一种方案,一旦那条路被堵死,四辆车就统统无法到达目的地。如果用第二种方案,除非四条路都堵死,我们才无法达到目的地。
在Filecoin的这个例子中,也是同样的道理。有四个客户端意味着有四条不同的路径都可以用来运行Filecoin系统,即便其中一个,两个或三个客户端都出故障了,只要还有一个客户端是好的,Filecoin整个系统仍然可以正常运行;
如果只有一个客户端,那一旦这个客户端出故障,Filecoin整个系统就瘫痪了。
这是区块链系统开发中常用的一种去中心化方式。
任何软件都是有漏洞的,这也是为什么黑客永远存在,永远都能找到软件的漏洞。
在一个区块链公链中,如果整个系统所有的节点同时都只运行一种客户端软件,那么一旦这个客户端中的漏洞被黑客发现,利用来攻击系统,那就意味着整个系统中所有的节点都可能受到攻击,后果将极其严重,这是区块链的系统风险,也是一种“中心化风险”。
因此为了避免这种系统风险,不少区块链公链系统都会鼓励采用多种客户端。
在这方面,以太坊就是一个典型。
以太坊现在就运行着不同的客户端。现在的以太坊系统运行得最多的两套客户端系统是用Go语言编写的go-ethereum和用Rust语言编写的Parity。
这两套系统共同运行支撑的以太坊就曾经经历了一次重大的考验:在2016年以太坊DevCon2.0开发大会前夕,黑客发现了go-ethereum客户端的漏洞,并利用大容量垃圾信息攻击,导致go-ethereum客户端大量崩溃,只有Parity强势幸存。
在这场攻击中,如果以太坊仅仅只有一个客户端go-ethereum,那后果将不堪设想。
在正在开发的以太坊2.0中,这种多客户端运行以规避系统风险的做法更是被发挥得淋漓尽致:以太坊客户端现在同时有8个团队在用不同的语言进行开发,这意味着未来以太坊2.0上线后,可能整个网络运行着8种不同的客户端。
黑客要攻击以太坊2.0,除非同时发现这8个客户端的问题并同时攻击它们,这个难度恐怕将是难以想象的。
Filecoin四个客户端的出现不仅说明Filecoin的系统安全将得到极大加强,更说明越来越多的团队对Filecoin项目的看好和支持,这对Filecoin爱好者和支持者来说是一大利好。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。