Tech Blog

SmartX如何做到高TPS?

By 2019年12月6日 No Comments

区块链1.0时代: 传统的区块链的TPS为什么不高?

比特币自从诞生以来,区块链进入1.0时代。其TPS过低的问题经常被人们诟病,导致其低TPS过低的原因有如下几个:

  • 出块有强制难度要求

比特币为了做到去中心化,采用了PoW的方式来出块,其核心思想就是让矿工计算区块的nonce值,并且将符合当前难度要求的nonce值写入区块并广播给全网。

比特币这样的设计保证了数据的正确性,其他人想篡改比特币区块链上的数据需要消耗大量的运算资源才有可能做到。

强制难度保证了全网数据的安全性但是也带来了问题,当全网难度过高时,矿工产生一个nonce值符合当前全网难度需求的区块会使用很长的时间,比特币的预期出块数据时10分钟一个区块,但是矿工往往经常需要消耗超过10分钟数据才能产生一个符合难度要求的区块。

  • 区块大小

比特币的区块大小为固定的1M,当初设计区块大小为1M的原因是由于比特币创世时(2009)的硬件条件约束,验证1M的数据消耗的时间较短大约需要消耗30s,如果数据超过1M则验证时间会远远超过30s。其次就是大区块在p2p网络上传输延时较高,导致频繁的分叉回滚,大大的提高了废块产生的几率。

放到今日来看,固定区块大小固然安全,但是却无法充分利用现在已经大大提升的硬件和网络带宽,当交易数变多的时候交易还要去排队等待固定大小为1M的区块,就好比一个高铁站无论客流量多么大,高铁的运载能力多么强,旅客都只能走一条安检通道。

  • 交易确认慢

矿工将交易打包到区块之后还需要其他矿工在区块后面继续追加6个区块才能让交易真正意义的生效,这样做的目的是为了保证全网数据的一致性,同时也是为了防止区块上的交易被更大的算力回滚。

虽然多次确认能保证全网的数据的一致性和确定性,但是很多时候小额交易并不需要这么高一致性和确定性,多次交易确认使得一笔交易真正到账需要长达1个小时甚至更久,这使区块链1.0时代因为TPS不高,难以实现广泛的应用。

区块链2.0时代,提高TPS的几种方法

  • 增大区块体积

在区块链进入2.0时代后,很多币种,例如:bch采用了大区块的做法,将区块的大小提高到128MB甚至更高,在p2p带宽资源充沛的情况下,这样做的确是可以提高TPS,但是当带宽资源不足的情况下,大区块的传输会导致频繁的分叉回滚出现,极大的提高了废块率,降低了交易的最终被确认时间。

  • 使用分片技术

上面提高过废块的问题,由于区块链在同一个高度只能有一个块生效,那么其他矿工产生的块就将成为废块,这样大大浪费了全网的算力资源。

分片技术是将整个区块链网络切分为多个子网络,同时将出块的任务(比如:交易确认,智能合约执行)拆解到这些子网络当中去,这样就能充分的利用全网的资源,避免了频繁分叉回滚导致的大量废块的产生。

分片技术充分利用了全网的资源,但是开发难度很高,很难保证全网数据的一致性。另外就是安全性的问题,例如,在没有分片之前,以太坊网络是 8,000 个节点组成的算力,分成 100 个分区后,每个分区相当于一条独立的以太坊区块链,算力下降到 80 个节点组成的算力。此时,对其中一个分区进行 51% 算力攻击就容易很多。控制了一个分区,攻击者就可以在这个分区内做恶,篡改交易。

虽然增大区块体积以及分片技术一定程度上提高了TPS,但是在安全性以及有效利用全网资源上,依然有不足。

区块新时代:SmartX是如何做到高TPS的?

  • 交易既区块充分利用网络带宽资源

区别于传统的区块链,smartx并不是将所有交易都打包到一个区块里面,然后再广播,而是一笔交易就是一个区块,出块的大小根据带宽资源动态调整,调整的粒度就是一个交易块的大小。这样做的目的一个是为了即充分利用带宽资源,又能应对带宽资源不足时产生大量废块的情况。

  • 无强制难度要求,尽量减少不必要的算力浪费

有别于其他的需要挖矿的区块链,SmartX没有强制的难度要求,SmartX每64秒出一个主块,胜出的主块是当前出块周期(以64秒做为切分)内产生的难度最大的块。如果当前时间片内已经产生胜出主块,后面再产生同一个出块周期的主块,则会被认定为无效,大大的减少了无效算力的浪费,同时避免了分叉回滚。

  • 使用裁决网络来加快确认速度

为了进一步避免回滚,SmartX还引入了裁决节点,普通节点可以通过质押代币得到裁决主块的权利,一旦矿工产生的主块被2/3以上的裁决节点,则再也无法回滚。在去中心化的同时彻底避免了交易被频繁回滚的问题。

在区块链、包括互联网领域,处理信息的效率,保障信息的安全,以及对资源的节能,一直是整个行业的核心竞争力。 SmartX团队进行了深入的研究,并且经过反复的测验,在这三个方向得到了卓越的成果。SmartX将致力于为区块链技术的新时代,做出积极贡献。