比特币区块扩容需要平衡,反对硬分叉
编者按:原作者是彼得.乌沃(Pieter Wuille), 比特币top 5核心开发者 ,当前所属机构:Blockstream 。
5月7号,Matt Corallo写到:
最近加文在http://gavinandresen.svbtle.com/上面刷了很多帖子,强烈的建议增加区块的上限。但是据我所知,在这个邮件列表上几年来却没有过关于扩容的讨论。
感谢提起这个话题。为了避免内容变水,我将尽量保持我的讨论简明扼要。尽管如此,我可能还是会不可避免的重复某些已经被发表过的观点。
总的来说,我是支持增加区块体积的:随着技术的发展,没有理由把系统建立在不能与时俱进的东西之上。到目前为止,我没有就这个问题发表过多少评论,原意是避免陷入公开的辩论中。但是,目前发生的,关于区块问题的讨论,让我感到很不安。
*有争议的硬分叉。我想,今天本邮件列表出现这么多讨论,本身已经证明,这是个有争议的议题。抛开个人是支持还是反对不谈,我不认为我们可以做实际上存在很多争议的硬分叉。其结果——不管是变成势均力敌的两条链,之前出现的币可以同时在两条链上消费(这完全违背了比特币的初衷),还是争议中弱势的一方不得不升级成他们不喜欢的样子——事实上都是给予了开发者不该拥有的权力。引用某人的话:“我不曾同意成为央行委员会的一部分”。
*扩容的理由是:“需要”。如果“我们需要区块有更大的空间”是对比特币进行升级的理由,那么20M没有理由成为终点。20M只是比1M大一点,并没有增加什么基本性的变化。ChangeTip在1M区块的情况下没有将他们的微额支付放倒区块上,我怀疑当区块增大到20M,他们可能就会这么干了。区块扩容的理由应该是:“因为我们接受这样的权衡”。
*对权衡的歪曲。你可以尽情的争辩说,更大的区块没有什么特别的坏处,一切都会好好的。事实是,大区块会损害一些东西(看下面的细节),我们应该分析这些影响,诚实的面对,将其看做我们为了比特币系统更好,而做出的权衡。如果你单单是问人们,是不是想要区块处理更多的交易,当然你会听到“是”。正如如果你问人们是不是想要少交些税,我保证绝大多数都会举双手赞成。
*矿业中心化。据我所知,当前,没有技术能做到以足够快的速度来传播和确认20M的区块。为解决这个问题,有一些研究正在进行(包括加文的基于IBLT传播,还有格雷的区块网络编码),但是,我不认为我们应该以未经证实的想法为基础,构建整个系统经济的未来。如果没有解决传播和确认大区块的成熟技术(甚至有这些技术),矿工可能会自发限制他们铸造的区块的大小,以达到快速传播的要求,如果这样的事情发生,更大的,互联更好的,地理上更接近的矿工团体就会获得竞争优势,因为他们可以铸造大一些的区块。我必须指出,这样的发展并没有任何邪恶可言——个体矿工决定对自身最佳的区块大小,导致的简单的反馈结果就是,更大的区块最好和联系更加紧密的算力结合在一起。如果我们不想要矿工获得这样的能力,“我们”(使用全节点的人)应该寻求限制这种能力的措施。其中一个限制方式之一就是区块大小限制(不管是多少)。
*使用全节点的能力。一度很多人说”为了使网络更加去中心化,我们需要鼓励大家运行全节点。”我非常不喜欢这种说法。运行1000个用不到的节点只是使全节点下载区块链更加方便了一些,或者是SPV钱包获取交易更方便一些(或者被Sybil攻击更方便了一些……)。但是话说回来,*使用*一个全节点来确认你的商业(或者个人)交易,是给了你一种力量,即,使用一种不需要相信*任何人*金融系统。并且,使用全节点还让你拥有系统规则给予你的力量,即任何人想要改变这个系统,他要说服你升级才行。而事实是,即便代价不是特别大,20M的区块也将改变人们使用全节点的能力。
*扭曲的改进激励。我想,我个人可以说,我负责了过去几年中,比特币核心大多数的性能改进。现在比特币核心还有巨大的改进的空间——比如愚蠢的等待循环、单线程网络处理、巨大的内存占用等等等等,在我看来这些问题都没有受到应得的重视。除此之外更需要改进的比如优化区块传输协议,支持不同安全/可扩展权衡的正交系统,发展全确认选项……尽管叫我逼逼叨好了,我还是要说,除非遇到实际问题的逼迫,大概这些改进都将发生在遥远的未来。增加区块大小,只是一种足够廉价的,暂时维持一切如常的手段,却同时对整个系统(不仅仅是货币系统)增加巨大的消耗。
*交易费和长期激励。我将这一点放在最后,不是因为我觉得这一点不重要,而是因为我没有完全想明白这件事。让其他人补充讨论吧。
我不认为1M是最理想的。区块大小是交易的延展性和系统的可验证两者妥协的结果。一个每天只有10笔交易,使用袖珍计算机验证的比特币系统是没用的,这样的交易量只能用于大型银行的清算。一个能处理星球上卖出的每一杯咖啡,但是需要谷歌那样巨无霸的数据中心的比特币系统,也是没有用的,因为他无法对抗VISA式的设计。比特币系统的实用性需要我们做平衡,没有可以让所有人都满意的选择。我们只能选择平衡点所在的地方,我们必须明确的一点是,区块的增大应该是权衡的结果,为这个权衡付出的代价包括硬件代价、匿名性的降低、独立性的降低、运行全节点的人更少……
让我们做出明智的选择吧。
Scan QR code with WeChat