对用于区块链系统的签名验证进行测试的方法和设备

文档序号:1525403 发布日期:2020-02-11 浏览:3次 >En<

阅读说明:本技术 对用于区块链系统的签名验证进行测试的方法和设备 (Method and apparatus for testing signature verification for blockchain systems ) 是由 马玉 于 2019-03-04 设计创作,主要内容包括:本文公开了用于对用于区块链系统的签名验证进行测试的方法、设备和装置,包括存储在计算机可读介质上的计算机程序。所述方法之一包括:从配置文件获得测试配置,其中所述测试配置指定所述区块链系统中使用的加密算法、对应于加密算法的包括一个或多个私钥的私钥组、以及基于所述加密算法和所述私钥组的预定执行结果;通过基于所述加密算法和所述私钥组对表示交易的数据进行加密来对所述交易签名,以生成一个或多个签名交易;将所述一个或多个签名交易发送到所述区块链系统并从所述区块链系统接收执行结果;以及基于所述执行结果确定所述预定执行结果是否被满足。(Methods, apparatus, and devices, including computer programs stored on computer-readable media, for testing signature verification for blockchain systems are disclosed herein. One of the methods comprises: obtaining a test configuration from a configuration file, wherein the test configuration specifies an encryption algorithm used in the blockchain system, a private key set corresponding to the encryption algorithm that includes one or more private keys, and a predetermined execution result based on the encryption algorithm and the private key set; signing the transaction by encrypting data representing the transaction based on the encryption algorithm and the private key set to generate one or more signed transactions; sending the one or more signature transactions to the blockchain system and receiving execution results from the blockchain system; and determining whether the predetermined execution result is satisfied based on the execution result.)

对用于区块链系统的签名验证进行测试的方法和设备

技术领域

本文一般涉及计算机技术,更具体地,涉及用于对用于区块链系统的签名验证进行测试的方法和设备。

背景技术

区块链系统,也称为分布式账本系统(DLS)或共识系统,可以使参与实体安全且不可篡改地存储数据。在不参考任何特定用例的情况下,区块链系统可以包括任何DLS并且可以用于公有区块链网络、私有区块链网络和联盟区块链网络。公有区块链网络向所有实体开放使用系统,并开放参与共识处理。私有区块链网络针对特定实体提供,该实体集中控制读写权限。联盟区块链网络针对选择的实体组群提供,该实体组群控制共识过程,并且联盟区块链网络包括访问控制层。

区块链系统维护一个或多个区块链。区块链是用于存储诸如交易的数据的数据结构,其可以防止恶意方篡改和操纵数据。

区块链的区块中的数据可以表示交易。表示交易的数据通常被加密以用于认证目的,使得区块链系统可以验证交易的有效性。不同的加密算法或相同加密算法的不同私钥可被用于对交易进行加密。因此,可能需要用于测试加密算法和用于对交易进行加密的相应私钥的方法和设备。

发明内容

在一个实施例中,计算机实现的用于对用于区块链系统的签名验证进行测试的方法包括:从配置文件获得测试配置,其中所述测试配置指定在所述区块链系统中使用的加密算法、对应于所述加密算法的包括一个或多个私钥的私钥组、以及基于所述加密算法和所述私钥组的预定执行结果;通过基于所述加密算法和所述私钥组对表示所述交易的数据进行加密来对所述交易进行签名,以生成一个或多个签名交易;将所述一个或多个签名交易发送到所述区块链系统并从所述区块链系统接收执行结果,所述执行结果指示一个或多个签名交易对应于有效交易还是无效交易;以及基于从所述区块链系统接收到的所述执行结果确定是否满足所述预定执行结果。

在另一实施例中,用于对用于区块链系统的签名验证进行测试的设备包括:一个或多个处理器;和一个或多个计算机可读存储器,所述存储器耦接到所述一个或多个处理器并且具有存储在其上的指令,其中所述指令可由所述一个或多个处理器执行以:从配置文件获得测试配置,其中所述测试配置指定在所述区块链系统中使用的加密算法、对应于所述加密算法的包括一个或多个私钥的私钥组、以及基于所述加密算法和所述私钥组的预定执行结果;通过基于所述加密算法和所述私钥组对表示所述交易的数据进行加密来对所述交易进行签名,以生成一个或多个签名交易;将所述一个或多个签名交易发送到所述区块链系统并从所述区块链系统接收执行结果,所述执行结果指示一个或多个签名交易对应于有效交易还是无效交易;以及基于从所述区块链系统接收到的所述执行结果确定是否满足所述预定执行结果。

在又一个实施例中,非瞬态计算机可读介质具有存储于其中的指令,所述指令当由设备的处理器执行时,促使所述设备执行用于对用于区块链系统的签名验证进行测试的方法。所述方法包括:从配置文件获得测试配置,其中所述测试配置指定在所述区块链系统中使用的加密算法,对应于所述加密算法的包括一个或多个私钥的私钥组,以及基于所述加密算法和所述私钥组的预定执行结果;通过基于所述加密算法和所述私钥组对表示所述交易的数据进行加密来对所述交易进行签名,以生成一个或多个签名交易;将所述一个或多个签名交易发送到所述区块链系统并从所述区块链系统接收执行结果,所述执行结果指示一个或多个签名交易对应于有效交易还是无效交易;以及基于从所述区块链系统接收到的所述执行结果确定是否满足所述预定执行结果。

附图说明

包含在本文中并构成其一部分的附图示出了实施例。在参考附图的以下描述中,除非另有说明,否则不同附图中的相同数字表示相同或相似的元件。

图1示出了根据一个实施例的区块链系统的示意图。

图2是根据实施例的签名方法的流程图。

图3是根据实施例的签名验证方法的流程图。

图4是根据实施例的用于对用于区块链系统的签名验证进行测试的方法的流程图。

图5是根据实施例的用于对用于区块链系统的签名验证进行测试的设备的框图。

图6是根据实施例的用于对用于区块链系统的签名验证进行测试的方法的流程图。

图7是根据实施例的用于对用于区块链系统的签名验证进行测试的设备的框图。

具体实施方式

本文的实施例提供了用于对用于区块链系统的签名验证进行测试的方法和设备。所述方法和设备可以从配置文件获得测试配置。所述测试配置可以指定区块链系统中使用的加密算法、对应于加密算法的包括一个或多个私钥的私钥组、以及基于该加密算法和该私钥组的预定执行结果。所述方法和设备还可以通过基于加密算法和私钥组来对表示交易的数据进行加密,以对交易进行签名,从而生成一个或多个签名交易。所述方法和设备还可以将一个或多个签名交易发送到区块链系统,并从区块链系统接收执行结果。所述执行结果可以指示一个或多个签名交易对应于有效交易还是无效交易。所述方法和设备还可以基于从区块链系统接收的执行结果确定是否满足预定执行结果。

本文公开的实施例具有一个或多个技术效果。在一些实施例中,所述方法和设备从配置文件获得测试配置,并为配置文件中的每个测试配置设置包括一个或多个私钥的私钥组。这允许自动生成测试配置,以在各种场景下验证区块链系统中的签名交易。此外,当需要基于私钥的新组合来测试签名验证时,这允许通过简单地添加新组合来容易地更新配置文件。在其他实施例中,所述方法和设备基于加密算法和一个或多个私钥对交易进行加密以生成一个或多个签名交易。这允许私钥的多个组合被测试。在其他实施例中,所述方法和设备包括配置文件中的每个私钥的表示,而不是私钥本身,例如,通过基于对应关系将私钥的表示映射到私钥本身。这节省了配置文件的文件大小,从而便于用户生成和查看配置文件。在其他实施例中,所述方法和设备针对多个加密算法和多组私钥并行地执行测试。这允许多个加密算法和多个私钥基本上同时被测试。

以下描述提供了实施例的细节。在实施例中,区块链是以交易可以是不可篡改且随后被验证的方式存储例如交易的数据的数据结构。区块链包括一个或多个区块。每个区块通过包括紧邻其之前的前一区块的加密哈希值(cryptographic hash)链接到该前一区块。每个区块还可以包括时间戳、自身的加密哈希值以及一个或多个交易。通常已经由区块链系统的节点验证的交易可以经哈希处理并编码成例如默克尔(Merkle)树的数据结构。在Merkle树中,叶节点处的数据是经哈希处理的,并且在该树的每个分支中的所有哈希值可以在该分支的根处连接。此过程沿着树持续一直到整个树的根,在整个树的根处存储了代表树中所有数据的哈希值。声称是存储在树中的交易的哈希值可以通过确定其是否与树的结构一致而被快速验证。

区块链系统包括管理、更新和维护一个或多个区块链的计算节点的网络。所述网络可以是公有区块链网络、私有区块链网络或联盟区块链网络。例如,许多实体,诸如数百、数千或甚至数百万实体可以在公有区块链网络中操作,并且每个实体操作公有区块链网络中的至少一个节点。因此,公有区块链网络可以被认为是关于参与实体的公有网络。有时,大多数实体(节点)必须对每个区块进行签名,以对区块进行验证并将其添加到区块链网络的区块链中。示例性公有区块链网络包括利用被称为区块链的分布式账本的特定点对点(peer-to-peer)支付网络。

通常,公有区块链网络可以支持公开交易。公开交易为公有区块链网络内的所有节点共享,并存储在全局区块链中。全局区块链是跨节点(例如,完整区块链节点)复制的区块链,并且节点相对于全局区块链是处于共识的。为了达成共识(例如,同意向区块链添加区块),在公有区块链网络内实施共识协议。共识协议的示例包括工作量证明(POW)(例如,在一些加密货币网络中实现)、权益证明(POS)和权威证明(POA)。

通常,为特定实体提供私有区块链网络,该特定实体集中控制读写权限。实体控制哪些节点能够参与到区块链网络中。因此,私有区块链网络通常被称为权限网络,其限制允许谁参与网络,以及它们的参与级别(例如,仅在某些交易中)。可以使用各种类型的访问控制机制(例如,现有参与者投票添加新实体,监管机构可以控制权限)。

通常,联盟区块链网络在参与实体之间是私有的。在联盟区块链网络中,共识过程由授权的节点集控制,一个或多个节点由对应实体(例如,金融机构、保险公司)操作。例如,由十(10)个实体(例如,金融机构、保险公司)组成的联盟可以操作联盟区块链网络,每个实体可以操作联盟区块链网络中的至少一个节点。因此,联盟区块链网络可以被认为是与参与实体相关的私有网络。在一些示例中,每个实体(节点)必须对每个区块签名,以使区块有效并将其添加到区块链中。在一些示例中,至少实体(节点)的子集(例如,至少7个实体)必须对每个区块签名,以使区块有效并将其添加到区块链中。

图1示出了根据一个实施例的区块链系统100的示意图。参考图1,区块链系统100可以包括被配置为在区块链120上操作的多个节点,例如节点102-110。节点102-110可以形成网络112,例如对等(P2P)网络。节点102-110中的每一个可以是被配置为存储区块链120的副本的计算设备,例如计算机或计算机系统,或者可以是在计算设备上运行的软件,诸如进程或应用程序。节点102-110中的每一个可以具有唯一标识符。

在一些实施例中,区块链120可以包括数据区块形式的增长记录列表,例如图1中的区块B1-B5。区块B1-B5中的每一个可以包括时间戳、前一块的加密哈希值,以及当前区块的数据,该数据可以是诸如货币交易的交易。例如,如图1所示,区块B5可以包括时间戳、区块B4的加密哈希值和区块B5的交易数据。此外,例如,可以对前一个区块执行哈希操作以生成前一个区块的加密哈希值。哈希操作可以通过诸如SHA-256的哈希算法将各种长度的输入转换为固定长度的加密输出。

在一些实施例中,节点102-110被配置为在区块链120上执行操作。例如,当节点(例如,节点102)想要将新数据存储到区块链120上时,该节点生成要添加到区块链120的新区块并将新区块广播到网络112中的其他节点,例如节点104-110。基于新区块的有效性,例如其签名和交易的有效性,其他节点可以确定接受新区块,使得节点102和其他节点可以将新区块添加到它们各自的区块链120的副本中。随着该过程重复,可以将越来越多的数据区块添加到区块链120。

在一些实施例中,基于加密算法在区块链系统100中验证交易。所述加密算法可以提供包括私钥和公钥的密钥对。所述私钥与特定用户相关联,并且可以对表示例如由用户发起的交易的数据进行加密。对表示交易的数据进行加密也可以称为对交易进行签名。所述公钥被提供给区块链系统100中的另一个用户以对加密数据进行解密,从而验证交易是否确实是由特定用户授权的。所述解密也可以称为签名验证。在一个实施例中,区块链系统100可以支持多种加密算法,例如RSA(Rivest-Shamir-Adleman)算法、椭圆曲线数字签名算法(ECDSA)、SM2算法等。

在一些实施例中,可以对区块链系统100中的交易执行多签名。所述多签名是一种允许一组用户以及所产生的私钥组对同一交易进行签名的技术。

图2是根据实施例的用于例如区块链系统100(图1)的区块链系统中的签名方法200的流程图。参考图2,在步骤202中,通过对数据应用哈希算法来生成表示交易的数据的哈希值。在一些实施例中,哈希值也可以称为哈希摘要。在步骤204中,通过使用第一用户的私钥(例如,发起交易的用户)和加密算法来加密哈希值,进一步生成交易的签名。在步骤206中,将表示交易的数据和所生成的签名组合为签名交易。

图3是根据实施例的用于例如区块链系统100(图1)的区块链系统中的签名验证方法300的流程图。参考图3,在步骤302中,所述签名交易由第二用户接收并处理以获得表示交易的数据和针对交易的签名。在步骤304中,使用与加密算法的私钥相对应的公钥来对交易的签名进行解密,以获得第一哈希值。在步骤306中,通过使用与对交易进行签名的哈希算法相同的哈希算法对所获得的表示交易的数据进行加密来生成第二哈希值。在步骤308中,比较第一哈希值和第二哈希值以确定签名以及签名交易是否有效。例如,如果第一个值与第二个值匹配,则表示用于加密的私钥和用于解密的公共是一对,因此,该交易的签名是有效的。因此,交易可以被验证为有效交易。

在一些实施例中,区块链系统可以验证由与交易有关的一个或多个用户签名的交易。例如,每个用户可以与一个或多个私钥相关联。相应地,可以生成用于交易的多个签名,并且因此可以生成多个签名交易。在一些实施例中,多个签名可以分别对应于不同的权重。区块链系统可以基于每个签名的有效性和对应权重来验证交易。在一个实施例中,“1”表示区块链系统确定签名(以及因此签名交易)是有效的,“0”表示区块链系统确定签名无效。区块链系统可以基于每个签名的有效性的加权和来验证交易。例如,如果加权和大于预定阈值,例如70%,则区块链系统验证该交易为有效交易。

在一些实施例中,区块链系统可以支持用于签名验证的一个或多个加密算法。可以使用下面描述的方法和设备来测试通过区块链系统的签名验证。

图4是根据一个实施例的用于测试用于例如区块链系统100(图1)的区块链系统的签名验证的方法400的流程图。例如,方法400可以由计算机系统执行。参考图4,方法400可以包括以下步骤。

在步骤402中,从配置文件获得一个或多个测试配置。例如,所述配置文件可以由用户生成或由计算机系统自动生成,并且所述配置文件可以加载到计算机系统中。此外,例如,所述配置文件中的每个测试配置可以指定在要测试签名验证的区块链系统中使用的加密算法、对应于加密算法的包括一个或多个私钥的私钥组、以及基于所述加密算法和所述私钥组的预定执行结果。在一些实施例中,每个测试配置也可以被称为用例或测试用例。

在一些实施例中,测试配置中的每个私钥可以是有效私钥或无效私钥。例如,所述测试配置可以包含重复的私钥,一个私钥是有效的,另一个私钥是无效的,以测试使用相同的私钥对交易进行两次签名的情况。通过在配置文件中为每个测试配置设置私钥,方法400可以在实际情况中使用的私钥的不同组合下自动测试签名验证。

在一些实施例中,一个或多个私钥中的每个私钥的表示可以被包括在配置文件中。例如,私钥通常是一系列数字,例如对于SM2算法的256位数。为了节省配置文件的文件大小并便于用户生成和查看配置文件,所述配置文件可以包括私钥的表示,而不是256位私钥本身。例如,私钥的表示可以包括存储私钥的地址。此外,例如,私钥的表示可以包括私钥的别名,例如“prikey1”,使得对应私钥可以被识别和检索。

在一些实施例中,当测试配置中的对应的加密算法和私钥组用于对交易进行签名时,测试配置的预定执行结果可以指示预期的结果。例如,如果不允许在区块链系统中相同的私钥对交易进行两次签名,则指定重复私钥的测试配置的预定执行结果可以被设置为“无效”。

在一个实施例中,所述配置文件可以是表格的形式,例如下面的表1。

Figure BDA0002317679350000091

表1

在一个实施例中,测试配置1被设置用于测试签名验证,该签名验证需要通过ECDSA算法用私钥prikey1、prikey2和prikey3签名的交易;测试配置2被设置用于测试签名验证,该签名验证不允许通过SM2算法用重复的私钥prikey2和prikey2签名的交易;测试配置3被设置用于测试签名验证,该签名验证需要通过SM2算法用私钥prikey1、prikey2和prikey4签名的交易。

在一些实施例中,可以预先确定用于针对需要由多个用户进行签名的交易的签名验证的阈值。例如,阈值可以设置为70%,以使交易的签名验证有效。因此,如果例如基于测试配置生成的每个签名的有效性的加权和被假定大于70%,则可以将测试配置的预定执行结果设置为“有效”。

在一些实施例中,可以基于配置文件中的测试配置并行或顺序地执行签名验证的测试。例如,可以在步骤404中针对配置文件中的测试配置生成多个计算机进程或线程,并且可以并行执行所述多个计算机进程或线程以提高测试效率。

在步骤406中,针对配置文件中的每个测试配置生成交易。在一些实施例中,可以生成不同类型的交易以基于测试配置执行测试。例如,可以生成用于注册账户的交易和用于转移加密货币的交易。通过生成不同类型的交易,测试配置中的加密算法和私钥可以在各种场景中被测试。

在步骤408中,如果测试配置包括私钥的表示,则可以基于该表示来获取私钥。例如,如果测试配置包括存储私钥的地址,则可以从该地址检索私钥。此外,例如,测试配置包括私钥的别名(例如,“prikey1”),可以例如通过检查包括别名和私钥之间的对应关系的查找表来获取私钥。

在步骤410中,使用测试配置中的私钥组对生成的交易进行签名。例如,可以根据预定哈希算法生成所生成的交易的哈希值。通过例如使用方法200(图2)用所述组中的一个或多个私钥对所生成的交易的哈希值进行加密,所生成的交易的哈希值可以进一步用于生成一个或多个签名交易。

在步骤412中,将一个或多个签名交易发送到区块链系统,在该区块链系统中测试签名验证被执行。区块链系统可以例如使用方法300(图3)接收用于验证的一个或多个签名交易,并返回对应于测试配置的执行结果。所述执行结果可以指示交易是有效还是无效。

在步骤414中,从区块链系统接收执行结果,在该区块链系统中测试签名验证被执行。

在步骤416中,基于从区块链系统接收到的执行结果,确定测试配置中的预定执行结果是否被满足。例如,将接收到的执行结果与相应配置中的预定执行结果进行比较,以确定接收到的执行结果与预定执行结果是否匹配。可以为测试配置生成比较结果。例如,当接收到的执行结果指示交易有效并且测试配置中的预定执行结果也有效时,比较结果可以指示区块链系统针对该测试配置的签名验证操作正常。在另一示例中,当接收到的执行结果指示交易无效但测试配置中的预定执行结果有效时,比较结果可以指示区块链系统针对该测试配置的签名验证操作不正常。

在步骤418中,获得配置文件中的每个测试配置的比较结果。例如,如果接收到的每个测试配置的执行结果与对应预定执行结果匹配,则可以确定区块链系统的签名验证操作正常。

图5示出了根据实施例的用于测试用于区块链系统的签名验证的设备500的框图。例如,设备500可以执行方法400(图4)。参考图5,设备500可以包括获得模块502、交易签名模块504、收发模块506和确定模块508。

获得模块502可以从配置文件获得一个或多个测试配置。例如,获得模块502可以包括配置文件加载单元512,用于将配置文件加载到设备500中。此外,例如,配置文件中的每个测试配置可以指定要测试签名验证的区块链系统中使用的加密算法、对应于加密算法的包括一个或多个私钥的私钥组、以及基于所述加密算法和所述私钥组的预定执行结果。每个测试配置也可以被称为用例或测试用例。

在一些实施例中,测试配置中指定的每个私钥可以是有效私钥或无效私钥。例如,测试配置可以包含重复的私钥,一个私钥是有效的,另一个私钥是无效的,以测试使用相同的私钥对交易进行两次签名的情况。通过在配置文件中为每个测试配置设置私钥,设备500可以在可以用于实际情况的私钥的不同组合下自动测试签名验证。

在一些实施例中,当测试配置中的对应的加密算法和私钥组用于对交易进行签名时,测试配置的预定执行结果可以指示预期的结果。例如,如果不允许相同的私钥对交易进行两次签名,则指定重复私钥的测试配置的预定执行结果可以被设置为“无效”。

交易签名模块504可以通过基于加密算法和每个测试配置中的包括一个或多个私钥的私钥组对表示交易的数据进行加密来对交易进行签名,以生成一个或多个签名交易。交易签名模块504可以包括交易生成单元514、私钥映射单元516和签名单元518。

交易生成单元514可以为配置文件中的每个测试配置生成交易。如果测试配置包括私钥的表示,例如私钥的别名,则私钥映射单元516可以通过检查包括别名和私钥之间的对应关系的查找表将私钥的表示映射到私钥本身。签名单元518可以使用测试配置中的所述私钥组对所生成的交易进行签名,以生成一个或多个签名交易。

收发模块506可以将一个或多个签名交易发送到区块链系统,针对所述区块链系统测试签名验证被执行。所述区块链系统可以使用方法300(图3)接收并验证一个或多个签名交易。收发模块506还可以从区块链系统接收执行结果,所述执行结果指示交易有效还是无效。

确定模块508可以基于从区块链系统接收到的执行结果确定预定执行结果是否被满足。例如,确定模块508可以包括比较单元520,用于将接收到的执行结果与测试配置中的预定执行结果进行比较,以确定所接收的执行结果与预定执行结果是否匹配。

设备500可以为所述配置中的每个测试配置生成确定结果。在一个实施例中,如果接收到的每个测试配置的执行结果与对应的预定执行结果匹配,则设备500可以确定区块链系统的签名验证通过测试。

在一些实施例中,上述模块和单元中的每个可以被实现为软件或硬件,或软件和硬件的组合。例如,可以使用执行存储在存储器中的指令的处理器来实现上述模块和单元中的每个。而且,例如,上述模块和单元中的每个可以用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑设备(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件中的一个或多个专用来实现,以用于执行下述方法。

图6是根据另一实施例的用于测试用于区块链系统的签名验证的方法600的流程图。方法600可以由计算机系统执行。所述计算机系统可以包括存储一组指令的存储器和至少一个处理器,所述处理器被配置为执行该组指令以促使所述计算机系统执行方法600。参考图6,方法600可以包括以下步骤。

在步骤602中,所述计算机系统可以获得包括多个测试配置的配置文件,每个测试配置指定包括一个或多个私钥的私钥组、对应的加密算法、以及基于所述加密算法和所述私钥组的预定执行结果。所述加密算法可以是RSA算法、ECDSA算法或SM2算法。

在步骤604中,计算机系统可以基于配置文件中的每个测试配置生成待签名的交易。

在步骤606中,所述计算机系统可以基于配置文件生成多个测试用例。所述多个测试用例中的每个对应于配置文件中的测试配置之一。例如,每个测试用例对应于包括一个或多个私钥的私钥组、对应的加密算法、以及基于所述加密算法和所述私钥组的预定执行结果。

在步骤608中,计算机系统可以通过使用私钥组和对应加密算法对交易进行签名并将一个或多个签名交易发送到区块链系统来执行多个测试用例。在一些实施例中,所述计算机系统可以生成交易的哈希值,根据测试配置获得一个或多个私钥,并通过用每个所获得的私钥对哈希值进行加密来对交易进行签名。

计算机系统可以从区块链系统接收执行结果,并将执行结果与预定执行结果进行比较。执行结果可以指示交易有效或无效。

在步骤610中,计算机系统可以确定接收到的执行结果与每个测试配置中的预定结果是否匹配,并生成比较结果。如果接收到的执行结果与配置文件中的每个测试配置中的预定结果匹配,则计算机系统还可以确定签名验证在区块链系统中正确地操作。

图7是根据一个实施例的用于测试用于区块链系统的签名验证的设备700的框图。例如,可以使用计算机系统来实现设备700。参考图7,设备700可以包括处理器702、存储器704、通信接口706和显示器708。

在一些实施例中,处理器702可以执行指令以执行上述方法。处理器702可以包括便于测试的一个或多个模块。例如,处理器702可以包括获得模块502、交易签名模块504、收发模块506和确定模块508(图5)。

在一些实施例中,存储器704可以存储用于执行上述方法的指令。存储器704可以被实现为任何类型的易失性或非易失性存储器设备或其组合,诸如静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、磁存储器、闪存或磁或光盘。

在一些实施例中,通信接口706可以促进设备700和其他设备之间的通信。通信接口706可以支持一个或多个通信标准,例如因特网标准或协议、综合业务数字网(ISDN)标准等。

在一些实施例中,当执行上述方法时,显示器708可以显示测试结果。例如,显示器708可以是液晶显示器(LCD)。而且,例如,显示器708可以包括用于接收用户输入的触摸屏。

在一些实施例中,还提供了一种计算机程序产品。所述计算机程序产品可以包括非瞬态计算机可读存储介质,其上具有用于促使处理器执行上述方法的计算机可读程序指令。

所述计算机可读存储介质可以是有形设备,其可以存储供指令执行设备使用的指令。所述计算机可读存储介质可以是,例如,但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适组合。所述计算机可读存储介质的更具体示例的非详尽列表包括以下内容:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字通用光盘(DVD)、记忆棒、软盘、诸如在其上记录有指令的凹槽中的穿孔卡或凸起结构的机械编码设备、以及前述的任何合适的组合。

用于执行上述方法的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据或以一种或多种编程语言的任意组合编写的源代码或对象代码,包括面向对象的编程语言和传统的过程编程语言。所述计算机可读程序指令可以在计算机系统上作为独立软件包完全执行,或者在第一计算机上部分执行并在远离第一计算机的第二计算机上部分执行。在后一种情况下,第二远程计算机可以通过包括局域网(LAN)或广域网(WAN)的任何类型的网络连接到第一计算机。

所述计算机可读程序指令可以被提供给通用或专用计算机的处理器或其他可编程数据处理装置以产生一种机器,使得经由计算机的处理器或其他可编程数据处理装置执行的指令创建用于实现上述方法的装置。

附图中的流程图和框图示出了根据本文的各种实施例的设备、方法和计算机程序产品的可能实现的架构、功能和操作。在这方面,流程图或框图中的框可以表示软件程序、代码的段或部分,其包括用于实现特定功能的一个或多个可执行指令。还应注意,在一些替代实施方式中,框中提到的功能可以不按图中所示的顺序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还应注意,框图和/或流程图的每个框以及框图和流程图中的框的组合可以由执行特定功能或动作的专用硬件基系统或者专用硬件和计算机指令的组合来实现。

应当理解,为了清楚起见,在单个实施例的上下文中描述的说明书的某些特征也可以在单个实施例中组合提供。相反,为了简洁起见,在单个实施例的上下文中描述的本文的各种特征也可以单独提供或者以任何合适的子组合提供,或者在本文的任何其他描述的实施例中合适地提供。除非另有说明,否则在各种实施例的上下文中描述的某些特征不应被视为那些实施例的必要特征。

尽管已经结合本发明的具体实施例描述了本文,但显然许多替代、修改和变化对于本领域技术人员来说是显而易见的。因此,以下权利要求包含落入所附权利要求范围内的所有这些替代、修改和变化。

20页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种用于商店内消费者行为事件元数据聚合、数据验证及其用于数据解释的人工智能分析和相关动作触发的系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!