去中心化的智能合约托管钱包的方法及系统技术方案

技术编号:24169769 阅读:16 留言:0更新日期:2020-05-16 02:34
本发明专利技术公开了一种去中心化的智能合约托管钱包的方法及系统,涉及区块链技术领域,解决了普通钱包账户私钥丢失或泄漏资产不安全的技术问题,其技术方案要点是使用普通钱包账户的私钥对智能合约钱包进行签名后部署到公链上,则智能合约钱包的拥有者即发起调用的普通钱包账户的地址。由此,智能合约钱包转账,提现智能合约钱包中资产到拥有者的普通钱包账户等等,这些交易的调用者都必须是智能合约钱包的拥有者才能执行,从而保护了智能合约钱包中资产的安全。通过回答预设谜题从而变更智能合约钱包的拥有者,解决了用户的普通钱包账户私钥丢失无法找回以及私钥泄漏资产不安全的问题。

【技术实现步骤摘要】
去中心化的智能合约托管钱包的方法及系统
本公开涉及区块链
,尤其涉及一种去中心化的智能合约托管钱包的方法及系统。
技术介绍
区块链技术中最重要的一个组成部分就是公私钥,在《比特币:一种点对点的电子现金系统》一文中,中本聪提到了椭圆加密算法(ECDSA)来产生比特币的私钥和公钥。基于椭圆加密的原理,由私钥是可以计算出公钥的,再由公钥经过一系列数字签名运算就会得到比特币钱包地址。以太坊和比特币产生公私钥的方法是一样的,都是生成随机私钥,由椭圆曲线计算公钥,不同点在于生成的钱包地址是不一样的,以太坊使用Keccak-256对公钥进行哈希,最后20个字节,加上0x作为以太坊钱包的地址,例如0xCA35b7d915458EF540aDe6068dFe2F44E8fa733c。私钥是由随机种子生成的,公钥是将私钥通过算法推导出来的,由于公钥太长,为了简便实用,就出现了“地址”,地址是公钥推导出来的。这些推导过程是单向不可逆的,也就是地址不能推导出公钥,公钥不能推导出私钥。公钥加密,私钥解密,也就是用公钥加密原数据,只有对应的私钥才能解开原数据,这样才能使得原数据在网络传播中不被窃取,从而保护隐私。私钥签名,公钥验签,用私钥对原数据进行签名,只有对应的公钥才能验证签名串与原数据是匹配的。地址类似于银行卡号,用户通过区块链钱包使用私钥签名将自己账户的金额转给对应账户的钱包地址,完成转账交易。私钥由用户自己保管,对用户十分重要,一旦丢失用户的资产也找不回来,用户可以将自己的私钥进行备份以防丢失,但备份有泄漏的风险。为了解决私钥丢失和泄漏的风险,现在区块链钱包都是采用助记词生成随机种子,然后由随机种子恢复钱包公私钥,其中助记词采用密码保护的方式,生成keystore文件,由用户自己保管。区块链钱包通过导入keystore文件,用户输入对应密码,恢复出交易签名所需的公私钥。keystore文件同样也有丢失和泄漏被暴力破解的风险,因此,现在更安全的做法是采用多重签名保管主要数字资产,一个私钥丢失或者泄漏后,不影响正常使用,但多重签名钱包每发起一笔交易都需要多个钱包共同签名才能生效,操作比较麻烦,效率低。
技术实现思路
本公开提供了一种去中心化的智能合约托管钱包的方法及系统,其技术目的是:通过回答预设谜题从而变更智能合约钱包的拥有者,解决用户的普通钱包账户私钥丢失资产无法找回的以及私钥泄漏资产不安全的问题。本公开的上述技术目的是通过以下技术方案得以实现的:一种去中心化的智能合约托管钱包的方法,包括智能合约钱包的创建及其拥有者变更;所述智能合约钱包的创建过程包括:创建智能合约钱包,所述智能合约钱包包括钱包合约和钱包管理合约,所述钱包合约包括钱包名称和钱包地址;使用普通钱包账户的私钥对所述智能合约钱包进行签名后部署到公链上,则所述智能合约钱包的拥有者即发起调用的所述普通钱包账户的地址;通过所述钱包合约设置谜题,所述谜题包括提示和答案;通过所述钱包管理合约设置所述钱包名称和所述钱包地址的对应关系;所述智能合约钱包的拥有者变更过程包括:调用所述钱包管理合约,通过所述钱包名称获取所述钱包地址,然后判断交易的发起者和所述智能合约钱包的拥有者的账户地址是否相同,相同则更改所述智能合约钱包的拥有者,并删除所述钱包合约中存储的所述谜题,不同则:根据所述谜题的提示,调用所述智能合约钱包并根据所述谜题的答案计算哈希值,判断所述哈希值与所述钱包合约中存储的哈希值是否相同,相同则更改所述智能合约钱包的拥有者,并删除所述钱包合约中存储的所述谜题;不同则返回错误。进一步地,调用所述钱包管理合约可以添加、删除、查询所述智能合约钱包。进一步地,所述谜题至少为三个,所述答案为原文内容的哈希值。一种去中心化的智能合约托管钱包的系统,包括创建模块和变更模块;所述创建模块包括:创建单元,创建智能合约钱包,所述智能合约钱包包括钱包合约和钱包管理合约,所述钱包合约包括钱包名称和钱包地址;签名单元,使用普通钱包账户的私钥对所述智能合约钱包进行签名后部署到公链上,则所述智能合约钱包的拥有者即发起调用的所述普通钱包账户的地址;设置单元,包括第一设置单元和第二设置单元,所述第一设置单元通过所述钱包合约设置谜题;所述第二设置单元通过所述钱包管理合约设置所述钱包名称和所述钱包地址的对应关系;所述变更模块包括:地址获取单元,调用所述钱包管理合约,通过所述钱包名称获取所述钱包地址;第一判断单元,判断交易的发起者和所述智能合约钱包的拥有者的账户地址是否相同,得到第一判断结果;变更单元,所述第一判断结果为相同则更改所述智能合约钱包的拥有者;哈希值计算单元,所述第一判断结果为不同时,根据所述谜题的提示,调用所述智能合约钱包并根据所述谜题的答案计算哈希值;第二判断单元,判断所述哈希值与所述钱包合约中存储的哈希值是否相同,得到第二判断结果,所述第二判断结果为相同时则转到所述变更单元;删除单元,所述智能合约钱包的拥有者更改成功后,删除所述钱包合约中存储的所述谜题。进一步地,该系统还包括:添加模块,调用所述钱包管理合约添加所述智能合约钱包;删除模块,调用所述钱包管理合约删除所述智能合约钱包;查询模块,调用所述钱包管理合约查询所述智能合约钱包。进一步地,所述谜题至少为三个,所述答案为原文内容的哈希值。本公开的有益效果在于:本公开所述的去中心化的智能合约托管钱包的方法及系统,创建的智能合约钱包包括钱包合约和钱包管理合约,钱包合约又包括钱包名称和钱包地址,钱包管理合约设置钱包名称和钱包地址的对应关系,钱包合约设置谜题。使用普通钱包账户的私钥对智能合约钱包进行签名后部署到公链上,则智能合约钱包的拥有者即发起调用的普通钱包账户的地址。由此,智能合约钱包转账,提现智能合约钱包中资产到拥有者的普通钱包账户等等,这些交易的调用者都必须是智能合约钱包的拥有者才能执行,从而保护了智能合约钱包中资产的安全。通过回答预设谜题从而变更智能合约钱包的拥有者,解决了用户的普通钱包账户私钥丢失无法找回以及私钥泄漏资产不安全的问题。附图说明图1为智能合约钱包的创建流程图;图2为智能合约钱包的变更流程图;图3为智能合约钱包的添加、删除、查询流程图。具体实施方式下面将结合附图对本公开技术方案进行详细说明。在本公开的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量,仅用来区分不同的组成部分。本公开所述的去中心化的智能合约托管钱包的方法,包括智能合约钱包的创建及其拥有者变更,同时智能合约钱包还可以添加、删除、查询,其流程如图1、图2、图3。如图1所示,智能合约钱包的创建过程为:创建智能合约钱包,该智能合约钱包包括钱包合约和钱包管理合约本文档来自技高网
...

【技术保护点】
1.一种去中心化的智能合约托管钱包的方法,其特征在于,包括智能合约钱包的创建及其拥有者变更;/n所述智能合约钱包的创建过程包括:/n创建智能合约钱包,所述智能合约钱包包括钱包合约和钱包管理合约,所述钱包合约包括钱包名称和钱包地址;/n使用普通钱包账户的私钥对所述智能合约钱包进行签名后部署到公链上,则所述智能合约钱包的拥有者即发起调用的所述普通钱包账户的地址;/n通过所述钱包合约设置谜题,所述谜题包括提示和答案;/n通过所述钱包管理合约设置所述钱包名称和所述钱包地址的对应关系;/n所述智能合约钱包的拥有者变更过程包括:/n调用所述钱包管理合约,通过所述钱包名称获取所述钱包地址,然后判断交易的发起者和所述智能合约钱包的拥有者的账户地址是否相同,相同则更改所述智能合约钱包的拥有者,并删除所述钱包合约中存储的所述谜题,不同则:/n根据所述谜题的提示,调用所述智能合约钱包并根据所述谜题的答案计算哈希值,判断所述哈希值与所述钱包合约中存储的哈希值是否相同,相同则更改所述智能合约钱包的拥有者,并删除所述钱包合约中存储的所述谜题;不同则返回错误。/n

【技术特征摘要】
1.一种去中心化的智能合约托管钱包的方法,其特征在于,包括智能合约钱包的创建及其拥有者变更;
所述智能合约钱包的创建过程包括:
创建智能合约钱包,所述智能合约钱包包括钱包合约和钱包管理合约,所述钱包合约包括钱包名称和钱包地址;
使用普通钱包账户的私钥对所述智能合约钱包进行签名后部署到公链上,则所述智能合约钱包的拥有者即发起调用的所述普通钱包账户的地址;
通过所述钱包合约设置谜题,所述谜题包括提示和答案;
通过所述钱包管理合约设置所述钱包名称和所述钱包地址的对应关系;
所述智能合约钱包的拥有者变更过程包括:
调用所述钱包管理合约,通过所述钱包名称获取所述钱包地址,然后判断交易的发起者和所述智能合约钱包的拥有者的账户地址是否相同,相同则更改所述智能合约钱包的拥有者,并删除所述钱包合约中存储的所述谜题,不同则:
根据所述谜题的提示,调用所述智能合约钱包并根据所述谜题的答案计算哈希值,判断所述哈希值与所述钱包合约中存储的哈希值是否相同,相同则更改所述智能合约钱包的拥有者,并删除所述钱包合约中存储的所述谜题;不同则返回错误。


2.如权利要求1所述的去中心化的智能合约托管钱包的方法,其特征在于,调用所述钱包管理合约可以添加、删除、查询所述智能合约钱包。


3.如权利要求2所述的去中心化的智能合约托管钱包的方法,其特征在于,所述谜题至少为三个,所述答案为原文内容的哈希值。


4.一种去中心化的智能合约托管钱包的系统,其特征在于,包括创建模块和变更模块;
所述创建模块包括:
创建单元,创建智能合约钱包,所述智...

【专利技术属性】
技术研发人员:刘迎宾陈勇良
申请(专利权)人:马上游科技股份有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1