交易确认时间久
1、每十分钟产生一个区块,一个小时只能有六个区块,一个区块最大只能有1M,换算下来一秒只能处理七笔交易
2、一个区块,需要有六个区块一起才能被确定正式上链,然后这个过程需要一个小时
解决方法:
1、增大区块的大小,
2、提高出块的频率
吞吐量低
1、在于共识的过程,(因为每一个区块都要参与到共识的过程中,)
吞吐量:就是多久能产生一个区块
解决方法:
1、异步共识
同步共识:在一个区块产生的时候,所有的节点开始同步,当所有的节点都达成共识之后才会继续出块。
异步共识:当一个区块产生的时候,只要满足一些规则,那么就可以继续出块,如果这个规则设计的足够巧妙,过一段时间后还是可以达成共识。
2、随机共识
感觉所有的节点都参加,会浪费时间,能不能找一些节点来代替全部节点达成共识。那么就利用“随机抽取”算法来达到。
Algorand算法:
就是 ”随机抽取“算法,会选取一些节点到委员会中,由这些委员会来达成共识。如果足够的随机,下一轮就会重新抽取节点,进入委员会,这样也保证了公平性。
算法核心:
(VRFs)函数,在每一轮的选举中,都会有一个随机数来作为随机数作为函数的输入,返回值hash值和一个n,
hash值作为下一轮的输入,n就是作为本轮选中的证明,相当于委员证
注意:在抽签之前需要先确定人数。并且都会纪录在区块中一一绑定,从而提高效率,在这个过程中达成共识。
3、分区方案
分区不是区块链中的技术,是从数据库中引入的,但是区块链也是一种数据库,叫做分布式日志数据库,所有数据库提高效率的方法也能在区块链中使用,例如:分区,把一张表的数据分到不同的硬件中
分区选择方式:
按区域分、按市场分、按地域分、按交易类型分、按交易id分
限制分区的瓶颈:跨区数据交换,主要受限于带宽
注意:以太坊中使用的是分片,并不是分区技术,和子链很像,每一笔都是高度自治的,
4、子链/侧链技术
思想:一条区块链性能太差,多来几条,多链并行提高效率,
子链本质:指遵循某种协议的区块链,是通过协议的规则,把某种币从主链上转移到侧链上。
必备条件:必须要有一个协议,可以是一对多的关系,
也必须要发生价值转移。
5、可信执行方案
结合硬件
要么不运行,一但运行,必然可靠,无法被外界影响。
一旦在这种环境中运行,那么就不需要考虑拜占庭容错问题。那么就可以使用一些效率高,简单的共识从而提高效率。
6、隐形中心化
完全去中心化是没有必要的,受限制的中心化,更加贴切情况。
受限制的中心化可以是多中心,轮转中心。
如果降低去中心化能提高效率,那么这种方式是允许的。