CN112560096B - 一种基于身份的区块链的交易内容编辑方法及装置 - Google Patents

一种基于身份的区块链的交易内容编辑方法及装置 Download PDF

Info

Publication number
CN112560096B
CN112560096B CN202011517792.1A CN202011517792A CN112560096B CN 112560096 B CN112560096 B CN 112560096B CN 202011517792 A CN202011517792 A CN 202011517792A CN 112560096 B CN112560096 B CN 112560096B
Authority
CN
China
Prior art keywords
transaction
block
hash value
content
random number
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.)
Active
Application number
CN202011517792.1A
Other languages
English (en)
Other versions
CN112560096A (zh
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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN202011517792.1A priority Critical patent/CN112560096B/zh
Publication of CN112560096A publication Critical patent/CN112560096A/zh
Application granted granted Critical
Publication of CN112560096B publication Critical patent/CN112560096B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • 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/6245Protecting personal data, e.g. for financial or medical purposes

Landscapes

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

Abstract

本发明实施例公开一种基于身份的区块链的交易内容编辑方法及装置。该方法包括:根据双线性映射生成区块链监管者的私钥,根据用户的身份标识符、第一哈希函数和私钥生成用户的陷门密钥,根据陷门密钥、身份标识符、交易标识符、交易哈希值、交易内容、交易随机数和新交易内容计算生成新交易随机数,根据新交易随机数、身份标识符、交易标识符和新交易内容计算得到新交易哈希值,当新交易哈希值和交易哈希值相等时,将交易内容更新为新交易内容,将交易随机数更新为新交易随机数。由于本发明实施例所依赖的用户的陷门密钥以及区块链监管者的私钥均为私有并不会泄漏,因此,本发明实施例能够对区块链的交易内容进行编辑,避免密钥泄漏,提高安全性。

Description

一种基于身份的区块链的交易内容编辑方法及装置
技术领域
本发明涉及区块链技术领域,具体而言,涉及一种基于身份的区块链的交易内容编辑方法及装置。
背景技术
由于任何数据一经写入区块链,就无法再被修改,使得用户无法删除自己的信息以及监管者无法删除链上的有害信息,导致区块链的应用受限。
为了解决上述问题,现有技术中提出了基于变色龙哈希的可编辑区块链,该区块链采用了基于陷门的设计,使得陷门密钥的持有者可以很容易地制造哈希碰撞,因此,该区块链可以在区块内容被修改的情况下保持区块哈希值不变,从而不会影响后续区块,达到编辑区块链的目的,但是,变色龙哈希函数存在着密钥泄漏的缺陷,导致安全性较差。
发明内容
本发明提供了一种基于身份的区块链的交易内容编辑方法及装置,能够对区块链的交易内容进行编辑,避免密钥泄漏,提高安全性。具体的技术方案如下。
第一方面,本发明提供了一种基于身份的区块链的交易内容编辑方法,包括:
根据双线性映射生成区块链监管者的私钥;
获取用户对目标交易的交易内容进行编辑后生成的新交易内容;
获取所述用户的身份标识符,根据所述身份标识符、第一哈希函数和所述私钥生成所述用户的陷门密钥;
获取所述目标交易的交易标识符、所述目标交易的交易随机数以及所述目标交易的交易哈希值;
根据所述陷门密钥、所述身份标识符、所述交易标识符、所述交易哈希值、所述交易内容、所述交易随机数和所述新交易内容计算生成新交易随机数;
根据所述新交易随机数、所述身份标识符、所述交易标识符和所述新交易内容计算得到新交易哈希值;
当所述新交易哈希值和所述交易哈希值相等时,将所述交易内容更新为所述新交易内容,将所述交易随机数更新为所述新交易随机数。
可选的,所述根据双线性映射生成区块链监管者的私钥的步骤,包括:
设置双线性映射e为:
Figure BDA0002847990260000021
其中
Figure BDA0002847990260000022
为间隙密钥交换GDH群,
Figure BDA0002847990260000023
为乘法循环群,
Figure BDA0002847990260000024
其中q为素数;
设置哈希函数分别为:
Figure BDA0002847990260000025
Figure BDA0002847990260000026
其中,H1为第一哈希函数,用于将0或1所组成任意长度的字符串{0,1}*映射到群
Figure BDA0002847990260000027
的一个任意元素上,*表示字符串{0,1}为任意长度;H2为第二哈希函数,用于将0或1所组成任意长度的字符串{0,1}*映射到由(0,1,…,q-1)元素所组成的q阶的整数群
Figure BDA0002847990260000028
上,Z表示整数群;
选取随机数
Figure BDA0002847990260000029
作为所述区块链监管者的私钥,其中,
Figure BDA00028479902600000210
表示从q阶的整数群
Figure BDA00028479902600000211
中随机选择一个元素x。
可选的,所述获取所述目标交易的交易随机数的步骤,包括:
根据所述交易内容以及第二哈希函数生成交易内容哈希值;
计算Ppub=xP,其中,P为
Figure BDA00028479902600000212
的生成元,Ppub为所述区块链监管者的公钥,x为所述区块链监管者的私钥;
根据所述双线性映射、所述监管者的公钥、所述身份标识符、所述陷门秘钥、所述第一哈希函数和所述第二哈希函数计算得到所述目标交易的交易随机数。
可选的,所述获取所述目标交易的交易哈希值的步骤,包括:
根据所述身份标识符、所述交易标识符、所述交易内容哈希值和所述交易随机数进行哈希计算得到所述目标交易的交易哈希值。
可选的,所述根据所述陷门密钥、所述身份标识符、所述交易标识符、所述交易哈希值、所述交易内容、所述交易随机数和所述新交易内容计算生成新交易随机数的步骤,包括:
根据所述新交易内容以及所述第二哈希函数生成新交易内容哈希值;
根据所述陷门密钥、所述身份标识符、所述交易标识符、所述交易哈希值、所述交易内容哈希值、所述交易随机数和所述新交易内容哈希值计算得到新交易随机数。
第二方面,本发明提供了一种基于身份的区块链的交易内容编辑装置,包括:
私钥生成模块,用于根据双线性映射生成区块链监管者的私钥;
第一获取模块,用于获取用户对目标交易的交易内容进行编辑后生成的新交易内容;
陷门密钥生成模块,用于获取所述用户的身份标识符,根据所述身份标识符、第一哈希函数和所述私钥生成所述用户的陷门密钥;
第二获取模块,用于获取所述目标交易的交易标识符、所述目标交易的交易随机数以及所述目标交易的交易哈希值;
新交易随机数生成模块,用于根据所述陷门密钥、所述身份标识符、所述交易标识符、所述交易哈希值、所述交易内容、所述交易随机数和所述新交易内容计算生成新交易随机数;
新交易哈希值生成模块,用于根据所述新交易随机数、所述身份标识符、所述交易标识符和所述新交易内容计算得到新交易哈希值;
更新模块,用于当所述新交易哈希值和所述交易哈希值相等时,将所述交易内容更新为所述新交易内容,将所述交易随机数更新为所述新交易随机数。
可选的,所述私钥生成模块包括:
第一设置子模块,用于设置双线性映射e为:
Figure BDA0002847990260000031
其中
Figure BDA0002847990260000032
为间隙密钥交换GDH群,
Figure BDA0002847990260000033
为乘法循环群,
Figure BDA0002847990260000034
其中q为素数;
第二设置子模块,用于设置哈希函数分别为:
Figure BDA0002847990260000035
Figure BDA0002847990260000036
其中,H1为第一哈希函数,用于将0或1所组成任意长度的字符串{0,1}*映射到群
Figure BDA0002847990260000037
的一个任意元素上,*表示字符串{0,1}为任意长度;H2为第二哈希函数,用于将0或1所组成任意长度的字符串{0,1}*映射到由(0,1,…,q-1)元素所组成的q阶的整数群
Figure BDA0002847990260000041
上,Z表示整数群;
选取子模块,用于选取随机数
Figure BDA0002847990260000042
作为所述区块链监管者的私钥,其中,R表示从q阶的整数群
Figure BDA0002847990260000043
中随机选择一个元素x。
可选的,所述第二获取模块,包括:
交易内容哈希值生成子模块,用于根据所述交易内容以及第二哈希函数生成交易内容哈希值;
计算子模块,用于计算Ppub=xP,其中,P为
Figure BDA0002847990260000044
的生成元,Ppub为所述区块链监管者的公钥,x为所述区块链监管者的私钥;
交易随机数计算子模块,用于根据所述双线性映射、所述监管者的公钥、所述身份标识符、所述陷门秘钥、所述第一哈希函数和所述第二哈希函数计算得到所述目标交易的交易随机数。
可选的,所述第二获取模块,具体用于:
根据所述身份标识符、所述交易标识符、所述交易内容哈希值和所述交易随机数进行哈希计算得到所述目标交易的交易哈希值。
可选的,所述新交易随机数生成模块,包括:
新交易内容哈希值生成子模块,用于根据所述新交易内容以及所述第二哈希函数生成新交易内容哈希值;
新交易随机数计算子模块,用于根据所述陷门密钥、所述身份标识符、所述交易标识符、所述交易哈希值、所述交易内容哈希值、所述交易随机数和所述新交易内容哈希值计算得到新交易随机数。
由上述内容可知,本实施例可以根据双线性映射生成区块链监管者的私钥,获取用户对目标交易的交易内容进行编辑后生成的新交易内容,根据用户的身份标识符、第一哈希函数和私钥生成用户的陷门密钥,然后根据陷门密钥、身份标识符、交易标识符、交易哈希值、交易内容、交易随机数和新交易内容计算生成新交易随机数,根据新交易随机数、身份标识符、交易标识符和新交易内容计算得到新交易哈希值,当新交易哈希值和交易哈希值相等时,将交易内容更新为新交易内容,将交易随机数更新为新交易随机数。由于本发明实施例在对目标交易的交易内容进行编辑,并将交易内容更新为新交易内容,将交易随机数更新为新交易随机数的过程中所依赖的用户的陷门密钥以及区块链监管者的私钥分别是用户所私有以及区块链监管者所私有,因此,在对目标交易进行编辑的过程中用户的陷门密钥还是区块链监管者的私钥并不会泄漏,可见,本发明实施例能够对区块链的交易内容进行编辑,避免密钥泄漏,提高安全性。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
本发明实施例的创新点包括:
1、由于本发明实施例在对目标交易的交易内容进行编辑,并将交易内容更新为新交易内容,将交易随机数更新为新交易随机数的过程中所依赖的用户的陷门密钥以及区块链监管者的私钥分别是用户所私有以及区块链监管者所私有,因此,在对目标交易进行编辑的过程中用户的陷门密钥还是区块链监管者的私钥并不会泄漏,可见,本发明实施例能够对区块链的交易内容进行编辑,避免密钥泄漏,提高安全性。
2、由于智能合约属于区块链的交易的一种,因此,本发明实施例中能够对区块链的交易内容进行编辑,就可以对智能合约进行修复,允许智能合约维护者与区块链节点共同修改智能合约的内容,解决了对智能合约的缺陷进行修复的问题。
3、由于本发明实施例中能够对区块链的交易内容进行编辑,因此,可以满足用户的“被遗忘权”的要求,使得用户可以删除区块链上关于自身的数据,实现了隐私保护。
4、本发明实施例采用了多重陷门的设计,也就是区块链监管者掌握主陷门以及用户掌握与自身身份相关的交易陷门的方式,避免了对主陷门存在严重的依赖性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于身份的区块链的交易内容编辑方法的流程示意图;
图2为本发明实施例提供的可编辑区块链的结构示意图;
图3为本发明实施例提供的一种基于身份的区块链的交易内容编辑装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明实施例及附图中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含的一系列步骤或单元的过程、方法、方法、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
本发明实施例公开了一种基于身份的区块链的交易内容编辑方法及装置,能够对区块链的交易内容进行编辑,避免密钥泄漏,提高安全性。下面对本发明实施例进行详细说明。
本发明实施例提出了基于双线性映射来实现基于身份的密钥无泄漏的交易编辑机制。为每个用户都生成一个与其身份相关的陷门密钥,交易上链时,区块链节点根据交易标识符、交易内容和用户公开的身份标识符计算得到交易哈希值并记录上链,同时,计算过程所生成的交易随机数作为验证依据也需要一并记录上链。交易编辑时,用户利用自己掌握的陷门密钥,根据交易标识符和新的交易内容,可以计算得到新的交易随机数,区块链节点对新的交易随机数的有效性进行验证之后,同步更新链上的消息内容和随机数,由此就实现了基于身份的密钥无泄漏的交易编辑。
图1为本发明实施例提供的一种基于身份的区块链的交易内容编辑方法的流程示意图。该方法应用于电子设备,电子设备可以为区块链上的区块链节点,该方法具体包括以下步骤:
S110:根据双线性映射生成区块链监管者的私钥。
为了便于对交易内容进行编辑,需要根据双线性映射生成区块链监管者的私钥。
其中,根据双线性映射生成区块链监管者的私钥,可以包括:
设置双线性映射e为:
Figure BDA0002847990260000071
其中
Figure BDA0002847990260000072
为间隙密钥交换GDH群,
Figure BDA0002847990260000073
为乘法循环群,
Figure BDA0002847990260000074
其中q为素数;
设置哈希函数分别为:
Figure BDA0002847990260000075
Figure BDA0002847990260000076
其中,H1为第一哈希函数,用于将0或1所组成任意长度的字符串{0,1}*映射到群
Figure BDA0002847990260000077
的一个任意元素上,*表示字符串{0,1}为任意长度;H2为第二哈希函数,用于将0或1所组成任意长度的字符串{0,1}*映射到由(0,1,…,q-1)元素所组成的q阶的整数群
Figure BDA0002847990260000078
上,Z表示整数群;
选取随机数
Figure BDA0002847990260000079
作为区块链监管者的私钥,其中,R表示从q阶的整数群
Figure BDA00028479902600000710
中随机选择一个元素x。
S120:获取用户对目标交易的交易内容进行编辑后生成的新交易内容。
区块链监管者就是对区块链的运营进行监管的人员,当区块链出现问题时,由监管者进行处理。区块链的用户就是区块链的使用者,当用户对目标交易的交易内容进行编辑后会生成新的交易内容,电子设备获取新交易内容以获知用户需要对目标交易的交易内容进行编辑。
S130:获取用户的身份标识符,根据身份标识符、第一哈希函数和私钥生成用户的陷门密钥。
为了生成用户的陷门秘钥,需要获取用户的身份标识符,其中,用户的身份标识符可以为用户在进入区块链时,区块链节点自动分配的,也可以为用户从区块链节点提供的多个身份标识符中选择的。目标交易的交易标识符为目标交易产生时区块链节点自动分配的。目标交易的交易随机数和交易哈希值为用户还未对目标交易进行编辑时的交易随机数和交易哈希值。
在获取了用户的身份标识符后,需要根据身份标识符、第一哈希函数和私钥生成用户的陷门密钥。
其中,根据身份标识符、第一哈希函数和私钥生成用户的陷门密钥可以为根据以下公式计算得到用户的陷门密钥:
SID=xQID
QID=H1(ID)
其中,SID为用户的陷门密钥,x为区块链监管者的私钥,QID为身份标识符哈希值,ID为身份标识符,H1为第一哈希函数。
S140:获取目标交易的交易标识符、目标交易的交易随机数以及目标交易的交易哈希值。
为了实现基于身份的密钥无泄漏的交易编辑,需要获取用户的身份标识符、目标交易的交易标识符、目标交易的交易随机数以及目标交易的交易哈希值。
具体的,在步骤S120中根据双线性映射生成区块链监管者的私钥,包括设置双线性映射、设置哈希函数以及选取随机数
Figure BDA0002847990260000081
作为区块链监管者的私钥的情况下,获取目标交易的交易随机数,可以包括:
根据交易内容以及第二哈希函数生成交易内容哈希值;
计算Ppub=xP,其中,P为
Figure BDA0002847990260000082
的生成元,Ppub为区块链监管者的公钥,x为区块链监管者的私钥;
根据双线性映射、监管者的公钥、身份标识符、陷门秘钥、第一哈希函数和第二哈希函数计算得到目标交易的交易随机数。
其中,根据交易内容以及第二哈希函数生成交易内容哈希值可以为根据以下公式计算得到交易内容哈希值:
m=H2(t)
其中,m为交易内容哈希值,t为交易内容拼接后得到的字符串,H2为第二哈希函数。
根据双线性映射、监管者的公钥、身份标识符、陷门秘钥、第一哈希函数和第二哈希函数计算得到目标交易的交易随机数可以为根据以下公式计算得到目标交易的交易随机数:
r=(aP,e(aPpub,QID),(c,s))
QID=H1(ID)
Figure BDA0002847990260000091
S=rpQID-cSID
其中,r为目标交易的交易随机数,随机数
Figure BDA0002847990260000092
和随机数
Figure BDA0002847990260000093
R表示从q阶的整数群
Figure BDA0002847990260000094
中随机选择一个元素a和随机选择另一个元素rp,e为双线性映射,P为
Figure BDA0002847990260000095
的生成元,Ppub为区块链监管者的公钥,QID为身份标识符哈希值,ID为身份标识符,H1为第一哈希函数,H2为第二哈希函数,SID为用户的陷门密钥,(c,S)为
Figure BDA0002847990260000099
成立的证明。
在根据双线性映射、监管者的公钥、身份标识符、陷门秘钥、第一哈希函数和第二哈希函数计算得到目标交易的交易随机数的情况下,获取目标交易的交易哈希值,可以包括:
根据身份标识符、交易标识符、交易内容哈希值和交易随机数进行哈希计算得到目标交易的交易哈希值。
其中,根据身份标识符、交易标识符、交易内容哈希值和交易随机数进行哈希计算得到目标交易的交易哈希值可以为根据以下公式计算得到目标交易的交易哈希值:
h=Hash(ID,L,m,r)=aP+mH1(L)
其中,h为目标交易的交易哈希值,ID为身份标识符,L为交易标识符,m为交易内容哈希值,r为目标交易的交易随机数,Hash表示哈希计算,随机数
Figure BDA0002847990260000096
R表示从q阶的整数群
Figure BDA0002847990260000097
中随机选择一个元素a,P为
Figure BDA0002847990260000098
的生成元,H1为第一哈希函数。
由于身份标识符、交易标识符、交易内容哈希值和交易随机数均为公开的参数,因此,上述计算目标交易的交易哈希值的过程既可以由用户进行计算,也可以由区块链节点进行计算。
在对区块进行打包时,不仅在区块上需要记录目标交易的交易哈希值,还需要记录目标交易的交易随机数,并将目标交易的交易随机数附加到目标交易,以便于当需要对目标交易进行编辑时,通过该交易随机数来验证目标交易的交易内容是否发生了改变。
S150:根据陷门密钥、身份标识符、交易标识符、交易哈希值、交易内容、交易随机数和新交易内容计算生成新交易随机数。
由于用户对目标交易的交易进行编辑并生成了新交易内容,因此,目标交易的交易随机数也会发生变化,因此,需要根据陷门密钥、身份标识符、交易标识符、交易哈希值、交易内容、交易随机数和新交易内容计算生成新交易随机数。
在步骤S140中根据身份标识符、交易标识符、交易内容哈希值和交易随机数进行哈希计算得到目标交易的交易哈希值的情况下,根据陷门密钥、身份标识符、交易标识符、交易哈希值、交易内容、交易随机数和新交易内容计算生成新交易随机数,可以包括:
根据新交易内容以及第二哈希函数生成新交易内容哈希值;
根据陷门密钥、身份标识符、交易标识符、交易哈希值、交易内容哈希值、交易随机数和新交易内容哈希值计算得到新交易随机数。
其中,根据新交易内容以及第二哈希函数生成新交易内容哈希值可以为根据以下公式计算得到新交易内容哈希值:
m′=H2(t′)
其中,m′为新交易内容哈希值,t′为新交易内容拼接后得到的字符串,H2为第二哈希函数。
根据陷门密钥、身份标识符、交易标识符、交易哈希值、交易内容哈希值、交易随机数和新交易内容哈希值计算得到新交易随机数可以为根据以下公式计算得到新交易随机数:
Figure BDA0002847990260000101
e(a′Ppub,QID)=e(aPpub,QID)e(H1(L),SID)m-m′
Figure BDA0002847990260000102
S′=rp′QID-c′SID
其中,r′为新交易随机数,
Figure BDA0002847990260000103
为交易内容编辑函数,SID为用户的陷门密钥,ID为身份标识符,L为交易标识符,h为目标交易的交易哈希值,m为交易内容哈希值,r为目标交易的交易随机数,m′为新交易内容哈希值,随机数
Figure BDA0002847990260000111
和随机数
Figure BDA0002847990260000112
R表示从q阶的整数群
Figure BDA0002847990260000113
中随机选择一个元素a′和随机选择另一个元素rp′,P为
Figure BDA0002847990260000114
的生成元,e为双线性映射,Ppub为区块链监管者的公钥,QID为身份标识符哈希值,H1为第一哈希函数,H2为第二哈希函数,SID为用户的陷门密钥,(c′,S′)为
Figure BDA0002847990260000118
Figure BDA0002847990260000119
成立的证明。
S160:根据新交易随机数、身份标识符、交易标识符和新交易内容计算得到新交易哈希值。
在得到新交易随机数后,即可根据新交易随机数、身份标识符、交易标识符和新交易内容计算得到新交易哈希值。
其中,根据新交易随机数、身份标识符、交易标识符和新交易内容计算得到新交易哈希值可以为根据以下公式计算得到新交易哈希值:
h′=Hash(ID,L,m′,r′)=aP+m′H1(L)
其中,h′为新交易哈希值,ID为身份标识符,L为交易标识符,m′为新交易内容哈希值,r′为新交易随机数,随机数
Figure BDA0002847990260000115
R表示从q阶的整数群
Figure BDA0002847990260000116
中随机选择一个元素a,P为
Figure BDA0002847990260000117
的生成元,H1为第一哈希函数。
S170:当新交易哈希值和交易哈希值相等时,将交易内容更新为新交易内容,将交易随机数更新为新交易随机数。
由于在对目标交易进行编辑时,为了保证对目标交易进行编辑的人为用户本人而不是其他人,需要对新交易随机数进行验证,验证的过程就是判断目标交易的交易哈希值是否改变,如果未改变,说明对目标交易进行编辑的人为用户本人,如果改变,说明对目标交易进行编辑的人不是用户本人。
因此,当新交易哈希值和交易哈希值相等时,说明对目标交易进行编辑的人为用户本人,此时将交易内容更新为新交易内容,将交易随机数更新为新交易随机数,由此,完成了对区块链上的交易内容的编辑。
当区块链上的其他节点验证目标交易是否合法时,需要对目标交易的交易哈希值进行验证。此时,计算目标交易的新交易哈希值h′和验证所需要的计算结果c′。c′的计算方式如下公式:
c′=H2(e(P,QID)||e(Ppub,QID)||e(aP,QID)||e(aPpub,QID)||e(P,S)e(aP,QID)c||e(aP,S)e(aPpub,QID)c)
其中,H2为第二哈希函数,P为
Figure BDA0002847990260000121
的生成元,e为双线性映射,Ppub为区块链监管者的公钥,QID为身份标识符哈希值,随机数
Figure BDA0002847990260000122
R表示从q阶的整数群
Figure BDA0002847990260000123
中随机选择一个元素a,(c,S)为
Figure BDA0002847990260000124
Figure BDA0002847990260000125
成立的证明,c′为验证所需要的计算结果。
h′的计算方式如步骤S160所示,目标交易的交易哈希值h和c的计算方式如步骤S160所示,当且仅当h′=h和c′=c时验证通过。
由上述内容可知,本实施例可以根据双线性映射生成区块链监管者的私钥,获取用户对目标交易的交易内容进行编辑后生成的新交易内容,根据用户的身份标识符、第一哈希函数和私钥生成用户的陷门密钥,然后根据陷门密钥、身份标识符、交易标识符、交易哈希值、交易内容、交易随机数和新交易内容计算生成新交易随机数,根据新交易随机数、身份标识符、交易标识符和新交易内容计算得到新交易哈希值,当新交易哈希值和交易哈希值相等时,将交易内容更新为新交易内容,将交易随机数更新为新交易随机数。由于本发明实施例在对目标交易的交易内容进行编辑,并将交易内容更新为新交易内容,将交易随机数更新为新交易随机数的过程中所依赖的用户的陷门密钥以及区块链监管者的私钥分别是用户所私有以及区块链监管者所私有,因此,在对目标交易进行编辑的过程中用户的陷门密钥还是区块链监管者的私钥并不会泄漏,可见,本发明实施例能够对区块链的交易内容进行编辑,避免密钥泄漏,提高安全性。
并且,由于智能合约属于区块链的交易的一种,因此,本发明实施例中能够对区块链的交易内容进行编辑,就可以对智能合约进行修复,允许智能合约维护者与区块链节点共同修改智能合约的内容,解决了对智能合约的缺陷进行修复的问题。
同时,由于本发明实施例中能够对区块链的交易内容进行编辑,因此,可以满足用户的“被遗忘权”的要求,使得用户可以删除区块链上关于自身的数据,实现了隐私保护。其中,用户的“被遗忘权”,是指用户具有要求数据控制者删除关于其个人数据的权利。
同时,本发明实施例采用了多重陷门的设计,也就是区块链监管者掌握主陷门以及用户掌握与自身身份相关的交易陷门的方式,避免了对主陷门存在严重的依赖性。
由于现有技术中的可编辑区块链存在着计算量大以及安全性差的问题,导致不能满足多场景以及多细粒度的编辑需求。因此,在一种实现方式中,上述基于身份的可编辑区块链的构建方法,可以包括以下步骤:
根据预设配置文件配置生成创始区块;
根据双线性映射生成区块链监管者的公钥;
将交易信息记录到生成的各区块中,各区块按生成时间呈链式排列形成链式可编辑区块链,其中,每个区块包括区块头部、区块体和区块校验字段,创始区块的区块头部中的哈希字段是根据预设配置文件生成的,除创始区块外的每个区块的区块头部中的哈希字段记录了上一个区块的区块哈希值,每个区块的区块体包含有交易集以及对应的交易随机数,每个区块的区块校验字段是根据双线性映射和公钥计算得到的。
本发明实施例提供的可编辑区块链保留了一般区块链的链式设计,在生成创始区块时是根据预设配置文件配置生成的,其中,预设配置文件中包含生成创始区块的各个部分的必要内容,预设配置文件可以由区块链创建者根据自身需求进行更改。
为了避免出现现有技术中秘钥泄露的情况,本发明实施例中不再使用秘钥建立区块链,而是采用公钥,因此,在生成创始区块后,根据双线性映射生成区块链监管者的公钥。
其中,根据双线性映射生成区块链监管者的公钥,可以包括:
设置双线性映射为:
Figure BDA0002847990260000131
其中
Figure BDA0002847990260000132
为间隙密钥交换GDH群,
Figure BDA0002847990260000133
为乘法循环群,
Figure BDA0002847990260000134
其中q为素数;
设置哈希函数分别为:
Figure BDA0002847990260000135
Figure BDA0002847990260000136
其中,H1为第一哈希函数,用于将0或1所组成任意长度的字符串{0,1}*映射到群
Figure BDA0002847990260000137
的一个任意元素上,*表示字符串{0,1}为任意长度;H2为第二哈希函数,用于将0或1所组成任意长度的字符串{0,1}*映射到由(0,1,…,q-1)元素所组成的q阶的整数群
Figure BDA0002847990260000138
上,Z表示整数群;
选取随机数
Figure BDA0002847990260000139
作为区块链监管者的私钥,其中,R表示从q阶的整数群
Figure BDA00028479902600001310
中随机选择一个元素x;
计算Ppub=xP,其中,P为
Figure BDA00028479902600001311
的生成元,Ppub为区块链监管者的公钥,x为区块链监管者的私钥。
在生成区块链监管者的公钥后,即可将交易信息记录到各区块中,各区块按生成时间呈链式排列形成链式可编辑区块链。
其中,将交易信息记录到生成的各区块中,各区块按生成时间呈链式排列形成链式可编辑区块链,可以包括:
将当前时间段的交易信息打包,并记录到生成的各区块中,将各区块按生成时间呈链式排列形成链式可编辑区块链。
将当前时间段的交易信息打包并记录到生成的各区块中的方式有多种,包括但不限于以下两种:
第一种:
确定当前生成的区块的大小,在当前时间段的各个交易的大小之和达到当前生成的区块的大小时,就将各个交易的交易信息打包并记录到当前生成的区块中,以此类推,生成各个区块,并将当前时间段的交易信息打包并记录到生成的各区块中。
第二种:
间隔预设时间段生成一区块,并将预设时间段内的各个交易的交易信息打包并记录到生成的区块中,以此类推,生成各个区块,并将当前时间段的交易信息打包并记录到生成的各区块中。
参见图2,图2为本发明实施例提供的可编辑区块链的结构示意图,由图2可知所生成的可编辑区块链中,每个区块包括区块头部、区块体和区块校验字段。其中,区块头部包括哈希字段PrevHash和其它头部字段,其它头部字段可以包含区块编号、区块版本、时间戳、打包节点的数字签名等其它常见字段。
创始区块的区块头部中的哈希字段是根据预设配置文件生成的,除创始区块外的每个区块的区块头部中的哈希字段记录了上一个区块的区块哈希值。例如:图2中的区块Bi的哈希字段
Figure BDA0002847990260000141
Figure BDA0002847990260000142
为上一个区块Bi-1的区块哈希值,区块Bi-1的哈希字段
Figure BDA0002847990260000143
Figure BDA0002847990260000144
为上一个区块Bi-2的区块哈希值。
继续参见图2,每个区块的区块体包含有交易集以及对应的交易随机数,每个区块的区块校验字段是根据双线性映射和公钥计算得到的,例如:区块Bi的区块体包含有交易集{TXi,j}以及对应的交易随机数{ri,j},TXi,j表示区块Bi的第j个交易,ri,j则表示交易TXi,j对应的交易随机数。TXi,j除了包含交易内容以外,还包括交易发起者的身份标识符IDi,j、交易自身的交易标识符Li,j以及交易的交易哈希值hi,j,即TXi,j=(Li,j,IDi,j,交易内容,hi,j),区块Bi-1的区块体包含有交易集以及对应的交易随机数{ri-1,j},区块Bi+1的区块体包含有交易集以及对应的交易随机数{ri+1,j}。
每个区块还包括区块校验字段,例如:参见图2,区块Bi的区块校验字段为Ri,区块Bi-1的区块校验字段为Ri-1,区块Bi+1的区块校验字段为Ri+1
为了行文流畅,关于区块哈希值、交易随机数、交易哈希值和区块校验字段的计算方法将在下文中进行介绍。
由上述内容可知,本实施例可以根据双线性映射生成区块链监管者的公钥,将交易信息记录到生成的各区块中,各区块按生成时间呈链式排列形成链式可编辑区块链,其中,每个区块包括区块头部、区块体和区块校验字段,所述创始区块的区块头部中的哈希字段是根据所述预设配置文件生成的,除所述创始区块外的每个区块的区块头部中的哈希字段记录了上一个区块的区块哈希值,每个区块的区块体包含有交易集以及对应的交易随机数,每个区块的区块校验字段是根据所述双线性映射和所述公钥计算得到的。由于本发明实施例中相对于现有的链式区块链结构增加了区块校验字段,使得某一区块需要重新编辑时,无需对该区块以后的所有区块链进行重新编辑,因此,减少了计算量,且本发明实施例中提供的可编辑区块链结构主要依赖于区块链监管者的公钥,因此不会存在秘钥泄漏的问题,提高了安全性,又由于本发明实施例中仍然采用通用的链式区块链结构,因此,本发明实施例提供了一种通用的可编辑区块链结构,能够减少计算量,提高安全性,满足多场景以及多细粒度的编辑需求。
在上述根据双线性映射生成区块链监管者的公钥,可以包括设置双线性映射、设置哈希函数、选取随机数
Figure BDA0002847990260000151
作为区块链监管者的私钥以及计算Ppub=xP的情况下,在将交易信息记录到生成的各区块中,各区块按生成时间呈链式排列形成链式可编辑区块链之后,上述构建方法还可以包括:
接收内容清除指令,其中,内容清除指令中携带有待删除内容的标识;
当待删除内容的标识为交易标识符时,根据交易标识符与区块的对应关系查找到交易标识符对应的目标区块,根据目标区块上除交易标识符对应的待删除交易外的所有交易的交易内容、目标区块的区块哈希值和第二哈希函数生成目标区块的新区块内容哈希值,根据私钥、目标区块上所有交易的交易内容、目标区块的区块哈希值、目标区块的区块校验字段和目标区块的新区块内容哈希值计算得到目标区块的新区块校验字段,根据目标区块的新区块内容哈希值和目标区块的新区块校验字段进行哈希计算得到目标区块的新区块哈希值,当目标区块的新区块哈希值与目标区块的区块哈希值相等时,删除目标区块上的待删除交易,将目标区块的区块校验字段修改为目标区块的新区块校验字段;
当待删除内容的标识为区块高度时,根据区块高度与区块的对应关系查找到区块高度对应的区块,根据查找到的区块的上一个区块的区块哈希值、查找到的区块的下一个区块上的所有交易的交易内容和第二哈希函数生成下一个区块的新区块内容哈希值,根据私钥、下一个区块的区块哈希值、查找到的区块的区块哈希值、下一个区块的区块校验字段、下一个区块上的所有交易的交易内容、下一个区块的新区块内容哈希值计算得到下一个区块的新区块校验字段,根据下一个区块的新区块校验字段和下一个区块的新区块内容哈希值计算得到下一个区块的新区块哈希值,当上一个区块的区块哈希值与下一个区块的新区块哈希值相等时,删除查找到的区块,将下一个区块的区块哈希值修改为上一个区块的区块哈希值,将下一个区块的区块校验字段修改为下一个区块的新区块校验字段。
目前,已经出现了多起利用公有区块链传播有害信息、网络谣言以及煽动性与攻击性言论的公共事件,因此,为了避免这种情况的发生,区块链监管者需要删除链上的不当内容。
本发明实施例提出了一种既支持交易级删除又支持区块级删除的区块链的链上内容清除方法,允许区块链监管者可以通过删除特定的交易或者删除特定的区块的方式来清除链上的不当内容,满足区块链监管者的多种需求。
无论是删除特定的交易,或是删除特定的区块,本质上都需要实现区块级的编辑。删除特定的交易时,为了不影响后续区块的区块哈希值,需要同时修改该区块中的区块校验字段;删除特定的区块时,该区块的下一个区块中的区块哈希值需要修改为该区块的上一个区块的区块哈希值,同时,下一个区块中的区块校验字段也需要同步修改,以避免影响后续区块。
区块链监管者对区块链监管的过程中,发现区块链上存在不当内容时,发送内容清除指令至电子设备,电子设备接收内容清除指令,其中,内容清除指令中携带有待删除内容的标识。
在一种实现方式中,当不当内容出现在某一交易里,区块链监管者就删除该交易,此时,内容清除指令中携带有待删除交易的交易标识符;当不当内容出现在区块里,例如:某一区块上包含十条交易,十条交易中的每条或者多条都包含不当内容,区块链监管者就删除区块,此时,内容清除指令中携带有待删除区块的区块高度。
当待删除内容的标识为交易标识符时,说明不当内容出现在某一交易里,此时,根据交易标识符与区块的对应关系查找到交易标识符对应的目标区块,也就是查找到了出现不当内容的交易所在的目标区块,其中,出现不当内容的交易就是后续描述中的待删除交易。
在查找到了目标区块后,就需要删除目标区块上的出现不当内容的交易,由于直接删除出现不当内容的交易会改变目标区块的区块哈希值,进一步影响后续区块的区块哈希值,因此,为了在删除出现不当内容的交易后对区块链不产生影响,需要保持目标区块的区块哈希值不变。
为了保持目标区块的区块哈希值不变,需要修改目标区块的区块校验字段得到目标区块的新区块校验字段,然后根据目标区块的新区块校验字段计算得到目标区块的新区块哈希值。
具体的,修改目标区块的区块校验字段得到目标区块的新区块校验字段,然后根据目标区块的新区块校验字段计算得到目标区块的新区块哈希值可以为:根据目标区块上除交易标识符对应的待删除交易外的所有交易的交易内容、目标区块的区块哈希值和第二哈希函数生成目标区块的新区块内容哈希值,根据私钥、目标区块上所有交易的交易内容、目标区块的区块哈希值、目标区块的区块校验字段和目标区块的新区块内容哈希值计算得到目标区块的新区块校验字段,根据目标区块的新区块内容哈希值和目标区块的新区块校验字段进行哈希计算得到目标区块的新区块哈希值。
其中,根据目标区块上除交易标识符对应的待删除交易外的所有交易的交易内容、目标区块的区块哈希值和第二哈希函数生成目标区块的新区块内容哈希值可以为根据以下公式计算得到目标区块的新区块内容哈希值:
m′i=H2(PrevHashi||T′i)
其中,m′i为目标区块的新区块内容哈希值,PrevHashi为目标区块的区块哈希值,T′i为目标区块上除交易标识符对应的待删除交易外的所有交易的交易内容拼接后得到的字符串,H2为第二哈希函数。
根据私钥、目标区块上所有交易的交易内容、目标区块的区块哈希值、目标区块的区块校验字段和目标区块的新区块内容哈希值计算得到目标区块的新区块校验字段,可以包括:
根据目标区块上所有交易的交易内容、目标区块的区块哈希值和第二哈希函数生成目标区块的区块内容哈希值;
根据私钥、目标区块的区块哈希值、目标区块的区块内容哈希值、目标区块的区块校验字段和目标区块的新区块内容哈希值计算得到目标区块的新区块校验字段。
其中,根据目标区块上所有交易的交易内容、目标区块的区块哈希值和第二哈希函数生成目标区块的区块内容哈希值可以为根据以下公式计算得到目标区块的区块内容哈希值:
mi=H2(PrevHashi||Ti)
其中,mi为目标区块的区块内容哈希值,PrevHashi为目标区块的区块哈希值,Ti为目标区块上所有交易的交易内容拼接后得到的字符串,H2为第二哈希函数。
根据私钥、目标区块的区块哈希值、目标区块的区块内容哈希值、目标区块的区块校验字段和目标区块的新区块内容哈希值计算得到目标区块的新区块校验字段可以为根据以下公式计算得到目标区块的新区块校验字段:
Figure BDA0002847990260000181
a′P=aP+x-1(m-m′)P
a′Ppub=aPpub+(m-m′)P
Ppub=xP
Figure BDA0002847990260000182
S′=rp′QID-c′SID
SID=xQID
QID=H1(ID)
其中,R′i为目标区块的新区块校验字段,
Figure BDA0002847990260000191
为交易内容编辑函数,x为区块链监管者的私钥,
Figure BDA0002847990260000192
为目标区块的区块哈希值,mi为目标区块的区块内容哈希值,Ri为目标区块的区块校验字段,m′i为目标区块的新区块内容哈希值,随机数
Figure BDA0002847990260000193
和随机数
Figure BDA0002847990260000194
R′表示从q阶的整数群
Figure BDA0002847990260000195
中随机选择一个元素a′和随机选择另一个元素rp′,P为间隙密钥交换GDH群
Figure BDA0002847990260000196
的生成元,Ppub为区块链监管者的公钥,随机数
Figure BDA0002847990260000197
R表示从q阶的整数群
Figure BDA0002847990260000198
中随机选择一个元素a,QID为身份标识符哈希值,ID为身份标识符,H1为第一哈希函数,H2为第二哈希函数,SID为用户的陷门密钥,(c′,S′)为
Figure BDA0002847990260000199
成立的证明。
目标区块的区块哈希任
Figure BDA00028479902600001910
的计算方式可以为:
Figure BDA00028479902600001911
Ri=(aP,aPpub,(c,S))
Figure BDA00028479902600001912
S=rpQID-cSID
SID=xQID
QID=H1(ID)
其中,
Figure BDA00028479902600001913
为目标区块的区块哈希值,mi为目标区块的区块内容哈希值,Ri为目标区块的区块校验字段,Hash表示哈希计算,P为间隙密钥交换GDH群
Figure BDA00028479902600001914
的生成元,Ppub为区块链监管者的公钥,随机数
Figure BDA00028479902600001915
和随机数
Figure BDA00028479902600001916
R表示从q阶的整数群
Figure BDA00028479902600001917
中随机选择一个元素a和随机选取一个元素rp,QID为身份标识符哈希值,ID为身份标识符,H1为第一哈希函数,H2为第二哈希函数,SID为用户的陷门密钥,(c,S)为
Figure BDA00028479902600001918
Figure BDA00028479902600001919
成立的证明。
根据目标区块的新区块内容哈希值和目标区块的新区块校验字段进行哈希计算得到目标区块的新区块哈希值可以为根据以下公式计算得到目标区块的新区块哈希值:
Figure BDA0002847990260000201
其中,
Figure BDA0002847990260000202
为目标区块的新区块哈希值,m′i为目标区块的新区块内容哈希值,R′i为目标区块的新区块校验字段,Hash表示哈希计算,随机数
Figure BDA0002847990260000203
R表示从q阶的整数群
Figure BDA0002847990260000204
中随机选择一个元素a,P为间隙密钥交换GDH群
Figure BDA0002847990260000205
的生成元,Ppub为区块链监管者的公钥。
当目标区块的新区块哈希值与目标区块的区块哈希值相等时,说明在将待删除交易删除后可以保持目标区块的区块哈希值不变,此时,可以删除目标区块上的待删除交易,将目标区块的区块校验字段修改为目标区块的新区块校验字段。
当待删除内容的标识为区块高度时,说明不当内容出现在区块里,此时,根据区块高度与区块的对应关系查找到区块高度对应的区块,也就是查找到了出现不当内容的区块。
在查找到了区块高度对应的区块后,就需要删除查找到的区块,由于直接删除查找到的区块会对后续区块产生影响,因此,为了在删除出现不当内容的区块后对区块链不产生影响,需要对查找到的区块的下一个区块的区块哈希值和区块校验字段进行修改。
为了对查找到的区块的下一个区块的区块哈希值和区块校验字段进行修改,需要根据查找到的区块的上一个区块的区块哈希值、查找到的区块的下一个区块上的所有交易的交易内容和第二哈希函数生成下一个区块的新区块内容哈希值,根据私钥、下一个区块的区块哈希值、查找到的区块的区块哈希值、下一个区块的区块校验字段、下一个区块上的所有交易的交易内容、下一个区块的新区块内容哈希值计算得到下一个区块的新区块校验字段,根据下一个区块的新区块校验字段和下一个区块的新区块内容哈希值计算得到下一个区块的新区块哈希值。
其中,查找到的区块的区块哈希值的计算方式,可以包括:
根据查找到的区块上的所有交易的交易内容、上一个区块的区块哈希值和第二哈希函数生成查找到的区块的区块内容哈希值;
根据查找到的区块的区块内容哈希值和查找到的区块的区块校验字段计算得到查找到的区块的区块哈希值。
根据查找到的区块上的所有交易的交易内容、上一个区块的区块哈希值和第二哈希函数生成查找到的区块的区块内容哈希值的计算方式可以参照上述计算目标区块的区块内容哈希值的计算方式,在此不再赘述。
根据查找到的区块的区块内容哈希值和查找到的区块的区块校验字段计算得到查找到的区块的区块哈希值的计算方式可以参照上述计算目标区块的区块哈希值的计算方式,在此不再赘述。
类似的,查找到的区块的上一个区块的区块哈希值的计算方式可以参照查找到的区块的区块哈希值的计算方式。
根据查找到的区块的上一个区块的区块哈希值、查找到的区块的下一个区块上的所有交易的交易内容和第二哈希函数生成下一个区块的新区块内容哈希值可以为根据以下公式计算得到下一个区块的新区块内容哈希值:
Figure BDA0002847990260000211
其中,m′k+1为下一个区块的新区块内容哈希值,
Figure BDA0002847990260000212
为查找到的区块的上一个区块的区块哈希值,Tk+1为查找到的区块的下一个区块上的所有交易的交易内容拼接后得到的字符串,H2为第二哈希函数。
根据私钥、下一个区块的区块哈希值、查找到的区块的区块哈希值、下一个区块的区块校验字段、下一个区块上的所有交易的交易内容、下一个区块的新区块内容哈希值计算得到下一个区块的新区块校验字段,可以包括:
根据查找到的区块的区块哈希值、下一个区块上的所有交易的交易内容和第二哈希函数生成下一个区块的区块内容哈希值;
根据私钥、下一个区块的区块哈希值、下一个区块的区块内容哈希值、下一个区块的区块校验字段和下一个区块的新区块内容哈希值计算得到下一个区块的新区块校验字段。
根据查找到的区块的区块哈希值、下一个区块上的所有交易的交易内容和第二哈希函数生成下一个区块的区块内容哈希值可以为根据以下公式计算得到下一个区块的区块内容哈希值:
Figure BDA0002847990260000213
其中,mk+1为下一个区块的区块内容哈希值,
Figure BDA0002847990260000214
为查找到的区块的区块哈希值,Tk+1为下一个区块上的所有交易的交易内容拼接后得到的字符串,H2为第二哈希函数。
根据私钥、下一个区块的区块哈希值、下一个区块的区块内容哈希值、下一个区块的区块校验字段和下一个区块的新区块内容哈希值计算得到下一个区块的新区块校验字段可以为根据以下公式计算得到下一个区块的新区块校验字段:
Figure BDA0002847990260000221
a′k+1P=ak+1P+x-1(mk+1-m′k+1)P
a′k+1Ppub=ak+1Ppub+(mk+1-m′k+1)P
Figure BDA0002847990260000222
Sk+1′=rpk+1′QID-ck+1′SID
SID=xQID
QID=H1(ID)
其中,R′k+1为下一个区块的新区块校验字段,
Figure BDA0002847990260000223
为区块内容编辑函数,
Figure BDA0002847990260000224
为下一个区块的区块哈希值,mk+1为下一个区块的区块内容哈希值,Rk+1为下一个区块的区块校验字段,m′k+1为下一个区块的新区块内容哈希值,x为区块链监管者的私钥,随机数
Figure BDA0002847990260000225
随机数
Figure BDA0002847990260000226
随机数
Figure BDA0002847990260000227
和随机数
Figure BDA0002847990260000228
R表示从q阶的整数群
Figure BDA0002847990260000229
中随机选择一个元素ak+1、随机选择一个元素rp′、随机选择一个元素a′k+1和随机选择一个元素
Figure BDA00028479902600002210
P为间隙密钥交换GDH群
Figure BDA00028479902600002211
的生成元,Ppub为区块链监管者的公钥,QID为身份标识符哈希值,ID为身份标识符,H1为第一哈希函数,H2为第二哈希函数,SID为用户的陷门密钥,(ck+1′,Sk+1′)为
Figure BDA00028479902600002212
成立的证明。
根据下一个区块的新区块校验字段和下一个区块的新区块内容哈希值计算得到下一个区块的新区块哈希值可以为根据以下公式计算得到下一个区块的新区块哈希值:
Figure BDA00028479902600002213
其中,
Figure BDA00028479902600002214
为下一个区块的新区块哈希值,m′k+1为下一个区块的新区块内容哈希值,R′k+1为下一个区块的新区块校验字段,Hash表示哈希计算。
当上一个区块的区块哈希值与下一个区块的新区块哈希值相等时,说明=删除查找到的区块后不会对后续区块产生影响,此时,可以删除查找到的区块,将下一个区块的区块哈希值修改为上一个区块的区块哈希值,将下一个区块的区块校验字段修改为下一个区块的新区块校验字段。
其中,计算上一个区块的区块哈希值与下一个区块的新区块哈希值相等的过程,就是验证下一个区块的新区块校验字段的过程。
当区块链上的其他节点验证目标区块是否合法时,需要对目标区块的区块哈希值进行验证。此时,计算目标交易的新区块哈希值
Figure BDA0002847990260000231
和验证所需要的计算结果c′。c′的计算方式如下公式:
c′=H2(e(P,QID)||e(Ppub,QID)||e(aP,QID)||e(aPpub,QID)||e(P,S)e(aP,QID)c||e(aP,S)e(aPpub,QID)c)
其中,H2为第二哈希函数,P为
Figure BDA0002847990260000239
的生成元,e为双线性映射,Ppub为区块链监管者的公钥,QID为身份标识符哈希值,随机数
Figure BDA0002847990260000232
R表示从q阶的整数群
Figure BDA0002847990260000233
中随机选择一个元素a,(c,S)为
Figure BDA0002847990260000234
Figure BDA0002847990260000235
成立的证明,c′为验证所需要的计算结果。
Figure BDA0002847990260000236
的计算方式、目标区块的区块哈希值
Figure BDA0002847990260000237
和c的计算方式如步骤S120所示,当且仅当
Figure BDA0002847990260000238
和c′=c时验证通过。
由上述内容可知,本实施例可以在接收内容清除指令后,当待删除内容的标识为交易标识符时,根据交易标识符与区块的对应关系查找到交易标识符对应的目标区块,计算目标区块的新区块内容哈希值,根据区块链监管者的私钥计算目标区块的新区块校验字段,根据目标区块的新区块内容哈希值和目标区块的新区块校验字段进行哈希计算得到目标区块的新区块哈希值,当目标区块的新区块哈希值与目标区块的区块哈希值相等时,删除目标区块上的待删除交易,将目标区块的区块校验字段修改为目标区块的新区块校验字段,当待删除内容的标识为区块高度时,根据区块高度与区块的对应关系查找到区块高度对应的区块,计算下一个区块的新区块内容哈希值,根据区块链监管者的私钥计算下一个区块的新区块校验字段,根据下一个区块的新区块校验字段和下一个区块的新区块内容哈希值计算得到下一个区块的新区块哈希值,当上一个区块的区块哈希值与下一个区块的新区块哈希值相等时,删除查找到的区块,将下一个区块的区块哈希值修改为上一个区块的区块哈希值,将下一个区块的区块校验字段修改为下一个区块的新区块校验字段。可见,本发明实施例既可以删除特定的交易,又可以删除特定的区块,既支持对区块上的交易进行删除,又支持对区块进行删除,提高了灵活性。在删除特定的交易时,同时修改特定的交易所在区块中的区块校验字段以不影响后续区块的区块哈希值,在删除特定的区块时,同时将特定的区块的下一个区块中的区块哈希值修改为特定的区块的上一个区块的区块哈希值,并同步修改特定的区块的下一个区块中的区块校验字段以不影响后续区块的区块哈希值。
图3为本发明实施例提供的一种基于身份的区块链的交易内容编辑装置的结构示意图,参见图3,本发明实施例提供的一种基于身份的区块链的交易内容编辑装置,包括:
私钥生成模块301,用于根据双线性映射生成区块链监管者的私钥;
第一获取模块302,用于获取用户对目标交易的交易内容进行编辑后生成的新交易内容;
陷门密钥生成模块303,用于获取所述用户的身份标识符,根据所述身份标识符、第一哈希函数和所述私钥生成所述用户的陷门密钥;
第二获取模块304,用于获取所述目标交易的交易标识符、所述目标交易的交易随机数以及所述目标交易的交易哈希值;
新交易随机数生成模块305,用于根据所述陷门密钥、所述身份标识符、所述交易标识符、所述交易哈希值、所述交易内容、所述交易随机数和所述新交易内容计算生成新交易随机数;
新交易哈希值生成模块306,用于根据所述新交易随机数、所述身份标识符、所述交易标识符和所述新交易内容计算得到新交易哈希值;
更新模块307,用于当所述新交易哈希值和所述交易哈希值相等时,将所述交易内容更新为所述新交易内容,将所述交易随机数更新为所述新交易随机数。
本实施例提供的装置可以根据双线性映射生成区块链监管者的私钥,获取用户对目标交易的交易内容进行编辑后生成的新交易内容,根据用户的身份标识符、第一哈希函数和私钥生成用户的陷门密钥,然后根据陷门密钥、身份标识符、交易标识符、交易哈希值、交易内容、交易随机数和新交易内容计算生成新交易随机数,根据新交易随机数、身份标识符、交易标识符和新交易内容计算得到新交易哈希值,当新交易哈希值和交易哈希值相等时,将交易内容更新为新交易内容,将交易随机数更新为新交易随机数。由于本发明实施例在对目标交易的交易内容进行编辑,并将交易内容更新为新交易内容,将交易随机数更新为新交易随机数的过程中所依赖的用户的陷门密钥以及区块链监管者的私钥分别是用户所私有以及区块链监管者所私有,因此,在对目标交易进行编辑的过程中用户的陷门密钥还是区块链监管者的私钥并不会泄漏,可见,本发明实施例能够对区块链的交易内容进行编辑,避免密钥泄漏,提高安全性。
在一种实现方式中,所述私钥生成模块301,可以包括:
第一设置子模块,用于设置双线性映射e为:
Figure BDA0002847990260000251
其中
Figure BDA0002847990260000252
为间隙密钥交换GDH群,
Figure BDA0002847990260000253
为乘法循环群,
Figure BDA0002847990260000254
其中q为素数;
第二设置子模块,用于设置哈希函数分别为:
Figure BDA0002847990260000255
Figure BDA0002847990260000256
其中,H1为第一哈希函数,用于将0或1所组成任意长度的字符串{0,1}*映射到群
Figure BDA0002847990260000257
的一个任意元素上,*表示字符串{0,1}为任意长度;H2为第二哈希函数,用于将0或1所组成任意长度的字符串{0,1}*映射到由(0,1,...,q-1)元素所组成的q阶的整数群
Figure BDA0002847990260000258
上,Z表示整数群;
选取子模块,用于选取随机数
Figure BDA0002847990260000259
作为所述区块链监管者的私钥,其中,R表示从q阶的整数群
Figure BDA00028479902600002510
中随机选择一个元素x。
在一种实现方式中,所述第二获取模块304,可以包括:
交易内容哈希值生成子模块,用于根据所述交易内容以及第二哈希函数生成交易内容哈希值;
计算子模块,用于计算Ppub=xP,其中,P为
Figure BDA00028479902600002511
的生成元,Ppub为所述区块链监管者的公钥,x为所述区块链监管者的私钥;
交易随机数计算子模块,用于根据所述双线性映射、所述监管者的公钥、所述身份标识符、所述陷门秘钥、所述第一哈希函数和所述第二哈希函数计算得到所述目标交易的交易随机数。
在一种实现方式中,所述第二获取模块304,可以具体用于:
根据所述身份标识符、所述交易标识符、所述交易内容哈希值和所述交易随机数进行哈希计算得到所述目标交易的交易哈希值。
在一种实现方式中,所述新交易随机数生成模块305,可以包括:
新交易内容哈希值生成子模块,用于根据所述新交易内容以及所述第二哈希函数生成新交易内容哈希值;
新交易随机数计算子模块,用于根据所述陷门密钥、所述身份标识符、所述交易标识符、所述交易哈希值、所述交易内容哈希值、所述交易随机数和所述新交易内容哈希值计算得到新交易随机数。
上述装置实施例与方法实施例相对应,与该方法实施例具有同样的技术效果,具体说明参见方法实施例。装置实施例是基于方法实施例得到的,具体的说明可以参见方法实施例部分,此处不再赘述。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。

Claims (10)

1.一种基于身份的区块链的交易内容编辑方法,其特征在于,包括:
根据双线性映射生成区块链监管者的私钥;
获取用户对目标交易的交易内容进行编辑后生成的新交易内容;
获取所述用户的身份标识符,根据所述身份标识符、第一哈希函数和所述私钥生成所述用户的陷门密钥;
获取所述目标交易的交易标识符、所述目标交易的交易随机数以及所述目标交易的交易哈希值;
根据所述陷门密钥、所述身份标识符、所述交易标识符、所述交易哈希值、所述交易内容、所述交易随机数和所述新交易内容计算生成新交易随机数;
根据所述新交易随机数、所述身份标识符、所述交易标识符和所述新交易内容计算得到新交易哈希值;
当所述新交易哈希值和所述交易哈希值相等时,将所述交易内容更新为所述新交易内容,将所述交易随机数更新为所述新交易随机数。
2.如权利要求1所述的方法,其特征在于,所述根据双线性映射生成区块链监管者的私钥的步骤,包括:
设置双线性映射e为:
Figure FDA0002847990250000011
其中
Figure FDA0002847990250000012
为间隙密钥交换GDH群,
Figure FDA0002847990250000013
为乘法循环群,
Figure FDA0002847990250000014
其中q为素数;
设置哈希函数分别为:
Figure FDA0002847990250000015
Figure FDA0002847990250000016
其中,H1为第一哈希函数,用于将0或1所组成任意长度的字符串{0,1}*映射到群
Figure FDA0002847990250000017
的一个任意元素上,*表示字符串{0,1}为任意长度;H2为第二哈希函数,用于将0或1所组成任意长度的字符串{0,1}*映射到由(0,1,…,q-1)元素所组成的q阶的整数群
Figure FDA0002847990250000018
上,Z表示整数群;
选取随机数
Figure FDA0002847990250000019
作为所述区块链监管者的私钥,其中,R表示从q阶的整数群
Figure FDA00028479902500000110
中随机选择一个元素x。
3.如权利要求1或2所述的方法,其特征在于,所述获取所述目标交易的交易随机数的步骤,包括:
根据所述交易内容以及第二哈希函数生成交易内容哈希值;
计算Ppub=xP,其中,P为
Figure FDA0002847990250000021
的生成元,Ppub为所述区块链监管者的公钥,x为所述区块链监管者的私钥;
根据所述双线性映射、所述监管者的公钥、所述身份标识符、所述陷门秘钥、所述第一哈希函数和所述第二哈希函数计算得到所述目标交易的交易随机数。
4.如权利要求2或3所述的方法,其特征在于,所述获取所述目标交易的交易哈希值的步骤,包括:
根据所述身份标识符、所述交易标识符、所述交易内容哈希值和所述交易随机数进行哈希计算得到所述目标交易的交易哈希值。
5.如权利要求4所述的方法,其特征在于,所述根据所述陷门密钥、所述身份标识符、所述交易标识符、所述交易哈希值、所述交易内容、所述交易随机数和所述新交易内容计算生成新交易随机数的步骤,包括:
根据所述新交易内容以及所述第二哈希函数生成新交易内容哈希值;
根据所述陷门密钥、所述身份标识符、所述交易标识符、所述交易哈希值、所述交易内容哈希值、所述交易随机数和所述新交易内容哈希值计算得到新交易随机数。
6.一种基于身份的区块链的交易内容编辑装置,其特征在于,包括:
私钥生成模块,用于根据双线性映射生成区块链监管者的私钥;
第一获取模块,用于获取用户对目标交易的交易内容进行编辑后生成的新交易内容;
陷门密钥生成模块,用于获取所述用户的身份标识符,根据所述身份标识符、第一哈希函数和所述私钥生成所述用户的陷门密钥;
第二获取模块,用于获取所述目标交易的交易标识符、所述目标交易的交易随机数以及所述目标交易的交易哈希值;
新交易随机数生成模块,用于根据所述陷门密钥、所述身份标识符、所述交易标识符、所述交易哈希值、所述交易内容、所述交易随机数和所述新交易内容计算生成新交易随机数;
新交易哈希值生成模块,用于根据所述新交易随机数、所述身份标识符、所述交易标识符和所述新交易内容计算得到新交易哈希值;
更新模块,用于当所述新交易哈希值和所述交易哈希值相等时,将所述交易内容更新为所述新交易内容,将所述交易随机数更新为所述新交易随机数。
7.如权利要求6所述的装置,其特征在于,所述私钥生成模块,包括:
第一设置子模块,用于设置双线性映射e为:
Figure FDA0002847990250000031
其中
Figure FDA0002847990250000032
为间隙密钥交换GDH群,
Figure FDA0002847990250000033
为乘法循环群,
Figure FDA0002847990250000034
其中q为素数;
第二设置子模块,用于设置哈希函数分别为:
Figure FDA0002847990250000035
Figure FDA0002847990250000036
其中,H1为第一哈希函数,用于将0或1所组成任意长度的字符串{0,1}*映射到群
Figure FDA0002847990250000037
的一个任意元素上,*表示字符串{0,1}为任意长度;H2为第二哈希函数,用于将0或1所组成任意长度的字符串{0,1}*映射到由(0,1,…,q-1)元素所组成的q阶的整数群
Figure FDA0002847990250000038
上,Z表示整数群;
选取子模块,用于选取随机数
Figure FDA0002847990250000039
作为所述区块链监管者的私钥,其中,R表示从q阶的整数群
Figure FDA00028479902500000310
中随机选择一个元素x。
8.如权利要求7所述的装置,其特征在于,所述第二获取模块,包括:
交易内容哈希值生成子模块,用于根据所述交易内容以及第二哈希函数生成交易内容哈希值;
计算子模块,用于计算Ppub=xP,其中,P为
Figure FDA00028479902500000311
的生成元,Ppub为所述区块链监管者的公钥,x为所述区块链监管者的私钥;
交易随机数计算子模块,用于根据所述双线性映射、所述监管者的公钥、所述身份标识符、所述陷门秘钥、所述第一哈希函数和所述第二哈希函数计算得到所述目标交易的交易随机数。
9.如权利要求8所述的装置,其特征在于,所述第二获取模块,具体用于:
根据所述身份标识符、所述交易标识符、所述交易内容哈希值和所述交易随机数进行哈希计算得到所述目标交易的交易哈希值。
10.如权利要求9所述的装置,其特征在于,所述新交易随机数生成模块,包括:
新交易内容哈希值生成子模块,用于根据所述新交易内容以及所述第二哈希函数生成新交易内容哈希值;
新交易随机数计算子模块,用于根据所述陷门密钥、所述身份标识符、所述交易标识符、所述交易哈希值、所述交易内容哈希值、所述交易随机数和所述新交易内容哈希值计算得到新交易随机数。
CN202011517792.1A 2020-12-21 2020-12-21 一种基于身份的区块链的交易内容编辑方法及装置 Active CN112560096B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011517792.1A CN112560096B (zh) 2020-12-21 2020-12-21 一种基于身份的区块链的交易内容编辑方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011517792.1A CN112560096B (zh) 2020-12-21 2020-12-21 一种基于身份的区块链的交易内容编辑方法及装置

Publications (2)

Publication Number Publication Date
CN112560096A CN112560096A (zh) 2021-03-26
CN112560096B true CN112560096B (zh) 2022-12-02

Family

ID=75030621

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011517792.1A Active CN112560096B (zh) 2020-12-21 2020-12-21 一种基于身份的区块链的交易内容编辑方法及装置

Country Status (1)

Country Link
CN (1) CN112560096B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113141354A (zh) * 2021-04-13 2021-07-20 武汉天梯科技股份有限公司 一种区块链自动修复的方法
US20230396443A1 (en) * 2022-06-01 2023-12-07 International Business Machines Corporation Asset management identification key

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107276754A (zh) * 2017-07-10 2017-10-20 北京云知科技有限公司 一种基于区块链大量生成私钥的方法及装置
CN110489422A (zh) * 2019-08-23 2019-11-22 电子科技大学 区块链自动修复的方法
CN111448579A (zh) * 2017-10-04 2020-07-24 丁津泰 量子证明区块链

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107276754A (zh) * 2017-07-10 2017-10-20 北京云知科技有限公司 一种基于区块链大量生成私钥的方法及装置
CN111448579A (zh) * 2017-10-04 2020-07-24 丁津泰 量子证明区块链
CN110489422A (zh) * 2019-08-23 2019-11-22 电子科技大学 区块链自动修复的方法

Also Published As

Publication number Publication date
CN112560096A (zh) 2021-03-26

Similar Documents

Publication Publication Date Title
CN112540998B (zh) 一种区块链的链上内容清除方法及装置
CN112541195A (zh) 一种可编辑区块链的构建方法及装置
CN112560096B (zh) 一种基于身份的区块链的交易内容编辑方法及装置
CN109189853B (zh) 一种区块链之间数据同步方法与装置
CN112055025B (zh) 一种基于区块链的隐私数据保护方法
CN107276762B (zh) 一种多协议区块链的工作方法及装置
CN112367174B (zh) 一种基于属性值的区块链共识方法及装置
CN107770154A (zh) 基于云存储的区块链可靠数据存储方法、终端及***
CN110362633B (zh) 区块数据存储方法、装置、计算机设备及存储介质
CN112437049B (zh) 一种基于bft的区块链共识方法及装置
CN108897760A (zh) 基于默克尔树的电子证据链完整性验证方法
CN107426165A (zh) 一种支持密钥更新的双向安全云存储数据完整性检测方法
CN112069550B (zh) 一种基于智能合约方式的电子合同存证***
CN110489422A (zh) 区块链自动修复的方法
CN105787389A (zh) 云文件完整性公开审计证据生成方法及公开审计方法
CN114465817B (zh) 一种基于tee预言机集群和区块链的数字证书***及方法
CN110264354A (zh) 创建区块链账户及验证区块链交易的方法及装置
CN108009445A (zh) 一种半中心化的可信数据管理***
CN106611136A (zh) 云存储中一种数据篡改验证方法
CN109861829A (zh) 支持动态更新的云数据公正审计***及其审计方法
CN110289962A (zh) 一种基于utxo模型的ibe密钥更新方法及装置
CN111464310B (zh) 一种联盟链与Polkadot链混合链实现方法
CN111596890A (zh) 一种基于分布式协议的区块链随机数种子生成方法、设备及介质
CN110086795A (zh) 认证树构建方法及云平台下基于认证树的流安全交换***
CN110460447A (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
GR01 Patent grant
GR01 Patent grant