区块链联盟链系统平台梧桐链的技术架构解析
扫描二维码
随时随地手机看文章
目前国内区块链企业级底层技术主要是由单一技术公司开发、推动。为推动我国自主企业级区块链技术发展,更好地助力技术与应用需求的融合,同济大学联合海航科技、欧冶金融、上海银行、 中国银联等企业,共同发起了梧桐链,希望通过整合项目经验、产业和社区资源,研发与行业应用场景高度融合的具有自主知识产权的区块链,塑造中国区块链技术的核心竞争力,助推我国区块链行业的快速发展。
梧桐链平台是主要针对企业、机构的区块链应用场景开发的联盟链区块链系统平台。
设计上,梧桐链结合广泛的社区经验,从企业的实际需求和应用场景出发,目标成为国内领先的具有知识产权的联盟链平台标准。梧桐链的指导设计原则是:
自主创新:
梧桐链的底层是由研究院自主研发,完全自主可控,并非照搬照抄简单修改包装;真正掌握核心技术,自主实现密码算法、智能合约引擎;
开源模式:
梧桐链将采用开源方式,由研究院和社区共同管理开发与维护;梧桐链借鉴优秀项目的设计,吸收借鉴成功经验;
聚焦行业:
梧桐链将专注于金融、供应链及教育、卫生和文化等行业;
开放社区:
梧桐链社区将采取开放原则,打造开放生态链而不是封闭系统;
梧桐链技术架构
1.总体架构
梧桐链的技术架构如下图所示,由底层平台和基于底层平台的对外应用模块构成。底层平台由网络服务、数据存储、权限管理、安全机制、共识机制、智能合约等部分构成。对外应用模块可针对不同的应用场景进行系统化定制和提供开发API等。
梧桐链支持基于私有云和公有云部署和扩展;支持节点可控授权接入,支持多种加密算法、多种共识算法;支持高性能自主智能合约引擎,提供对区块链系统的治理和运维支持,可对整个网络的运行状态进行实时监控。
1.1. 网络服务
梧桐链基于TCP/UDP的通讯协议,支持点对点P2P通讯。节点角色可根据使用情况定制扩展,分离出不参加共识而只存储或读取数据的节点,分担主网络的查询负担。
各个节点采用P2P网络技术组织网络,支持多节点的动态加入和退出。节点的加入和退出由权限管理控制,新加入的节点需要经过已经存在的节点一致同意才能够成功。
1.2.数据存储
梧桐链在运行期的数据保存在节点的内存中,当需要记录一个新的区块的时候,可以对于不同的数据,选择与其相适应的持久化方案来保存区块,包括但不限于关系型数据库、NoSQL、文件系统等。
目前梧桐链已实现使用LevelDB存储数据,并支持扩展到使用公有云存储。
1.3.权限管理
权限管理负责所有参与梧桐链的节点权限的管理,对不同节点分别授予不同的权限。此外对于梧桐链的访问和读写权限也有权限管理模块负责,链上数据只有获得授权的用户才能够访问。
基于数据在节点间匿名验证的考虑,梧桐链研发团队正在开发零知识正明和环签名算法,将在后续的版本中上线。
1.4.安全机制
梧桐链的设计上需要充分考虑企业级的安全性要求,采用符合国家和国际标准的加密机制,在服务器实施部署上也有相应的安全性保障措施。区块和链式结构,哈希算法、非对称加密和签名算法均支持国密算法。
梧桐链基于PKI的证书体系做节点身份认证,CA服务器管理证书的发行和销毁,节点使用数字证书进行验证和加解密,防止出现节点证书重复使用、节点重复登录、节点退出等事件引起的安全问题。
梧桐链目前支持的密码学算法有:
1.5.共识机制
共识算法是使梧桐链中各个节点达成- - 致的策略和方法。梧桐链采用模块化的设计,共识算法模块为可插拔设计,内置多种共识算法模块,用户可根据系统类型和应用场景进行手动选择或动态调整。此外,梧桐链预留共识模块的接口,用户可根据自己的需求编写并替换共识模块。
梧桐链已经实现Raft和PBFT共识算法。
Raft是在Paxos基础上实现的一种分布式- 致性算法,结构简单且具有与Paxos一样的功能与性能,在联盟链的场景下,梧桐链对Raft进行了适配区块链的修改和实现,能够在半数节点出现故障的情况下保证系统的一致性。
PBFT是一- 种拜占庭容错算法,能够在节点数量不小于n=3f+1的情况下,容忍f个拜占庭节点,但由于其通讯效率较低,后续会在此基础上进行改进。
此外,梧桐链研究团队正在研究一种可扩 展的拜占庭容错算法,能够根据网络环境和安全情况动态调整算法,并可通过多节点并行,在不降低容错的情况下提高tps。
1.6.智能合约
梧桐链采用Docker容器方案来提供隔离安全环境,智能合约运行在Docker容器中,能与链系统隔离,保证了合约执行的安全性。用户可根据梧桐链技术文档,使用G0语言编写智能合约。Docker容器方案可提供良好的系统兼容性。
梧桐链将实现自定义轻量级虚拟机方案,智能合约在虚拟机中执行,确保和链上数据的隔离,避免安全风险。同时相比Docker容器方案更加高效,支持受控的I0,内置丰富的微服务接口。
依托于研究院测试平台,在设计和开发过程中,梧桐链将引入智能合约安全测试体系,提供测试工具来检测智能合约中的安全漏洞,帮助用户发现并解决合约中的安全问题。
1.7.应用网关及SDK
SDK为开发者提供区块信息写入、查询、读取等操作,使得接入梧桐链的难度大大降低。目前梧桐链提供G0语言版本的SDK,更多语言的SDK正在开发中。同时提供HTTP Restfu1的应用网关,使得应用系统的接入更加简单、灵活。
2. 梧桐链业务架构
梧桐链业务架构如下图所示,由下而上分为云端管理层、开发框架层、业务组件层以及业务场景层。每一层都是相对独立的模块,通过接口与其他层相互调用,每一层都可以根据用户需求提供不同的功能。
2.1. 云端管理层
云端管理层是对梧桐链基础物理设备的模块化、可视化管理,根据用户的实际需求对梧桐链的基础设施进行定制,提供多节点管理、租户管理、存储管理,CA认证、通信服务、负载均衡等功能。
节点管理:对云端的物理设备提供动态管理功能,保证云端的运行,使得物理机器的状态对用户来说是透明的。服务器通过虚拟化、集群技术进行资源整合,通过云端控制平台按需生成相关主机资源。分布式计算和自动化管理,能够跨平台、分布式集群化部署,提升整体计算分析和计算资源利用率,实现整体计算成本的降低。
租户管理: 在多用户的环境下共用相同的云端,确保各用户间数据的隔离性,提供角色权限管理。
存储管理: 保证存储可靠、高效。存储服务器以主流云计算存储技术为依托,通过集群文件系统组成一个统一的存储池,为节点内的虚拟机提供逻辑磁盘存储、非结构数据存储以及整合备份服务。高可靠存储虚拟化,跨平台、可集中或分布式部署、面向资源的管理、提升整体存储能力和资源利用率。
CA认证:负责发放和管理数字证书,承担公钥体系中公钥的合法性检验的责任。
通信服务:负责云内各物理机器之间通信以及云与用户之间通信,兼容HTTP和TCP协议。
负载均衡:能够均衡应用程序的流量,将前端并发访问转发给后台多台云服务器,实现业务水平扩展,通过故障自动切换,及时地消除服务的单点故障,提升服务的可用性。
2.2.开发框架层
开发框架层也称为技术组件层,为云端开发提供了相应的工具,用户可采用这些工具对梧桐链进行开发并部署到云端管理平台,搭建满足自身需求的联盟链。开发框架层通过API向下调用云端服务平台的资源,向上为业务组件层提供服务,实时监控平台的资源使用情况,能够基于智能分析和数据挖掘提升数据的有效性,提高监控系统的实用价值,提高处理性能,并实现统一管理手段,并通过接口开放给用户。包括环境部署、开发框架、运行环境及监控和大数据分析等模块。
环境部署工具包括了集成开发工具,测试工具,协议框架,以及P2P对等网络等内容。
集成开发工具:是用于提供程序开发环境的工具,包括代码编辑器、编译器、调试器和图形用户界面等工具,集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务组件。
测试工具: 用于测试的工具,包括测试管理等。
协议部署框架: 共识协议部署在链上的框架,可插拔设计。
P2P对等网络: 用户在云端部署区块链网络节点的工具。
开发框架工具包括了智能合约的开发与配置,共识协议的开发与配置,API的开发与配置,应用前端的开发与配置等内容。利用平台提供的开发工具,用户可对链上智能合约、共识协议、API和前端界面等进行开发。
智能合约开发与配置: 通过智能合约可完成交易的条件执行,智能合约也:是交易上链的接口,支持多种主流语言编写。
共识协议开发与配置: 提供PBFT和RAFT共识算法,可自主开发共识协议。API开发与配置:接口的开发与配置工具。
应用前端开发与配置: 前端界面的开发与配置工具。
运行环境提供了服务器环境配置,应用容器,数据访问,业务规则引擎等功能。
服务器端环境: 提供针对不同系统的服务器环境配置方案,用户可根据需求快速在不同系统中完成部署。
应用容器:链码的容器运行环境配置。
数据访问: 数据访问规则,主要功能有增删改服务、查询、事务管理、并发等。并且使得底层的数据库操作对其他层来说是透明的。
运行监控: 通过标准的网络管理协议来远程监控链的运行状态,提供了多项安全配置建议。
大数据分析: 对链上产生的数据进行收集分析。
2.3.业务组件层
业务组件层将区块链作为基础,包括了区块链公共服务、链上应用服务、基础组件服务和相关服务组件,对业务进行封装,向上层提供服务。客户可以直接选择需要使用的业务模块,定制链上业务。
基础组件服务提供了一系列的模板,例如合约模板、产品模板、权限控制模板、文档模板、资产模板等,供开发者使用。服务组件则提供了客户、部门、账户、权限、渠道等功能模块。
2.4. 业务场景层
业务场景层是区块链对外服务的,提供了业务服务组件和接口组件。业务场景层是对业务组件层的进一步封装, 用户可以直接选择业务场景,通过调用给定的API或者定制业务场景下的业务组件,直接在需要的业务场景下使用梧桐链服务。
业务服务组件中包括了规则的规划、配置及执行,以及执行区块链的条件及状态等。接口组件为用户其他应用提供一个实例化的API接口。
梧桐链应用场景
联盟链适合多方参与、需要多方建立信任的场景。多方之间通过区块链的可信数据,提高信息的透明度和共享度,从而简化业务模式,降低传统模式下的信任成本,提高效率。
区块链的应用场景非常广泛,下面列出基于梧桐链的-些典型场景,这些案例在日后将不断维护更新。希望这些案例可以为读者打开思路,基于区块链的去中介化、共享可信账本的特征,从建设产业生态的角度,跳出仅从自身的角度去看待问题的思维方式,结合自身的业务场景去发现更多潜在商业机会。
1. 供应链金融
1.1.应用背景
金融服务是现代社会经济活动中必不可少的环节,而且扮演的角色越来越重要,然而现有金融体系非常复杂,面临信息不对称、不完整,甚至是欺诈带来的巨大风险,因此带来了金融服务体系更高的信用成本、决策周期,整个流程复杂、冗长、容易出错。
以大宗商品领域为例,中国作为世界最主要的大宗商品生产国和消费国,在全球大宗商品领域具有举足轻重的地位,然而随着全球经济进入下调周期,违约、骗贷事件频出,大宗商品的信用危机也逐渐显现。大宗商品信贷危机频频发生,从铜、铝、铁矿石等金属融资,到大豆、棕榈油等农产品融资;从青岛港融资骗贷事件,到天津港融资欺骗案,大宗商品融资的问题不断暴露,商品重复质押、虚假质押现象频现,动产质押的风险管理问题开始受到各方的重视和审视,成为金融机构关注的焦点。
因质押物信息不对称导致了重复质押、空单质押等风险事件的发生,严重挫伤了融资各方的相互信任,诚信经营难保障,仓储监管成难点;金融秩序被扰乱,银行贷款坏账上升,趋向于减少贷款、加速收贷,同时,大宗货物流通困难,贸易商资金链条紧张、贷款更难,经营发展陷入困境。
以钢铁产业链为例,涉及主要业务角色包括:钢铁企业、贸易商、物流商、仓储企业、金融机构、电商平台等。由于钢贸信贷事件的冲击,导致信用体系的崩溃。钢铁行业已经逐渐成为银行的审慎行业。区块链是指通过去中心化集体维护一个可靠数据库的技术方案,从技术上保障了供应链中难以解决信任机制的问题。通过各方的加入,基于区块链构建供应链金融服务平台必将有效解决供应链资产的真实性、可承兑性、防伪性、不可抵赖性,将会对交易、融资产生重要影响。
1.2. 解决方案
面向产业链上下游,打造集仓单、增信、交易、金融于一体的,开放式区块链供应链生态圈。
构建大宗资产供应链金融服务平台,解决大宗资产的定义、申报、登记、检验、增信、背书、出质等核心环节,打通大宗资产的交易及融资的通道。同时:通过“技防+人防”的资产监管体系,实现区块链流转的数字资产与实物资产的账实相符。
基于区块链的供应链金融服务平台将提供大宗动产担保资产权属登记及公示服务、大宗动产融资服务、大宗资产增信服务和企业数字资产(仓单、提单、应收账款、票据)金融服务等核心功能,如下图所示。供应链金融平台将逐步打造成大宗交易及融资的基础设施。
1.3.影响与意义
区块链技术能有效的解决货物在仓储、物流、监管环节的信息不对称问题,供应链金融服务平台既为中小微企业提供了便捷有效的融资途径,也为仓储企业拓展了业务范围。融资通道的建立必然要求通过真实、有效、唯一的资产载体,体现明确的质物权属,并实现对权属的精细化管理。供应链金融服务平台能进一步促进大宗商品交易及融资信用体系的重塑,促进行业的规范性发展。
2.超级医疗账本
2.1. 应用背景
2016年6月,国务院办公厅印发《关于促进和规范健康医疗大数据应用发展的指导意见》,部署通过“互联网+健康医疗”探索医疗服务新模式。《意见》提出要加强健康医疗大数据保障体系的建设,包括推进网络可信体系的建设和加强健康医疗数据安全保障。这些政策加速推进了电子病历信息化建设,围绕以患者为中心的电子病历信息系统建设,努力开展区域卫生信息平台建设工作,实现区域内医疗机构的互联互通和医疗信息的交换共享,提高区域医疗卫生服务水平和工作效率
现有病患医疗信息主要存储于信息产生机构(医院或第三方检测机构),信息的互通主要通过纸质打印,阻碍了大范围的大数据信息价值的挖掘及利用。一些医疗机构为了实现数据互联互通的高效调阅,采取中心化的存储方式(云端)建立了小范围联盟性质的信息共享系统。这种方式虽然在一定程度上提高了数据利用率,但是也对数据安全性提出了挑战。单一云端数据库一旦被攻击或瘫痪,会造成不可估量的数据损失和信息泄露问题。
另外,健康医疗数据共享和开放的难点在于健康医疗数据大多数是“能够识别公民个人身份和涉及公民个人隐私的电子信息”。这样的数据一旦开放共享,必然伴随着个人身份和隐私信息泄露的风险。医疗健康大数据的共享和应用是政府管理、商业发展和技术创新的需要,但也给个人隐私安全带来了威胁,这使得医疗领域的大数据共享变成了双刃剑。如何在共享和开放中做到趋利避害,成为发展健康医疗大数据应用必须克服的关口。
2.2. 解决方案
超级医疗账本基于区块链的解决方案,建立患者电子病历调阅系统和个人诊疗信息查询安全保护系统。通过对医疗信息分级访问和动态管理,实现向个人开放医疗信息。
整个方案将包含多个基于区块链技术的子系统。例如,采用区块链技术构建分布式结构体系和参与者共识协议,形成去中心的电子病历数据库系统;采用区块链技术建立电子病历云端非中心化数据库调用体系,实现数据安全查阅; 建立跨医院电子医疗信息患者查询的测试平台,实现安全病历调阅。分析和评估区块链技术在查询个人医疗信息时对隐私保护的作用和效果,研究和分析向个人开放医疗信息的可行性。
超级医疗账本方案核心功能包括:
1) 构建分布式结构体系和参与者共识协议,形成去中心的电子病历数据库系统;
2) 建立电子病历非云端、非中心化数据库调用体系;
3) 建立个人查询医疗信息时的隐私保护系统;
4) 构建基于区块链技术的电子病历共享系统上的各项精准延展应用。
2.3.影响与意义
超级医疗解决方案的特色在于借助区块链技术的不可篡改性、定向密钥功能及全网储存全网同步和认证等特点,维护医疗数据的安全性,推动医疗数据共享中信任机制的建设。
医疗信息数量大,格式复杂,对安全性要求非常高,目前国内缺乏专业的能够存储海量医疗数据的平台和应用模式。企业云和个人云平台能够满足普通数据的储存,但目前仍然难以满足健康医疗数据的特殊需求,如隐私安全、服务器性能、运行维护能力等技术要求都需要达到更高级别的标准。
采用区块链技术的超级医疗账本解决方案将成为医疗机构向个人开放医疗信息提供重要的底层系统,可为基于区块链技术建立更多医疗大数据系统积累丰富的理论和实践经验。
3. 可信电子凭证平台
3.1.应用背景
电子凭证是指证实业务的各类纸质凭证的电子化,常见的电子凭证主要来源于人们日常的消费支付,主要包括签购单、缴费账单、保单、企业小票等。近。年来,我国电子商务发展势头明显,渗透到了每一个金融环节中,凭证电子化也逐渐成为趋势。虽然电子凭证的出现为政企双方以及广大消费者的日常生活带来极大便利,但是电子数据总会存在易伪造、易篡改、易删除等问题,如何提高电子凭证的可溯源性,如何提升对电子凭证的收集、保全、审查能力等,实现数字社会的法治化,是社会、国家、企业、个人共同面临的一个实际问题。
目前,电子凭证都依赖于第三方机构提供的存储平台(包括机房存储、云存储等),基于中心化架构实现,利用自身的信用或者公信力提供电子证据的存证、保全、追溯、验证等服务。但在经济利益的驱使下,中心化存储的电子凭证可能存在被篡改、被删除、丢失,或者公证机构和当事一方合谋做假等情况。信任问题导致中心化存储的电子凭证司法效力不强,制约了凭证无纸化的推广和发展。
3.2. 解决方案
以梧桐链作为支撑技术建立联盟链平台,并提出可信电子凭证解决方案,如下图所示。该平台的应用场景可以从电子签购单逐渐延伸至电子合同、电子发票、电子保单、特定金融凭证和证明等通用的金融业务流程中,甚至可以更大范围地扩展到更多的泛金融领域。从系统参与方来看,不仅包括银联、银行、第三方收单机构、保险等金融机构,还可以纳入政府、企业、监管机构等。
平台实质用于存储电子凭证哈希值、时间戳等信息,经节点共识后写入联盟链,保障了信息的开放、透明、公正、安全,形成各参与方对数据的信任,数据实时同步至各节点,业务不会受某单一节点服务的风险影响。主要功能包括:
1)云存储,为企业提供安全、可靠的电子凭证托管服务,为持卡人提供便捷可信的电子凭证查询途径。电子凭证上送后,由银联等机构按约定算法计算电子凭证摘要,并在区块链中记录电子凭证摘要等信息,返回用于查询的索引。
2)云验证,为企业、持卡人提供校验电子凭证的服务和方式。使用第三方托管服务的企业在获取电子凭证后,可与从区块链获取的电子凭证摘要进行比对,以验证电子凭证真伪,无须担心托管模式下的凭证被恶意篡改。
3.3. 影响与意义
区块链技术提供了一种可靠的建立信任的方式,降低了互信成本,使凭证电子化服务变得更可信、更高效、更安全,解决了以下四个问题:
1)能够有效鉴定电子凭证真伪,无须担心被恶意篡改或伪造:
2)第三方托管模式能有效降低企业系统建设和运维的成本,而从具有公信力的第三方查询和获取电子凭证的方式,为企业及用户提供了安全可靠的获取渠道
3)解决数据存储行业面临的信任瓶颈,有助于业务开展;
4)以记录电子凭证摘要、流转记录等方式,使得电子凭证可追溯,满足了业务监管和审查的需求。
未来,互联网环境将从依赖于权威、制度转变为逐步依靠技术达成信任,而基于区块链的可信电子凭证应用将使业务参与各方的合法权益得到了真正的保证,有助于彻底实现凭证无纸化。