首页 > 知识点讲解
       区块链的技术架构
知识路径: > 电子商务新技术与新应用 > 区块链 > 区块链的关键技术架构和发展趋势 > 区块链关键技术架构和发展趋势 > 
被考次数:1次     被考频率:低频率     总体答错率:48%     知识难度系数:     
相关知识点:7个      
        各类区块链虽然在具体实现上各有不同,其整体架构却存在共性,如下图所示,可划分为基础设施、基础组件、账本、共识、智能合约、接口、应用、操作运维和系统管理9部分的架构。
        
        区块链技术架构图
               基础设施(Infrastructure)
               基础设施层提供区块链系统正常运行所需的操作环境和硬件设施(物理机、云等),具体包括网络资源(网卡、交换机、路由器等)、存储资源(硬盘和云盘等)和计算资源(CPU、GPU、ASIC等芯片)。基础设施层为上层提供物理资源和驱动,是区块链系统的基础支持。
               基础组件(Utility)
               基础组件层可以实现区块链系统网络中信息的记录、验证和传播。在基础组件层之中,区块链是建立在传播机制、验证机制和存储机制基础上的一个分布式系统,整个网络没有中心化的硬件或管理机构,任何节点都有机会参与总账的记录和验证,将计算结果广播发送给其他节点,且任一节点的损坏或者退出都不会影响整个系统的运作。具体而言,主要包含网络发现、数据收发、密码库、数据存储和消息通知五类模块。
               (1)网络发现。区块链系统由众多节点通过网络连接构成。特别是在公有链系统中,节点数量往往很大。每个节点需要通过网络发现协议发现邻居节点,并与邻居节点建立链路。对于联盟链而言,网络发现协议还需要验证节点身份,以防止各种网络攻击。
               (2)数据收发。节点通过网络通讯协议连接到邻居节点后,数据收发模块完成与其他节点的数据交换。事务广播、消息共识以及数据同步等都由该模块执行。根据不同区块链的架构,数据收发器的设计需考虑节点数量、密码学算法等因素。
               (3)密码库。区块链中多个环节使用密码学算法。密码库为上层组件提供基本的密码学算法支持,包括各种常用的编码算法、哈希算法、签名算法、隐私保护算法等。与此同时,密码库还涉及诸如密钥的维护和存储之类的功能。
               (4)数据存储。根据数据类型和系统结构设计,区块链系统中的数据使用不同的数据存储模式。存储模式包括关系型数据库(如MySQL)和非关系型数据库(如LevelDB)。通常,需要保存的数据包括公共数据(例如,交易数据、事务数据、状态数据等)和本地的私有数据等。
               (5)消息通知。消息通知模块为区块链中不同组件之间以及不同节点之间提供消息通知服务。交易成功之后,客户通常需要跟踪交易执行期间的记录和获取交易执行的结果。消息通知模块可以完成消息的生成、分发、存储和其他功能,以满足区块链系统的需要。
               账本(Ledger)
               账本层负责区块链系统的信息存储,包括收集交易数据,生成数据区块,对本地数据进行合法性校验,以及将校验通过的区块加到链上。账本层将上一个区块的签名嵌入到下一个区块中组成块链式数据结构,使数据完整性和真实性得到保障,这正是区块链系统防篡改、可追溯特性的来源。典型的区块链系统数据账本设计,采用了一种按时间顺序存储的块链式数据结构。
               账本层有两种数据记录方式,分别是基于资产和基于账户。基于资产的模型中,首先以资产为核心进行建模,然后记录资产的所有权,即所有权是资产的一个字段。基于账户的模型中,建立账户作为资产和交易的对象,资产是账户下的一个字段。相比而言,基于账户的数据模型可以更方便的记录、查询账户相关信息,基于资产的数据模型可以更好地适应并发环境。为了获取高并发的处理性能,且及时查询到账户的状态信息,多个区块链平台正向两种数据模型的混合模式发展。
               共识(Consensus)
               共识层负责协调保证全网各节点数据记录一致性。区块链系统中的数据由所有节点独立存储,在共识机制的协调下,共识层同步各节点的账本,从而实现节点选举、数据一致性验证和数据同步控制等功能。数据同步和一致性协调使区块链系统具有信息透明、数据共享的特性。
               区块链有两类现行的共识机制,根据数据写入的先后顺序判定,从业务应用的需求看,共识算法的实现应综合考虑应用环境、性能等诸多要求。一般来说,许可链采用节点投票的共识机制,以降低安全为代价,提升系统性能。非许可链采用基于工作量、权益证明等的共识机制,主要强调系统安全性,但性能较差。为了鼓励各节点共同参与进来,维护区块链系统的安全运行,非许可链采用发行Token的方式,作为参与方的酬劳和激励机制,即通过经济平衡的手段,来防止对总账本内容进行篡改。因此,根据运行环境和信任分级,选择适用的共识机制是区块链应用落地应当考虑的重要因素之一。
               智能合约(Smart Contract)
               智能合约层负责将区块链系统的业务逻辑以代码的形式实现、编译并部署,完成既定规则的条件触发和自动执行,最大限度的减少人工干预。智能合约的操作对象大多为数字资产,数据上链后难以修改、触发条件强等特性决定了智能合约的使用具有高价值和高风险,如何规避风险并发挥价值是当前智能合约大范围应用的难点。
               智能合约根据图灵完备与否可以分为两类,即图灵完备和非图灵完备。影响实现图灵完备的常见原因包括:循环或递归受限、无法实现数组或更复杂的数据结构等。图灵完备的智能合约有较强适应性,可以对逻辑较复杂的业务操作进行编程,但有陷入死循环的可能。对比而言,图灵不完备的智能合约虽然不能进行复杂逻辑操作,但更加简单、高效和安全。
               当前智能合约的应用仍处于比较初级的阶段,智能合约成为区块链安全的“重灾区”。从历次智能合约漏洞引发的安全事件看,合约编写存在较多安全漏洞,对其安全性带来了巨大挑战。目前,提升智能合约安全性一般有几个思路:一是形式化验证(Formal Verification)。通过严密的数学证明来确保合约代码所表达的逻辑符合意图。此法逻辑严密,但难度较大,一般需要委托第三方专业机构进行审计。二是智能合约加密。智能合约不能被第三方明文读取,以此减少智能合约因逻辑上的安全漏洞而被攻击。此法成本较低,但无法用于开源应用。三是严格规范合约语言的语法格式。总结智能合约优秀模式,开发标准智能合约模板,以一定标准规范智能合约的编写可以提高智能合约质量,提高智能合约安全性。
               系统管理(System Management)
               系统管理层负责对区块链体系结构中其他部分进行管理,主要包含权限管理和节点管理两类功能。权限管理是区块链技术的关键部分,尤其对于对数据访问有更多要求的许可链而言。权限管理可以通过以下几种方式实现:①将权限列表提交给账本层,并实现分散权限控制;②使用访问控制列表实现访问控制;③使用权限控制,例如评分/子区域。通过权限管理,可以确保数据和函数调用只能由相应的操作员操作。
               节点管理的核心是节点标识的识别,通常使用以下技术实现:①CA7认证:集中式颁发CA证书给系统中的各种应用程序,身份和权限管理由这些证书进行认证和确认;②PKI8认证:身份由基于PKI的地址确认;③第三方身份验证:身份由第三方提供的认证信息确认。由于各种区块链具有不同的应用场景,因此节点管理具有更多差异。现有的业务扩展可以与现有的身份验证和权限管理进行交互。
               接口(Interface)
               接口层主要用于完成功能模块的封装,为应用层提供简洁的调用方式。应用层通过调用RPC接口与其他节点进行通信,通过调用SDK工具包对本地账本数据进行访问、写入等操作。同时,RPC和SDK应遵守以下规则:一是功能齐全,能够完成交易和维护分布式账本,有完善的干预策略和权限管理机制。二是可移植性好,可以用于多种环境中的多种应用,而不仅限于某些绝对的软件或硬件平台。三是可扩展和兼容,应尽可能向前和向后兼容,并在设计中考虑可扩展性。四是易于使用,应使用结构化设计和良好的命名方法方便开发人员使用。常见的实现技术包括调用控制和序列化对象等。
               应用(Application)
               应用层作为最终呈现给用户的部分,主要作用是调用智能合约层的接口,适配区块链的各类应用场景,为用户提供各种服务和应用。由于区块链具有数据确权属性以及价值网络特征,目前产品应用中很多工作都可以交由底层的区块链平台处理。在开发区块链应用的过程中,前期工作须非常慎重,应当合理选择去中心化的公有链、高效的联盟链或安全的私有链作为底层架构,以确保在设计阶段核心算法无致命错误问题。因此,合理封装底层区块链技术,并提供一站式区块链开发平台将是应用层发展的必然趋势。同时,跨链技术的成熟可以让应用层选择系统架构时增加一定的灵活性。
               根据实现方式和作用目的的不同,当前基于区块链技术的应用可以划分为三类场景,如下表所示:①价值转移类,数字资产在不同账户之间转移,如跨境支付;②存证类,将信息记录到区块链上,但无资产转移,如电子合同;③授权管理类,利用智能合约控制数据访问,如数据共享。此外,随着应用需求的不断升级,还存在多类型融合的场景,如下表所示。
               
               区块链应用场景分类
               操作运维(Operation and Maintenance)
               操作运维层负责区块链系统的日常运维工作,包含日志库、监视库、管理库和扩展库等。在统一的架构之下,各主流平台根据自身需求及定位不同,其区块链体系中存储模块、数据模型、数据结构、编辑语言、沙盒环境的选择亦存在差异,详见下表,给区块链平台的操作运维带来较大的挑战。
               
               主流平台区块链技术体系架构对比
               
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2023 All Rights Reserved 软考在线版权所有