虽然区块链的底层机制非常复杂,我们将通过以下步骤提供简要概述单项技术发展。北京木奇移动技术有限公司,专业的区块链开发公司,欢迎交流合作。

1)数据层发展

区块链的数据随着时间增加而不断增加,这将导致两个问题。一是新节点的准入门槛增加,因为其海量的历史数据将会占用很大的存储空间,而对存储空间的高需求将许多没有高性能设备的个人用户拒之门外。二是可扩展性与安全性的冲突,如果存在大量的非验证节点,那么在进行验证时需指定全节点,这将导致安全性下降,但又不可能要求所有的账户都是存储全部交易记录,一方面是不现实,另一方面是会导致数据同步时间过长。因此,目前的数据层的发展方向为开发能完成验证操作但无须存储完整状态数据的新型节点,但仅有验证功能的新型节点仍无法避免因出块节点高门槛而带来的中心化趋势,未来可能需要在出块节点的轻量化上进行进一步研究。

目前含有验证功能的轻量节点有:

· 轻节点

轻节点的专业技术名称为无状态客户端,其与全节点是一组相对应的概念。全节点就是传统意义上的区块链节点,链中的每个区块都包含区块头、交易数量、交易列表三部分,而轻节点为了保证数据轻量化,只存储区块头,不存储全量的交易列表等信息。在新块出现时,轻节点会被额外提供新块中全部所需访问状态,在收到数据后轻节点通过默克尔证明来判断一笔交易是否在现在的区块链交易列表中,实现交易的验证,大幅降低了节点对存储空间的要求,因此轻节点能够运行在小容量的个人PC等终端设备上。当前的验证工作有了一些新进展,以太坊表示可以利用多项式承诺来代替默克尔树,好处是可以降低验证成本。

· 简洁区块链

新的加密货币协议Coda提出了一种比轻节点更加轻量的具有验证功能的节点,支持在移动端运行。这种简洁区块链节点只需要拥有当前的哈希默克尔根就可以通过一种密码学证明对交易进行快速验证。

(2)网络层发展

网络层是区块链中的底层支持,控制着数据的开放权限与节点准入等问题。由于对数据公开需求不同,区块链发展出了不同的网络组织形式,主要包括以下几种:

· 公有链

公有链即区块链最初始的网络形式,任何人都可以读取数据、发送交易且交易能够获得有效确认的共识区块链。它不受任何人控制,也不归任何人所有,被认为是”完全去中心化”的区块链,比特币以太坊就就是典型的公有链。

然而由于每个人都可以记账,交易确认是时间会很长,整个区块链网络的效率较低,例如比特币以太坊的交易吞吐量分别仅为7TPS和30TPS。

· 私有链

私有链仅对单独的个人或是实体开放,由一个实体来控制所有的交易,即写入权掌握在某个人或是某个组织手中,其具有交易速度快、隐私性强、规则可修改、交易成本低等特点。私有链严格的准入机制,链中的节点具有很高的可信度,因此交易确认并不需要所有节点参与,这就使其具备了极高的交易速度,几乎与常规数据库速度在同一个量级。同时严格的准入机制还为私有链带来了高隐私性的特点,链上的数据不会被链外的任何人获取。因为私有是被个人或组织控制的,控制人可以修改链的规则,例如抛弃交易或还原交易等,而且所有节点受到控制人控制那么就不再需要为节点的记账等工作发放奖励,且各个节点间也不需要完全的协议,因此私有链几乎没有交易成本。

· 联盟链

联盟链是去中心化程度介于公有链与私有链中间的一种链,其只针对某个特定群体的成员和有限的第三方开放,其内部指定多个预选节点为记账人,每个块的生成由所有的预选节点共同决定,其他的节点可以参与交易但没有记账权限。或者是条件开放区块链的根哈希与应用程序接口,限制访问次数或是访问者身份。联盟链往往被用于机构间的协作,同时具备私有链和公有链的优点,但又因为其半私有的形式,导致其各方面的优点都不突出,是对去中心化、隐私性与区块链性能的一种折中方案。联盟链因为可以解决机构间合作问题,是目前金融领域运用最多的一种区块链网络形式。

除了数据公开性的差异化发展,区块链扩展性的也有一定的发展,一定程度上解决了不同区块链间信息孤岛的问题,具体在以下几种不同的解决方案中有所体现:

· 跨链

跨链是通过特定的数据同步机制,将价值在不同区块链之间进行转换的技术,实现区块链间的价值流通。跨链主要包括资产兑换与资产转移两种,资产兑换的本质与货币兑换有些类似,兑换时不会改变每个区块链上的价值总值,只是以跨链机制为中介,在不同持有人之间进行了价值兑换;而资产的转移则是直接锁定原链上的资产,并在目标链上铸造相同价值的资产。目前主流的跨链机制有选举一组节点在两条链之间进行验证和证明的公证人机制、通过资产锁定并设置解锁时间与条件的哈希锁定机制、分布式控制资产私钥并映射的分布式私钥控制机制等。

· 侧链

与侧链相对应的概念是主链,早期的侧链主要是为提高比特币吞吐量,而当前主要应用在数字资产在不同的区块链的转移,也就是主链与侧链之间的价值转移。转移原理为通过双向锚定冻结主链上的资产,并通过特定的协议使资产在侧链上产生并流通,当侧链完成流通之后资产再回到主链中,即解除主链资产的冻结。因此从原理上看,侧链其实是一种特殊的跨链。只要符合侧链协议,任何区块链都可以成为侧链,且侧链的设计不受主链的制约,所以当主链的拓展性较差时,可以使用侧链来对主链的功能与性能进行拓展,在一定程度上分担主链的压力。

· 多链

多链是指同一个区块链系统具有多条链,每条链相互独立并且可以并行执行交易,可以解决单链架构隔离性、隐私性、并发能力差的问题。系统中所有的链都是架构的一部分,若架构内多条链的共识机制相同可称为同构多链,是与异构跨链的相对应的一组概念,同时同构多链也是侧链的变种。若多条链的共识机制不同则称为异构多链架构,例如EKT通用积分生态就是并行多主链架构,其中可以有多条并行的主链,且不同的主链可以采用不同的共识机制,为区块链的应用提供了更丰富的场景。

(3)共识层发展

近年来共识机制的不断进步促进了区块链的发展,是区块链能够被迅速和广泛应用的重要支撑。最开始流行的工作量证明机制(PoW)到权益证明机制(PoS)都是为保证电子货币的安全发行而设计的,在性能与拓展性方面的考虑较少。之后出现的验证池pool和拜占庭容错PBFT共识机制在性能上有了很大的改进,但相应的,在去中心化上做了让步。共识机制演化的愈发复杂,若要逐一解释清楚并非易事,本书不在密码学技术上做过多描述,仅介绍各类共识算法的大致特点。目前的主流共识机制的特点如表1所示。

表1 区块链共识机制特点

共识机制

去中心化

共识速度

成本

工作量证明(POW)

权益证明(POS)

较高

较低

较高

股份授权证明(DPOS)

中等

较高

中等

验证池(POOL)

较低

较高

拜占庭容错(BFT)

较低

较高

权威证明(PoA)

雪崩协议(Avalanche)雪崩协议(Avalanche)雪崩协议(Avalanche)

较高

较高

较低

(4)合约层发展

合约层的智能合约是区块链在实际应用中实现自动交易功能非常重要的一环,智能合约的发展方向主要在于运行环境的突破,因为运行环境与区块链整体性能的约束,目前智能合约在实际应用仅能发挥”合约”的作用,而离实现”智能”还有一定距离。

区块链中的智能合约概念最早被以太坊提出,智能合约以代码形式写入区块链,在之后的交易中依靠条件语句触发合约规则的执行。但智能合约的执行会为整个区块链网络带来一定的安全隐患,因此智能合约一般会在沙箱环境中运行,目前以太坊的EVM与超级账本的Docker容器即是区块链中的沙箱环境。另外智能合约的编程语言种类也逐步增加,以太坊目前仅支持特定的Solidity语言,而后的超级账本还支持golang、JAVA、Python等语言。

目前智能合约还无法在高隐私保护或是跨链等复杂场景中应用,主要因为其受制于区块链整体性能的约束,而绕开区块链性能约束的办法主要为通过实现合约层与共识层的解绑,使智能合约运行在可信的硬件环境总,共识层仅记录智能合约执行结果,不过这类解决方案的安全性等问题还在持续的讨论中。

(5)应用层发展

作为区块链的展示层,应用层中的应用场景一般就是与用户直接接触的业务场景。应用层有点像是平常的APP、web网页等前端应用概念,应用层将请求数据发送给区块链网络,在进行完数据处理之后,区块链网络又会将数据结果返回给应用层,使其与用户进行交互。

应用层的发展就是前台业务与技术的发展,几乎不属于区块链技术的范畴,因此不做过多讨论。