区块链是计算机和经济学结合的产物,通过经济学原理,利用计算机技术实现生产关系的变革,从而减少信任的成本,提升合作的效率。从根本上来说,区块链技术是由多个独立的层级组成的,包括存储层、网络层、扩展层和应用层。
存储层是区块链最底层技术,首先应该考虑的是性能和易用性,系统的整体性能,主要取决于网络或数据存储的I/O性能,网络I/O优化空间不大,但是本地数据存储的I/O是可以优化的。比如,比特币选择的是谷歌的LevelDB,这个数据库读写性能很好,但是很多功能需要开发者自己实现;网络层就是各种共识算法、加密签名算法等;存储层和网络层更像是计算机操作系统,而扩展层更像是计算机的各种驱动,智能合约,侧链,状态通道等属于这一层;应用层类似于电脑中的各种软件程序,是消费大众可以使用的产品,这一层除了各类的钱包,市场上几乎没有什么应用。
业界总结了区块链目前面临的可扩展性三难困境
可扩展性三难困境:单个区块链系统只能拥有可扩展性、安全性及去中心化三种属性中的两种。结论是,我们必须依靠更复杂的工具来兼得三者。
结合可扩展性三难问题,小编总结如下提高扩展性的方法:
1 分片
1)网络分片:也可以叫多链技术或者是侧链技术,就是将很多区块链异构组成区块链集合。其中每一条链都可以有自己的加密货币和共识算法。
2)交易分片;交易分片技术就是把网络上的交易分成不同的碎片,网络上的节点也分成不同的碎片,交易碎片由网络上的不同节点碎片处理,因此每个节点碎片只需处理一小部分传入的交易,并且通过与网络上的节点碎片并行处理就能完成大量的验证工作。
3)状态分片:也叫状态通道,本质上是通过在不同用户之间建立一个双向通道,把区块链上的许多操作在链外进行管理,等完成链外操作后多方签名确认后,才将最终结果上链。闪电网络和雷电网络就是基于这个原理。
2 隔离见证
比特币提升扩展性的一种方式,交易信息和见证信息分离。
3 增加区块大小
区块越大,每秒处理量就越高。但这在具体实践中是有问题的,创建块时,必须将其传送给网络中的其他人,而网络无法快速处理庞大的文件,所以这种解决方案的能力是有限的。
4 共识层面进行改进
pow改为pos,DPOS,PBFT等。
1)POS:持有的token越多,参与记账的概率就越大,就有机会挖到矿。
2)DPOS:你持有token就有了选举权,可以选取你信任的节点参与记账。
3)PBFT:客户端发送请求给主节点,主节点广播请求给其他节点,节点收到请求后会选择接受和不接受,若接受则会向其他结点发送prepare消息,若一段时间之后收到2f+1个不同节点的prepare消息就向其他节点发布commit消息,若一段时间之后收到2f+1个不同节点的commit消息后达成共识,执行请求写入数据。无人作恶,容错节点(N-1)/3。
若假设消息内容不会被篡改,无拜占庭将军问题!则可以把共识机制变为RAFT,PAXOS。
4)RAFT:follower,candidate,leader,领导者选举:获得大多数节点的票;日志复制:leader发送日志副本给follower,follower把日志副本拷贝到自己数据库给leader发送确认,leader告诉follower已确认。无人作恶,故障节点(N-1)/2。
5)PAXOS:少数服从多数。确定提议者,谁报的号大谁就是提议者;提议者提出意见,接受者反馈意见,多数接受者接受则提议通过。无人作恶,故障节点(N-1)/3。