关于全节点的几种错误认识

Unknown view 88 2016-2-14 02:42
share to
Scan QR code with WeChat

1:全网一共只有约5500个全节点

这一数据来自bitnodes.21.co,其数据是通过探测每个节点的开放端口来获得。

问题是,并不是所有的节点都开放端口,可以被探测到。这要么是因为他们是在防火墙后面,要么是因为他们的用户通过设置阻止节点去接受连接请求。

没人知道有多少全节点,因为很多人并不知道如何在防火墙后开放端口,而带宽是要付费的,所以很可能一些节点关闭了端口,这些节点至少有几千个。

端口开放的节点可以上传区块到新的全节点。除此之外,它们和关闭端口的节点没有两样。但是因为开放端口的节点可以被探测得到,而关闭端口的则不能,比特币社区的有些人就错误的认为只有那些开放端口的节点才是有用的。

2: 节点的数量很重要,而且/或者目前全节点数量太低了

开放端口的节点,通过向新的节点传送历史区块进而帮助它们建立而对比特币网络起作用。它们是(比特币网络带宽容量)的衡量。现在,网络带宽容量并不是制约因素,即使未来成为瓶颈,也可以通过租用云服务器来迅速增加其数量。

问题所在不是带宽和连接,而是信任,安全和隐私。以下将详细介绍:

全节点可以检查比特币规则的执行。这些规则包括 - 货币增发的时间表,禁止双花,不被掌握私钥者拥有的币禁止转账,以及其它确保比特币网络运行的规则 - 例如难度。

全节点确保比特币的无需信任。你不用再去信任一个金融机构,例如银行或者PayPal, 你可以容易地在你自己的电脑上运行一个软件。简单的说,唯一一个重要的节点是你运行的那个。

3:运行全节点没有经济激励,整个网络建立在无私奉献的利他主义之上

事实是理性比特币使用者有自私的动机来运行全节点,并使用它来作为自己的钱包。

使用一个全节点作为你的钱包是仅有的方法来确保所有的比特币规则没有被违背,这些规则包括未经拥有者许可禁止转账,双花禁止,以及不按时间表增发禁止,以及所有的让系统运行的规则(例如难度)。所有的其它种类的钱包都依赖于信任第三方的服务器。

所有的这些全节点的检查都增加了安全性。很多针对轻量钱包的攻击方法都对全节点钱包无效。这不是没有事实基础的迫害妄想症,而是有很多实例证明的经验之谈。在2015年七月4日发生的事故性区块链分叉影响了很多种钱包。这里是一个关于此事件的维基条目:https://en.bitcoin.it/wiki/July_2015_chain_forks#Wallet_Advice

注意及时更新过的节点软件完全没有受到这次分叉的影响。所有的其它类钱包要么需要额外的确认,要么要确认第三方机构运行的是正确的版本。

全节点钱包也是隐私保护程度最高的使用比特币的方式,因为没有人知道这个比特币地址是属于你的。所有的其它轻量钱包必须要向第三方服务器发送请求,因此都会泄露你拥有这些地址的信息。Electrum的服务器会知道哪些地址是属于你的并把他们整合在一起。尽管采取了布隆过滤(bloom filtering), 基于BitcoinJ的轻量钱包并不能够提供针对钱包所连接的节点或者线路侦听的太多隐私保护。

在很多应用场景中,这样的隐私并不是必需的。但是一个运行全节点并用其作为钱包的重要的原因是获得最大的隐私保护。

4: 我可以在一个云服务器上设置一个节点,然后就不用管了

要获得运行全节点的好处,你必需使用它作为钱包,并且使用自己控制的硬件。

很多这样做的人并不把全节点当做自己的钱包。不幸的是因为比特币和Bittorrent的名字很像,有的人以为上传功能对一个健康的网络是最重要的。正如我之前解释的那样,带宽和连接不是今天我们必须要面对的问题,而信任,安全和隐私却是。

5: 运行全节点不应该被推荐,多数人应该运行轻量客户端

这是2012年的主流观点,但是从那以后,全节点软件在用户体验方面改进了很多。

如果你的硬盘不够大,你可以启用“精简”(Prunning)功能。Core的0.12版本,这个功能开启的同时,用户也可以使用钱包功能。这样的话大约需要900MB的硬盘空间。如果你没有足够多的带宽来上传区块给别的节点,也有一些选择来降低带宽的要求。这包括限制连接,带宽目标?(Bandwidth targetting)以及关闭侦听。

Core0.12还有一个新的选项,就是Blocks only, 开启后节点将不再下载没有被确认的转账,而仅仅下载新的区块。通过过滤掉未被确认的交易,该功能降低带宽使用量超过50%。

新节点和区块链同步从2012年以来也改进了很多。像区块头部优先和libsecp256k1都降低了初次同步所需的时间。

通过设置-dbcache参数为3000可以将整个UTXO set放置在内存,这将减少从硬盘读取数据所需的时间,并提高同步所需要的时间。测试显示在使用Core0.12或以后版本的情况下,同步区块链不超过3.5小时。

原文:https://www.reddit.com/r/Bitcoin/comments/44rx5k/psa_clearing_up_some_misconceptions_about_full/

btcfans公众号

Scan QR code with WeChat

From the Internet
Disclaimer:

Previous: 为何比特币和区块链仅处于起步阶段 Next: 我对比特币的新思考

Related