1. 区块链1.1 数据层1.2 网络层1.3 共识层1.4 激励层1.5 合约层1.6 应用层区块链1.0:加密货币区块链2.0:智能合约P2P 网络特点 物联网与供应链比特币体系结构以太坊技术体系结构
1. 区块链
区块链是一种分布式账本技术(Distributed Ledger Technology,DLT)。
区块链具有分布式存储、密码算法、共识机制、防篡改和智能合约等核心特性,简单来说就是一个共享且不可更改的账本。
- 从狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证不可篡改和不可伪造的分布式账本。
- 从广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。
1.1 数据层
数据层主要定义了区块结构、链式结构和交易结构,通过密码技术保证交易数据安全性。区块链通过链式结构链接以时间戳顺序打包的区块结构,实现交易数据的不易篡改性。针对不同应用场景,不同区块链平台的数据层略有差异。
1.2 网络层
网络层主要定义了区块链节点网络拓扑结构、区块或交易等数据传播协议和验证机制。区块链的节点具有分布式、自治性、开放自由进出等特性,因而区块链采用对等网络(Peer-to-Peer Network, P2P 网络)组织记账和参与验证的节点。每个参与节点地位对等,既可以作为资源和服务的使用者,又是整个资源和服务的提供者。区块链节点以扁平化拓扑结构相互连通和交互,每个节点均拥有网络路由、发现新节点、广播交易和区块等功能。
1.3 共识层
共识层主要保证在不可信的网络环境下账本数据全网存储的一致性。区块链共识一般可分为 PoW 类、PoS类、CFT 类、BFT类等。PoW 类共识是指通过节点能力证明获得记账权的共识及其改进算法。参与节点利用各自拥有的物理或虚拟资源,如计算资源、存储资源等相互竞争来完成某项难以解决但易于验证的任务,最快完成该任务的节点将获得打包交易的记账权。
1.4 激励层
激励层主要定义经济激励的发行机制和分配机制。根据区块链的部署类型特点,一般需要在去中心化的公有链中设计激励层,对于多中心化的联盟链和中心化的私有链可以不需要设计激励层。公有链中激励层设计的主要目标是保证参与节点价值分配的合理性和激励相容性,通过合理有效的分配机制实现各参与节点的利益最大化,并且能够有效激励更多节点参与,从而保证公有链的稳定性和可持续性运行。
1.5 合约层
合约层主要定义了智能合约的编程语言、沙箱环境以及预言机。智能合约本质上是一段运行在安全环境的计算机程序,具有事件驱动、规则预置、状态感知、强制执行、不易篡改等特点。需要说明的是,智能合约里面的“智能”不是人工智能的“智能”,并且智能合约的“合约”也不是法律合约,因而,为了避免造成误解,Hyperledger Fabric 将智能合约称为链码。
1.6 应用层
应用层主要定义区块链应用的准则模型,垂直行业及开发开发工具等。通过Web前端技术、移动开发技术等开发工具设计友好的图形化接口,服务于不同垂直行业中区块链落地应用开发。
区块链1.0:加密货币
区块链2.0:智能合约
- 以太坊、Hyperledger、Fabric等等
P2P 网络特点
为了进一步理解 P2P 网络,将传统的C/S模式与 P2P 模式进行所示,在传统的C/S模式中,每一个节点要么发挥客户端的作用,要么发挥服务器的在与计算能力与存储空间可以在客户端与服务器之间共享,服务器在C/S模式中起中央控制在 P2P 模式中,每一个节点既扮演客户端的角色”同时扮演服务器的角色。通过对比,可以将P2P网络的特点总结如下。
1)分布式。在P2P 网络中,资源和服务分散在所有节点上,信息的传输和服务的掌。邵直接在节点之间进行,可以无需中间环节和中介服务器。同时,P2P 网络中资源的发布接受两个角色合二为一,在生产和消费资源的角色上是对等的。
2)拓扑动态性。P2P 网络是一种分布式的动态网络,随着各对等点的动态加入与出,整个网络的资源总量、拓扑结构、路由方式始终处于动态变化中。P2P 网络会随着节点的增加,其资源总量和服务能力也会同步地扩充,网络的动态性始终能较容易地满足用户的需要。
3)网络健壮性。P2P 构架天生具有耐攻击、高容错的优点。由于服务是分散在各节点之间进行的,部分节点或网络遭到破坏对其他部分的影响很小。P2P 网络一般在部分节点失效时能够自动调整整体的拓扑结构,保持其他节点的连通性。P2P 网络通常都是以自组织的方式建立起来的,并允许节点自由地加入和离开。P2P 网络还能够根据网络带宽、节点数、负载等变化不断做自适应的调整。
4)负载均衡性。P2P 网络环境下由于每个节点既是服务器又是客户端,减少了对传统C/S结构模式下服务器计算能力、存储能力的要求。同时因为资源分布在多个节点中,更好地实现了整个网络的负载均衡。
5)高性价比。随着硬件技术的发展,个人计算机的计算和存储能力以及网络宽带等性能依照摩尔定律高速增长。采用 P2P 网络架构可以有效地利用互联网中散布的大量普通节点,将计算任务或存储资料分布到所有节点上。利用其中闲置的计算能力或存储空间,达到高性能和海量存储的目的。通过利用网络中的大量空闲资源,可以用更低的成本提供更高的计算和存储能力。
一致性是指对于分布式系统中的多个服务节点,给定一系列操作,在约定协议的保障下,试图使得它们对处理结果达成认同。也就是说,所有节点在同一个时间看到的数据是完全相同的。这里讨论的一致性是指强一致性(Strong Consistency),也就是所有节点接收到同样的操作时会按照完全相同的顺序执行,被一个节点提交的更新操作会立刻反映在其他通过异步或部分同步网络连接的节点上。但是,强一致性的系统往往比较难以实现,在应用中,很多时候并没有非常严格的强一致性需求。因此,可以放宽对一致性的要求,如最终一致性(Eventual Consistency)允许多个节点的状态出现冲突,但是总会存在某一个时刻,让系统达到一致的状态。相对强一致性,这些弱化的一致性称为弱一致性(Weak Consistency)。
可用性是指在有限的时间内,任何非失败的节点都能应答请求。通常情况下,服务的可用性可以用服务承诺、服务指标、服务目标等几个方面进行衡量。
分区容忍性是指即使出现信息丢失、网络或者节点失败,系统仍然能保持运作。同时具备一致性、可用性和分区容忍性的系统是不存在的,在设计系统时必须要弱化某一个特性,因此可分为下面 3 种系统类型。
弱化一致性(AP):如简单分布式同步协议 Gossip,以及 Cassandra、SimpleDB、CouchDB 数据库等。
弱化可用性(CP):如 BigTable、MongoDB、Redis 等,以及 Paxos、Raft 等共识算法。
弱化分区容忍性(CA):如某些关系型数据库及 ZooKeeper 等。
分布式系统中最基本的问题之一就是如何在各进程中达成共识。一般来说,共识算法需要满足以下属性。
- 正确性:诚实节点(按照共识算法的规则执行操作的节点)最终达成共识的值必须 是来自诚实节点提议的值。
- 一致性:所有的诚实节点都必须就相同的值达成共识。
- 终止性:诚实节点必须最终就某个值达成共识。
物联网与供应链
得益于智能设备、信息技术和传感技术的快速发展,近年来物联网技术发展迅猛,传统的中心化互联网体系已经难以满足其发展需求。首先,物联网将产生海量数据,中心化的存储方式需要投入并维护大量的基础设施,成本高昂;其次,将数据汇总至单一的中心控制系统将不可避免地产生数据安全隐患,一旦中心节点被攻击,损失难以估计;最后,由于物联网应用涉及诸多领域,不同运营商、自组织网络的加入将造成多中心、多主体同时存在,只有当各主体间存在互信环境,物联网才可协调工作。
由此可见,物联网与去中心化、去信任的区块链架构的结合将成为必然的发展趋势。智能合约将在此过程中实现物联网复杂流程的自动化、促进资源共享、保证安全与效率、节约成本等功能。Dori 等提出了一种基于区块链及智能合约的智能家居模型(42),并通过仿真验证明了该模型可以显著降低物联网设备的日常管理费用。loTeX 是一个使用区块链驱动的去中心化网络,支持包括共享经济、智能家居、身份管理与供应链在内的多种物联网生态系统[43]。
与物联网类似,供应链通常包含许多利益相关者,如生产者、加工者、零售商和消费者。其传统的合约将涉及复杂的多方动态协调,可见性有限,各方数据难以兼容,商品跟踪成本高昂且存在盲点。通过将产品从生产到出售的全过程写入智能合约,供应链将具有实时可见性,产品可以实现可追溯、可验证,欺诈和盗窃风险显著降低,并且运营成本低廉。其代表性的应用有棉花供应链[4]等。