发布区块链标准应用模型及应用部署技术研究
发布时间:2020-04-17来源:装备保障管理网 编辑:白杰,李东云,吴先
(1.)
摘要:基于块状数据结构和分布式去中心化逻辑,定义并发布区块链标准框架模型。此模型定义标准数据接口,可扩展的结构化和格式化表达式,及由低至高的数据区块层、网络层、平台框架层、应用层、跨域层共五层,定义了可支撑任何应用的区块链环境。开发者可依据模型将应用独立部署或接入区块链网络;支持自由定义、创建、和执行智能合约,并按照合约的定义自动执行链上或链下无缝接入的应用系统。模型中的平行链,侧链和混链标准,双向兼容任何主链或行业链。在防篡改、开放、完全去中心化,及数据私密性之间达到完全兼顾,为行业提供了部署去中心化应用的区块链基础标准。
关键词:区块链;智能合约;共识算法;结构化表达式;格式化表达式;防篡改;去中心化;去中心化应用;Web3.0
中图分类号:TP31、TP39 文献标识码:A
中文引用格式:
英文引用格式:
The Standard of Blockchain Applications Model Publication and Deployment
Technologies Research Bai Jie1,Li Dongyun1,Wu Xianfeng1
(1.)
Abstract:Based on the block data structure and decentralized theory, to define and publish the standard of blockchain infrastructure and application model. This model includes the standard of data interfaces, extensible structured and formatted expressions, five layers(data block layer, network layer, framework layer, application layer and cross domain layer) to create the blockchain environment that
supports any decentralized applications(DAPP). According to this model, the developer/user can connect its applications to the blockchain network or deploy it individually, and to define, create and execute smart contracts freely, and to link the on-chain and off-chain application systems automatically. The standard of parallel chain, side chain and mixing chain has the ability of two-way compatibility with any existing chains. It takes account of the sides in terms of data unchangeable, openness, decentralization and security, provides the fundamental blockchain standard of DAPP deployment.
Keywords:Blockchain; Smart Contract; Consensus Algorithm; Structured Expressions; Formatted Expressions; Unchangeable;Decentralization;Decentralized Applications; Web3.0
0 引言
区块链提供了一种去除中心化的系统思想理念,这种思想最根本原理就是通过公众共识的方式,创建一个相对客观的抗抵赖数字环境。区块链以分布式数据技术为基础,加密技术为手段,对数据副本的分布存储和抗抵赖验证。目前的区块链平台,都是基于分布式技术,密码学,点对点网络,及各种共识算法搭建的。这些区块链平台,无论是理论上或实际应用中,以及是否支持具体现实中的应用落地,均存在问题,并且各个平台相互隔离,导致数据和应用的碎片化及孤岛现象。其主要原因是:这些平台虽然采用了区块链思想,但从具体的技术架构设计环节,并没有从系统化的角度侧重考虑对于应用的部署和支撑。
本文定义发布了区块链标准应用模型及应用部署的方法,提出了应用系统独立部署到区块链的完整系统级解决方法。该方法通过标准化及支持自由扩展的数据接口,标准结构化及格式化的表达式用以描述任何智能合约,以及从数据区块层至跨域层(数据区块层,网络层,平台框架层,应用层,跨域层。由低至高共计五层)的系统模型,提供一个可以容纳并支撑任何应用的区块链环境。支持任何开发者快速的将自己开发的任何应用部署到该区块链平台;自由的定义并创建智能合约,并按照合约的定义,自动执行链上或链下任何应用系统或程序;支持将其已有的任何应用业务系统无缝的与主链对接;模型中的平行链和混链模式,可以双向兼容任何区块链主链或行业链。
模型既保证了抗抵赖性、开放性和完全的去中心化,同时保证了数据的私密性。我们在防篡改性、开放性、完全的去中心化,及数据私密性之间,达到了完全兼顾。解决当前区块链技术本身存在的缺陷,为各行业提供了在区块链环境中的应用落地方法和基础设施。
1 Web3.0 与区块链标准网络应用模型
1.1 目前Web3.0 架构的缺陷
当前对于Web 3.0 的描述中具代表性的是Stephan Tual 的描述,该描述对Web3.0 做了抽象概括,但在具体应用实施中有不足之处:将数据层跨接在网络层之上,但是二者的关系应该是相反的,至多是平行的关系。同时,当前这些碎片化、孤岛化的区块链网络、数据及DApps 的融合缺乏有效的手段。
1.2 定义发布区块链标准网络应用Web3.0 模型(ChainNetWork Web3.0,CNWW3 模型)相对于现有的中心化互联网及应用,基于去中心化思想而构建的互联网框架及应用,与最终在这些应用之上的跨域聚合,融合现有的中心化互联网和应用,组成的完整的去中心化,部分领域完全自治的生态环境,是区块链Web3.0 标准网络框架的完整描述。
去中心化应用层与跨域层,是CNWW3 模型针对应用部署的定义,目标:支持任何链下应用系统无缝接入或直接部署到链上;任何应用系统可采用热插拔的方式上链或下链;支持任何链上的系统实现跨域交互。
图1 区块链标准网络应用Web3.0 模型(CNWW3 模型)
各个层级的描述和定义可以参考图1。实现跨域层的基础是提供可支持跨链的合约和共识系统。
1.3 针对CNWW3 模型的定义和描述
第1 层,数据区块层(DataBlockLayer)。定义:基本物理数据块的顺序集合,是主链的基本组成单元,还有相应的数字凭证和文件。描述:提供全网的分布式数据存储,通过诸如IPFS,加密,访问控制等技术来实现数据的去中心化式存储,加解密和使用。工作方式:通过提供全局一致性的数据接口进行数据的存储,加密和访问能力。
第2 层,网络交换层(NetworkLayer)。定义:集合多种通信协议,是各个节点相互通信和节点发现,数据和信息交换的基础网络设施。描述:系统的分布式节点通过网络交换层完成组网,数据的交换和同步,共识协商,交易广播等功能。工作方式:通过分层的P2P 网络,实现节点的自动登记和发现,并完成最终的数据和信息的交换。
第3 层,平台框架层(FrameworkLayer)。定义:不同链能力集合,链与链间的相互功能注册、发现、集成平台,跨链间交互的基础。描述:基于数据和网络,框架层提供对应的基础区块链功能和架构。其中最重要的能力就是跨链,通过跨链功能将各个区块链能有机的进行组合,从而提供更多的能力。作用:提供去中心化应用开发基础平台和框架支持。工作方式:通过聚合不同的区块链平台,并提供有效的跨链解决方案,从而能集中使用各个区块链平台提供的能力,构建基于全网的去中心化应用。
第4 层, 去中心化应用层( DecentralizedApplication Layer)。定义:链上和链下应用的一体化创建、部署、对接和使用。描述:大部分应用场景在这一层进行实现和满足。基于框架层的支持,开发者,组织或结构都可以构建自己的去中心化应用,实现自己的需求。工作方式:和传统的应用开发类似,应用开发者通过框架层提供的各类API 或接口,定义,创建,发布和使用去中心化的应用。
第5 层,跨域层(Cross Domain Layer):定义:跨链,跨去中心化应用的聚合连接,构建完整的去中心化生态。描述:去中心化的互联网平台最重要的就是数据,网络和平台的分布式和共享,所以在应用层,也需要提供一个完整统一的方式,跨域层就需要完成这项工作。通过对不同应用的打通和连接,最终提供整体的去中心化网络。工作方式:通过用户授权和验证,从数据层到应用层,将所有去中心化应用通过有序的方式组合,提供统一的入口和完整的用户服务和体验。
2 CNWW3 模型的说明
2.1 建立公链
建立基础公链平台,规范定义数据接口和结构,支持其他区块链对接,是支持跨链基础。跨链的共识通过统一的公链平台进行提供。
(1) 公链用于跨链中继,完成交易验证,数据证明,智能合约执行;
(2) 统一接口和规范,快速接入公链并支持跨链;
(3) 提供基础区块链平台,完成区块链方案快速部署和验证;
(4) 提供公共开发平台,一次性完成多个平行链智能合约协同开发和部署。
公链内容:公链数据+平行链信息摘要(交易摘要或散列值)。通过格式化的表达式描述交易,使用压缩算法有效的提高区块存储能力,记录更多平行链的信息。公链的区块数据必须包含如下内容:
(1) 标识:序号,时间戳,区块hash 值,前区块hash 值;
(2) 归属:区块生成者;
(3) 其他信息:随机值,难度值,附加信息等等;
(4) 权重,大小;
(5) 信息摘要:交易树,状态树,收据树,数据树;
行业链或联盟链或私有链,都可以通过公链平台快速建立。CNWW3 支持调用创建链的封装快速建链。
2.2 中继模式支持跨链
跨链解决现有区块链网络相互隔离的问题,真正打通不同网络/应用之间的隔阂。
(1) 在不改变现有区块链的基础上,通过提供独立平行链,完成平行链与公链的对接;
(2) 提供标准的接口规范。新区块链基于对接规范适配开发即完成跨链。其中非常重要的一点是,如果新链是基于公链创建的,就可以认其为公链的侧链,天然具有支持跨链的功能。
2.3 共识机制
CNWW3 模型采用一种混合的共识机制(Proof ofMixture,POM),基于(Proof of Work)POW 的工作量证明与有效性权重(Proof of Validity Weight)方式。周期内由随机选定符合条件的节点,在分层的基础上,通过打包进入区块的验证信息(多个维度)的权重来决定区块的有效性,并完成全网区块同步。相关维度包括:
(1) 来源。不同平行链有不同优先级;
(2) 价值。基于一个时间段的平均值;
(3) 等待时长。等待时间越长,权重越高;
(4) 类型。不同类型有不同权重;
(5) 其他维度。合约的层级或特殊权重地址等。
2.4 扩展性和兼容性
并非所有交易合约都需全网验证,最终区块全网
一致即可;采用随机算法,各类BFT 和零知识证明等算法,通过部分节点快速确认和验证交易和合约,并最终在全网达成共识;网络结构分层和节点分类,使数据、交易、合约和共识相互分离,避免相互制约和耦合,满足独立和可扩展性。
通过CNWW3 模型中交易锁定方式,在CNWW3模型定义的公链发起有锁定条件的交易,平行链监听其他区块链的交易结果并同步至公链,完成跨链交易。对于支持智能合约的区块链网络,调用公链智能合约,通过平行链的智能合约桥接,执行主链部署的智能合约进行交易。平行链监听主链交易和状态并同步至公链,完成跨链交易。
2.5 分层机制
CNWW3 模型在协议分层:
(1) 数据层,交易层,共识层,合约层,应用层,按照对应逻辑进行清晰划分;
(2) 软件结构层面,定义接口的方式,进行独立和解耦。通过标准的Universal Block CommunicationInterface(UBCI)接口协议,各层使用不同的方式实
现(如不同的语言,环境等)对应的功能和接口;
(3) 不同层级采用不同共识的方式,相互间非阻塞异步处理;
(4) 信息哈希处理,区块同步时能有效调整已经被验证过的区块顺序。
2.6 分片机制
CNWW3 模型中,数据同步、共识处理和合约执行,通过强随机分片方式进行高速分离处理。即:数据无需全网同步,共识无需全网处理,合约无需全网执行。通过交易参与方灵活指定,达成交易快速处理。最后通过公链分层共识机制,完成最终的全网同步。
2.7 支持超过十万TPS 级别的交易和合约执行能力
通过对于交易和合约执行的共识分区隔离,通过算法确定全网的一致,能支持高交易量。在CNWW3模型中,通过交易个数动态调整区块大小,并在区块中将交易和合约本身的内容进行分离,主块中只存储交易和合约的摘要值或散列值,同时提供异步调用合约机制,提高同一个区块处理的交易和合约的个数。
2.8 关于交易
CNWW3 模型中,交易是具有状态的:
(1) 创建:基于本地新建交易,除常规内容,支持指定其他规则,如时间,区块号,验证人数,锁定时长/区块,签名规则,通知信息等;
(2) 发布:发布交易至区块链,等待验证确认;
(3) 待验证:已经收到交易,并等待验证;
(4) 验证:开始验证交易;
(5) 锁定:如指定锁定规则,则按照规则锁定;
(6) 解锁:按规则解锁交易;
(7) 成功:验证成功/解锁成功并成功进入区块;
(8) 失败:无法进入区块的其他情况。
对应的状态变迁如下:
图3 交易状态变迁示意图
2.9 智能合约
CNWW3 模型中公链提供完备的智能合约机制,便于应用开发者进行相应的智能合约开发,公链网络自身部分工作也是内置的智能合约完成的,如:节点角色分配和申报、投票和表决、平行链维护、分片机制、有效性验证调用、监察维护及非法举报、跨链合约锁定。编写智能合约没有严格的限定,通过多编程语言的API 接口,准许使用者任意选择语言对合约开发和部署。提供智能合约升级功能,可最大限度保障安全和可靠性。在公链中,智能合约的状态有如下几种:
(1) 创建:新建一个智能合约;
(2) 更新:更新一个智能合约,某些特定合约支持更新功能;
(3) 调用:执行智能合约;
(4) 暂停:暂停智能合约执行;
(5) 恢复:恢复智能合约执行;
(6) 停止:停止智能合约执行。
CNWW3 模型中智能合约调用执行方式如下:交易驱动型、消息驱动型及Oracle 驱动型。通过分层共识,分片调配,支持异步合约,为合约提供更大自由度。合约代码和数据的存储位置可在不同的节点。
对应的状态变迁如下:
2.10 角色描述
CNWW3 模型中,不同角色分别维护公链和平行链。为了在平行链和公链上以最简方式存储必要的数据,也提供分布存储能力,用于存储其他类型的基础数据。
(1) 权益所有者(O)。具有系统Token 的用户。
(2) 公链维护者(M)。任意节点都是维护者。
(3) 平行链维护者(P)。任意节点可申请成为平行链维护者。
(4) 所有的节点都自动具有监督者/候选者(C)的角色。在指定周期内未被选中承担M 或者P 角色的节点,可以自动作为C 的角色进行监督和监察的工作。也可能被选中作为M 或P 的角色,在不同阶段承担不同角色。
(5) 公链服务提供者(S)。提供公链服务的节点。
(6) 数据存储者(D)。分布式数据存储的节点。
2.11 网络平台
CNWW3 模型对于网络层是可自动伸缩的自适应网络,分层如下图:
(1) 公链平台,平行链平台和基础数据存储平台,在点对点网络层分为公链层、平行链层和数据存储层;
(2) 公链层网络承担最高并发和同步要求的网络层,处于最高优先级。当节点身兼多职,对应公链的网络信息将是第一优先级;
(3) 平行链网络的能动态调整和伸缩;
(4) 数据存储网络支持数据的安全性校验。
3 CNWW3 模型的应用场景
几种常见场景的描述如下,便于更进一步理解方案内容。
3.1 平行链维护
CNWW3 模型提供支持以太坊及其他区块链的平行链。开发者可按照CNWW3 模型的定义进行实施,完成第三方区块链平行链接入。同步母链区块链信息到平行链,并触发公链智能合约执行;同步公链交易/智能合约到平行链,并触发母链智能合约进行交易/合约执行。
这两项工作,均涉及到平行链的数据和状态的维护,下面是涉及到的相应操作步骤:
(1) 周期内平行链选择维护节点Pn;
(2) 同步上一个周期内的Pn-1 节点的数据到Pn;
(3) 触发平行链的交易和合约;
(4) 平行链触发母链的交易和合约;
(5) Pn 节点查询母链的执行结果;
(6) 触发公链的交易和合约;
(7) Pn 节点查询公链的执行结果;
(8) Pn 节点提交母链结果至公链;
(9) Pn 节点提交公链结果至母链;
(10) Pn 节点打包平行链区块并广播;
(11) Pn 节点提交平行链区块结果至公链;
(12) 公链完成最终验证并打包区块。
3.2 跨链交易/智能合约执行
首先需要考虑的是交易部分,其中涉及到两种类型的母链,一种是支持智能合约的,如以太坊,另外一类是完全不支持智能合约的,需要分别进行考虑。
3.2.1 无智能合约能力的母链跨链交易——不支持锁定
该场景下,通过公链的交易状态属性,能完成对应的跨链交易。
整个过程简要描述如下:
(1) PB……>PA(x)(锁定交易);
(2) OA——>OB(y)(起始链交易);
(3) PB——>PA(x)(锁定交易确认);
(4) PA……>PB(x)(再次锁定交易);
(5) DB——>DA(z)(目标链交易);
(6) PA——>PB(x)(再次锁定交易确认)
3.2.2 无智能合约能力的母链跨链交易——支持锁定
母链支持锁定状态的话,一种可能的跨链交易方式如下:
(1) OA……>OB(y)(起始链锁定交易);
(2) DB——>DA(z)(目标链交易);
(3) OA——>OB(y)(起始链锁定交易确认)
3.2.3 有智能合约能力的母链跨链交易
这种场景下的跨链交易,通过智能合约的支持,将大大降低对应的难度,与类型3.2.2 相比,在OB和DB 上均可以通过智能合约,完成对应的锁定和释放工作,同时,交易的结果可以直接通过消息告知,不用通过OP 和DP 进行轮询查找。
3.2.4 跨链智能合约执行
智能合约的执行,母链一定是支持智能合约的。这种方案和具有智能合约的母链跨链交易原理是一致的,就不做描述,可以通过公链的智能合约能非常便捷地完成对应的跨链合约。
结论
本方案通过对现有区块链平台的分析并结合实际的行业需求,在多个维度对区块链技术和应用快速落地进行了突破,提出相关的改进和解决方案,完成并发布CNWW3 模型标准:
(1) 通过标准的接口和数据结构定义,任何应用均可以无缝接入区块主链。解决传统应用上链的问题;
(2) 通过标准,结构化和可扩展的描述表达式完成智能合约的描述。突破了当前没有一套标准的智能合约表达描述,所有的系统只能自己定义自己的合约执行系统,不能够相互兼容的问题;
(3) 通过中继方式,使用侧链技术和平行链技术完成跨链的信息和价值交换。解决了当前区块链主链相互不兼容的难点;
(4) 将分布式网络进行分层处理,提供不同的优先级,保障最重要的信息和数据进行交换和同步。
(5) 通过交易和合约完整状态定义,提供交易验证的后置技术方案。解决交易和验证的高并发问题。通过CNWW3 标准模型,现有的区块链网络可以快速进行跨链的价值和信息交换,新的应用也能基于公链进行快速开发,部署和验证,最终构建完整的基于去中心化网络的应用生态体系。
参考文献
(收稿日期:2018-**-**)
作者简介
白杰,男,1980 年6 月出生;系统分析师,高级技术职称(国家副高职);主要研究方向:信息安全,数字加密与身份识别,数据基因技术,数字基因工程,超大规模数据传输与处理,基于“云”网络的大规模数据集中并发运算处理技术,基于“云”网络的大规模数据分布式协同运算处理技术。
李东云,男,1981 年10 月出生;2004 年毕业于北京大学电子信息科学与技术专业,长期从事智能设备,网络系统安全和互联网技术的研究和开发工作。
吴先锋,男,1978 年11 月出生;2009 年毕业于法国国立土伦大学计算机软件专业,硕士;从事算法和软件及系统结构研究、软件中间件服务器研发。
版权文术,未经授权禁止转发,否则将追究法律责任。