CN111159774B - 去中心化的智能合约托管钱包的方法及系统 - Google Patents
去中心化的智能合约托管钱包的方法及系统 Download PDFInfo
- Publication number
- CN111159774B CN111159774B CN201911262970.8A CN201911262970A CN111159774B CN 111159774 B CN111159774 B CN 111159774B CN 201911262970 A CN201911262970 A CN 201911262970A CN 111159774 B CN111159774 B CN 111159774B
- Authority
- CN
- China
- Prior art keywords
- wallet
- contract
- intelligent contract
- owner
- puzzle
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种去中心化的智能合约托管钱包的方法及系统,涉及区块链技术领域,解决了普通钱包账户私钥丢失或泄漏资产不安全的技术问题,其技术方案要点是使用普通钱包账户的私钥对智能合约钱包进行签名后部署到公链上,则智能合约钱包的拥有者即发起调用的普通钱包账户的地址。由此,智能合约钱包转账,提现智能合约钱包中资产到拥有者的普通钱包账户等等,这些交易的调用者都必须是智能合约钱包的拥有者才能执行,从而保护了智能合约钱包中资产的安全。通过回答预设谜题从而变更智能合约钱包的拥有者,解决了用户的普通钱包账户私钥丢失无法找回以及私钥泄漏资产不安全的问题。
Description
技术领域
本公开涉及区块链技术领域,尤其涉及一种去中心化的智能合约托管钱包的方法及系统。
背景技术
区块链技术中最重要的一个组成部分就是公私钥,在《比特币:一种点对点的电子现金系统》一文中,中本聪提到了椭圆加密算法(ECDSA)来产生比特币的私钥和公钥。基于椭圆加密的原理,由私钥是可以计算出公钥的,再由公钥经过一系列数字签名运算就会得到比特币钱包地址。以太坊和比特币产生公私钥的方法是一样的,都是生成随机私钥,由椭圆曲线计算公钥,不同点在于生成的钱包地址是不一样的,以太坊使用Keccak-256对公钥进行哈希,最后20个字节,加上0x作为以太坊钱包的地址,例如0xCA35b7d915458EF540aDe6068dFe2F44E8fa733c。
私钥是由随机种子生成的,公钥是将私钥通过算法推导出来的,由于公钥太长,为了简便实用,就出现了“地址”,地址是公钥推导出来的。这些推导过程是单向不可逆的,也就是地址不能推导出公钥,公钥不能推导出私钥。
公钥加密,私钥解密,也就是用公钥加密原数据,只有对应的私钥才能解开原数据,这样才能使得原数据在网络传播中不被窃取,从而保护隐私。私钥签名,公钥验签,用私钥对原数据进行签名,只有对应的公钥才能验证签名串与原数据是匹配的。地址类似于银行卡号,用户通过区块链钱包使用私钥签名将自己账户的金额转给对应账户的钱包地址,完成转账交易。
私钥由用户自己保管,对用户十分重要,一旦丢失用户的资产也找不回来,用户可以将自己的私钥进行备份以防丢失,但备份有泄漏的风险。为了解决私钥丢失和泄漏的风险,现在区块链钱包都是采用助记词生成随机种子,然后由随机种子恢复钱包公私钥,其中助记词采用密码保护的方式,生成keystore文件,由用户自己保管。区块链钱包通过导入keystore文件,用户输入对应密码,恢复出交易签名所需的公私钥。
keystore文件同样也有丢失和泄漏被暴力破解的风险,因此,现在更安全的做法是采用多重签名保管主要数字资产,一个私钥丢失或者泄漏后,不影响正常使用,但多重签名钱包每发起一笔交易都需要多个钱包共同签名才能生效,操作比较麻烦,效率低。
发明内容
本公开提供了一种去中心化的智能合约托管钱包的方法及系统,其技术目的是:通过回答预设谜题从而变更智能合约钱包的拥有者,解决用户的普通钱包账户私钥丢失资产无法找回的以及私钥泄漏资产不安全的问题。
本公开的上述技术目的是通过以下技术方案得以实现的:
一种去中心化的智能合约托管钱包的方法,包括智能合约钱包的创建及其拥有者变更;
所述智能合约钱包的创建过程包括:
创建智能合约钱包,所述智能合约钱包包括钱包合约和钱包管理合约,所述钱包合约包括钱包名称和钱包地址;
使用普通钱包账户的私钥对所述智能合约钱包进行签名后部署到公链上,则所述智能合约钱包的拥有者即发起调用的所述普通钱包账户的地址;
通过所述钱包合约设置谜题,所述谜题包括提示和答案;
通过所述钱包管理合约设置所述钱包名称和所述钱包地址的对应关系;
所述智能合约钱包的拥有者变更过程包括:
调用所述钱包管理合约,通过所述钱包名称获取所述钱包地址,然后判断交易的发起者和所述智能合约钱包的拥有者的账户地址是否相同,相同则更改所述智能合约钱包的拥有者,并删除所述钱包合约中存储的所述谜题,不同则:
根据所述谜题的提示,调用所述智能合约钱包并根据所述谜题的答案计算哈希值,判断所述哈希值与所述钱包合约中存储的哈希值是否相同,相同则更改所述智能合约钱包的拥有者,并删除所述钱包合约中存储的所述谜题;不同则返回错误。
进一步地,调用所述钱包管理合约可以添加、删除、查询所述智能合约钱包。
进一步地,所述谜题至少为三个,所述答案为原文内容的哈希值。
一种去中心化的智能合约托管钱包的系统,包括创建模块和变更模块;
所述创建模块包括:
创建单元,创建智能合约钱包,所述智能合约钱包包括钱包合约和钱包管理合约,所述钱包合约包括钱包名称和钱包地址;
签名单元,使用普通钱包账户的私钥对所述智能合约钱包进行签名后部署到公链上,则所述智能合约钱包的拥有者即发起调用的所述普通钱包账户的地址;
设置单元,包括第一设置单元和第二设置单元,所述第一设置单元通过所述钱包合约设置谜题;所述第二设置单元通过所述钱包管理合约设置所述钱包名称和所述钱包地址的对应关系;
所述变更模块包括:
地址获取单元,调用所述钱包管理合约,通过所述钱包名称获取所述钱包地址;
第一判断单元,判断交易的发起者和所述智能合约钱包的拥有者的账户地址是否相同,得到第一判断结果;
变更单元,所述第一判断结果为相同则更改所述智能合约钱包的拥有者;
哈希值计算单元,所述第一判断结果为不同时,根据所述谜题的提示,调用所述智能合约钱包并根据所述谜题的答案计算哈希值;
第二判断单元,判断所述哈希值与所述钱包合约中存储的哈希值是否相同,得到第二判断结果,所述第二判断结果为相同时则转到所述变更单元;
删除单元,所述智能合约钱包的拥有者更改成功后,删除所述钱包合约中存储的所述谜题。
进一步地,该系统还包括:
添加模块,调用所述钱包管理合约添加所述智能合约钱包;
删除模块,调用所述钱包管理合约删除所述智能合约钱包;
查询模块,调用所述钱包管理合约查询所述智能合约钱包。
进一步地,所述谜题至少为三个,所述答案为原文内容的哈希值。
本公开的有益效果在于:本公开所述的去中心化的智能合约托管钱包的方法及系统,创建的智能合约钱包包括钱包合约和钱包管理合约,钱包合约又包括钱包名称和钱包地址,钱包管理合约设置钱包名称和钱包地址的对应关系,钱包合约设置谜题。使用普通钱包账户的私钥对智能合约钱包进行签名后部署到公链上,则智能合约钱包的拥有者即发起调用的普通钱包账户的地址。
由此,智能合约钱包转账,提现智能合约钱包中资产到拥有者的普通钱包账户等等,这些交易的调用者都必须是智能合约钱包的拥有者才能执行,从而保护了智能合约钱包中资产的安全。通过回答预设谜题从而变更智能合约钱包的拥有者,解决了用户的普通钱包账户私钥丢失无法找回以及私钥泄漏资产不安全的问题。
附图说明
图1为智能合约钱包的创建流程图;
图2为智能合约钱包的变更流程图;
图3为智能合约钱包的添加、删除、查询流程图。
具体实施方式
下面将结合附图对本公开技术方案进行详细说明。在本公开的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量,仅用来区分不同的组成部分。
本公开所述的去中心化的智能合约托管钱包的方法,包括智能合约钱包的创建及其拥有者变更,同时智能合约钱包还可以添加、删除、查询,其流程如图1、图2、图3。
如图1所示,智能合约钱包的创建过程为:创建智能合约钱包,该智能合约钱包包括钱包合约和钱包管理合约,钱包合约则包括钱包名称和钱包地址;使用普通钱包账户的私钥对该智能合约钱包进行签名后部署到公链上,那么智能合约钱包的拥有者即发起调用的普通钱包账户的地址;再通过钱包合约设置谜题,谜题包括提示和答案;通过钱包管理合约设置钱包名称和钱包地址的对应关系。
一般来说,智能合约钱包的创建、管理、调用等都是通过客户端来实现的,用户通过客户端程序对智能合约钱包进行签名,然后将其部署到公链上,那么智能合约钱包的拥有者就是交易的调用者,即:普通钱包账户对应的地址。用户通过客户端程序,调用钱包合约设置谜题,充分利用哈希值算法的不可逆性,对谜题答案进行保护;谜题的参数包括提示和答案,答案则是哈希值。当用户的私钥丢了,可以通过输入答案回答谜题,重置智能合约钱包的拥有者,拥有者可以处理钱包中的数字资产。为了提高安全性,谜题一般至少设置3个。
用户通过客户端程序,调用钱包管理合约设置钱包名称和钱包地址的对应关系。一般钱包地址是20个字节的字符串,很难记忆,因而建立钱包名称和钱包地址的一一对应关系,钱包名称易于记忆,可以类似于互联网中的域名,比如msy.wallet.polochain可以作为钱包的名字。
图2为智能合约钱包拥有者的变更流程图,调用钱包管理合约发起变更交易,通过钱包名称获取钱包地址,然后判断交易的发起者和智能合约钱包的拥有者的账户地址是否相同(即交易发起者的地址和钱包地址是否相同),相同则更改智能合约钱包的拥有者,并删除钱包合约中存储的谜题;若不同,则根据谜题的提示调用智能合约钱包,并根据谜题的答案计算哈希值,判断该哈希值与钱包合约中存储的哈希值是否相同,相同则更改智能合约钱包的拥有者并删除钱包合约中存储的谜题,不同则返回无权限错误。
用户通过客户端程序,调用钱包管理合约,调用参数为钱包名称,通过钱包名称和钱包地址的一一对应关系获取钱包地址。智能合约钱包的拥有者变更成功后,要删除钱包合约中存储的谜题,由于区块链的公开透明性,用户输入谜题的答案已经在链上的交易信息中公开,不再是秘密,因此被破解的谜题已经失去效应,需要从钱包合约中删除掉;用户可以设置新的谜题,从而对智能合约钱包进行保护。
图3为智能合约钱包的添加、删除、查询流程图,用户通过客户端程序,访问钱包管理合约,可以添加、删除、查询智能合约钱包,实现对智能合约钱包的去中心化管理。
添加智能合约钱包的具体流程为:用户通过客户端程序,调用钱包管理合约发起添加交易,判断交易的调用者和智能合约钱包的拥有者的账户地址是否相同,是则添加新的钱包名称和对应的钱包地址,否则返回无权限错误。
删除智能合约钱包的具体流程为:用户通过客户端程序,调用钱包管理合约发起删除交易,根据钱包名称获取对应的钱包地址是否存在,不存在则返回钱包不存在错误;存在则判断交易的调用者和智能合约钱包的拥有者的账户地址是否相同,是则删除(只有智能合约钱包的拥有者才能删除钱包信息),不是则返回无权限错误。
查询智能合约钱包的具体流程为:用户通过客户端程序,调用钱包管理合约,根据钱包名称查询钱包地址,若不存在钱包地址则返回空地址,若钱包地址存在,则判断交易的调用者和智能合约钱包的拥有者的账户地址是否相同,是则返回钱包地址,否则返回无权限错误。
去中心化的智能合约托管钱包的系统包括创建模块、变更模块、添加模块、删除模块和查询模块,创建模块又包括创建单元、签名单元和设置单元,设置单元包括第一设置单元和第二设置单元;变更模块则包括地址获取单元、第一判断单元、变更单元、第二判断单元和删除单元,该系统的具体工作原理参见本公开所述的方法,不再赘述。
以上为本公开示范性实施例,本公开的保护范围由权利要求书及其等效物限定。
Claims (6)
1.一种去中心化的智能合约托管钱包的方法,其特征在于,包括智能合约钱包的创建及其拥有者变更;
所述智能合约钱包的创建过程包括:
创建智能合约钱包,所述智能合约钱包包括钱包合约和钱包管理合约,所述钱包合约包括钱包名称和钱包地址;
使用普通钱包账户的私钥对所述智能合约钱包进行签名后部署到公链上,则所述智能合约钱包的拥有者即发起调用的所述普通钱包账户的地址;
通过所述钱包合约设置谜题,所述谜题包括提示和答案;
通过所述钱包管理合约设置所述钱包名称和所述钱包地址的对应关系;
所述智能合约钱包的拥有者变更过程包括:
调用所述钱包管理合约,通过所述钱包名称获取所述钱包地址,然后判断交易的发起者和所述智能合约钱包的拥有者的账户地址是否相同,相同则更改所述智能合约钱包的拥有者,并删除所述钱包合约中存储的所述谜题,不同则:
根据所述谜题的提示,调用所述智能合约钱包并根据所述谜题的答案计算哈希值,判断所述哈希值与所述钱包合约中存储的哈希值是否相同,相同则更改所述智能合约钱包的拥有者,并删除所述钱包合约中存储的所述谜题;不同则返回错误。
2.如权利要求1所述的去中心化的智能合约托管钱包的方法,其特征在于,调用所述钱包管理合约用于添加、删除、查询所述智能合约钱包。
3.如权利要求2所述的去中心化的智能合约托管钱包的方法,其特征在于,所述谜题至少为三个,所述答案为原文内容的哈希值。
4.一种去中心化的智能合约托管钱包的系统,其特征在于,包括创建模块和变更模块;
所述创建模块包括:
创建单元,创建智能合约钱包,所述智能合约钱包包括钱包合约和钱包管理合约,所述钱包合约包括钱包名称和钱包地址;
签名单元,使用普通钱包账户的私钥对所述智能合约钱包进行签名后部署到公链上,则所述智能合约钱包的拥有者即发起调用的所述普通钱包账户的地址;
设置单元,包括第一设置单元和第二设置单元,所述第一设置单元通过所述钱包合约设置谜题;所述第二设置单元通过所述钱包管理合约设置所述钱包名称和所述钱包地址的对应关系;
所述变更模块包括:
地址获取单元,调用所述钱包管理合约,通过所述钱包名称获取所述钱包地址;
第一判断单元,判断交易的发起者和所述智能合约钱包的拥有者的账户地址是否相同,得到第一判断结果;
变更单元,所述第一判断结果为相同则更改所述智能合约钱包的拥有者;
哈希值计算单元,所述第一判断结果为不同时,根据所述谜题的提示,调用所述智能合约钱包并根据所述谜题的答案计算哈希值;
第二判断单元,判断所述哈希值与所述钱包合约中存储的哈希值是否相同,得到第二判断结果,所述第二判断结果为相同时则转到所述变更单元;
删除单元,所述智能合约钱包的拥有者更改成功后,删除所述钱包合约中存储的所述谜题。
5.如权利要求4所述的去中心化的智能合约托管钱包的系统,其特征在于,该系统还包括:
添加模块,调用所述钱包管理合约添加所述智能合约钱包;
删除模块,调用所述钱包管理合约删除所述智能合约钱包;
查询模块,调用所述钱包管理合约查询所述智能合约钱包。
6.如权利要求5所述的去中心化的智能合约托管钱包的系统,其特征在于,所述谜题至少为三个,所述答案为原文内容的哈希值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911262970.8A CN111159774B (zh) | 2019-12-11 | 2019-12-11 | 去中心化的智能合约托管钱包的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911262970.8A CN111159774B (zh) | 2019-12-11 | 2019-12-11 | 去中心化的智能合约托管钱包的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111159774A CN111159774A (zh) | 2020-05-15 |
CN111159774B true CN111159774B (zh) | 2022-07-15 |
Family
ID=70556952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911262970.8A Active CN111159774B (zh) | 2019-12-11 | 2019-12-11 | 去中心化的智能合约托管钱包的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111159774B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112583811B (zh) * | 2020-12-09 | 2023-04-14 | 杭州复杂美科技有限公司 | 钱包找回方法、设备和存储介质 |
CN112541764B (zh) * | 2020-12-17 | 2023-11-28 | 成都知道创宇信息技术有限公司 | 基于智能合约的资产管理方法、装置和系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108256866A (zh) * | 2016-12-29 | 2018-07-06 | 陈新 | 数字资产钱包 |
CN108512661A (zh) * | 2018-04-02 | 2018-09-07 | 成都零光量子科技有限公司 | 一种区块链用户私钥的安全防护方法 |
CN109003081A (zh) * | 2018-07-13 | 2018-12-14 | 北京创世智链信息技术研究院 | 一种基于区块链的交易方法及系统 |
CN109118363A (zh) * | 2018-08-14 | 2019-01-01 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 基于区块链的数字货币钱包地址管理方法、装置及设备 |
US20190213584A1 (en) * | 2018-01-11 | 2019-07-11 | Mastercard International Incorporated | Method and system for tokenized replacement of crypto currency addresses |
US20190362340A1 (en) * | 2018-05-25 | 2019-11-28 | Bitfi, Inc. | Secure multiple cryptocurrency wallet and methods of use thereof |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108320154A (zh) * | 2018-02-12 | 2018-07-24 | 北京金山安全软件有限公司 | 一种数字钱包资产保护方法、装置、电子设备及存储介质 |
-
2019
- 2019-12-11 CN CN201911262970.8A patent/CN111159774B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108256866A (zh) * | 2016-12-29 | 2018-07-06 | 陈新 | 数字资产钱包 |
US20190213584A1 (en) * | 2018-01-11 | 2019-07-11 | Mastercard International Incorporated | Method and system for tokenized replacement of crypto currency addresses |
CN108512661A (zh) * | 2018-04-02 | 2018-09-07 | 成都零光量子科技有限公司 | 一种区块链用户私钥的安全防护方法 |
US20190362340A1 (en) * | 2018-05-25 | 2019-11-28 | Bitfi, Inc. | Secure multiple cryptocurrency wallet and methods of use thereof |
CN109003081A (zh) * | 2018-07-13 | 2018-12-14 | 北京创世智链信息技术研究院 | 一种基于区块链的交易方法及系统 |
CN109118363A (zh) * | 2018-08-14 | 2019-01-01 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 基于区块链的数字货币钱包地址管理方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111159774A (zh) | 2020-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11356280B2 (en) | Personal device security using cryptocurrency wallets | |
CN110741600B (zh) | 提供去中心化协议以找回加密资产的计算机实现的系统和方法 | |
CN107342867B (zh) | 签名验签方法和装置 | |
Law et al. | How to make a mint: the cryptography of anonymous electronic cash | |
US8898086B2 (en) | Systems and methods for transmitting financial account information | |
CN100399737C (zh) | 数据保护方法 | |
EP1326368B1 (en) | Device for revocation and updating of tokens in a public key infrastructure | |
KR102404284B1 (ko) | 디지털 마크를 생성하기 위한 시스템 및 방법 | |
EP1322086A2 (en) | Assignment of user certificates/private keys in token enabled public key infrastructure system | |
CN110096903B (zh) | 基于区块链的资产验证方法及区块链网络系统 | |
CZ78798A3 (cs) | Systém a způsob prokázání pravosti dokumentů | |
CN111480172B (zh) | 将加密密钥安全地注册在用于加密密钥的物理介质上的方法和系统,以及所生产的物理介质 | |
JP2005522775A (ja) | 情報保存システム | |
CN106850190A (zh) | 一种对基于区块链数字凭证的销毁方法 | |
CN111159774B (zh) | 去中心化的智能合约托管钱包的方法及系统 | |
US11669833B1 (en) | Blockchain endpoint protection | |
KR100406009B1 (ko) | 각다중화 홀로그램을 이용한 스마트 카드의 위·변조 방지방법 및 시스템 | |
CN111222170B (zh) | 基于公链的区块链电子版证书系统及其存证流程和验证方法 | |
CN114169888A (zh) | 一种通用型支持多重签名的加密货币保管方法 | |
Joshi | Session passwords using grids and colors for web applications and PDA | |
Hasan et al. | " Online Transaction Security Enhancement": An Algorithm Based on Cryptography | |
Farsi | Digital Cash | |
CN113343255B (zh) | 一种基于隐私保护的数据交互方法 | |
CN109145642B (zh) | 基于cpk数字印章的数据存储方法、终端及数据库 | |
EP4181457A1 (en) | Quantum based method and system for performing cryptocurrency asset transactions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |