CN110383752B - 紧凑记录协议 - Google Patents

紧凑记录协议 Download PDF

Info

Publication number
CN110383752B
CN110383752B CN201780088189.6A CN201780088189A CN110383752B CN 110383752 B CN110383752 B CN 110383752B CN 201780088189 A CN201780088189 A CN 201780088189A CN 110383752 B CN110383752 B CN 110383752B
Authority
CN
China
Prior art keywords
hash
interaction
interaction data
hashes
computer
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
Application number
CN201780088189.6A
Other languages
English (en)
Other versions
CN110383752A (zh
Inventor
Q·王
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.)
Visa International Service Association
Original Assignee
Visa International Service Association
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 Visa International Service Association filed Critical Visa International Service Association
Priority to CN202310584485.2A priority Critical patent/CN116599677A/zh
Publication of CN110383752A publication Critical patent/CN110383752A/zh
Application granted granted Critical
Publication of CN110383752B publication Critical patent/CN110383752B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/3236Cryptographic 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 using cryptographic hash functions
    • 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/3297Cryptographic 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 time stamps, e.g. generation of time stamps
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种方法,用于有效地存储和验证记录。所述方法可以包括接收第一交互数据的第一散列,以及确定与所述第一散列相关联的交互标识符,然后将第一散列与交互标识符一起存储在数据库中并确定散列树的根散列。另外,该方法还可以包括向公共区块链提供散列树的根散列。本发明的实施例还允许用户轻松向第三方或查询实体呈现记录。此外,可以比在每次个体交互期间都向块发布的先前区块链方法更快地处理交互。

Description

紧凑记录协议
背景技术
在当今的技术环境中,政府或其它一些中央机构通常会跟踪关于个人的重要文档和记录。通常,这些中央管理机构可能会维护纸质记录或可能在集中式数据库中维护电子记录。这些中央管理机构创建的文档和记录通常被视为值得信赖,他人可以使用这些文档和记录来验证有关个人的信息。个人负责保证其记录的安全,或者如果他们希望将其记录复制或呈交给第三方,则必须联系相应的中央机构。
例如,当个人出生时,会为该人创建出生证明,证明他或她出生在特定的时间和地点。然后,可以使用此出生证明来验证个人的公民身份,并向该人发出政府ID和社会保障号码。政府ID和社会保障号码可以稍晚向银行提交以验证该人的身份,并向该人发出银行账户。存入银行账户中的资金和延伸至个人的信用可以被个人用于通过使用印有或存储用户凭据的借记卡和信用卡进行交易。通常,用户凭据被链接到个人,使用凭据进行的交易记录被记录在中央数据库中,作为提供官方会计记录的手段。可以稍后参考记录以验证交易方之间的资金转移。此外,如果个人希望跨国旅行,他们可能会向政府机构提供出生证明、政府ID和/或社会保障卡,以获得护照,然后用于记录和验证个人的旅行活动。
在上述所有示例中,犯罪分子仍然可能变造或伪造记录,这一问题需要重大的金融和人力资源来应对。此外,记录由中央机构维护,这些记录的可信任性基于中央管理机构的可信任性,中央管理机构可能会以恶意方式行事。此外,很难保证记录安全,这可能导致身份盗窃。记录也可能丢失、被破坏或篡改。记录的验证和/或复制可能是繁琐的,因为中央管理机构通常只有有限数量的机构地点为寻求获得和/或创建记录的大量个人提供服务。同时,当前对保持记录去中心化的尝试已经被证实对实际使用所需的安全性和效率方面是不够的。
本发明的实施例单独地以及共同地解决这些问题和其它问题。
发明内容
本公开的实施例涉及用于安全且高效地记录和验证数据的系统和方法。
本发明的一个实施例涉及一种方法,其包括由计算机接收用户与交互实体之间的第一交互的第一交互数据或交互数据的第一散列,以及确定与第一交互数据或第一交互数据的第一散列相关联的交互标识符。所述方法还可以包括由所述计算机将第一交互数据的第一散列与所述交互标识符一起存储在数据库中,以及确定散列树的根散列,所述散列树包括所述第一交互数据的散列以及其他用户的其它交互的其它交互数据的散列。另外,该方法还可以包括由计算机向公共区块链提供散列树的根散列。
本发明的另一个实施例涉及上述方法,还包括由计算机从查询设备接收验证用户与交互实体之间的交互的请求,并提供验证结果或根散列,验证结果指示发生用户与交互实体之间的交互。此外,所述方法可以包括从验证请求中的第一交互数据确定第一散列,使用第一散列和其他用户的其它交互数据的散列来确定散列树,并确定根散列。该方法还可以包括由计算机将根散列与公共区块链上的对应根散列进行比较,并基于比较提供验证结果。
本发明的另一实施例涉及被配置成执行上述方法的服务器计算机。
本发明的另一个实施例涉及用于与用户设备交互的交互设备。所述交互设备包括:处理器;耦合至处理器的网络接口;以及耦合至处理器的非瞬态计算机可读介质。所述计算机可读介质包括用于指令处理器实施一种方法的代码,所述方法包括:从用户的用户设备接收交互数据;产生交互数据的散列;向服务器计算机发送产生记录的请求,所述请求包括交互数据或交互数据的散列;以及从服务器计算机接收确认记录交互数据或交互数据的散列的响应,其中由服务器计算机在数据库中存储交互数据或交互数据的散列,之后向公共区块链提供散列树的根散列,所述散列树包括交互数据的散列以及其他用户的其它交互的其它交互数据的散列。
下文进一步详细描述本发明的这些和其它实施例。
附图说明
图1示出了根据本发明实施例,用于记录和验证交互的系统的框图。
图2示出根据本发明的实施例的处理服务器计算机的框图。
图3示出了根据本发明实施例的数据存储装置的图示。
图4示出了根据本发明实施例,记录交互的泳道图。
图5示出了根据本发明实施例,验证交互的泳道图。
具体实施方式
本发明的实施例涉及用于记录和验证交互的系统。
在论述本发明的一些实施例的细节之前,对一些术语的描述可有助于理解各种实施例。
“服务器计算机”可包含功能强大的计算机或计算机集群。举例来说,服务器计算机可以是大型主机、小型计算机集群或像单元一样工作的一组服务器。在一个示例中,服务器计算机可以是耦合到网络服务器的数据库服务器。服务器计算机可耦合至数据库,且可包含用于服务于来自一个或多个客户端计算机的请求的任何硬件、软件、其它逻辑,或前述内容的组合。服务器计算机可包括一个或多个计算设备,并可使用多种计算结构、布置和编译中的任一种来服务于来自一个或多个客户端计算机的请求。
“应用服务器”可以是被配置成为用户设备提供远程支持的任何计算设备。应用服务器可以与安装在用户设备上并且从用户设备执行的计算机可执行指令集(例如,移动应用程序)相关联。应用服务器可以为用户设备提供任何适当的服务和/或处理。例如,应用服务器可代表用户设备执行计算。在一些实施例中,应用服务器可维护一个或多个用户的账户。在一些情况下,应用服务器可以能够为个人生成电子身份,这可用于在交互期间认证个人。应用服务器还可以存储与用户设备的操作相关的任何协议和/或用户偏好。
“用户设备”可以是能够与另一电子设备(例如,应用服务器)建立通信会话且传输/接收来自所述设备的数据的任何电子设备。用户设备可以包括下载和/或执行移动应用程序的能力。用户设备可以包括移动通信设备(例如,手机)、个人计算机、笔记本电脑、可穿戴设备和/或物联网设备,例如智能电视、冰箱、恒温器等。用户设备的其它示例可以包括具有远程通信能力的移动车辆(例如,汽车、摩托车、船舶等)。
“移动通信设备”可以是具有与通信有关的主要功能的任何便携式电子设备。例如,移动通信设备可以是智能手机、个人数据助理(PDA),或任何其它合适的手持设备。
“区块链”可以是一种分布式数据库,其维护不断增长的记录列表,以防篡改和修订。区块链可以包含多个交互记录区块。区块链中的每个块还可以包含时间戳和前一个块的链接。例如,每个区块可以包含或附加到上一个区块的散列。换句话说,区块链中的交易记录可存储为一系列“块”或包含在给定时间周期内发生的数笔交易的记录的永久性文件。在块完成并经过验证之后,可以通过合适的节点将块附加到区块链。在本发明的实施例中,区块链可以是分布式的,并且可以在验证网络中的每个节点处维护区块链的副本。验证网络中的任何节点随后可以使用区块链来验证交易。区块链的安全性可以使用加密方案获得。
“块标头”可以是区块链中数据块的标头。块标头可以以80字节的格式而串行化,然后作为区块链的数据块写入算法的一部分进行散列处理。块标头可以包括块版本号的存储器分配以及到前一块的链接,以确保在还更改当前数据块的块标头时不会更改前一块。块标头还可以包括Merkle根,其衍生自块中包含的所有交互或交易的所有散列,从而确保不修改块标头就不能修改所记录的任何交互数据。块还可以包括指定处理计算机开始写入块标头的时间的时间戳。
“散列树”可以是包括组织成层级树结构的多个散列的数据结构。散列树中包含的散列可以被级联并根据指定次序进行进一步散列化,以产生可以稍后参考的根散列。例如,散列树可根据二元树结构进行组织。“Merkle树”可以是通过如下方式构建的散列树:对配对数据进行散列化,然后对结果进行配对和散列化,直到单根散列仍然保留,剩余的根散列为Merkle根。
“Merkle根”可以是Merkle树的根节点或根散列,以及树中所有散列对的后代。在给定区块链中,区块链中每个块的每个块标头都可能需要包括从该区块中的所有交易或交互繁衍的有效Merkle根。
“密码密钥”可以是任何位串,以供密码算法使用以将明文变换成密文或将密文变换成明文。密码密钥可包含对称密钥和非对称密钥。密码密钥可用于对交易进行签名和/或验证签名的交易。例如,可使用私钥对密码货币交易进行签名。可接着使用对应于私钥的公钥来验证签名的交易。
“电子身份”可以是用于识别实体(例如,个人或装置)的任何合适的字符或符号串。在一些实施例中,电子身份可以从与用户相关联的信息用数学方法导出。例如,在一些实施例中,电子身份可以是通过对多个实体可用的一个或多个输入值(客户姓名、国家代码等)进行散列运算计算出的值。以此方式,电子身份可以由具有先决条件信息的任何实体独立生成。电子身份可以是被改变(例如,散列运算和/或加密)的与用户相关联的信息。例如,在一些实施例中,电子身份可以从国家代码、客户姓名、出生日期和社会保障号的最后四位数字的组合导出,例如SHA256(USA*JOHNSMITH*19700101*1234)。对此值进行散列运算可能导致看似随机的字符串,例如754WD2E2513BF546050C2D079FF5D65AB6E318E,这可以是电子身份。在一些实施例中,电子身份与密码相关联,所述密码是为了访问与电子身份相关联的任何交互记录提供的。电子身份有时可被称为“eID”、电子标识符或电子标识数据。
“电子记录”可以是以电子方式存储的一个或多个交易或交互的任何记录。例如,电子记录可以包括与电子身份相关联的许多个交互记录。在一些实施例中,可以通过识别与特定电子身份相关联的分布式环境中记录的每个交互记录来编译电子记录。在一些实施例中,电子记录可以包括由电子身份相关联的用户生成的并使用与所述用户相关联的私钥签名的部分。在一些实施例中,电子记录可以是区块链的形式或者可以包括在区块链中。
“交互记录”可以是发生与电子身份相关联的用户和另一实体之间的交易或交互的任何指示。交互的示例可以包括进入楼宇、访问交通区域、访问敏感数据、进行付款交易、投票等。交互记录可以包括与交互方和发生的交互相关的可验证信息。
“私钥”是一种由一方保密的密码密钥。公钥和私钥可以用于公私加密方案或诸如公共密钥基础架构(PKI)等数字签名方案中。
“公钥”可以是一种分发给某个实体或可供某个实体(而不是持有对应私钥的一方)使用的密码密钥类型。在一些实施例中,密钥可以公开获取,而在其它情况下,它可以被分布到网络的特定节点。可以根据加密方案使公钥可用于加密或验证信息。
术语“验证”和其派生词可以指利用信息来确定基础主题在一组给定的情况下是否有效的过程。验证可以包含任何信息比较以确保某些数据或信息是正确的、有效的、准确的、合法的和/或信誉良好的。在本公开中描述的一些验证示例中,电子记录可以使用私钥进行签名,并使用公钥进行验证。
“验证网络”可以是被配置成提供对交易的验证的任何一组节点(计算机系统和部件)。验证网络可包括利用若干节点的分布式计算环境,所述若干节点使用一个或多个计算机网络或直接连接经由通信链路互连。验证网络可在任何适当网络上实施,所述网络包含内联网、因特网、蜂窝式网络、局域网或任何其它此类网络或其组合。在一些实施例中,验证网络中的每个节点都可以是属于特定组或组织的计算装置。
现在将描述本发明的一些实施例的细节。
图1示出了根据本发明实施例的系统100的框图。系统100可以包括用户设备102,用户101可以使用该设备与系统100的其它设备交互。通过使用存储在用户设备102上的应用程序可以发生交互,这可以由应用服务器110支持。例如,应用程序可以是电子护照应用程序、数字钱包应用程序、移动银行应用程序、电子票单应用程序或可用于进行交互和/或记录用户活动的任何其它应用程序。
系统100还可以包括用于在用户101与交互实体120A之间进行交互或交易的交互设备121A。交互设备121A的示例可以包括POS终端、个人计算机、自助机、移动设备或能够在与用户101交互期间生成、向和从用户设备102传送和接收数据的任何其它设备。交互设备121A可以包括用于在交互期间执行任务的交互API 122A,交互例如是根据本发明的实施例产生、接收或传输交互数据。例如,交互API 122A可以是由支付处理网络或移动应用程序开发者提供给交互实体120A的软件,所以交互实体120A可接受来自用户101的付款。交互实体120A的示例可以包括商家、政府机构、运输提供商、个人用户等。
系统100还可以包括查询设备121B,其可以是根据本发明的实施例用于查询和/或验证记录的设备。查询设备121B可以包括查询API 122B,以在验证记录期间执行任务,例如根据本发明的实施例产生查询或验证请求。查询设备122B可以是查询实体120B,其可以是寻求验证记录的交互的任何实体。查询实体120B的示例可以包括政府机构、银行、商家、支付处理器、房地产商等。
根据本发明的实施例,交互设备121A和查询设备121B可以通过网络130与一个或多个处理服务器计算机通信,例如第一处理服务器计算机141和第n处理服务器计算机142。第一处理服务器计算机141可以维护一个或多个数据库,诸如第一数据库141,并且类似地,第n处理服务器计算机142可以维护一个或多个数据库,诸如第n数据库142。根据一个实施例,一个或多个处理服务器计算机可以是支付处理网络,例如VisaNet。系统100还可以包括区块链150,其可以是由加密数据块组成的公开分布式数据库或分类账。系统100的任意数量的设备,例如应用服务器110、用户设备102、交互设备122A、查询设备121B、第一处理服务器计算机141和/或第n处理服务器计算机142,可以存储区块链150的至少一部分。区块链150中的每个块可以包含与一个或多个交互相关的数据、对一组交互的援引或其散列。区块链150中的每个块可以是独特的、不可变的,并且在系统100的设备之间可以验证。
根据本发明的实施例,用户101可以首先通过使用用户设备102与应用程序服务器110建立通信来注册账户。这可以通过存储在应用程序服务器110提供和/或支持的用户设备102上的应用程序来完成。应用程序可用于将标识用户101的数据存储到用户设备102上。标识用户101的数据可以包括对用户唯一的信息,例如姓名、地址、电话号码、社会保障号码、电子邮件地址等和/或其散列。可以通过使用硬件和/或软件安全模块将标识用户101的数据安全地存储到用户设备102上,例如通过管理数字认证密钥和/或密码处理。应用程序可以进一步包括用于接收和传输与用户101和交互实体120A之间执行的交互相关的数据的指令,所述数据诸如时间戳、交互位置、交互标识符、发行方标识符、账户标识符、用户ID、交易ID、交易金额、设备ID、eID、商家类别代码和/或其散列。
在进行交互时,用户101可以向交互实体120A的交互设备121A呈现用户设备102。交互可以由用户101和/或交互实体120A发起,并且交互设备121A可以生成对来自用户101的数据的请求。对数据的请求可从交互设备121A传输到用户设备102。用户设备102和交互设备121A之间的通信可以通过任何数量的数据传输方式,例如,通过任何无接触(例如,蓝牙、近场通信、RFID、WiFi等)或电接触连接来实现。例如,用户设备102可以包括NFC芯片,并且交互设备121A可以耦合至或包括NFC读取器,并且当用户设备102紧靠读取器时,可以将数据传送到用户设备102并且可以从用户设备接收数据。用户设备102可以通过执行存储在用户设备102中存储的应用程序中存储的指令来从交互设备121A接收数据请求。例如,用户设备102可以是运行护照应用程序的移动设备,用户101可以是在机场接受安全筛查的乘客。在本示例中,交互实体120A可以是安全机构,并且可以请求用户101将其标识数据从用户设备102传送到交互设备121A,以便进入终端。
用户设备102可以被配置为接收对数据的请求,以及被配置成生成并传输包括所请求数据的响应。例如,用户设备102可以被配置成接收标识用户101的电子身份或eID的请求,并且可进一步被配置为将eID传送到数据响应消息中的交互设备121A。在一个实施例中,所请求数据的传输可以通过用户101的认证数据的表示来发起,例如生物特征识别样本或密码。
交互设备121A可以被配置成从用户设备102接收所请求的数据,并且可以进一步被配置为将与交互相关的交互数据和/或其散列传输到处理服务器计算机,诸如第一处理服务器计算机141或第n处理服务器计算机142。在一个实施例中,交互可以作为交互记录而被生成,这些交互记录使用数字签名密码方案来由所涉及的交互方进行数字签名。交互设备121A可以通过执行由交互API 122A提供的指令来生成、散列化交互数据并通过网络130将其传送到处理服务器计算机上。处理服务器计算机可以接收交互数据和/或交互数据的散列,并且可以在数据库中,诸如第一数据库141或第n数据库142中存储交互数据。处理服务器计算机然后可以进一步确定与交互数据或交互数据的散列相关联的交互识别符,并且可以在数据库中存储交互标识符并将其链接到其中的交互数据。例如,处理服务器计算机可以是政府服务器计算机,该计算机可以存储航班乘客的姓名、出生日期、地址、航班详细信息以及交互时间戳。散列可以由处理服务器计算机链接到可稍后在稍后时间点参考的交互标识符。
第一处理服务器计算机141和/或第n处理服务器计算机142还可以被配置成确定散列树的根散列。散列树可以包括用于第一交互的第一交互数据的散列(即,用户101与交互实体120A之间进行的交互),以及用于其他用户所执行的其它交互的其它交互数据的散列。在一个实施例中,其他用户所执行的其它交互的其它交互数据可以是与第一交互类似的时间和地点进行的交互对应的数据。处理服务器计算机可以接收交互数据或交互数据的散列,并且可以在数据库中,诸如第一数据库141或第n数据库142中存储交互数据。根散列可以是构成散列树的所存储散列的散列,并且可以由第一处理服务器计算机141或第n处理服务器计算机142提供到公共区块链,以便可在稍后的时间内参考散列树。根散列可以例如与可写入发布到区块链150的块的标头中的Merkle根相关联。然后,区块链150可以被更新,并且可以将更新广播或传送到均存储区块链150的副本的至少一部分的一个或多个节点。例如,可以将更新传送到应用程序服务器110,其可以更新其区块链150的拷贝,并且可以将更新传送到用户设备102。
在稍后的时间点,查询实体120B可能希望查询或验证用户101执行的一个或多个交互。例如,查询实体120B可以是希望验证用户101的身份和旅行活动的政府机构。查询实体120B可以要求或请求用户101提供其身份证明,并且可以使用查询设备121B来查询、获取和验证与由用户101进行的交互相关的记录。交互可以是这样的情况;其中,用户101通过安全检查点或护照控制区,针对交互的交互数据的散列可能已经存储在诸如第一数据库141或第n数据库142的数据库中。散列可以进一步与其他用户进行的其它交互被散列化成根散列,这些散列可能已经由第一处理服务器计算机141或第n处理服务器计算机142发布到区块链150上。
根据本发明的实施例,用户101可以使用用户设备102向查询设备121B提供和发送标识数据。所请求的数据可以是例如以前交互的电子记录,并且可以包括交互数据,包括用于在用户101与交互实体121A之间进行的第一交互的第一交互数据或其散列。查询设备121B可以被配置为接收交互数据或交互数据的散列,生成包括交互数据或交互数据的散列的验证请求消息,并将验证请求发送到处理服务器计算机,诸如第一处理服务器计算机141或第n处理服务器计算机142。处理服务器计算机可以接收包括交互数据或交互数据的散列的验证请求消息,并且可以确定和/或识别散列。例如,处理服务器计算机可以读取验证请求消息中包含的数据,并且可以识别出数据对应于链接到交互ID“2142512”的散列“05901ALSKDJF12”。
处理服务器计算机然后可以使用该散列以及与其他用户对应的其它交互数据的其它散列来确定散列树。例如,处理服务器计算机可以查询数据库以发现其它交互数据的其它散列的散列,并将查询的散列与映射表进行比较,映射表指定将第一散列和所查询散列一起进行散列化的次序。然后,处理服务器计算机可以检索已查询的散列并根据散列树的散列化次序对其进行散列化,以确定根散列。例如,处理服务器计算机可以通过级联散列并将其输入到SHA256()中来确定第一散列和第二散列是否应当一起被散列化。处理服务器计算机可以进一步确定应当将对第一散列和第二散列进行散列化得到的输出与第三散列和第四散列的散列一起输入到SHA256()中,以便输出根散列。
然后,可以将根散列与区块链150上的对应根散列进行比较。如果区块链150上存在包括所确定的根散列的数据块,则交互数据可以被认为是经过验证的。否则,如果区块链150上不存在根散列,则交互数据可能是非法的,因此未经验证。基于比较的验证结果可以由处理服务器计算机生成并发送到查询设备121B。
根据替代实施例,处理服务器计算机可以被配置成将所确定的根散列发送到查询设备121B,并且查询设备121B可以将接收的根散列与区块链150或区块链150的一部分比较,以确定是否存在匹配,并且因此确定验证结果。
图2示出根据本发明的实施例的处理服务器计算机的框图。处理服务器计算机200可以是配置成处理和验证诸如图1的第一处理服务器计算机141和第n处理服务器计算机142的交互记录的任何处理服务器计算机。处理服务器计算机200可以包括处理器210,用于处理或执行存储在计算机可读介质230中的指令。处理服务器计算机200还可以包括一个或多个网络接口220,其可以是充当处理服务器计算机200和网络(诸如图1的网络130)的其它节点之间的连接点的软件和/或硬件接口。
计算机可读介质230可以是可以耦合至处理器210并可以存储可以由所述处理器执行的指令的非瞬态计算机部件。例如,计算机可读介质230可以是存储器,例如随机存取存储器(RAM)或只读存储器(ROM),其包括用于实施根据本发明实施例的方法的代码。计算机可读介质230可以包括一个或多个模块,诸如通信模块230A、授权模块230B、散列模块230C、映射模块230D、根确定模块230E、块写入模块230F、树确定模块230G以及验证模块230H。处理服务器计算机200还可以耦合至一个或多个数据库,诸如安全数据库200A和公共区块链200B。安全数据库200A可以是例如图1的第一数据库141或第n数据库142,并且可以被配置成仅处理服务器计算机200在数据被写入公共区块链200B之前可以读取或更新所存储的数据。安全数据库200A可以是例如关系数据库。公共区块链200B可以是诸如图1的区块链150的公开分布式数据库,并且可以包括可由网络节点验证的不可改变数据。
根据本发明的实施例,通信模块230A可以包括用于接收、生成、格式化和通过网络接口220传输标准化消息的指令。例如,通信模块230A可以包括用于接收包括交互数据的消息的指令,并且还可以包括用于接收验证请求消息并发送与查询记录的交互相关的验证响应消息的指令。
授权模块230B可以包括基于一组预定标准授权交互的指令。例如,授权模块230B可以包括用于通过评估相关风险和/或将交互数据与已知的非法活动特征进行比较来接受或拒绝接收的交互记录的逻辑。
散列模块230C可以包括使用散列算法对交互数据或交互数据的散列进行散列化的指令。例如,散列模块230C可以包括将第一散列和第二散列输入到SHA256()中以输出中间散列的指令。散列模块230C还可以包括用于除了将第三散列和第四散列的中间散列之外,还将第一散列和第二散列的中间散列输入到SHA256()中的指令,以产生散列树的根散列。散列树可以是散列的树(诸如Merkle树),并且可以包括存储在安全数据库200A中的第一、第二、第三和第四散列及其中间散列。
映射模块230D可以包括用于确定与所接收的交互数据或交互数据的散列相关联的交互标识符的指令。映射模块230D还可以包括用于确定散列化交互数据的散列的标识符,并在映射表或关系数据库中彼此相互链接的指令。例如,映射模块230D可以包括用于将标识符分配到第一交互数据的第一散列的指令,并且还可以包括用于将标识符分配到第二交互数据的第一散列和第二散列的中间散列的指令。映射模块230D可以在数据库表的列中存储交互数据的散列以及它们的中间散列,并且可以在数据库表的另一列中将散列的每个链接到其分配的标识符。映射模块230D还可以包括用于确定给定的标识符集合如何在一起被散列化以形成给定散列树的指令,诸如“ID1+ID2=ID5;ID3+ID4=ID6;ID5+ID6=ID7。”根据一个实施例,通过映射模块230D确定的映射表可以存储在诸如安全数据库200A的安全数据库中。
根确定模块230E可以包括用于指令处理服务器计算机200以确定给定散列树的根散列的可执行指令。例如,根确定模块230E可以包括用于确定映射表的多个散列并基于由映射模块230D指定的次序将它们一起散列化以产生根散列的指令。根散列可以稍后与在公共区块链中块的标头中包括的Merkle根相关联。
块写入模块230F可以包括用于向区块链(例如公共区块链200B)发布数据的可执行指令。例如,块写入模块230F可以包括用于向公共区块链提供散列树的根散列的指令。可以通过将根散列与包括在新生成块的标头中的Merkle根相关联来向区块链提供根散列。新块的标头可进一步包括前一块的散列(即,在前一块的标头中存储的Merkle根)和交易时间戳。块写入模块230F可以包括用于生成新块、确定区块链中的前一个或最近一个块的Merkle根,以及基于当前时间确定时间戳的指令。块写入模块230F还可以包括用于向新块的标头中写入数据,诸如时间戳、根散列以及前一块的Merkle根的指令,以及通过网络广播新块的指令。
树确定模块230G可以包括使用接收的散列来确定散列树的指令。例如,处理服务器计算机200可以接收包括交互数据或交互数据的散列的验证请求消息,树确定模块230G可以包括用于参考针对其它交互数据的一组散列和/或交互数据的散列的中间散列的映射表的指令。处理服务器计算机200可以进一步使用接收的散列和其它交互数据的该组散列和/或其它交互数据的散列的中间散列来确定散列树,并可以确定散列树的根散列。根据一个实施例,树确定模块230G可以通过级联散列并将其输入到SHA256()中来确定散列树的根散列。
验证模块230H可以包括用于比较数据以产生验证结果的指令。例如,验证模块230H可以包括用于将所确定的散列树的所确定根散列与公共区块链诸如公共区块链200B上的对应根散列进行比较的指令。验证模块230H还可以包括用于基于比较提供验证结果的指令,在这种比较中,如果比较产生匹配,则用户和交互实体之间的第一交互被认为是经过验证的。在一个实施例中,验证模块230H可以包括用于向查询设备提供所确定的根散列的指令,使得查询实体可以执行比较并确定匹配。验证结果和/或根散列可以包括在验证响应消息中。
图3示出了根据本发明实施例的数据存储装置的图示。图3示出了针对多个交互的多个交互数据,诸如交互数据301A、301B、301C、301D、305A、305B、305C、305D、309A、309B、309C和309D。根据本发明的实施例,多个交互数据中的每个交互数据都可以被散列化并存储在数据库中。例如,交互设备可以与第一组用户进行第一组交互,并且可以生成每个对应交互数据的散列,诸如散列301a、301b、301c和301d。散列可以由交互设备传送到第一处理服务器计算机,并存储在第一数据库中,例如数据库301X中。第一处理服务器计算机可以进一步从存储的散列产生中间散列,例如中间散列301ab和中间散列301cd。第一处理服务器计算机然后可以级联并散列化中间散列301ab和301cd,以生成根散列301。
一旦生成了根散列301,第一处理服务器计算机就可以将根散列301提供到公共区块链的块301Y。块301Y可以包括块标头301H,其可以包括链接到前一块310和Merkle根311。Merkle根可以包括一个或多个参考散列,例如参考303、参考302和根散列301,其可以各自为参考一个或多个交易或者由其它交互实体进行或处理计算机使用公共区块链执行或处理的所记录交易的散列。参考散列可以表示个体交易、交易组、或与一个或多个交互实体进行的交互相关的任何代表性数据的个体散列。这可能包括发布到公共区块链的根散列,如本文包含的描述所解释的,或者还可以包括通过某些其它手段发布到区块链的任何其它散列数据,这些其它手段可能不是本文论述的,但尽管如此可以代表公开可验证数据。根据一个实施例,参考303、参考302和根散列301可以在Merkle树中一起被散列化以产生Merkle根311。本发明的实施例可以允许散列树301的根并入具有个体交易数据的散列的典型区块链中,从而使本发明的实施例自适应且灵活。
交互设备可以与第二组用户进行第二组交互,并且可以生成每个对应交互数据的散列,诸如散列305a、305b、305c和305d。散列可以由交互设备传送到第二处理服务器计算机,并存储在第二数据库中,例如数据库305X中。第二处理服务器计算机可以进一步从存储的散列产生中间散列,例如中间散列305ab和中间散列305cd。第二处理服务器计算机然后可以级联并散列化中间散列305ab和305cd,以生成根散列305。
一旦生成了根散列305,第二处理服务器计算机就可以将根散列305提供到公共区块链的块305Y。块305Y可以包括块标头305H,其可以包括到前一块311的链接。到前一块311的链接可以是前一块的块标头301Y中包括的Merkle根311。块标头305Y可以进一步包括Merkle根312。块305Y的Merkle根312可以包括一个或多个参考散列,例如参考306、根散列305和参考304。根据一个实施例,参考306、根散列305和参考304可以在Merkle树中一起被散列化以产生Merkle根312。
交互设备可以与第三组用户进行第三组交互,并且可以生成每个对应交互数据的散列,诸如散列309a、309b、309c和309d。散列可以由交互设备传送到第三处理服务器计算机,并存储在第三数据库中,例如数据库309X中。第三处理服务器计算机可以进一步从存储的散列产生中间散列,例如中间散列309ab和中间散列309cd。第三处理服务器计算机然后可以级联并散列化中间散列309ab和309cd,以生成根散列309。
一旦生成了根散列309,第三处理服务器计算机就可以将根散列309提供到公共区块链的块309Y。块309Y可以包括块标头409H,其可以包括到前一块312的链接。到前一块312的链接可以是前一块的块标头305Y中包括的Merkle根312。块标头305Y可以进一步包括Merkle根313。块309Y的Merkle根313可以包括一个或多个参考散列,例如根散列309、参考308和参考307。根据一个实施例,根散列309、参考308和参考308可以在Merkle树中一起被散列化以产生Merkle根313。
当查询实体希望验证交互是否发生且有效时,查询实体可以使用查询设备来生成验证请求消息。验证请求可以包括对应于经受查询或其散列的交互的交互数据。在一个实施例中,由查询设备从用户的用户设备接收交互数据或交互数据的散列。查询设备然后可以向处理服务器计算机,例如图2的处理服务器计算机200,发送包括交互数据或交互数据的散列的验证请求消息。处理服务器计算机可以接收验证请求消息,并且可以从其中包含的数据确定和/或识别散列。例如,处理服务器计算机可以接收验证请求消息,并且可以确定验证请求消息包括散列301a,其可以链接到特定的交易ID或交互标识符。在替代实施例中,处理服务器计算机可以接收验证请求消息中的交互数据,并且可以将交互数据输入到SHA256()以确定散列301a。
处理服务器计算机然后可以使用散列301a和其它交互数据的散列来确定散列树。例如,处理服务器计算机可以查询映射表以确定链接到针对包括散列301a的散列树中包括的其他用户的交互的其它交互数据的其它散列的交易ID列表。处理服务器计算机可以确定包括散列301a的散列树还包括散列301b、散列301c、散列301d和其中间散列。处理服务器计算机然后可以确定所确定散列树的根散列。例如,处理服务器计算机可以级联散列301a和散列301b并将其输入到SHA256()中以产生散列301ab。处理服务器计算机还可以级联散列301ab和散列301cd并将其输入到SHA256()中以产生根散列301。
然后,处理服务器计算机可以通过将确定的根散列与公共区块链上的对应根散列比较来确定验证结果。在一个实施例中,处理服务器计算机可以查询或扫描公共区块链,以发现包括标头的块,所述标头包括与所确定根散列相关联的Merkle根。例如,处理服务器计算机可以扫描公共区块链,并且可以确定块301Y的Merkle根311与根散列301相关联。然后,处理服务器计算机可以比较与块相关的数据,以确定该块是否包括匹配所确定的根散列的根散列。例如,处理服务器计算机可以比较所确定根散列301的每个字符与每个参考散列303、302、301中的每个字符以确定匹配。根据一个实施例,处理服务器计算机还可以确定数据块中的其它数据是否匹配预期结果,例如与前一块的链接。可以理解,还可以执行额外验证检查,例如校验和验证和数字签名验证。
如果所确定的根散列与公共区块链上的相应根散列匹配,则可生成“经验证”的验证结果。否则,可能会生成“无匹配”或“无效数据”的验证结果。处理服务器计算机可以生成包括验证结果的验证响应消息,并且可以将验证响应消息发送到查询设备,以便查询实体可以采取适当动作。根据一个实施例,验证结果可以包括确定的根散列,并且查询设备可以接收所确定的根散列,并将其与公共区块链进行比较,以确定验证结果。
图4示出了根据本发明实施例,记录交互的泳道图。具体地说,图4描绘了用户401、用户设备402、应用程序服务器410、交互设备421A、处理服务器计算机440和区块链450之间的数据传输和存储。用户401、用户设备402、应用程序服务器410、交互设备421A、处理服务器计算机440和块450可以分别对应于用户101、用户设备102、应用程序服务器110、交互设备121A、第一处理服务器计算机141或第n处理服务器计算机142以及图1的区块链150。
根据图4,用户401通过在S401中向其用户设备402提供或传送信息来发起第一交互。例如,用户设备402可以是移动设备,并且用户401可以打开存储在设备上的应用程序以向所提供的数据字段中输入与交互相关的信息。例如,应用程序可以是移动投票应用程序,该应用程序以显示给用户的选票的形式提供数据字段,并允许用户输入或选择他们希望为其投票的候选者的姓名。用户设备402可以接收由用户401传达的信息,并且可以从所接收的信息生成数据。
在步骤S402中,用户设备402可以从用户401提供的信息确定用户S401打算发起互动,并且可以生成并向交互设备421A传送交互请求消息。例如,用户401可以确定用户401已经做出了投票选择,然后可以生成交互请求消息并发送到交互设备421A,使得用户的投票可以被投出或记录。
交互设备421A可以接收交互请求消息,并且可以通过在S403中发送数据请求消息来从用户设备402请求交互数据。举例来说,交互设备421A可以是可以接收投票请求的投票机器,并且可以继续发送请求以获取选民识别和投票选择等必要交互数据。
在S404中,用户设备402可以接收数据请求消息,并且可以从用户401请求凭据用于认证。例如,用户设备402可以提示用户401提供其生物特征识别,以便可以访问交互所需的标识数据。在S405中,用户401然后可以向用户设备402提供其凭据。例如,用户401可以向用户设备402的生物特征读取器呈现其生物特征样本(例如,指纹读取器、前向相机等)。在S406中,用户设备402可以接收用户401的凭据,并且可以基于其有效性对其进行认证。例如,用户设备402可以从用户401呈现的生物特征样本生成生物特征样本模板,并且可以将生物特征样本模板与存储的生物特征参考模板比较,以确定匹配(例如,使用面部识别、语音识别软件等)。如果在预定阈值之内模板匹配,则凭据可以被认为有效,并且用户401得到认证。
在S407中,在认证用户401时,用户设备402可以生成并向交互设备421A传送包括所请求的交互数据的数据响应消息。例如,用户设备402可以生成包括用户401的姓名、地址、识别号和投票选择的数据响应消息,并且可以将数据响应消息传送到交互设备421A。在一个实施例中,交互设备可以包括逻辑,以基于接收的交互数据发起动作。例如,交互设备421A可以包括用于验证用户数据的逻辑和/或用于增加计数器的值(例如针对特定候选人的投票计数)的逻辑。在其它示例中,交互设备421A可以包括用于授予访问入口点、打开门、提供诸如食品或消费品的资源、提供服务等的逻辑。
在S408中,交互设备421A可以接收数据响应消息,并且可以生成其中包含的交互数据的散列。在一个实施例中,交互设备421A可以包括API或软件,所述API或软件可以接收数据响应消息中包含的交互数据,并且可以将交互数据输入到诸如SHA256()的散列算法。例如,交互设备421A可以通过级联并将它们输入到散列算法中,将用户的姓名、地址、识别号码和投票选择进行散列化,以获得“90172AKLSD3JG9023U59S135”,散列算法例如是SHA256(“John Smith”,“5703Bishops Glen Ct.Houston,TX77084”,“893-34-3243”,“Candidate A”)。在S409中,交互设备421A可以将交互数据的散列提交到处理服务器计算机440以进行记录。
处理服务器计算机440可以接收交互数据的散列,并且可以在S410中确定交互的交互标识符。处理服务器计算机440然后可以将所确定的交互标识符链接到交互数据的散列。在一个实施例中,处理服务器计算机440还可以基于当前时间生成时间戳,并且可以将时间戳链接到交互数据的散列。例如,处理服务器计算机440可以在关系数据库中将交互标识符“投票:32352”和时间戳“2020-11-03T03:30:38Z”链接到散列“90172AKLSD3JG9023U59S135”。
在S411中,处理服务器计算机440可以将散列存储在安全数据库中。在交互设备421A处进行并由处理服务器计算机440存储若干其它交互之后,处理服务器计算机440可以在S412中生成散列树,其中包括第一次交互的交互数据的散列以及其它交互的交互数据散列。处理服务器计算机440然后可以在S413中确定散列树的根散列。在S414中,处理服务器计算机440可以向区块链450提供根散列,以便可以稍后验证散列树中包含的交互。在S415中,根散列可以被发布到区块链450上,并且更新的区块链可以被广播到包括应用程序服务器410的区块链网络的节点。
图5示出了根据本发明实施例的验证的泳道图。根据图5,可以在用户设备502、查询设备521B、处理服务器计算机540和公共区块链550之间执行验证,它们可分别对应于图1的用户设备102、查询设备121B、第一处理服务器计算机141或第n处理服务器计算机142以及区块链150。
根据图5,查询设备521B可以在S501中发送请求要验证的交互数据的数据请求消息。例如,用于验证投票的适当记录的查询设备521B可以从用户设备502请求涉及已投特定投票的交互数据。在S502中,用户设备可以接收数据请求消息,并且可以生成并向查询设备521B传输包括交互数据或交互数据的散列的数据响应消息。例如,数据响应消息可以包括字符串,“90172AKLSD3JG9023U59S135”,其可以是用户姓名、地址、识别号码和投票选择的散列,SHA256(“John Smith”、“5703Bishops Glen Ct.Houston、TX 77084”、“893-34-3243”、“候选人A”)。查询设备521B可以接收数据响应消息,并且可以生成包括交互数据的散列的验证请求消息。查询设备521B可以在S503中将验证请求消息发送到处理服务器计算机540。
在S504中,处理服务器计算机540可以接收验证请求消息,并且可以确定或识别其中包含的散列。在一个实施例中,处理服务器计算机540可以查询数据库以发现链接到所接收的散列的交互标识符。例如,处理服务器计算机540可以在验证请求消息中接收到散列“90172AKLSD3JG9023U59S135”,并且可以查询关系数据库,以确定该散列链接到交互识别符“投票:32352。”
在S505中,处理服务器计算机540可以使用识别的散列以及与其他用户的其它交互的其它交互数据的其它散列来确定散列树。例如,处理服务器计算机540可以查询关系数据库,并确定交互标识符“投票:32352”包括在一散列树中,该散列树还包括“投票:12425,”、“投票:24242”和‘投票:30023。”在S506中,处理服务器计算机540可以通过将所查询交互数据的所接收散列与所确定散列树中的其它散列一起散列化来确定根散列。在一个实施例中,可以通过参考映射表来确定散列树的根散列。例如,处理服务器计算机540可以参考表格并通过按照以下次序将散列输入到散列算法中来确定根散列:“投票:12425+投票:24242=k29350;投票:32352+投票:30023=125jp3;k29350+125jp3=根散列=102JKJ1293。”
在S507中,处理服务器计算机540可以查询或扫描公共区块链550以将确定的根散列与区块链550上的对应根散列进行比较。在S508中,处理服务器计算机540可以确定区块链上包括所确定根散列的块。在S509中,处理服务器计算机540可以将已确定数据块中的数据与预期数据进行比较以确定验证结果。例如,处理服务器计算机540可以确定区块的标头中包含的Merkle根和时间戳与预期值匹配并且可以确定“已验证”的验证结果。在S510中,处理服务器计算机540可以生成并向查询设备521B发送包括验证结果的验证响应消息。查询设备521B可以接收包括验证结果的验证响应消息,以采取适当的动作。例如,查询设备521B可以接收验证响应消息,并且可以在查询设备521B的显示器上显示验证结果。根据一个实施例,验证响应消息可以包括确定的根散列,并且查询设备可以将根散列与区块链550进行比较以进行验证。
本发明的实施例提供了与现有技术相比的若干技术优势,因为它们提供了安全和高效的信息或数据记录的方法。具体地说,根据本发明的实施例,数据被去中心化,并且可以在私下存储在用户设备上的同时被公开验证。本发明的实施例还允许用户轻松向第三方或查询实体呈现记录,并且以不需要复制文件或要求用户与中央管理机构建立信任的方式。此外,本发明实施例教导的数据记录方法相对于中心化方法提供了更大安全性,因为它们不易受到注入攻击或不易以不希望的方式暴露或利用数据。此外,通过在记录到区块链之前在本地存储交互数据的多个散列并将其一起散列化到散列树的根散列中,可以比在每次个体交互期间向块发布的先前区块链方法更快地处理交互。这可以用于零售环境中,或者预计在相对较小的时间段内发生若干交互(例如,每秒数千次交易或交互)的任何环境中。
还应理解,本发明的任何实施例都可使用硬件(例如专用集成电路或现场可编程门阵列)和/或使用计算机软件以控制逻辑的形式被实施,其中通用可编程处理器是模块化的或集成的。如本文中所使用,处理器包含单核处理器、在同一集成芯片上的多核处理器,或在单个电路板上或网络化的多个处理单元。基于本公开和本文中所提供的教示,本领域的普通技术人员将知道并且了解使用硬件和硬件与软件的组合来实施本发明的实施例的其它方式和/或方法。
本申请中所描述的任何软件组件或功能可被实施为要使用例如Java、C、C++、C#、Objective-C、Swift的任何合适计算机语言或例如Perl或Python的脚本语言,使用例如常规的或面向对象的技术由处理器执行的软件代码。软件代码可作为一系列指令或命令存储在计算机可读介质上以供存储和/或传递,合适的介质包含随机存取存储器(RAM)、只读存储器(ROM)、例如硬盘驱动器或软盘的磁性介质,或例如光盘(CD)或数字通用盘(DVD)的光学介质、闪存存储器等等。计算机可读介质可以是此类存储或传输装置的任何组合。
此类程序还可以使用适应于经由包含因特网的符合多种协议的有线、光学和/或无线网络进行传输的载波信号来编码和传输。因此,根据本发明的实施例的计算机可读介质可以使用以此类程序编码的数据信号来创建。以程序代码编码的计算机可读介质可与兼容装置一起封装或与其它装置分开地提供(例如,经由因特网下载)。任何此类计算机可读介质可以驻留于单个计算机产品(例如,硬盘驱动器、CD或整个计算机系统)上或内,且可存在于系统或网络内的不同计算机产品上或内。计算机系统可以包含用于将本文中所提及的任何结果提供给用户的监视器、打印机或其它合适的显示器。
以上描述是说明性的而不是限制性的。在所属领域的技术人员阅读了本公开后,本发明的许多变化将变得显而易见。因此,本发明的范围不应参考以上描述来确定,而是应参考待决的权利要求以及其完整范围或等效物来确定。
在不脱离本发明的范围的情况下,任何实施例的一个或多个特征可与任何其它实施例的一个或多个特征组合。
除非明确指示有相反的意思,否则“一个/种(a/an)”或“所述”的叙述旨在表示“一个/种或多个/种”。
上文所提及的所有专利、专利申请、公开案和描述都出于所有目的而以其全文引用的方式并入本文中。不承认它们是现有技术。

Claims (12)

1.一种用于验证数据的方法,包括:
a)由计算机接收用于用户与交互实体之间的第一交互的第一交互数据,或者所述交互数据的第一散列;
b)由所述计算机确定与所述第一交互数据或所述第一交互数据的所述第一散列相关联的交互标识符;
c)由所述计算机将所述第一交互数据的所述第一散列与所述交互标识符一起存储在数据库中;
d)由所述计算机确定散列树的根散列,所述散列树包括所述第一交互数据的散列以及其他用户的其它交互的其它交互数据的散列;
e)由所述计算机向公共区块链提供所述散列树的所述根散列;
f)由所述计算机从查询实体设备接收验证请求,所述验证请求验证所述用户和所述交互实体之间的交互;以及
g)由所述计算机提供验证结果,所述验证结果指示发生了所述用户与所述交互实体之间的交互,
其中所述方法还包括:
基于验证所述交互的请求确定所述第一散列;
使用所述第一散列以及由其他用户用于其他交互的其他交互数据的散列来确定所述散列树;
确定所述根散列;
由所述计算机将所述根散列与所述公共区块链上的对应根散列进行比较;以及基于所述比较在步骤g)中提供所述验证结果,
其中使用所述第一散列以及由其他用户用于其它交互的其它交互数据的散列来确定所述散列树包括参考映射表以确定其他用户的其它交互数据的所述散列的所述交互标识符。
2.根据权利要求1所述的方法,其中验证请求包括所述第一交互数据。
3.根据权利要求1所述的方法,其中所述验证请求包括所述第一交互数据的散列。
4.根据权利要求1所述的方法,其中按照次序执行步骤a)至g)。
5.根据权利要求1所述的方法,其中确定所述根散列包括根据所述映射表指定的次序将所述第一散列和其他用户的其它交互的其它交互数据的散列输入到散列算法中。
6.一种服务器计算机,包括:
网络接口;
处理器;以及
非瞬态计算机可读介质,所述非瞬态计算机可读介质具有存储于其上的代码,所述代码用于指令所述处理器执行一种方法,所述方法包括:
a)由计算机接收用于用户与交互实体之间的第一交互的第一交互数据,或者所述交互数据的第一散列;
b)由所述计算机确定与所述第一交互数据或所述第一交互数据的所述第一散列相关联的交互标识符;
c)由所述计算机将所述第一交互数据的所述第一散列与所述交互标识符一起存储在数据库中;
d)由所述计算机确定散列树的根散列,所述散列树包括所述第一交互数据的散列以及其他用户的其它交互数据的散列;
e)由所述计算机向公共区块链提供所述散列树的所述根散列;
f)由所述计算机从查询实体设备接收验证请求,所述验证请求验证所述用户和所述交互实体之间的交互;以及
g)由所述计算机提供验证结果,所述验证结果指示发生了所述用户与所述交互实体之间的交互,
其中所述方法还包括:
基于验证所述交互的请求确定所述第一散列;
使用所述第一散列以及由其他用户用于其他交互的其他交互数据的散列来确定所述散列树;
确定所述根散列;
由所述计算机将所述根散列与所述公共区块链上的对应根散列进行比较;以及
基于所述比较在步骤g)中提供所述验证结果,
其中使用所述第一散列以及由其他用户用于其它交互的其它交互数据的散列来确定所述散列树包括参考映射表以确定其他用户的其它交互数据的所述散列的所述交互标识符。
7.根据权利要求6所述的服务器计算机,其中验证请求包括所述第一交互数据。
8.根据权利要求6所述的服务器计算机,其中所述验证请求包括所述第一交互数据的散列。
9.根据权利要求6所述的服务器计算机,其中确定所述根散列包括根据所述映射表指定的次序将所述第一散列和其他用户的其它交互的其它交互数据的散列输入到散列算法中。
10.一种用于与用户设备交互的交互设备,包括:
处理器;
网络接口,所述网络接口耦合至所述处理器;以及
耦合至所述处理器的非瞬态计算机可读介质,所述计算机可读介质具有存储于其上的代码,所述代码用于指令所述处理器实施一种方法,所述方法包括:
从用户的所述用户设备接收交互数据;
生成所述交互数据的散列;
向服务器计算机发送生成记录的请求,所述请求包括所述交互数据或所述交互数据的散列;以及
从所述服务器计算机接收确认记录所述交互数据或所述交互数据的散列的响应,其中在向公共区块链提供散列树的根散列之前,由所述服务器计算机在数据库中存储所述交互数据或所述交互数据的散列,所述散列树包括所述交互数据的散列以及其他用户的其它交互的其它交互数据的散列,
其中所述服务器计算机用于:
基于验证所述交互的请求确定所述交互数据的散列;
使用所述交互数据的散列以及由其他用户用于其他交互的其他交互数据的散列来确定所述散列树;
确定所述根散列;
将所述根散列与所述公共区块链上的对应根散列进行比较;以及
基于所述比较提供所述响应,
其中使用所述交互数据的散列以及由其他用户用于其它交互的其它交互数据的散列来确定所述散列树包括参考映射表以确定其他用户的其它交互数据的所述散列的交互标识符。
11.根据权利要求10所述的交互设备,其中所述交互设备是终端。
12.根据权利要求10所述的交互设备,其中所述计算机可读介质还具有存储于其上的用于指令所述处理器执行以下操作的代码:基于所述交互数据授权访问资源。
CN201780088189.6A 2017-03-10 2017-03-10 紧凑记录协议 Active CN110383752B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310584485.2A CN116599677A (zh) 2017-03-10 2017-03-10 紧凑记录协议

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2017/021870 WO2018164695A1 (en) 2017-03-10 2017-03-10 Compact recordation protocol

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202310584485.2A Division CN116599677A (zh) 2017-03-10 2017-03-10 紧凑记录协议

Publications (2)

Publication Number Publication Date
CN110383752A CN110383752A (zh) 2019-10-25
CN110383752B true CN110383752B (zh) 2023-06-09

Family

ID=63449009

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201780088189.6A Active CN110383752B (zh) 2017-03-10 2017-03-10 紧凑记录协议
CN202310584485.2A Pending CN116599677A (zh) 2017-03-10 2017-03-10 紧凑记录协议

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202310584485.2A Pending CN116599677A (zh) 2017-03-10 2017-03-10 紧凑记录协议

Country Status (4)

Country Link
US (2) US11646891B2 (zh)
EP (2) EP3593487B1 (zh)
CN (2) CN110383752B (zh)
WO (1) WO2018164695A1 (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11061887B2 (en) * 2016-12-30 2021-07-13 Guardtime Sa Event verification receipt system and methods
US20190279136A1 (en) * 2018-03-06 2019-09-12 Alexander Gershenson Method and system for selective data visualization and posting of supply chain information to a blockchain
GB201803706D0 (en) * 2018-03-08 2018-04-25 Nchain Holdings Ltd Computer-implemented system and method
JP7206698B2 (ja) * 2018-08-28 2023-01-18 セイコーエプソン株式会社 提供装置、処理システム及び通信方法
AU2019342086B2 (en) * 2018-09-18 2021-04-22 Newsouth Innovations Pty Limited A block chain-based system for multi-party, multistage process verification
WO2020057757A1 (en) * 2018-09-21 2020-03-26 NEC Laboratories Europe GmbH Method for signing a new block in a decentralized blockchain consensus network
US11063764B2 (en) * 2018-11-09 2021-07-13 Mastercard International Incorporated Method and system for quantum-resistant hashing scheme
US10790968B2 (en) * 2019-04-04 2020-09-29 Alibaba Group Holding Limited Ledger verification method and apparatus, and device
US10917231B2 (en) 2019-04-04 2021-02-09 Advanced New Technologies Co., Ltd. Data storage method, apparatus, system and device
BE1027181B1 (de) * 2019-04-09 2020-11-09 Phoenix Contact Gmbh & Co Verfahren und System zum sicheren Bereitstellen von Daten eines Gegenstands über dessen gesamten Lebenszyklus
US11128471B2 (en) 2019-04-25 2021-09-21 Microsoft Technology Licensing, Llc Accessibility controls in distributed data systems
TWI715036B (zh) 2019-05-15 2021-01-01 宏碁股份有限公司 檔案驗證方法、檔案驗證系統與檔案驗證伺服器
GB201907349D0 (en) * 2019-05-24 2019-07-10 Nchain Holdings Ltd Verification of data fields of blockchain transactions
CN112100683A (zh) * 2019-06-17 2020-12-18 宏碁股份有限公司 文件验证方法、文件验证系统与文件验证伺服器
US11720526B2 (en) 2019-11-12 2023-08-08 ClearTrace Technologies, Inc. Sustainable energy tracking system utilizing blockchain technology and Merkle tree hashing structure
US11418587B2 (en) 2020-04-30 2022-08-16 T-Mobile Usa, Inc. 5G on-demand dynamically instantiated blockchain for highly distributed peer-to-peer consumer cloud
US11539787B2 (en) 2020-04-30 2022-12-27 T-Mobile Usa, Inc. 5G enabled massively distributed on-demand personal cloud system and method
CN112308362A (zh) * 2020-07-06 2021-02-02 广东粤财金融云科技股份有限公司 一种企业贸易数据的处理方法、装置及业务应用系统
EP4285456A1 (en) 2021-01-29 2023-12-06 Cleartrace Technologies, Inc. Sustainable energy physical delivery tracking and verification of actual environmental impact

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7783579B2 (en) * 2005-05-13 2010-08-24 Ntt Docomo, Inc. Method and apparatus for secure and small credits for verifiable service provider metering
WO2007087363A2 (en) * 2006-01-24 2007-08-02 Brown University Efficient content authentication in peer-to-peer networks
US9853819B2 (en) * 2013-08-05 2017-12-26 Guardtime Ip Holdings Ltd. Blockchain-supported, node ID-augmented digital record signature method
US11270298B2 (en) * 2014-04-14 2022-03-08 21, Inc. Digital currency mining circuitry
US10230526B2 (en) * 2014-12-31 2019-03-12 William Manning Out-of-band validation of domain name system records
JP6364132B2 (ja) 2015-03-31 2018-07-25 ナスダック, インコーポレイテッドNasdaq, Inc. ブロックチェーン取引記録のシステムおよび方法
EP3314521A4 (en) 2015-06-29 2019-01-02 Peernova, Inc. Cryptographic assurances of data integrity for data crossing trust boundaries
AU2016288644A1 (en) * 2015-07-02 2018-02-22 Nasdaq, Inc. Systems and methods of secure provenance for distributed transaction databases
WO2017011601A1 (en) 2015-07-14 2017-01-19 Fmr Llc Computationally efficient transfer processing, auditing, and search apparatuses, methods and systems
US20170091726A1 (en) * 2015-09-07 2017-03-30 NXT-ID, Inc. Low bandwidth crypto currency transaction execution and synchronization method and system
US20180331832A1 (en) * 2015-11-05 2018-11-15 Allen Pulsifer Cryptographic Transactions System
CA3008705C (en) * 2015-12-14 2020-03-10 Coinplug, Inc. System for issuing public certificate on basis of block chain, and method for issuing public certificate on basis of block chain by using same
AU2016376097B2 (en) * 2015-12-22 2019-11-07 Financial & Risk Organisation Limited Methods and systems for identity creation, verification and management
KR101727126B1 (ko) * 2015-12-29 2017-04-14 주식회사 코인플러그 파일에 대한 공증 및 검증을 수행하는 방법 및 서버
CN107306183B (zh) * 2016-04-22 2021-12-21 索尼公司 客户端、服务端、方法和身份验证系统
US10204341B2 (en) * 2016-05-24 2019-02-12 Mastercard International Incorporated Method and system for an efficient consensus mechanism for permissioned blockchains using bloom filters and audit guarantees
US10938571B2 (en) * 2016-10-26 2021-03-02 Acronis International Gmbh System and method for verification of data transferred among several data storages

Also Published As

Publication number Publication date
CN110383752A (zh) 2019-10-25
EP3593487B1 (en) 2021-04-28
EP3593487A4 (en) 2020-01-15
CN116599677A (zh) 2023-08-15
EP3593487A1 (en) 2020-01-15
US20190363892A1 (en) 2019-11-28
WO2018164695A1 (en) 2018-09-13
US20230246842A1 (en) 2023-08-03
EP3890239A1 (en) 2021-10-06
US11646891B2 (en) 2023-05-09

Similar Documents

Publication Publication Date Title
CN110383752B (zh) 紧凑记录协议
US20220321359A1 (en) Methods and systems for ownership verification using blockchain
US20220052852A1 (en) Secure biometric authentication using electronic identity
US11870775B2 (en) Biometric identification and verification among IoT devices and applications
CN110383757B (zh) 用于安全处理电子身份的系统和方法
CN113853775B (zh) 通过凭证服务提供者进行凭证验证及发行
US9730065B1 (en) Credential management
KR102179543B1 (ko) 블록체인 기반 디지털 신분증 및 이의 발급과 신원확인 방법 및 시스템
CN112106324A (zh) 用于创建、注册和验证经数字盖章的资产的方法、计算机程序产品和设备
WO2019133339A1 (en) System and method for biometric credit based on blockchain
CN110209691B (zh) 一种数据处理方法及装置
EP3731115B1 (en) Distributed ledger data verification network
US11968526B2 (en) Identity management on a mobile device

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