CN116303493A - 一种动态跨链数据一致性审计方法 - Google Patents

一种动态跨链数据一致性审计方法 Download PDF

Info

Publication number
CN116303493A
CN116303493A CN202310138151.2A CN202310138151A CN116303493A CN 116303493 A CN116303493 A CN 116303493A CN 202310138151 A CN202310138151 A CN 202310138151A CN 116303493 A CN116303493 A CN 116303493A
Authority
CN
China
Prior art keywords
data
chain
signature
audit
source
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310138151.2A
Other languages
English (en)
Inventor
赵佳豪
张玉书
蒋佳佳
焦建博
邵震哲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University of Aeronautics and Astronautics
Original Assignee
Nanjing University of Aeronautics and Astronautics
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing University of Aeronautics and Astronautics filed Critical Nanjing University of Aeronautics and Astronautics
Priority to CN202310138151.2A priority Critical patent/CN116303493A/zh
Publication of CN116303493A publication Critical patent/CN116303493A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Automation & Control Theory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种动态跨链数据一致性审计方法,首先,为了能够以高效可靠的方式进行跨链的数据动态更新,引入了一种动态的默克尔哈希树,其能以一种较低的成本完成对数据的动态更新;其次为了保证跨链传输交易内容的安全性和隐私性,引入了AGMS来对跨链传输的交易内容进行签名,与此同时设计了三种不同的区块链,即源链,目标链和审计链构建跨链数据动态更新审计模型,并分别部署了不同的智能合约在链上以此实现高效的审计。

Description

一种动态跨链数据一致性审计方法
技术领域
本发明涉及跨链数据交互以及动态数据审计技术领域,尤其涉及一种动态跨链数据一致性审计方法。
背景技术
区块链主要是由分布式系统,计算机网络,数据库以及分布式账本这些技术相互组合而诞生的系统,其具有高度去中心化,透明性和开放性,信息不可篡改和匿名性这些特性。基于这些特性,区块链如今受到了越来越多企业和个人的关注,它也被广泛运用在不同的领域,包括金融,医疗,通信传输等。区块链的广泛运用带来了大量的交易存储,这给现如今的区块链带来了巨大的存储压力同时也对链上数据的查询计算的效率造成了极大的影响。为了能够缓解如今区块链上的存储压力,将数据存放在不同的区块链上并利用跨链技术将这些异构的区块链连接起来,能够在一定程度上缓解区块链的存储压力。
当前,主流的跨链技术分为以下几种:公证人机制,侧链技术,中继链技术以及哈希锁定。通过将单独的区块链连接起来,跨链技术很好的实现了异构区块链之间的交互。但是区块链上存储的信息在某些时候需要更新迭代,例如,一些恶意的交易信息被存储在区块链平台上,可能会对区块链系统造成危害,如以太坊上的“TheDAO”攻击就是由于脆弱的智能合约,最终采用硬分叉的方式来解决此次危机;一些存储在区块链上的信息需要随着时间的变化而修改,如当某些用户信息过期时,需要在区块链上进行信息更新。如何保障在跨链交互过程中,对于动态更新数据的一致性的验证是个值得研究的问题。
目前,关于动态数据的完整性验证方案主要集中在云存储中。主要可以将其分为两类:第一类是将同态标签和认证数据结构相结合在保证数据的完整性的同时完成数据动态更新。Erway等人介绍了一种名为DPDP的公共PoS方案,它支持完全数据动态性。它结合同态标记和基于秩的认证跳过列表来保护数据完整性。Wang等人提出了一种完全动态的数据更新验证方案,并对该方案进行了扩展,以同时支持多个审计任务。这些方案可以高效地实现数据更新,但缺点是数据一致性验证的成本很高。例如,一个典型的安全级别的一致性验证证明可以达到100KB,而以太坊的平均块大小是0.02M(20.48KB)。这意味着一个证明甚至不能存储到一个完整的块中。第二类是部分动态验证。Ateniese等人通过利用对称密钥加密,提出了一种高效的可证明数据占有(PDP)。Wang等人提出了一种灵活的分布式存储完整性审计机制,该机制利用同态令牌和分布式擦除编码数据。与第一类方案相比,这些方案可以生成更短的证明,但更新成本很高。但是,之前的研究主要利用是第三方审计机构来进行数据审计,整个审计架构包括数据所有者,云存储方以及第三方审计机构,通过第三方审计机构不定时的发送对于云存储方的挑战来完成对于数据的一致性审计,引入第三方审计机构不可避免的存在一些安全性问题。由于第三方审计机构有可能是恶意的,它可能会与云存储方共谋来损害用户的利益,同时引入第三方审计机构对于跨链场景下的去中心化特性造成了一定的影响。与此同时,云存储审计模型中第三方审计机构主要是对存储在云中的数据进行审计而不是对跨链交互过程中的数据进行一致性审计,目前缺少对于跨链过程中动态数据一致性审计方法。
因此,需要一种合理高效的方式来解决动态跨链数据一致性审计问题,以保证区块链上动态跨链数据的可靠性和准确性。
发明内容
本发明所要解决的技术问题是针对背景技术中所涉及到的缺陷,提供一种动态跨链数据一致性审计方法。
本发明为解决上述技术问题采用以下技术方案:
一种动态跨链数据一致性审计方法,包括以下步骤:
步骤1),源链中的用户节点对原始数据进行预处理,和源链协同生成盲化数据、文件签名、数据标签并构建动态的默克尔哈希树;
步骤2),源链生成数据上传交易,所述数据上传交易包含盲化数据、文件签名和数据标签;同时源链利用AGMS对生成的数据上传交易进行签名,将签名的数据上传交易发送给目标链;
步骤3),目标链在收到数据上传交易后,对其签名进行验证,签名验证不通过时拒绝存储数据,签名验证通过则接着对其中的文件签名、数据标签以及盲化数据进行一致性验证,一致性验证通过则进行存储,否则拒绝存储;
步骤4),当源链中的用户节点希望对数据进行动态更新时,首先,源链根据数据更新请求与用户节点协同对存储的盲化数据、文件签名、数据标签以及动态的默克尔哈希树进行更新,并根据数据更新请求生成数据更新请求交易,所述数据更新请求交易包含数据更新请求以及数据更新的内容,数据更新内容包含更新后的盲化数据、文件签名和数据标签;然后,源链利用AGMS对数据更新请求交易进行签名,将签名的数据更新请求交易发送给目标链;
步骤5),目标链在收到数据更新请求交易后,对其签名进行验证,签名验证不通过时拒绝进行数据更新,签名验证通过则接着对其中数据更新内容中的文件签名、数据标签和盲化数据进行一致性验证,一致性验证通过时目标链根据数据更新请求进行更新并生成审计证明发送给源链进行验证,否则拒绝进行数据更新;
步骤6),当审计链对源链和目标链之间的跨链动态数据更新一致性进行审计时,其生成质询挑战分别发送给源链和目标链;目标链和源链生成相应的存储证明和审计证明发送给审计链;审计链根据证明来验证跨链数据动态更新的一致性。
作为本发明一种动态跨链数据一致性审计方法进一步的优化方案,所述步骤1)的详细步骤为:
步骤1.1),证书授权机构CA生成相应的系统参数
Figure BDA0004086690940000031
其中,G1、GT均是阶为p的循环加法群,/>
Figure BDA0004086690940000032
是阶为q的正整数域,g∈G1是一个随机生成元,Y是系统主公钥,p和q均是1024位的大素数;
步骤1.2),源链、目标链、审计链中的用户节点进行身份注册;
步骤1.2.1),用户节点DO将身份表示为:
Figure BDA0004086690940000033
步骤1.2.2),用户节点DO与证书授权机构CA协同生成其公私钥对:[pkDO,(skDO,xDO)];
步骤1.2.3),最后用户节点DO进行身份注册,当其身份通过区块链中其余节点的验证后,用户节点DO身份注册成功,否则注册失败;
步骤1.3),源链中的用户节点DO与源链协同对原始数据F进行预处理;
步骤1.3.1),用户节点DO对F进行分块处理并对其进行盲化处理,生成盲化数据集合
Figure BDA0004086690940000034
其中B表示F被分成的区块个数,其中每个区块被分成了S个分片;
步骤1.3.2),源链根据数据集合F*生成动态默克尔哈希树并获得相应的hRoot
步骤1.3.3),源链和目标链协同生成文件签名以及数据标签{{σi}i∈[1,B]d},其中{σi}i∈[1,B]是数据标签,{αd}是文件签名。
作为本发明一种动态跨链数据一致性审计方法进一步的优化方案,所述步骤2)的详细步骤为:
步骤2.1),源链生成数据上传交易Tx1,数据上传交易Tx1包含盲化数据集合
Figure BDA0004086690940000035
文件签名{αd}以及数据标签{σi}i∈[1,B]
步骤2.2),源链利用AGMS对数据上传交易进行签名,生成签名(c,Sig);
步骤2.3),源链将数据上传交易Tx1以及签名(c,Sig)一起发送给目标链。
作为本发明一种动态跨链数据一致性审计方法进一步的优化方案,所述步骤3)的详细步骤为:
步骤3.1),当目标链收到来自源链的数据上传交易Tx1以及签名(c,Sig)后,根据以下公式验证签名(c,Sig)的正确性:
Figure BDA0004086690940000041
其中h1是哈希函数,
Figure BDA0004086690940000042
是聚合的承诺值,/>
Figure BDA0004086690940000043
是聚合的公钥,hs=h1(m)是对签名数据m哈希后计算后生成的哈希值,/>
Figure BDA0004086690940000044
是聚合签名的领导用户节点,由源链中的用户节点随机选出;
步骤3.1.1),若签名(c,Sig)验证失败,目标链拒绝对此交易内容进行存储;
步骤3.1.2),若签名(c,Sig)验证通过,目标链根据以下公式对文件签名进行验证:
e(αd,g)=e(H30||hRoot),pkDO)·e(H3(name||id(DO)),Rd)
其中,e:G1×G→GT是一个双线性映射,H3是哈希函数,α0=id(DO)||S||ts,ts是时间戳标识,
Figure BDA0004086690940000045
是随机值,/>
Figure BDA0004086690940000046
是一个随机值,/>
Figure BDA0004086690940000047
是盲化数据集标识;
步骤3.1.2.1),如果对文件签名验证失败,目标链拒绝对此交易内容进行存储;
步骤3.1.2.2),如果对文件签名验证通过,目标链继续根据以下公式进行数据标签和盲化数据一致性的验证:
Figure BDA0004086690940000048
其中,
Figure BDA0004086690940000049
是随机值,/>
Figure BDA00040866909400000410
区块fi *的哈希值,H4是哈希函数,/>
Figure BDA00040866909400000411
是生成的随机值;
步骤3.1.2.2.1),若验证通过,目标链对此交易内容进行存储;
步骤3.1.2.2.1),若验证失败,目标链拒绝对此交易内容进行存储。
作为本发明一种动态跨链数据一致性审计方法进一步的优化方案,所述步骤4)的具体步骤如下:
当源链中的用户节点DO进行数据动态更新时,DO发送一个数据更新请求req给源链,其中包含需要进行的数据更新操作、数据更新内容以及更新的数据位置,所述数据更新操作包含修改操作,插入操作和删除操作;
步骤4.1),若用户节点DO进行修改操作,ts1时刻修改第i个位置的区块;
步骤4.1.1),用户节点DO对新区块进行分区以及盲化处理,得到盲化数据集fij'=(fi'1,fi'2,...,fi'S),其中
Figure BDA0004086690940000051
步骤4.1.2),用户节点DO生成数据更新请求req,其中包含修改操作、fij'=(fi'1,fi'2,...,fi'S)和i;
步骤4.1.3),用户节点DO将req发送给源链;
步骤4.1.4),源链根据req中的数据更新内容修改动态默克尔哈希树中第i个位置的区块,并重新生成哈希根h'Root
步骤4.1.5),源链与用户节点DO协同对文件签名、数据标签进行更新,生成新的文件签名{α'd}和新的数据标签{σ'};
步骤4.1.6),源链生成数据更新请求交易Tx2,数据更新请求交易Tx2中包含req、{α'd}和{σ'};
步骤4.1.7),源链利用AGMS对数据更新请求交易Tx2进行签名,生成签名(c',Sig');
步骤4.1.8),源链将数据更新请求交易Tx2以及签名(c',Sig')一起发送给目标链;
步骤4.2),若用户节点DO进行插入操作,ts1时刻在第i个位置的插入一个新区块;
步骤4.2.1),用户节点DO对新区块进行分区以及盲化处理得到盲化数据集fij'=(fi'1,fi'2,...,fi'S),其中
Figure BDA0004086690940000052
步骤4.2.2),用户节点DO生成数据更新请求req,其中包含插入操作、fij'=(fi'1,fi'2,...,fi'S)和i;
步骤4.2.3),用户节点DO将req发送给源链;
步骤4.2.4),源链根据req中的数据更新内容在动态默克尔哈希树中的第i个位置插入新的区块,并重新生成哈希根h'Root
步骤4.2.5),源链与用户节点DO协同对文件签名、数据标签进行更新,生成新的文件签名{α'd}和新的数据标签{σ'};
步骤4.2.6),源链生成数据更新请求交易Tx2,数据更新请求交易Tx2包含req、{α'd}和{σ'};
步骤4.2.7),源链利用AGMS对数据更新请求交易Tx2进行签名,生成签名(c',Sig');
步骤4.2.8),源链将数据更新请求交易Tx2以及签名(c',Sig')一起发送给目标链;
步骤4.3),若用户节点DO进行删除操作,ts1时刻在第i个位置的删除一个区块;
步骤4.3.1),用户节点DO生成数据更新请求req,其中包含删除操作、fi *和i,fi *为null,代表删除第i个区块的整个内容;
步骤4.2.3),用户节点DO将req发送给源链;
步骤4.2.4),源链根据req中的数据更新内容在动态默克尔哈希树中的第i个位置删除一个区块,并重新生成哈希根h'Root
步骤4.2.5),源链与用户节点DO协同对文件签名、数据标签进行更新,生成新的文件签名{α'd}和新的数据标签{σ'};
步骤4.2.6),源链生成数据更新请求交易Tx2,数据更新请求交易Tx2包含req、{α'd}和{σ'};
步骤4.2.7),源链利用AGMS对数据更新请求交易Tx2进行签名,生成签名(c',Sig');
步骤4.2.8),源链将数据更新请求交易Tx2以及签名(c',Sig')一起发送给目标链。
作为本发明一种动态跨链数据一致性审计方法进一步的优化方案,所述步骤5)的具体步骤如下:
步骤5.1)当目标链在收到数据更新请求交易Tx2以及文件签名(c',Sig')后,根据以下公式验证签名(c',Sig')的正确性:
Figure BDA0004086690940000061
其中h1是哈希函数,
Figure BDA0004086690940000062
是聚合的承诺值,/>
Figure BDA0004086690940000063
是聚合的公钥,hs'=h1(m)是对签名数据m哈希后计算后生成的哈希值,/>
Figure BDA0004086690940000064
是聚合签名的领导用户节点,由源链中的用户节点随机选出;
步骤5.1.1),若签名(c',Sig')验证失败,目标链拒绝对数据进行更新操作;
步骤5.1.2),若签名(c',Sig')验证通过,目标链根据以下公式对文件签名进行验证:
e(α'd,g)=e(H3(α'0||h'Root),pkDO)·e(H3(name||id(DO)),Rd)
其中,α'0=id(DO)||S||ts1,ts1是时间戳标识;
步骤5.1.2.1),如果对文件签名验证失败,目标链拒绝对数据进行更新操作;
步骤5.1.2.2),如果对文件签名进行验证通过,目标链继续根据以下公式对数据标签和盲化数据的一致性进行验证:
Figure BDA0004086690940000071
其中,ω'=name||hf'是随机值,hf'区块的哈希值,H4是哈希函数,
Figure BDA0004086690940000072
是生成的随机值;
步骤5.1.2.3),若验证通过,目标链根据数据更新请求交易Tx2对数据进行更新操作;
步骤5.1.2.4),若验证失败,目标链拒绝对数据进行更新操作。
作为本发明一种动态跨链数据一致性审计方法进一步的优化方案,所述步骤6)的具体步骤如下:
步骤6.1),源链和目标链在ts2时刻进行数据更新一致性审计验证时;
步骤6.1.1),目标链构造一个随机挑战
Figure BDA0004086690940000073
其中
Figure BDA0004086690940000074
表示在ts2时刻拥有c个元素的挑战区块集合;/>
Figure BDA0004086690940000075
是一个拥有c个元素的随机数集合,集合中的每个元素对应/>
Figure BDA0004086690940000076
中的一个挑战区块,
Figure BDA0004086690940000077
是生成的密钥;/>
Figure BDA0004086690940000078
是ts2时刻中目标链中的区块数量;/>
Figure BDA0004086690940000079
是ts2时刻目标链中最接近ts2的一个随机值;/>
Figure BDA00040866909400000710
是一个伪随机置换函数,/>
Figure BDA00040866909400000711
是伪随机函数;
步骤6.1.2),目标链根据随机挑战
Figure BDA00040866909400000712
生成一致性审计证明:
Figure BDA00040866909400000713
Figure BDA00040866909400000714
Figure BDA00040866909400000719
其中,
Figure BDA00040866909400000715
是挑战区块的数据标签集合;/>
Figure BDA00040866909400000716
是每个挑战区块的随机信息;/>
Figure BDA00040866909400000717
是挑战区块的随机信息集合;
步骤6.1.3),目标链生成审计证明:
Figure BDA00040866909400000718
其中,
Figure BDA0004086690940000081
是ts2时刻的文件标签,/>
Figure BDA0004086690940000082
是挑战区块的哈希值/>
Figure BDA0004086690940000083
以及其相邻节点构成的验证路径即辅助验证信息/>
Figure BDA0004086690940000084
步骤6.1.4),目标链将审计证明
Figure BDA0004086690940000085
发送给源链进行审计;
步骤6.2),源链根据收到的
Figure BDA0004086690940000086
进行如下验证:
步骤6.2.1),源链对文件标签根据如下公式进行验证:
Figure BDA0004086690940000087
其中,
Figure BDA0004086690940000088
ts2是时间戳标识,/>
Figure BDA0004086690940000089
是ts2时刻计算出的哈希根,
Figure BDA00040866909400000810
是ts2时刻的文件签名;
步骤6.2.1.1),如果验证不通过,则审计不通过并广播目标链的不诚实行为;
步骤6.2.1.2),如果对文件签名验证通过,源链继续根据如下公式进行如下验证:
Figure BDA00040866909400000811
其中,
Figure BDA00040866909400000812
是随机值,/>
Figure BDA00040866909400000813
是随机值,
Figure BDA00040866909400000814
区块/>
Figure BDA00040866909400000815
的哈希值;
步骤6.2.1.2.1),若验证通过,源链存储审计记录
Figure BDA00040866909400000816
到链中便于后续审计链的审计;
步骤6.2.1.2.2),若验证不通过,则审计不通过并广播目标链的不诚实行为;
步骤6.3),审计链对目标链和源链之间的数据动态更新的一致性进行审计时;
步骤6.3.1),审计链生成挑战质询发送给源链;
步骤6.3.1.1),当收到挑战质询后,源链生成审计证明
Figure BDA00040866909400000817
其中/>
Figure BDA00040866909400000818
是在tsi时刻的审计记录,并将审计证明发送给审计链;
步骤6.3.1.2),当收到来自源链的审计证明后,审计链重新构建历史挑战
Figure BDA00040866909400000819
并且随机选择c个元素生成新的挑战质询/>
Figure BDA00040866909400000820
步骤6.3.2),审计链将
Figure BDA00040866909400000821
发送给目标链;
步骤6.3.2.1),当收到当收到挑战质询后,目标链生成存储证明:
Figure BDA0004086690940000091
并将存储证明发送给审计链;
步骤6.3.2.1),当收到来自目标链的存储证明后,审计链根据如下公式来验证源链和目标链之间数据动态更新的一致性:
Figure BDA0004086690940000092
Figure BDA0004086690940000093
其中,
Figure BDA0004086690940000094
Figure BDA0004086690940000095
是时间戳标识,/>
Figure BDA0004086690940000096
是/>
Figure BDA0004086690940000097
时刻计算出的哈希根,/>
Figure BDA0004086690940000098
是/>
Figure BDA0004086690940000099
时刻的文件签名,/>
Figure BDA00040866909400000910
Figure BDA00040866909400000911
是/>
Figure BDA00040866909400000912
时刻的数据标签;
步骤6.3.2.3),若验证通过,动态跨链数据的一致性审计通过;
步骤6.3.2.4),若验证不通过,动态跨链数据的一致性审计不通过并广播目标链的不诚实行为。
本发明采用以上技术方案与现有技术相比,具有以下技术效果:
本发明针对跨链中数据动态更新一致性缺乏高效可靠审计这个角度出发,设计了一种动态跨链数据一致性审计方法。为了能够以高效可靠的方式进行跨链的数据动态更新,引入了一种动态的默克尔哈希树,其能以一种较低的成本完成对数据的动态更新;其次为了保证跨链传输交易内容的安全性和隐私性,引入了AGMS来对跨链传输的交易内容进行签名,与此同时设计了三种不同的区块链,即源链,目标链和审计链构建跨链数据动态更新审计模型,并分别部署了不同的智能合约在链上以此实现高效的审计。
附图说明
图1是本发明的模型示意图;
图2是本发明的角色示意图;
图3是本发明的流程示意图。
具体实施方式
下面结合附图对本发明的技术方案做进一步的详细说明:
本发明可以以许多不同的形式实现,而不应当认为限于这里所述的实施例。相反,提供这些实施例以便使本公开透彻且完整,并且将向本领域技术人员充分表达本发明的范围。在附图中,为了清楚起见放大了组件。
如图1、图2、图3所示,本发明公开了一种动态跨链数据一致性审计方法,包括以下步骤:
步骤1),源链中的用户节点对原始数据进行预处理,和源链协同生成盲化数据、文件签名、数据标签并构建动态的默克尔哈希树;
步骤1.1),证书授权机构CA生成相应的系统参数
Figure BDA0004086690940000101
其中,G1、GT均是阶为p的循环加法群,/>
Figure BDA0004086690940000102
是阶为q的正整数域,g∈G1是一个随机生成元,Y是系统主公钥,p和q均是1024位的大素数;
步骤1.2),源链、目标链、审计链中的用户节点进行身份注册;
步骤1.2.1),用户节点DO将身份表示为:
Figure BDA0004086690940000103
步骤1.2.2),用户节点DO与证书授权机构CA协同生成其公私钥对:[pkDO,(skDO,xDO)];
步骤1.2.3),最后用户节点DO进行身份注册,当其身份通过区块链中其余节点的验证后,用户节点DO身份注册成功,否则注册失败;
步骤1.3),源链中的用户节点DO与源链协同对原始数据F进行预处理;
步骤1.3.1),用户节点DO对F进行分块处理并对其进行盲化处理,生成盲化数据集合
Figure BDA0004086690940000104
其中B表示F被分成的区块个数,其中每个区块被分成了S个分片;
步骤1.3.2),源链根据数据集合F*生成动态默克尔哈希树并获得相应的hRoot
步骤1.3.3),源链和目标链协同生成文件签名以及数据标签{{σi}i∈[1,B]d},其中{σi}i∈[1,B]是数据标签,{αd}是文件签名。
步骤2),源链生成数据上传交易,所述数据上传交易包含盲化数据、文件签名和数据标签;同时源链利用AGMS对生成的数据上传交易进行签名,将签名的数据上传交易发送给目标链;
步骤2.1),源链生成数据上传交易Tx1,数据上传交易Tx1包含盲化数据集合
Figure BDA0004086690940000105
文件签名{αd}以及数据标签{σi}i∈[1,B]
步骤2.2),源链利用AGMS对数据上传交易进行签名,生成签名(c,Sig);
步骤2.3),源链将数据上传交易Tx1以及签名(c,Sig)一起发送给目标链。
步骤3),目标链在收到数据上传交易后,对其签名进行验证,签名验证不通过时拒绝存储数据,签名验证通过则接着对其中的文件签名、数据标签以及盲化数据进行一致性验证,一致性验证通过则进行存储,否则拒绝存储;
步骤3.1),当目标链收到来自源链的数据上传交易Tx1以及签名(c,Sig)后,根据以下公式验证签名(c,Sig)的正确性:
Figure BDA0004086690940000111
其中h1是哈希函数,
Figure BDA0004086690940000112
是聚合的承诺值,/>
Figure BDA0004086690940000113
是聚合的公钥,hs=h1(m)是对签名数据m哈希后计算后生成的哈希值,/>
Figure BDA0004086690940000114
是聚合签名的领导用户节点,由源链中的用户节点随机选出;
步骤3.1.1),若签名(c,Sig)验证失败,目标链拒绝对此交易内容进行存储;
步骤3.1.2),若签名(c,Sig)验证通过,目标链根据以下公式对文件签名进行验证:
e(αd,g)=e(H30||hRoot),pkDO)·e(H3(name||id(DO)),Rd)
其中,e:G1×G→GT是一个双线性映射,H3是哈希函数,α0=id(DO)||S||ts,ts是时间戳标识,
Figure BDA0004086690940000115
是随机值,/>
Figure BDA0004086690940000116
是一个随机值,/>
Figure BDA0004086690940000117
是盲化数据集标识;
步骤3.1.2.1),如果对文件签名验证失败,目标链拒绝对此交易内容进行存储;
步骤3.1.2.2),如果对文件签名验证通过,目标链继续根据以下公式进行数据标签和盲化数据一致性的验证:
Figure BDA0004086690940000118
其中,
Figure BDA0004086690940000119
是随机值,/>
Figure BDA00040866909400001110
区块fi *的哈希值,H4是哈希函数,/>
Figure BDA00040866909400001111
是生成的随机值;
步骤3.1.2.2.1),若验证通过,目标链对此交易内容进行存储;
步骤3.1.2.2.1),若验证失败,目标链拒绝对此交易内容进行存储。
步骤4),当源链中的用户节点希望对数据进行动态更新时,首先,源链根据数据更新请求与用户节点协同对存储的盲化数据、文件签名、数据标签以及动态的默克尔哈希树进行更新,并根据数据更新请求生成数据更新请求交易,所述数据更新请求交易包含数据更新请求以及数据更新的内容,数据更新内容包含更新后的盲化数据、文件签名和数据标签;然后,源链利用AGMS对数据更新请求交易进行签名,将签名的数据更新请求交易发送给目标链,具体如下:
当源链中的用户节点DO进行数据动态更新时,DO发送一个数据更新请求req给源链,其中包含需要进行的数据更新操作、数据更新内容以及更新的数据位置,所述数据更新操作包含修改操作,插入操作和删除操作;
步骤4.1),若用户节点DO进行修改操作,ts1时刻修改第i个位置的区块;
步骤4.1.1),用户节点DO对新区块进行分区以及盲化处理,得到盲化数据集fij'=(fi'1,fi'2,...,fi'S),其中
Figure BDA0004086690940000121
步骤4.1.2),用户节点DO生成数据更新请求req,其中包含修改操作、fij'=(fi'1,fi'2,...,fi'S)和i;
步骤4.1.3),用户节点DO将req发送给源链;
步骤4.1.4),源链根据req中的数据更新内容修改动态默克尔哈希树中第i个位置的区块,并重新生成哈希根h'Root
步骤4.1.5),源链与用户节点DO协同对文件签名、数据标签进行更新,生成新的文件签名{α'd}和新的数据标签{σ'};
步骤4.1.6),源链生成数据更新请求交易Tx2,数据更新请求交易Tx2中包含req、{α'd}和{σ'};
步骤4.1.7),源链利用AGMS对数据更新请求交易Tx2进行签名,生成签名(c',Sig');
步骤4.1.8),源链将数据更新请求交易Tx2以及签名(c',Sig')一起发送给目标链;
步骤4.2),若用户节点DO进行插入操作,ts1时刻在第i个位置的插入一个新区块;
步骤4.2.1),用户节点DO对新区块进行分区以及盲化处理得到盲化数据集fij'=(fi'1,fi'2,...,fi'S),其中
Figure BDA0004086690940000122
步骤4.2.2),用户节点DO生成数据更新请求req,其中包含插入操作、fij'=(fi'1,fi'2,...,fi'S)和i;
步骤4.2.3),用户节点DO将req发送给源链;
步骤4.2.4),源链根据req中的数据更新内容在动态默克尔哈希树中的第i个位置插入新的区块,并重新生成哈希根h'Root
步骤4.2.5),源链与用户节点DO协同对文件签名、数据标签进行更新,生成新的文件签名{α'd}和新的数据标签{σ'};
步骤4.2.6),源链生成数据更新请求交易Tx2,数据更新请求交易Tx2包含req、{α'd}和{σ'};
步骤4.2.7),源链利用AGMS对数据更新请求交易Tx2进行签名,生成签名(c',Sig');
步骤4.2.8),源链将数据更新请求交易Tx2以及签名(c',Sig')一起发送给目标链;
步骤4.3),若用户节点DO进行删除操作,ts1时刻在第i个位置的删除一个区块;
步骤4.3.1),用户节点DO生成数据更新请求req,其中包含删除操作、fi *和i,fi *为null,代表删除第i个区块的整个内容;
步骤4.2.3),用户节点DO将req发送给源链;
步骤4.2.4),源链根据req中的数据更新内容在动态默克尔哈希树中的第i个位置删除一个区块,并重新生成哈希根h'Root
步骤4.2.5),源链与用户节点DO协同对文件签名、数据标签进行更新,生成新的文件签名{α'd}和新的数据标签{σ'};
步骤4.2.6),源链生成数据更新请求交易Tx2,数据更新请求交易Tx2包含req、{α'd}和{σ'};
步骤4.2.7),源链利用AGMS对数据更新请求交易Tx2进行签名,生成签名(c',Sig');
步骤4.2.8),源链将数据更新请求交易Tx2以及签名(c',Sig')一起发送给目标链。
步骤5),目标链在收到数据更新请求交易后,对其签名进行验证,签名验证不通过时拒绝进行数据更新,签名验证通过则接着对其中数据更新内容中的文件签名、数据标签和盲化数据进行一致性验证,一致性验证通过时目标链根据数据更新请求进行更新并生成审计证明发送给源链进行验证,否则拒绝进行数据更新;
步骤5.1)当目标链在收到数据更新请求交易Tx2以及文件签名(c',Sig')后,根据以下公式验证签名(c',Sig')的正确性:
Figure BDA0004086690940000131
其中h1是哈希函数,
Figure BDA0004086690940000132
是聚合的承诺值,/>
Figure BDA0004086690940000133
是聚合的公钥,hs'=h1(m)是对签名数据m哈希后计算后生成的哈希值,/>
Figure BDA0004086690940000134
是聚合签名的领导用户节点,由源链中的用户节点随机选出;
步骤5.1.1),若签名(c',Sig')验证失败,目标链拒绝对数据进行更新操作;
步骤5.1.2),若签名(c',Sig')验证通过,目标链根据以下公式对文件签名进行验证:
e(α'd,g)=e(H3(α'0||h'Root),pkDO)·e(H3(name||id(DO)),Rd)
其中,α'0=id(DO)||S||ts1,ts1是时间戳标识;
步骤5.1.2.1),如果对文件签名验证失败,目标链拒绝对数据进行更新操作;
步骤5.1.2.2),如果对文件签名进行验证通过,目标链继续根据以下公式对数据标签和盲化数据的一致性进行验证:
Figure BDA0004086690940000141
其中,ω'=name||hf'是随机值,hf'区块的哈希值,H4是哈希函数,
Figure BDA0004086690940000142
是生成的随机值;
步骤5.1.2.3),若验证通过,目标链根据数据更新请求交易Tx2对数据进行更新操作;
步骤5.1.2.4),若验证失败,目标链拒绝对数据进行更新操作。
步骤6),当审计链对源链和目标链之间的跨链动态数据更新一致性进行审计时,其生成质询挑战分别发送给源链和目标链;目标链和源链生成相应的存储证明和审计证明发送给审计链;审计链根据证明来验证跨链数据动态更新的一致性:
步骤6.1),源链和目标链在ts2时刻进行数据更新一致性审计验证时;
步骤6.1.1),目标链构造一个随机挑战
Figure BDA0004086690940000143
其中
Figure BDA0004086690940000144
表示在ts2时刻拥有c个元素的挑战区块集合;/>
Figure BDA0004086690940000145
是一个拥有c个元素的随机数集合,集合中的每个元素对应/>
Figure BDA0004086690940000146
中的一个挑战区块,
Figure BDA0004086690940000147
是生成的密钥;/>
Figure BDA0004086690940000148
是ts2时刻中目标链中的区块数量;/>
Figure BDA0004086690940000149
是ts2时刻目标链中最接近ts2的一个随机值;/>
Figure BDA00040866909400001410
是一个伪随机置换函数,/>
Figure BDA00040866909400001411
是伪随机函数;/>
步骤6.1.2),目标链根据随机挑战
Figure BDA00040866909400001412
生成一致性审计证明:
Figure BDA00040866909400001413
Figure BDA00040866909400001414
Figure BDA00040866909400001415
其中,
Figure BDA0004086690940000151
是挑战区块的数据标签集合;/>
Figure BDA0004086690940000152
是每个挑战区块的随机信息;/>
Figure BDA0004086690940000153
是挑战区块的随机信息集合;
步骤6.1.3),目标链生成审计证明:
Figure BDA0004086690940000154
其中,
Figure BDA0004086690940000155
是ts2时刻的文件标签,/>
Figure BDA0004086690940000156
是挑战区块的哈希值/>
Figure BDA0004086690940000157
以及其相邻节点构成的验证路径即辅助验证信息/>
Figure BDA0004086690940000158
步骤6.1.4),目标链将审计证明
Figure BDA0004086690940000159
发送给源链进行审计;
步骤6.2),源链根据收到的
Figure BDA00040866909400001510
进行如下验证:
步骤6.2.1),源链对文件标签根据如下公式进行验证:
Figure BDA00040866909400001511
其中,
Figure BDA00040866909400001512
ts2是时间戳标识,/>
Figure BDA00040866909400001513
是ts2时刻计算出的哈希根,
Figure BDA00040866909400001514
是ts2时刻的文件签名;
步骤6.2.1.1),如果验证不通过,则审计不通过并广播目标链的不诚实行为;
步骤6.2.1.2),如果对文件签名验证通过,源链继续根据如下公式进行如下验证:
Figure BDA00040866909400001515
其中,
Figure BDA00040866909400001516
是随机值,/>
Figure BDA00040866909400001517
是随机值,
Figure BDA00040866909400001518
区块/>
Figure BDA00040866909400001519
的哈希值;
步骤6.2.1.2.1),若验证通过,源链存储审计记录
Figure BDA00040866909400001520
到链中便于后续审计链的审计;
步骤6.2.1.2.2),若验证不通过,则审计不通过并广播目标链的不诚实行为;
步骤6.3),审计链对目标链和源链之间的数据动态更新的一致性进行审计时;
步骤6.3.1),审计链生成挑战质询发送给源链;
步骤6.3.1.1),当收到挑战质询后,源链生成审计证明
Figure BDA00040866909400001521
其中/>
Figure BDA00040866909400001522
是在tsi时刻的审计记录,并将审计证明发送给审计链;
步骤6.3.1.2),当收到来自源链的审计证明后,审计链重新构建历史挑战
Figure BDA0004086690940000161
并且随机选择c个元素生成新的挑战质询/>
Figure BDA0004086690940000162
步骤6.3.2),审计链将
Figure BDA0004086690940000163
发送给目标链;
步骤6.3.2.1),当收到当收到挑战质询后,目标链生成存储证明:
Figure BDA0004086690940000164
并将存储证明发送给审计链;
步骤6.3.2.1),当收到来自目标链的存储证明后,审计链根据如下公式来验证源链和目标链之间数据动态更新的一致性:
Figure BDA0004086690940000165
Figure BDA0004086690940000166
其中,
Figure BDA0004086690940000167
Figure BDA0004086690940000168
是时间戳标识,/>
Figure BDA0004086690940000169
是/>
Figure BDA00040866909400001610
时刻计算出的哈希根,/>
Figure BDA00040866909400001611
是/>
Figure BDA00040866909400001612
时刻的文件签名,/>
Figure BDA00040866909400001613
Figure BDA00040866909400001614
是/>
Figure BDA00040866909400001615
时刻的数据标签;
步骤6.3.2.3),若验证通过,动态跨链数据的一致性审计通过;
步骤6.3.2.4),若验证不通过,动态跨链数据的一致性审计不通过并广播目标链的不诚实行为。
本技术领域技术人员可以理解的是,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种动态跨链数据一致性审计方法,其特征在于,包括以下步骤:
步骤1),源链中的用户节点对原始数据进行预处理,和源链协同生成盲化数据、文件签名、数据标签并构建动态的默克尔哈希树;
步骤2),源链生成数据上传交易,所述数据上传交易包含盲化数据、文件签名和数据标签;同时源链利用AGMS对生成的数据上传交易进行签名,将签名的数据上传交易发送给目标链;
步骤3),目标链在收到数据上传交易后,对其签名进行验证,签名验证不通过时拒绝存储数据,签名验证通过则接着对其中的文件签名、数据标签以及盲化数据进行一致性验证,一致性验证通过则进行存储,否则拒绝存储;
步骤4),当源链中的用户节点希望对数据进行动态更新时,首先,源链根据数据更新请求与用户节点协同对存储的盲化数据、文件签名、数据标签以及动态的默克尔哈希树进行更新,并根据数据更新请求生成数据更新请求交易,所述数据更新请求交易包含数据更新请求以及数据更新的内容,数据更新内容包含更新后的盲化数据、文件签名和数据标签;然后,源链利用AGMS对数据更新请求交易进行签名,将签名的数据更新请求交易发送给目标链;
步骤5),目标链在收到数据更新请求交易后,对其签名进行验证,签名验证不通过时拒绝进行数据更新,签名验证通过则接着对其中数据更新内容中的文件签名、数据标签和盲化数据进行一致性验证,一致性验证通过时目标链根据数据更新请求进行更新并生成审计证明发送给源链进行验证,否则拒绝进行数据更新;
步骤6),当审计链对源链和目标链之间的跨链动态数据更新一致性进行审计时,其生成质询挑战分别发送给源链和目标链;目标链和源链生成相应的存储证明和审计证明发送给审计链;审计链根据证明来验证跨链数据动态更新的一致性。
2.根据权利要求1所述的动态跨链数据一致性审计方法,其特征在于,步骤1)的详细步骤为:
步骤1.1),证书授权机构CA生成相应的系统参数
Figure FDA0004086690930000011
其中,G1、GT均是阶为p的循环加法群,/>
Figure FDA0004086690930000012
是阶为q的正整数域,g∈G1是一个随机生成元,Y是系统主公钥,p和q均是1024位的大素数;
步骤1.2),源链、目标链、审计链中的用户节点进行身份注册;
步骤1.2.1),用户节点DO将身份表示为:
Figure FDA0004086690930000013
步骤1.2.2),用户节点DO与证书授权机构CA协同生成其公私钥对:[pkDO,(skDO,xDO)];
步骤1.2.3),最后用户节点DO进行身份注册,当其身份通过区块链中其余节点的验证后,用户节点DO身份注册成功,否则注册失败;
步骤1.3),源链中的用户节点DO与源链协同对原始数据F进行预处理;
步骤1.3.1),用户节点DO对F进行分块处理并对其进行盲化处理,生成盲化数据集合
Figure FDA0004086690930000021
其中B表示F被分成的区块个数,其中每个区块被分成了S个分片;
步骤1.3.2),源链根据数据集合F*生成动态默克尔哈希树并获得相应的hRoot
步骤1.3.3),源链和目标链协同生成文件签名以及数据标签{{σi}i∈[1,B]d},其中{σi}i∈[1,B]是数据标签,{αd}是文件签名。
3.根据权利要求2所述的动态跨链数据一致性审计方法,其特征在于,步骤2)的详细步骤为:
步骤2.1),源链生成数据上传交易Tx1,数据上传交易Tx1包含盲化数据集合
Figure FDA0004086690930000022
文件签名{αd}以及数据标签{σi}i∈[1,B]
步骤2.2),源链利用AGMS对数据上传交易进行签名,生成签名(c,Sig);
步骤2.3),源链将数据上传交易Tx1以及签名(c,Sig)一起发送给目标链。
4.如权利要求3所述的动态跨链数据一致性审计方法,其特征在于,步骤3)的详细步骤为:
步骤3.1),当目标链收到来自源链的数据上传交易Tx1以及签名(c,Sig)后,根据以下公式验证签名(c,Sig)的正确性:
Figure FDA0004086690930000023
其中h1是哈希函数,/>
Figure FDA0004086690930000024
是聚合的承诺值,/>
Figure FDA0004086690930000025
是聚合的公钥,hs=h1(m)是对签名数据m哈希后计算后生成的哈希值,/>
Figure FDA0004086690930000026
是聚合签名的领导用户节点,由源链中的用户节点随机选出;
步骤3.1.1),若签名(c,Sig)验证失败,目标链拒绝对此交易内容进行存储;
步骤3.1.2),若签名(c,Sig)验证通过,目标链根据以下公式对文件签名进行验证:
e(αd,g)=e(H30||hRoot),pkDO)·e(H3(name||id(DO)),Rd)
其中,e:G1×G→GT是一个双线性映射,H3是哈希函数,α0=id(DO)||S||ts,ts是时间戳标识,
Figure FDA0004086690930000027
是随机值,/>
Figure FDA0004086690930000028
是一个随机值,/>
Figure FDA0004086690930000029
是盲化数据集标识;
步骤3.1.2.1),如果对文件签名验证失败,目标链拒绝对此交易内容进行存储;
步骤3.1.2.2),如果对文件签名验证通过,目标链继续根据以下公式进行数据标签和盲化数据一致性的验证:
Figure FDA0004086690930000031
其中,
Figure FDA0004086690930000032
是随机值,/>
Figure FDA0004086690930000033
区块fi *的哈希值,H4是哈希函数,/>
Figure FDA0004086690930000034
是生成的随机值;
步骤3.1.2.2.1),若验证通过,目标链对此交易内容进行存储;
步骤3.1.2.2.1),若验证失败,目标链拒绝对此交易内容进行存储。
5.如权利要求4所述的动态跨链数据一致性审计方法,其特征在于,步骤4)的具体步骤如下:
当源链中的用户节点DO进行数据动态更新时,DO发送一个数据更新请求req给源链,其中包含需要进行的数据更新操作、数据更新内容以及更新的数据位置,所述数据更新操作包含修改操作,插入操作和删除操作;
步骤4.1),若用户节点DO进行修改操作,ts1时刻修改第i个位置的区块;
步骤4.1.1),用户节点DO对新区块进行分区以及盲化处理,得到盲化数据集fij'=(fi'1,fi'2,...,fi'S),其中
Figure FDA0004086690930000035
步骤4.1.2),用户节点DO生成数据更新请求req,其中包含修改操作、fij'=(fi'1,fi'2,...,fi'S)和i;
步骤4.1.3),用户节点DO将req发送给源链;
步骤4.1.4),源链根据req中的数据更新内容修改动态默克尔哈希树中第i个位置的区块,并重新生成哈希根h'Root
步骤4.1.5),源链与用户节点DO协同对文件签名、数据标签进行更新,生成新的文件签名{α'd}和新的数据标签{σ'};
步骤4.1.6),源链生成数据更新请求交易Tx2,数据更新请求交易Tx2中包含req、{α'd}和{σ'};
步骤4.1.7),源链利用AGMS对数据更新请求交易Tx2进行签名,生成签名(c',Sig');
步骤4.1.8),源链将数据更新请求交易Tx2以及签名(c',Sig')一起发送给目标链;
步骤4.2),若用户节点DO进行插入操作,ts1时刻在第i个位置的插入一个新区块;
步骤4.2.1),用户节点DO对新区块进行分区以及盲化处理得到盲化数据集fij'=(fi'1,fi'2,...,fi'S),其中
Figure FDA0004086690930000041
步骤4.2.2),用户节点DO生成数据更新请求req,其中包含插入操作、fij'=(fi'1,fi'2,...,fi'S)和i;
步骤4.2.3),用户节点DO将req发送给源链;
步骤4.2.4),源链根据req中的数据更新内容在动态默克尔哈希树中的第i个位置插入新的区块,并重新生成哈希根h'Root
步骤4.2.5),源链与用户节点DO协同对文件签名、数据标签进行更新,生成新的文件签名{α'd}和新的数据标签{σ'};
步骤4.2.6),源链生成数据更新请求交易Tx2,数据更新请求交易Tx2包含req、{α'd}和{σ'};
步骤4.2.7),源链利用AGMS对数据更新请求交易Tx2进行签名,生成签名(c',Sig');
步骤4.2.8),源链将数据更新请求交易Tx2以及签名(c',Sig')一起发送给目标链;
步骤4.3),若用户节点DO进行删除操作,ts1时刻在第i个位置的删除一个区块;
步骤4.3.1),用户节点DO生成数据更新请求req,其中包含删除操作、fi *和i,fi *为null,代表删除第i个区块的整个内容;
步骤4.2.3),用户节点DO将req发送给源链;
步骤4.2.4),源链根据req中的数据更新内容在动态默克尔哈希树中的第i个位置删除一个区块,并重新生成哈希根h'Root
步骤4.2.5),源链与用户节点DO协同对文件签名、数据标签进行更新,生成新的文件签名{α'd}和新的数据标签{σ'};
步骤4.2.6),源链生成数据更新请求交易Tx2,数据更新请求交易Tx2包含req、{α'd}和{σ'};
步骤4.2.7),源链利用AGMS对数据更新请求交易Tx2进行签名,生成签名(c',Sig');
步骤4.2.8),源链将数据更新请求交易Tx2以及签名(c',Sig')一起发送给目标链。
6.如权利要求5所述的动态跨链数据一致性审计方法,其特征在于,步骤5)的具体步骤如下:
步骤5.1)当目标链在收到数据更新请求交易Tx2以及文件签名(c',Sig')后,根据以下公式验证签名(c',Sig')的正确性:
Figure FDA0004086690930000051
其中h1是哈希函数,
Figure FDA0004086690930000052
是聚合的承诺值,/>
Figure FDA0004086690930000053
是聚合的公钥,hs'=h1(m)是对签名数据m哈希后计算后生成的哈希值,/>
Figure FDA0004086690930000054
是聚合签名的领导用户节点,由源链中的用户节点随机选出;
步骤5.1.1),若签名(c',Sig')验证失败,目标链拒绝对数据进行更新操作;
步骤5.1.2),若签名(c',Sig')验证通过,目标链根据以下公式对文件签名进行验证:
e(α'd,g)=e(H3(α'0||h'Root),pkDO)·e(H3(name||id(DO)),Rd)
其中,α'0=id(DO)||S||ts1,ts1是时间戳标识;
步骤5.1.2.1),如果对文件签名验证失败,目标链拒绝对数据进行更新操作;
步骤5.1.2.2),如果对文件签名进行验证通过,目标链继续根据以下公式对数据标签和盲化数据的一致性进行验证:
Figure FDA0004086690930000055
其中,ω'=name||hf'是随机值,hf'区块的哈希值,H4是哈希函数,
Figure FDA0004086690930000056
是生成的随机值;
步骤5.1.2.3),若验证通过,目标链根据数据更新请求交易Tx2对数据进行更新操作;
步骤5.1.2.4),若验证失败,目标链拒绝对数据进行更新操作。
7.如权利要求6所述的动态跨链数据一致性审计方法,其特征在于,步骤6)的具体步骤如下:
步骤6.1),源链和目标链在ts2时刻进行数据更新一致性审计验证时;
步骤6.1.1),目标链构造一个随机挑战
Figure FDA0004086690930000057
其中
Figure FDA0004086690930000058
表示在ts2时刻拥有c个元素的挑战区块集合;/>
Figure FDA0004086690930000059
是一个拥有c个元素的随机数集合,集合中的每个元素对应/>
Figure FDA0004086690930000061
中的一个挑战区块,
Figure FDA0004086690930000062
是生成的密钥;/>
Figure FDA0004086690930000063
是ts2时刻中目标链中的区块数量;/>
Figure FDA0004086690930000064
是ts2时刻目标链中最接近ts2的一个随机值;/>
Figure FDA0004086690930000065
是一个伪随机置换函数,/>
Figure FDA0004086690930000066
是伪随机函数;
步骤6.1.2),目标链根据随机挑战
Figure FDA0004086690930000067
生成一致性审计证明:
Figure FDA0004086690930000068
Figure FDA0004086690930000069
Figure FDA00040866909300000610
其中,
Figure FDA00040866909300000611
是挑战区块的数据标签集合;/>
Figure FDA00040866909300000612
是每个挑战区块的随机信息;/>
Figure FDA00040866909300000613
是挑战区块的随机信息集合;
步骤6.1.3),目标链生成审计证明:
Figure FDA00040866909300000614
其中,
Figure FDA00040866909300000615
是ts2时刻的文件标签,/>
Figure FDA00040866909300000616
是挑战区块的哈希值/>
Figure FDA00040866909300000617
以及其相邻节点构成的验证路径即辅助验证信息/>
Figure FDA00040866909300000618
步骤6.1.4),目标链将审计证明
Figure FDA00040866909300000619
发送给源链进行审计;
步骤6.2),源链根据收到的
Figure FDA00040866909300000620
进行如下验证:
步骤6.2.1),源链对文件标签根据如下公式进行验证:
Figure FDA00040866909300000621
其中,
Figure FDA00040866909300000622
ts2是时间戳标识,/>
Figure FDA00040866909300000623
是ts2时刻计算出的哈希根,/>
Figure FDA00040866909300000624
是ts2时刻的文件签名;
步骤6.2.1.1),如果验证不通过,则审计不通过并广播目标链的不诚实行为;
步骤6.2.1.2),如果对文件签名验证通过,源链继续根据如下公式进行如下验证:
Figure FDA00040866909300000625
其中,
Figure FDA0004086690930000071
Figure FDA0004086690930000072
是随机值,/>
Figure FDA0004086690930000073
是随机值,/>
Figure FDA0004086690930000074
区块/>
Figure FDA0004086690930000075
的哈希值;
步骤6.2.1.2.1),若验证通过,源链存储审计记录
Figure FDA0004086690930000076
到链中便于后续审计链的审计;
步骤6.2.1.2.2),若验证不通过,则审计不通过并广播目标链的不诚实行为;
步骤6.3),审计链对目标链和源链之间的数据动态更新的一致性进行审计时;
步骤6.3.1),审计链生成挑战质询发送给源链;
步骤6.3.1.1),当收到挑战质询后,源链生成审计证明
Figure FDA0004086690930000077
其中
Figure FDA0004086690930000078
是在tsi时刻的审计记录,并将审计证明发送给审计链;
步骤6.3.1.2),当收到来自源链的审计证明后,审计链重新构建历史挑战
Figure FDA0004086690930000079
并且随机选择c个元素生成新的挑战质询/>
Figure FDA00040866909300000710
步骤6.3.2),审计链将
Figure FDA00040866909300000711
发送给目标链;
步骤6.3.2.1),当收到当收到挑战质询后,目标链生成存储证明:
Figure FDA00040866909300000712
并将存储证明发送给审计链;
步骤6.3.2.1),当收到来自目标链的存储证明后,审计链根据如下公式来验证源链和目标链之间数据动态更新的一致性:
Figure FDA00040866909300000713
Figure FDA00040866909300000714
其中,
Figure FDA00040866909300000715
Figure FDA00040866909300000716
是时间戳标识,/>
Figure FDA00040866909300000717
是/>
Figure FDA00040866909300000718
时刻计算出的哈希根,/>
Figure FDA00040866909300000719
是/>
Figure FDA00040866909300000720
时刻的文件签名,/>
Figure FDA00040866909300000721
Figure FDA00040866909300000722
是/>
Figure FDA00040866909300000723
时刻的数据标签;
步骤6.3.2.3),若验证通过,动态跨链数据的一致性审计通过;
步骤6.3.2.4),若验证不通过,动态跨链数据的一致性审计不通过并广播目标链的不诚实行为。
CN202310138151.2A 2023-02-20 2023-02-20 一种动态跨链数据一致性审计方法 Pending CN116303493A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310138151.2A CN116303493A (zh) 2023-02-20 2023-02-20 一种动态跨链数据一致性审计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310138151.2A CN116303493A (zh) 2023-02-20 2023-02-20 一种动态跨链数据一致性审计方法

Publications (1)

Publication Number Publication Date
CN116303493A true CN116303493A (zh) 2023-06-23

Family

ID=86789845

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310138151.2A Pending CN116303493A (zh) 2023-02-20 2023-02-20 一种动态跨链数据一致性审计方法

Country Status (1)

Country Link
CN (1) CN116303493A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117294540A (zh) * 2023-11-27 2023-12-26 人民法院信息技术服务中心 基于角色授权的隐私数据跨链获取方法、装置及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117294540A (zh) * 2023-11-27 2023-12-26 人民法院信息技术服务中心 基于角色授权的隐私数据跨链获取方法、装置及系统
CN117294540B (zh) * 2023-11-27 2024-01-23 人民法院信息技术服务中心 基于角色授权的隐私数据跨链获取方法、装置及系统

Similar Documents

Publication Publication Date Title
CN111639361B (zh) 一种区块链密钥管理方法、多人共同签名方法及电子装置
Jin et al. Dynamic and public auditing with fair arbitration for cloud data
CN108229208B (zh) 一种云存储服务中多副本数据的公开审计方法
CN106789090A (zh) 基于区块链的公钥基础设施系统及半随机联合证书签名方法
CN107171812A (zh) 一种基于区块链的无密钥签名基础设施构建方法
CN113312574A (zh) 一种基于区块链的云数据完整性审计方法
CN110008755B (zh) 一种云存储可撤销动态数据完整性验证系统及方法
CN110225012B (zh) 一个基于联盟链的外包数据的拥有权检查和更新方法
CN112543106A (zh) 一种基于区块链和群签名的车辆隐私匿名保护方法
CN111030809A (zh) 一种可支持lsss矩阵的格上基于属性签名方法
US12007972B2 (en) Systems and methods for processing blockchain transactions
CN116303493A (zh) 一种动态跨链数据一致性审计方法
CN112732695A (zh) 一种基于区块链的云存储数据安全去重方法
CN114329621A (zh) 一种区块链跨链交互数据完整性验证方法
Kohad et al. Scalability issues of blockchain technology
CN113902384A (zh) 一种基于rfid和智能合约的溯源方法及系统
CN112699123A (zh) 一种数据存储系统中数据存在性和完整性校验方法及系统
CN115664682A (zh) 基于联盟链主从多链的医疗数据共享的共识方法
CN109063513B (zh) 一种基于Hadoop平台的动态数据完整性验证方法
CN114944953A (zh) 一种车联网环境下用于路况监测的无证书匿名认证方法
CN112887281B (zh) 支持高效审计和多备份密文去重的存储方法、系统及应用
Wang et al. A lightweight data integrity verification with data dynamics for mobile edge computing
CN111402104B (zh) 一种基于区块链的公安数据管理平台及方法
CN111966638B (zh) 一种适用于工业云上的ida数据恢复的动态更新方法
CN115632791B (zh) 一种动态跨链数据一致性去中心化验证方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination