可扩展的支付验证网络——当未来比特币交易数据非常大时,普遍用户节点该怎么办

2016-10-12 09:39 来源:巴比特资讯 阅读:4804
现在你要安装一个比特币完整节点钱包,同步到最新区块后,总共需要硬盘空间85.6G。对于一般的个人电脑来说,如果不是比特币爱好者,很难愿意这么浪费硬盘空间。但更这一数据还会继续增长,而且还会加快。

miner

第0章 引言

现在你要安装一个比特币完整节点钱包,同步到最新区块后,总共需要硬盘空间85.6G。对于一般的个人电脑来说,如果不是比特币爱好者,很难愿意这么浪费硬盘空间。但更这一数据还会继续增长,而且还会加快。

仅仅因为占用硬盘空间太多,如果不做改变,那比特币网络的完整节点将面临数量减少的危机,但我们希望看到的是越来越多,也就是我们希望看到比特币网络节点呈扩展趋势,而不是收缩。

比特币开发者Tom Harding在中本聪圆桌会议上做了一个演讲,针对比特币网络的扩展路线做了一个技术性的方案。我将他的演讲PPT翻译成了中文,同时对演讲内容写了一个科普式的解读。

第1章 Tom Harding的演讲《可扩展的支付验证网络》大致讲了些什么

这演讲讲的是如何将比特币网络扩容,可以理解为让网络节点更多,不是讲如何实现区块扩容的。

因为未来完整节点数据量太大,总的TXID增长太快,所以为了实现节点的去中心化,必须大量使用轻节点。轻节点指的是按照中本聪写的白皮书里提到的钱包只存储高度修剪的区块链,大致可以理解为轻节点钱包只存储和主人自己的交易相关的区块,而无关的区块统统剪掉。但这种轻节点会面临安全性的挑战。

这次演讲主要讲的就是如何部署轻节点,解决轻节点的安全性和可扩展性。

中本聪欺诈证明(Fraud Proofs)可以作为简单支付验证(SPV)的安全策略。

简单支付验证(SPV)主要要解决一个问题,轻量级客户端无法验证一个完整的区块。因此如果比特币网络最终是由少量的完整节点和挖矿节点,再加上大量的SPV节点组成。哪如何防止这些少量的完整节点发起硬分叉和双花,就成了SPV节点是否安全的关键。这是这演讲的重点内容之一。

SPV钱包有三个办法可以确认交易是否可信任,一是如果交易的输入被发现缺少大于0的输入,那就直接判断为交易欺诈;二是建立花费警告,如果交易里不含警告,就可以提高信任的概率;三是完善本地交易验证规则。(注:这里的三个方法,我只能理解第一个,后面两个我都不懂。望社区高手继续做科普)

还有一种办法提高SPV钱包的安全性,就是对整个网络的结构做优化。其中的办法叫在节点间建立“分片过滤器(split filters)”、节点循环、布隆过滤器等。(注:但我都不理解具体含义是什么。望社区高手继续做科普)

提高SPV节点的安全性还有一个办法就是强化SPV节点的功能。包含加入“证明者”、“证明发现者”等功能。(注:但我都完全不理解,这些证明者什么的具体指的是什么含义。望社区高手继续做科普)

比特币网络最终将变成少量的完整节点和挖矿节点,再配上大量的SPV节点,再配上一些交易中继站、和各种其他钱包组成的一个网络。这种网络结构就非常有利于扩展。

图片1

 

第2章 为什么这次演讲的内容值得大家关注——先讲一个故事

几年前我在首钢当过网管,管理着一个由三个局域网,总共300多台电脑组成的城域网。有一次出现大规模的网络不正常,其中一个局域网能连上互联网,但死活刷不开网页,登不了QQ。那一次事故我查找了快一个星期,最后我将整个局域网的通过交换机分片区,一次切断一批电脑,检查其他电脑的联网。最后查到有一个交换机的两个L口被同一个网线连通,因为网线很长,卷了很多卷,接网线的人搞错了,同一根网线的两端被当成了两根线。我接好线后,整个网络就恢复正常了。后来我去查阅资料,发现如果交换机被一根网线接通两个L口,就会引起广播风暴,直接对整个局域网展开了DDOS攻击。

后来的几年,随着我对网络知识的积累,我越发意识到,信息量的积累会引起网络的质变。

第3章 为什么这次演讲的内容值得大家关注——目前比特币系统存在的问题

我认为目前比特币系统主要存在这么几大问题:处理交易量有限(被1M区块限制死了);协议进化是非常缓慢,开发是非常低效;没有经历过大规模的广播风暴。前面的两个问题,相信大家都非常明白,最后一个问题其实很模糊,而且非常容易被人忽视。

为什么我会觉得大规模的广播风暴是对比特币的一种挑战呢?

因为比特币经历过延展性攻击辅助了一次大规模的压力测试,是在2015年末发生的。那一次攻击,因为有延展性漏洞的辅助,我发送和接收了几笔比特币,但均过了超过十天才完成。那一段时间,几乎所有的比特币钱包全部崩溃了。比特币网络完全不像个可以用的样子。这里的崩溃指的是当时比特币网络完全无法正常处理交易,无论你支付多少手续费,都有大概率无法得到确认。还有,崩溃不是指真正爆炸死掉了。

后来我仔细分析过延展性漏洞,发现导致钱包崩溃的原因根本就是压力测试形成的广播风暴,延展性漏洞只不过是放大了广播风暴的量级。说简单一点是这样,目前比特币网络一秒钟最高能处理7笔交易,平均只能处理3笔。如果突然网络上发起每秒300笔交易,网络上的钱包节点就可能处于崩溃边缘了,无论你支付多少手续费,都没有用。

就在那次延展性攻击下的压力测试,我搜索了大型网络设计的知识,我确信就目前的比特币网络在超大规模的广播风暴下,确实很难免于崩溃,虽然我的知识体系无法严格对这个进行论证。

这也是为什么,在那一次对大型网络设计的学习后,我坚定地站在了大区块这一边。因为小区块下的比特币网络,会在广播风暴下不堪一击。

应对广播风暴并不是指我们加大区块的交易容量就够了,而是目前比特币的点对点网络是一种比较“简单”的网络。说“简单”是因为我没有找到合适的词来描述,我的意思是目前的比特币网络节点都是和家庭电脑,最高是服务器电脑组成的。服务器电脑,也就是在阿里云,亚马逊云这样的云服务提供商上建立的节点。我相信这样性能的节点是无法处理超大规模的广播风暴的。

就比如现在的互联网是能处理超级大的信息广播的。互联网的节点包括了大量的家庭电脑、各种服务器、超级数据中心、还有海量的交换机和路由器。交换机和路由器这种职业化的信息转接和发送机器,就是处理信息广播风暴的关键设备。(注:本文前面的图片就是Google的超级数据中心)

比特币目前的网络完全没有类似现在的交换机和路由器的设备,发送交易、接收交易、广播区块、接收区块,现在还完全是依靠的是家庭电脑和服务器电脑。这种网络结构不可能成长为一种大型的网络结构的。

当比特币网络面临超级大的交易广播时,恐怕目前的比特币网络结构是无法应对的。理想上的纯粹去中心化,所有人都是对等的节点,这种网络结构是死路一条。除非我们的前程就是每秒3笔交易。

纯粹的对等网络是无法大规模扩展,比如我们现在有大约6000个节点,服务着大约全球百万级别的用户。如果增加到一百万个节点,甚至一千万个节点,我看到那时候这种对等网络就挂掉了。

比特币网络结构以后一定要有超级节点,能够处理海量的数据。它能够存储所有的数据。这可不单单存储区块链数据,它还要能承担大量的区块链浏览器和SPV钱包的数据访问的查询工作。

比特币网络结构以后还一定要引进如互联网上的交换机和路由器一样的设备。单纯的使用家庭电脑和服务器来完成广播交易是无法应对广播风暴的。类似的比特币交换机和路由器就专门用来发送和转接交易,它们不需要存储区块数据。就像矿机就承担哈希计算那样,比特币交换机和路由器就只需要发送和转接交易。不过实在对不起,就目前我的知识结构还无法描述清楚这种路由器和交换机具体的工作。

第4章 为什么这次演讲的内容值得大家关注——这次演讲给出了一个比特币网络发展的方向

第3章告诉我分析了比特币目前的网络结构是很脆弱的,这种脆弱性一是无法承接大规模的广播风暴;二是这种结构本身无法扩展,也就是节点数量无法大规模增加,否则网络就会出现问题。

这次Tom的演讲就是直接指向如何加强比特币网络的健壮,和如何扩展比特币网络节点规模。这是和我们每一个比特币爱好者都休戚相关的。

比特币的价格也和其网络结构有紧密的相关性。就目前的网络结构无法大规模扩展网络结点这个事,其本质上就是说我们不可能有足够多的用户去运行节点,哪怕是已经有很多用户了。这个网络节点可不是仅仅指完整节点,甚至是指轻钱包节点数量也是不可能大规模的扩展的。就比如现在我们有6000多个完整节点,可能有上百万个手机等终端装有轻钱包节点,而同时在线的轻钱包可能只有数万个。如果这个在线的轻钱包数量增加到数千万个,那比特币网络就可能会无法正常工作。

如果比特币想要获得几百倍,甚至一千倍的价格涨幅,目前的比特币网络结构一定要改良,否则就作梦去吧。

第5章 让我们来关注这次演讲是吧

这次演讲的PPT我翻译成了中文,贴在这里,请大家过目。

1

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

PPT英文版pdf,和我翻译的pptx,可以在下面的链接下载。

链接: https://pan.baidu.com/s/1geKstiV 密码: 998e

(感谢币看老板@币看-老刘 和网友@vatten 对翻译的校核)


声明:此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。本网站所提供的信息,只供参考之用。

点击阅读全文