尽管区块链的基本机制非常复杂,但我们将通过以下步骤提供个别技术发展的简要概述。北京齐木移动技术有限公司是一家专业的区块链开发公司,欢迎交流合作。
1)数据层开发区块链的数据随着时间增加,这将导致两个问题。一是新节点准入门槛提高,因为其海量历史数据会占用大量存储空间,对存储空间的高需求会将很多没有高性能设备的个人用户拒之门外。其次,可扩展性和安全性之间存在冲突。如果有大量未验证的节点,验证时需要指定所有节点,会导致安全性下降,但不可能要求所有账户存储所有交易记录。一方面不现实,另一方面会导致数据同步时间很长。因此,数据层目前的发展方向是开发能够完成验证操作但不需要存储完整状态数据的新节点。但是,具有验证功能的新节点并不能避免外发节点高门槛带来的集中化趋势,未来可能需要对外发节点的轻量化做进一步研究。
目前具有验证功能的轻量级节点有:
光节点
光节点的技术名称是无状态客户端,是与全节点对应的一组概念。整个节点是传统的区块链节点,链中的每个块包括块头、交易数量和交易列表三个部分,而轻节点为了保证数据轻量级,只存储块头,不存储完整的交易列表等信息。当一个新的块出现时,光节点将被额外提供新块中所有需要的访问状态。光节点收到数据后,可以通过Merkel证明判断某笔交易是否在当前的区块链交易列表中,实现了对交易的验证,大大降低了节点对存储空间的要求,因此光节点可以运行在小容量的个人电脑等终端设备上。目前,核查工作取得了一些新进展。以太坊说,可以用多项式承诺代替默克尔树,这样的好处是降低了验证成本。
简明区块链
新型加密货币协议Coda提出了比light nodes更轻的具有认证功能的节点,支持在移动端运行。这个简洁的区块链节点只需要有当前的hash Merkel根,就可以通过一个密码证明快速验证交易。
(2)网络层开发网络层是区块链中的底层支撑,控制数据开放访问、节点访问等问题。由于对数据披露的不同要求,区块链开发了不同形式的网络组织,主要包括以下几种:
公共链
公链是区块链最初的网络形式,任何人都可以读取数据和发送交易,交易可以得到有效确认。它不受任何人控制,也不归任何人所有。它被认为是一个“完全分权”的区块链。比特币和以太坊就是典型的公链。
但是,由于每个人都可以记账,交易确认需要很长时间,整个区块链网络的效率较低。比如比特币和以太坊的交易吞吐量分别只有7TPS和30TPS。
私有链
私链只对单个个人或实体开放,所有交易都由一个实体控制,即写权在一个人或一个机构手中。它具有交易速度快、保密性强、规则可修改、交易成本低等特点。私有链有严格的访问机制,链中的节点可信度高,所有节点都不需要参与交易确认,这使得它拥有极高的交易速度,几乎与常规数据库的速度在一个数量级。同时,严格的访问机制也给私链带来了很高的私密性,链上的数据不会被链外的任何人获取。由于私有制由个人或组织控制,控制者可以修改链条的规则,如放弃交易或恢复交易,所有节点都由控制者控制,因此不需要为节点的记账发放奖励,也不需要为节点的记账发放奖励
联盟链是一种分散程度介于公有链和私有链之间的链。它只对某个群体的成员和有限的第三方开放。它指定多个预选节点作为簿记员,每个块的生成由所有预选节点决定。其他节点可以参与交易,但没有记账权限。或有条件开放区块链和应用程序接口的根哈希,限制访问次数或访问者的身份。联盟链常用于机构间合作,兼具私有链和公有链的优点。但由于其半私有形式,各方面优势并不突出,是去中心化、私密性和区块链性能的折中。联盟链是金融领域应用最广泛的区块链网络形式,因为它可以解决机构间的合作问题。
除了数据开放的差异化发展,区块链的扩展也有了一定的发展,在一定程度上解决了不同区块链之间的信息孤岛问题,具体体现在以下不同的解决方案中:
交叉链
跨链(Cross-chain)是一种通过特定的数据同步机制,将不同区块链之间的价值进行转换,实现区块链之间的价值流通的技术。跨链主要包括资产交换和资产转移。资产交换的本质有点类似于货币交换。每个区块链的总价值在交换期间不会改变,但是通过跨链机制在不同的持有者之间交换价值。资产转移是直接锁定原链条中的资产,将价值相同的资产投在目标链条中。目前主流的跨链机制包括在两条链之间选举一组节点进行验证和证明的公证机制,锁定资产并设置解锁时间和条件的哈希锁定机制,以及分布式控制资产私钥并进行映射的分布式私钥控制机制。
侧链
与侧链相对应的概念是主链。早期的侧链主要用于提高比特币的吞吐量,而目前主要用于不同区块链的数字资产转移,即主链和侧链之间的价值转移。转移的原理是通过双向锚定冻结主链中的资产,通过特定的协议使资产在侧链中产生和流通。当侧链完成流通后,资产回到主链,即解冻主链中的资产。所以原则上侧链其实是一种特殊的跨链。只要符合侧链协议,任何区块链都可以成为侧链,侧链的设计不受主链的限制。因此,当主链的伸缩性较差时,可以利用侧链来扩展主链的功能和性能,在一定程度上分担主链的压力。
多链
多链是指同一个区块链系统有多个链,每个链相互独立,可以并行执行事务,可以解决单链架构隔离性差、私密性差、并发性差等问题。系统中的所有链都是架构的一部分。如果架构中多条链的共识机制相同,则可称为同构多链,同构多链是异构跨链对应的一组概念,同构多链也是侧链的变体。如果多个链的共识机制不同,则称为异构多链架构。例如,EKT宇宙整体生态是一个并行的多主链架构,其中可以有多个并行的主链,不同的主链可以采用不同的共识机制,为区块链的应用提供了更丰富的场景。
(3)共识层的发展近年来,共识机制的不断进步促进了区块链的发展,是区块链快速广泛应用的重要支撑。起初,流行的工作量证明机制(PoW)到权限证明机制(PoS)都是为了保证电子货币的安全发行,很少考虑性能和可扩展性。之后的验证池pool和拜占庭容错PBFT共识机制在性能上有了很大的提升,但相应的,在去中心化上也做了让步。共识机制的演变变得越来越复杂,不容易解释
股份授权证书(DPOS)
媒介
高等级的,级别较高的,较重要的
媒介
验证池(池)
降低
高等级的,级别较高的,较重要的
低的
拜占庭容错(BFT)
降低
高等级的,级别较高的,较重要的
低的
授权证书(PoA)
低的
高的
低的
雪崩(雪崩协议)
高等级的,级别较高的,较重要的
高等级的,级别较高的,较重要的
降低
(4)在合约层面开发智能合约是区块链自动交易功能在实际应用中非常重要的一部分。智能合约的发展方向主要在于运营环境的突破。由于运行环境和区块链整体性能的限制,智能合约在实际应用中只能起到“合约”的作用,距离实现“智能化”还有一定的距离。
智能合约的概念在区块链首先由以太坊提出。智能合同以代码形式写入区块链,合同规则的执行由后续交易中的条件语句触发。但是智能合约的实施会给整个区块链网络带来一定的安全风险,所以智能合约一般会在沙盒环境下运行。目前以太坊的EVM和超级账本的Docker容器是区块链的沙盒环境。此外,智能合约的编程语言类型也在逐渐增加。目前以太坊只支持特定的Solidity语言,后来的超级本也支持golang、JAVA、Python等语言。
目前智能合约还不能应用在高隐私保护或跨链等复杂场景,主要是受到区块链整体性能的制约。规避区块链性能约束的方法是解除契约层和共识层的绑定,使智能契约可以运行在可信的硬件环境中。共识层只记录智能合约的执行结果,但这类解决方案的安全性还在讨论中。
(5)应用层开发作为区块链的展示层,应用层的应用场景一般都是与用户直接接触的业务场景。应用层有点像APP、网页等常见的前端应用概念。应用层将请求的数据发送给区块链网络,区块链网络对数据进行处理后,将数据结果返回给应用层,使其与用户进行交互。
应用层的开发是前台业务和技术的开发,几乎不属于区块链技术的范畴,所以不做过多讨论。