注册
关闭
区块链大帝

区块链大帝

发布于 2020-02-02 阅读数 3646

Filecoin实现四个客户端,系统更加安全!

近日Filecoin的项目方协议实验室发布了一则看起来不显眼,但实则非常重要的信息:

Filecoin协议又有了另外两个客户端实现:由ChainSafe团队用Rust开发的Forest和由Soramitsu团队用C++开发的Fuhon。也就是说到目前为止,Filecoin一共有了四个客户端:

用Go语言开发的Go-filecoin;

用Go语言开发的Lotus;

用Rust语言开发的Forest;

用C++语言开发的Fuhon;

这对基于区块链的去中心化项目而言是非常重要的。Filecoin有四个客户端是什么意思呢?

通俗地说,我们可以这么理解:如果有一份非常重要的货物需要从北京运到广州,这份货物是如此重要,乃至于运输过程中的风险要尽可能地减到最低。

对此我们有两种办法:一种办法是我们用四辆车,每辆车都运一份同样的货物,但是四辆车都走同样的路线;另外一种办法是我们用四辆车,每辆车都运一份同样的货物,但是四辆车每一辆都走不同的路线。

显然从安全和分散风险的角度看,我们一定会选第二种方案,因为如果用第一种方案,一旦那条路被堵死,四辆车就统统无法到达目的地。如果用第二种方案,除非四条路都堵死,我们才无法达到目的地。

在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爱好者和支持者来说是一大利好。

  • 0
区块链大帝
区块链大帝

0 条评论