CN111709727B - 在区块链钱包中保存多重签名的方法和计算机可读存储介质 - Google Patents
在区块链钱包中保存多重签名的方法和计算机可读存储介质 Download PDFInfo
- Publication number
- CN111709727B CN111709727B CN202010417905.4A CN202010417905A CN111709727B CN 111709727 B CN111709727 B CN 111709727B CN 202010417905 A CN202010417905 A CN 202010417905A CN 111709727 B CN111709727 B CN 111709727B
- Authority
- CN
- China
- Prior art keywords
- signature
- party
- blockchain wallet
- wallet
- key
- 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
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明涉及一种在区块链钱包中保存多重签名的方法。多重签名各方各自生成新的密钥对,并基于各自的私钥生成多签信息,并将所述多签信息分别导出到各自的区块链钱包和临时文件。多重签名各方将各自的临时文件和公钥发送给其他方。多重签名各方将多重签名各方的公钥和多签信息一一映射存储为多重签名。本发明还涉及一种计算机可读存储介质。本发明可以让多重签名各方的多重签名信息缓存在区块链钱包当中,而无需单独再使用额外的文件保存多重签名,因此无需签名各方手动导入别人的公钥就能签名交易,因此可以简化交易步骤,从而便于区块链钱包的广泛应用和推广。
Description
技术领域
本发明涉及区块链领域,更具体地说,涉及一种在区块链钱包中保存多重签名的方法和计算机可读存储介质。
背景技术
区块链技术是一种去中心化的分布式互联网数据库,是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。在区块链中,为了保证数据在整个系统中不可篡改,以及保证交易双方的身份真实可靠等原因,需要对交易数据进行签名认证。
在现有的区块链系统中,目前的区块链钱包里面数字货币的存入以及取出都是基于数字签名技术。当从外部往某个账号存入一笔数字货币以后,需要这个账号的私钥来进行签名,才能花费这个账号的数字货币。根据这个账号的类型,私钥需要的数量也不一样。签名的数量也不同。但是现有技术的区块链钱包,均需要额外的文件保存多重签名信息。在交易时,需要签名各方手动导入别人的公钥才能签名交易,因此造成交易步骤繁琐,不利于区块链钱包的广泛应用和推广。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种可以简化交易步骤,从而便于区块链钱包的广泛应用和推广的在区块链钱包中保存多重签名的方法和计算机可读存储介质。
本发明解决其技术问题所采用的技术方案是:构造一种在区块链钱包中保存多重签名的方法,包括以下步骤:
S1、多重签名各方各自生成新的密钥对,并基于各自的私钥生成多签信息,并将所述多签信息分别导出到各自的区块链钱包和临时文件;
S2、多重签名各方将各自的临时文件和公钥发送给其他方;
S3、多重签名各方将多重签名各方的公钥和多签信息一一映射存储为多重签名。
在本发明所述的在区块链钱包中保存多重签名的方法中,所述步骤S1进一步包括:
S11、多重签名各方各自基于椭圆曲线密钥体系生成所述新的密钥对,并在所述区块链钱包中保存私钥;
S12、多重签名各方基于各自的私钥和相同的盐进行哈希运算以生成临时私钥,并基于所述临时私钥根据所述椭圆曲线密钥体系计算所述多签信息;
S13、多重签名各方将所述多签信息分别导出到各自的区块链钱包和临时文件。
在本发明所述的在区块链钱包中保存多重签名的方法中,所述步骤S1进一步包括:
在步骤S11之前,判断多重签名各方的区块链钱包是否能够保存多重签名,如果能执行步骤S11,否则提示所述区块链钱包不能保存多重签名并退出流程。
在本发明所述的在区块链钱包中保存多重签名的方法中,基于以下条件判断所述区块链钱包是否能够保存多重签名:所述区块链钱包是否已经存在交易,所述区块链钱包是否具有花费权限的密钥和所述区块链钱包是否有且仅有一个密钥对。
在本发明所述的在区块链钱包中保存多重签名的方法中,所述步骤S11进一步包括:
S111、多重签名各方各自选取椭圆曲线,并选取椭圆曲线上的一个基点作为通用基点,将椭圆曲线上的标量作为所述私钥,基于所述通用基点和所述私钥做椭圆曲线乘法生成所述方公钥;
S112、采用对称加密算法加密所述私钥;
S113、要求用户输入多重签名阈值。
在本发明所述的在区块链钱包中保存多重签名的方法中,所述步骤S3进一步包括:
S31、多重签名各方将多重签名各方的公钥和多签信息一一映射存储为多重签名;
S32、多重签名各方将所述多重签名、所述多重签名阈值、对称加密算法加密后的私钥以及钱包属性以json格式存储在区块链钱包中。
本发明解决其技术问题采用的另一技术方案是,构造一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现所述的在区块链钱包中保存多重签名的方法。
实施本发明的在区块链钱包中保存多重签名的方法和计算机可读存储介质,通过在区块链钱包中保存多重签名,从而无需签名各方手动导入别人的公钥就能签名交易,因此可以简化交易步骤,从而便于区块链钱包的广泛应用和推广。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明的在区块链钱包中保存多重签名的方法的第一优选实施例的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明涉及一种在区块链钱包中保存多重签名的方法。多重签名各方各自生成新的密钥对,并基于各自的私钥生成多签信息,并将所述多签信息分别导出到各自的区块链钱包和临时文件。多重签名各方将各自的临时文件和公钥发送给其他方。多重签名各方将多重签名各方的公钥和多签信息一一映射存储为多重签名。本发明可以让多重签名各方的多重签名信息缓存在区块链钱包当中,而无需单独再使用额外的文件保存多重签名,因此无需签名各方手动导入别人的公钥就能签名交易,因此可以简化交易步骤,从而便于区块链钱包的广泛应用和推广。
图1是本发明的在区块链钱包中保存多重签名的方法的第一优选实施例的流程图。如图1所示,在步骤S1中多重签名各方各自生成新的密钥对,并基于各自的私钥生成多签信息,并将所述多签信息分别导出到各自的区块链钱包和临时文件。
在本发明的优选实施例中,多重签名各方各自基于椭圆曲线密钥体系生成所述新的密钥对,并在所述区块链钱包中保存私钥。然后多重签名各方基于各自的私钥和相同的盐进行哈希运算以生成临时私钥,并基于所述临时私钥根据所述椭圆曲线密钥体系计算所述多签信息。最后,多重签名各方将所述多签信息分别导出到各自的区块链钱包和临时文件。
在本发明的进一步的优选实施例中,还可以在最开始先对多重签名各方的区块链钱包是否能够保存多重签名进行验证,如果能执行后续步骤,否则提示所述区块链钱包不能保存多重签名并退出流程。当然,验证步骤还可以发生在多重签名各方各自基于椭圆曲线密钥体系生成所述新的密钥对的同时或者之后。优选的基于以下条件判断所述区块链钱包是否能够保存多重签名:所述区块链钱包是否已经存在交易,所述区块链钱包是否具有花费权限的密钥和所述区块链钱包是否有且仅有一个密钥对。
在步骤S2中,多重签名各方将各自的临时文件和公钥发送给其他方。本领域技术人员知悉,在此可以使用任何已知的文件形式,发起方式进行上述发送。在本步骤中,每个多重签名方都将自己的临时文件和公钥发给其他的多重签名方。这样,每个多重签名方都能收到全部的多重签名方的临时文件和公钥。
在步骤S3中,多重签名各方将多重签名各方的公钥和多签信息一一映射存储为多重签名。在本发明的优选实施例中,多重签名各方将多重签名各方的公钥和多签信息一一映射存储为多重签名。然后多重签名各方将所述多重签名、所述多重签名阈值、对称加密算法加密后的私钥以及钱包属性以json格式存储在区块链钱包中。
实施本发明的在区块链钱包中保存多重签名的方法,通过在区块链钱包中保存多重签名,从而无需签名各方手动导入别人的公钥就能签名交易,因此可以简化交易步骤,从而便于区块链钱包的广泛应用和推广。
下面进一步对本发明的具体实施例方式详细说明如下。
以三重签名为例进行说明。假定A,B和C三方为多重签名方。首先分别对A、B和C三方的区块链钱包进行验证,判定其是不是都可以保存多重签名。
通常可以保存多重签名的区块链钱包需要满足以下条件:
区块链钱包不能存在已经存在的交易;
区块链钱包具有花费权限的密钥
区块链钱包必须有且仅有只有一对密钥对。
在本发明中,A、B和C三方各自的密钥对的生成都可以采用基于椭圆曲线密钥体系。如前所述,采用椭圆曲线密钥体系获取会话密钥(,R)。其中r为私钥,R为公钥。即选取椭圆曲线,并选取椭圆曲线上的一个基点G作为通用基点,将椭圆曲线上的标量作为所述私钥;然后基于所述通用基点G和所述私钥做椭圆曲线乘法生成所述公钥。因此R=r*G。其中,G表示椭圆曲线算法中的私钥公钥换算因子。因此可以从私钥r推导出公钥R,但是无法从公钥R推导出私钥r,因此是不可逆的。
在密钥对生成之后,采用对称加密算法加密所述私钥,该对称加密算法可以AES,CHACHA20等。随后可以要求用户输入多重签名阈值。多重签名的阀值用于决定有多少个签名者则交易签名通过。在本实施例中,可以选择阈值为3。
随后,A,B和C三方基于各自的私钥和相同的盐进行哈希运算(Hash(私钥+盐))以生成临时私钥,并基于所述临时私钥根据所述椭圆曲线密钥体系计算所述多签信息。具体的盐值和哈希函数的选择,本领域技术人员可以根据实际需要在任何已知的范围或者函数中选择。
A,B,C三方各自生成各自的多签信息之后,假定A生成多签信息A1,B生成多签信息B1,C生成多签信息C1。A,B,C分别将自己的多签信息导出到自己的区块链钱包和临时文件中。然后多重签名各方将各自的临时文件和公钥发送给其他方。即A将自己的临时文件和公钥发送给B和C。同样的,B将自己的临时文件和公钥发送给A和C,C将自己的临时文件和公钥发送给B和A。这样,多重签名各方都将具有全部的公钥和多签信息。
假定A的公钥为RA,多签信息为A1,B的公钥为RB,多签信息为B1,C的公钥为RC,多签信息为AC。那么,在A,B和C的区块链钱包中,将其均按照键值对存储,即分别将(RA,A),(RB,B)和(RC,C)按照键值对存储。
在本优选实施例中,多重签名各方将所述多重签名、所述多重签名阈值、对称加密算法加密后的私钥以及钱包属性以json格式存储在区块链钱包中,具体保存格式如下:
Keys:表示的是用对称加密算法加密过后的私钥,对称密钥加密过后的私钥会用base58编码形成可视化的字符串
Multisig:表示该钱包属性,0表示不能存储多重签名,1表示能存储多重签名
MultisigThreshold:表示的是多重签名阀值
MultisigSigners:表示多重签名,由多个键值对组成,键为公钥,值为多签信息。
优选地可以将的json信息持久写入区块链钱包的文件中。
实施本发明的在区块链钱包中保存多重签名的方法,通过在区块链钱包中保存多重签名,从而无需签名各方手动导入别人的公钥就能签名交易,因此可以简化交易步骤,从而便于区块链钱包的广泛应用和推广。
本发明解决其技术问题采用的另一技术方案是,构造一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现所述的在区块链钱包中保存多重签名的方法。
实施本发明的计算机可读存储介质,通过在区块链钱包中保存多重签名,从而无需签名各方手动导入别人的公钥就能签名交易,因此可以简化交易步骤,从而便于区块链钱包的广泛应用和推广。
因此,本发明可以通过硬件、软件或者软、硬件结合来实现。本发明可以在至少一个计算机系统中以集中方式实现,或者由分布在几个互连的计算机系统中的不同部分以分散方式实现。任何可以实现本发明方法的计算机系统或其它设备都是可适用的。常用软硬件的结合可以是安装有计算机程序的通用计算机系统,通过安装和执行程序控制计算机系统,使其按本发明方法运行。
本发明还可以通过计算机程序产品进行实施,程序包含能够实现本发明方法的全部特征,当其安装到计算机系统中时,可以实现本发明的方法。本文件中的计算机程序所指的是:可以采用任何程序语言、代码或符号编写的一组指令的任何表达式,该指令组使系统具有信息处理能力,以直接实现特定功能,或在进行下述一个或两个步骤之后实现特定功能:a)转换成其它语言、编码或符号;b)以不同的格式再现。
虽然本发明是通过具体实施例进行说明的,本领域技术人员应当明白,在不脱离本发明范围的情况下,还可以对本发明进行各种变换及等同替代。另外,针对特定情形或材料,可以对本发明做各种修改,而不脱离本发明的范围。因此,本发明不局限于所公开的具体实施例,而应当包括落入本发明权利要求范围内的全部实施方式。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种在区块链钱包中保存多重签名的方法,其特征在于,包括以下步骤:
S1、多重签名各方各自生成新的密钥对,并基于各自的私钥生成多签信息,并将所述多签信息分别导出到各自的区块链钱包和临时文件;
S2、多重签名各方将各自的临时文件和公钥发送给其他方;
S3、多重签名各方将多重签名各方的公钥和多签信息一一映射存储为多重签名;
所述步骤S1进一步包括:S11、多重签名各方各自基于椭圆曲线密钥体系生成所述新的密钥对,并在所述区块链钱包中保存私钥;S12、多重签名各方基于各自的私钥和相同的盐进行哈希运算以生成临时私钥,并基于所述临时私钥根据所述椭圆曲线密钥体系计算所述多签信息;S13、多重签名各方将所述多签信息分别导出到各自的区块链钱包和临时文件。
2.根据权利要求1所述的在区块链钱包中保存多重签名的方法,其特征在于,所述步骤S1进一步包括:
在步骤S11之前,判断多重签名各方的区块链钱包是否能够保存多重签名,如果能执行步骤S11,否则提示所述区块链钱包不能保存多重签名并退出流程。
3.根据权利要求2所述的在区块链钱包中保存多重签名的方法,其特征在于,基于以下条件判断所述区块链钱包是否能够保存多重签名:所述区块链钱包是否已经存在交易,所述区块链钱包是否具有花费权限的密钥和所述区块链钱包是否有且仅有一个密钥对。
4.根据权利要求3所述的在区块链钱包中保存多重签名的方法,其特征在于,所述步骤S11进一步包括:
S111、多重签名各方各自选取椭圆曲线,并选取椭圆曲线上的一个基点作为通用基点,将椭圆曲线上的标量作为所述私钥,基于所述通用基点和所述私钥做椭圆曲线乘法生成所述公钥;
S112、采用对称加密算法加密所述私钥;
S113、要求用户输入多重签名阈值。
5.根据权利要求3所述的在区块链钱包中保存多重签名的方法,其特征在于,所述步骤S3进一步包括:
S31、多重签名各方将多重签名各方的公钥和多签信息一一映射存储为多重签名;
S32、多重签名各方将所述多重签名、所述多重签名阈值、对称加密算法加密后的私钥以及钱包属性以json格式存储在区块链钱包中。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现根据权利要求1-5中任意一项权利要求所述的在区块链钱包中保存多重签名的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010417905.4A CN111709727B (zh) | 2020-05-18 | 2020-05-18 | 在区块链钱包中保存多重签名的方法和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010417905.4A CN111709727B (zh) | 2020-05-18 | 2020-05-18 | 在区块链钱包中保存多重签名的方法和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111709727A CN111709727A (zh) | 2020-09-25 |
CN111709727B true CN111709727B (zh) | 2023-06-06 |
Family
ID=72537569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010417905.4A Active CN111709727B (zh) | 2020-05-18 | 2020-05-18 | 在区块链钱包中保存多重签名的方法和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111709727B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112989436B (zh) * | 2021-03-30 | 2022-04-22 | 广西师范大学 | 一种基于区块链平台的多重签名方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110830256A (zh) * | 2018-08-14 | 2020-02-21 | 珠海金山办公软件有限公司 | 一种文件签名方法、装置、电子设备及可读存储介质 |
CN109728910A (zh) * | 2018-12-27 | 2019-05-07 | 北京永恒纪元科技有限公司 | 一种高效的门限分布式椭圆曲线密钥生成及签名方法和系统 |
-
2020
- 2020-05-18 CN CN202010417905.4A patent/CN111709727B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111709727A (zh) | 2020-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6908700B2 (ja) | 情報保護のためのシステム及び方法 | |
US20210160082A1 (en) | Blockchain transaction method and apparatus | |
CN110089069B (zh) | 用于信息保护的系统和方法 | |
US6341349B1 (en) | Digital signature generating/verifying method and system using public key encryption | |
Yi | Hash function based on chaotic tent maps | |
US10819505B2 (en) | System and method for information protection | |
WO2019092544A1 (en) | System for recording verification keys on a blockchain | |
JP2020502856A5 (zh) | ||
Williamson | The aztec protocol | |
US7000110B1 (en) | One-way function generation method, one-way function value generation device, proving device, authentication method, and authentication device | |
CN111709738A (zh) | 区块链系统中隐藏交易金额的方法、计算机可读存储介质和区块链系统 | |
CN112380584B (zh) | 区块链数据更新方法、装置、电子设备和存储介质 | |
CN113037479B (zh) | 数据验证方法和装置 | |
EP3864794B1 (en) | Linking transactions | |
WO2022076038A1 (en) | Updatable private set intersection | |
Bellare et al. | Deterring certificate subversion: efficient double-authentication-preventing signatures | |
CN110351297B (zh) | 一种应用于区块链的验证方法及装置 | |
CN110557247B (zh) | 基于身份的区块链方法和系统 | |
CN116566626A (zh) | 环签名方法和设备 | |
CN111709727B (zh) | 在区块链钱包中保存多重签名的方法和计算机可读存储介质 | |
CN108011723B (zh) | 入侵回弹的不可拆分数字签名方法 | |
Xu et al. | A generic integrity verification algorithm of version files for cloud deduplication data storage | |
CN107947944B (zh) | 一种基于格的增量签名方法 | |
CN111709739B (zh) | 区块链系统中排除双花的方法、计算机可读存储介质和区块链系统 | |
Brunetta et al. | Code-based zero knowledge PRF arguments |
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 |