以太坊的多客户端理念是一种去中心化,就像一般的去中心化一样,人们可以关注架构去中心化的技术效益,也可以关注政治去中心化的社会效益。最终,多客户端的理念是由两者驱动的,并为两者服务。技术去中心化的主要好处很简单:它降低了某个软件中的一个错误导致整个网络灾难性崩溃的风险。2010 年比特币溢出漏洞就是这种风险的典型例子。当时,比特币客户端代码没有检查交易输出的总和是否溢出 (通过求和超过最大整数 264-1,使其归零),所以有人做了一笔交易,给自己数十亿比特币。
这个漏洞在几个小时内就被发现了,修复工作很快就完成了,并迅速部署到整个网络中,但如果当时有一个成熟的生态系统,这些币就会被交易所、桥和其他结构所接受,攻击者可能已经带走了很多钱。如果有五个不同的比特币客户端,它们不太可能都有相同的错误,因此会立即分叉,而分叉中有错误的一方可能会失败。
使用多客户端方法来最小化灾难性错误的风险是有代价的:相反,你会遇到共识失败错误。也就是说,如果你有两个客户端,则存在这样一种风险,即客户端对某些协议规则有细微的不同解释,尽管这两种解释都是合理的并且不允许偷钱,但分歧将导致链分叉为两半。在以太坊的历史上,这种类型的严重分叉曾经发生过一次(还有其他更小的分裂,其中运行旧版本代码的网络的很小一部分被分叉了)。
单客户端方法的捍卫者认为,共识失败是不采用多个客户端实现的原因:如果只有一个客户端,那么这个客户端就不会有不同意见。他们关于客户数量如何转化为风险的模型可能是这样的:
