[译文]Bitcoin Cash路线图
注:作者是openbazaar的开发者,开发了Bitcoin Cash Wallet,这里描述的路线图是作者从邮件组和Slack中总结的,并不是官方给出的路线图
bitcoin cash
比特币现金从Bitcoin Core中分裂出来已经一个月了,按照任何合理的标准来看,比特币现金都应该被定义为是成功的。在刚分裂的时候比特币现金存在着巨大的不确定性。
有人会支持新的分叉吗?
有交易所交易吗?
它能在最初的难度调整中存活下来吗?
会有矿工在上面挖矿吗?
所有这些问题的答案最终都是肯定的。
尽管比特币社区内的一些大嗓门已经做出过预测:比特币现金的价格不会超过1美元,但目前它的交易价格约为622美元,市值为100亿美元,这让比特币现金成为第三大最受欢迎的加密货币。
那么从何而来呢?虽然我本人并没有参与比特币现金本身 ,我也确实开发了Bitcoin Cash wallet,但我一直在密切关注比特币现金的发展,围绕着它的长期发展路线达成了越来越多的共识。我不得不说,虽然比特币现金的路线图可能比Bitcoin Core的路线图更具有风险性,但如果成功的话,比特币现金肯定是更有野心的,也更有能力实现有意义的扩容。
在我们深入探讨之前,我们先看下Bitcoin Core的路线图,这样就可以相互比较了。现在SegWit已经激活,剩下的还有那些呢?大部分是Schnorr签名和MAST,尽量这两种技术都能改善现状,但它们都不会带来任何有意义的额外扩容能力。他们带来的扩容能力取决于使用他们的方式,但你可能会得到15-25%的扩容范围,这可能只会减少几便士的费用,如果有的话。除此之外,Core基本上把赌注押在了闪电网络上,希望它能够不负所托。时间会告诉我们答案的。
即使闪电网络是成功的,它仍然需要大量的线上扩容能力,如果它会被广泛使用的话。
以下是我在比特币现金的路线图上的一些认识。因为目前还没有正式的路线图(到目前为止),只是在邮件列表和Slack中出现的一些零散的想法,而这些想法似乎有了一个粗略的高层共识(实现细节引发了很多的辩论)。
新的难度调整算法
山寨币社区应该非常熟悉当一种币在争夺算力时发生的事情:难度的波动发生的时候,矿工们转向最赚钱的币和带来了不规则的出块时间。比特币发展至今并没有遇到过这种情况,因为它是唯一一种是double SHA256挖矿算法的加密货币。如今,比特币现金的出现已经让事情发生了变化。中本聪设计的难度调整算法非常简单,不适合多币种争夺相同的算力,现在比特币现金和比特币都因为难度调整收到了影响,比特币现金影响的更多一些。
因此,改变算法是有意义的。幸运的是,多年来关于这个问题的研究已经有很多了,所以这只是一个采用最佳解决方案的问题。最后的结果是,比特币现金将会有一种新的难度调整算法,可以防止区块时间的剧烈波动。另一方面,比特币的难度将会继续和矿工的盈利能力做出相应的变化。
修复交易延展性的正确方式
人们对于隔离验证(SW)的主要抱怨是他是如何实现的,而不是它想要达到的目的:修复交易延展性。有人告诉我们,在维护着一个数百亿美元协议的比特币社区,我们需要接受这样一种笨拙而丑陋的极客行为(注:指SW的实现),而这样做的原因是:以另外的实方式来做这件事(注:指修复交易延展性)需要冒着比特币被分裂的风险。具有讽刺意味的是,正式这种极客行为最终成为了比特币现金分裂的主要驱动力。比特币现金可能是分叉的最好时候,因为它现在可以用正确的方式来修复交易延展性问题。无论以那种最小方式延展性修复,交易格式基本上没有改变,或者通过改变交易格式来进行扩展,这还待定。
无论在哪种情况下,这种变化都不太可能在短期内成为优先考虑的问题。显而易见的是,修复交易延展性的主要用例是:闪电网络,现在还没有准备好。即使它最终准备好了,技术成熟还需要时间。还需要更多的时间来或者消费者的认可,如果能做得的话。这可能要花几年的时间才能实现。如果比特币现金需要12到18个月才能修复交易延展性问题,我怀疑会错过一些东西。
并行交易验证/新的merkle树
现在,一个块中的每个交易都必须按照顺序进行验证,因为有可能后面的交易依赖于之前的交易。这就阻止了验证交易的并行执行,增加了验证块的时间和创建可伸缩瓶颈的时间。通过并行验证 ,一个任务可以跨多个CPU或者使用多个机器来加速验证。由于排序不再重要,因此可以重新定义merkle树,允许像零证明的实现和为分片铺路。
UTXO证明
设置每个块的UTXO根将改善客户端安全性,支持快速同步模式,并为未来的分片铺路。在这一点上,目前还不清楚是否有足够有效的方法的来实现这一点,它本身不会成为可伸缩性的瓶颈。以太坊使用Patricia树来做这件事,所有至少有了一些先例,但需要做更多的研究,关于如何更好地做这件事。
除了Patricia树之外,比特币现金还能从核心开发者Pieter Wuille提出的ECMH(Elliptic Cure Multiset Hash)中将受益。它不支持我们想要创建的证明,但是它非常高效,并且很可能足以高效地对UTXO进行快速同步检查。这甚至可以在不向块提交任何内容的情况下完成,并且可以在有更好的情况下进行替换。这将允许新的节点在5分钟内完全启动,而不是几天,让所有的归档节点裁剪超过6个月或1年以上的交易数据。
Bitcoin-ng/Weak blocks
Bitcoin-ng和Weak blocks是两种解决某些扩容问题的不同方案,第一种方案和大区块相关,以牺牲较小的矿工为代价,这可能会造成挖矿集中的问题。第二种方案只需要一次验证块,而不是在一段时间之后验证。与Weak blocks相比,Bitcoin-ng更深入地解决了这些问题,但对于协商一致的规则和在生产环境从未运行过的规则来说,这是一个巨大的变化。而Weak blocks仅仅是通信协议的一个补充,并且不涉及到共识的变化,因此是更加的保守。
如果让我投票的话,我现在可能会赞同Weak blocks,先看看它是如何工作的,然后在未来再考虑Bitcoin-ng。
Bitcoin-ng和Weak blocks 都将有助于提高零确认的安全性(尽管它仍然不完美)。Bitcoin-ng更是如此,因为它改变了交易的确认和挖矿。Weak blocks不是共识规则,仍然允许double spend ,但它会给一份在网络上发生的double spend的记录,商家可以使用区块数据计算出已经弱确认了的但还没有进入块的概率(可能很低)再采用适当的风险管理。
分片
可扩展的区块链并不是说要有全部的交易集合或者是半集中上的2层网络,而是不再需要所有的节点下载和验证所有的交易。上面提到的两个变化,重组Merkle树和UTXO证明,可能会引入一个新的部分验证操作模式。如果用户希望(一个验证所有分片的节点)仍然可以运行一个完整的验证节点,但他们可以选择告诉它只下载和验证一些较小的分片,并且它仍然具有与完整节点相同的安全性。从理论上说,如果所有节点(包括矿工)正在运行部分验证节点,网络仍然能够运行。如果它能够工作,那么基本上可以实现链上的无限扩容,而不会导致中心化。
分片还在研究,所以这是路线图,但它仍然是一个有意义的努力。以太坊有自己的分片路线图,所以希望我们能看到它是如何工作的,学习它是如何做的。
就这样,就像我说的,这是相当的雄心勃勃的。这将需要几次硬分叉来实现这个路线图,使用硬分叉的好处就是,不用再囿于向后兼容性要求,可以摆脱束缚。有些东西可能还无法实现,但至少比特币现金拒绝了这样一种观念:加密货币只不过是一种企业结算系统而不可以做为电子现金的形式使用继续向前推进。