以太坊真全节点不足100个,欺诈证明如何弥补网络的安全性?
关于比特币和以太坊的节点对比,社区最常用的方法,是使用节点统计网站的数据,例如,当前bitnodes.earn.com统计的比特币节点数是10459个,而ethernodes.org统计的以太坊节点数则是8580个。乍看之下,两大区块链网络似乎平分秋色。
(比特币节点数)
(以太坊节点统计数)
实则不是这样。
我们首先需要了解的背景是,当前,完整的比特币区块链交易数据大小约为200 GB,而完整的以太坊区块链数据则达到了比特币的10倍,接近2TB。
以太坊的状态爆炸,使得用户要完整存储数据变得不现实,也因此,当前以太坊的8000多个节点,绝大多数是修剪过的全验证节点,当然,为了好听一些,以太坊官方还是将这类全验证节点简称为全节点,而把完整存储历史状态数据的节点称为档案节点(Archive Node),而在今天,以太坊全网的档案节点只剩下不足100个了。
而比特币的全节点,其实就相当于以太坊的“档案节点”,当然,比特币也有类似的修剪节点,这是在Bitcoin Core 0.12.0 版本客户端之后提供的一种功能。
而这种修剪节点,同样可独立完成比特币转账确认,但是它并没把整个区块链都保存到本地,也就无法提供完整的区块链给其它节点。
可以说,无论是比特币的全节点,还是以太坊的档案节点,它们都是各自网络的主心骨,如果网络完全失去了它们,网络的安全性将大大降低,而这类节点数越多,就代表着网络的抵抗性越强。
而另一种只下载区块头交易或状态数据的节点,我们称之为简化支付验证(SPV)节点,又称轻节点,而比特币和以太坊,都拥有此类节点。(目前,研究者们又提出了简化版SPV节点,又称超轻节点,例如FlyClient)
在正常情况下,SPV轻节点的运行是良好的,但当多数全节点出现不诚实行为的情况下,轻节点的安全保障就会变得较弱。例如,尽管在比特币或以太坊网络中的多数非诚实节点,目前只能审查、反转或重排序交易,如果所有的客户端都使用的是轻节点,多数共识将能够相互勾结,产生包含凭空创造货币的交易区块,而轻节点将无法检测到这一点。另一方面,全节点将立即拒绝掉那些无效区块。
而由于以太坊的数据太过庞大,其会遇到的挑战也就越大,为此,以太坊创始人等研究者就提出了欺诈证明方案和数据可用性证明系统(论文:欺诈证明:通过多数非诚实节点,实现最大化轻客户端安全性并扩展区块链)。
简单说,如果以太坊网络有一个诚实的档案节点(真全节点),它愿意生成在最大网络延迟的情况下传播的欺诈证明,然后轻客户端就能够接收和验证来自全节点的无效区块欺诈证明,而数据可用性证明系统,则负责让轻客户端能够保证全节点生成欺诈证明所需的区块数据是可用的。
通过这种方式,使得以太坊轻客户端的安全程度能够向全节点靠近,当然,这只是在理论上的。
总的来说,就目前的情况而言,比特币的节点健康度是要好于以太坊的,而后者想要解决这个问题,就需要付出更多的努力。
文:洒脱喜
稿源(译):巴比特资讯(http://www.8btc.com/eth-full-node)