CN111062716B - 生成区块链签名数据的方法及装置、区块链交易发起系统 - Google Patents
生成区块链签名数据的方法及装置、区块链交易发起系统 Download PDFInfo
- Publication number
- CN111062716B CN111062716B CN201911202654.1A CN201911202654A CN111062716B CN 111062716 B CN111062716 B CN 111062716B CN 201911202654 A CN201911202654 A CN 201911202654A CN 111062716 B CN111062716 B CN 111062716B
- Authority
- CN
- China
- Prior art keywords
- blockchain
- signature
- block chain
- data
- public
- 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
- 238000000034 method Methods 0.000 title claims abstract description 68
- 230000000977 initiatory effect Effects 0.000 title claims abstract description 54
- 238000007726 management method Methods 0.000 claims description 50
- 238000012795 verification Methods 0.000 claims description 30
- 238000013524 data verification Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- 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)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本说明书实施例提供了一种生成区块链签名数据的方法及装置、区块链交易发起系统。所述方法包括:从业务服务器接收待上链交易数据,所述待上链交易数据包括用户的交易数据和第一数字签名,所述第一数字签名是使用用户的密钥装置中的第一私钥对所述交易数据进行加密得到的,所述交易数据包括用户标识信息;利用对应于所述用户标识信息的区块链公私钥对中的区块链私钥对所述待上链交易数据进行加密以得到区块链签名,所述区块链公私钥对是在所述区块链身份管理服务器处生成的;以及将区块链签名数据发送给所述业务服务器,所述区块链签名数据包括所述区块链签名和所述用户的区块链身份标识。
Description
技术领域
本说明书实施例涉及区块链技术领域,具体地,涉及生成区块链签名数据的方法及装置、区块链交易发起系统。
背景技术
在区块链的某些应用场景下,需要使用参与方所拥有的密钥装置中的链上公私钥对来对交易数据进行认证,同时还需要利用对应于参与方链上身份的公私钥对来对交易数据进行签名授权。例如,在某些涉及银行的应用场景中,需要利用银行为其用户发行的密钥装置(如Ukey)来对每一笔交易进行认证。然而,参与方所拥有的密钥装置的发行主体各不相同,各发行主体所采用的密码学算法也会存在差异,并且对应于链上公私钥的密钥算法也会存在差异。因此,需要一种技术来使各参与方能够顺利地参与到区块链中。
发明内容
鉴于上述,本说明书实施例提供了一种生成区块链签名数据的方法及装置、区块链交易发起系统。
根据本说明书实施例的一个方面,提供了一种用于生成区块链签名数据的方法,所述方法由区块链身份管理服务器执行,所述方法包括:从业务服务器接收待上链交易数据,所述待上链交易数据包括用户的交易数据和第一数字签名,所述第一数字签名是使用用户的密钥装置中的第一私钥对所述交易数据进行加密得到的,所述交易数据包括用户标识信息;利用对应于所述用户标识信息的区块链公私钥对中的区块链私钥对所述待上链交易数据进行加密以得到区块链签名,所述区块链公私钥对是在所述区块链身份管理服务器处生成的;以及将区块链签名数据发送给所述业务服务器,所述区块链签名数据包括所述区块链签名和所述用户的区块链身份标识。
可选的,在一个示例中,在利用对应于所述用户标识信息的区块链公私钥对中的区块链私钥对所述待上链交易数据进行加密以得到区块链签名之前,所述方法还可以包括:基于所述用户标识信息,确定与所述第一私钥对应的第一公钥;利用所述第一公钥对所述第一数字签名进行验证。利用对应于所述用户标识信息的区块链公私钥对中的区块链私钥对所述待上链交易数据进行加密以得到区块链签名可以包括:在所述第一数字签名验证通过时,利用对应于所述用户标识信息的区块链公私钥对中的区块链私钥对所述待上链交易数据进行加密以得到区块链签名。
可选的,在一个示例中,所述区块链公私钥对的数量可以为至少两个,利用所述用户的区块链公私钥对中的区块链私钥对所述待上链交易数据进行加密以得到区块链签名可以包括:利用所述至少两个公私钥对中的至少一个区块链私钥对所述待上链交易数据进行加密,以得到区块链签名集合,所述区块链签名数据包括所述区块链签名集合。
可选的,在一个示例中,所述区块链签名数据还可以包括所述至少一个区块链私钥所对应的区块链公钥。
可选的,在一个示例中,所述区块链签名数据还可以包括对所述待上链交易数据进行加密所使用的签名算法信息。
根据本说明书实施例的另一方面,还提供一种用于生成区块链签名数据的装置,所述位于区块链身份管理服务器处,所述装置包括:待上链交易数据接收单元,从业务服务器接收待上链交易数据,所述待上链交易数据包括用户的交易数据和第一数字签名,所述第一数字签名是使用用户的密钥装置中的第一私钥对所述交易数据进行加密得到的,所述交易数据包括用户标识信息;区块链签名生成单元,利用对应于所述用户标识信息的区块链公私钥对中的区块链私钥对所述待上链交易数据进行加密以得到区块链签名,所述区块链公私钥对是在所述区块链身份管理服务器处生成的;以及区块链签名数据发送单元,将区块链签名数据发送给所述业务服务器,所述区块链签名数据包括所述区块链签名和所述用户的区块链身份标识。
可选的,在一个示例中,所述装置还可以包括:第一公钥确定单元,在利用对应于所述用户标识信息的区块链公私钥对中的区块链私钥对所述待上链交易数据进行加密以得到区块链签名之前,基于所述用户标识信息,确定与所述第一私钥对应的第一公钥;第一数字签名验证单元,利用所述第一公钥对所述第一数字签名进行验证。区块链签名生成单元在所述第一数字签名验证通过时,利用对应于所述用户标识信息的区块链公私钥对中的区块链私钥对所述待上链交易数据进行加密以得到区块链签名。
可选的,在一个示例中,所述区块链公私钥对的数量可以为至少两个,所述区块链签名生成单元可以利用所述至少两个公私钥对中的至少一个区块链私钥对所述待上链交易数据进行加密,以得到区块链签名集合,所述区块链签名数据包括所述区块链签名集合。
根据本说明书实施例的另一方面,还提供一种区块链交易发起系统,包括:区块链身份管理服务器,所述区块链身份管理装置包括如上所述的装置;业务服务器,所述业务服务器包括:交易数据发送单元,将用户的交易数据发送给业务签名认证系统,以由所述业务签名认证系统使用所述用户的密钥装置中的第一私钥对所述交易数据进行签名而得到第一数字签名;第一数据签名获取单元,从所述业务签名认证系统获取所述第一数字签名;待上链交易数据发送单元,将所述待上链交易数据发送给所述区块链身份管理服务器;区块链签名数据获取单元,从所述区块链身份管理服务器获取区块链签名数据;以及区块链交易数据发送单元,将所述区块链签名数据和所述待上链交易数据发送给区块链交易发起服务器,以及区块链交易发起服务器,所述区块链交易发起服务器包括:区块链交易数据获取单元,从所述业务服务器获取所述区块链签名数据和所述待上链交易数据;区块链签名数据验证单元,利用对应于所述区块链签名数据中的区块链身份标识的公钥对所述区块链签名数据进行验证;以及区块链交易发起单元,在所述区块链签名数据验证通过时,基于所述区块链签名数据和所述待上链交易数据发起区块链交易。
可选的,在一个示例中,所述区块链公私钥对的数量可以为至少两个,所述区块链签名数据包括利用所述至少两个区块链公私钥对中的至少一个区块链私钥得到的区块链签名数据集合,所述区块链交易发起服务器还可以包括:公钥获取单元,基于所述区块链签名数据集合获取所述至少一个区块链私钥所对应的至少一个区块链公钥;以及公钥验证单元,基于预定公钥验证规则,对所述至少一个区块链公钥进行验证,区块链签名数据验证单元在所述至少一个区块链公钥验证通过时,利用所述至少一个区块链公钥对所述区块链签名数据进行验证。
可选的,在一个示例中,所述公钥获取单元可以基于所述区块链签名数据集合,利用对所述待上链交易数据进行签名的签名算法,从所述区块链签名数据集合中还原出所述至少一个区块链公钥。
可选的,在一个示例中,所述区块链签名数据还可以包括所述至少一个区块链公钥,所述公钥获取单元从所述区块链签名数据中获取所述至少一个区块链公钥。
可选的,在一个示例中,所述少两个区块链公私钥对中的区块链公钥可以具有公钥权重,所述公钥验证单元可以基于所述至少一个区块链公钥的公钥权重和预定权重阈值,对所述至少一个区块链公钥进行验证。
可选的,在一个示例中,所述区块链交易发起服务器处可以存储有所述用户的区块链公钥集合,所述公钥验证单元可以基于所述至少一个区块链公钥和所述区块链公钥集合,对所述至少一个区块链公钥进行验证。
根据本说明书实施例的另一方面,还提供一种计算设备,包括:至少一个处理器;以及存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的方法。
根据本说明书实施例的另一方面,还提供一种非暂时性机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如上所述的方法。
利用本说明书实施例的方法、装置和系统,通过在区块链身份管理服务器处生成用户的区块链公私钥对,在获取到待上链交易数据时,利用在区块链身份管理服务器处生成的私钥对待上链交易数据进行加密以得到区块链签名,从而能够独立地管理用户的区块链私钥,因而不仅能够使参与方能够顺利参与到区块链系统中,还能够提高区块链交易数据生成过程的安全性。
附图说明
通过参照下面的附图,可以实现对于本说明书实施例内容的本质和优点的进一步理解。在附图中,类似组件或特征可以具有相同的附图标记。附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本说明书实施例的实施例,但并不构成对本说明书实施例的实施例的限制。在附图中:
图1示出了可用于执行根据本说明书实施例的实施例的用于生成区块链签名数据的方法的环境的示例的示意图;
图2示出了执行根据本说明书实施例的实施例的用于生成区块链签名数据的方法的系统架构的示例的示意图;
图3是用于说明根据本说明书的一个实施例的区块链交易发起系统的图;
图4是根据本说明书的一个实施例的用于生成区块链签名数据的方法的流程图;
图5是根据本说明书的另一实施例的用于生成区块链签名数据的方法中的第一签名数据验证过程和区块链签名生成过程的流程图;
图6是根据本说明书的一个实施例的区块链签名数据生成装置的结构框图;
图7是根据本说明书的一个实施例的业务服务器的结构框图;
图8是根据本说明书的一个实施例的区块链交易发起服务器的结构框图;
图9是根据本说明书的一个实施例的用于实现用于生成区块链签名数据的方法的计算设备的结构框图。
具体实施方式
以下将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本说明书实施例内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
现在结合附图来描述本说明书实施例的生成区块链签名数据的方法及装置、区块链交易发起系统。
区块链是一种按照时间顺序来将数据区块顺序相连组合而成的链式数据结构,并且以密码学方式保证数据区块不可篡改和不可伪造。区块链包括一个或多个区块。区块链中的每个区块通过包括该区块链中紧接其之前的前一个区块的加密散列而链接到该前一个区块。每个区块还包括时间戳、该区块的加密哈希以及一个或多个交易(transaction)。对已经被区块链网络的节点验证的交易进行哈希处理并形成Merkle树。在Merkle树中,对叶节点处的数据进行哈希处理,并且针对Merkle树的每个分支,在该分支的根处级联该分支的所有哈希值。针对Merkle树执行上述处理,直到整个Merkle树的根节点。Merkle树的根节点存储代表该Merkle树中的所有数据的哈希值。当一个哈希值声称是Merkle树中存储的交易时,可以通过判断该哈希值是否与Merkle树的结构一致来进行快速验证。
区块链是用于存储交易的数据结构。区块链网络是用于管理、更新和维护一个或多个区块链结构的计算节点网络。如上所述,区块链网络可以包括公有区块链网络、私有区块链网络或联盟区块链网络。
在公有区块链网络中,共识过程由共识网络的节点控制。例如,在公有区块链网络中可以存在成千上万个实体协作处理,每个实体操作该公有区块链网络中的至少一个节点。因此,公有区块链网络可以被认为是参与实体的公有网络。在一些示例中,大多数实体(节点)必须按序对每个区块进行签名,并且将签名后的区块添加到区块链网络的区块链中。公有区块链网络的示例可以包括特定对等支付网络。此外,术语“区块链”不特别指代任何特定的区块链。
公有区块链网络支持公有交易。公有交易在公有区块链网络内的所有节点之间共享,并且存储在全局区块链中。全局区块链是指跨所有节点复制的区块链。为了达成共识(例如,同意向区块链添加区块),在公有区块链网络内实现共识协议。共识协议的示例包括但不限于:工作量证明(POW,proof-of-work),权益证明(POS,proof-of-stake)和权威证明(POA,proof-of-authority)。在本说明书实施例中,采用POW作为非限制性示例。
私有区块链网络被提供来用于特定实体。私有区块链网络中的各个节点的读写权限被严格控制。因此,私有区块链网络通常也称为许可网络,其对允许谁参与网络以及的网络参与水平(例如,仅在某些交易情形下)进行限制。在私有区块链网络中,可以使用各种类型的访问控制机制(例如,现有参与方对添加新实体进行投票,监管机构控制许可等)。
联盟区块链网络在参与实体之间是私有的。在联盟区块链网络中,共识过程由授权节点控制。例如,由若干个(例如,10个)实体(例如,金融机构,保险公司)组成的联盟可以操作联盟区块链网络,每个实体操作该联盟区块链网络中的至少一个节点。因此,联盟区块链网络可以被认为是参与实体的私有网络。在一些示例中,每个参与实体(节点)必须按序对每个区块进行签名,并将该区块添加到区块链。在一些示例中,可以由参与实体(节点)的子集(例如,至少7个实体)来对每个区块进行签名,并将该区块添加到区块链。
在本说明书实施例中参考联盟区块链网络来详细描述本说明书实施例的实施例。然而,可以预期,本说明书实施例的实施例可以在任何适合的区块链网络中实现。
区块链是防篡改的共享数字分类账,其在公有或私有对等网络中记录交易。分类帐被分发到网络中的所有成员节点,并且网络中发生的资产交易历史记录被永久记录在区块中。
共识机制确保分布式区块链网络中的所有网络节点按照相同的顺序执行交易,并且随后写入相同的分类账。共识模型旨在解决拜占庭问题。在拜占庭问题中,分布式区块链网络中的比如服务器或网络节点的组件可能会出现故障,或者故意向其他节点传播错误的信息。由于其他网络节点需要首先就哪个网络节点首先失败达成共识,从而其他网络节点很难将该组件声明失败并将其排除出区块链网络。
图1示出了可用于执行根据本说明书实施例的实施例的用于生成区块链签名数据的方法的环境100的示例的示意图。在一些示例中,环境100使得实体能够参与区块链网络102。如图1所示,环境100包括网络104、和计算设备/系统106、108。在一些示例中,网络104可以包括局域网(LAN),广域网(WAN),因特网或其组合,并且连接网站、用户设备(例如,计算设备)和后端系统。在一些示例中,可以通过有线和/或无线通信链路来访问网络104。在一些示例中,计算设备/系统106、108通过网络104相互通信,以及通过网络104实现与区块链网络102之间的通信,以及区块链网络102中的节点(或,节点设备)通过网络104来进行通信。通常,网络104表示一个或多个通信网络。在一些情况下,计算设备/系统106、108可以是云计算系统(未示出)的节点,或者每个计算设备/系统106、108可以是单独的云计算系统,其包括通过网络104互连的多个计算机并且用作分布式处理系统。
在所说明的示例中,计算设备/系统106、108中的每个可以包括能够参与作为区块链网络102中的节点的任何合适的计算系统。计算设备/系统的示例包括但不限于,服务器,台式计算机,笔记本电脑,平板电脑设备和智能手机等。在一些示例中,计算设备/系统106、108上可以安装有用于与区块链网络102交互的一个或多个计算机实现的服务。例如,计算设备/系统106可以上可以安装有第一实体(例如,用户A)的服务,比如,第一实体用于管理其与一个或多个其他实体(例如,其他用户)的交易的交易管理系统。计算设备/系统108可以上可以安装有第二实体(例如,用户B)的服务,比如,第二实体用于管理其与一个或多个其他实体(例如,其他用户)的交易的交易管理系统。在图1的示例中,区块链网络102被表示为节点的对等网络,并且计算设备/系统106、108分别作为参与区块链网络102的第一实体和第二实体的节点。
图2示出了执行根据本说明书实施例的实施例的用于生成区块链签名数据的方法的系统架构200的示例的示意图。系统架构200的示例包括分别与参与方A,参与方B和参与方C对应的参与方系统202、204、206。每个参与方(例如,用户,企业)参与被提供来作为对等网络的区块链网络212。区块链网络212包括多个节点214,其中,节点214中的至少一些节点在区块链216中记录信息,并且所记录的信息不可更改。尽管在区块链网络212内示意性地示出了单个区块链216,但是可以提供区块链216的多个副本,并且在区块链网络212中维护多个副本,如稍后详细描述的。
在所示出的示例中,每个参与方系统202、204、206分别由参与方A,参与方B和参与方C提供,或者被提供来作为参与方A,参与方B和参与方C,并且充当区块链网络212内的对应节点214。如这里所使用的,节点通常是指连接到区块链网络212的单个系统(例如,计算机,服务器),并且使得相应的参与方能够参与区块链网络。在图2示出的示例中,参与方对应于每个节点214。然而,一个参与方可以操作区块链网络212内的多个节点214,和/或多个参与方可以共享单个节点214。在一些示例中,参与方系统202、204、206使用协议(例如,超文本传输协议安全(HTTPS))和/或使用远程过程调用(RPC)来与区块链网络212通信,或者通过区块链网络212进行通信。
节点214在区块链网络212的参与度可以不同。例如,一些节点214可以参与共识过程(例如,作为将区块添加到区块链216的矿工节点),而其他节点214不参与共识过程。作为另一示例,一些节点214存储区块链216的完整副本,而其他节点214仅存储区块链216的部分副本。在图2的示例中,参与方系统202、204、206各自存储区块链216的完整副本216'、216”、216”'。
区块链(例如,图2中的区块链216)由一连串的区块组成,每个区块存储数据。数据的示例可以包括表示两个或更多参与方之间的交易的交易数据。在本说明书实施例中,交易被使用来作为非限制性示例,可以预期的是,任何适当的数据都可以存储在区块链中(例如,文档,图像,视频,音频)。交易的示例可以包括但不限于交换有价值的东西(例如,资产,产品,服务和货币等)。交易数据被不可更改地存储在区块链中。
在存储在区块中之前,对交易数据进行哈希处理。哈希处理是将(作为字符串数据提供的)交易数据转换为固定长度的哈希值(也被作为字符串数据提供)的过程。通过对交易数据进行哈希处理后,即使交易数据出现轻微更改,也会导致得到完全不同的哈希值。哈希值通常是通过使用哈希函数来对交易数据进行哈希处理而生成的。哈希函数的示例包括但不限于安全散列算法(SHA)-256,其输出256比特的哈希值。
多个交易的交易数据可以在被哈希化之后存储在区块中。例如,对两个交易数据进行哈希处理得到两个哈希值,然后,对所得到的两个哈希值再次进行哈希处理以得到另一哈希值。重复该过程,直到对于要存储在区块中的所有交易,得到单个哈希值。该哈希值被称为Merkle根哈希,并且被存储在区块的头部。任何交易的更改都会导致其哈希值发生变化,最终导致Merkle根哈希值发生变化。
通过共识协议来将区块添加到区块链中。区块链网络中的多个节点参与共识协议,并且经过竞争之后将区块添加到区块链中。这样的节点被称为矿工节点(或记账节点)。以上介绍的POW用作非限制性示例。
矿工节点执行共识过程来将交易(所对应的区块)添加到区块链。虽然多个矿工节点参与共识过程,但只有一个矿工节点可以将区块写入区块链。也就是说,矿工节点在共识过程中竞争以将其区块添加到区块链中。更详细地,矿工节点周期性地从交易池中收集待处理的交易(例如,直到达到在区块中可以包括的交易数量的预定限制,如果有的话)。交易池包括来自区块链网络中的参与方的交易消息。矿工节点创建区块,并将交易添加到区块中。在将交易添加到区块之前,矿工节点检查待添加的交易中是否存在区块链的区块中具有的交易。如果该交易已被添加到另一个区块中,则该交易将被丢弃。
矿工节点生成区块头,对区块中的所有交易进行哈希处理,并且成对地组合哈希值以生成进一步的哈希值,直到针对区块中的所有交易得到单个哈希值(Merkle根哈希)。然后,将Merkle根哈希添加到区块头中。矿工还确定区块链中的最新区块(即,添加到区块链的最后一个区块)的哈希值。矿工节点还可以在区块头中添加随机数值(noune值)和时间戳。在挖掘过程中,矿工节点尝试找到满足所需参数的哈希值。矿工节点不断更改nonce值,直到找到满足所需参数的哈希值。
区块链网络中的每个矿工都试图找到满足所需参数的哈希值,并且以这种方式彼此竞争。最终,一个矿工节点找到满足所需参数的哈希值,并将该哈希值通告给区块链网络中的所有其他矿工节点。其他矿工节点验证哈希值,如果确定为正确,则验证区块中的每个交易,接受该区块,并将该区块附加到它们的区块链副本中。以这种方式,区块链的全局状态在区块链网络内的所有矿工节点上达成一致。上述过程是POW共识协议。
在图2所提供的示例中,参与方A想要向参与方B发送一定数量的资金。参与方A生成交易消息,并将交易消息发送到区块链网络,该交易消息被增加到交易池中。区块链网络中的每个矿工节点创建区块,并从交易池中获取交易,并将交易添加到区块。按照这种方式,参与方A所发布的交易被添加到矿工节点的区块中。
在一些区块链网络中,实施密码技术来维护交易的隐私性。例如,如果两个节点想要保持交易私密性,使得区块链网络中的其他节点不能获悉交易细节,则节点可以对交易数据进行加密处理。加密方法的示例包括但不限于对称加密和非对称加密。对称加密是指使用单个密钥进行加密(根据明文生成密文)和解密(根据密文生成明文)的加密过程。在对称加密中,多个节点可以使用相同的密钥,因此每个节点都可以对交易数据进行加密/解密。
非对称加密是指使用密钥对来进行加密。每个密钥对包括私钥和公钥,私钥仅对于相应节点是已知的,并且公钥对于区块链网络中的任何或所有其他节点是已知的。节点可以使用另一个节点的公钥来加密数据,并且可以使用其他节点的私钥来解密经过加密的数据。例如,再次参考图1。参与方A可以使用参与方B的公钥来加密数据,并将加密数据发送给参与方B.参与方B可以使用其私钥来解密加密数据(密文)并提取原始数据(明文)。使用节点的公钥加密的消息,只能使用该节点的私钥解密。
非对称加密用于提供数字签名,这使得交易中的参与方能够确认交易中的其他参与方以及交易的有效性。例如,节点可以对消息进行数字签名,而另一个节点可以根据参与方A的数字签名确认消息是由该节点发送的。数字签名还可以用于确保消息在传输过程中不被篡改。例如,再次参考图1。参与方A将向参与方B发送消息。参与方A生成消息的哈希值,然后使用其私钥对哈希值进行加密来生成数字签名。参与方A将该数字签名附加到消息,并将具有数字签名的消息发送给参与方B。参与方B使用参与方A的公钥解密数字签名,从而解密出对应的哈希值。参与方B对所接收的消息进行哈希处理以得到另一哈希值,然后比较两个哈希值。如果哈希值相同,则参与方B可以确认该消息确实来自参与方A,并且未被篡改。
图3是用于说明根据本说明书的一个实施例的区块链交易发起系统的图。
如图3所示,区块链交易发起系统320包括区块链身份管理服务器321、业务服务器322和区块链交易发起服务器。
当用户想要发起交易时,可以将交易数据发送至业务服务器322,例如用户可以在业务服务器322所对应的业务平台中填写交易数据,交易数据例如可以包括交易金额、交易对象、结算所使用的银行账号等信息。业务服务器322在获取到交易数据时,可以在P302,将交易数据发送给业务签名认证系统310,以由业务签名认证系统对交易数据进行认证。
业务签名认证系统310例如可以是银行账号所对应的网银系统。在其它应用场景中,还可以是任意用于对交易数据进行签名认证的系统。作为示例,业务服务器322将交易数据发送给网银系统之后,网银系统可以将交易数据生成网银交易工单,并交易数据显示在网银页面上。然后网银系统可将该网银页面所对应的网址信息发送给业务服务器,以由业务服务器将对应页面网址展示在业务平台中。用户可以通过业务平台所展示的页面地址访问该网银页面,从而确认展示在网银页面上的交易数据是否正确。当确认交易数据正确时,用户可以向其所使用的计算设备提供银行为其发行的密钥装置,从而可以利用密钥装置中的私钥对交易数据进行加密以生成第一数字签名。用户的密钥装置是用于对用户身份进行认证并对交易数据进行签名的装置。在密钥装置中存储有对应于业务签名认证系统的公私钥对。密钥装置例如可以是Ukey。当业务签名认证系统是其它系统时,密钥装置还可以是任意其它形式的密钥装置。
在生成第一数字签名之后,在P304,业务签名认证系统310将第一数字签名数据发送给业务服务器322。然后,业务服务器322可以将第一签名数据和交易数据组装成待上链交易数据,并在P306,将待上链交易数据发送给区块链发送给区块链身份管理服务器321。
在接收到待上链交易数据之后,区块链身份管理服务器321对待上链交易数据进行签名以生成区块链交易签名。生成区块链交易签名的过程将在下文参照图4和图5进行说明。然后,在P308,区块链身份管理服务器321将包括所生成的区块链交易签名和用户的区块链身份标识的区块链交易签名数据发送给业务服务器322。
业务服务器322在接收到区块链交签名数据之后,在P310,将区块链签名数据和待上链交易数据发送给区块链交易发起服务器323。在接收到区块链签名数据和待上链交易数据之后,区块链交易发起服务器323基于所接收到的区块链交易签名数据和待上链交易数据发起区块链交易。区块链交易发起服务器323可以位于如图2所示的节点214处。在一个示例中,区块链交易发起服务器323可以包括智能合约单元。区块链交易发起服务器323在对区块链交易签名数据进行验证后,可以将待上链交易数据中的交易数据发送给智能合约单元,以由智能合约单元来执行相应交易。
图3中的各个服务器的结构将在下文参照附图进行说明。接下来,参照图4和图5来说明区块链身份管理服务器321所执行的区块链签名数据生成方法。
图4是根据本说明书的一个实施例的用于生成区块链签名数据的方法的流程图。
在块420,从业务服务器接收待上链交易数据,待上链交易数据包括用户的交易数据和第一数字签名。第一数字签名是使用用户的密钥装置中的第一私钥对交易数据进行加密得到的。第一数字签名可以是如图3所示的业务签名认证服务器所生成的。第一私钥例如可以是Ukey中的私钥。
交易数据包括用户标识信息,用户标识信息可以是交易发起方信息或用户银行账号等任意能够唯一地标识用户的信息。在一个示例中,交易数据中可以包括用户在业务平台中注册的身份标识。
在获取到待上链交易数据之后,在块440,利用对应于用户标识信息的区块链公私钥对中的区块链私钥,对待上链交易数据进行加密以得到区块链签名。区块链公私钥对是在区块链身份管理服务器处生成的。
作为示例,在用户注册区块链身份时,业务签名认证系统可以将密钥装置标识信息发送给区块链身份管理服务器。密钥装置标识信息可以包括密钥装置中与第一私钥对应的第一公钥,还可以包括密钥装置序列号等。例如,网银系统可以将用于接入区块链交易发起系统的申请作为交易来由用户进行确认,用户确认交易数据正确时,可以提供Ukey。然后Ukey可以将其中的第一公钥、Ukey序列号等发送给网银系统,进行网银系统可以将所获取到的第一公钥、Ukey序列号等标识信息发送给区块链身份管理服务器。然后,区块链身份管理服务器可以对应于所接收到的密钥装置标识信息来生成区块链身份标识来作为用户在区块链中进行交易的身份标识,并生成区块链公私钥对以作为用户在区块链中进行交易所使用的公私钥对。在一个示例中,区块链身份管理服务器可以基于密钥装置标识信息来生成区块链身份标识和区块链公私钥对。在另一示例中,区块链身份管理服务器可以随机生成字符串,然后基于所生成的字符串来生成区块链身份管理服务器和区块链公私钥对。
区块链身份管理服务器所生成的区块链公私钥对中的区块链公钥以及区块链身份标识可以发送给区块链交易发起服务器。区块链交易发起服务器还可以将区块链身份标识和区块链公钥发送给区块链系统中的其它区块链节点,以完成区块链身份注册。区块链身份管理服务器所生成的区块链公私钥对中的区块链私钥被存储在区块链身份管理服务器中。由于该区块链私钥是在区块链身份管理服务器处生成的,因而不会被任何其它实体获知,增强了区块链私钥的安全性。
在生成区块链交易签名之后,在块460,将区块链签名数据发送给业务服务器,区块链签名数据包括区块链签名和用户的区块链身份标识。业务服务器在接收到区块链签名数据之后,可以将区块链签名数据和待上链交易数据发送给区块链交易发起服务器,以发起区块链交易。
通过该实施例,业务服务器作为业务数据的收发主体,而对业务的签名授权由区块链身份管理服务器来执行,从而将业务数据的收发过程和对业务数据的签名授权分散到不同的实体来执行。由此,能够避免业务服务器在转发业务数据的过程中作恶,因而能够降低信息风险并能提高区块链交易签名数据生成过程的安全性。
在一个示例中,用户的区块链公私钥对数量可以为至少两个。此时,可以利用至少两个公私钥对中的至少一个区块链私钥对待上链交易数据进行加密,以得到区块链签名集合。然后,可以将区块链签名集合和区块链身份标识作为区块链签名数据发送给业务服务器。例如,可以在用户申请注册区块链身份时,为用户生成至少两个区块链公私钥对。当接收到待上链交易数据时,可以利用一个或多个区块链私钥分别对待上链交易数据进行加密,以得到一个或多个区块链签名,并将各个区块链签名组装成区块链签名集合。
各个区块链公私钥对可以具有权重。区块链身份管理服务器可以根据预定策略来选取用于进行签名的区块链公私钥对。各个区块链公私钥对中的公钥可以具有与区块链公私钥对对应的公钥权重。在该示例中,发送给业务服务器的区块链签名数据还可以包括用于生成区块链签名数据集合的至少一个区块链私钥所对应的区块链公钥,以用于区块链交易发起服务器进行区块链签名验证。
区块链交易发起服务器在对区块链签名进行验证时,需要使用生成区块链签名所使用的加密算法。在一个示例中,可以预先约定加密算法并告知区块链交易发起服务器。在另一示例中,所使用的加密算法可以不是固定的。此时,区块链签名数据还可以包括对待上链交易数据进行加密所使用的签名算法信息,以用于区块链交易发起服务器进行区块链签名验证。在另一示例中,还可以由区块链身份管理服务器将加密算法信息发送给区块链发起服务器。
图5是根据本说明书的另一实施例的用于生成区块链签名数据的方法中的第一签名数据验证过程和区块链签名生成过程的流程图。
如图5所示,在块520,基于用户标识信息,确定与第一私钥对应的第一公钥。在用户申请注册区块链身份时,可以将用户身份标识和第一公钥发送给区块链身份管理服务器。区块链身份管理服务器可以存储用户标识与第一公钥之间的索引信息。当接收到待上链交易数据时,可以从待上链交易数据中的交易数据中获取用户标识信息,并基于用户标识信息和索引信息来获取第一公钥。在另一示例中,当区块链身份管理服务器接收到交易数据时,可以基于用户标识信息向业务签名认证系统请求第一公钥。在另一示例中,业务签名认证系统可以将第一公钥随第一数字签名发送给业务服务器,然后业务服务器可以将第一公钥随第一数字签名发送给区块链身份管理服务器。
然后,在块540,利用第一公钥对第一数字签名进行验证,并在块560,判断第一数字签名是否验证通过。
当第一数字签名验证通过时,在块560,利用对应于用户标识信息的区块链公私钥对中的区块链私钥对待上链交易数据进行加密以得到区块链签名。
通过该实施例,在生成区块链签名之前首先对第一数字签名进行验证,从而能够在生成区块链签名之前对用户身份进行验证,进一步提高交易安全性。
图6是根据本说明书的一个实施例的区块链签名数据生成装置的结构框图。如图6所示,区块链签名数据生成装置600包括待上链交易数据接收单元610、第一公钥确定单元620、第一数字签名验证单元630、区块链签名生成单元640和区块链签名数据发送单元650。
待上链交易数据接收单元610从业务服务器接收待上链交易数据。待上链交易数据包括用户的交易数据和第一数字签名,交易数据包括用户标识信息。第一数字签名是使用用户的密钥装置中的第一私钥对所述交易数据进行加密得到的。在接收到待上链交易数据时,第一公钥确定单元620基于用户标识信息,确定与第一私钥对应的第一公钥。然后,第一数字签名验证单元630利用第一公钥对第一数字签名进行验证。
在第一数字签名验证通过时,区块链签名生成单元620利用对应于用户标识信息的区块链公私钥对中的区块链私钥对待上链交易数据进行加密以得到区块链签名。区块链公私钥对是在区块链身份管理服务器处生成的。生成区块链签名之后,区块链签名数据发送单元650将区块链签名数据发送给业务服务器,区块链签名数据包括区块链签名和用户的区块链身份标识。
在另一个示例中,区块链签名数据生成装置可以不包括第一公钥确定单元和第一数字签名验证单元。在该示例中,区块链签名生成单元640可以在接收到待上链交易数据时,利用对应于用户标识信息的区块链公私钥对中的区块链私钥对待上链交易数据进行加密以得到区块链签名。
在一个示例中,区块链公私钥对的数量可以为至少两个,区块链签名生成单元可以利用至少两个公私钥对中的至少一个区块链私钥对待上链交易数据进行加密,以得到区块链签名集合,区块链签名数据包括区块链签名集合。
图7是根据本说明书的一个实施例的业务服务器的结构框图。如图7所示,业务服务器700包括交易数据发送单元710、第一数据签名获取单元720、待上链交易数据发送单元730、区块链签名数据获取单元740和区块链交易数据发送单元750。
交易数据发送单元710将用户的交易数据发送给业务签名认证系统,以由业务签名认证系统使用用户的密钥装置中的第一私钥对交易数据进行签名而得到第一数字签名。业务签名认证系统在生成第一数字签名之后可以将第一数字签名发送给业务服务器。然后,第一数据签名获取单元720从业务签名认证系统获取第一数字签名。在获取第一数字签名之后,待上链交易数据发送单元730将包括第一数字签名和交易数据的待上链交易数据发送给区块链身份管理服务器。
区块链身份管理服务器可以包括如上所述的区块链签名数据生成装置,从而可以利用区块链签名数据生成装置来生成区块链签名数据,并把所生成的区块链签名数据发送给业务服务器。然后,区块链签名数据获取单元740从区块链身份管理服务器获取区块链签名数据。在获取到区块链签名数据之后,区块链交易数据发送单元750将区块链签名数据和待上链交易数据发送给区块链交易发起服务器,以由区块链交易发起服务器发起区块链交易。
图8是根据本说明书的一个实施例的区块链交易发起服务器的结构框图。如图8所示,区块链交易发起服务器800包括区块链交易数据获取单元810、公钥获取单元820、公钥验证单元830、区块链签名数据验证单元840和区块链交易发起单元850。
区块链交易数据获取单元810从业务服务器获取区块链签名数据和待上链交易数据。在该示例中,区块链公私钥对的数量可以为至少两个。区块链签名数据可以包括利用至少两个区块链公私钥对中的至少一个区块链私钥得到的区块链签名数据集合。公钥获取单元820可以基于区块链签名数据集合获取至少一个区块链私钥所对应的至少一个区块链公钥。区块链签名数据集合中的各个区块链签名所对应的公钥可以被包括在区块链签名数据中发送给业务服务器,然后由业务服务器发送给区块链交易发起服务器。从而公钥获取单元820可以从区块链签名数据中获取各个公钥。在另一示例中,公钥获取单元820可以利用用于生成区块链签名的签名算法从区块链签名数据集合中的各个区块链签名中还原出各个区块链公钥。签名算法可以从区块链交易发起服务器处获取。在一个示例中,区块链签名数据中可以包括签名算法信息,从而区块链交易发起服务器可以利用签名算法信息所指示的签名算法来还原公钥。
在获取到各个区块链签名所对应的区块链公钥之后,公钥验证单元830基于预定验证规则,对至少一个区块链公钥进行验证。各个区块链公私钥对中的区块链公钥可以具有公钥权重。公钥验证单元830可以在各个公钥的公钥权重之和不低于预定阈值时确定公钥证验通过。在另一示例中,用户的各个区块链公私钥对中的各个区块链公钥可以以公钥集合的形式存储在区块链交易发起服务器处。公钥验证单元820可以基于所获到的至少一个区块链公钥和区块链公钥集合来验证该至少一个区块链公钥。例如,可以在区块链签名集合所对应的区块链公钥的数量不低于预定数量,并且各个区块链公钥均被包括在本地存储的公钥集合中时,确定公钥验证通过。区块链签名数据验证单元840在至少一个区块链公钥验证通过时,利用至少一个区块链公钥对区块链签名数据进行验证。在区块链签名数据验证通过时,区块链交易发起单元850基于区块链签名数据和待上链交易数据发起区块链交易。
在另一示例中,用户可以具有一个区块链公私钥对,该区块链公私钥对中的区块链公钥可以存储在区块链交易发起服务器处。此时,区块链交易发起服务器可以不包括公钥获取单元和公钥验证单元。区块链签名数据验证单元820可以利用对应于区块链签名数据中的区块链身份标识的公钥对区块链签名数据进行验证。
以上参照图1到图8,对根据本说明书实施例的生成区块链签名数据的方法及装置、区块链交易发起系统的实施例进行了描述。在以上对方法实施例的描述中所提及的细节,同样适用于本说明书实施例的装置的实施例。
本说明书实施例的生成区块链签名数据的装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见。
本说明书实施例的生成区块链签名数据的装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将存储器中对应的计算机程序指令读取到内存中运行形成的。在本说明书实施例中,生成区块链签名数据的装置例如可以利用计算设备实现。
图9是根据本说明书的一个实施例的用于实现用于生成区块链签名数据的方法的计算设备的结构框图。如图9所示,计算设备900包括处理器910、存储器920、内存930、通信接口940和内部总线950,并且处理器910、存储器(例如,非易失性存储器)920、内存930、通信接口940经由总线550连接在一起。根据一个实施例,计算设备900可以包括至少一个处理器910,该至少一个处理器910执行在计算机可读存储介质(即,存储器920)中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
在一个实施例中,在存储器920中存储计算机可执行指令,其当执行时使得至少一个处理器910:从业务服务器接收待上链交易数据,所述待上链交易数据包括用户的交易数据和第一数字签名,所述第一数字签名是使用用户的密钥装置中的第一私钥对所述交易数据进行加密得到的,所述交易数据包括用户标识信息;利用对应于所述用户标识信息的区块链公私钥对中的区块链私钥对所述待上链交易数据进行加密以得到区块链签名,所述区块链公私钥对是在所述区块链身份管理服务器处生成的;以及将区块链签名数据发送给所述业务服务器,所述区块链签名数据包括所述区块链签名和所述用户的区块链身份标识。
应该理解,在存储器620中存储的计算机可执行指令当执行时使得至少一个处理器910进行本说明书实施例的各个实施例中以上结合图4-6描述的各种操作和功能。
根据一个实施例,提供了一种例如非暂时性机器可读介质的程序产品。非暂时性机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书实施例的各个实施例中以上结合图4-6描述的各种操作和功能。
具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本发明的一部分。
可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD-RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
上述各流程和各系统结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,或者,有些单元可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
以上结合附图详细描述了本说明书实施例的实施例的可选实施方式,但是,本说明书实施例的实施例并不限于上述实施方式中的具体细节,在本说明书实施例的实施例的技术构思范围内,可以对本说明书实施例的实施例的技术方案进行多种简单变型,这些简单变型均属于本说明书实施例的实施例的保护范围。
本说明书实施例内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本说明书实施例内容。对于本领域普通技术人员来说,对本说明书实施例内容进行的各种修改是显而易见的,并且,也可以在不脱离本说明书实施例内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本说明书实施例内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。
Claims (16)
1.一种用于生成区块链签名数据的方法,所述方法由区块链身份管理服务器执行,所述方法包括:
从业务服务器接收待上链交易数据,所述待上链交易数据包括用户的交易数据和第一数字签名,所述第一数字签名是使用用户的密钥装置中的第一私钥对所述交易数据进行加密得到的,所述交易数据包括用户标识信息,所述交易数据是由所述业务服务器获取到的;
利用对应于所述用户标识信息的区块链公私钥对中的区块链私钥对所述待上链交易数据进行加密以得到区块链签名,所述区块链公私钥对是在所述区块链身份管理服务器处生成的;以及
将区块链签名数据发送给所述业务服务器,以使所述业务服务器将所述区块链签名数据和所述待上链交易数据发送给区块链交易发起服务器来发起区块链交易,所述区块链签名数据包括所述区块链签名和所述用户的区块链身份标识,
其中,所述区块链公私钥对是所述区块链身份管理服务器基于密钥装置标识信息生成的,所述密钥装置标识信息包括所述密钥装置中与所述第一私钥对应的第一公钥和密钥装置序列号。
2.如权利要求1所述的方法,其中,在利用对应于所述用户标识信息的区块链公私钥对中的区块链私钥对所述待上链交易数据进行加密以得到区块链签名之前,所述方法还包括:
基于所述用户标识信息,确定与所述第一私钥对应的第一公钥;
利用所述第一公钥对所述第一数字签名进行验证,
利用对应于所述用户标识信息的区块链公私钥对中的区块链私钥对所述待上链交易数据进行加密以得到区块链签名包括:
在所述第一数字签名验证通过时,利用对应于所述用户标识信息的区块链公私钥对中的区块链私钥对所述待上链交易数据进行加密以得到区块链签名。
3.如权利要求1所述的方法,其中,所述区块链公私钥对的数量为至少两个,利用所述用户的区块链公私钥对中的区块链私钥对所述待上链交易数据进行加密以得到区块链签名包括:
利用至少两个区块链公私钥对中的至少一个区块链私钥对所述待上链交易数据进行加密,以得到区块链签名集合,所述区块链签名数据包括所述区块链签名集合。
4.如权利要求3所述的方法,其中,所述区块链签名数据还包括所述至少一个区块链私钥所对应的区块链公钥。
5.如权利要求1所述的方法,其中,所述区块链签名数据还包括对所述待上链交易数据进行加密所使用的签名算法信息。
6.一种用于生成区块链签名数据的装置,位于区块链身份管理服务器处,所述装置包括:
待上链交易数据接收单元,从业务服务器接收待上链交易数据,所述待上链交易数据包括用户的交易数据和第一数字签名,所述第一数字签名是使用用户的密钥装置中的第一私钥对所述交易数据进行加密得到的,所述交易数据包括用户标识信息,所述交易数据是由所述业务服务器获取到的;
区块链签名生成单元,利用对应于所述用户标识信息的区块链公私钥对中的区块链私钥对所述待上链交易数据进行加密以得到区块链签名,所述区块链公私钥对是在所述区块链身份管理服务器处生成的;以及
区块链签名数据发送单元,将区块链签名数据发送给所述业务服务器,以使所述业务服务器将所述区块链签名数据和所述待上链交易数据发送给区块链交易发起服务器来发起区块链交易,所述区块链签名数据包括所述区块链签名和所述用户的区块链身份标识,
其中,所述区块链公私钥对是所述区块链身份管理服务器基于密钥装置标识信息生成的,所述密钥装置标识信息包括所述密钥装置中与所述第一私钥对应的第一公钥和密钥装置序列号。
7.如权利要求6所述的装置,还包括:
第一公钥确定单元,在利用对应于所述用户标识信息的区块链公私钥对中的区块链私钥对所述待上链交易数据进行加密以得到区块链签名之前,基于所述用户标识信息,确定与所述第一私钥对应的第一公钥;
第一数字签名验证单元,利用所述第一公钥对所述第一数字签名进行验证,
区块链签名生成单元在所述第一数字签名验证通过时,利用对应于所述用户标识信息的区块链公私钥对中的区块链私钥对所述待上链交易数据进行加密以得到区块链签名。
8.如权利要求7所述的装置,其中,所述区块链公私钥对的数量为至少两个,所述区块链签名生成单元:
利用至少两个区块链公私钥对中的至少一个区块链私钥对所述待上链交易数据进行加密,以得到区块链签名集合,所述区块链签名数据包括所述区块链签名集合。
9.一种区块链交易发起系统,包括
区块链身份管理服务器,所述区块链身份管理装置包括如权利要求6至8中任一所述的装置;
业务服务器,所述业务服务器包括:
交易数据发送单元,将用户的交易数据发送给业务签名认证系统,以由所述业务签名认证系统使用所述用户的密钥装置中的第一私钥对所述交易数据进行签名而得到第一数字签名;
第一数据签名获取单元,从所述业务签名认证系统获取所述第一数字签名;
待上链交易数据发送单元,将所述待上链交易数据发送给所述区块链身份管理服务器;
区块链签名数据获取单元,从所述区块链身份管理服务器获取区块链签名数据;以及
区块链交易数据发送单元,将所述区块链签名数据和所述待上链交易数据发送给区块链交易发起服务器,
以及
区块链交易发起服务器,所述区块链交易发起服务器包括:
区块链交易数据获取单元,从所述业务服务器获取所述区块链签名数据和所述待上链交易数据;
区块链签名数据验证单元,利用对应于所述区块链签名数据中的区块链身份标识的公钥对所述区块链签名数据进行验证;以及
区块链交易发起单元,在所述区块链签名数据验证通过时,基于所述区块链签名数据和所述待上链交易数据发起区块链交易。
10.如权利要求9所述的系统,所述区块链公私钥对的数量为至少两个,所述区块链签名数据包括利用所述至少两个区块链公私钥对中的至少一个区块链私钥得到的区块链签名数据集合,所述区块链交易发起服务器还包括:
公钥获取单元,基于所述区块链签名数据集合获取所述至少一个区块链私钥所对应的至少一个区块链公钥;以及
公钥验证单元,基于预定公钥验证规则,对所述至少一个区块链公钥进行验证,
区块链签名数据验证单元在所述至少一个区块链公钥验证通过时,利用所述至少一个区块链公钥对所述区块链签名数据进行验证。
11.如权利要求10所述的系统,其中,所述公钥获取单元基于所述区块链签名数据集合,利用对所述待上链交易数据进行签名的签名算法,从所述区块链签名数据集合中还原出所述至少一个区块链公钥。
12.如权利要求10所述的系统,其中,所述区块链签名数据还包括所述至少一个区块链公钥,所述公钥获取单元从所述区块链签名数据中获取所述至少一个区块链公钥。
13.如权利要求10所述的系统,其中,所述少两个区块链公私钥对中的区块链公钥具有公钥权重,所述公钥验证单元基于所述至少一个区块链公钥的公钥权重和预定权重阈值,对所述至少一个区块链公钥进行验证。
14.如权利要求10所述的系统,其中,所述区块链交易发起服务器处存储有所述用户的区块链公钥集合,所述公钥验证单元基于所述至少一个区块链公钥和所述区块链公钥集合,对所述至少一个区块链公钥进行验证。
15.一种计算设备,包括:
至少一个处理器;以及
存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如权利要求1到5中任一所述的方法。
16.一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如权利要求1到5中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911202654.1A CN111062716B (zh) | 2019-11-29 | 2019-11-29 | 生成区块链签名数据的方法及装置、区块链交易发起系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911202654.1A CN111062716B (zh) | 2019-11-29 | 2019-11-29 | 生成区块链签名数据的方法及装置、区块链交易发起系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111062716A CN111062716A (zh) | 2020-04-24 |
CN111062716B true CN111062716B (zh) | 2021-06-22 |
Family
ID=70299380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911202654.1A Active CN111062716B (zh) | 2019-11-29 | 2019-11-29 | 生成区块链签名数据的方法及装置、区块链交易发起系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111062716B (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111612458A (zh) * | 2020-04-30 | 2020-09-01 | 深圳壹账通智能科技有限公司 | 用于区块链数据处理的方法、装置及可读存储介质 |
CN111342963A (zh) * | 2020-05-15 | 2020-06-26 | 支付宝(杭州)信息技术有限公司 | 数据上链方法、数据存储方法及装置 |
CN111628871B (zh) * | 2020-05-28 | 2021-09-03 | 广东工业大学 | 一种区块链交易处理方法、装置及电子设备和存储介质 |
CN111783136B (zh) * | 2020-06-17 | 2024-07-23 | 联想(北京)有限公司 | 一种数据保护方法、装置、设备和存储介质 |
CN111832046B (zh) * | 2020-07-02 | 2024-02-23 | 中通服创发科技有限责任公司 | 一种基于区块链技术的可信数据存证方法 |
CN112000731B (zh) * | 2020-07-16 | 2024-05-10 | 北京三快在线科技有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN111953490B (zh) * | 2020-08-31 | 2023-11-14 | 上海雷龙信息科技有限公司 | 基于区块链技术的数字签名方法及系统 |
CN112187466B (zh) * | 2020-09-01 | 2023-05-12 | 深信服科技股份有限公司 | 一种身份管理方法、装置、设备及存储介质 |
CN112150148A (zh) * | 2020-09-24 | 2020-12-29 | 普华云创科技(北京)有限公司 | 一种基于区块链技术的企业资产保护方法与系统 |
CN112182609B (zh) * | 2020-09-25 | 2024-02-02 | 中国建设银行股份有限公司 | 基于区块链的数据上链存储方法和追溯方法、装置及设备 |
CN112163845B (zh) * | 2020-09-29 | 2024-03-22 | 深圳前海微众银行股份有限公司 | 一种跨区块链的交易身份确认方法及装置 |
CN112184441B (zh) * | 2020-09-29 | 2024-01-19 | 平安科技(深圳)有限公司 | 数据处理方法、装置、节点设备及存储介质 |
CN112884477B (zh) * | 2020-11-10 | 2022-08-19 | 支付宝(杭州)信息技术有限公司 | 一种区块链交易发起方法及系统 |
CN112769758B (zh) * | 2020-12-21 | 2022-04-29 | 浙江大学 | 一种基于区块链的可信物联网燃气表及本地和云端的可信方法 |
CN113506104B (zh) * | 2021-05-07 | 2024-03-01 | 杭州宇链科技有限公司 | 一种软硬件结合的签名生成、验证方式和系统 |
CN113407958B (zh) * | 2021-06-03 | 2023-08-25 | 广东辰宜信息科技有限公司 | 签名数据处理方法、装置、设备及介质 |
CN113421092A (zh) * | 2021-06-30 | 2021-09-21 | 中国银行股份有限公司 | 区块链系统、客户端及交易数据的存储系统及方法 |
CN113610526A (zh) * | 2021-08-24 | 2021-11-05 | 上海点融信息科技有限责任公司 | 一种数据信任方法、装置、电子设备及存储介质 |
CN115499130B (zh) * | 2022-08-15 | 2024-04-12 | 北京航空航天大学 | 区块链交易数据传输证据方法及装置 |
CN115459920A (zh) * | 2022-08-25 | 2022-12-09 | 浪潮云信息技术股份公司 | 一种基于智能合约的无证书联盟链上身份认证方法及系统 |
CN117220884B (zh) * | 2023-09-05 | 2024-09-13 | 上海雷龙信息科技有限公司 | 一种数字签名交互验证方法、设备和介质 |
CN117574408B (zh) * | 2024-01-15 | 2024-05-14 | 杭州字节方舟科技有限公司 | 基于区块链的生产资料管理方法、装置及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107566117A (zh) * | 2017-07-14 | 2018-01-09 | 浙商银行股份有限公司 | 一种区块链密钥管理系统及方法 |
CN108647964A (zh) * | 2018-05-02 | 2018-10-12 | 郑杰骞 | 一种区块链数据处理方法、装置及计算机可读存储介质 |
CN108777684A (zh) * | 2018-05-30 | 2018-11-09 | 招商银行股份有限公司 | 身份认证方法、系统及计算机可读存储介质 |
CN109617698A (zh) * | 2019-01-09 | 2019-04-12 | 腾讯科技(深圳)有限公司 | 发放数字证书的方法、数字证书颁发中心和介质 |
KR20190132120A (ko) * | 2018-05-18 | 2019-11-27 | 주식회사 케이티 | 개인 도메인 네임을 이용한 간편 로그인 방법 및 시스템 |
-
2019
- 2019-11-29 CN CN201911202654.1A patent/CN111062716B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107566117A (zh) * | 2017-07-14 | 2018-01-09 | 浙商银行股份有限公司 | 一种区块链密钥管理系统及方法 |
CN108647964A (zh) * | 2018-05-02 | 2018-10-12 | 郑杰骞 | 一种区块链数据处理方法、装置及计算机可读存储介质 |
KR20190132120A (ko) * | 2018-05-18 | 2019-11-27 | 주식회사 케이티 | 개인 도메인 네임을 이용한 간편 로그인 방법 및 시스템 |
CN108777684A (zh) * | 2018-05-30 | 2018-11-09 | 招商银行股份有限公司 | 身份认证方法、系统及计算机可读存储介质 |
CN109617698A (zh) * | 2019-01-09 | 2019-04-12 | 腾讯科技(深圳)有限公司 | 发放数字证书的方法、数字证书颁发中心和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111062716A (zh) | 2020-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111062716B (zh) | 生成区块链签名数据的方法及装置、区块链交易发起系统 | |
US11818269B2 (en) | Computer-implemented system and method providing a decentralised protocol for the recovery of cryptographic assets | |
CN110458560B (zh) | 用于进行交易验证的方法及装置 | |
CN111242617B (zh) | 用于执行交易正确性验证的方法及装置 | |
EP3685334B1 (en) | Improving integrity of communications between blockchain networks and external data sources | |
CN111047324B (zh) | 用于更新区块链节点处的公钥集合的方法及装置 | |
US10785035B1 (en) | Anti-replay attack authentication protocol | |
US20200084027A1 (en) | Systems and methods for encryption of data on a blockchain | |
CN111080292B (zh) | 用于获取区块链交易签名数据的方法及装置 | |
US11240041B2 (en) | Blockchain-based transaction verification | |
CN111212139A (zh) | 对信任节点信息进行更新的方法及装置 | |
US10756896B2 (en) | Trustless account recovery | |
CN110888933B (zh) | 信息提供方法、装置及系统和信息获取方法及装置 | |
CN111241593A (zh) | 用于区块链节点的数据同步方法及装置 | |
CN110839067B (zh) | 信息提供方法及装置 | |
CN111211876B (zh) | 发送针对数据请求的应答消息的方法及装置、区块链系统 | |
CN111144894B (zh) | Utxo处理方法及装置 | |
CN110852887B (zh) | 获取去中心化应用集群中的交易处理状态的方法及装置 | |
CN110827034B (zh) | 用于发起区块链交易的方法及装置 | |
CN111143381B (zh) | 用于更新多层块链式结构中的信任点的方法及装置 | |
CN111159286B (zh) | 用于生成多层块链式结构的方法及装置 | |
EP4231583A1 (en) | Methods and arrangements for establishing digital identity |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240920 Address after: Room 804, 8th Floor, No. 618 Waima Road, Huangpu District, Shanghai 200001 Patentee after: Ant double chain technology (Shanghai) Co.,Ltd. Country or region after: China Address before: 310000 801-11 section B, 8th floor, 556 Xixi Road, Xihu District, Hangzhou City, Zhejiang Province Patentee before: Alipay (Hangzhou) Information Technology Co.,Ltd. Country or region before: China |
|
TR01 | Transfer of patent right |