掌桥专利:专业的专利平台
掌桥专利
首页

一种基于群签名和自动机的可修改区块链方法及系统

文献发布时间:2024-01-17 01:14:25


一种基于群签名和自动机的可修改区块链方法及系统

技术领域

本发明涉及区块链技术领域,尤其涉及一种基于群签名和自动机的可修改区块链方法。

背景技术

区块链是一种具有不可篡改性和不可伪造性的分布式账本,它一开始是一种支持不可信双方直接支付的电子交易系统。在区块链技术的蓬勃发展下,其对物流、公司管理、游戏等领域产生了巨大的影响。

由于区块链系统存在不可篡改性,用户数据一旦上链难以修改,目前公开的区块链系统如以太坊中,已存在由恶意用户发布的各类违法违规数据,这些恶意数据的存在阻碍了区块链的健康发展,由此可修改区块链方案应运而生。

现有的可修改区块链方案主要分为两种,一种是基于变色龙哈希技术,该种方案存在一个或多个具有修改权限的修改者,修改者拥有全部或部分变色龙哈希私钥,该类方案常采用属性基加密或秘密分享等方案对修改者的修改权限进行限制以避免修改者对数据内容进行恶意修改,然而该方案并未考虑用户对于数据的使用权,用户难以认同被修改后的数据;另一种是由用户提出修改请求后,区块链全体节点进行投票,当一定时间内票数大于阈值数据就能够被修改的方法,该方法的修改周期较长,无法承担大量的数据修改操作。

发明内容

本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本申请的说明书摘要和发明名称中可能会做些简化或省略以避免使本部分、说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。

鉴于上述现有存在的问题,提出了本发明。

因此,本发明解决的技术问题是:解决现有可修改区块链存在修改过程未考虑用户对于数据的使用权、用户难以认同被修改后的数据的问题。

为解决上述技术问题,本发明提供如下技术方案,一种基于群签名和自动机的可修改区块链方法,包括:

系统管理机构进行系统参数设置,发送更新交易;

通过用户发送普通交易、发送用户协商交易和修改者进行协商修改;

通过修改者在区块链中发送协商交易使用户发送的普通交易的数据修改,发送修改交易;

通过可修改区块链节点验证交易是否成功。

作为本发明所述的基于群签名和自动机的可修改区块链方法的一种优选方案,其中:所述预处理包括,向道头关键字程序输入多分量海底节点数据,获取观测系统信息,分选出压力分量和垂直速度分量的共检波点道集数据。

作为本发明所述的基于群签名和自动机的可修改区块链方法的一种优选方案,其中:所述系统管理机构进行系统参数设置,包括,

生成变色龙哈希密钥对和群签名密钥对;

给各个修改者发送变色龙哈希私钥和群签名私钥;

发送更新交易,更新群签名公钥。

作为本发明所述的基于群签名和自动机的可修改区块链方法的一种优选方案,其中:各类交易类型,包括:

所述普通交易,包括交易编号、交易发送者地址、交易接收者地址、交易数量、交易数据、椭圆曲线签名、椭圆曲线加密算法的公钥、变色龙哈希的随机数;

所述更新交易,包括交易编号、交易发送者地址、更新交易的椭圆曲线签名、变色龙哈希公钥共四个字段;

所述修改者协商交易,包括交易编号、交易发送者地址、被修改的交易编号、椭圆曲线加密算法的公钥、协商数据密文、群签名,修改者协商交易的椭圆曲线签名;

所述用户协商交易,包括交易编号、交易发送者地址、被修改的交易编号、协商数据的密文、用户协商交易的椭圆曲线签名;

所述修改交易,包括交易编号、交易发送者地址、被修改的交易编号、群签名、交易数据的椭圆曲线签名、变色龙哈希随机数、修改后的交易数据、修改交易的椭圆曲线签名。

作为本发明所述的基于群签名和自动机的可修改区块链方法的一种优选方案,其中:所述各类交易类型,还包括:

各类交易中,交易发送者地址为系统管理机构、用户、修改者生成的椭圆曲线公钥,交易编号为交易的哈希值。

作为本发明所述的基于群签名和自动机的可修改区块链方的一种优选方案,其中,还包括构建交易状态的有限自动机模型FA={Q,I,σ,s,F}来约束交易的修改,

其中Q={S

I={T

s={S

F={S

σ={F

作为本发明所述的基于群签名和自动机的可修改区块链方法的一种优选方案,其中:所述普通交易的验证方式,包括:

先验证普通交易的哈希值与交易编号是否相同,若相同,再进行后续验证,若不相同,则直接验证失败;

若所述普通交易正在协商修改,普通交易的哈希值验证通过后,再验证该交易的所述交易数据与本地数据字典中该交易编号对应的内容是否一致,若一致则交易验证成功,否则交易验证失败;

若所述普通交易已完成修改,普通交易的哈希值通过后,再验证该交易的所述交易数据与本地数据字典中所述交易编号对应的内容是否一致,若一致并且普通交易的所述椭圆曲线签名能够通过椭圆曲线签名验证,则交易验证成功,否则交易验证失败;

若所述普通交易未被修改过,普通交易的哈希值通过后,再验证交易的所述椭圆曲线签名,若签名能够通过验证则交易验证成功,否则交易验证失败。

作为本发明所述的基于群签名和自动机的可修改区块链方法的一种优选方案,其中:非普通交易的验证方式,包括:

更新交易的验证方式为:先验证交易的交易发送者地址是否为系统管理机构的地址,再使用该地址验证交易的椭圆曲线签名,若能够通过签名的验证,则交易验证成功,否则交易验证失败;

修改者协商交易的验证方式为:先计算协商数据密文的信息熵,若信息熵高于系统管理机构设定的信息熵阈值,则使用系统管理机构公式的群签名公钥验证交易的群签名字段,最后验证交易的椭圆曲线签名,以上任一步骤验证失败则交易验证失败,全部通过交易认证成功;

用户协商交易的验证方式为:先计算协商数据密文的信息熵,若信息熵高于系统管理机构设定的信息熵阈值则验证交易的椭圆曲线签名,以上步骤全部通过验证则交易验证通过,否则交易验证失败;

修改交易的验证方式为:先验证修改后交易数据的椭圆曲线签名,再将交易数据和其椭圆曲线签名拼接并验证拼接后数据的群签名,验证特殊交易的哈希值,以上步骤全部通过验证则交易验证通过,否则交易验证失败。

作为本发明所述的基于群签名和自动机的可修改区块链方法的一种优选方案,其中:所有交易需要验证内容的哈希结果是否等于交易编号,普通交易的哈希值计算过程为先计算普通交易的交易数据字段的变色龙哈希值和变色龙哈希随机数(hash

其中CH.Hash()为变色龙哈希方案的哈希算法,pk

本发明还提供一种基于群签名和自动机的可修改区块链系统,其中包括:系统管理机构、用户模块、修改者模块和可修改区块链节点;

系统管理机构通过区块链与用户模块连接,用户模块通过区块链与修改者模块连接,修改者模块通过区块链与可修改区块链节点连接。

作为本发明所述的基于群签名和自动机的可修改区块链系统的一种优选方案,其中:所述系统管理机构:用于进行系统参数设置,生成变色龙哈希密钥对和群签名密钥对;给各个修改者发送变色龙哈希私钥和群签名私钥;发送更新交易更新群签名公钥;

所述用户模块:为区块链普通交易的发送者,可以自由得转移自己账户上得加密数字货币给其他用户,可以发送用户协商交易和修改者对自己拥有的某个普通交易的数据进行协商修改;

所述修改者模块:用于在区块链中发送协商交易使用户发送的某个普通交易的数据修改为协商数据的密文;发送修改交易使用户发送的某个普通交易的数据修改成用户和修改者都同意的数据;

所述可修改区块链节点:用于验证用户发送的普通交易、系统管理机构发送的更新交易、修改者发送的协商交易和修改交易;广播通过验证的交易内容,其在本地拥有交易状态字典和交易数据字典。

本发明的有益效果:本发明提供了一种简易的可修改区块链架构,结构简单容易实现,采用了椭圆曲线签名、椭圆曲线加密、群签名、信息熵等技术保证了在修改过程中用户能够参与自己发出交易的内容修改中,能够减少因交易数据修改对用户造成的损失,能够保证任何完成的修改的都是经过用户和修改者双方协商并得到双方肯定的,同时本专利提出的修改方法修改周期较短,不会加剧区块链的分叉。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。其中:

图1为本发明一个实施例提供的一种基于群签名和自动机的可修改区块链方法流程示意图;

图2为本发明一个实施例提供的一种基于群签名和自动机的可修改区块链方法的修改流程图。

图3为本发明一个实施例提供的一种基于群签名和自动机的可修改区块链系统的系统框架图;

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合说明书附图对本发明的具体实施方式做详细的说明,显然所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明的保护的范围。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。

其次,此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。

本发明结合示意图进行详细描述,在详述本发明实施例时,为便于说明,表示器件结构的剖面图会不依一般比例作局部放大,而且所述示意图只是示例,其在此不应限制本发明保护的范围。此外,在实际制作中应包含长度、宽度及深度的三维空间尺寸。

同时在本发明的描述中,需要说明的是,术语中的“上、下、内和外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一、第二或第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

本发明中除非另有明确的规定和限定,术语“安装、相连、连接”应做广义理解,例如:可以是固定连接、可拆卸连接或一体式连接;同样可以是机械连接、电连接或直接连接,也可以通过中间媒介间接相连,也可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

实施例1

参照图1、2,为本发明的第一个实施例,该实施例提供了一种基于群签名和自动机的可修改区块链方法,包括:

S1:系统管理机构进行系统参数设置,发送更新交易;

系统管理机构进行系统初始设置,选取系统安全参数λ,信息熵阈值K和修改者数量n,并使用变色龙哈希方案的初始化算法CH.Setup(1

进一步的,系统管理机构将自身地址addr

应说明的是,系统管理机构利用群签名密钥生成算法GS.KeyGen(pp

S2:通过用户发送普通交易、发送用户协商交易和修改者进行协商修改;

用户选定交易接收者地址、交易数量、交易数据m、并连同自身椭圆曲线加密方案公钥pk

S3:通过修改者在区块链中发送协商交易使用户发送的普通交易的数据修改,发送修改交易;

构建交易状态的有限自动机模型FA={Q,I,σ,s,F}来约束交易的修改,其中Q={S

S31,修改者提出希望修改成的交易数据m',并使用上一步骤中用户的椭圆曲线加密方案公钥pk

S32,用户使用自身的椭圆曲线加密方案的私钥并通过椭圆曲线加密方案的解密算法ECC.Dec(sk

应说明的是,用户和修改者各自使用椭圆曲线签名方案的密钥生成算法生成椭圆曲线密钥对,并公开椭圆曲线公钥作为自身地址,随后各自使用椭圆曲线加密方案的密钥生成算法ECC.KeyGen()生成椭圆曲线加密方案的密钥对,区块链节点构造交易状态字典state和交易数据字典data。

S33,修改者使用自身椭圆曲线加密方案的私钥并通过椭圆曲线加密方案的解密算法ECC.Dec(sk

S4:通过可修改区块链节点验证交易是否成功;

验证用户发送的普通交易、系统管理机构发送的更新交易、修改者发送的协商交易和修改交易;广播通过验证的交易内容。其在本地拥有交易状态字典和交易数据字典。

普通交易的验证(签名验证),当碰到修改的时候涉及到有限自动机验证

对于普通交易的验证分为两种情况:

情况一:如果该普通交易正在协商修改,先验证普通交易的哈希值,再验证该交易的交易数据与本地数据字典中该交易编号对应的内容是否一致,如果一致则交易验证成功,否则交易验证失败。

情况二:如果该普通交易已完成修改,先验证普通交易的哈希值,再验证该交易的交易数据与本地数据字典中该交易编号对应的内容是否一致,如果一致并且该普通交易的椭圆曲线签名能够通过椭圆曲线签名验证,则交易验证成功,否则交易验证失败。

情况三:如果改普通交易未被修改过,先验证普通交易的哈希值,再验证该交易的椭圆曲线签名,如果签名能够通过验证则交易验证成功,否则交易验证失败。

进一步的,普通交易的哈希值验证方法是,是否与交易编号相同,若相同,再进行后续验证,若不相同,则验证失败。

更新交易的验证方式为:先验证交易的交易发送者地址是否为系统管理机构的地址,再使用该地址验证交易的椭圆曲线签名,如果能够通过签名的验证,则交易验证成功,否则交易验证失败;

修改者协商交易的验证方式为:先计算协商数据密文的信息熵,若信息熵高于系统管理机构设定的信息熵阈值则使用系统管理机构公式的群签名公钥验证交易的群签名字段,最后验证交易的椭圆曲线签名,以上任一步骤验证失败则交易验证失败,全部通过交易认证成功;

用户协商交易的验证方式为:先计算协商数据密文的信息熵,若信息熵高于系统管理机构设定的信息熵阈值则验证交易的椭圆曲线签名,以上步骤全部通过验证则交易验证通过,否则交易验证失败;

修改交易的验证方式为:先验证修改后交易数据的椭圆曲线签名,再将交易数据和其椭圆曲线签名拼接并验证拼接后数据的群签名,验证特殊交易的哈希值,以上步骤全部通过验证则交易验证通过,否则交易验证失败。

所有交易需要验证内容的哈希结果是否等于交易编号,普通交易的哈希值计算过程为先计算普通交易的交易数据字段的变色龙哈希值和变色龙哈希随机数(hash

除普通交易外的其他交易类型的哈希计算皆为将各个字段数据以二进制形式拼接后以标准哈希函数计算交易的哈希值。

可修改区块链节点再对修改者协商交易、用户协商交易和修改交易验证后,需要将其输入到交易状态的有限自动机模型FA并根据被修改交易的目前状态来更新被交易的状态,如果出现不符合任一状态转移函数的输入,则忽略该输入。

仅当被修改交易的状态为完成修改状态S

该实施例中,还包含一种基于群签名和自动机的可修改区块链系统,其中包括:系统管理机构、用户模块、修改者模块和可修改区块链节点;

系统管理机构通过区块链与用户模块连接,用户模块通过区块链与修改者模块连接,修改者模块通过区块链与可修改区块链节点连接。

系统管理机构用于进行系统参数设置,生成变色龙哈希密钥对和群签名密钥对;给各个修改者发送变色龙哈希私钥和群签名私钥;发送更新交易更新群签名公钥;

用户模块为区块链普通交易的发送者,可以自由得转移自己账户上得加密数字货币给其他用户,可以发送用户协商交易和修改者对自己拥有的某个普通交易的数据进行协商修改;

修改者模块用于在区块链中发送协商交易使用户发送的某个普通交易的数据修改为协商数据的密文;发送修改交易使用户发送的某个普通交易的数据修改成用户和修改者都同意的数据;

可修改区块链节点用于验证用户发送的普通交易、系统管理机构发送的更新交易、修改者发送的协商交易和修改交易;广播通过验证的交易内容,其在本地拥有交易状态字典和交易数据字典。

实施例2

为本发明的一个实施例,提供了一种基于群签名和自动机的可修改区块链方法,

为了验证本发明的有益效果,通过实验进行科学论证。

普通交易在未被修改前其各字段值为:

交易编号:

a74ab18dbf1d57da42b528c323d5e9d9354e7aa86d33cb60c46e2f87671235f8交易发送者地址:

(26374847680614301971578334711569427692313599065028813763567448811713788806713,35023170813396744534364871157864740404552374032257296230854472002473106576185)

交易接收者地址:

(104298677608686948106496989863224489749973203647268951280665186804991196944671,28627311710790663640585414940194983339243204925493696573695686556338858494320)

交易数量:10

交易数据:”Hello World”

椭圆曲线签名:[B@212bf671

椭圆曲线加密公钥:

(89986076618780718670555767110415905947090975662093408957734399203206483281045,59260231901273645131985294385806906737065906385484580138115557573219483098398)

交易数据的变色龙哈希值:

1872669047754841284826407091210209014065552676704292258615792500368357251202387036700698416795688615709219216354693889694964539353285089568629266678621297,903054044819669990592161367505706526633981004917723969363313591572756955189306737405061661230621029817443947788016523233470061028964515816537096551941517,0

变色龙哈希的随机数:516099330991536467891254837930143318241935643002

验证普通哈希值为将交易发送者地址,交易接收者地址,交易数量,交易数据的变色龙哈希值和椭圆曲线加密公钥以字符串形式前后连接,随后通过SHA256哈希算法计算出普通哈希值,

该普通哈希值计算为,

a74ab18dbf1d57da42b528c323d5e9d9354e7aa86d33cb60c46e2f87671235f8,

与交易编号一致,验证通过,随后使用交易发送者地址和交易数据通过椭圆曲线签名验证算法ECDSA_verfiy(),算法返回True表示通过椭圆曲线签名验证。

进一步的,区块链节点拥有本地交易状态字典,在java实现中为一个HashMap类,存放了从字符串到整数的映射;本地交易数据字典在java实现中为一个HashMap类,存放了从字符串到字符串的映射。

应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

技术分类

06120116075276