一种抗并行攻击的轻量化区块链系统技术方案

技术编号:32006672 阅读:15 留言:0更新日期:2022-01-22 18:23
本发明专利技术公开了一种抗并行攻击的轻量化区块链系统,该系统包括记账者、监督者和业务服务器;其中,所述记账者,用于根据业务服务器发送的业务数据生成并发布新的业务区块;所述监督者,用于对新发布的业务区块进行正确性验证,验证通过后接受该区块并更新区块链当前状态;还用于对整个区块链的状态进行监督;所述业务服务器,用于将需要上链的业务数据发送给记账者,还用于通过与监督者交互,以确认区块链是否处于正常状态。本发明专利技术通过“一记账多监督”的全新架构设计,并使用独有的具备抗并行计算能力的共识机制,实现了一种轻量级低成本的区块链,使得只需要极少量的计算资源和能耗,就能维持该区块链运行,具有成本低,并可极快部署的优点。快部署的优点。快部署的优点。

【技术实现步骤摘要】
采用双向保密和双向身份认证机制。
[0040]与现有技术相比,本专利技术的优势在于:
[0041]1、本专利技术通过“一记账多监督”的全新架构设计,并使用独有的具备抗并行计 算能力的共识机制,实现了一种轻量级低成本的区块链,使得只需要极少量的计算资 源和能耗,就能维持该区块链运行,具有成本低,并可极快部署的优点;
[0042]2、本区块链系统采取的“记账者多监督”模式,有效地简化了区块链共识机制, 降低了系统复杂程度和建设成本;
[0043]3、本区块链系统的记账者,采取的是非竞争式的工作量证明机制(PoW),监督 者对记账者进行工作量验证,而非记账者之间进行工作量竞争,从而避免了传统区块 链的“拼算力”的恶性竞争,同时,记账者的工作量证明采用了抗并行攻击机制,只 允许使用一个处理器的一个核心进行运算,可以有效地抵御计算集群并行攻击和量 子并行攻击;
[0044]4、本区块链系统的监督者,通过保存并迭代计算区块链当前状态的方式,并结 合对负载Hash值的验证,可以轻易发现任何对区块链数据的篡改,也可以非常方便 地处理记账者宕机等意外情况;
[0045]5、本区块链系统是一个分布式系统,记账者发布出去的区块会被各个监督者和 业务服务器保存,当任何一方出现数据丢失或错误时,都可以非常容易地恢复数据。
附图说明
[0046]图1是本专利技术的抗并行攻击的轻量化区块链系统组成示意图。
具体实施方式
[0047]下面结合附图和实施例对本专利技术的技术方案进行详细的说明。
[0048]实施例1
[0049]如图1所示,本专利技术的实施例1提供了一种抗并行攻击的轻量化区块链系统。 本系统由记账者、监督者和业务服务器组成。三者可以相互通信。记账者只有一个, 监督者和业务服务器可以有若干个。
[0050]记账者,用于根据业务服务器发送的业务数据生成并发布新的业务区块;
[0051]监督者,用于对新发布的业务区块进行正确性验证,验证通过后接受该区块并更 新区块链当前状态;还用于对整个区块链的状态进行监督;
[0052]业务服务器,用于将需要上链的业务数据发送给记账者,还用于通过与监督者交 互,以确认区块链是否处于正常状态。
[0053]下面针对每部分进行详细说明。
[0054]系统建立:
[0055]系统建立时,需要约定一种数字签名算法、一种或多种数字摘要算法(Hash)、 一个并行系数n、和一个抗并行默认数据。并在Hash算法的输出中约定k个检验比 特,以及给予这k个比特一个约定值。
[0056]记账者:
[0057]区块链建立时,记账者根据约定的数字签名算法,生成一组公私钥对,分别称为 记账者公钥和记账者私钥。记账者公布第0区块,第0区块至少包含记账者公钥。 记账者私
钥由记账者秘密妥善保存,不得泄露。
[0058]第0区块为区块链的起点,之后的区块称之为业务区块。
[0059]业务区块由区块头和负载组成。负载为业务服务器欲上传至区块链的数据(简 称:上链数据)。区块头包含如下内容:区块编号、前一区块的区块头的Hash值、负 载的Hash值、n个随机值、n个抗并行Hash值和其他扩充信息,以及对前述信息的 数字签名。其中,其他扩充信息包括例如生成时间、区块链当前状态等公知的一些信 息。
[0060]当记账者要生成新的区块时,操作如下:
[0061]1.将上链数据打包成负载,然后(用约定的数字摘要算法(下略))计算负载的 Hash值。
[0062]2.读取前一区块的区块头,计算前一区块的区块头的Hash值。将前一区块的 区块编号+1作为本区块的区块编号(如果前一区块是第0区块,则本区块的区块编 号为1)。
[0063]3.将第1个随机值设为1,将临时Hash设为抗并行默认数据。计算临时 Hash=Hash(临时Hash||区块编号||前一区块的区块头的Hash值||负载的Hash值||第1 个随机值||其他扩充信息),||表示级联运算,(需要说明的是:这只是一个示例,除第 一项临时Hash外,其他项顺序可重新约定)。如果计算得到的新的临时Hash中的k 个检验比特不等于约定值,则将第1个随机值自加1,然后重复上述计算。如果计算 得到的新的临时Hash中的k个检验比特等于约定值,将旧的临时Hash作为第1个 抗并行Hash值。
[0064]4.从m=2开始,对于第m个随机值和第m个抗并行Hash值(2≤m<n+1),依 次操作如下。将第m个随机值设为1。计算临时Hash=Hash(临时Hash||区块编号|| 前一区块的区块头的Hash值||负载的Hash值||第m个随机值||其他扩充信息)(注解 同上),如果计算得到的新的临时Hash中的k个检验比特不等于约定值,则将第m 个随机值自加1,然后重复上述计算。如果计算得到的新的临时Hash中的k个检验 比特等于约定值,将旧的临时Hash作为第m个抗并行Hash值。
[0065]5.使用约定的数字签名算法和记账者私钥,对区块编号、前一区块的区块头的 Hash值、负载的Hash值、n个随机值、n个抗并行Hash值和其他的扩充信息进行 数字签名,得到对前述信息的数字签名。并将以上数据打包成区块头,再与负载组合 成新的区块,公布出去。
[0066]监督者:
[0067]监督者是根据记账者的运行规则,对整个区块链的状态和新生成区块进行正确 性监督的角色。任何人和机构都可以充当监督者的角色。
[0068]对于整个区块链的状态,监督者在运行之初就要维护起一个监督Hash值,方法 如下:
[0069]1.第0区块的监督Hash值为Hash(第0区块)。
[0070]2.第s区块(s>0)的监督Hash值为Hash(第s

1区块的监督Hash值||第s区 块的区块头)。
[0071]3.区块链的当前状态为最新区块的监督Hash值。
[0072]对于接收到的新生成区块,监督者至少进行如下验证:
[0073]1.区块编号、前一区块的区块头的Hash值和负载的Hash值是否正确;
[0074]2.n个随机值和n个抗并行Hash值是否正确;即通过上述方法计算得到的新 的临
时Hash中的k个检验比特是否等于约定值?该部分的计算方法与生成时的方法 相同,由监督者进行计算。
[0075]3.使用第0区块中的记账者公钥,验证数字签名是否正确。
[0076]验证通过后,监督者接受该新生成区块,并更新区块链当前状态。
[0077]监督者定期或不定期地从第0区块开始重新计算区块链当前状态,若新算得的 区块链当前状态与之前记录的区块链当前状态不一致,则宣布区块链异常,并保留相 关证据。
[0078]监督者定期或不定期地从第1区块开始重新验证区块链每一个业务区块的负载 与区块头中负载的Hash值是否匹配。若有一处不匹配,则宣布区块链本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种抗并行攻击的轻量化区块链系统,其特征在于,所述系统包括记账者、监督者和业务服务器;其中,所述记账者,用于根据业务服务器发送的业务数据生成并发布新的业务区块;所述监督者,用于对新发布的业务区块进行正确性验证,验证通过后接受该区块并更新区块链当前状态;还用于对整个区块链的状态进行监督;所述业务服务器,用于将需要上链的业务数据发送给记账者,还用于通过与监督者交互,以确认区块链是否处于正常状态。2.根据权利要求1所述的抗并行攻击的轻量化区块链系统,其特征在于,所述区块链包括第0区块和按照区块编号自1递增的业务区块。3.根据权利要求2所述的抗并行攻击的轻量化区块链系统,其特征在于,所述区块链建立时,记账者根据约定的数字签名算法,生成记账者公钥和记账者私钥,其中,记账者公钥包含在第0区块,记账者私钥由记账者保存。4.根据权利要求2所述的抗并行攻击的轻量化区块链系统,其特征在于,所述业务区块包括区块头和负载,其中,所述区块头包括区块编号、前一区块的区块头的Hash值、负载的Hash值、n个随机值、n个抗并行Hash值和其他扩充信息,以及对前述信息生成的数字签名;所述负载为业务服务器发送的业务数据。5.根据权利要求4所述的抗并行攻击的轻量化区块链系统,其特征在于,所述区块头的生成方法具体包括:根据收到的业务数据计算负载的Hash值;读取前一区块的区块头,计算前一区块的区块头的Hash值,将前一区块的区块编号加1作为本区块的区块编号;生成n个随机值,并计算得到n个抗并行Hash值;使用约定的数字签名算法和记账者私钥,对区块编号、前一区块的区块头的Hash值、负载的Hash值、n个随机值、n个抗并行Hash值和其他的扩充信息生成数字签名,进而得到区块头。6.根据权利要求5所述的抗并行攻击的轻量化区块链系统,其特征在于,所述生成n个随机值,并计算得到n个抗并行Hash值;具体包括:步骤601)将第1个随机值设为1,将临时Hash值设为抗并行默认数据;步骤602)根据约定的算法由临时Hash值计算得到新的临时Hash值,判断计算得到的新的临时Hash值中的k个检验比特是否等于约定值,判断为否,将第1个随机值自加1,转至步骤602);判断为是,转至步骤603);步骤603)将旧的临时Hash值作为第1个抗并行Hash值;设置随机值序号m的初值为2;步骤604)将第m个随机值设...

【专利技术属性】
技术研发人员:符爱花杨邺
申请(专利权)人:北京岸思信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1