“毒药区块”是比特币的扩容方式
听起来很疯狂吧?如果你意识到比特币之所以可行是因为它是一个经济系统的话,那就不疯狂。比特币中所有属于残酷的市场竞争的范畴内的机制都是可行的,而那些不属于该范畴的,则是不可行的。
这被视为不要移除区块上限的原因,但它是错误的。“我们不能提高上限,不然矿工将被迫进行工作!”这并非是讽刺的说法,这是没有意识到一些矿工被甩在了后面,而另一些矿工造成了这种现象,而这正是比特币所必需的运行方式。
有呼声说不要将节点代码的优化置于残酷的市场竞争这下,因为显然有些人认为这会产生“致命”的后果-这种社会主义思维方式认为安全带制造商之间的残酷竞争会导致安全带要了你的命。任何懂经济学的人都知道这与真相相差了十万八千里。
Core式的社会主义者之所以进行这样的号召,他们的心态是“节点代码太重要了,不能留给市场,我们需要像撒玛利亚人一样好心的开发者为所有矿工提供这些服务,这样就不会使任何矿工掉队。”
倘若蠢行不受罚,终将蠢货遍天下。—— 赫伯特斯宾塞
同样,保护那些没有能力或不愿意适当优化其节点软件矿工的话,其最终结果是比特币里将充斥着非专业的矿工,这些矿工无法将比特币推广至全世界
如果没有升级网络连接性和代码库的激励,比特币关键的审核流程是缺失的,而这是一个将矿工们提炼成长尾式的专业人员所必需的流程,只有这样的专业人员才拥有快速且安全地驾驭这辆比特币列车所需要的一切技能,才能将比特币一路送达至十亿用户。
我在此向所有人提出挑战,任何人都可以来阐述在网络连接性和节点优化方面仍然对落后的矿工进行实打实的补贴(不是指协议优化,而是平行验证等技术)的情况下,比特币的专业化该如何进行?尽管看起来很痛苦,比特币扩容的唯一方法是建立在那些不作为矿工的破产后的躯壳之上的。那些讨厌鬼们别想上车。
这意味着与孤块战斗,即使每次是一点点。它意味对迅速扩容进行压力测试。虽然过快地淘汰过多的算力并不符合任何人的利益(算力变得太小),但是以一种比大多数该行业内专业从业者稍快但是可控的速度进行淘汰的话,却是有益的。事实上,正如Satoshi所说的那样,“它最终将成为数据中心和大型服务器集群”,任何人如果接受了这个观点,那么都不应该认为所需的改变是难以置信的困难的。
事实上,人们现在还在通过引用笔记本电脑节点的测试来反对128MB,这才是真正的问题所在。尽管Core的全节点宗教信仰都是胡编乱造的,但是其仍旧阴魂不散。这也被称为Blockstream综合症,就像是斯德哥尔摩综合症的一种延伸(俘虏开始同情他们的劫持者)。
无论出于什么原因,批评者的说辞总会回归到,有些基础设施“没有准备好”移除上限,好像这是一件坏事一样。这明明是一件好事!
首先,如果我们要等所有矿工都做好准备,那我们要等的时间可就长了。由市场决定的话,其正确的进路是在51%到大概90%的矿工准备就绪了之后就向前推进,这正是我们可以预期到的区块无上限之后的情况。甩掉少许而不是大批掉队的矿工这种激励措施是有利可图的(一次淘汰太多BCH算力的话,就给了BTC矿工算力攻击的机会;从长远来看,它会鼓励专业人员的进场并替换失败的矿工,使BCH更安全)。
其次,“基础设施”这种整体僵化的提法忽视了使比特币运作的秘诀:矿工之间是相互竞争的。我们预计到了有些人是没有做好准备的!如果没有那些失败的矿工,比特币矿工怎样才能更专业?只有淘汰或改造落后者才能确保比特币最终拥有专业的基础设施。
这种审核过程是不可避免的,也是必不可少的,它必须应用于我们希望看到专业化的比特币的所有方面,包括节点软件。
现在撇开一个矿工用他自己的0费用交易填满他的区块的情况(这种情况的应对方式是,其他矿工拒绝包含太多0费用的低币龄*的区块),GregMaxwell的“大块攻击”,大矿工试图用超大区块来吓唬较小的(资本不足的)矿工,由于这些小矿工的网速慢,网络中有相当大一部分人无法处理这些区块,而实际上比特币正是以这种方式进行扩容的。
这不是攻击行为,而是压力测试,没有这种压力测试,比特币就无法扩容。他所谓的攻击行为其实是扩容的解决方案,根本不是问题。在比特币中是鼓励压力测试的,这种方式能够揭露那些虚张声势的懒惰矿工。你赌上一些钱来搞一次“攻击”,看看有哪些矿工是迟钝的,然后拿走他们的区块奖励。
迄今为止还没有矿工够胆去做这种事,但是他们马上就要做了,因为比特币在几年内将再次减半,到时手续费将不足以保证比特币的安全,那比特币就完了。正如大区块支持者对Core说的那样,面对迎面而来的火车,任何“保守主义”都没有逃生的空间。
最后,我留下一个思想实验。想象一下,比特币中的志愿开发者社区慷慨到令人难以置信,它为所有矿工提供ASIC设计,矿池软件以及各种算力优化,以至于矿工只需购买ASIC矿机并将其插上电就行了,其他的什么都不用懂,并且也完全没有必要自己创新ASIC设计,因为这些专业志愿者们在各个方面都更胜一筹。自然而然地,这种境况最终会因为像三星一样专业的选手进场而被终结。
由于得益于长时间而又自负的志愿者服务,安全在此被排除在残酷市场竞争的范围之外(一开始有志愿者是没有问题的,就像小孩并不是出生就是成年人,一开始就是需要被抚养的),这些矿工就会因为无资质,无准备,无法增强他们的算力而被三星摧毁,或者比特币可能是被某政府的51%攻击杀死。
这里的重点是总会有一个成型期,然后是成年期。成长的过程就是一个对施舍的依赖越来越少的过程,并且越来越多地暴露于残酷的现实世界。比特币何时才能长大?减半对比特币的安全性做了时间限制,过度保护的家长(那些不想移除区块上限的人)-表面上看起来是保守的-但是可能最终会使那些不顾一切的人(Honeybadger)在其象征性母亲的地下室里窝藏了太久以至于他不能完成他的使命。
* 如果你的回答是,“这些功能现在在任何客户端中都不存在”,我认为你误解了这篇文章的重点:再说一次,这是一件好事。让那些对简单的需求都无法胜任的矿工被淘汰吧。我们真地想要这些懒散的矿工吗?如果这是你想要这样的矿工,而你又是个开发者的话,那请你自愿为他们写代码。如果这你不想要这样的矿工,请说服他们来雇佣你。我认为这样的话工资会高得多。
如果你的回答是,“但这意味着一些矿工可能会意外地被孤立而且大喊犯规”,那么我要再次说明,这是件好事。创造区块本质上是一个投机过程。换句话说,这是一场赌博,这是设计好的。这就像凯恩斯主义的选美比赛,每个矿工都试图挖出可让他们获利最多的区块,同时还不能显著地增加他们被孤立的风险。用低币龄的0费用交易填满区块可能会让你被孤立。矿工没有义务事先告诉其他矿工他们对每个区块的选美的标准,尽管到目前为止他们还是告诉了其他矿工这些标准。矿工们总是可以以任何原因来自由地孤立任何区块。通常来说他们保持一致的,良好的广播规则是一种礼貌而非一种必须。防止普遍的混帐行为最好方式不一定是提前告知惩罚措施,但即使是这样,矿工也可以做到这一点(让他们自己去搞清楚,就像他们搞清楚算力那样-除非你有论据说明不存在可行的解决方案或者是专业机构在合理的时间内也很难给出相应的解决方案;这才是标准的反对观点,而不是“呃,志愿者代码还没这种功能”)。
如果你的回答是“那会增加孤块率”,没错,孤块现在每天都有,所以这肯定不是什么不得了的事情。你可以把它视为一个排毒的过程。它可能会给网络带来一些微小的压力,因为迟钝和愚蠢的矿工将受到惩罚,但同样的,矿工仍然可以选择这种级别的孤块率,这种动力与凯恩斯主义的选美竞赛是一样的。孤块是比特币得以成功运作以及得以扩容的关键原因,但如果孤块率会过多地干扰了正常服务(如果你认为零确认没问题,那这不会产生太大影响),这也会在选美比赛中被考虑在内,并在惩罚恶行产生的收益和消化毒药区块产生的成本间达到平衡。违规的矿工也可以被拉出白名单,返回到随机节点状态,但为什么我们要溺爱这些矿工,去为他们思考能让他们变得更专业化的策略呢?希望现在大家都明白了,所有这些论点都是中央计划行为,至少我认为我们早已渡过了自然生活的早期需要父母抚养的阶段,再这样下去是有害的。