Login
欢迎来到未来世界

您现在的位置是: 首页 > 计算机 > 区块链

区块链

区块链关键技术架构分析论文(区块链关键技术架构分析论文范文)

区块链 加入收藏
各类区块链虽然在具体实现上各有不同,其整体架构却存在共性, 本白皮书建议了一种可划分为基础设施、基础组件、账本、共识、智能合约、接口、应用、操作运维和系统管理 9 部分的架构。图:区块链技术架构图基础
各类区块链虽然在具体实现上各有不同,其整体架构却存在共性, 本白皮书建议了一种可划分为基础设施、基础组件、账本、共识、智能合约、接口、应用、操作运维和系统管理 9 部分的架构。

图:区块链技术架构图
基础设施(Infrastructure)
基础设施层提供区块链系统正常运行所需的操作环境和硬件设 施(物理机、云等),具体包括网络资源(网卡、交换机、路由器等)、 存储资源(硬盘和云盘等)和计算资源(CPU、GPU、ASIC 等芯片)。 基础设施层为上层提供物理资源和驱动,是区块链系统的基础支持。
区块链关键技术--基础组件(Utility)

基础组件层可以实现区块链系统网络中信息的记录、验证和传播。 在基础组件层之中,区块链是建立在传播机制、验证机制和存储机制 基础上的一个分布式系统,整个网络没有中心化的硬件或管理机构, 任何节点都有机会参与总账的记录和验证,将计算结果广播发送给其 他节点,且任一节点的损坏或者退出都不会影响整个系统的运作。具 体而言,主要包含网络发现、数据收发、密码库、数据存储和消息通 知五类模块。
1)网络发现 区块链系统由众多节点通过网络连接构成。特别是在公有链系统中,节点数量往往很大。每个节点需要通过网络发现协议发现邻居节 点,并与邻居节点建立链路。对于联盟链而言,网络发现协议还需要 验证节点身份,以防止各种网络攻击。
2)数据收发 节点通过网络通讯协议连接到邻居节点后,数据收发模块完成与其他节点的数据交换。事务广播、消息共识以及数据同步等都由该模 块执行。根据不同区块链的架构,数据收发器的设计需考虑节点数量、密码学算法等因素。
3)密码库 区块链中多个环节使用密码学算法。密码库为上层组件提供基本的密码学算法支持,包括各种常用的编码算法、哈希算法、签名算法、 隐私保护算法等。与此同时,密码库还涉及诸如密钥的维护和存储之 类的功能。
4)数据存储 根据数据类型和系统结构设计,区块链系统中的数据使用不同的数据存储模式。存储模式包括关系型数据库(如 MySQL)和非关系 型数据库(如 LevelDB)。通常,需要保存的数据包括公共数据(例 如:交易数据、事务数据、状态数据等)和本地的私有数据等。
5)消息通知 消息通知模块为区块链中不同组件之间以及不同节点之间提供消息通知服务。交易成功之后,客户通常需要跟踪交易执行期间的记 录和获取交易执行的结果。消息通知模块可以完成消息的生成、分发、 存储和其他功能,以满足区块链系统的需要。
区块链关键技术--账本(Ledger)


账本层负责区块链系统的信息存储,包括收集交易数据,生成数 据区块,对本地数据进行合法性校验,以及将校验通过的区块加到链 上。账本层将上一个区块的签名嵌入到下一个区块中组成块链式数据 结构,使数据完整性和真实性得到保障,这正是区块链系统防篡改、 可追溯特性的来源。典型的区块链系统数据账本设计,采用了一种按时间顺序存储的块链式数据结构。
账本层有两种数据记录方式,分别是基于资产和基于账户。基于 资产的模型中,首先以资产为核心进行建模,然后记录资产的所有权, 即所有权是资产的一个字段。基于账户的模型中,建立账户作为资产 和交易的对象,资产是账户下的一个字段。相比而言,基于账户的数 据模型可以更方便的记录、查询账户相关信息,基于资产的数据模型 可以更好地适应并发环境。为了获取高并发的处理性能,且及时查询 到账户的状态信息,多个区块链平台正向两种数据模型的混合模式发展。
表 1:账本层两种模型对比

1)网络发现区块链系统由通过网络连接的许多节点组成。特别是在公链系统中,节点的数量往往非常大。每个节点需要通过网络发现协议发现邻居节点,并与邻居节点建立链接。对于联盟链,网络发现协议还需要验证节点的身份,以防止各种网络攻击。
2)数据收发模块通过网络通信协议连接到邻居节点后,完成与其他节点的数据交换。广播、消息一致性和数据同步都由该模块执行。根据不同区块链的架构,数据收发器的设计需要考虑节点数量、加密算法等因素。
3)在密码库的区块链中,密码算法被用于许多环节。密码库为上层组件提供基本的密码算法支持,包括各种常用的编码算法、哈希算法、签名算法、隐私保护算法等。同时,密码库还涉及到密钥的维护和存储等功能。
4)数据存储是根据数据类型和系统结构设计的,区块链系统中的数据采用不同的数据存储方式。存储模式包括关系数据库(如MySQL)和非关系数据库(如LevelDB)。一般要保存的数据包括公共数据(如交易数据、交易数据、状态数据等。)和本地私有数据。
5)消息通知消息通知模块提供区块链中不同组件之间以及不同节点之间的消息通知服务。交易成功后,客户通常需要跟踪交易执行过程中的记录,获取交易执行的结果。通知模块可以完成消息的生成、分发、存储等功能,满足区块链系统的需求。【/br/】区块链的关键技术——ledger【/br/】【/br/】ledger层负责区块链系统的信息存储,包括收集交易数据,生成数据块,验证本地数据的合法性,将通过验证的块加入到链中。账页层将前一个块的签名嵌入到下一个块中,形成区块链数据结构,保证了数据的完整性和真实性,这是区块链系统防篡改和可追溯特性的来源。典型的区块链系统数据分类帐设计采用按时间顺序存储的区块链数据结构。


共识(Consensus)--区块链关键技术

共识层负责协调保证全网各节点数据记录一致性。区块链系统中 的数据由所有节点独立存储,在共识机制的协调下,共识层同步各节点的账本,从而实现节点选举、数据一致性验证和数据同步控制等功能。数据同步和一致性协调使区块链系统具有信息透明、数据共享的 特性。
表2:两种共识机制的比较


区块链有两类现行的共识机制,根据数据写入的先后顺序判定, 如上表所示。从业务应用的需求看,共识算法的实现应综合考虑应用 环境、性能等诸多要求。一般来说,许可链采用节点投票的共识机制, 以降低安全为代价,提升系统性能。非许可链采用基于工作量、权益 证明等的共识机制,主要强调系统安全性,但性能较差。为了鼓励各 节点共同参与进来,维护区块链系统的安全运行,非许可链采用发行 token 的方式,作为参与方的酬劳和激励机制,即通过经济平衡的手 段,来防止对总账本内容进行篡改。因此,根据运行环境和信任分级, 选择适用的共识机制是区块链应用落地应当考虑的重要因素之一。
表 3:共识算法对比
区块链关键技术--智能合约(Smart Contract)


智能合约层负责将区块链系统的业务逻辑以代码的形式实现、编 译并部署,完成既定规则的条件触发和自动执行,最大限度的减少人 工干预。智能合约的操作对象大多为数字资产,数据上链后难以修改、 触发条件强等特性决定了智能合约的使用具有高价值和高风险,如何 规避风险并发挥价值是当前智能合约大范围应用的难点。
智能合约根据图灵完备6与否可以分为两类,即图灵完备和非图 灵完备。影响实现图灵完备的常见原因包括:循环或递归受限、无法 实现数组或更复杂的数据结构等。图灵完备的智能合约有较强适应性, 可以对逻辑较复杂的业务操作进行编程,但有陷入死循环的可能。对 比而言,图灵不完备的智能合约虽然不能进行复杂逻辑操作,但更加简单、高效和安全。

表 4:部分区块链系统的智能合约特性
当前智能合约的应用仍处于比较初级的阶段,智能合约成为区块链安全的“重灾区”。从历次智能合约漏洞引发的安全事件看,合约编 写存在较多安全漏洞,对其安全性带来了巨大挑战。目前,提升智能 合约安全性一般有几个思路:一是形式化验证(Formal Verification)。 通过严密的数学证明来确保合约代码所表达的逻辑符合意图。此法逻 辑严密,但难度较大,一般需要委托第三方专业机构进行审计。二是 智能合约加密。智能合约不能被第三方明文读取,以此减少智能合约 因逻辑上的安全漏洞而被攻击。此法成本较低,但无法用于开源应用。 三是严格规范合约语言的语法格式。总结智能合约优秀模式,开发标 准智能合约模板,以一定标准规范智能合约的编写可以提高智能合约 质量,提高智能合约安全性。
区块链关键技术--系统管理(System Management)

系统管理层负责对区块链体系结构中其他部分进行管理,主要包 含权限管理和节点管理两类功能。权限管理是区块链技术的关键部分, 尤其对于对数据访问有更多要求的许可链而言。
权限管理可以通过以 下几种方式实现:
1)将权限列表提交给账本层,并实现分散权限控 制;
2)使用访问控制列表实现访问控制;
3)使用权限控制,例如评 分/子区域。通过权限管理,可以确保数据和函数调用只能由相应的操作员操作。
节点管理的核心是节点标识的识别,通常使用以下技术实现:
1) CA7认证:集中式颁发 CA 证书给系统中的各种应用程序,身份和权 限管理由这些证书进行认证和确认。
2)PKI8认证:身份由基于 PKI 的地址确认。
3)第三方身份验证:身份由第三方提供的认证信息确 认。由于各种区块链具有不同的应用场景,因此节点管理具有更多差 异。现有的业务扩展可以与现有的身份验证和权限管理进行交互。
接口(Interface)--区块链关键技术

接口层主要用于完成功能模块的封装,为应用层提供简洁的调用 方式。应用层通过调用 RPC 接口与其他节点进行通信,通过调用 SDK 工具包对本地账本数据进行访问、写入等操作。
同时,RPC 和 SDK 应遵守以下规则:
一是功能齐全,能够完成交易和维护分布式账本, 有完善的干预策略和权限管理机制。
二是可移植性好,可以用于多种 环境中的多种应用,而不仅限于某些绝对的软件或硬件平台。
三是可 扩展和兼容,应尽可能向前和向后兼容,并在设计中考虑可扩展性。
四是易于使用,应使用结构化设计和良好的命名方法方便开发人员使 用。常见的实现技术包括调用控制和序列化对象等。
区块链关键技术 -- 应用(Application)

应用层作为最终呈现给用户的部分,主要作用是调用智能合约层 的接口,适配区块链的各类应用场景,为用户提供各种服务和应用。由于区块链具有数据确权属性以及价值网络特征,目前产品应用中很多工作都可以交由底层的区块链平台处理。在开发区块链应用的过程 中,前期工作须非常慎重,应当合理选择去中心化的公有链、高效的 联盟链或安全的私有链作为底层架构,以确保在设计阶段核心算法无 致命错误问题。因此,合理封装底层区块链技术,并提供一站式区块 链开发平台将是应用层发展的必然趋势。同时,跨链技术的成熟可以 让应用层选择系统架构时增加一定的灵活性。
根据实现方式和作用目的的不同,当前基于区块链技术的应用可 以划分为三类场景,如表 5 所示:一是价值转移类,数字资产在不同 账户之间转移,如跨境支付;二是存证类,将信息记录到区块链上, 但无资产转移,如电子合同;三是授权管理类,利用智能合约控制数 据访问,如数据共享。此外,随着应用需求的不断升级,还存在多类 型融合的场景。
表 5:区块链应用场景分类

根据图灵完备性6与否,情报契约可以分为两类,即图灵完备性和非图灵完备性。影响图灵完备性的常见原因包括:循环或递归受限、无法实现数组或更复杂的数据结构等。图灵的完全智能契约具有很强的适应性,可以用复杂的逻辑对业务操作进行编程,但可能会陷入死循环。对我来说,图灵的不完全智能契约更简单、更高效、更安全,虽然它不能进行复杂的逻辑运算。

表4:部分区块链系统中智能合约的特点
目前智能合约的应用还处于比较初级的阶段,智能合约已经成为区块链安全的“重灾区”。从以往智能合约漏洞引发的安全事件来看,合约写作存在诸多安全漏洞,给其安全性带来极大挑战。目前,提高智能合约的安全性一般有几种思路:第一,形式化验证。通过严格的数学证明,保证契约代码表达的逻辑符合意图。这个法律逻辑很严密,但是很难。一般需要委托第三方专业机构进行审计。第二个是智能合约加密。智能合约不能被第三方明文读取,以减少智能合约因逻辑安全漏洞而受到的攻击。这种方法成本低,但不能用于开源应用。第三,严格规范合同语言的语法格式。总结智能合同的优秀模式,开发标准化的智能合同模板,用一定的标准规范智能合同的编制,可以提高智能合同的质量和安全性。
区块链的关键技术——系统管理

系统管理负责区块链架构其他部分的管理,主要包括权限管理和节点管理两个功能。权限管理是区块链技术的关键部分,尤其是对于对数据访问有更多要求的许可链。


区块链关键技术 -- 操作运维(Operation and Maintenance)

操作运维层负责区块链系统的日常运维工作,包含日志库、监视库、管理库和扩展库等。在统一的架构之下,各主流平台根据自身需求及定位不同,其区块链体系中存储模块、数据模型、数据结构、编 辑语言、沙盒环境的选择亦存在差异,详见表 6,给区块链平台的操 作运维带来较大的挑战。
表6:主流平台区块链技术架构对比

(文章来源:摘自《区块链白皮书(2018)》

图集详情底部广告位