BCH到底该采用哪种交易排序规则?

​​目前BCH在选取哪种交易排序方面依旧没有达成共识。其实针对BCH到底该采用什么交易排序规则这一问题完全可以通过分析对比进行决定。

针对这个问题应该分几个步骤进行思考。

1、目前的TTOR需不需要被更换?即TTOR有什么优缺,会不会阻碍BCH未来的发展?如果应该被更换理由是什么?不应该被更换理由又是什么?

2、除了TTOR还有哪些交易排序规则?

3、目前有争议的CTOR排序规则对于BCH来说有哪些好处?是否是其未来发展所必须的?CTOR又会为BCH带来什么风险?

下面将根据我的了解对以上问题进行分析,主要从块传播和块验证两个角度出发。

TTOR

如果我们现在什么都不做,BCH的交易排序就是TTOR,这是一种部分排序。TTOR主要是所有的交易在区块内都要遵守拓扑排序规则,即将有依赖关系的交易排在一起,母交易必须放在子交易的前面,而其他的交易则都是任意排序。因此TTOR规则下的排序方式并不是唯一的,一个含有1000笔交易的区块可能会有成千上万种排序方式,而这些排序可能都将包含在数据信息中。

从本质上来讲,TTOR唯一的好处就是能够保存依赖关系,但是这也给BCH带来了复杂性。TTOR排序方式给矿工带来了很多负担,矿工需要去发现有效的排序,而大约70%的区块模版的生成时间都用于因为排序规定造成的child-pays-for-parent(CPFP)代码。这一步骤大大降低了性能。

由于BCH未来将会不断的扩容,因此BCH需要提高块传播的速度和块验证的速度。在块传播方面,目前已经有极瘦区块(Xthin)、石墨烯(Graphene)等方案,但是这样的方案在TTOR存在的情况下由于需要保存所有可能的排序信息,所以在重新编码区块时排序信息将会占用很多数据信息,从而会减缓块传播的速度,因此TTOR会阻碍BCH块传播速度的提高。在块验证方面,UTXO更新实际形成一个区块处理所需的重要时间片段,如果能将它们并行将大有助益。在TTOR存在的情况下,并行校验算法也必须在尊重TTOR的基础上进行验证。为了在并行验证的过程中实行TTOR,需要增添额外的检验。但是如果没有拓扑排序,并行验证就会变得简单的多,因此对于并行验证TTOR 最多算个障碍。

因此,TTOR的存在将会阻碍BCH继续扩容,成为其扩容道路上的拦路石。如果将其删除一切都变得简单很多。而且对于BCH来说,交易排序信息并重要,即使删除拓扑排序并不会对其造成什么影响。从某种程度上说,TTOR只是一种多余的设置。TTOR不该被更改的理由则是TTOR是中本聪引进的技术,经过多年的考验,是目前的共识,除此之外,并没有什么理由了。相比之前,没有TTOR的存在BCH将会在扩容的路上更加顺利。

除了TTOR还有哪些交易排序规则?

AOR(任何排序规则):即在之前的基础上直接删除TTOR,从而允许交易任意排序。这是一个硬分叉,因为删除了拓扑排序,有利于并行化代码,所以在块验证方面将能发挥出良好的优势。虽然AOR能够让矿工自由选择排序方式,但是由于AOR允许任意排序也就意味着交易的顺序并不是唯一的,所以和TTOR一样,在块传播方面并没有优势。

GTOR(Gavin的交易排序规则):如果强制执行,这将是一个软分叉,或者可以保留为可选(Gavin的提议使其可选)。它保留了TTOR,并在此基础上定义了规范顺序。由于GTOR是有利于石墨烯技术的,因此在块传播方面或许可以发挥其优势,但是它可能是并行化的最差选择。

LTOR(交易词汇排序规则),又名CTOR:删除了TTOR,除了coinbase交易所有的交易按照交易ID进行排序,只有一种排序方式。本质上来说,它建立在AOR基础上,只是在AOR基础上添加了20行代码。目前有争议的CTOR就是这一种。

CTOR

CTOR最大的好处就是因为排序方式是固定且唯一的,所以在块传播使用石墨烯等技术重新编码区块时能够最大限度的对区块进行压缩,从而最大限度的提高块传播的速度。这在以后的BCH大区块的传播时将能发挥最好的作用。而且CTOR在块传播方面速度是优于GTOR的。

在区块验证方面,CTOR和AOR一样简化了并行区块验证。这是移除拓扑交易排序规则的结果。为了使得CTOR排序下能够更好的进行并行验证,OTI算法被推出。虽然OTI算法对于CTOR、AOR、TTOR都是适用的,但如果是TTOR,需要在第一个循环生成每笔交易的定位图,第二个循环要确保每一笔交易只发比它自身更早的币。这里必须要进行多个循环,这使得TTOR会增加了并行化验证的复杂度。而且CTOR有利于BCH的分片技术,在这一方面TTOR是比不上的。TTOR下的分片将会变得非常复杂。这一点已经在之前的文章中进行了证明。

因此,CTOR不管是在块传播还是在块验证方面都是优于其他的排序规则的。而且CTOR还有一些其他优势。如简化代码;使UTXO缓存更高效;它还允许生成交易包含/排除的紧凑证明,使无链应用程序成为可能;其次,它为比特币参与者提供一种更新的控制,以便能够在块内本地化他们的交易。

CTOR是必要的吗?虽然从BCH目前的发展来看,CTOR是没有必要的。由于现在的交易量少,BCH的所用的区块容量并不大,不管交易是如何排序速度都可以得到保证。但是从BCH的长远发展来看,为了更好的解决块传播的瓶颈,CTOR是必不可少的。因为所有的交易排序方案中,只有CTOR存在的情况下速度是最快的。

CTOR有风险吗?交易顺序对于BCH来说,本身就是无足轻重的。而且使用CTOR替代TTOR,代码更改很小,并不会带来其他影响,因此从技术上来说风险并不大。目前主要的阻碍是共识不一致。BCH需要一个正确的数据结构,而CTOR正是最好的选择。

通过上面的分析,在所有的交易排序方式中,CTOR是最利于BCH未来发展的排序方式,尤其在未来的扩容中将会发挥较大的作用。所以BCH最应该采用CTOR排序方式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值