1.本发明涉及区块链技术领域,尤其涉及一种基于区块链的数字资产管理方法。
背景技术:2.交易所的资产托管一直是基于区块链交易系统的关注主题。采用区块链技术的数字货币交易所分为中心化交易所和分布式交易所。在中心化交易所环境中,用户通常需要把数字货币等资产转账到一个交易所指定并控制的账号进行交易。这种交易方式实际上只有在交易流程结束并提币的时候交易才真正发生。由此带来很多安全问题,例如交易所可以随意支配用户的资产,甚至卷款潜逃。分布式交易所基于区块链不依赖第三方信任的特征,提供了一种全新的信用机制和价值交换模式。在分布式交易所环境中,虽然用户的加密资产真正属于用户并可由用户支配,但是交易还是需要依赖交易所。现有的中心化交易所和分布式交易所都存在一定的资产托管问题。
技术实现要素:3.有鉴于此,实有必要提供一种基于区块链的数字资产管理方法,能够有效保障托管资产的安全。
4.本发明实施例提供一种基于区块链的数字资产管理方法,所述数字资产管理方法包括:
5.资产用户端发起交易指令;
6.当接收所述交易指令以及与所述资产用户端相对应的受托端组中对所述交易指令进行ecdsa签名的受托端的数量达到预设数量阈值时,交易所端创建具有所述ecdsa签名的交易单,其中,所述预设数量阈值小于或者等于所述受托端组中受托端的总数量;
7.区块链节点对所述交易单的ecdsa签名进行验证;以及
8.当所述ecdsa签名验证通过时,所述区块链节点生成相应的区块并上传至区块链,以允许所述交易单进行区块链交易。
9.上述基于区块链的数字资产管理方法,资产用户端的数字资产由多个受托端同时进行监管,只有达到预设数量阈值的受托端对交易指令同时进行ecdsa签名,交易所端才会创建交易单,实现了数字资产的分布式保管,具有较高的安全性,适用于各种交易场景。当ecdsa签名验证通过时,交易所端才能够根据交易指令对数字资产进行操作,从而能够保障资产用户端数字资产的安全。同时,ecdsa签名具有不可伪造的特性,能够有效避免交易所端内部的受托端或者外部黑客等伪造签名,从而能够更加有效地确保数字资产的安全。
附图说明
10.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图示出的结构获得其他的附图。
11.图1为本发明第一实施例提供的数字资产管理方法的流程图。
12.图2为本发明第一实施例提供的数字资产管理方法的第一子流程图。
13.图3为本发明第一实施例提供的数字资产管理方法的第二子流程图。
14.图4为本发明第一实施例提供的数字资产管理方法的第三子流程图。
15.图5为本发明第二实施例提供的数字资产管理方法的第一子流程图。
16.图6为本发明第二实施例提供的数字资产管理方法的第二子流程图。
17.图7为本发明第二实施例提供的数字资产管理方法的第三子流程图。
18.图8为本发明实施例提供的数字资产管理方法的示意图。
19.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
20.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
21.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的规划对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,换句话说,描述的实施例根据除了这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,还可以包含其他内容,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于只清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
22.需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者多个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
23.请结合参看图1和图8,图1为本发明第一实施例提供的数字资产管理方法的流程图,图8为本发明实施例提供的数字资产管理方法的示意图。数字资产管理方法基于区块链对用户的数字资产进行交易管理。如图8所示,数字资产管理系统1000包括资产用户端10、受托端20、交易所端30以及区块链节点40。基于区块链的数字资产管理方法具体包括如下步骤。
24.步骤s102,资产用户端发起交易指令。在本实施例中,用户通过资产用户端10在交易所端30进行注册,获取交易所端30分配的与资产用户端10相对应的地址。当用户通过资产用户端10向相应的地址充值时,交易所端30将数字资产转入该地址中。用户可通过资产用户端10发起交易指令m,对相应地址中的数字资产进行操作。同时,当用户在交易所端30注册时,交易所端30选取若干受托端20与资产用户端10进行匹配,形成与资产用户端10相
对应的受托端组200。可以理解的是,交易所端30注册有大量受托端20,当新的资产用户端10进行注册时,交易所端30从中随机选取若干受托端20与新的资产用户端10进行匹配,从而形成受托端组200。
25.步骤s104,当接收交易指令以及与资产用户端相对应的受托端组中对交易指令进行ecdsa签名的受托端的数量达到预设数量阈值时,交易所端创建具有ecdsa签名的交易单。交易所端30将创建的交易单发送至区块链节点40。其中,预设数量阈值t小于或者等于受托端组200中受托端20的总数量。可以理解的是,预设数量阈值t为根据受托端组200中受托端20的总数量进行设定的数值。受托端组200中的受托端20对交易指令m进行ecdsa(elliptic curve digital signature algorithm)签名的具体过程将在下文详细描述。
26.步骤s106,区块链节点对交易单的ecdsa签名进行验证。当ecdsa签名验证通过时,执行步骤s108;当ecdsa签名验证不通过时,表示受托端组200中可能有受托端20存在恶意行为,或者交易所端30可能受到外部黑客等攻击,则交易取消。区块链节点40对交易单的ecdsa签名进行验证的具体过程将在下文详细描述。
27.步骤s108,区块链节点生成相应的区块并上传至区块链,以允许交易单进行区块链交易。交易所端30根据交易指令m对与资产用户端10相对应的地址中的数字资产进行相应的操作。
28.上述实施例中,资产用户端的数字资产由多个受托端同时进行监管,只有达到预设数量阈值的受托端对交易指令同时进行ecdsa签名,交易所端才会创建交易单,实现了数字资产的分布式保管,具有较高的安全性,适用于各种交易场景。当ecdsa签名验证通过时,交易所端才能够根据交易指令对数字资产进行操作,从而能够保障资产用户端数字资产的安全。同时,ecdsa签名具有不可伪造的特性,能够有效避免交易所端内部的受托端或者外部黑客等伪造签名,从而能够更加有效地确保数字资产的安全。此外,受托端由交易所端随机与资产用户端匹配,可以有效防止受托端合谋,从而避免受托端不诚信造成数字资产不安全。
29.请结合参看图2,其为本发明第一实施例提供的数字资产管理方法的第一子流程图。与资产用户端10相对应的受托端组200形成后,数字资产管理方法还包括如下步骤。
30.步骤s202,受托端组中的每一受托端获取初始化参数以及所有受托端所对应的身份标识符。在本实施例中,交易所端30设有初始化函数,当用户通过资产用户端10在交易所端30进行注册时,交易所端30随机生成一个与资产用户端10相对应的安全参数。交易所端30将安全参数输入初始化函数中并获取初始化参数。当受托端20生成时,交易所端30赋予每一受托端20一个相对应的身份标识符id。可以理解的是,交易所端30可以设有若干初始化函数,当用户通过资产用户端10在交易所端30进行注册时,交易所端30可以随机选取其中一个初始化函数生成初始化参数。相应地,每一受托端组200所对应的初始化参数不同。在本实施例中,初始化参数包括生成元g、生成元的数目q以及第一散列数集a
i,1
,ai,2,
…
,a
i,t-1
。其中,i=1,
…
,n,i表示第i个受托端,n表示共有n个受托端,t表示预设数量阈值。
31.步骤s204,每一受托端根据初始化参数和身份标识符生成相应的共享密钥份额以及共享公钥。
32.在本实施例中,每一受托端20利用初始化参数和其余受托端20所对应的身份标识符id计算与其余受托端20一一对应的子秘密份额s
i,j
,并将子秘密份额s
i,j
发送至相对应的
受托端20。具体地,每一受托端20从第一数集[1,q-1]中随机选取一个数作为相应的私钥xi。其中,第一数集[1,q-1]根据初始化参数生成元的数目q生成。每一受托端20从第一散列数集a
i,1
,a
i,2
,
…
,a
i,t-1
中随机选取一个数作为第一随机系数,并根据第一随机系数和私钥xi生成一个多项式fi(x)=xi+a
i,1
x+a
i,2
x2+
…
+a
i,t-1
x
t-1
mod q。每一受托端20根据其余受托端20的身份标识符id和多项式fi(x)计算与其余受托端20相对应的子秘密份额s
i,j
=fi(idj)。其中,s
i,j
表示第i个受托端计算的第j个受托端的子秘密份额,idj表示第j个受托端的身份标识符,且j≠i。每一受托端20将计算得到的子秘密份额s
i,j
发送至相对应的受托端20。
[0033]
每一受托端20接收其余受托端20发送的子秘密份额s
i,j
并进行有效性验证。具体地,每一受托端20根据私钥xi计算相应的公钥yi=xig,并根据选取的第一随机系数计算相应的承诺c
i,k
=a
i,k
g mod q。其中,k=1,
…
,t-1。每一受托端20根据承诺c
i,k
、公钥yi以及其余受托端20的身份标识符id判断子秘密份额s
i,j
是否有效。其中,当成立时,子秘密份额s
i,j
通过有效性验证;当不成立时,子秘密份额s
i,j
没有通过验证,说明与该子秘密份额s
i,j
相对应的受托端20不诚信。则受托端20发送警告消息给除不诚信受托端以外的其余受托端20,以告知不诚信受托端的恶意行为。
[0034]
当其余受托端20的子秘密份额s
i,j
均通过有效性验证时,每一受托端20利用子秘密份额s
i,j
计算相应的共享密钥份额di。具体地,共享密钥份额
[0035]
每一受托端20利用共享密钥份额di计算共享公钥q。具体地,受托端组200中任意的受托端20,只要数量达到预设数量阈值t,就可以根据拉格朗日插值
[0036]
上述实施例中,当受托端组形成后,由受托端组中的所有受托端共同形成与每一受托端相对应的共享密钥份额、共享私钥以及共享公钥,使得共享密钥份额、共享私钥以及共享公钥具有唯一性,从而能够有效保障数字资产的安全。同时,受托端之间不知道彼此的共享密钥份额以及共享私钥,可以有效避免受托端不诚信造成数字资产的不安全,从而防止不诚信受托端通过伪造其它受托端的共享密钥份额随意支配用户的数字资产,甚至卷款潜逃。
[0037]
请结合参看图3,其为本发明第一实施例提供的数字资产管理方法的第二子流程图。受托端对交易指令进行ecdsa签名具体包括如下步骤。
[0038]
步骤s302,签名受托端获取交易指令、初始化参数以及每一签名受托端所对应的共享密钥份额和身份标识符。其中,签名受托端为进行了ecdsa签名的受托端20。
[0039]
步骤s304,签名受托端根据交易指令、初始化参数、身份标识符以及共享密钥份额生成ecdsa签名。其中,ecdsa签名包括第一部分r和第二部分s。
[0040]
在本实施例中,签名受托端从第一数集[1,q-1]中随机选取一个数作为第一系数kl
。其中,l=1,
…
,t,第一数集[1,q-1]根据初始化参数生成元的数目q生成。签名受托端利用初始化参数和第一系数k
l
计算相对应的公钥,并将公钥发送至其余签名受托端。具体地,签名受托端利用生成元g和第一系数k
l
计算相对应的公钥k
l
g。签名受托端接收其余签名受托端发送的公钥k
l
g,并利用公钥k
l
g计算第一部分r。具体地,签名受托端计算其余签名受托端的公钥k
l
g之和并将转换为两个内容则第一部分其中,若计算得到的第一部分r为0时,签名受托端重新从第一数集[1,q-1]中随机选取第一系数k
l
,并重新进行计算第一部分r。
[0041]
签名受托端从第二数集中随机选取一个数作为第二系数b
l
。其中,第二数集为随机数集,且第二数集与第一数集[1,q-1]不同。签名受托端根据第一系数k
l
、第二系数b
l
、初始化参数、交易指令m、身份标识符id以及共享密钥份额di计算第二部分s。具体地,签名受托端根据bgw协议进行计算第二部分其中,e
l
=et-mod q1,e=h(m),h表示哈希函数;其中,当计算得到的第二部分s为0时,签名受托端重新从第一数集[1,q-1]中随机选取第一系数k
l
,重新进行计算第一部分r,从而重新计算第二部分s。
[0042]
上述实施例中,所有签名的受托端根据交易指令、初始化参数、共享密钥份额以及身份标识符等共同形成一个ecdsa签名。其中,ecdsa签名包括第一部分和第二部分,第二部分与第一部分相关联,从而能够有效防止不诚信受托端伪造ecdsa签名,从而保障数字资产的安全。
[0043]
请结合参看图4,其为本发明第一实施例提供的数字资产管理方法的第三子流程图。步骤s106具体包括如下步骤。
[0044]
步骤s1601,获取交易指令、初始化参数、ecdsa签名以及共享公钥。区块链节点40获取交易指令m、初始化参数、ecdsa签名以及共享公钥q。
[0045]
步骤s1062,利用交易指令、初始化参数、ecdsa签名以及共享公钥计算得到第三部分。在本实施例中,区块链节点40利用交易指令m、初始化参数以及ecdsa签名计算验证系数u1和u2。具体地,验证系数u1=ew mod q,验证系数u2=rw mod q。其中,e=h(m),w=s-1
mod q。区块链节点40利用验证系数u1和u2、初始化参数以及共享公钥q计算验证值和具体地,区块链节点40计算u1g+u2q,并将计算结果转化为坐标值即可得到验证值和区块链节点40利用验证值和初始化参数计算第三部分v。具体地,第三部分
[0046]
步骤s1063,比较第一部分和第三部分并输出验证结果。在本实施例中,当第三部分v与第一部分r相同时,表示ecdsa签名验证通过,则,区块链节点40输出表示签名有效的验证结果;当第三部分v与第一部分r不相同时,表示ecdsa签名验证不通过,则,区块链节点40输出表示签名无效的验证结果。
[0047]
上述实施例中,区块链节点根据交易指令、初始化参数、ecdsa签名以及共享公钥
生成第三部分,用于验证ecdsa签名的第一部分是否有效。其中,第三部分与第一部分和第二部分相关联,能够有效保障数字资产的安全。
[0048]
请结合参看图5,其为本发明第二实施例提供的数字资产管理方法的第一子流程图。第二实施例提供的数字资产管理方法与第一实施例提供的数字资产管理方法的不同之处在于,与资产用户端10相对应的受托端组200中的受托端20可以动态变化。第二实施例提供的数字资产管理方法还包括如下步骤。
[0049]
步骤s502,删除受托端组中的至少一个受托端。在本实施例中,交易所端30可以将不诚信受托端从受托端组200中删除,以避免对用户的数字资产产生不利的影响。当然,受托端组200中的受托端20也可以主动从受托端组200中除去。
[0050]
步骤s504,添加至少一个新受托端与剩余受托端形成新的受托端组。当受托端组200中有受托端20被删除时,交易所端30需要添加新受托端21至该受托端组200中,以保持受托端组200中受托端20的总数量保持不变。可以理解的是,受托端组200中被删除的受托端20的数量与添加的新受托端21的数量相同。
[0051]
在一些可行的实施例中,受托端组200中被删除的受托端20的数量与添加的新受托端21的数量可以不相同。相应地,当新的受托端组200形成时,预设数量阈值t需要根据新的受托端组200中受托端20的总数量重新进行设定。
[0052]
上述实施例中,若受托端组中受托端的组成一直保持不变,则受托端之间可能会合谋、勾结,对用户的数字资产进行支配。因此,受托端组中的受托端可以动态添加和删除,使得受托端组中受托端的组成具有动态性,从而避免了受托端合谋的风险,有效保障数字资产的安全性。
[0053]
请结合参看图6,其为本发明第二实施例提供的数字资产管理方法的第二子流程图。执行步骤s502之后,数字资产管理方法还包括如下步骤。
[0054]
步骤s5031,剩余受托端中的每一受托端分别利用初始化参数和其余剩余受托端所对应的身份标识符计算与其余剩余受托端一一对应的子秘密份额,并将子秘密份额发送至相对应的受托端。在本实施例中,初始化参数还包括第二散列数集c
i,1
,c
i,2
,
…
,c
i,t-1
。其中,i=1,
…
,n,i表示第i个受托端,t表示预设数量阈值。假设受托端组200中有一个受托端20被删除,且被删除的受托端20的身份标识符为idw。则受托端组200中还有n-1个受托端20。下文将以此为例进行详细描述。剩余受托端20中的每一受托端20从第二散列数集c
i,1
,c
i,2
,
…
,c
i,t-1
中随机选取一个数作为第二随机系数,并根据第二随机系数生成一个多项式hi(x)=c
i,1
x+c
i,2
x2+
…
+c
i,t-1
x
t-1
mod q。其中,i≠w。每一受托端20根据其余n-2个受托端20的身份标识符id和多项式hi(x)计算与n-2个受托端20相对应的子秘密份额其中,表示第i个受托端计算的第j个受托端的子秘密份额,idj表示第j个受托端的身份标识符,且j=1,
…
,n,j≠i,w。每一受托端20将计算得到的子秘密份额发送至相对应的受托端20。
[0055]
步骤s5032,剩余受托端中的每一受托端接收其余剩余受托端发送的子秘密份额并进行有效性验证。剩余受托端20中的每一受托端20根据选取的第二随机系数计算相应的承诺其中,k=1,2,
…
,t-1。每一受托端20根据承诺以及其余剩
余受托端20的身份标识符id判断子秘密份额是否有效。具体地,当成立时,子秘密份额通过有效性验证;当不成立时,子秘密份额没有通过验证,说明与该子秘密份额相对应的受托端20不诚信。则受托端20发送警告消息给除不诚信受托端以外的其余剩余受托端20,告知不诚信受托端的恶意行为。相应地,交易所端30可以将不诚信受托端从受托端组200中删除。
[0056]
步骤s5033,当其余剩余受托端的子秘密份额均通过有效性验证时,剩余受托端中的每一受托端分别利用共享密钥份额、初始化参数以及身份标识符计算新的共享密钥份额。具体地,新的共享密钥份额
[0057]
上述实施例中,不诚信受托端被删除或者受托端退出受托端组后,重新计算受托端组中所有未被删除的受托端的共享密钥份额。剩余受托端同时更新共享密钥份额,并使用更新后的共享密钥份额进行ecdsa签名,可以有效防止被删除受托端的越权行为,同时还可以防止合谋攻击。同时,被删除的受托端的共享密钥份额失效,无法对资产用户端的交易指令进行ecdsa签名,从而有效保障数字资产的安全。此外,受托端的退出或删除不会改变,也不会被泄露其余受托端的共享公钥和共享私钥,从而不会对之前的交易指令产生影响。
[0058]
请结合参看图7,其为本发明第二实施例提供的数字资产管理方法的第三子流程图。执行步骤s504之后,数字资产管理方法还包括如下步骤。
[0059]
步骤s5051,受托端组中的每一受托端分别利用初始化参数和其余受托端所对应的身份标识符计算与其余受托端一一对应的子秘密份额,并将子秘密份额发送至相对应的受托端。在本实施例中,初始化参数还包括第三散列数集b
i,0
,b
i,1
,b
i,2
,
…
,b
i,t-1
。其中,i=1,
…
,n,i表示第i个受托端,t表示预设数量阈值。假设有一个新受托端21被添加至受托端组200中,且新受托端21的身份标识符为idr。则受托端组200中仍有n个受托端20。下文将以此为例进行详细描述。受托端组200中的每一受托端20分别从第三散列数集b
i,0
,b
i,1
,b
i,2
,
…
,b
i,t-1
中随机选取一个数作为第三随机系数,并根据第三随机系数生成一个多项式gi(x)=b
i,0
+b
i,1
x+b
i,2
x2+
…
+b
i,t-1
x
t-1
mod q。其中,多项式gi(x)满足gi(idr)=0。每一受托端20根据其余受托端20的身份标识符id和多项式gi(x)计算与其余受托端20相对应的子秘密份额s
′
i,j
=gi(idj)。其中,s
′
i,j
表示第i个受托端计算的第j个受托端的子秘密份额,idj表示第j个受托端的身份标识符,且j=1,
…
,n,j≠i。每一受托端20将计算得到的子秘密份额s
′
i,j
发送至相对应的受托端20。
[0060]
步骤s5052,受托端组中的每一受托端接收其余受托端发送的子秘密份额并进行有效性验证。受托端组200中的每一受托端20根据选取的第三随机系数计算相应的承诺c
′
i,k
=b
i,k
g mod q。其中,k=0,1,
…
,t-1。每一受托端20根据承诺c
′
i,k
以及其余受托端20的身份标识符id判断子秘密份额s
′
i,j
是否有效。具体地,当成立时,子秘密份额s
′
i,j
通过有效性验证;当不成立时,子秘密份额s
′
i,j
没有通过验证,说明与该子秘密份额s
′
i,j
相对应的受托端20不诚信。则受托端20发送警告信息给除不诚信受托端以外的其余受托端20,告知不诚信受托端的恶意行为。相应地,交易所端30可以将不诚信受托端从受托端组200中删除。
[0061]
步骤s5053,当其余受托端的子秘密份额均通过有效性验证时,受托端组中的每一受托端分别利用共享密钥份额、初始化参数以及身份标识符计算相应的临时共享密钥份额。具体地,临时共享密钥份额受托端20将计算得到的临时共享密钥份额d
′j发送给新受托端21。
[0062]
步骤s5054,当新受托端接收到临时共享密钥份额的数量大于或者等于预设数量阈值时,新受托端利用临时共享密钥份额计算相应的共享密钥份额和共享公钥。即是说,当受托端组200中除新受托端21以外的受托端20中,有至少预设数量阈值t个受托端20将临时共享密钥份额d
′j发送给新受托端21,新受托端21就可以计算自己的共享密钥份额dr和共享公钥qr。具体地,新受托端21可以通过拉格朗日插值法计算自己的共享密钥份额
[0063]
上述实施例中,当新受托端添加至受托端组时,原有受托端的共享密钥份额不会被更改或者公开,原有受托端的共享公钥和共享私钥不会发生改变,也不会遭到泄露。新受托端可以独立于原有受托端的共享密钥份额,生成自己的共享密钥份额,并基于原有受托端的临时共享密钥份额生成共享公钥。新受托端在不知晓原有受托端的共享密钥份额的情况下,能够计算得到自己的共享密钥份额,并计算出相应的共享公钥,能够确保安全性。此外,被删除的受托端的权利被新受托端代替,能够有效防止被删除的受托端的越权行为。
[0064]
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘且本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
[0065]
以上所列举的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。