15

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

 4 years ago
source link: https://www.jinse.com/blockchain/579799.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK