发布区块链标准应用模型及应用部署技术研究
发布时间:2020-04-17来源:装备保障管理网 编辑:白杰,李东云,吴先
(1.)
英文引用格式:
Technologies Research
(1.)
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.
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.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 年毕业于法国国立土伦大学计算机软件专业,硕士;从事算法和软件及系统结构研究、软件中间件服务器研发。
版权文术,未经授权禁止转发,否则将追究法律责任。