最近BCH开发团队Bitcoin ABC在11月份的BCH升级更改中表示要推出交易规范排序(Canonical Transaction Ordering,简称CTOR)。但是针对这一点,BCH社区并没有完全支持。BCH算力最大的矿池CoinGeek对此就表示反对。
Jonathan Toomim撰写了一篇文章,关于为何推崇交易规范排序这一决定的原因。以下是对其观点,以及为何CTOR具有优势的总结。同时,我们也提供了Joannes Vermorel关于交易排序的文章作为参考。
由于比特币现金交易的构成以及哈希方式,一个有向无回路的图被生成,且子交易会消费母交易的结果。尽管可以在区块交易中使用拓扑排序(Topological ordering, 简称TTOR,这也是比特币现金在区块中目前的交易排序),但是它是既不有效,也不优雅的排序交易的方式。因此,从TTOR转化使用CTOR具有以下优势:
1、CTOR比TTOR实现起来更简单。TTOR的复杂性在于必须在排序子元素前必须排序母元素。
2、矿工不再需要发现有效的排序了。大约70%的区块模版的生成时间在用于因为排序规定造成的child-pays-for-parent(CPFP)代码。除去这一步骤可用大大增加性能。
3、不需要担心由于区块验证所需的中间态。这可以保证区块验证可以完全平行化。举个例子,以太坊不能规模化就是因为遭受过多数量的中间态。
4、由于节点只需要传送其内存池和最近发布的区块的差别,编码和传送区块变得更简单。这是得益于Graphene,其和CTOR一起使用更加有效。
5、CTOR可减少系统复杂性,并且排除了攻击者发布一个排序数量众多的区块来减慢验证,以此恶意攻击的可能。
因此,Bitcoin ABC认为CTOR比TTOR更优,并且值得实现。比特币现金的将来可以大大得益于目前减少其复杂性的工作。
但是针对CTOR,一位Reddit名为/u/awemany并不同意这些观点。因此他发表了一篇经过深思熟虑的文章,阐述了为什么CTOR还没有准备好成为最佳解决方案。他认为CTOR对于实际改善网络并没有太大作用,最终可能是倒退。他断言,CTOR忽略了为什么按照它们的方式排序区块的主要原因,并且CTOR开发人员提出的解决方案没有解决他们打算解决的问题。
Awemany指出,“[交易]显然不会因为意外而像这样排序,因为它是自然顺序,所以它们是这样排序的。这是生成交易的顺序......“他进一步指出,作者放弃了解当前的拓扑交易排序规则(TTOR),并说:”自然顺序的成功传播伴随着成功验证网络的自然秩序。当交易进入Mempool时,可以及时验证它们是否符合所需的、特定于事务的规则。“
CoinGeek之所以反对CTOR是因为他们认为目前不能够确定TTOR对区块的扩展有阻碍,CTOR并不是恢复原有比特币协议的共识变更。CoinGeek曾表示将继续只支持恢复原始比特币协议共识的更改,以及那些被证明为了实现大规模链上扩展到TB级区块目标必须要更改的协议。
综上所述,CTOR确实比TTOR更好更简单,但是是否拥有共识,是否应该被采用还需要更深入的讨论,
参考资料:
1、Jonathan Toomin. Canonical block order, or: How I learned to stop worrying and love the DAG
https://medium.com/@j_73307/canonical-block-order-or-dbe3ac48bcd3
2、 Joannes Vermorel, et al. Canonical Transaction Ordering for Bitcoin
http://blog.vermorel.com/journal/2018/6/12/canonical-transaction-ordering-for-bitcoin.html
3、 /u/awemany. A opinionated critique of the“Canonical Transaction Ordering for Bitcoin”white paper, written by Joannes Vermorel et al
https://www.docdroid.net/pvFaNUq/critique-canonical-order.pdf