我们都听说过全节点数量越多,网络安全性越高,也就越去中心化。对于用户来说,运行一个全节点也就拥有更多的自主权和安全性。因此有些用户就会选择自己运行一个完整节点。但是真的需要人人都去运行自己的全节点吗?
对于BCH来说,网络节点分成三类:挖矿节点、不参与挖矿的完整节点和SPV节点。挖矿节点包含了BCH网络的所有功能,通过运行Bitcoin ABC这样的节点软件和矿池软件并运用矿机来竞争获得生产区块打包交易的机会。不参与挖矿的完整节点则是使用服务器或普通电脑运行的Bitcoin ABC/Bitcoin Unlimited这样的节点软件来验证交易。与挖矿节点相比,后者除了不生产任何区块,其他功能和前者一样。而SPV节点则一般是用手机或电脑安装的钱包软件,比如Breadwallet,比太这样的就是app,主要是通过完整区块链节点和本地区块头来验证交易并具有钱包功能。
对于很多用户来说,运行这些全节点最大的功能可能不是维护这个网络的健康,而是它内建的钱包功能。从上面的节点分类可以看出,对于仅使用钱包功能的用户来说即使不运行完整节点使用SPV节点也是可以的。其次,运行一个全节点还需要一定的成本。首先需要一定大容量的硬盘和运行空间,其次还需要一定速度的带宽。尤其是比特币现金因为区块比较大,每个区块所处理交易量也会比较大,所需的存储空间也是比较大的。为了解决BCH因为区块过大造成的节点存储问题,BCH社区还在积极开发UTXO证明。因此从用户角度来说单纯的为了钱包功能而运行全节点是不经济,也没有必要的,为了安全性用户保存好自己的私钥就可以了。
从全网的安全性和去中心化的角度来说,虽然全节点数量越多,安全性和去中心化的程度也越高,但是普通用户的全节点对去中心化无益。没有算力的节点去验证和自己无关的交易是没有意义的,即使验证了也做不了任何事情来改变这个网络,最终还是要选择跟随算力挖出来的链,这种效果和 SPV 钱包是一样的。关于这个问题中本聪也曾经表示:把“普通用户”和“拥有服务器集群的专业人士”区分来开。初期没有用户的时候,所有人都运行节点,用CPU挖矿。但是成熟以后,普通用户只需要运行SPV钱包(轻钱包),而把运行节点的工作交给“拥有特殊设备的服务器集群”,因为他们“尝试获得新币”。也就是说,比特币这个网络的去中心化,只是存在于矿池和矿池之间的这个网络里,和没有算力的用户没什么关系。没有算力的用户,也不需要运行比特币节点。而且当节点数量达到一定的值的时候,去中心化的安全性就足够了,把节点从1万个加到10万个,甚至100万个,把去中心化安全性从 99.9999%提高到 99.999999%是没有意义的。
因此,虽然BCH社区推出了UTXO证明来解决BCH的节点存储问题,能够让每一个人都可以运行一个属于自己的节点,但是这并不意味着我们每一个人都需要运行自己的节点。不管是从全网的角度来看,还是个人角度来看都是不必要的。
领取专属 10元无门槛券
私享最新 技术干货