一种基于联盟链的去中心化CA构建方法及其系统与流程

文档序号:14452845阅读:333来源:国知局

本发明属于区块链应用技术领域,具体涉及一种基于联盟链的去中心化ca构建方法及其系统。



背景技术:

区块链作为比特币的底层技术支持,于2009年初正式诞生。虽然区块链以纯粹的技术目的诞生,但是其所能带来的益处已经远超技术范畴本身。区块链为我们带来一种开放、共享、去中心化的架构,与当代互联网技术的精神不谋而合,并将信息的传递升华为价值的传输,成为目前最具影响力与发展前景的技术之一。

根据参与者不同,区块链可分为公有链、联盟链和私有链。公有链,顾名思义,即允许任何人参与并维护,其代表是当前最具影响力的区块链实现:比特币系统。在公有链上,交易信息完全公开,并假设网络各节点互不信任,区块链采取适当的共识技术相对公正地从几乎所有参与者中选拔记账节点,使网络全体成员共同维护区块链账本;但是为保证共识的合理性与安全性,公有链的运行效率相对较低。

在公有链的基础上引入相应的许可机制,即将公有链转换成联盟链和私有链。私有链上进行的是相对集中的管理,链内信息不对外公开,但是一般简化或省去了繁琐的共识步骤,使得私有链拥有极高的运行效率。联盟链则介于两者之间,由若干组织一起合作维护一条区块链,该区块链的使用必须是有权限的管理,相关信息会得到保护,典型如银联组织。根据实际情况设计的联盟链以取得各项性能的平衡为目标,且具有目前相对最高的商业应用价值。

下面以著名的开源联盟链项目hyperledgerfabric为例说明联盟链的ca(certificateauthority)管理机制,hyperledger项目是开源界面向开放、标准区块链技术的首个重要探索,在linux基金会的支持下吸引了众多科技和金融巨头的参与,fabric是hyperledger三大账本平台项目之一。

在fabric1.0版本的设计中,参与者的区块链证书由独立的ca模块进行管理,各个参与用户向ca申请注册或交易所需的各种证书,由ca进行证书发放。将证书管理集中于一点进行是联盟链实现的一种常见做法,这种证书管理架构提升了区块链网络的运行效率,节约了相关维护的资源与时间。但是ca模块本质上是一个中心化系统,不可避免地为联盟链引入了中心化所带来的威胁,并容易成为入侵者集中攻击的目标。证书管理模块的破解将直接影响到整个联盟链的稳定;一方面,对于联盟链系统管理员,其可以对ca模块进行非法更改并从中获利;另一方面,一旦黑客或恶意成员侵入系统并劫持了ca模块,则所有联盟成员的账户资产与交易都将面临严重威胁。在这种情况下,各成员为保护各自区块链机密信息(如用于签名的私钥)所做的努力甚至都将无效化。



技术实现要素:

鉴于上述,本发明提供了一种基于联盟链的去中心化ca构建方法及其系统,该方法在联盟链的基础上再构建一条用于联盟链证书管理的区块链(ca链),将证书相关的操作以区块链交易的形式完成,消除了中心化证书机构带来的威胁。

一种基于联盟链的去中心化ca构建方法,包括如下步骤:

(1)对ca链及联盟成员初始化;

(2)完成ca链的交易构建;

(3)完成ca链的交易认证;

(4)进行ca链共识;

(5)传输ca链账本信息至联盟链。

进一步地,所述步骤(1)的具体实现过程如下:

1.1对于参与联盟链业务的成员,根据各个联盟成员的信誉以及影响力因素,经过协商后确定各自的影响力权重,并满足其中n为联盟成员总数,ai为第i个联盟成员的影响力权重;

1.2根据步骤1.1确定的各成员影响力权重设置ca链共识中各成员的记账概率,成员的记账概率与成员影响力权重一致,此外由联盟根据情况确定ca链共识周期t,同时确定ca链上证书生效所要求的最长链区块后连接的最少区块数s,s的确定根据共识周期t、联盟成员数n以及ca链所要求的安全等级由全体联盟成员协商决定;

1.3联盟成员根据实际需求选择公开或保密地生成各自的ca链账户地址,并部署到ca链上,之后启动ca链系统并使之开始运行,同时ca链上不设置挖矿奖励,交易内容为固定格式文本信息。

进一步地,所述步骤1.1中联盟成员的影响力权重在ca链的运行过程中定期调整,数据由全体联盟成员定期更新,对于在联盟链内存在恶意行为的成员将降低其影响力权重,诚实成员的影响力权重将得到保持或提高。

进一步地,所述步骤(2)的具体实现过程如下:

2.1根据交易的目的,将交易分为三种类型:ca链新用户注册、联盟链证书签发、联盟链证书吊销;新用户注册的唯一途径是已有用户的邀请及通过ca链共识,对于邀请新成员的情况,应由已有ca链成员发起ca链新用户注册交易;对于为自己在联盟主链上的节点(账户)申请证书的情况,应发起联盟链证书签发交易;对于为自己在联盟链上的节点(账户)吊销证书的情况,应发起联盟链证书吊销交易;

2.2根据交易类型,交易发起者为交易填充相应的交易内容信息与签名信息,保证信息格式符合ca链构建时达成的一致格式;

2.3将构造好的交易广播至ca链全网,使其他联盟成员获取相关的交易内容以同步联盟主链的证书变动,并令其为交易背书;

2.4在广播交易后监听下一区块,直至ca链的最长链上包含自己广播的交易且该区块后连接的区块数达到s,方可确定交易已经有效,否则检查交易格式与内容后再次广播,直至交易有效。

进一步地,所述ca链新用户注册的交易目标为新用户自行构造且符合ca链账户格式要求的ca链账户,交易内容为账户描述信息与注册标记;所述联盟链证书签发的交易目标为联盟成员自己的ca链账户,交易内容为申请证书内容信息(如账户地址与公钥)及证书生效标记;所述联盟链证书吊销的交易目标为联盟成员自己的ca链账户,交易内容为待吊销证书内容信息(如账户地址与公钥)及证书失效标记。

进一步地,所述步骤(3)的具体实现过程为:由各联盟成员对ca链广播的交易进行监听,对于符合格式、内容合法、非重复且联盟成员认可的交易,由联盟成员将此交易先记入自己构造的下一区块中并排序,随后继续向全网广播,否则忽略此交易并停止向网络继续广播。

进一步地,所述步骤(4)的具体实现过程为:由系统根据各联盟成员的影响力权重决定的记账概率选出该轮共识周期t内记账的联盟成员,此轮该记账成员自己构造的区块将被广播并添加到ca链总账本上;在成员构造该轮的区块时,如若对前面区块内的交易内容(证书变动)不满,可在该区块处进行分叉;分叉机制、最长链有效机制、区块数s认证机制与影响力权重调整机制将共同抵御恶意成员利用自己的概率记账权胡作非为的情况。

进一步地,所述步骤(5)的具体实现过程为:传输ca链账本信息到联盟链由各个联盟成员自行完成,在联盟成员为自己在联盟链上申请账户及必要证书后,联盟链的相关证书信息来自ca链账本,并作为联盟链交易的依据;实质上联盟成员通过自己在ca链上的账户为己方在联盟链上执行实际业务的账户完成各种证书操作。

一种基于联盟链的去中心化ca构建系统,包括:

ca证书管理区块链模块,其由ca链实现(各联盟成员初始时在ca链上拥有账户),用于为联盟成员在联盟链上的账户完成证书申请与吊销、获取其他成员账户与公钥信息以及邀请联盟成员;

区块链服务模块,用于为联盟链提供账本存储、网络共识、密码学功能支持、交易广播、背书策略支持,各联盟成员账户通过调用区块链服务模块提供的服务完成联盟链上的业务;

智能合约服务模块,用于为联盟用户的交易提供智能合约的构造与运行服务。

本发明中的ca链为运行独立于联盟主链的区块链,ca链上产生的证书信息经由联盟成员流向联盟链,并作为联盟链上节点运行的基础信息。ca链上的公开证书信息以区块形式存于ca链账本,对所有联盟成员可见;对于私钥等机密信息在与公钥成对产生时由各个联盟成员自行保存,不对外公开或成为交易信息的一部分。本发明允许ca链分叉,合法证书信息以最长链上区块的记录信息为准;ca链执行的功能包括联盟新用户注册、联盟链证书签发、联盟链证书吊销,同时ca链账本记录所有证书变动信息,供联盟成员查阅使用。

基于上述技术方案,本发明相对现有技术具有以下有益技术效果:

(1)本发明给出了一种基于联盟链的去中心化ca构建方法,将原中心化的ca服务转移到去中心化的ca区块链上,几乎完全消除了联盟链中心化ca对联盟带来的威胁,能有力无效化原来针对联盟链中心化ca的各种信息嗅探与劫持攻击。

(2)本发明给出了一套ca链上的信息认证与维护方法,利用分叉机制、最长链有效机制、s区块数认证机制与影响力权重调整机制共同维护ca链的公正性与稳定性,达到了有效鼓励诚实成员、惩罚恶意成员的效果,使ca链的长期运行趋于安全与稳定,且ca链本身在联盟内诚实成员占多数的情况下不会失效,即联盟链本身能正常运作的情况下,ca总能提供稳定的服务。

(3)本发明实现了利用联盟成员对ca服务的需求促使其维护ca链,对于ca链本身,免去了一般区块链系统利用挖矿奖励激励成员维护带来的不良影响。

(4)本发明给出了一种运用ca链执行证书管理的简化联盟链系统实现,实现了一种无中心化弱点的联盟链系统,能完成一般联盟链支持的各种业务,同时支持智能合约的使用,该实现本身具有相当的可扩展性。

附图说明

图1为本发明基于联盟链的去中心化ca结构示意图。

图2为本发明基于ca链的联盟链系统结构示意图。

图3为本发明ca链初始化与联盟成员初始化流程图。

图4为本发明ca链交易构建与执行操作流程图。

具体实施方式

为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。

本发明基于联盟链的去中心化ca构建方法,包括如下步骤:

(1)ca链初始化与联盟成员(ca链成员)初始化。

1.1确定联盟成员;该步骤确定对于参与联盟链业务的成员,并根据各个联盟成员的信誉、影响力等因素,经过协商后确定各自的影响力权重,设为ai,满足其中n为联盟成员总数,在各成员权重相同的情况下,有:ai=1/n。

联盟成员影响力权重ai在ca链的运行过程中定期调整,数据由全体联盟成员定期更新;对于在联盟链内恶意行为(如吊销其他成员的合法证书)偏多的成员将降低其ai,诚实成员的ai将得到保持或提高。

1.2确定ca链共识参数;该步骤根据上一步确定的各成员影响力权重设置ca链共识各成员记账概率,被选中记账的概率与成员影响力权重ai一致。另外由联盟根据情况确定ca链共识周期t,同时确定使最长链区块信息生效所要求的区块后连接的最少区块数s,s的确定由共识周期t与联盟成员数n及ca链所要求的安全等级,由全体联盟成员协商决定。

1.3完成部署ca链;联盟成员根据实际需求选择公开或保密地生成各自的ca链账户地址,并部署到ca链上,之后启动ca链系统并使之开始运行,ca链上不设置挖矿奖励,交易内容为固定格式文本信息。

(2)ca链交易构建。

2.1确定交易类型;根据交易的目的,交易分为三种类型:ca链新用户注册、联盟链证书签发、联盟链证书吊销。新用户注册的唯一途径是已有用户的邀请及通过ca链共识,对于邀请新成员的情况,应由已有ca链成员发起ca链新用户注册交易。对于为自己在联盟主链上的节点(账户)申请证书的情况,应发起联盟链证书签发交易。对于为自己在联盟链上的节点(账户)吊销证书的情况,应发起联盟链证书吊销交易。其中,联盟链新用户注册的交易目标为新用户自行构造的、符合ca链账户格式要求的ca链账户,交易内容为账户描述信息与注册标记;联盟链证书签发的交易目标为自己(该成员的ca链账户),交易内容为申请证书内容信息(如账户地址与公钥)及证书生效标记;联盟链证书吊销的交易目标为自己(该成员的ca链账户),交易内容为待吊销证书内容信息(如账户地址与公钥)及证书失效标记。

2.2构建交易信息;根据交易类型,交易发起者为交易填充相应的交易内容信息与签名信息,保证信息格式符合ca链构建时达成一致的格式。

2.3广播交易信息;将构造好的交易广播至ca链全网,令其他联盟成员获取相关的交易内容以同步联盟主链的证书变动,并令其为交易背书。

2.4核查区块信息;在广播交易后监听下一区块,直至ca区块链的最长链上包含自己广播的交易且该区块后连接的区块数达到s,方可确定交易已经有效,否则检查交易格式与内容后再次广播,直至交易有效。

(3)ca链交易认证,由各ca链成员对ca链广播的交易进行监听,对于符合格式、内容合法、非重复且该成员认可的交易,由该成员将此交易先记入自己构造的下一区块中并排序,随后继续向全网广播,否则忽略此交易并停止向网络继续广播。

(4)进行ca链共识,由系统根据各个节点的影响力权重ai决定的备选概率选出该轮周期t内记账的联盟成员,该成员此轮自己构造的区块被广播并添加到ca链总账本上。在成员构造该轮的区块时,如若对前面的区块内的交易内容(证书变动)不满,可在该区块处进行分叉;分叉机制、最长链有效机制、s区块数认证机制与影响力权重调整机制共同抵御恶意成员利用自己的概率记账权胡作非为的情况。

(5)传输ca链账本信息到联盟链,由各个ca链成员自行完成;在ca链成员为自己在联盟链上申请账户及必要证书后,联盟链的证书相关信息来自ca链账本,并作为联盟链交易的依据;实质上联盟链成员通过自己在ca链上的节点为己方在联盟链上执行实际业务的账户完成各种证书操作。

本实施方式系统通过三个服务模块实现,即ca证书管理区块链模块、区块链服务模块与智能合约服务模块,各模块的工作如下:

(1)ca链初始化:在联盟链运行前首先运行的是ca链,其结构如图1所示,本实施例只是给出一种可能的ca链网络拓扑,具体实现不限于此。ca链运行之前执行初始化工作,其流程控制如图3所示,在该步骤不仅确定了参与联盟链的联盟成员,还确定了其在联盟内量化的影响力权重、ca链共识与相关的运行参数等;ca链初始化完成后即可投入运行,此时各个联盟成员在ca链上拥有对应的账户,但是在联盟链上还没有属于己方的账户或节点。

(2)ca链运行:在ca链运行之初,一般各个联盟成员通过其在ca链上的账户为自己在联盟链上申请业务节点及对应证书,完成联盟链的初始化;之后各联盟成员根据需要通过其ca链账户完成包括证书申请与吊销,新成员要求与检查等功能,其用于执行这些功能而构造交易的流程如图4所示;联盟链节点还可通过查询ca链账本获取联盟链上其他成员的地址与公钥信息,并作为业务逻辑的必要参数。

(3)联盟链运行:联盟链系统结构如图2所示,本实施例只是给出一种可能的联盟链网络拓扑,具体实现不限于此;经由ca链的运行完成了联盟链成员账户的初始化后,联盟链账户即可开始进行业务工作;联盟参与方在联盟链上的账户数目视其在ca链上申请的新账户证书数目而定,联盟链上的节点通过调用ca证书管理区块链模块、区块链服务模块和智能合约模块提供的服务完成相应的业务工作与联盟链维护工作。

上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1