一种基于多方验证的区块链资产转移方法转让专利

申请号 : CN201910355006.3

文献号 : CN110163604B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 代炜琦金海邹德清吴朱天

申请人 : 华中科技大学深圳华中科技大学研究院

摘要 :

本发明公开了一种基于多方验证的区块链资产转移方法,属于区块链领域。包括:用户在丢失私钥之后,建立新地址,将X的地址写入特殊交易A,发送给区块链,向指定好友发送签名A的地址的请求;矿工在上一个打包区块中识别出A或B时,生成验证码和新的特殊交易B,并向用户在指定第三方信息服务商上的地址发送验证码和对应B的地址,好友将A的地址写入特殊交易C,发送给区块链;用户从指定第三方信息服务商读取所有验证码和对应B的地址,从区块链中查找所有C的地址,将上述信息写入特殊交易D,并发送给区块链;矿工收到D之后,根据用户指定的认证方案,同时进行第三方验证和好友验证,若多方验证成功,将资产转移到新地址,否则,拒绝。

权利要求 :

1.一种基于多方验证的区块链资产转移方法,其特征在于,该方法包括以下步骤:S1.用户在丢失私钥之前,将指定第三方信息服务商上用户的地址、指定好友在区块链上的地址和认证方案写入特殊交易X,并发送给区块链;

S2.用户在丢失私钥之后,建立新地址,将特殊交易X的地址写入特殊交易A,发送给区块链,向指定好友发送签名特殊交易A的地址的请求;

S3.若矿工在上一个打包区块包含特殊交易A,则随机生成验证码,并将特殊交易A的地址、验证码哈希、验证码编号1写入特殊交易B;若矿工在上一个打包区块中识别出特殊交易B,比较特殊交易B中的验证码编号是否大于等于指定验证码个数,若是,不生成新的特殊交易B;否则,随机生成验证码,并将从特殊交易B中获取特殊交易A的地址、验证码哈希、特殊交易B的验证码编号加1,并写入新的特殊交易B,并向用户在指定第三方信息服务商上的地址发送验证码和对应特殊交易B的地址,好友将特殊交易A的地址写入特殊交易C,发送给区块链;

S4.用户从指定第三方信息服务商读取所有验证码和对应特殊交易B的地址,从区块链中查找所有特殊交易C的地址,将上述信息写入特殊交易D,并发送给区块链;

S5.矿工收到特殊交易D之后,根据认证方案,同时进行第三方验证和好友验证,若验证结果满足认证方案,将资产转移到新地址,否则,拒绝进行转移。

2.如权利要求1所述的方法,其特征在于,所述认证方案包括:最低验证码匹配个数、最低不同好友签名个数和指定验证码个数。

3.如权利要求1所述的方法,其特征在于,所述步骤S2包括以下步骤:

S201.通过生成新的公私钥对以建立新地址;

S202.用户根据用户旧地址查找历史交易,找到特殊交易X,将特殊交易X的地址写入特殊交易A;

S203.从特殊交易X中取出指定好友,向其发送签名特殊交易A的地址的请求。

4.如权利要求3所述的方法,其特征在于,在新地址内预存资产。

5.如权利要求1至4任一项所述的方法,其特征在于,每生成验证码和特殊交易B时,矿工向用户在指定第三方信息服务商上的地址发送验证码和对应特殊交易B的地址。

6.如权利要求1至4任一项所述的方法,其特征在于,矿工先在本地暂存验证码和对应特殊交易B的地址,在确认主链之后发送。

7.如权利要求1至4任一项所述的方法,其特征在于,所述步骤S5具体包括以下步骤:S501.矿工收到特殊交易D之后,分别对每个验证码进行哈希运算,并根据该验证码对应的特殊交易B的地址查找历史交易,找到该特殊交易B,从中取出验证码哈希,若两者一致,则成功匹配一次,若匹配次数≥指定最低验证码匹配个数,则第三方信息服务商方的验证成功;

S502.矿工收到特殊交易D之后,根据特殊交易C的地址查找历史交易,找到好友地址,若找到的好友地址与特殊交易C的签名者相同,则签名成功;若签名成功次数≥最低不同好友签名个数,则好友方的验证成功;

S503.若第三方信息服务商方的验证成功且好友方的验证成功,则将资产从旧地址转移到新地址,否则,拒绝转移。

8.如权利要求7所述的方法,其特征在于,在验证结果满足认证方案之后、资产进行转移之前,矿工还需要验证当前区块编号是否和包含特殊交易A的区块编号接近,若是,则拒绝转移,否则,同意资产转移,所述编号接近是指区块编号相差不大于1天时间区块链产生的区块总数。

9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的基于多方验证的区块链资产转移方法。

说明书 :

一种基于多方验证的区块链资产转移方法

技术领域

[0001] 本发明属于区块链领域,更具体地,涉及一种基于多方验证的区块链资产转移方法。

背景技术

[0002] 在数字资产世界里,密钥是用户身份的唯一标识,一对密钥与一笔数字资产绑定,用户使用私钥进行签名交易,从而证明拥有该数字资产的使用权。
[0003] 然而,现在的密钥与数字资产存在一些问题:数字资产与密钥绑定,但密钥与真实用户没有任何联系,当用户丢失私钥时,就意味着用户丢失了其在区块链上的唯一身份标识,拥有的数字资产将无法被使用。当用户将私钥备份在第三方平台时,由于中心化的特性,易受到攻击,难以保证私钥的安全性。

发明内容

[0004] 针对现有技术的缺陷,本发明的目的在于解决现有技术区块链中用户私钥丢失后资产无法恢复的技术问题。
[0005] 为实现上述目的,第一方面,本发明实施例提供了一种基于多方验证的区块链资产转移方法,该方法包括以下步骤:
[0006] S1.用户在丢失私钥之前,将指定第三方信息服务商上用户的地址、指定好友在区块链上的地址和认证方案写入特殊交易X,并发送给区块链;
[0007] S2.用户在丢失私钥之后,建立新地址,将特殊交易X的地址写入特殊交易A,发送给区块链,向指定好友发送签名特殊交易A的地址的请求;
[0008] S3.矿工在上一个打包区块中识别出特殊交易A或特殊交易B时,生成验证码和新的特殊交易B,并向用户在指定第三方信息服务商上的地址发送验证码和对应特殊交易B的地址,好友将特殊交易A的地址写入特殊交易C,发送给区块链;
[0009] S4.用户从指定第三方信息服务商读取所有验证码和对应特殊交易B的地址,从区块链中查找所有特殊交易C的地址,将上述信息写入特殊交易D,并发送给区块链;
[0010] S5.矿工收到特殊交易D之后,根据认证方案,同时进行第三方验证和好友验证,若验证结果满足认证方案,将资产转移到新地址,否则,拒绝进行转移。
[0011] 具体地,所述认证方案包括:最低验证码匹配个数、最低不同好友签名个数和指定验证码个数。
[0012] 具体地,所述步骤S2包括以下步骤:
[0013] S201.通过生成新的公私钥对以建立新地址;
[0014] S202.用户根据用户旧地址查找历史交易,找到特殊交易X,将特殊交易X的地址写入特殊交易A;
[0015] S203.从特殊交易X中取出指定好友,向其发送签名特殊交易A的地址的请求。
[0016] 具体地,在新地址内预存资产。
[0017] 具体地,所述矿工在上一个打包区块中识别出特殊交易A或特殊交易B时,生成验证码和新的特殊交易B,具体如下:
[0018] 若矿工在上一个打包区块包含特殊交易A,则随机生成验证码,并将特殊交易A的地址、验证码哈希、验证码编号1写入特殊交易B;
[0019] 若矿工在上一个打包区块中识别出特殊交易B,比较特殊交易B中的验证码编号是否大于等于指定验证码个数,若是,不生成新的特殊交易B;否则,随机生成验证码,并将从特殊交易B中获取特殊交易A的地址、验证码哈希、特殊交易B的验证码编号加1,并写入新的特殊交易B。
[0020] 具体地,每生成验证码和特殊交易B时,矿工向用户在指定第三方信息服务商上的地址发送验证码和对应特殊交易B的地址。
[0021] 具体地,矿工先在本地暂存验证码和对应特殊交易B的地址,在确认主链之后发送。
[0022] 具体地,所述步骤S5具体包括以下步骤:
[0023] S501.矿工收到特殊交易D之后,分别对每个验证码进行哈希运算,并根据该验证码对应的特殊交易B的地址查找历史交易,找到该特殊交易B,从中取出验证码哈希,若两者一致,则成功匹配一次,若匹配次数≥指定最低验证码匹配个数,则第三方信息服务商方的验证成功;
[0024] S502.矿工收到特殊交易D之后,根据特殊交易C的地址查找历史交易,找到好友地址,若找到的好友地址与特殊交易C的签名者相同,则签名成功;若签名成功次数≥最低不同好友签名个数,则好友方的验证成功;
[0025] S503.若第三方信息服务商方的验证成功且好友方的验证成功,则将资产从旧地址转移到新地址,否则,拒绝转移。
[0026] 具体地,在验证结果满足认证方案之后、资产进行转移之前,矿工还需要验证当前区块编号是否和包含特殊交易A的区块编号接近,若是,则拒绝转移,否则,同意资产转移。
[0027] 第二方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面所述的基于多方验证的区块链资产转移方法。
[0028] 总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
[0029] 1.本发明结合第三方信息服务商与用户社交关系,为用户提供多方验证的合法身份证明,由于验证者均来自多方,减少了合谋的可能性,并且不影响区块链原有功能。
[0030] 2.本发明基于共识机制随机选择矿工验证者,在私钥丢失的情况下,简单高效地实现身份证明,它将传统的第三方中心化验证方法转变成由矿工主导的去中心化身份验证方案,解决了中心化验证者伪造真实身份的问题。

附图说明

[0031] 图1为本发明实施例提供的一种基于多方验证的区块链资产转移方法流程图。

具体实施方式

[0032] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0033] 首先对本发明的技术术语进行解释和说明。
[0034] 私钥:非对称加密中,由用户保存,用于对交易进行签名的一段字串,只有使用私钥签名,才能使用其对应地址的数字资产。
[0035] 矿工:区块链去中心化网络中的基础,能够处理用户的请求,保存区块信息等。
[0036] 出块:在运行共识机制的一次活动中,矿工成功赢得将交易打包到区块中的权利。
[0037] 特殊交易:转账目标地址为某特殊地址,区块链矿工能够对该地址进行识别,例如以太坊智能合约是一种目标地址为空的特殊交易。交易地址是交易ID,交易的签名者是交易发送人的地址。
[0038] 数字资产:保存在区块链上的任何与密钥相关的数据,例如,加密货币、账户余额等。
[0039] 用户地址:用户在区块链上的账号。
[0040] 如图1所示,一种基于多方验证的区块链资产转移方法,该方法包括以下步骤:
[0041] S1.用户在丢失私钥之前,将指定第三方信息服务商上用户的地址、指定好友在区块链上的地址和认证方案写入特殊交易X,并发送给区块链;
[0042] S2.用户在丢失私钥之后,建立新地址,将特殊交易X的地址写入特殊交易A,发送给区块链,向指定好友发送签名特殊交易A的地址的请求;
[0043] S3.矿工在上一个打包区块中识别出特殊交易A或特殊交易B时,生成验证码和新的特殊交易B,并向用户在指定第三方信息服务商上的地址发送验证码和对应特殊交易B的地址,好友将特殊交易A的地址写入特殊交易C,发送给区块链;
[0044] S4.用户从指定第三方信息服务商读取所有验证码和对应特殊交易B的地址,从区块链中查找所有特殊交易C的地址,将上述信息写入特殊交易D,并发送给区块链;
[0045] S5.矿工收到特殊交易D之后,根据认证方案,同时进行第三方验证和好友验证,若验证结果满足认证方案,将资产转移到新地址,否则,拒绝进行转移。
[0046] 步骤S1.用户在丢失私钥之前,将指定第三方信息服务商上用户的地址、指定好友地址和认证方案写入特殊交易X,并发送给区块链。
[0047] 在私钥丢失之前,用户需指定未来用于验证的第三方信息服务商、好友,将指定第三方信息服务商上用户的地址、指定好友在区块链上的地址和认证方案写入特殊交易X。认证方案包括最低验证码匹配个数、最低不同好友签名个数和指定验证码个数。由于用户旧地址对应的旧私钥签名了特殊交易X,因此,特殊交易X的签名信息中带有用户旧地址。
[0048] 步骤S2.用户在丢失私钥之后,建立新地址,将特殊交易X的地址写入特殊交易A,发送给区块链,向指定好友发送签名特殊交易A的地址的请求。
[0049] 用户在丢失私钥之后,首先,通过生成新的公私钥对以建立新地址(账号),并在新地址内预存一定资产。其次,用户根据用户旧地址查找历史交易,找到特殊交易X,将特殊交易X的地址写入特殊交易A,特殊交易A即为资产转移请求。然后,从特殊交易X中取出指定好友,向其发送签名特殊交易A的地址的请求,目的是想让好友对该资产转移请求进行许可。
[0050] 步骤S3.矿工在上一个打包区块中识别出特殊交易A或特殊交易B时,生成验证码和新的特殊交易B,并向用户在指定第三方信息服务商上的地址发送验证码和对应特殊交易B的地址,好友将特殊交易A的地址写入特殊交易C,发送给区块链。
[0051] 矿工在上一个打包区块中识别出特殊交易A时,触发第三方信息服务商方验证。若在上一个打包区块包含特殊交易A,则随机生成验证码,并将特殊交易A的地址、验证码哈希、验证码编号1写入特殊交易B。
[0052] 矿工在上一个打包区块中识别出特殊交易B时,比较特殊交易B中的验证码编号是否大于等于指定验证码个数,若是,表明已经生成足够多的验证码,此时,不生成新的特殊交易B;否则,随机生成验证码,并将从特殊交易B中获取特殊交易A的地址、验证码哈希、特殊交易B的验证码编号加1,并写入新的特殊交易B。
[0053] 矿工根据特殊交易A的地址查询历史交易,找到特殊交易A,从特殊交易A中取出特殊交易X的地址;根据特殊交易X的地址查询历史交易,找到特殊交易X,从特殊交易X中取出指定第三方信息服务商上的地址。或者,矿工根据旧特殊交易B的地址查询历史交易,找到特殊交易B,从特殊交易B中取出特殊交易A的地址;根据特殊交易A的地址查询历史交易,找到特殊交易A,从特殊交易A中取出特殊交易X的地址;根据特殊交易X的地址查询历史交易,找到特殊交易X,从特殊交易X中取出指定第三方信息服务商上的地址。
[0054] 每生成验证码和特殊交易B时,矿工向用户在指定第三方信息服务商上的地址发送验证码和对应特殊交易B的地址。
[0055] 优选地,矿工先在本地暂存验证码和对应特殊交易B的地址,在确认主链之后发送,目的是为了减少用户收到的无效验证码。并从特殊交易A的提交者获取奖励,奖励为新地址上的一些资产。
[0056] 好友在收到用户的请求时,触发好友方验证。好友将特殊交易A的地址写入特殊交易C,并发送给区块链。
[0057] 步骤S4.用户从指定第三方信息服务商读取所有验证码和对应特殊交易B的地址,从区块链中查找所有特殊交易C的地址,将上述信息写入特殊交易D,并发送给区块链。
[0058] 用户从指定第三方信息服务商读取所有验证码和对应特殊交易B的地址,只有正确的用户才能获取到验证码,完成对用户真实身份的验证。
[0059] 用户根据特殊交易A的查找历史区块信息,获得所有对特殊交易A的地址签名的特殊交易的地址,即特殊交易C的地址。
[0060] 将上述信息写入特殊交易D,并发送给区块链。特殊交易D包括:所有验证码;验证码对应生成区块的地址(B交易的地址);特殊交易C的地址。即在用户收到所有验证码、并且特殊交易C已经入块之后,才生成特殊交易D。
[0061] 步骤S5.矿工收到特殊交易D之后,根据用户指定的认证方案,同时进行第三方验证和好友验证,若验证结果满足认证方案,将资产转移到新地址,否则,拒绝进行转移。
[0062] 矿工收到特殊交易D之后,将特殊交易D中用户提交的内容和历史记录进行对比。若验证结果满足认证方案,将资产从旧地址转移到新地址,否则,拒绝进行转移。具体如下:
[0063] (1)矿工收到特殊交易D之后,分别对每个验证码进行哈希运算,并根据该验证码对应的特殊交易B的地址查找历史交易,找到该特殊交易B,从中取出验证码哈希,若两者一致,则成功匹配一次,若匹配次数≥指定最低验证码匹配个数,则第三方信息服务商方的验证成功;
[0064] (2)矿工收到特殊交易D之后,根据特殊交易C的地址查找历史交易,找到特殊交易C,从特殊交易C中取出特殊交易A的地址和特殊交易C的签名者,进一步找到特殊交易X的地址,再进一步找到好友地址;若找到的好友地址与特殊交易C的签名者相同,则一致;若大于等于最低不同好友签名个数一致时,好友方的验证成功;
[0065] (3)若第三方信息服务商方的验证成功且好友方的验证成功,则将资产从旧地址转移到新地址,否则,拒绝进行转移。
[0066] 由同一矿工对历史记录中的第三方身份验证与好友方验证,完成对用户真实身份的认证。
[0067] 优选地,在验证结果满足认证方案之后、资产进行转移之前,矿工还需要验证当前区块是否和包含特殊交易A的区块的编号接近,若是,则拒绝进行转移,否则,同意资产转移。本发明实施例认为,编号接近是指区块编号相差不大于1天时间区块链产生的区块总数。其目的是为了提高系统安全性,在用户没有丢失私钥的情况下,防止有人冒充用户身份实施窃取,此时让真正的用户能够有一定时间对恶意操作进行补救,通过转移原账号资产的方式。
[0068] 用户首先预存多个第三方信息服务商上的用户地址以及好友信息。在丢失私钥后,生成新的账号,向区块链发送资产转移请求,之后会在第三方信息服务商处收到验证码信息,然后将所有验证码打包后发送给区块链进行验证,并且告知好友对该次资产转移请求进行许可,最终用户可以通过我们的流程将资产恢复到新的账号上。
[0069] 整个资产转移过程中,特殊交易X、A、B、C、D的个数比应该为1:1:N1:N2:1。区块链在此过程中,对收到的所有交易进行正常打包出块,当矿工成功打包出区块后,将区块广播到全网,出块节点获得奖励。
[0070] 以上,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。