大家好,我是周迅,今天给大家分享一些关于加速区块链的内容。
前言:说实话,传统的BFT共识机制是一种低效的算法,由于每笔交易都要经过全网节点验证,验证结果需要广播到网络,也就是说一笔交易要广播到网络一次,然后每个节点还要再广播一次,这就造成了交易的消息复杂度为O(N^2)。有计算机背景的同学都知道,O(N^2)是一种非常低效的方案,这直接导致BFT在超过1000个节点之后,同步能力就会大幅下降。而对于比特币的POW,任何一个矿工节点找到满足当前难度的区块之后,就把这笔交易打包到区块中,广播到全网(N),然后全网所有全节点验证这笔交易的哈希,而哈希是可以被证伪的。所以,它其实是一种不需要回复的一对多共识机制,也就是复杂度为O(N)。 目前共识算法研究的前沿是如何实现一个O(1)的算法,称为水平扩展(-out),即一笔交易不广播到全网,或者说有些交易有些节点不知道,这样可以解决区块链的扩展性问题。目前大家认为的O(1)共识算法有off-(链下通道)、(分片)、DAG(有向无环图)、-(多链)等,每种算法都有自己的特点和优势,本文就来解读这类水平扩展方案。
【链下通道】
离链这个概念来自于比特币社区,在2013年12月被提出,之后就形成了我们熟悉的离链体系,也就是侧链。离链的诞生,是因为比特币本身或者某条区块链本身的机制存在一些问题,但是如果直接在比特币协议或者比特币链上进行修改,很容易出错,而且比特币区块是不断运行的,一旦出现错误,涉及的资金量太大,这是不允许的,在这种情况下,侧链就诞生了。从本质上讲,侧链机制是一种在两条区块链之间移动货币的机制,它允许资产在比特币区块链和其他链之间转移,减少核心区块链上的交易次数。从本质上讲,侧链并不是指某一条特定的区块链,而是指所有遵守侧链协议的区块链,该术语是相对于比特币(或某条主链)主链而言的。
针对比特币的侧链项目叫做闪电网络( ),它的运行机制比较简单:你是A,你想跟B发起一笔交易,首先你需要创建一个On-。在这个交易中,你需要在A和B之间开通一个支付通道(),并且要做好相应的抵押。比如说A打算转账给B,那么A在转账给B之前,必须先做好最低限度的抵押。A做好抵押之后,就可以开始给B转账了。A可以随便今天给B发1BTC,明天再发2BTC,这都无所谓,反正都是Off-,没有任何交易费。闪电网络就是在A和B之间提供这种支付通道,也就是Off-(链下)交易通道。
那么,如果A或者B想提取BTC余额,并停止彼此之间的转账交易,该怎么办呢?这时候就需要关闭A、B之间的支付通道,利用闪电网络的一系列协议进行清算。
假设A之前质押了 ,其中一共 转给了B,那么A的余额为 ,B的余额为 。在这个过程中,A无法篡改交易记录,所以最终A可以转 ,B也可以转 。
简单总结一下闪电网络的工作原理:
a.建立支付渠道;
b. 需要抵押品。
建立支付通道只是一个正常的链上交易。