CN116248283A - 区块链平台的多重签名方法、多重签名验证方法以及装置 - Google Patents

区块链平台的多重签名方法、多重签名验证方法以及装置 Download PDF

Info

Publication number
CN116248283A
CN116248283A CN202111491150.3A CN202111491150A CN116248283A CN 116248283 A CN116248283 A CN 116248283A CN 202111491150 A CN202111491150 A CN 202111491150A CN 116248283 A CN116248283 A CN 116248283A
Authority
CN
China
Prior art keywords
signature
user
signed
data
signature data
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.)
Pending
Application number
CN202111491150.3A
Other languages
English (en)
Inventor
付博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202111491150.3A priority Critical patent/CN116248283A/zh
Publication of CN116248283A publication Critical patent/CN116248283A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本申请涉及一种区块链平台的多重签名方法、多重签名验证方法以及装置,本申请的多重签名方法在进行多重签名交易时,先获取多重签名交易对应的签名地址,从而确定多重签名交易的签名数据,而后通过本地预存私钥对签名数据中的用户签名数据进行加密覆盖,从而实现多重签名的加密流程,在加密完成后,通过签名用户列表、更新后的已签名用户列表以及签名阈值,来进行区块链上链流程的操作,从而将更新后的签名数据广播到区块链中,本申请可以有效地将多重签名方案应用于区块链中。

Description

区块链平台的多重签名方法、多重签名验证方法以及装置
技术领域
本申请涉及计算机技术领域,特别是涉及一种区块链平台的多重签名方法、多重签名验证方法以及装置。
背景技术
随着计算机技术与网络技术的发展,区块链技术也随之出现并不断发展,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。而在区块链中一般会采用数字签名技术来进行数据资产的加密,数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是在使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。
目前,在数字签名应用中,有时需要多个用户对同一个文件进行签名和认证。比如,一个公司发布的声明中涉及财务部、开发部、销售部、售后服务部等部门,需要得到这些部门签名认可,那么,就需要这些部门对这个声明文件进行签名。能够实现多个用户对同一文件进行签名的数字签名方案称作多重数字签名方案。而目前的多重签名方案无法有效应用于区块链平台中。
发明内容
基于此,有必要针对上述技术问题,提供一种能够有效应用于区块链平台的区块链平台的多重签名方法、多重签名验证方法以及装置。
第一方面,本申请提供了一种区块链平台的多重签名方法。所述方法包括:
获取多重签名交易对应的签名地址;
根据所述签名地址获取签名数据,所述签名数据包括签名用户列表、已签名用户列表、用户签名数据以及签名阈值;
通过本地预存私钥对所述用户签名数据进行加密,获取签名数据加密结果;
将所述用户签名数据加密结果覆盖所述签名数据中用户签名数据,并根据本地预存的用户标识更新所述已签名用户列表,得到更新后的签名数据;
根据所述签名用户列表、更新后的已签名用户列表以及所述签名阈值,对更新后所述签名数据进行区块链上链操作。
第二方面,本申请提供了一种区块链平台的多重签名验证方法。所述方法包括:
获取多重签名交易对应的签名地址;
根据所述签名地址获取已签名用户列表、用户签名数据以及签名阈值;
当所述已签名用户列表的长度与所述签名阈值相等时,根据所述已签名用户列表获取已签名区块公钥;
根据所述已签名区块公钥对所述用户签名数据进行解密,获取所述多重签名交易对应的验证结果。
第三方面,本申请还提供了一种区块链平台的多重签名装置。所述装置包括:
第一地址获取模块,用于获取多重签名交易对应的签名地址;
第一签名数据获取模块,用于根据所述签名地址获取签名数据,所述签名数据包括签名用户列表、已签名用户列表、用户签名数据以及签名阈值;
数据加密模块,用于通过本地预存私钥对所述用户签名数据进行加密,获取签名数据加密结果;
数据更新模块,用于将所述用户签名数据加密结果覆盖所述签名数据中用户签名数据,并根据本地预存的用户标识更新所述已签名用户列表,得到更新后的签名数据;
数据上链模块,用于根据所述签名用户列表、更新后的已签名用户列表以及所述签名阈值,对更新后所述签名数据进行区块链上链操作。
第四方面,本申请还提供了一种区块链平台的多重签名验证装置。所述装置包括:
第二地址获取模块,用于获取多重签名交易对应的签名地址;
第二签名数据获取模块,用于根据所述签名地址获取已签名用户列表、用户签名数据以及签名阈值;
公钥查找模块,用于当所述已签名用户列表的长度与所述签名阈值相等时,根据所述已签名用户列表获取已签名区块公钥;
签名验证模块,用于根据所述已签名区块公钥对所述用户签名数据进行解密,获取所述多重签名交易对应的验证结果。
第五方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取多重签名交易对应的签名地址;
根据所述签名地址获取签名数据,所述签名数据包括签名用户列表、已签名用户列表、用户签名数据以及签名阈值;
通过本地预存私钥对所述用户签名数据进行加密,获取签名数据加密结果;
将所述用户签名数据加密结果覆盖所述签名数据中用户签名数据,并根据本地预存的用户标识更新所述已签名用户列表,得到更新后的签名数据;
根据所述签名用户列表、更新后的已签名用户列表以及所述签名阈值,对更新后所述签名数据进行区块链上链操作。
第六方面,本申请还提供了另一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取多重签名交易对应的签名地址;
根据所述签名地址获取已签名用户列表、用户签名数据以及签名阈值;
当所述已签名用户列表的长度与所述签名阈值相等时,根据所述已签名用户列表获取已签名区块公钥;
根据所述已签名区块公钥对所述用户签名数据进行解密,获取所述多重签名交易对应的验证结果。
第七方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取多重签名交易对应的签名地址;
根据所述签名地址获取签名数据,所述签名数据包括签名用户列表、已签名用户列表、用户签名数据以及签名阈值;
通过本地预存私钥对所述用户签名数据进行加密,获取签名数据加密结果;
将所述用户签名数据加密结果覆盖所述签名数据中用户签名数据,并根据本地预存的用户标识更新所述已签名用户列表,得到更新后的签名数据;
根据所述签名用户列表、更新后的已签名用户列表以及所述签名阈值,对更新后所述签名数据进行区块链上链操作。
第八方面,本申请还提供了另一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取多重签名交易对应的签名地址;
根据所述签名地址获取已签名用户列表、用户签名数据以及签名阈值;
当所述已签名用户列表的长度与所述签名阈值相等时,根据所述已签名用户列表获取已签名区块公钥;
根据所述已签名区块公钥对所述用户签名数据进行解密,获取所述多重签名交易对应的验证结果。
第九方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取多重签名交易对应的签名地址;
根据所述签名地址获取签名数据,所述签名数据包括签名用户列表、已签名用户列表、用户签名数据以及签名阈值;
通过本地预存私钥对所述用户签名数据进行加密,获取签名数据加密结果;
将所述用户签名数据加密结果覆盖所述签名数据中用户签名数据,并根据本地预存的用户标识更新所述已签名用户列表,得到更新后的签名数据;
根据所述签名用户列表、更新后的已签名用户列表以及所述签名阈值,对更新后所述签名数据进行区块链上链操作。
第十方面,本申请还提供了另一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取多重签名交易对应的签名地址;
根据所述签名地址获取已签名用户列表、用户签名数据以及签名阈值;
当所述已签名用户列表的长度与所述签名阈值相等时,根据所述已签名用户列表获取已签名区块公钥;
根据所述已签名区块公钥对所述用户签名数据进行解密,获取所述多重签名交易对应的验证结果。
上述区块链平台的多重签名方法、装置、计算机设备、存储介质和计算机程序产品,其中方法通过在进行多重签名交易时,先获取多重签名交易对应的签名地址,从而确定多重签名交易的签名数据,而后通过本地预存私钥对签名数据中的用户签名数据进行加密覆盖,从而实现多重签名的加密流程,在加密完成后,通过签名用户列表、更新后的已签名用户列表以及签名阈值,来进行区块链上链流程的操作,从而将更新后的签名数据广播到区块链中,本申请可以有效地将多重签名方案应用于区块链中。
上述区块链平台的多重签名验证方法、装置、计算机设备、存储介质和计算机程序产品,其中方法通过在进行多重签名交易的验证时,先获取多重签名交易对应的签名地址,从而确定多重签名交易的签名数据,而在已签名用户列表的长度与签名阈值相等时,识别确定多重签名已完成,即可根据已签名用户列表获取已签名区块公钥;并根据已签名区块公钥对用户签名数据进行解密验证,来获取多重签名交易对应的验证结果,从而有效地在本地对多重签名的数据进行验证,本申请可以有效地将多重签名方案应用于区块链中。
附图说明
图1为一个实施例中分布式系统应用于区块链系统的结构示意图;
图2为一个实施例中区块结构的示意图;
图3为一个实施例中区块链平台的多重签名方法的流程示意图;
图4为一个实施例中进行区块链上链操作步骤的流程示意图;
图5为一个实施例中区块链平台的多重签名验证方法的流程示意图;
图6为一个实施例中查找已签名区块公钥步骤的流程示意图;
图7为一个实施例中对多重签名交易进行验证步骤的流程示意图;
图8为一个实施例中区块链平台的多重签名方法的时序示意图;
图9为另一个实施例中区块链平台的多重签名验证方法的流程示意图;
图10为一个实施例中区块链平台的多重签名装置的结构框图;
图11为一个实施例中区块链平台的多重签名验证装置的结构框图;
图12为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
本申请实施例涉及的系统可以是由客户端、多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)通过网络通信的形式连接形成的分布式系统。
以分布式系统为区块链系统为例,参见图1,图1是本申请实施例提供的分布式系统100应用于区块链系统的一个可选的结构示意图,由多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端、车载终端等)和客户端形成,节点之间形成组成的点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,TransmissionControl Protocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
参见图1示出的区块链系统中各节点的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币;
2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
参见图2,图2是本申请实施例提供的区块结构(Block Structure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
本申请实施例提供的区块链平台的多重签名方法,可以应用于如图1所示的应用环境中。其中,分布式系统100包含多个区块链节点(简称节点)200,这些节点之间相互形成点对点通信,任意一个与用户对应的节点都可以响应用户的操作,执行本申请的区块链平台的多重签名方法。当用户需要进行多重签名时,与用户对应的节点可以从区块链获取待签名数据对应的多重签名请求;确定多重签名请求对应的签名用户列表、已签名用户列表、用户签名数据以及签名阈值;根据签名用户列表、已签名用户列表、用户签名数据以及签名阈值在区块链平台创建多重签名交易,并广播多重签名交易对应的签名地址。而当区块链节点200需要进行多重签名的验证时,则获取多重签名交易对应的签名地址;根据签名地址获取已签名用户列表、用户签名数据以及签名阈值;当已签名用户列表的长度与签名阈值相等时,根据已签名用户列表获取已签名区块公钥;根据已签名区块公钥对用户签名数据进行解密,获取多重签名交易对应的验证结果
在一个实施例中,如图3所示,提供了一种区块链平台的多重签名方法,以该方法应用于图1中的区块链节点200为例进行说明,包括以下步骤:
步骤302,获取多重签名交易对应的签名地址。
其中,多重签名是相对于签名而言的,签名即数字签名,就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。它是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。基于公钥密码体制和私钥密码体制都可以获得数字签名,主要是基于公钥密码体制的数字签名。包括普通数字签名和特殊数字签名。普通数字签名算法有RSA、ElGamal、Fiat-Shamir、Guillou-Quisquarter、Schnorr、Ong-Schnorr-Shamir数字签名算法、Des/DSA,椭圆曲线数字签名算法和有限自动机数字签名算法等。特殊数字签名有盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名、消息恢复功能的签名等,它与具体应用环境密切相关。在现实生活中,一份文件经常需要几个单位或部门分别签字(或盖章)才有效,多重签名技术就是在网络环境里解决这类问题的一种方法,用于同一文档必须经过多人的签名才有效的情形。多重签名通俗地讲就是指多个签名者共同参与对一份电子文档进行签名。多重签名包括签名系统和签名结构,对于签名系统。在一个多重签名体制中,所有参与签名的相对独立而又按一定规则关联的实体的集合,我们称为一个签名系统。签名子系统就是所有签名者的一个子集合。对于签名结构。在一个多重签名体制中,签名系统中的任何一个子系统的各成员按照特定的承接关系对某个文件进行签名,这个承接关系就称为这个签名系统的一个签名结构。可以用有向图来表示签名结构,其中顶点表示参与签名的各实体,有向边表示承接关系,即数据的流向。而签名地址则具体是指本次多重签名交易对应区块链智能合约的合约地址,通过签名地址可以查询到本次多重签名交易对应的具体交易信息。而本申请的多重签名方法具体用于对待签名数据进行数字签名。
在本申请的方案中,区块链中的任意用户都可以根据待签名数据发起“创建多重签名”交易,并指定参与多重签名的其他用户。而后其他用户则可以获取这次多重签名交易对应的签名地址,从而开始进行多重签名。因此,在执行多重签名任务时,需要从区块链中获取到多重签名交易对应的签名地址。
步骤304,根据签名地址获取签名数据,签名数据包括签名用户列表、已签名用户列表、用户签名数据以及签名阈值。
其中,签名数据具体是指本次多重签名相关的所有数据。这些数据由多重签名交易的发起用户进行设置,并可以由后续参与多重签名交易的用户进行修改。签名数据具体包括签名用户列表、已签名用户列表、用户签名数据以及签名阈值等数据,其中签名用户列表有发起多重签名交易的用户设置,用于指定区块链中哪些用户可以参与本次的多重签名交易。如区块链中包含有A、B、C、D、E以及F六个用户,当用户A发起多重签名交易时,其可以通过签名用户列表指定区块链中的[B、C、D]三个用户可以参加本次的多重签名交易,而B、C、D则可以获取多重签名交易对应的签名地址,并开始进行多重签名,并通过自身对应的区块将多重签名的结果数据上链。而E以及F则无法将签名数据上链。已签名用户列表则是用于记录用户签名顺序,以便校验签名。它可以记录已完成多重签名交易的用户,当每个用户完成多重签名交易后,都可以将自己的名字记录在已签名用户列表中。用户签名数据则是用于进行多重签名交易的签名数据。用户签名数据初始由发起多重签名交易的用户设置,具体可以计算待签名数据的哈希值,而后将待签名数据的哈希值作为用户签名数据。而后在每次用户进行多重签名交易时,都可以通过私钥对其进行更新覆盖,得到新的用户签名数据。而签名阈值则是用于限制多重签名交易中涉及的用户数量,如多重签名交易指定[B、C、D、E]四个用户参与本次多重签名交易时,则签名阈值最多可以设置为4。
具体地,当进行区块链平台的多重签名交易时,多重签名交易的创建者可以广播出多重签名交易对应的签名地址,而参与用户可以根据签名地址获取签名数据,依据签名数据来进行多重签名。签名数据具体包括了签名用户列表、已签名用户列表、用户签名数据以及签名阈值,用户可以通过修改其中的部分数据,来完成多重签名交易中自身的签名任务。
步骤306,通过本地预存私钥对用户签名数据进行加密,获取用户签名数据加密结果。
步骤308,将用户签名数据加密结果覆盖签名数据中用户签名数据,并根据本地预存的用户标识更新已签名用户列表,得到更新后的签名数据。
其中,私钥是相对于公钥而言的,是指保留在本地的密钥,私钥加密算法使用单个私钥来加密和解密数据。由于具有密钥的任意一方都可以使用该密钥解密数据,因此必须保护密钥不被未经授权的代理得到。私钥加密又称为对称加密,因为同一密钥既用于加密又用于解密。私钥加密算法非常快(与公钥算法相比),特别适用于对较大的数据流执行加密转换。通常,私钥算法(称为块密码)用于一次加密一个数据块。
具体地,本地区块链节点200在得到签名数据后,即可基于签名数据进行签名。签名主要通过本地预存私钥对用户签名数据进行加密来进行,在通过本地预存私钥对用户签名数据进行加密后,即可得到用户签名数据加密结果。而后使用用户签名数据加密结果覆盖原有的签名数据中的用户签名数据,即可实现当前区块中的多重签名。在其中一个实施例中,本申请的区块链平台的多重签名方法基于RSA算法来进行加解密,RSA算法是一种非对称加密算法,支持公钥加密私钥解密,或私钥加密公钥解密。本申请的方案中主要采用私钥加密公钥解密的方法,可以通过本地的RSA私钥来对用户签名数据进行加密。在用用户签名数据加密结果覆盖签名数据中用户签名数据之后,因为当前的用户已经完成了签名,所以还可以根据本地预存的用户标识更新已签名用户列表,使得已签名用户列表的长度加一,完成操作后既可得到更新后的签名数据。
步骤310,根据签名用户列表、更新后的已签名用户列表以及签名阈值,对更新后签名数据进行区块链上链操作。
在得到更新后的签名数据后,则可以进行签名数据的上链操作,将更新后的签名数据广播到区块链的其他区块,这个过程需要先进行是否允许上链的判断。因此,需要根据签名用户列表、更新后的已签名用户列表以及签名阈值判断当前用户是否具备多重签名的资格,而当用户具备上链资格时,即可对更新后签名数据进行区块链上链操作。
在其中一个实施例中,如图4所示,步骤310具体包括:
步骤401,根据签名阈值以及更新后的已签名用户列表的长度,确定多重签名交易的交易进程状态。
步骤403,当多重签名交易的交易进程状态为交易中、且本地预存用户标识在签名用户列表中时,对更新后签名数据进行区块链上链操作。
具体地,签名阈值是指多重签名交易涉及到用户数量,当多重签名交易中的参与用户数量达到签名阈值,可以视为已完成多重签名,此后多重签名数据将不可修改,因此,在签名数据上链时,需要先根据签名阈值以及更新后的已签名用户列表的长度,确定多重签名交易的交易进程状态,确定多重签名交易是否完成,当多重签名交易的交易进程状态为交易中,还需要判断当前用户是否在多重签名发起者所设置的签名用户列表中,是否为多重签名的指定参与者,只有更新后的已签名用户列表的长度未达到签名阈值,且本地预存用户标识在签名用户列表中时,才可以确定当前用户具有多重签名的资格,此时可以将其对应的签名数据上链。
在其中一个实施例中,本申请的多重签名方法还包括多重签名交易的创建流程,区块链中的任意账户都可以发起“创建多重签名”交易,发起签名的客户端在获取到用户对待签名数据的多重签名请求后;则可以确定多重签名请求对应的签名用户列表、已签名用户列表、用户签名数据以及签名阈值;而后根据签名用户列表、已签名用户列表、用户签名数据以及签名阈值在区块链平台创建多重签名交易,并向区块链中的其他区块广播多重签名交易对应的签名地址。
上述区块链平台的多重签名方法,其中方法通过在进行多重签名交易时,先获取多重签名交易对应的签名地址,从而确定多重签名交易的签名数据,而后通过本地预存私钥对签名数据中的用户签名数据进行加密覆盖,从而实现多重签名的加密流程,在加密完成后,通过签名用户列表、更新后的已签名用户列表以及签名阈值,来进行区块链上链流程的操作,从而将更新后的签名数据广播到区块链中,本申请可以有效地将多重签名方案应用于区块链中。
在其中一个实施例中,本申请还提供了一种区块链平台的多重签名验证方法,以该方法应用于图1中的区块链节点200为例进行说明,如图5所示,包括以下步骤:
步骤502,获取多重签名交易对应的签名地址。
步骤504,根据签名地址获取已签名用户列表、用户签名数据以及签名阈值。
其中,签名解密的流程与签名加密的流程相对应,加密过程是通过密钥对数据进行加密得到密文,而解密则是通过密钥对密文进行解密,得到原始的数据。签名地址具体是指本次多重签名交易对应区块链智能合约的合约地址,通过签名地址可以查询到本次多重签名交易对应的具体交易信息。其中用于数字签名解密过程中的数据具体包括了已签名用户列表、用户签名数据以及签名阈值。其中,已签名用户列表中记录了已参与多重签名的所有用户的身份标识信息。用户签名数据为通过已签名用户列表中所有用户进行加密后的密文数据。而签名阈值则用于限定参与多重签名的用户数量。
具体地,在完成多重签名之后,当用户需要进行多重签名的解密时,同样需要从区块链平台中,获取到需要解密的多重签名交易对应的签名地址。并基于签名地址从区块链中得到多重签名的签名数据,取已签名用户列表、用户签名数据以及签名阈值。其中,签名用户列表和签名阈值可以用于判断多重签名是否已经完成。而用户签名数据则用于解密还原至原先的数据。
步骤506,当已签名用户列表的长度与签名阈值相等时,根据已签名用户列表获取已签名区块公钥。
其中,已签名用户列表的长度与签名阈值相等表明当前多重签名交易中多有的用户都参与并完成了自身的多重签名交易任务,并将签名后的结果上链,此时可以执行多重签名的解密任务。已签名用户列表中记录了用户标识,可以根据用户标识来获取用户地址,从而获取已签名区块公钥。公钥与是私钥对应,公钥已被公布在区块链中,区块链中的所有用户都能查询到某个确定用户的公钥。
具体地,在得到已签名用户列表、用户签名数据以及签名阈值后,首先需要进行多重签名流程的判别,需要通过已签名用户列表与签名阈值来判断多重签名交易是否完成。已签名用户列表的长度即为参与多重签名交易的用户人数,当已签名用户列表的长度与签名阈值相等时说明多重签名交易已经完成。此时,可以根据已签名用户列表获取不同已签名用户对应的已签名区块公钥。而后基于这些已签名区块公钥来进行多重签名的解密验证工作。在其中一个实施例中,用户通过RSA私钥来进行用户签名数据的加密覆盖,此时,可以通过RSA公钥来进行用户签名数据的解密。
步骤508,根据已签名区块公钥对用户签名数据进行解密,获取多重签名交易对应的验证结果。
其中,验证结果具体是指验证本地待签名数据与解密所得的用户签名数据是否对应。在多重签名任务创建时,创建者根据待签名数据来计算出初始的用户签名数据,而后多重签名的过程中,每个用户完成一次签名后,都会使用自己的本地预存私钥对获得的用户签名数据进行覆盖加密,因此在完成多重签名后,签名数据中用户签名数据被加密的次数与已签名用户列表中的用户数量相等。因此在解密过程中也需要通过已签名区块公钥对用户签名数据进行多次解密,得到最终的解密数据,而后通过将解密数据与待签名数据进行比对,获取最终的验证结果。
具体地,由于在本申请的方案中,具体通过不对称加密的加密方法对用户签名数据进行多重签名加密,因此在加密时,通过各个用户本地预存私钥对用户签名数据进行依次加密。而解密时,则需要获取到签名的所有用户对应的公钥来进行解密。在据已签名用户列表获取到所有用户的已签名区块公钥,则可以依照已签名用户列表的用户属性,对用户签名数据进行解密得到解密数据,而后基于解密数据来进行多重签名交易的验证,得到对应的验证结果。
上述区块链平台的多重签名验证方法,其中方法通过在进行多重签名交易的验证时,先获取多重签名交易对应的签名地址,从而确定多重签名交易的签名数据,而在已签名用户列表的长度与签名阈值相等时,识别确定多重签名已完成,即可根据已签名用户列表获取已签名区块公钥;并根据已签名区块公钥对用户签名数据进行解密验证,来获取多重签名交易对应的验证结果,从而有效地在本地对多重签名的数据进行验证,本申请可以有效地将多重签名方案应用于区块链中。
在其中一个实施例中,如图6所示,步骤506包括:
步骤601,逆序依次获取已签名用户列表中的用户标识。
步骤603,根据用户标识获取区块地址。
步骤605,根据区块地址查找已签名用户列表中用户对应的已签名区块公钥。
其中,用户标识用于进行用户区块地址的识别,可以根据用户标识在区块链平台进行查找,确定已签名用户列表中各个用户的区块地址。
具体地,在进行已签名区块公钥查找时,需要基于用户的区块地址,从用户对应的区块中读取到已被公开的已签名区块公钥。此时可以先逆序依次获取已签名用户列表中的用户标识。由于在进行多重签名时,越后签名的用户位于已签名用户列表的越后面,因此其加密顺序也在越后面,而解密时的顺序则跟加密时相反,越早加密的越后解密。因此逆序依次获取已签名用户列表中的用户标识,而后根据用户标识获取区块地址;而后根据区块地址查找已签名用户列表中用户对应的已签名区块公钥,最后根据已签名区块公钥对用户签名数据按顺序进行依次解密,得到最终的解密签名数据。而在另一个实施例中,则可以顺序依次获取已签名用户列表中的用户标识,并获得顺序的已签名区块公钥,而后根据顺序的已签名区块公钥逆序对用户签名数据进行解密。得到最终的解密签名数据。本实施例中,通过逆序获取用户标识以及区块地址,而后一次进行解密,可以有效地对用户签名数据进行解密,保证解密过程的准确性,从而保证多重签名交易对应的验证结果的有效性。
在其中一个实施例中,如图7所示,步骤508包括:
步骤702,根据已签名用户列表中用户对应的已签名区块公钥,依次对用户签名数据进行解密,获取解密签名数据。
步骤704,对本地待签名数据进行哈希运算,获取签名数据哈希结果。
步骤706,当签名数据哈希结果与解密签名数据相同时,确定多重签名交易对应的验证结果为验证成功。
其中,哈希运算主要用于信息摘要运算。在创建多重签名交易时,创建者会根据多重签名交易对应的待签名数据进行哈希运算创建得到用户签名数据,因此在进行多重签名验证时,也需要验证最终的用户签名数据是否可以还原为待签名数据的哈希值。
具体地,在进行解密验证时,首先需要进行用户签名数据的解密。此时,具体可以根据已签名用户列表中用户对应的已签名区块公钥,而后依次对用户签名数据进行解密,获取解密签名数据。在解密完成后即可进行多重签名的验证,验证具体可以对本地待签名数据进行哈希运算,获取本地待签名数据对应的签名数据哈希结果,如果签名数据哈希结果与解密签名数据相同,说明多重签名的过程没有出错,所得的用户签名数据为多重签名后的正常数据。而若是签名数据哈希结果与解密签名数据不相同,这说明多重签名过程存在错误,此时可以向区块链平台中的其他区块通告错误。本实施例中,通过签名数据哈希结果与解密签名数据来进行多重签名交易对应流程的验证,可以有效对多重签名交易流程的有效性进行验证,保证多重签名过的顺利进行。
本申请还提供一种应用场景,该应用场景应用上述的区块链平台的多重签名方法以及区块链平台的多重签名验证方法。具体地,该区块链平台的多重签名方法及验证方法在该应用场景的应用如下:
当用户需要开展一项区块链平台的多方授权任务时,需要基于该多方授权任务进行多重签名,因此用户可以通过自身所在的区块发起多方授权对应的多重签名交易。多重签名交易过程的时序图具体可以参照图8所示,如图8所示,多方授权的参与人具体包括了用户A、B以及C三人,用户A可以在区块链网络中发起“创建多重签名”交易,但是在这之前,用户A需要先进行多重签名所用到的签名数据的设置,具体包括了设置签名用户列表、用户签名数据以及签名阈值,此外,还可以包括一张空的已签名用户列表。首先根据参与人来设置签名用户列表,长度为N,此时设置为3,即[A,B,C],而后设置用户签名数据的数据字段,其具体可以根据待签名数据(多方授权数据)进行哈希运算获取。而后设置签名阈值,若未设置则默认为2,此处设置签名阈值M=N即设置签名阈值为3。同时,在已签名用户列表中添加用户A,此时已签名用户列表为[A]。设置完毕后即可向区块链平台的区块链网络发布多重签名交易。区块链网络在接收到多重签名交易的发起请求后,确认此次交易,而后得到签名地址(合约地址)。而后用户B在进行这次多方授权的处理时,可以先根据签名地址获取签名数据中的用户签名数据,而后通过用户B对应的本地预存私钥对用户签名数据进行加密覆盖,得到新的用户签名数据,而后在已签名用户列表中添加用户B,此时已签名用户列表为[A,B]。而后将更新后的签名数据执行上链操作,在区块链网络确认交易后,即可执行后续的签名。而后用户C执行用户B的操作,用户C通过本地预存私钥对用户B更新后的用户签名数据进行加密覆盖,得到新的用户签名数据,并已签名用户列表中添加用户C,此时已签名用户列表为[A,B,C]。而后区块链网络在识别到已签名用户列表为[A,B,C],其长度等于签名阈值后,判断本次多重签名交易已完成,此后多重签名数据将不可修改。而在多重签名交易完成后,即可进行多重签名交易的验证工作,用户A,B,C都可以发起多重签名交易的验证,多重签名交易的验证流程具体可以参照图9所示,其中,需要执行区块首先同步区块链的最新数据,而后基于多重签名交易的签名地址,获得签名数据,包括已签名用户列表、用户签名数据以及签名阈值等。而后判断已签名用户列表的长度与签名阈值是否相等,当两者相等时,即可确定多重签名交易已经完成,可以进行验证,若不相等则结束验证流程。在进行验证时,先逆序获取已签名用户列表的用户标识,当还有已签名用户的用户标识时,根据用户标识查找用户地址(用户所在区块的地址),并根据用户地址得到已签名区块公钥,并通过已签名区块公钥来对数据进行解密覆盖,而当不存在已签名用户的用户标识时,说明已经全部解密完成,此时最终得到的用户签名数据即为最终的解密签名数据。此时可以进行验证。先本地计算出多方授权数据的哈希值,而后判断该哈希值与解密签名数据是否相同,如果相同,说明校验成功,多重签名交易没有问题。而若是不相同,则说明校验失败,多重签名交易出现了问题。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的区块链平台的多重签名方法的区块链平台的多重签名装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个区块链平台的多重签名装置实施例中的具体限定可以参见上文中对于区块链平台的多重签名方法的限定,在此不再赘述。
在一个实施例中,如图10所示,提供了一种区块链平台的多重签名装置,包括:
第一地址获取模块1001,用于获取多重签名交易对应的签名地址。
第一签名数据获取模块1003,用于根据签名地址获取签名数据,签名数据包括签名用户列表、已签名用户列表、用户签名数据以及签名阈值。
数据加密模块,用于通过本地预存私钥对用户签名数据进行加密,获取签名数据加密结果1005。
数据更新模块1007,用于将用户签名数据加密结果覆盖签名数据中用户签名数据,并根据本地预存的用户标识更新已签名用户列表,得到更新后的签名数据。
数据上链模块1009,用于根据签名用户列表、更新后的已签名用户列表以及签名阈值,对更新后签名数据进行区块链上链操作。
上述区块链平台的多重签名装置,通过在进行多重签名交易的验证时,先获取多重签名交易对应的签名地址,从而确定多重签名交易的签名数据,而在已签名用户列表的长度与签名阈值相等时,识别确定多重签名已完成,即可根据已签名用户列表获取已签名区块公钥;并根据已签名区块公钥对用户签名数据进行解密验证,来获取多重签名交易对应的验证结果,从而有效地在本地对多重签名的数据进行验证,本申请可以有效地将多重签名方案应用于区块链中。
在其中一个实施例中,数据上链模块1009具体用于:根据签名阈值以及更新后的已签名用户列表的长度,确定多重签名交易的交易进程状态;当多重签名交易的交易进程状态为交易中、且本地预存用户标识在签名用户列表中时,对更新后签名数据进行区块链上链操作。
在一个实施例中,如图11所示,提供了一种区块链平台的多重签名验证装置,包括:
第二地址获取模块1102,用于获取多重签名交易对应的签名地址。
第二签名数据获取模块1104,用于根据签名地址获取已签名用户列表、用户签名数据以及签名阈值。
公钥查找模块1106,用于当已签名用户列表的长度与签名阈值相等时,根据已签名用户列表获取已签名区块公钥。
签名验证模块1108,用于根据已签名区块公钥对用户签名数据进行解密,获取多重签名交易对应的验证结果。
上述区块链平台的多重签名验证装置,通过在进行多重签名交易的验证时,先获取多重签名交易对应的签名地址,从而确定多重签名交易的签名数据,而在已签名用户列表的长度与签名阈值相等时,识别确定多重签名已完成,即可根据已签名用户列表获取已签名区块公钥;并根据已签名区块公钥对用户签名数据进行解密验证,来获取多重签名交易对应的验证结果,从而有效地在本地对多重签名的数据进行验证,本申请可以有效地将多重签名方案应用于区块链中。
在其中一个实施例中,公钥查找模块1106具体用于:逆序依次获取已签名用户列表中的用户标识;根据用户标识获取区块地址;根据区块地址查找已签名用户列表中用户对应的已签名区块公钥。
在其中一个实施例中,签名验证模块1108具体用于:根据已签名用户列表中用户对应的已签名区块公钥,依次对用户签名数据进行解密,获取解密签名数据;对本地待签名数据进行哈希运算,获取签名数据哈希结果;当签名数据哈希结果与解密签名数据相同时,确定多重签名交易对应的验证结果为验证成功。
上述区块链平台的多重签名装置以及区块链平台的多重签名验证装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图12所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储轨迹图像数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种区块链平台的多重签名方法或者一种区块链平台的多重签名验证方法。
本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种区块链平台的多重签名方法,其特征在于,所述方法包括:
获取多重签名交易对应的签名地址;
根据所述签名地址获取签名数据,所述签名数据包括签名用户列表、已签名用户列表、用户签名数据以及签名阈值;
通过本地预存私钥对所述用户签名数据进行加密,获取用户签名数据加密结果;
将所述用户签名数据加密结果覆盖所述签名数据中用户签名数据,并根据本地预存的用户标识更新所述已签名用户列表,得到更新后的签名数据;
根据所述签名用户列表、更新后的已签名用户列表以及所述签名阈值,对更新后所述签名数据进行区块链上链操作。
2.根据权利要求1所述的方法,其特征在于,所述根据所述签名用户列表、更新后的已签名用户列表以及所述签名阈值,对更新后所述签名数据进行区块链上链操作包括:
根据所述签名阈值以及更新后的已签名用户列表的长度,确定多重签名交易的交易进程状态;
当所述多重签名交易的交易进程状态为交易中、且本地预存用户标识在所述签名用户列表中时,对更新后所述签名数据进行区块链上链操作。
3.一种区块链平台的多重签名验证方法,其特征在于,所述方法包括:
获取多重签名交易对应的签名地址;
根据所述签名地址获取已签名用户列表、用户签名数据以及签名阈值;
当所述已签名用户列表的长度与所述签名阈值相等时,根据所述已签名用户列表获取已签名区块公钥;
根据所述已签名区块公钥对所述用户签名数据进行解密,获取所述多重签名交易对应的验证结果。
4.根据权利要求1所述的方法,其特征在于,所述根据所述已签名用户列表获取已签名区块公钥包括:
逆序依次获取所述已签名用户列表中的用户标识;
根据所述用户标识获取区块地址;
根据所述区块地址查找所述已签名用户列表中用户对应的已签名区块公钥。
5.根据权利要求4所述的方法,其特征在于,所述根据所述已签名区块公钥对所述用户签名数据进行解密,获取所述多重签名交易对应的验证结果包括:
根据所述已签名用户列表中用户对应的已签名区块公钥,依次对所述用户签名数据进行解密,获取解密签名数据;
对本地待签名数据进行哈希运算,获取签名数据哈希结果;
当所述签名数据哈希结果与所述解密签名数据相同时,确定所述多重签名交易对应的验证结果为验证成功。
6.一种区块链平台的多重签名装置,其特征在于,所述方法包括:
第一地址获取模块,用于获取多重签名交易对应的签名地址;
第一签名数据获取模块,用于根据所述签名地址获取签名数据,所述签名数据包括签名用户列表、已签名用户列表、用户签名数据以及签名阈值;
数据加密模块,用于通过本地预存私钥对所述用户签名数据进行加密,获取签名数据加密结果;
数据更新模块,用于将所述用户签名数据加密结果覆盖所述签名数据中用户签名数据,并根据本地预存的用户标识更新所述已签名用户列表,得到更新后的签名数据;
数据上链模块,用于根据所述签名用户列表、更新后的已签名用户列表以及所述签名阈值,对更新后所述签名数据进行区块链上链操作。
7.一种区块链平台的多重签名验证装置,其特征在于,所述装置包括:
第二地址获取模块,用于获取多重签名交易对应的签名地址;
第二签名数据获取模块,用于根据所述签名地址获取已签名用户列表、用户签名数据以及签名阈值;
公钥查找模块,用于当所述已签名用户列表的长度与所述签名阈值相等时,根据所述已签名用户列表获取已签名区块公钥;
签名验证模块,用于根据所述已签名区块公钥对所述用户签名数据进行解密,获取所述多重签名交易对应的验证结果。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
CN202111491150.3A 2021-12-08 2021-12-08 区块链平台的多重签名方法、多重签名验证方法以及装置 Pending CN116248283A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111491150.3A CN116248283A (zh) 2021-12-08 2021-12-08 区块链平台的多重签名方法、多重签名验证方法以及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111491150.3A CN116248283A (zh) 2021-12-08 2021-12-08 区块链平台的多重签名方法、多重签名验证方法以及装置

Publications (1)

Publication Number Publication Date
CN116248283A true CN116248283A (zh) 2023-06-09

Family

ID=86624713

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111491150.3A Pending CN116248283A (zh) 2021-12-08 2021-12-08 区块链平台的多重签名方法、多重签名验证方法以及装置

Country Status (1)

Country Link
CN (1) CN116248283A (zh)

Similar Documents

Publication Publication Date Title
US10824701B2 (en) System and method for mapping decentralized identifiers to real-world entities
EP3788522B1 (en) System and method for mapping decentralized identifiers to real-world entities
CN107403303B (zh) 一种基于区块链存证的电子合同系统的签署方法
CN112215608B (zh) 数据处理方法和装置
CN109478279B (zh) 区块链实现的方法和系统
CN111242617B (zh) 用于执行交易正确性验证的方法及装置
CN110881063B (zh) 一种隐私数据的存储方法、装置、设备及介质
CN110096903B (zh) 基于区块链的资产验证方法及区块链网络系统
CN110599163B (zh) 一种面向区块链交易监管的交易记录外包方法
CN110601855B (zh) 一种根证书管理方法、装置及电子设备、存储介质
CN111815321A (zh) 交易提案的处理方法、装置、系统、存储介质和电子装置
CN114710370B (zh) 基于雾区块链和属性加密的细粒度访问控制方法及系统
CN111488372A (zh) 一种数据处理方法、设备及存储介质
CN114666064B (zh) 基于区块链的数字资产管理方法、装置、存储介质及设备
CN111552950B (zh) 一种软件授权方法、装置及计算机可读存储介质
CN113362065A (zh) 一种基于分散式私钥的在线签名交易实现方法
CN113869901B (zh) 密钥生成方法、装置、计算机可读存储介质及计算机设备
CN112163917B (zh) 基于区块链的票据处理方法、装置、介质及电子设备
CN116248283A (zh) 区块链平台的多重签名方法、多重签名验证方法以及装置
JP2021148850A (ja) 情報処理システム、情報処理方法、情報処理プログラム、秘密計算システム、秘密計算方法、及び、秘密計算プログラム
CN115599773B (zh) 分布式资源转移方法、装置、系统与计算机设备
CN117473557B (zh) 一种可信设置方法及装置
CN118118178A (zh) 基于区块链的数字资源处理方法、装置和计算机设备
CN118101203A (zh) 区块链底层链数据处理方法、装置、系统和计算机设备
CN118282644A (zh) 密钥托管方法、装置、设备、存储介质及产品

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40086897

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination