联盟链中交易的隐私保护方法、系统及存储介质与流程

文档序号:33000916发布日期:2023-01-18 01:13阅读:113来源:国知局
联盟链中交易的隐私保护方法、系统及存储介质与流程

1.本技术涉及计算机技术领域,具体涉及一种支持账户模型的联盟链中交易的隐私保护方法、一种支持账户模型的联盟链中交易的隐私保护系统以及一种存储介质。


背景技术:

2.以太坊是账户模型的首倡者,但是当前基于以太坊的隐私保护技术是支持账户模型的公链中的隐私保护技术,需要采用零知识证明等技术来确保交易的有效性。联盟链不同于公链,可以采用类似权威证明(poa)的共识机制,将物理世界中的信任关系带入数字空间,从而简化设计,提高效率。
3.另外,当前的公链隐私保护技术不能满足银行等机构充分了解客户 (kyc)的需求。kyc政策要求对账户持有人强化审查,需要了解账户的实际控制人和交易的实际收益人,还要求对客户的身份、常住地址或企业所从事的业务进行充分的了解,并采取相应的措施。当前公链的隐私保护技术由用户生成匿名交易,智能合约仅通过零知识证明完成金额合规性检查和账户所有权检查,达不到kyc的要求。


技术实现要素:

4.本技术实施例的目的是提供一种联盟链中交易的隐私保护方法、系统及存储介质,该隐私保护方法支持账户模型,通过等长的用户交易和等长的真实区块链交易实现交易内容和交易类型的隐藏,通过干扰性区块链交易及交易置乱处理实现交易行为的隐藏。
5.为了实现上述目的,本技术第一方面提供一种支持账户模型的联盟链中交易的隐私保护方法,所述方法包括:
6.s1:用户生成等长的用户交易,通过安全信道提交给金融机构;
7.s2:金融机构在接收到所述用户交易后,验证用户交易合规性,验证成功,构造干扰性区块链交易、标志性区块链交易和与用户交易对应的等长的真实区块链交易;
8.s3:金融机构将干扰性区块链交易和真实区块链交易置乱,将标志性区块链交易以及置乱后的干扰性区块链交易和真实区块链交易通过安全信道提交给区块链节点;
9.s4:区块链节点根据接收到的真实区块链交易更新区块链用户账户和金融机构账户的资产。
10.在本技术实施例中,所述用户生成等长的用户交易,包括:
11.对交易金额进行加密,形成用户交易密文;
12.根据用户交易密文、用户区块链地址、时间戳和交易类型标识构造第一消息;
13.生成第一消息的数字签名;
14.根据第一消息、第一消息的数字签名、用户数字证书以及第一填充数据生成等长的用户交易;其中,所述第一填充数据为用于使不同的用户交易长度相等的填充数据。在生成用户交易时根据需求使用不同长度的第一填充数据进行填充,使得生成的所有用户交易的长度相同,避免根据用户交易的长度分析得到用户交易的类型,实现隐藏用户交易的类
型。
15.在本技术实施例中,所述金融机构验证用户交易合规性,包括:
16.通过验证用户交易中的数字签名确认用户身份;
17.在确认用户身份后,解密用户交易中的交易金额和用户区块链地址对应的资产金额,比对交易金额和资产金额,以确认用户交易是否合规;
18.通过验证用户交易中的区块链地址是否均是同一智能合约中的用户区块链地址,以验证交易双方身份是否合规。验证交易双方身份是否合规的过程可以确认交易双方身份,符合了解客户(kyc)的需求。
19.在本技术实施例中,构造干扰性区块链交易,包括:
20.加密干扰消息,得到干扰交易密文,所述干扰交易密文长度与用户交易密文长度相同;
21.从所属智能合约中随机提取不在当前区块链交易内容中的第二用户区块链地址;
22.加密资产金额零,形成零金额交易密文;
23.根据干扰交易密文、第二用户区块链地址以及零金额交易密文构造干扰性区块链交易。金融机构按照构造真实区块链交易的方式构造的交易金额为零的干扰区块链交易,能够辅助混淆隐藏用户的交易行为。
24.在本技术实施例中,构造标志性区块链交易,包括:
25.根据用户交易计算金融机构需要从智能合约的发行账户中转移的转移资产金额;
26.加密所述转移资产金额,形成转移金额交易密文;
27.根据转移金额交易密文和进入机构区块链地址构造标志性区块链交易。
28.在本技术实施例中,构造与用户交易对应的等长的真实区块链交易,包括:
29.加密用户提交的消息签名对和第二填充数据,得到金融机构交易密文,其中,所述第二填充数据为用于使不同的真实区块链交易长度相等的填充数据;
30.根据金融机构交易密文、用户区块链地址以及用户交易密文构建与用户交易对应的真实区块链交易。在构建真实区块链交易时,根据需求使用不同长度的第二填充数据进行填充,使得生成的所有真实区块链交易的长度相同,避免根据真实区块链交易的长度分析得到真实区块链交易的类型,实现隐藏用户交易的类型。
31.在本技术实施例中,将标志性区块链交易以及置乱后的干扰性区块链交易和真实区块链交易通过安全信道提交给区块链节点,包括:
32.将所述标志性区块链交易以及置乱后的干扰性区块链交易和真实区块链交易逐一打包,形成目的地址为智能合约地址的系列区块链交易,并通过安全信道提交给区块链节点。通过对干扰性区块链交易和真实区块链交易置乱,可以隐藏转账关系。
33.在本技术实施例中,区块链节点根据接收到的真实区块链交易更新区块链用户账户和金融机构账户的资产,包括:
34.区块链节点根据区块链交易的目的地址执行智能合约,验证交易的发送方是否为所属智能合约中的金融机构;
35.若是,解析区块链交易内容,根据真实的区块链交易更新区块链用户账户和金融机构账户的资产。
36.在本技术实施例中,所述用户交易包括:转账型用户交易、注资型用户交易和提现
型用户交易,所述真实区块链交易包括:转账型真实区块链交易、注资型真实区块链交易和提现型真实区块链交易。
37.本技术第二方面提供一种支持账户模型的联盟链中交易的隐私保护系统,所述系统包括:
38.用户,用于生成等长的用户交易,并通过安全信道提交给金融机构;
39.金融机构,用于在接收到所述用户交易后,验证用户交易合规性,验证成功,构造干扰性区块链交易、标志性区块链交易和与用户交易对应的等长的真实区块链交易,将干扰性区块链交易和真实区块链交易置乱,将标志性区块链交易以及置乱后的干扰性区块链交易和真实区块链交易通过安全信道提交给区块链节点;
40.区块链节点,用于根据接收到的真实区块链交易更新区块链用户账户和金融机构账户的资产。该系统支持账户模型,通过等长的用户交易和等长的真实区块链交易实现交易内容和交易类型的隐藏,通过干扰性区块链交易及交易置乱处理实现交易行为的隐藏。
41.在本技术实施例中,所述生成等长的用户交易,包括:
42.对交易金额进行加密,形成用户交易密文;
43.根据用户交易密文、用户区块链地址、时间戳和交易类型标识构造第一消息;
44.生成第一消息的数字签名;
45.根据第一消息、第一消息的数字签名、用户数字证书以及第一填充数据生成等长的用户交易;其中,所述第一填充数据为用于使不同的用户交易长度相等的填充数据。在生成用户交易时根据需求使用不同长度的第一填充数据进行填充,使得生成的所有用户交易的长度相同,避免根据用户交易的长度分析得到用户交易的类型,实现隐藏用户交易的类型。
46.在本技术实施例中,构造干扰性区块链交易,包括:
47.加密干扰消息,得到干扰交易密文,所述干扰交易密文长度与用户交易密文长度相同;
48.从所属智能合约中随机提取不在当前区块链交易内容中的第二用户区块链地址;
49.加密资产金额零,形成零金额交易密文;
50.根据干扰交易密文、第二用户区块链地址以及零金额交易密文构造干扰性区块链交易。金融机构按照构造真实区块链交易的方式构造的交易金额为零的干扰区块链交易,能够辅助混淆隐藏用户的交易行为。
51.在本技术实施例中,构造与用户交易对应的等长的真实区块链交易,包括:
52.加密用户提交的消息签名对和第二填充数据,得到金融机构交易密文,其中,所述第二填充数据为用于使不同的真实区块链交易长度相等的填充数据;
53.根据金融机构交易密文、用户区块链地址以及用户交易密文构建与用户交易对应的真实区块链交易。在构建真实区块链交易时,根据需求使用不同长度的第二填充数据进行填充,使得生成的所有真实区块链交易的长度相同,避免根据真实区块链交易的长度分析得到真实区块链交易的类型,实现隐藏用户交易的类型。
54.本技术第三方面提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令在被处理器执行时使得所述处理器被配置成执行所述支持账户模型的联盟链中交易的隐私保护方法。
55.本技术第四方面提供一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现所述支持账户模型的联盟链中交易的隐私保护方法。
56.通过上述技术方案,提供一种支持账户模型的联盟链中交易的隐私保护方法,该方法能够实现交易行为和交易内容的隐藏,实现隐私保护。
57.本技术实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
58.附图是用来提供对本技术实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本技术实施例,但并不构成对本技术实施例的限制。在附图中:
59.图1是本技术一种实施方式提供的支持账户模型的联盟链中交易的隐私保护方法流程图;
60.图2是本技术一种实施方式提供的支持账户模型的联盟链中交易的隐私保护方法生成用户交易流程图;
61.图3是本技术一种实施方式提供的支持账户模型的联盟链中交易的隐私保护方法中构造真实区块链交易流程图;
62.图4是本技术一种实施方式提供的支持账户模型的联盟链中交易的隐私保护方法中构造干扰性区块链交易流程图;
63.图5是本技术一种实施方式提供的支持账户模型的联盟链中交易的隐私保护方法中构造标志性区块链交易流程图;
64.图6是本技术一种实施方式提供的支持账户模型的联盟链中交易的隐私保护系统框图。
具体实施方式
65.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,应当理解的是,此处所描述的具体实施方式仅用于说明和解释本技术实施例,并不用于限制本技术实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
66.需要说明,若本技术实施例中有涉及方向性指示(诸如上、下、左、右、前、后
……
),则该方向性指示仅用于解释在某一特定姿态(如附图所示) 下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
67.另外,若本技术实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本技术要求的保护范围之内。
68.本技术提供的方法涉及用户、金融机构和区块链节点三类实体,其中金融机构有
多个,表示为{f1,

,f
l
}。金融机构fi的用户群体为ui。对于每个用户u∈ui,需要向金融机构fi进行实名认证,并接受金额机构的监管。不同金融机构的用户群体可能具有交叉,因此对于不同的金融机构fi和fj,ui∩uj不一定为空。区块链节点表示为{b1,

,bk},这些节点执行共识算法,运行智能合约。金融机构既可以作为区块链的客户端节点,运行区块链钱包客户端,又可以作为区块链的服务节点,参与区块链共识。
69.用户、金融机构以及区块链节点在搭建区块链平台的过程中,金融机构 fi生成生成区块链地址addrf,生成主公钥向区块链中部署智能合约 coincontract,获得智能合约地址用户u生成区块链地址addru,在认证信道中获得金融机构fi的智能合约地址和主公钥
70.在本技术实施例中,主公钥n=pq,p=2p

+1,q= 2q

+1,p,q,p

,q

均为大素数,g是模n2下阶为λ(n)=2p
′q′
的随机整数。
71.智能合约地址在具体部署时由区块链节点返回给金融机构,本实施例为0x01f98ade1c59348e76aeafc2c199f8263ed76146。
72.本技术提供是支持账户模型的联盟链中交易的隐私保护方法就是在上述搭建的区块链平台的基础上运行的。本技术的区块链可以是支持智能合约的任意区块链。考虑在以太坊中执行智能合约的开销,我们建议在联盟链中实施,本实施例采用以太坊私链。
73.本实施例中,金融机构表示为f1。金融机构f1的用户群体为u1,用户 u,v∈u1,且均在金融机构f1处进行过实名认证。区块链节点表示为{b1,b2},下面以用户u,v∈u1、金融机构fi和区块链节点bi的交互过程来阐述本技术。
74.图1是本技术一种实施方式提供的支持账户模型的联盟链中交易的隐私保护方法,如图1所示,所述方法包括:
75.s1:用户生成等长的用户交易,通过安全信道提交给金融机构。
76.在本技术实施例中,如图2所示,用户生成等长的用户交易,包括:
77.s101:对交易金额进行加密,形成用户交易密文;
78.s102:根据用户交易密文、用户区块链地址、时间戳和交易类型标识构造第一消息;
79.s103:生成第一消息的数字签名;
80.s104:根据第一消息、第一消息的数字签名、用户数字证书以及第一填充数据生成等长的用户交易;其中,所述第一填充数据为用于使不同的用户交易长度相等的填充数据。在生成用户交易时根据需求使用不同长度的第一填充数据进行填充,使得生成的所有用户交易的长度相同,避免根据用户交易的长度分析得到用户交易的类型,实现隐藏用户交易的类型。
81.在本技术实施例中,所述用户交易包括:转账型用户交易bs
transfer
、注资型用户交易bs
fund
和提现型用户交易bs
defund

82.如果用户u希望向区块链中用户账户增加资产,则需要把拟增加的资产金额加密,形成用户交易密文cd,之后构造消息md=flag||t||cd||addru, flag表示交易类型,flag=0表示交易类型为用户注资交易,t为时间戳, addru表示用户区块链地址,之后用户生成生
成消息md的数字签名sign,然后生成注资型用户交易bs
fund
=(md,sign,certu,urp),其中,certu为用户数字证书;urp为能够使不同的用户交易长度相同的填充数据,urp可以使得 bs
fund
与bs
transfer
长度相同,最后通过安全信道将bs
fund
提交给金融机构。
83.本实施例中时间戳采用unix时间戳,例如1642125755594。
84.密文cd计算方式为,对于资产金额m∈zn,随机均匀选取计算密文a=grmod n2,b=hr(1+mn)mod n2,h是用户的公钥,通过随机选择私钥z∈(0,n2/2),并计算h=gzmod n2得到,设置cd=(a,b)。
85.用户的区块链地址addru由用户生成,本实施例中为 0x3da8af3849c1fb0859c33879236982ed3b5e9e97。
86.数字签名算法为ecdsa数字签名算法,certu为x.509格式的数字证书。
87.填充数据为0,长度为一个公钥加密的密文和一个用户地址的长度之和。
88.如果用户u希望提取区块链中用户账户的资产,则需要把拟提取的资产金额负值加密,形成密文cw,之后构造消息mw=flag||t||cw||addru, flag表示交易类型,flag=1表示交易类型为用户提现交易,t为时间戳, addru表示用户区块链地址,之后用户生成消息mw的数字签名sign,生成提现型用户交易bs
defund
=(mw,sign,certu,urp),其中,certu为用户数字证书;urp为能够使不同的用户交易长度相同的填充数据,urp可以使得 bs
defund
与bs
transfer
长度相同,最后通过安全信道将bs
defund
提交给金融机构。
89.如果用户u希望将区块链中用户账户中的部分资产转移给用户v,则需要获得用户v的区块链地址addrv,把拟转账的资产金额的负值加密,形成密文c
tu
,把拟转账的资产金额的正值加密,形成密文c
tv
,之后构造消息 m
t
=flag||t||c
t
||addru||c
t
||addrv,flag表示交易类型,flag=2表示交易类型为用户转账交易,t为时间戳,addru表示转账用户区块链地址, addrv表示收款用户区块链地址,之后用户生成消息m
t
的数字签名sign,生成转账型用户交易bs
transfer
=(m
t
,sign,certu),其中,certu为用户数字证书,最后通过安全信道将bs
transfer
提交给金融机构。需要说明的是,在转账型用户交易、注资型用户交易和提现型用户交易中,转账型用户交易构造的消息长度最长,因此,生成的转账型用户交易长度最长,在上述实施例中注资型用户交易和提现型用户交易中均使用了urp进行填充,以使长度上bs
defund
=bs
fund
=bs
transfer

90.在生成转账型用户交易和提款型用户交易的过程中,时间戳、密文计算的过程、用户u和v的区块链地址,数字签名算法和数字证书均与生成注资型用户交易类同。特别的,如果资产金额为m,则资产金额的负值表示为n-m。
91.在本实施例中,用户采用公钥加密算法对交易金额加密,采用数字签名算法生成第一消息的数字签名。
92.在本实施例中,公钥加密算法可以采用emmanuel bresson等人在2003 年亚密会论文《a simple public-key cryptosystem with a double trapdoordecryption mechanism and its applications》中提供的轻量级“cramer-shoup”同态加密体制。数字签名算法和数字证书可以采用标准的x.509证书及 ecdsa数字签名算法。对称加密算法采用初始iv随机的aes-cbc算法。用户和金融机构之间的安全信道为tls协议建立的安全信道。
93.s2:金融机构在接收到所述用户交易后,验证用户交易合规性,验证成功,构造干
扰性区块链交易、标志性区块链交易和与用户交易对应的等长的真实区块链交易。
94.在本技术实施例中,用户u的交易提交给金融机构fi后,金融机构fi首先验证用户交易中的数字签名,确认用户的身份,然后采用公钥解密算法解密交易中的资产金额,解密该用户在地址为的区块链智能合约中的资产金额,比对交易金额和资产金额,确认用户交易的合规性。金融机构fi从用户交易和实名注册信息中提取用户区块链地址和用户真实身份,并本地存储为映射表。当用户交易为转账交易时,要求接收方地址应该是通过注资型交易等行为在智能合约中存在的用户区块链地址,以确保金融机构fi可以确认每个交易的发送方和接收方身份,因此在验证交易是否合规后,通过验证用户交易中的区块链地址是否均是同一智能合约中的用户区块链地址,以验证交易双方身份是否合规。验证交易双方身份是否合规的过程可以确认交易双方身份,符合了解客户(kyc)的需求。若用户交易中的区块链地址不是同一智能合约中的用户区块链地址、或者用户交易中的转账或者提现金额大于资产金额,或者数字签名对应的用户身份与机构存储的数据不符,则合规性验证失败,不再对该用户交易进行处理。
95.在本实施例中,金融机构f1解密的计算过程为:
[0096][0097]
本实施例中,用户交易中包含用户有效的数字证书,用户的实名认证过程也包括该证书,因此可以建立用户区块链地址和用户真实身份的对应关系。
[0098]
金融机构验证用户交易合规后,构造与用户交易对应的等长的真实区块链交易,如图3所示,包括:
[0099]
加密用户提交的消息签名对和第二填充数据,得到金融机构交易密文,其中,所述第二填充数据为用于使不同的真实区块链交易长度相等的填充数据;
[0100]
根据金融机构交易密文、用户区块链地址以及用户交易密文构建与用户交易对应的真实区块链交易。在构建真实区块链交易时,根据需求使用不同长度的第二填充数据进行填充,使得生成的所有真实区块链交易的长度相同,避免根据真实区块链交易的长度分析得到真实区块链交易的类型,实现隐藏用户交易的类型。
[0101]
在本技术实施例中,真实区块链交易包括:转账型真实区块链交易、注资型真实区块链交易和提现型真实区块链交易。
[0102]
金融机构在接收到用户交易并验证合规性后,根据用户交易类型生成对应类型的真实区块链交易。如果用户交易中falg=0,则金融机构fi采用对称加密算法,加密消息(md,sign,rp)得到金融机构交易密文cu,其中(md,sign) 为用户提交的消息签名对,rp为填充数据,使得三类用户交易加密的密文长度相同;之后形成区块链交易内容txd=(cu,addru,cd),其中cd为md中金额的密文。
[0103]
本实施例中,对称加密算法为256比特的aes-cbc加密算法,加密算法的初始向量为随机数,填充数据rp的长度计算如下:设l1=len(m
t
)
‑ꢀ
len(md)+1,l2=(len(md)+len(sign)+l1)%256,len(rp)=l1+l2,填充内容为0,其中len(x)表示计算输入x的比特长度。
[0104]
如果用户交易中falg=1,金融机构fi采用对称加密算法,加密消息(mw,sign,rp)得到金融机构交易密文cu,其中(mw,sign)为用户提交的消息签名对,rp为填充数据,使得三
类用户交易加密的密文长度相同;之后形成区块链交易内容txw=(cu,addru,cw),其中cw为mw中金额的密文。
[0105]
本实施例中,填充数据rp的长度计算如下:设l1=len(m
t
)
‑ꢀ
len(mw)+1,l2=(len(mw)+len(sign)+l1)%256,len(rp)=l1+l2,填充内容为0。
[0106]
如果用户交易中falg=2,金融机构fi采用对称加密算法,加密消息 (m
t
,sign,rp)和(m
t
,sign,rp

),得到金融该机构交易密文cu和cv,其中 (m
t
,sign)为用户提交的消息签名对,rp和rp’为填充数据,且rp≠rp

,且三类用户交易加密的密文长度相同;之后形成两个区块链交易内容tx
t
= (cu,addru,c
t
)和tx
t
=(cv,addrv,c
t
),其中c
t
和c
t
是m
t
中金额的密文。
[0107]
本实施例中,填充数据rp的长度计算如下:设l1=1,l2=(len(mw)+ len(sign)+l1)%256,len(rp)=l1+l2,填充内容为0;填充数据rp

的长度计算方式相同,填充内容为1。
[0108]
在申请实施例中,如图4所示,构造干扰性区块链交易包括:
[0109]
加密干扰消息,得到干扰交易密文,所述干扰交易密文长度与用户交易密文长度相同;
[0110]
从所属智能合约中随机提取不在当前区块链交易内容中的第二用户区块链地址;
[0111]
加密资产金额零,形成零金额交易密文;
[0112]
根据干扰交易密文、第二用户区块链地址以及零金额交易密文构造干扰性区块链交易。金融机构按照构造真实区块链交易的方式构造的交易金额为零的干扰区块链交易,能够辅助混淆隐藏用户的交易行为。
[0113]
首先,金融机构fi采用对称加密算法,加密消息0得到零金额交易密文cu,其中0长度与用户消息形成的待加密数据长度相同,使得干扰性密文与真实用户交易加密的密文长度相同;之后从地址为的智能合约中随机提取不在当前区块链交易内容中的用户地址addrr,最后使用公钥加密算法加密资产金额0形成cr,形成干扰性区块链交易内容txf=(cu,addrr,cr)。在一些实施例中,金融机构构造多个干扰性区块链交易内容,以保障干扰的有效性。
[0114]
在本实施例中,加密消息0的长度与生成真实区块链交易过程中的用户提交的消息签名对和第二填充数据相同,加密过程与用户提交的消息签名对和第二填充数据的加密过程相同。采用公钥加密算法加密0形成cr时,加密过程与生成用户交易过程中加密交易金额的计算过程相同,金融机构f1为账户为addrr的用户生成新的随机公钥h来完成加密。
[0115]
在本技术实施例中,如图5所示,构造标志性区块链交易,包括:
[0116]
根据用户交易计算金融机构需要从智能合约的发行账户中转移的转移资产金额;
[0117]
加密所述转移资产金额,形成转移金额交易密文;
[0118]
根据转移金额交易密文和进入机构区块链地址构造标志性区块链交易。
[0119]
具体的,在构造标志性区块链交易内容之前,首先判断金融机构中累计的真实区块链交易是否达到预设数量,达到预定数量后,金融机构根据这一批真实区块链交易中的注资型真实区块链交易和提现型真实区块链交易的交易金额计算需要从区块链智能合约的发行账户中转移的资产金额,并将该金额用公钥加密算法加密,形成标志性区块链交易内容txi=(addrf,cf)。在一些实施例中,可以将预设数量表示为b,b为正整数。
[0120]
本实施例中,b设定为6。cf的计算过程与生成用户交易过程中加密交易金额的计
算过程相同,金融机构需要为自己生成公钥h。
[0121]
s3:金融机构将干扰性区块链交易和真实区块链交易置乱,将标志性区块链交易以及置乱后的干扰性区块链交易和真实区块链交易通过安全信道提交给区块链节点。
[0122]
具体包括:金融机构fi将数量为b的真实区块链交易和生成的干扰性区块链交易一起进行置乱,置乱后,将包括标志性区块链交易在内的所有区块链交易内容逐一打包,形成系列区块链交易,交易的目的地址均为交易发起实体为金融机构fi,所有交易均提交给区块链节点。通过对干扰性区块链交易和真实区块链交易置乱,可以隐藏转账关系。
[0123]
本实施例中,金融机构f1设置ε=0.5,每当收集的用户交易可以形成6 个区块链交易内容后,形成3个干扰性区块链交易内容,和1个标志性区块链交易内容。置乱算法为随机置乱,采用python中random模块的shuffle 方法。之后对每一个区块链交易内容按照以太坊的规范生成按照顺序生成以太坊交易,并将包含标志性区块链交易内容的交易放在最后,10个交易一起发送给区块链节点b1和b2。
[0124]
s4:区块链节点根据接收到的真实区块链交易更新区块链用户账户和金融机构账户的资产。
[0125]
具体的,区块链节点bi根据区块链交易的目的地址执行智能合约,验证交易的发送方是否为所属智能合约中的金融机构fi;
[0126]
若是,解析区块链交易内容,根据真实的区块链交易更新区块链用户账户和金融机构账户的资产,否则不对该区块链交易信息处理。
[0127]
本实施例中,区块链节点b1和b2接收到区块链交易后,执行相同的操作,以b1的操作为例,该节点执行coincontract合约的updateassets函数,根据函数内部命令解析交易,更新用户账户对应的资产。对于已经存在加密资产的情况将加密资产解析为(c1,c2),计算c1=c1*a,c2=c2*b,其中(a,b) 为区块链交易中加密的资产金额,然后将更新后的密文按照字节存储即可。其中乘法操作为模n2下的大整数乘法,对于不存在加密资产的情况,只需直接按照字节存储区块链交易中加密的资产金额。
[0128]
通过上述方法可以实现如下功能:
[0129]
1.满足对用户的监管需求。上述方法采用公钥加密算法,实现了金融机构fi对机构所属用户交易金额的监管,并能够通过用户区块链地址和用户真实身份的映射表,实现kyc的要求。
[0130]
2.保护用户交易的隐私。对于区块链节点bi和访问区块链公开信息的攻击者,可以观察到金融机构fi在一段时间内更新了一批账户的资产金额。这批账户所代表的用户是否发送了用户交易、发送的是什么类型的用户交易、哪些账户之间发生了转账等信息都难以准确推断,因此较好的保护了用户的隐私。
[0131]
攻击者对于用户交易的追踪是通过明确交易的发送人和接收人才能完成的,对于本发明,用户交易追踪的难度与基于环签名的门罗币类似。假设金融机构fi发送了b+εb个区块链交易,其中εb个交易包含干扰性区块链交易内容。因为在步骤7进行了置乱,因此攻击者试图从b+εb个交易中找出两个交易,并确定这两个交易源自同一个用户交易的概率不大于:
[0132][0133]
设b=6,ε=0.5,则上述概率为1/12。也就是说,对于一批9个交易,攻击者能够明确其中两个交易的地址具有发送方接收方关系的概率最高不超过1/12。在当前门罗币的配置中,环公钥的数量一般是11,也就是说,在门罗币中,通过一个交易确定与其有关联的交易的概率是1/11。并且关联交易一旦确定,其发送方和接收方是可以区分的。
[0134]
3.金融机构可以接受监管。金融机构fi将用户交易加密为等长密文后,通过区块链交易存储在了区块链中。当对金融机构进行监管时,金融机构可以通过私钥解密区块链数据,来证明自己操作的合规性。
[0135]
4.用户方便验证。用户只需要关注自己生成的密文是否被金融机构正确的包含在区块链交易中即可确认自己的交易是否完成。在区块链可信的前提下,可以不解密账户资金。
[0136]
总之,本方案在联盟链中,可以保护账户模型下交易的发起方、接收方和交易金额的隐私性,并不需要零知识证明等技术,可以提高执行的效率。
[0137]
在另一个实施例中,金融机构和用户采用的公钥加密算法是基于身份的同态加密算法,金融机构将用户区块链地址作为用户身份,向用户分发私钥,使得用户具备解密能力。之后用户计算cd,cw,c
t
,c
t
等密文时,均采用基于身份的同态加密算法。银行则使用主私钥进行解密。智能合约实现相应的同态运算。
[0138]
本技术一个实施例提供一种支持账户模型的联盟链中交易的隐私保护系统,如图6所示,所述系统包括:
[0139]
用户,用于生成等长的用户交易,并通过安全信道提交给金融机构;
[0140]
金融机构,用于在接收到所述用户交易后,验证用户交易合规性,验证成功,构造干扰性区块链交易、标志性区块链交易和与用户交易对应的等长的真实区块链交易,将干扰性区块链交易和真实区块链交易置乱,将标志性区块链交易以及置乱后的干扰性区块链交易和真实区块链交易通过安全信道提交给区块链节点;
[0141]
区块链节点,用于根据接收到的真实区块链交易更新区块链用户账户和金融机构账户的资产。该系统支持账户模型,通过等长的用户交易和等长的真实区块链交易实现交易内容和交易类型的隐藏,通过干扰性区块链交易及交易置乱处理实现交易行为的隐藏。
[0142]
在本技术实施例中,所述生成等长的用户交易,包括:
[0143]
对交易金额进行加密,形成用户交易密文;
[0144]
根据用户交易密文、用户区块链地址、时间戳和交易类型标识构造第一消息;
[0145]
生成第一消息的数字签名;
[0146]
根据第一消息、第一消息的数字签名、用户数字证书以及第一填充数据生成等长的用户交易;其中,所述第一填充数据为用于使不同的用户交易长度相等的填充数据。在生成用户交易时根据需求使用不同长度的第一填充数据进行填充,使得生成的所有用户交易的长度相同,避免根据用户交易的长度分析得到用户交易的类型,实现隐藏用户交易的类型。
[0147]
在本技术实施例中,构造干扰性区块链交易,包括:
[0148]
加密干扰消息,得到干扰交易密文,所述干扰交易密文长度与用户交易密文长度相同;
[0149]
从所属智能合约中随机提取不在当前区块链交易内容中的第二用户区块链地址;
[0150]
加密资产金额零,形成零金额交易密文;
[0151]
根据干扰交易密文、第二用户区块链地址以及零金额交易密文构造干扰性区块链交易。金融机构按照构造真实区块链交易的方式构造的交易金额为零的干扰区块链交易,能够辅助混淆隐藏用户的交易行为。
[0152]
在本技术实施例中,构造与用户交易对应的等长的真实区块链交易,包括:
[0153]
加密用户提交的消息签名对和第二填充数据,得到金融机构交易密文,其中,所述第二填充数据为用于使不同的真实区块链交易长度相等的填充数据;
[0154]
根据金融机构交易密文、用户区块链地址以及用户交易密文构建与用户交易对应的真实区块链交易。在构建真实区块链交易时,根据需求使用不同长度的第二填充数据进行填充,使得生成的所有真实区块链交易的长度相同,避免根据真实区块链交易的长度分析得到真实区块链交易的类型,实现隐藏用户交易的类型。
[0155]
本技术第三方面提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令在被处理器执行时使得所述处理器被配置成执行所述支持账户模型的联盟链中交易的隐私保护方法。
[0156]
本技术第四方面提供一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现所述支持账户模型的联盟链中交易的隐私保护方法。
[0157]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0158]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/ 或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0159]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0160]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0161]
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/ 输出接口、网络接口和内存。
[0162]
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。存储器是计算机可读介质的示例。
[0163]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器 (cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0164]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0165]
以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1