CN113491090B - 基于区块链的可信平台 - Google Patents

基于区块链的可信平台 Download PDF

Info

Publication number
CN113491090B
CN113491090B CN202080014849.8A CN202080014849A CN113491090B CN 113491090 B CN113491090 B CN 113491090B CN 202080014849 A CN202080014849 A CN 202080014849A CN 113491090 B CN113491090 B CN 113491090B
Authority
CN
China
Prior art keywords
data
blockchain
hash value
based trusted
ledger
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
CN202080014849.8A
Other languages
English (en)
Other versions
CN113491090A (zh
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.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology 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 Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Publication of CN113491090A publication Critical patent/CN113491090A/zh
Application granted granted Critical
Publication of CN113491090B publication Critical patent/CN113491090B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • 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
    • H04L9/3239Cryptographic 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 involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/061Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying further key derivation, e.g. deriving traffic keys from a pair-wise master key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/062Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • 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

Abstract

本文公开了用于在基于区块链的可信系统中维护数据的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。所述方法之一包括由服务计算机系统从客户端设备接收数据。由所述服务计算机系统将所述数据发送到基于区块链的可信系统。由所述服务计算机系统从所述基于区块链的可信系统接收与所述数据对应的凭证。由所述服务计算机系统将所述凭证发送到所述客户端设备。

Description

基于区块链的可信平台
技术领域
本文涉及用于实现可信数字交易的基于区块链的可信平台。
背景技术
分布式账本系统(DLS),也可以称为共识网络和/或区块链网络,使得参与实体能够安全地且不可篡改地存储数据。在不引用任何特定用例的情况下,DLS通常被称为区块链网络。区块链网络的类型示例可以包括公有区块链网络、私有区块链网络和联盟区块链网络。联盟区块链网络针对选定的实体组群提供,该实体组群控制共识处理,并且所述联盟区块链网络包括访问控制层。
数字网络已使世界各地的人们能够方便有效地找到信息并互动。例如,社交媒体平台使人们可以轻松地与朋友和同事分享消息、照片和视频。在线购物网站使消费者轻松地找到有关各种产品的信息,并通过电子方式发送付款以从世界各地的企业购买产品。新闻网站为用户提供有关世界各地发生的事件的最新信息。媒体平台为用户提供了大量音乐和电影,以供用户下载或在线流播。用户可在线搜索法律服务。乘车平台使乘客可以使用移动电话轻松地找到交通工具并为此付款。随着越来越多的人接入互联网并以数字方式进行越来越多的交易,欺骗性在线活动的数量和数字交易各方之间的争议也增加。
在某些情况下,在线交易中的数字数据可能包含错误,例如原始数据可能被破坏或篡改,或者原始数据可能在传输过程中被黑客拦截并被伪造数据替代。可能难以证明或否定数据的真实性和准确性。因此,希望允许用户以安全且有效的方式进行在线数字交易。
发明内容
所描述的主题的实施例可以包括单独或组合的一个或多个特征。
例如,在一个实施例中,一种用于维护数据的方法包括:由服务计算机系统从客户端设备接收数据;由所述服务计算机系统将所述数据发送至基于区块链的可信系统;由所述服务计算机系统从所述基于区块链的可信系统接收对应于所述数据的凭证;以及由所述服务计算机系统将所述凭证发送至所述客户端设备。
在一些实施例中,这些一般和特定方面可以使用系统、方法或计算机程序,或系统、方法和计算机程序的任何组合来实现。可选地,前述和其他所述的实施例可以各自包括以下一个或多个方面:
在一些实施例中,所述方法还包括:由所述服务计算机系统从所述客户端设备接收存储所述数据的请求,所述请求包括所述数据。
在一些实施例中,所述方法还包括:在从所述客户端设备接收所述数据之后,由所述服务计算机系统生成存储所述数据的请求,所述请求包括所述数据;以及由所述服务计算机系统向所述基于区块链的可信系统发送存储所述数据的请求。
在一些实施例中,所述方法还包括:由所述服务计算机系统将所述数据存储在所述服务计算机系统的本地存储器中。
在一些实施例中,所述方法还包括:在从所述服务计算机系统接收到所述数据之后,由所述基于区块链的可信系统计算所述数据的哈希值;由所述基于区块链的可信系统生成包括所述哈希值的账本数据;由所述基于区块链的可信系统将所述账本数据存储在所述基于区块链的可信系统中;由所述基于区块链的可信系统生成与所述数据对应的凭证;以及由所述基于区块链的可信系统向所述服务计算机系统发送与所述数据对应的凭证。
在一些实施例中,所述账本数据还包括所述数据的元数据。
在一些实施例中,所述方法还包括:与所述数据相对应的凭证包括所述账本数据的标识。
在一些实施例中,所述方法还包括:在将所述数据存储在所述服务计算系统的本地存储器中之后,由所述服务计算系统接收验证所述数据的第一请求;由所述服务计算机系统从所述服务计算机系统的本地存储器获取所述数据;以及由所述服务计算机系统向所述基于区块链的可信系统发送验证所获得的数据的第二请求。
在一些实施例中,验证所述数据的第一请求包括所述账本数据的标识。
在一些实施例中,所述哈希值是第一哈希值,并且所述方法还包括:响应于从所述服务计算系统接收到验证所获得的数据的第二请求,由所述基于区块链的可信系统基于所获得的数据计算第二哈希值;由所述基于区块链的可信系统确定所述第一哈希值与所述第二哈希值是否匹配;以及由所述基于区块链的可信系统向所述服务计算机系统发送验证结果,所述验证结果包括所述第一哈希值和所述哈希哈希值的比较结果。
在一些实施例中,所述方法还包括:在从所述基于区块链的可信系统接收到所述验证结果之后,由所述服务计算机系统基于所述验证结果确定所述第一哈希值与所述第二哈希值是否匹配。
在一些实施例中,所述方法还包括:响应于基于所述验证结果确定所述第一哈希值与所述第二哈希值匹配,由所述服务计算机系统向所述客户端设备发送指示所述数据未被篡改的通知。
在一些实施例中,所述方法还包括:响应于基于所述验证结果确定所述第一哈希值与所述第二哈希值不匹配,由所述服务计算机系统向所述客户端设备发送指示已被篡改的通知。
应当理解的是,根据本文所述的方法可以包括本文描述的各个方面和特征的任何组合。即,根据本文的方法不限于本文具体描述的各个方面和特征的组合,而是还包括所提供的各个方面和特征的任何组合。
本文的一个或多个实施例的细节将在说明书附图和以下描述中阐述。本文的其它特征和优点将通过说明书和附图以及权利要求书来呈现。
附图说明
图1是示出可用于执行本文实施例的环境的示例的图示。
图2是示出根据本文实施例的架构的示例的图示。
图3描绘了根据本文实施例的用于区块链交易的系统的示例。
图4描绘了根据本文实施例可以执行的服务系统模式下的区块链数据记录处理的示例。
图5描绘了根据本文实施例可以执行的服务系统模式下的区块链数据验证处理的示例。
图6描绘了根据本文实施例可以执行的区块链平台模式下的区块链数据记录处理的示例。
图7描绘了根据本文实施例可以执行的区块链平台模式下的区块链数据验证处理的示例。
图8是示出根据本文实施例的基于区块链的可信平台的示例的示意图。
图9是示出根据本文实施例的用于在线交易的系统的示例的图示。
图10是示出根据本文实施例的用于提供可信时间的系统的示例的图示。
图11是示出根据本文实施例的用于提供可信身份的系统的示例的图示。
图12是示出根据本文实施例的用于可信执行的系统的示例的图示。
图13是示出根据本文实施例的用于区块链安全的架构的示例的图示。
图14是示出根据本文实施例的跨链通信系统的示例的图示。
图15描绘了根据本文实施例可以执行的用于跨链通信的处理的示例。
图16描绘了根据本文实施例的基于区块链的可信平台中的数据存储的示例。
图17描绘了根据本文实施例的用于实现基于区块链的可信平台的系统的示例。
图18描绘了根据本文实施例的用于记录账本数据的处理的示例。
图19描绘了根据本文实施例的用于验证账本数据的处理的示例。
图20描绘了根据本文实施例的跨链和跨网络的数据传输的示例。
图21描绘了根据本文实施例的跨链和跨网络的数据传输的处理的示例。
图22描绘了根据本文实施例的跨网络和跨链的数据通信的示例。
图23描绘了根据本文实施例的基于区块链的可信平台的示例。
图24描绘了根据本文实施例的基于区块链的可信平台的另一示例。
图25描绘了根据本文实施例可以执行的处理的示例。
图26描绘了根据本文实施例的装置的模块的示例。
在各个附图中相同的附图标记和名称表示相同的元件。
具体实施方式
本文描述了基于区块链的可信平台的技术。这些技术通常涉及基于区块链的可信平台中的区块链交易。
本文中描述的技术产生了若干技术效果。在一些实施例中,所描述的技术可以被应用在各种应用和场景中,为在线交易提供有效的、可信的、可扩展的和高性能的基于区块链的环境。所描述的技术提供了基于区块链的可信平台,该平台允许用户在基于区块链的环境中以有效且安全的方式进行交易(例如,法律诉讼、商业合约执行)。在一些实施例中,所描述的技术允许用户通过处于基于区块链的可信平台之外的服务系统访问部署在基于区块链的可信平台中的区块链节点。这样可以防止用户直接访问区块链节点,从而降低恶意行为者危害存储在区块链节点中的数据的可能性。在一些实施例中,所描述的技术支持在服务系统与基于区块链的可信平台之间使用密钥对进行加密和认证。例如,服务系统可以将公钥加密的数据发送到基于区块链的可信平台,使得基于区块链的可信平台可以使用私钥对加密的数据进行解密。在示例中,基于区块链的可信平台可以将基于私钥的数字签名发送至服务系统,使得服务系统可以使用公钥认证数字签名。这可以在服务系统与基于区块链的可信平台之间的数据传输中提供额外的数据安全层。在一些实施例中,哈希函数或算法被用于验证存储在系统中的数据是否已被改变。在一个示例中,服务系统或基于区块链的可信平台可以计算所接收的数据的哈希值,并将该哈希值与先前存储的哈希值进行比较。如果两个哈希值匹配,则可以确定数据没有被改变。如果两个哈希值不匹配,则可以确定数据已被改变。这样可以减少系统中存储的数据被伪造或篡改的可能性。
在一些实施例中,基于区块链的可信平台可以在可信执行环境(TEE)中实现。TEE是硬件(一个或多个处理器、存储器)内与硬件的操作环境(例如,操作系统(OS)、基本输入/输出系统(BIOS))隔离的可信执行环境。TEE是处理器的单独的安全区域,其确保在主处理器内执行的代码和载入主处理器内的数据的机密性和完整性。本文描述的区块链和TEE技术可以用于生成与在线交易相关的高度可靠的记录。除了TEE之外,所描述的技术还允许基于区块链的可信平台利用可信时间模块、可信身份模块和可信计算模块的功能,以符合相关证据规则的方式认证文档和/或用户身份。这可以使提供服务的基于区块链的可信平台的应用程序能够以符合(或比以前的系统更符合)证据规则的方式保存与所述服务在多个步骤或关键时间点中的每个步骤或时间点发生的事件有关的信息(例如,谁、什么、以及何时)的验证记录。因此,可以增强由基于区块链的可信平台中运行的应用程序生成的数据的可信度。
在一些实施例中,所描述的技术提供了跨链通信系统,其允许在两个区块链网络之间进行可靠且有效的数据传输。在一个示例中,跨链通信系统可以利用在区块链网络的区块链节点中执行的服务智能合约和跨链智能合约的功能。在示例中,跨链通信系统还可以利用在区块链网络的跨链通信组件中实现的跨链中继组件和预言机(oracle machine)的功能。智能合约和跨链通信组件实现了自动高效的跨链数据传输,例如,通过将账本数据转换为统一的数据格式。
为本文的实施例提供进一步的背景,如上所述,分布式账本系统(DLS),也可以称为共识网络(例如,由点对点(Peer-to-Peer)节点组成)和区块链网络,使参与实体能够安全且不可篡改地进行交易并存储数据。尽管术语区块链通常与特定网络和/或用例相关联,但是在不参考任何特定用例的情况下,本文中使用的区块链通常是指DLS。
区块链是以交易不可篡改的方式存储交易的数据结构。因此,区块链上记录的交易是可靠且可信的。区块链包括一个或多个区块。链中的每个区块通过包含在链中紧邻其之前的前一区块的加密哈希值(cryptographic hash)链接到该前一区块。每个区块还包括时间戳、自身的加密哈希值以及一个或多个交易。已经被区块链网络中的节点验证的交易经哈希处理并编码至默克尔(Merkle)树中。默克尔树是一种数据结构,其中树的叶子节点处的数据被哈希处理,并且在树的每个分支中的所有哈希值在分支的根部级联。此处理沿着树进行直到整个树的根,在树的根处存储了代表树中所有数据的哈希值。通过确定声称是存储在树中的交易的哈希值是否与树的结构一致,可以快速验证该哈希值。
区块链是用于存储交易的去中心化或至少部分去中心化的数据结构,而区块链网络是通过广播、验证和确认交易等来管理、更新和维护一个或多个区块链的计算节点的网络。如上所述,区块链网络可作为公有区块链网络、私有区块链网络或联盟区块链网络被提供。这里参考联盟区块链网络进一步详细描述本文的实施例。然而,可以预期,可以在任何适当类型的区块链网络中实现本文的实施例。
通常,联盟区块链网络在参与实体间是私有的。在联盟区块链网络中,共识处理由可称为共识节点的授权节点集控制,一个或多个共识节点由相应的实体(例如,金融机构、保险公司)操作。例如,十(10)个实体(例如,金融机构、保险公司)的联盟可以操作联盟区块链网络,每个实体操作联盟区块链网络中的至少一个节点。
在一些示例中,在联盟区块链网络中,提供全局区块链作为跨所有节点复制的区块链。也就是说,所有共识节点都处于关于全局区块链的完全共识状态。为了达成共识(例如,同意向区块链添加一个区块),在联盟区块链网络内实现共识协议。例如,联盟区块链网络可以实现实用拜占庭容错(PBFT)共识,这将在下面进一步详细描述。
图1是示出可以用于执行本文实施例的环境100的示例的图示。在一些示例中,环境100使得实体能够参与至联盟区块链网络102中。环境100包括计算系统106、108和网络110。在一些示例中,网络120包括局域网(LAN)、广域网(WAN)、互联网或其组合,并且连接网站、用户设备(例如,计算设备)和后端系统。在一些示例中,可以通过有线和/或无线通信链路访问网络110。在一些示例中,网络110使得与联盟区块链网络102通信,以及在联盟区块链网络102之内通信成为可能。通常,网络110代表一个或多个通信网络。在一些情况下,计算系统106、108可以是云计算系统(未示出)的节点,或者计算系统106、108中的每个可以是单独的云计算系统,其包括通过网络互连并且用作分布式处理系统的多个计算机。
在所描绘的示例中,计算系统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中,该点对点网络包括多个节点214,至少一些节点将信息不可篡改地记录在区块链216中。如本文进一步详述,尽管在区块链网络212中示意性地描述了单个区块链216,但是在区块链网络212上提供并维护了区块链216的多个副本。
在所描绘的示例中,每个参与者系统202、204、206分别由参与者A、参与者B和参与者C提供或代表参与者A、参与者B和参与者C,并且在区块链网络中用作各自的节点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)由区块的链组成,每个区块存储数据。数据的示例包括代表两个或更多参与者之间的交易的交易数据。尽管本文通过非限制性示例使用了“交易”,但是可以预期,任何适当的数据可以存储在区块链中(例如,文档、图像、视频、音频)。交易的示例可以包括但不限于有价物(例如,资产、产品、服务、货币)的交换。交易数据不可篡改地存储在区块链中。也就是说,交易数据不能改变。
在将交易数据存储在区块中之前,对交易数据进行哈希处理。哈希处理是将交易数据(作为字符串数据提供)转换为固定长度的哈希值(也作为字符串数据提供)的处理。不可能对哈希值进行去哈希处理(un-hash)以获得交易数据。哈希处理确保即使交易数据的微小改变也会导致完全不同的哈希值。此外,如上所述,哈希值具有固定长度。也就是说,无论交易数据的大小如何,哈希值的长度都是固定的。哈希处理包括通过哈希函数处理交易数据以生成哈希值。哈希函数的示例包括但不限于输出256位哈希值的安全哈希算法(SHA)-256。
多个交易的交易数据被哈希处理并存储在区块中。例如,提供两个交易的哈希值,并对它们本身进行哈希处理以提供另一个哈希值。重复此处理,直到针对所有要存储在区块中的交易提供单个哈希值为止。该哈希值被称为Merkle根哈希值,并存储在区块的头中。任何交易中的更改都会导致其哈希值发生变化,并最终导致Merkle根哈希值发生变化。
通过共识协议将区块添加到区块链。区块链网络中的多个节点参与共识协议,并执行工作以将区块添加到区块链。此类节点称为共识节点。上面介绍的PBFT被用作共识协议的非限制示例。共识节点执行共识协议以向区块链添加交易,并且更新区块链网络的整体状态。
更详细而言,共识节点生成区块头,对区块中的所有交易进行哈希处理,并将哈希值成对地组合以生成进一步的哈希值,直到为区块中的所有交易提供单个哈希值(Merkle根哈希值)为止。将此哈希值添加到区块头中。共识节点还确定区块链中最新区块(即添加到区块链中的最后一个区块)的哈希值。共识节点还向区块头添加随机数值(nonce value)和时间戳。
通常,PBFT提供容许拜占庭错误(例如,故障节点、恶意节点)的实用拜占庭状态机复制。这通过在PBFT中假设将发生故障(例如,假设存在独立节点故障和/或由共识节点发送的被操纵的消息)来实现。在PBFT中,以包括主共识节点和备份共识节点的序列提供共识节点。主共识节点被周期性改变。通过区块链网络内的所有共识节点对区块链网络的世界状态达成一致,将交易添加到区块链中。在此处理中,消息在共识节点之间传输,并且每个共识节点证明消息是从指定的对等节点接收的,并验证在传输期间该消息未被修改。
在PBFT中,共识协议是在所有共识节点始于相同状态的情况下分多个阶段提供的。首先,客户端向主共识节点发送用以调用服务操作(例如,在区块链网络内执行交易)的请求。响应于接收到所述请求,主共识节点将该请求组播到备份共识节点。备份共识节点执行该请求,并且每个节点都向客户端发送回复。客户端等待直到接收到阈值数量的回复。在一些示例中,客户端等待直到接收f+1个回复,其中,f是区块链网络内可以容许的故障共识节点的最大数量。最终结果是,足够数量的共识节点就要添加到区块链的记录的要求达成一致,并且该记录或者被接受或者被拒绝。
在一些区块链网络中,实施密码学方案来维护交易的隐私。例如,如果两个节点想要保持交易隐私,以使得区块链网络中的其他节点不能看出交易的细节,则这两个节点可以对交易数据进行加密。加密的示例包括但不局限于对称加密和非对称加密。对称加密是指使用单个密钥既进行加密(从明文生成密文)又进行解密(从密文生成明文)的加密处理。在对称加密中,同一密钥可用于多个节点,因此每个节点都可以对交易数据进行加密/解密。
非对称加密使用密钥对,每个密钥对包括私钥和公钥,私钥仅对于相应节点是已知的,而公钥对于区块链网络中的任何或所有其他节点是已知的。节点可以使用另一节点的公钥将数据加密,并且该加密的数据可以使用其他节点的私钥解密。例如,再次参考图2,参与者A可以使用参与者B的公钥将数据加密,并将该加密的数据发送给参与者B。参与者B可以使用其私钥将该加密的数据(密文)解密并提取原始数据(明文)。使用节点的公钥加密的消息只能使用该节点的私钥解密。
非对称加密被用于提供数字签名,这使得交易中的参与者能够确认交易中的其他参与者以及交易的有效性。例如,节点可以对消息进行数字签名,另一节点可以基于参与者A的该数字签名确认该消息是由该节点发送的。数字签名也可以被用于确保消息在传输过程中不被篡改。例如,再次参考图2,参与者A向参与者B发送消息。参与者A生成消息的哈希值,然后使用其私钥将该哈希值加密以提供作为加密哈希值的数字签名。参与者A将该数字签名附加到该消息上,并将该具有数字签名的消息发送给参与者B。参与者B使用参与者A的公钥将该数字签名解密,并提取哈希值。参与者B对该消息进行哈希处理并比较哈希值。如果哈希值相同,参与者B可以确认该消息确实来自参与者A且未被篡改。
在一些实施例中,区块链网络的节点和/或与区块链网络通信的节点能够使用可信执行环境(TEE)操作。在较高级别,TEE是硬件(一个或多个处理器、内存)内与硬件的操作环境(例如,操作系统(OS)、基本输入/输出系统(BIOS))隔离的可信执行环境。更详细地,TEE是处理器的单独的安全区域,其确保了在主处理器内执行的代码和载入主处理器内的数据的机密性和完整性。在处理器内,可信执行环境与操作系统并行运行。所谓的可信应用(TA)的至少部分在可信执行环境内执行,并且具有访问处理器和存储器的权限。通过可信执行环境,可以保护可信应用免受主操作系统中运行的其他应用的影响。此外,可信执行环境使可信应用在可信执行环境内部彼此加密隔离。
可信执行环境的示例包括美国加利福尼亚州圣塔克拉的英特尔公司提供的软件保护扩展(SGX)。尽管本文通过示例的方式讨论了SGX,但是可以预期,可以使用任何适当的可信执行环境来实现本文的实施例。
SGX提供了基于硬件的可信执行环境。在SGX中,可信硬件是中央处理器(CPU)的核心,并且物理存储器的一部分被隔离以保护选择的代码和数据。存储器的被隔离部分被称为飞地(enclave)。更具体地,将飞地作为存储器中的飞地页高速缓存(enclave pagecache,EPC)提供,并映射到应用地址空间。存储器(例如,DRAM)包括用于SGX的保留的随机存储器(PRM)。随机存储器是最低BIOS级别的连续存储器空间并且不能够由任何软件访问。每个飞地页高速缓存是由操作系统分配以在随机存储器中加载应用数据和代码的存储器集(例如,4KB)。飞地页高速缓存元数据(EPCM)是相应飞地页高速缓存的进入地址并且确保每个飞地页高速缓存仅能够由一个飞地共享。也就是说,单个飞地可以使用多个飞地页高速缓存,而飞地页高速缓存专用于单个飞地。
在执行可信应用期间,处理器在访问存储在飞地中的数据时以所谓的飞地模式运行。飞地模式下的运行会对每次存储器访问执行额外的硬件检查。在软件保护扩展(SGX)中,可信应用被编译到可信部分和不可信部分。例如,OS、BIOS、特权系统代码、虚拟机管理器(VMM)、系统管理模式(SMM)等无法访问可信部分。在运行中,可信应用在存储器的PRM中运行并创建飞地。飞地内的可信部分执行的可信函数由不可信部分调用,并且在飞地内执行的代码将数据视为明文数据(未加密),并且拒绝外部访问该数据。可信部分对调用提供加密响应,并且可信应用继续执行。
可以执行认证处理以验证期望的代码(例如,可信应用的可信部分)正在SGX提供的可信执行环境内安全地执行。通常,认证处理包括可信应用从质询者(例如,区块链网络中的另一节点,区块链网络的密钥管理系统(KMS))接收认证请求。作为响应,可信应用请求其飞地产生远程认证,也被称为引用(quote)。产生远程认证包括本地认证被从飞地发送给所谓的引用飞地,其验证本地认证,并且通过使用非对称认证密钥对本地认证进行签名来将本地认证转换为远程认证。远程认证(引用)被提供给质询者(例如,区块链网络的密钥管理系统)。
质询者使用认证验证服务来验证远程认证。对于SGX,英特尔提供了英特尔认证服务(IAS),其从质询者接收远程认证,并且验证远程认证。更具体地,IAS处理远程认证,并且提供报告(例如,认证验证报告(attestation verification report,AVR)),其指示远程认证是否已证实。如果未被证实,则可能指示错误。如果证实(期望的代码在可信执行环境中安全地执行),则质询者能够开始或者继续与可信应用交互。例如,响应于验证,密钥管理系统(作为质询者)能够向执行可信执行环境的节点发布非对称加密密钥(例如,公钥和私钥对)(例如,经过密钥交换处理,例如椭圆曲线Diffie-Hellman(ECDH))以使得节点能够与其它节点和/或客户端安全地通信。
本文描述了用于实现基于区块链的系统(可以是可信在线系统)的技术,该基于区块链的系统增强了用户之间的信任并提供各种服务或处理工具以允许用户以有效的方式进行交易(例如,法律诉讼、商业合约执行)。参考图3,图3示出用于区块链交易的系统300的示例。在一些实施例中,系统300可是与司法机构和/或司法服务的用户相关联的区块链系统。系统300可部署在私有网络或互联网上。在一些实施例中,系统300可是用于执行和记录各方之间的合约或协议(例如,房地产合约)的区块链系统。在图3所示的示例中,系统300包括基于区块链的可信平台/系统312,其包括区块链访问层314,参与节点(例如,节点308-1、308-2、310-1和310-2)以及区块链平台层316。在一些实施例中,区块链访问层314可包括通信接口,该通信接口允许基于区块链的可信平台312的外部的实体与基于区块链的可信平台312的参与节点进行通信。区块链访问层314可包括图形用户界面(GUI)、命令行、脚本和应用程序编程界面(API)中的一个或多个。在一些实施例中,区块链平台层316可提供互联网信息基础设施的服务能力,并且可支持诸如公有云和私有云的云存储部署。区块链平台层316还可为存储在可信平台312中的数据的安全存储、分析和计算提供支持。
基于区块链的可信平台312的参与节点包括诸如节点308-1和308-2的区块链节点。在所示的示例中,区块链节点308-1和308-2可以是法院或司法机构部署的区块链节点。基于区块链的可信平台312还包括例如节点310-1和310-2的第三方区块链节点。在一些实施例中,第三方区块链节点可以具有身份管理、权限控制功能(例如,基于智能合约、用户、区块链的权限管理)以及分层访问控制。在一些示例中,第三方节点310-1和310-2可以包括区块链节点,诸如凭证颁发机构节点、时间服务节点和取证专家节点(forensic expertisenodes)。注意,出于说明性目的,示出了基于区块链的可信平台312包括节点308-1、308-2、310-1和310-2。基于区块链的可信平台312可以包括任何合适数量的非第三方节点和第三方节点。在一些实施例中,节点308-1、308-2、310-1和310-2中的一个或多个可以是参与基于区块链的可信平台312的共识处理的共识节点。
如前所述,区块链访问层314可包括通信接口,该通信接口允许基于区块链的可信平台312的外部的实体与基于区块链的可信平台312的参与节点通信。在所示示例中,区块链访问层314可被配置为允许外部服务系统(例如,服务系统306-1至306-6)与参与的区块链节点(例如,节点308-1、308-2、310-1和310-2)在基于区块链的可信平台312中通信。在一些实施例中,服务系统306-1至306-6可包括不参与基于区块链的可信平台312的共识处理的计算机系统。服务系统306-1至306-6可被配置为通过访问基于区块链的可信平台312向用户302提供服务。在一些示例中,服务系统(例如,服务系统306-1)可允许用户以符合相关法律规定的方式根据基于区块链的可信平台312的参与节点所执行的共识处理数字化地填写和提交法律文件。在一些示例中,服务系统(例如,服务系统306-2)可允许一方以符合相关法律规定的方式执行法院命令,例如以数字方式向对方的银行发出银行征款法院命令。在一些实施例中,基于区块链的可信平台312的一个或多个服务系统和区块链节点可形成子系统。在示出的示例中,服务系统306-1和306-2以及区块链节点308-1可形成部署在司法机构(例如,法院)中的子系统304-1。注意,仅出于说明性目的,子系统304-1被示出为部署在司法机构(例如,法院)中。子系统304-1以及其他子系统304-2和304-3可是部署在任何合适类型的机构或设施中的系统,例如房地产代理商、经纪人、商业银行、第三方托管、警察局、政府代理等。在一些实施例中,包括基于区块链的可信平台312的至少一个区块链节点的子系统可被称为节点子系统,而不包括基于区块链的可信平台312的任何区块链节点的子系统可被称为非节点子系统。在所示的示例中,子系统304-1包括基于区块链的可信平台312中的区块链节点308-1,因此部署了子系统304-1的法院可被称为与区块链连接的法院(例如,节点法院)。子系统304-2不包括基于区块链的可信平台312的任何区块链节点,因此部署子系统304-2的法院称为未连接至区块链的法院(例如,非节点法院)。
在一些实施例中,由服务系统306-1至306-6提供的服务可包括两种类型:区块链数据记录和区块链数据验证。在一些示例中,可通过用户302将数字文档或文件(例如,法律文件、商业合约)中的数据发送到服务系统(例如,服务系统306-1)来发起区块链数据记录服务。数据可由服务系统处理并记录到存储在基于区块链的可信平台312中的区块链节点(例如,区块链节点308-1)中的区块链中。可通过用户向服务系统发送用以验证数据的请求来发起区块链数据验证服务。接收该请求的服务系统可处理该请求并验证数据。在一些实施例中,账本数据可在区块链数据记录和验证处理期间生成。在一些实施例中,可以服务系统模式和区块链平台模式中的一个或多个执行区块链数据记录和验证处理。在服务系统模式下,服务系统(例如,服务系统306-1)可基于从用户(例如,用户302)接收的数据生成账本数据,并将该账本数据发送到区块链节点(例如,区块链节点308-1)用于记录。在基于区块链平台的模式中,区块链节点(例如,区块链节点308-2)可基于从用户(例如,用户302)接收的数据生成账本数据,并将该账本数据记录到存储在区块链节点中的区块链中。下面将参照图4至图7更详细地描述两种模式中的区块链数据记录验证处理。
图4描绘了可根据本文实施例执行的服务系统模式中的区块链数据记录处理400的示例。为方便起见,处理400将被描述为由位于一个或多个位置并根据本文被适当地编程的一个或多个计算机的系统执行。例如,被适当地编程的例如图3的系统300的基于区块链的系统,可执行处理400。
处理400开始于步骤410,其中,用户402将用于记录的数据发送至服务系统404。在一些实施例中,用户402可以将用于记录数据的请求发送至服务系统404,其中,该请求包括数据。在一些实施例中,数据可以是数字文档(例如,商业协议)或数字文件(例如,取证图像、视频等)的格式。
用户402可以是如在图3的描述中所描述的用户302。在一些实施例中,用户402可以包括例如被编码为执行本文所述方法的任何计算机、模块、服务器或计算元件。在一些示例中,用户402可以包括用于提供客户端计算设备的各种功能的网络浏览器和软件应用。在一些实施例中,服务系统404可以是如图3的描述中所描述的服务系统(例如,服务系统306-1)。
在步骤412,服务系统404可以在从用户402接收到数据之后触发数据记录。在一些实施例中,服务系统404可以响应于从用户402接收到数据或请求而自动触发数据记录。在一些示例中,服务系统404可以包括用于处理从用户402接收到的数据或请求的智能合约。一旦智能合约接收到来自用户的数据或请求,智能合约就可以自动执行以执行以下数据记录处理。
在一些实施例中,服务系统404可以在从用户402接收到数据之后验证用户402的身份。在一些示例中,用户402可以将用户标识连同数据一起发送到服务系统404,使得服务系统404可以将接收到的用户标识与存储在服务系统404中的授权用户的用户标识进行比较。如果确定用户402是未授权用户,则服务系统404可以忽略来自用户402的请求并丢弃数据。如果确定用户402是授权用户,则服务系统404可继续处理接收到的数据。
在步骤414,服务系统404基于从用户402接收到的数据计算哈希值。在一些实施例中,可根据预定的加密哈希函数或算法(例如,MD5消息摘要算法、SHA-1(安全哈希算法1)哈希函数和惠而浦(Whirlpool)哈希函数等)计算哈希值。在一些示例中,服务系统404可将预先确定的哈希函数应用于从用户接收到的数据,并生成该数据的哈希值。在一些示例中,服务系统404可基于从用户402接收到的数据和用户402的用户标识生成哈希值。
在步骤416,服务系统404将从用户402接收到的数据存储在服务系统404的本地存储器中。在一些实施例中,服务系统404还可包括本地存储子系统,该本地存储子系统包括诸如非易失性存储器标准(non-volatile memory express,NVME)、SSD、硬盘驱动器(HDD)或叠片式磁记录(SMR)的存储介质。在一些实施例中,可生成或扩展服务系统404的本地存储子系统,以获得更好的可用性、分区容限、灵活性和成本。例如,服务系统404的本地存储子系统可通过添加更多服务器或存储节点并由此增加容量和性能来实现扩展。本地存储子系统还可使用价格较低的标准服务器、驱动器和网络。在一些实施例中,服务系统404的本地存储子系统可提高标准服务器的利用率,因此可导致更少的功耗、维修成本、更好的冷却效率和空间利用率等。
在一些实施例中,服务系统404可以包括多层存储子系统,该多层存储子系统包括被配置为基于数据访问频率存储数据的多个存储设备。在一些示例中,服务系统404可以包括第一存储设备,例如云盘或基于云的存储设备(例如,SSD云盘、嵌入式SSD(ESSD)云盘),用于存储最频繁访问的数据。服务系统404可以包括第二存储设备,例如NAS(网络附加存储)设备,用于存储访问频率较低的数据。
在步骤418,服务系统404基于在步骤414生成的哈希值生成账本数据,并将该账本数据发送到基于区块链的可信平台406。在一些实施例中,基于区块链的可信系统406可以被实现为图3的基于区块链的可信系统312。在一些示例中,基于区块链的可信系统406可以包括一个或多个区块链节点(例如,区块链节点308-1),并且服务系统404可以将该账本数据发送至基于区块链的可信系统406的一个区块链节点。在一些实施例中,服务系统404可以经由诸如图3的区块链访问层314之类的通信接口将账本数据发送到基于区块链的可信系统406。
在一些实施例中,账本数据包括步骤414生成的哈希值。账本数据可以包括附加信息,例如从用户402接收到的数据的元数据和哈希值的元数据。在一些示例中,元数据可以包括数据或哈希值的作者、创建日期、修改日期以及文件大小中的一个或多个。
在一些实施例中,服务系统404可根据预先确定的加密函数或算法对账本数据进行加密。在一些示例中,服务系统404可使用基于区块链的可信平台406的公钥对账本数据进行加密,并将该加密的账本数据发送至基于区块链的可信平台406以通过使用其私钥对该加密的账本数据进行解密。
在步骤420,在从服务系统404接收到账本数据之后,基于区块链的可信平台406将包括哈希值的账本数据存储在基于区块链的可信平台406中。在一些实施例中,基于区块链的可信平台406可以将账本数据存储在基于区块链的可信平台406的一个或多个参与节点中。在一些实施例中,基于区块链的可信平台406的一个或多个参与节点可以是参与区块链的共识处理的共识节点。在一些实施例中,基于区块链的可信平台406的共识节点(例如,图3的区块链节点308-1、308-2和/或第三方区块链节点310-1和310-2)可以对账本数据执行共识处理。在共识节点之间达成共识之后,基于区块链的可信平台406可以将账本数据记录在存储在基于区块链的可信平台406的一个或多个参与节点中的区块链中。
在一些实施例中,基于区块链的可信平台406可从服务系统404接收加密的账本数据。在一些示例中,该加密的账本数据可是使用基于区块链的可信平台406的基于非对称密钥加密的公钥进行加密的。基于区块链的可信平台406可使用与该公钥配对的私钥对该加密的账本数据进行解密并获得账本数据。
在步骤422,基于区块链的可信平台406生成对应于该账本数据的凭证。在一些实施例中,凭证可以包括用于记录账本数据的任何合适类型的凭证。在一些示例中,凭证可以包括账本数据的标识和/或基于区块链的可信平台406的数字签名,该数字签名基于账本数据使用基于区块链的可信平台406的私钥而生成。在一些实施例中,凭证可以唯一地标识账本数据。
在步骤424,基于区块链的可信平台406可以将凭证返回给服务系统404。在一些示例中,凭证可以包括基于账本数据使用基于区块链的可信平台406的私钥生成的数字签名,使得服务系统404可以使用基于区块链的可信平台406的公钥验证该数字签名。
在步骤426,在从基于区块链的可信平台406接收到凭证之后,服务系统404将记录结果发送给用户402。在一些实施例中,记录结果包括该凭证。在一些实施例中,记录结果包括给用户402的指示数据记录是否完成的通知。在一些实施例中,服务系统404可验证凭证,例如,当该凭证包括基于区块链的可信平台406的数字签名时。在一些示例中,服务系统404可使用基于区块链的可信平台406的公钥验证数字签名。如果数字签名有效,则服务系统404可将记录结果中的凭证发送给用户402,并在记录结果中通知用户402数据记录已完成。如果数字签名无效,则服务系统404可不将该凭证发送给用户402,或者服务系统404可通知用户402数据记录未完成。
图5描绘了可以根据本文实施例执行的服务系统模式下的区块链数据验证处理500的示例。为方便起见,处理500将被描述为由位于一个或多个位置并根据本文被适当地编程的一个或多个计算机的系统执行。例如,被适当编程的基于区块链的系统,例如图3的系统300,可以执行处理500。
处理500开始于步骤510,其中,用户502将用于验证数据的请求发送至服务系统504。用户502可以是如图3所描绘的用户302。在一些实施例中,用户502可以包括例如被编码为执行本文所描述的方法的任何合适的计算机、模块、服务器或计算元件。在一些示例中,用户502可以包括用于提供客户端计算设备的各种功能的网络浏览器和软件应用。在一些实施例中,服务系统504可以被实现为图3中的服务系统,例如服务系统306-1。
在一些实施例中,用于验证数据的请求可包括与基于该数据生成的账本数据相对应的凭证。在一些实施例中,凭证可被配置为唯一地标识数据和账本数据。在一些示例中,凭证和账本数据可在类似于图4的处理400的先前数据记录处理中生成。在该示例中,账本数据可由服务系统504生成并在先前数据记录处理中记录在基于区块链的可信平台506中。账本数据可包括数据的哈希值。在一些实施例中,该哈希值可由服务系统504根据预定的加密哈希函数或算法(例如,MD5消息摘要算法、SHA-1(安全哈希算法1)哈希函数和惠而浦哈希函数等)来计算。账本数据可包括附加信息,例如数据的元数据。元数据可包括该数据的作者、创建日期、修改日期和文件大小中的一个或多个。
在以上示例中,凭证可由基于区块链的可信平台506生成,并在先前数据记录处理中发送给用户502。在一些实施例中,凭证可包括账本数据的标识。在一些实施例中,凭证可包括基于区块链的可信平台506的数字签名,该数字签名是基于账本数据使用基于区块链的可信平台506的私钥生成的。
在步骤512,服务系统504在接收到用于验证数据的请求之后,从服务系统504的本地存储器获得数据。在一些实施例中,服务系统504的本地存储器可以包括诸如NVME、SSD、HDD和SMR的存储介质。在一些实施例中,服务系统502可以基于请求中包括的凭证来获得数据。
在步骤514,服务系统504基于在步骤512获得的数据计算哈希值。在一些实施例中,该哈希值可以由服务系统504根据在先前数据记录处理中用于计算哈希值的同一加密哈希函数或算法来计算。
在步骤516,服务系统504将计算出的哈希值发送到基于区块链的可信平台506。在一些实施例中,服务系统504可以将具有计算的哈希值的凭证发送到基于区块链的可信平台506。在一些实施例中,服务系统504可以对哈希值和/或凭证进行加密,并且将加密的信息发送到基于区块链的可信平台506。在一些示例中,服务系统504可以使用基于区块链的可信平台506的公钥对哈希值和/或凭证进行加密,使得基于区块链的可信平台506可以使用其私钥对该加密的信息进行解密。
在步骤518,在从服务系统504接收到哈希值之后,基于区块链的可信平台506将接收到的哈希值与先前存储在基于区块链的可信平台506中的哈希值进行比较。在一些实施例中,基于区块链的可信平台506可以从服务系统504接收加密的哈希值和/或凭证。在一些示例中,该加密的哈希值和/或凭证可以是利用基于区块链的可信平台506的公钥进行加密的。基于区块链的可信平台506可以使用与该公钥配对的私钥对该加密的数据进行解密并获得哈希值和/或凭证。
在一些实施例中,基于区块链的可信平台506可以根据从服务系统504接收到的凭证从基于区块链的可信平台506的本地存储器获得账本数据,并获得该账本数据中的哈希值。在一些实施例中,基于区块链的可信平台506可以根据凭证从基于区块链的可信平台506的一个或多个参与区块链节点获得账本数据,并获得账本数据中的哈希值。
在步骤520,基于区块链的可信平台506将验证结果发送至服务系统504。在一些实施例中,验证结果包括步骤518中的接收到的哈希值与哈希数据中的哈希值的比较结果。在一些实施例中,验证结果还可以包括基于区块链的可信平台506的数字签名。在一些示例中,可以根据两个哈希值中的至少一个,使用基于区块链的可信平台506的私钥生成基于区块链的可信平台506的数字签名。
在步骤522,在从基于区块链的可信平台506接收到验证结果之后,服务系统504向用户502发送验证响应。在一些实施例中,服务系统504可以验证包括在验证结果中的数字签名。在一些示例中,服务系统504可以使用基于区块链的可信平台506的公钥验证数字签名。在该示例中,如果该数字签名被确定为无效,则服务系统504可以忽略该验证结果。如果该数字签名被确定为有效,则服务系统可以继续处理验证结果。
在一些实施例中,服务系统504基于验证结果确定两个哈希值是否匹配。如果这两个哈希值匹配,则服务系统504可以确定存储在服务系统504中的数据未被篡改。服务系统504还可以将数据包括在验证响应中,并向用户502发送指示该数据未被篡改的验证响应。如果这两个哈希值不匹配,则服务系统504可以在验证响应中向用户502通知该数据可能已被篡改。
图6描绘了可根据本文实施例执行的区块链平台模式下区块链数据记录处理600的示例。为方便起见,处理600将被描述为由位于一个或多个位置并根据本文被适当地编程的一个或多个计算机的系统执行。例如,被适当地编程的基于区块链的系统(例如,图3的系统300)可执行处理600。
处理600开始于步骤610,其中,用户602将用于记录的数据发送至服务系统604。在一些实施例中,用户602可以将用于记录数据的请求发送到服务系统604,其中,该请求包括数据。在一些示例中,数据可以包括在数字文件或文档中,例如法律文档、商业合约、图像、视频、网页、电子表格等。
用户602可以是如在图3的描述中所描述的用户302。在一些实施例中,用户602可以包括例如被编码为执行本文所述方法的任何合适的计算机、模块、服务器或计算元件。在一些示例中,用户602可以包括用于提供客户端计算设备的各种功能的网络浏览器和软件应用。在一些实施例中,服务系统604可以被实现为如图3的服务系统(例如,服务系统306-1)。
在步骤612,服务系统404在从用户602接收到数据之后触发数据记录。在一些实施例中,服务系统604可以响应于从用户602接收到数据或请求而自动触发数据记录。在一些示例中,服务系统604可以包括用于处理从用户602接收到的数据或请求的智能合约。一旦智能合约接收到来自用户的数据或请求,智能合约就可以自动执行以执行以下数据记录处理。
在一些实施例中,服务系统604可以在从用户602接收到数据之后验证用户602的身份。在一些示例中,用户602可以将用户标识连同数据一起发送至服务系统604,使得服务系统604可以将接收到的用户标识与存储在服务系统604中的授权用户的用户标识进行比较。如果确定用户602是未授权用户,则服务系统604可以忽略来自用户602的请求并丢弃数据。如果确定用户602是授权用户,则服务系统604可继续处理接收到的数据。
在步骤614,服务系统604将从用户602接收到的数据存储在服务系统604的本地存储器中。在一些实施例中,服务系统604可包括本地存储子系统,该本地存储子系统包括诸如NVME、SSD、HDD或SMR的存储介质。在一些实施例中,可生成或扩展服务系统604的本地存储子系统,以获得更好的可用性、分区容限、灵活性和成本。例如,服务系统604的本地存储子系统可通过添加更多服务器或存储节点来实现扩展并由此线性地增加容量和性能。它可使用价格便宜的标准服务器、驱动器和网络。在一些实施例中,服务系统604的本地存储子系统可提高标准服务器的利用率,因此导致更少的功耗、更好的冷却效率、更好的空间利用率、更少的维护成本等。
在一些实施例中,服务系统604可包括多层存储子系统,该多层存储子系统包括被配置为基于数据访问频率存储数据的多个存储设备。在一些示例中,服务系统604可包括第一存储设备,例如云盘或基于云的存储设备(例如,SSD云盘、ESSD云盘),用于存储最频繁访问的数据。服务系统604可包括第二存储设备,例如NAS设备,用于存储访问频率较低的数据。
在步骤616,服务系统604将用于记录数据的请求发送到基于区块链的可信平台606。在一些实施例中,基于区块链的可信平台606可以被实现为图3的基于区块链的可信系统312。在一些实施例中,该请求包括从用户602接收到的数据。
在一些实施例中,服务系统604可以经由诸如图3的区块链访问层314之类的通信接口将数据发送至基于区块链的可信系统606。
在一些实施例中,服务系统604可以对数据进行加密并将请求中的加密数据发送至基于区块链的可信平台606。在一些实施例中,服务系统604可以根据预先确定的加密函数或算法对数据进行加密。在一些示例中,服务系统604可以使用基于区块链的可信平台606的公钥对数据进行加密,使得基于区块链的可信平台606可以使用其私钥对该加密的数据进行解密。
在步骤618,基于区块链的可信平台606基于从服务系统604接收到的数据计算哈希值。在一些实施例中,基于区块链的可信平台606可以从服务系统604接收加密的数据。在一些示例中,该加密的数据可以是利用基于区块链的可信平台606的公钥进行加密的。基于区块链的可信平台606可以使用与公钥配对的私钥对该加密的数据进行解密并获得数据。
在一些实施例中,哈希值可以根据预定的加密哈希函数或算法(例如,MD5消息摘要算法、SHA-1(安全哈希算法1)哈希函数和惠而浦哈希函数等)来计算。在一些示例中,基于区块链的可信系统606可以将预定的哈希函数应用于从服务系统604接收到的数据,并生成该数据的哈希值。
在步骤620,基于区块链的可信系统606存储在步骤618生成的哈希值。在一些实施例中,基于区块链的可信系统606可基于该哈希值生成和存储账本数据。在一些实施例中,账本数据可包括哈希值和/或附加数据,诸如从用户602接收到的数据的元数据或哈希值的元数据。在一些示例中,元数据可包括数据的作者、创建日期、修改日期和文件大小中的一个或多个。
在一些实施例中,基于区块链的可信平台606可将账本数据存储在基于区块链的可信平台606的一个或多个参与节点中。在一些实施例中,基于区块链的可信平台606的共识节点(例如,图3的区块链节点308-1、308-2和/或第三方区块链节点310-1和310-2)可对账本数据执行共识处理。在共识节点之间达成共识后,基于区块链的可信平台606可将账本数据记录在存储在基于区块链的可信平台606的一个或多个参与节点中的区块链中。
在步骤622,基于区块链的可信平台606生成与账本数据对应的凭证。在一些实施例中,凭证可以包括用于记录账本数据的任何合适类型的凭证。在一些示例中,凭证可以包括账本数据的标识。在一些示例中,凭证可以包括基于区块链的可信平台606的数字签名,该数字签名是基于账本数据使用基于区块链的可信平台606的私钥而生成的。在一些实施例中,凭证可以被配置为唯一地标识数据和账本数据。
在步骤624,基于区块链的可信平台606将该凭证返回至服务系统604。在一些示例中,凭证可以包括数字签名,该数字签名是基于账本数据使用基于区块链的可信平台606的私钥而生成的,使得服务系统604可以使用基于区块链的可信平台606的公钥验证数字签名。
在步骤626,在从基于区块链的可信平台606接收凭证之后,服务系统604将记录结果发送至用户602。在一些实施例中,记录结果包括凭证。在一些实施例中,记录结果包括给用户602的指示数据记录是否完成的通知。在一些实施例中,服务系统604可验证凭证,例如,当凭证包括基于区块链的可信平台406的数字签名时。在一些示例中,服务系统604可使用基于区块链的可信平台606的公钥来验证凭证中包括的数字签名。如果数字签名为有效,则服务系统604可将记录结果中的凭证发送给用户602,并在记录结果中向用户602通知数据记录已完成。如果数字签名为无效,则服务系统604可不将凭证发送给用户602,并通知用户602数据记录未完成。
图7描绘了可根据本文实施例执行的区块链平台模式下的区块链数据验证处理700的示例。为方便起见,处理700将被描述为由位于一个或多个位置并根据本文被适当地编程的一个或多个计算机的系统执行。例如,被适当地编程的基于区块链的系统(例如,图3的系统300)可执行处理700。
处理700开始于步骤710,其中,用户702将用于验证数据的请求发送至服务系统704。用户702可以是如图3所描绘的用户302。在一些实施例中,用户702可以包括例如被编码为执行本文所描述的方法的任何合适的计算机、模块、服务器或计算元件。在一些示例中,用户702可以包括用于提供客户端计算设备的各种功能的网络浏览器和软件应用。在一些实施例中,服务系统704可以是如图3中所描述的服务系统(例如,服务系统306-1)300,例如服务系统306-1。
在一些实施例中,用于验证数据的请求可以包括账本数据的凭证。在一些实施例中,凭证可以被配置为唯一地标识原始数据和账本数据。在一些示例中,凭证和账本数据可以在与图6的处理600类似的先前数据记录处理中生成。在该示例中,账本数据可以由服务系统704生成并在先前数据记录处理中记录在基于区块链的可信平台706中。账本数据可以包括原始数据的哈希值。在一些实施例中,哈希值可以由服务系统704根据预定的加密哈希函数或算法(例如,MD5消息摘要算法、SHA-1(安全哈希算法1)哈希函数和惠而浦哈希函数等)来计算。账本数据可以包括附加信息,例如数据的元数据和/或哈希值的元数据。元数据可以包括该数据的作者、创建日期、修改日期和文件大小中的一个或多个。
在以上示例中,凭证可由基于区块链的可信平台706生成,并在先前数据记录处理中发送给用户702。在一些实施例中,凭证可包括账本数据的标识。在一些实施例中,凭证可包括基于区块链的可信平台706的数字签名,该数字签名是基于账本数据使用基于区块链的可信平台706的私钥生成的。
在步骤712,服务系统704在从用户702接收到请求之后,从服务系统704的本地存储器获得数据。在一些实施例中,服务系统704的本地存储器可以包括诸如NVME、SSD、HDD或SMR的存储介质。在一些实施例中,服务系统702可以基于请求中包括的凭证来获得数据。
在步骤714,服务系统704将在步骤712获得的数据发送至基于区块链的可信平台706。在一些实施例中,服务系统704可以将凭证和所获得的数据发送到基于区块链的可信平台706。在一些实施例中,服务系统704可以对所获得的数据和/或凭证进行加密,并且将该加密的信息发送到基于区块链的可信平台706。在一些示例中,服务系统704可以使用基于区块链的可信平台706的公钥对所获得的数据和/或凭证进行加密,使得基于区块链的可信平台706可以使用其私钥对该加密的信息进行解密。
在步骤716,基于区块链的可信平台706基于从服务系统704接收的数据计算哈希值。在一些实施例中,该哈希值可由基于区块链的可信平台706根据在之前的数据记录处理中用于计算哈希值的同一加密哈希函数或算法计算。
在一些实施例中,基于区块链的可信平台706可以从服务系统704接收加密的数据和/或凭证。在一些示例中,可以使用基于区块链的可信平台706的公钥生成该加密的数据和/或凭证。基于区块链的可信平台706可以使用与公钥配对的私钥对该加密的数据进行解密并获得数据和/或凭证。
在步骤718,基于区块链的可信平台706将计算出的哈希值与先前存储在基于区块链的可信平台706中的哈希值进行比较。在一些实施例中,基于区块链的可信平台706可以根据从服务系统704接收到的凭证从基于区块链的可信平台706的本地存储器获得账本数据,并获得该账本数据中的哈希值。在一些实施例中,基于区块链的可信平台706可以基于凭证从基于区块链的可信平台706的一个或多个参与区块链节点获得账本数据,并获得账本数据中的哈希值。然后可以将所获得的哈希值与计算出的哈希值进行比较。在一些实施例中,基于区块链的可信平台706基于两个哈希值的比较生成验证结果。
在步骤720,基于区块链的可信平台706将验证结果发送至服务系统704。在一些实施例中,验证结果包括如步骤718中的两个哈希值的比较结果。在一些实施例中,验证结果还可以包括基于区块链的可信平台706的数字签名。在一些示例中,基于区块链的可信平台706的数字签名可以基于两个哈希值中的至少一个使用基于区块链的可信平台706的私钥而生成。
在步骤722,在从基于区块链的可信平台706接收到验证结果之后,服务系统704向用户702发送验证响应。在一些实施例中,服务系统704可以验证包括在验证结果中的数字签名。在一些示例中,服务系统704可以使用基于区块链的可信平台706的公钥验证数字签名。如果数字签名被确定为无效,则服务系统704可以忽略该验证结果。如果数字签名被确定为有效,则服务系统704可以继续处理验证结果。
在一些实施例中,服务系统704基于验证结果确定两个哈希值是否匹配。如果这两个哈希值匹配,则服务系统704可以确定存储在服务系统704中的数据未被篡改。服务系统704还可以将数据包括在验证响应中,并且向用户702发送指示该数据未被篡改的验证响应。如果这两个哈希值不匹配,则服务系统704可以在验证响应中向用户702通知该数据已被篡改。
图8是示出根据本文实施例的基于区块链的可信平台800的示例的示意图。在一些实施例中,基于区块链的可信平台800可以被实现为图3的基于区块链的可信平台312。如本文所述的基于区块链的可信平台800可以被实现为增强用户之间的信任并且提供各种服务或处理工具以允许用户以有效的方式执行在线交易。在所示的示例中,可信平台800包括可信应用层814和可信服务层816。可信应用层814包括多个应用程序,其包括第一应用程序802、第二应用程序804、直到第N应用程序806,它们利用可信服务层816中的可信时间模块808、可信身份模块810和可信计算模块812的功能。在一些实施例中,可以在基于区块链的可信平台的每个参与区块链节点中实现应用程序802、804、806以及可信时间模块808、可信身份模块810和可信计算模块812。
基于区块链的可信平台800通过提供一套服务应用程序解决上述问题,该服务应用程序利用可信时间模块808、可信身份模块810和可信计算模块812的功能以符合(或比以前的系统更符合)相关证据规则的方式认证文档和/或用户身份。
在一些实施例中,基于区块链的可信平台800的特征在于:该平台提供可信时间、可信身份和可信计算,以使得提供服务的应用程序能够以符合(或比以前的系统更符合)证据规则的方式保存与所述服务在多个步骤或重要时间点中每个步骤或重要时间点发生的事件有关的信息(例如,何人、何事、何时)的验证记录。这些记录可通过与法律、执法机构或争议解决机构相关联的区块链节点的共识被添加到区块链中。这些记录一旦被添加就成为不可变的,并可作为对应法律服务或程序的证据被法院或各方所信任。
例如,有一些工具提供哈希和数字签名功能,以允许用户对数据进行数字签名,使得其他用户可以验证该数据自被数字签名背书后没有被更改,并且可以验证对该数据进行签名的用户的身份。然而,仍然存在经数字签名的数据包含错误的可能性,例如,在对数据签名之前,该数据已被损坏或篡改而签名者并不知情,或者原始的经数字签名的数据在传输期间被黑客拦截,并被伪造的经数字签名的数据所替代。仅基于经数字签名的数据,可能难以证明或否定数据的真实性和准确性。因此,如果没有进一步的证明,例如来自公证员或有执照的律师的证明数据的真实性和准确性的宣誓书,可能难以在法律程序中使用经数字签名的数据。要解决的技术问题是如何提高提供法律服务的在线应用程序所生成的数据的可信度。
基于区块链的可信平台800通过捕获提供服务的处理中的多个步骤(或几个重要时间点)中每个步骤的快照,增强了通过网络提供服务的应用程序产生的数据的可信度,并降低了伪造或篡改的可能性。每个快照可包括由可信时间模块808和/或可信身份模块810提供的信息。可信平台800使用可信计算模块812将快照存储在区块链中以处理区块链数据。所述快照可包括例如与在相应步骤或时间点发生的事件相关联的诸如何人、何时和何事的信息。在多个步骤(或时间点)中的每个步骤均进行伪造或篡改的概率要小于在单个步骤(或时间点)进行伪造或篡改的概率。可信时间模块808提供可信的或经验证的时间戳,可信身份模块810提供可信的或经验证的身份信息,可信计算模块812确保了记录在相关区块链中的数据的可信度。
在一些实施例中,模块808、810、812的功能可以由在TEE中执行的一个或多个基于区块链的应用程序或智能合约调用。TEE由与一个或多个数据处理器的操作系统隔离的一个或多个数据处理器承载,并被配置成为一个或多个数据处理器内执行的代码和加载的数据提供增强的机密性和完整性。在一些示例中,应用程序或智能合约可以通过API调用模块的功能。
基于区块链的可信平台800产生以下技术效果:基于区块链的可信平台800所支持的服务应用程序所提供的服务相关数据具有较高的可信度(与先前的系统相比)。可以保存提供服务期间发生的交易历史的高度可靠的记录,包括对文档的修改历史和来自各方的响应。
在一些实施例中,可信服务层816可以包括附加模块,例如可信定位模块,提供指示交易发生地点的经验证位置。例如,所述可信定位模块可用于证明侵权行为发生在某一地理区域并可以向具有管辖权的法院提起诉讼。例如,可信定位模块可基于由连接到客户终端的经验证的全球定位系统(GPS)接收器提供的数据来生成经验证的位置信息。
图9是示出根据本文实施例的用于在线交易的系统900的示例的图示。在所示的示例中,系统900包括基于区块链的可信平台902。在一些实施例中,基于区块链的可信平台可以被实现为图3的基于区块链的可信平台312或图8的基于区块链的可信平台800。
在一些实施例中,可以通过诸如互联网的网络914访问可信平台902。用户924使用客户终端922访问可信平台902,客户终端922可以是例如移动电话、个人计算机或可以连接到网络914的任何计算设备。在一些示例中,可信平台902向尚未在平台902注册的用户提供有限的功能。
当在平台902注册时,用户具有用户标识(ID),该用户标识用于在用户924使用平台902的工具和服务时标识用户924。每个注册用户具有与平台902相关联的账户,并可在登录该账户之后访问平台902的功能。在一些示例中,用户924可通过提供诸如用户的电话号码和电子邮件地址之类的个人信息在平台902注册。在一些示例中,用户924可通过与模块906、908、910可通信地耦接的指纹传感器、麦克风或虹膜扫描仪提供诸如一个或多个指纹、一个或多个声纹或虹膜信息之类的生物特征信息在平台902注册。当用户924访问可信平台902的功能时,用户可以向可信平台902提供附加信息,并且可信平台902将该附加信息与用户账户相关联。
例如,用户924可以提供移动电话号码,以便用户924可以从移动电话上的可信平台902接收消息。用户924可以提供支付账户信息,使得用户924可以为可信平台902上的服务付费。例如,用户账户可以包括以下可用于验证用户924的身份的信息中的一个或多个:(i)移动电话号码、(ii)信用卡号、(iii)与在线支付系统相关联的用户ID、(iv)与在线购物账户相关联的用户ID、(v)与音乐流播或下载账户相关联的用户ID、(vi)与电影流播或下载账户相关联的用户ID、(vii)与消息传送或聊天账户相关联的用户ID、(viii)与在线银行账户相关联的用户ID、(ix)与叫车服务相关联的用户ID、(x)与在线订餐服务相关联的用户ID、(xi)社会安全保障码;(xii)驾驶执照号、(xiii)护照号、(xiv)与在线游戏服务相关联的用户ID、(xv)政府实体发布的ID、(xvi)一个或多个指纹、(xvii)一个或多个声纹、或(xviii)虹膜信息。
在图9的示例中,用户924访问互联网证据收集网络浏览器904以搜索和查看互联网914上的网页。网络浏览器的客户端组件(图中未示出)在客户终端922处执行,并提供用于向用户924显示网页及接收用于处理网页的用户指令(例如,用于控制网页之间的导航的点击)的用户界面。
在一些示例中,用户924使用网络浏览器904来访问发布者承载在网络服务器916上的网页918(包括例如网页918-1和918-2)。用户924可以最初提供发布者的主页的URL,然后点击网络链接以浏览承载在网络服务器916上的网页。在一些实施例中,当用户924使用互联网证据收集网络浏览器904来浏览网页时,网络浏览器904调用可信身份模块908以验证用户924的身份。例如,可信身份模块908可以使用与用户账户相关联的任何数量的信息来验证用户924的身份。
在上述示例中,每当与用户924使用网络浏览器904相关联的预定类型的事件发生时,网络浏览器904就调用可信时间模块906以获得关于该事件何时发生的经验证时间戳。预定类型的事件可包括例如,从用户924接收输入、向用户924提供输出以及执行预定类型的动作或计算。从用户924接收输入可包括例如,接收网页的URL、从用户924接收点击命令或选择命令、从用户924接收诸如复制命令的编辑命令、或者从用户924接收诸如保存命令的文件命令。向用户924提供输出可包括例如,向用户924显示网页的内容、向用户924播放音频文件或向用户924播放视频文件。
因此,每当事件发生时,在该事件中,用户924执行预定类型的动作,例如向网络浏览器904提供URL、点击网页918上的网络链接、从网页918复制文本或图像、或从网页918下载内容,网络浏览器904执行用户924请求的动作,并且还调用可信时间模块906以获得经验证时间戳,该经验证时间戳指示该动作被执行的时间或该事件发生的时间。网络浏览器904调用可信计算模块910以生成事件的快照,其中,该快照可以采用记录的格式,包括:用户924的身份、事件的描述(例如,对执行的动作的描述)、指示事件何时发生(例如,该动作何时被执行)的经验证时间戳以及关于与该动作相关联的网页的信息(例如,URL)。可信计算模块910生成所述记录的哈希值,并将包括所述记录和所述哈希值的区块添加到区块链912,该区块链912存储了与用户924相关联的记录。
在每个事件发生时,网络浏览器904调用可信时间模块906以获得指示该事件发生时间的经验证时间戳。网络浏览器904调用可信计算模块910以更新区块链912,从而添加具有关于该事件的信息的记录。
可信平台902与区块链网络930的节点之一(例如,节点928)相关联,其中,区块链912被跨区块链网络930复制。例如,所述节点之一可以与维护区块链912的版本的计算机服务器926相关联。
图10是示出根据本文实施例的用于提供可信时间的系统的示例的图示。在一些实施方式中,可信时间模块1010基于由国家标准机构分配的协调世界时(UTC)1020或由全球定位系统(GPS)接收器1030生成的时间信息来产生经验证时间戳,其中,全球定位系统(GPS)接收器1030从诸如中国维护的北斗导航卫星系统、美国维护的全球定位系统、欧盟维护的伽利略全球导航卫星系统、俄罗斯维护的全球轨道导航卫星系统(GLONASS)和/或日本维护的准天顶卫星系统等定位系统获得时间信息。
图11是示出根据本文实施例的用于提供可信身份的系统的示例的图示。在一些实施例中,可信身份模块1100维护用户账户数据库1102,该用户账户数据库1102包括由注册用户自身提供的关于该注册用户的信息。可信身份模块1100还访问其他数据库以验证用户提供的账户信息。例如,可信身份模块1100可以访问政府ID数据库1104以验证由用户提供的政府ID的准确性。如果可信身份模块1100确定由用户提供的政府ID与在政府ID数据库1104中列出的另一用户的名称或电话号码匹配,则可信身份模块1100可以生成指示可能为欺骗性身份的警报消息。在一些实施例中,可信身份模块1100可以对访问在线银行服务(例如支付宝)的用户的账户的数据库1106进行访问,该数据库允许用户以数字方式支付在可信平台上提供的服务。可信身份模块1100可以访问与使用在线支付服务的用户的账户有关的数据库1108。可信身份模块1100可以访问与使用可信平台上提供的社交媒体服务的用户的账户有关的数据库1110。可信身份模块1100可以访问与使用可信平台上提供的通信服务的用户的账户有关的数据库1112。
可信身份模块1100可访问与在线购物服务的用户的账户有关的数据库1118,该在线购物服务允许用户在线选购产品。可信身份模块1100可访问与使用在线娱乐服务的用户的账户有关的数据库1116,该在线娱乐服务允许用户通过下载或流传输音乐或电影来收听音乐或观看电影。可信身份模块1100可访问生物特征数据库1114,该数据库1114存储由用户在注册期间提供的例如一个或多个指纹、一个或多个声纹或者虹膜信息的生物特征信息。
在一些实施例中,可信身份模块1100可以尝试使用多个数据库来验证用户的身份,从而增加可信身份模块1100提供的经验证身份信息的可信度。
在一些实施例中,各种数据库1104、1106、1108、1110、1112、1114、1116和1118可以彼此独立地维护。例如,用户可以修改在线银行账户中的信息,而无需修改在线购物账户中的信息。用户可以在不同的时间段更新不同账户中的信息。同一用户可以针对不同的服务使用不同的用户名或别名。多个用户可以共享同一账户,例如,家庭成员可以共享同一电影流播账户。同一用户可以针对一项服务开设多个账户,例如,一个用户可以具有多个移动电话号码、多个电子邮件地址和/或多个消息传送ID。因此,基于单个数据库的信息,可能不足以准确地验证用户的身份。但是,通过组合来自多个数据库的信息,可以更可靠地验证用户的身份。
图12是示出根据本文实施例的用于可信执行的系统1200的示例的图示。在一些实施例中,区块链网络的节点和/或与区块链网络通信的节点可以使用可信执行环境(TEE)或富足执行环境(rich execution environments,REE)操作。通常,可信执行环境是安全、完整性受保护的处理环境,包括处理、内存和存储功能。在一些实施例中,可信执行环境可以与“正常”处理环境(例如,REE)隔离,在该处理环境下设备操作系统和应用运行。可信执行环境可以通过对REE应用和服务进行划分以使得敏感操作仅限于可信执行环境和敏感数据(例如,加密密钥),可以使构建具有更好安全性和可用性的REE应用和服务成为可能。
在所示的示例中,区块链节点1210和1230使用TEE和REE两者运行。如图所示,虚拟机1214和1234使用TEE运行,高速缓存1216和1236也使用TEE运行。服务1212和1232(例如,交易、查询、分发和网络服务)在REE中运行。与在TEE中运行的缓存不同,存储1218和1238在REE中运行。
TEE是硬件(一个或多个处理器、存储器)内与硬件的操作环境(例如,操作系统(OS)、基本输入/输出系统(BIOS))隔离的可信环境。更详细地,TEE是处理器的确保代码执行以及主处理器中加载的数据的私密性和完整性的单独的、安全区域。在处理器内,可信执行环境与操作系统并行运行。所谓的可信应用(TA)的至少部分在可信执行环境内执行,并且具有对处理器和存储器的访问权限。通过可信执行环境,可信应用得到保护而免受主操作系统中运行的其他应用程序的影响。此外,可信执行环境在可信执行环境内部将可信应用彼此加密隔离。
可信执行环境的示例包括美国加利福尼亚州圣塔克拉的英特尔公司提供的软件保护扩展(SGX)。尽管本文通过示例的方式讨论了SGX,但是可以预期,可以使用任何适当的可信执行环境来实现本文的实施例。SGX提供了基于硬件的可信执行环境。在SGX中,可信硬件是中央处理器(CPU)的核心,并且物理存储器的一部分被隔离以保护选择的代码和数据。存储器的被隔离部分被称为飞地(enclave)。更具体地,将飞地作为存储器中的飞地页高速缓存(enclave page cache,EPC)提供,并映射到应用地址空间。存储器(例如,DRAM)包括用于SGX的保留的随机存储器(PRM)。随机存储器是最低BIOS级别的连续存储器空间并且不能够由任何软件访问。每个飞地页高速缓存是由操作系统分配以在随机存储器中加载应用数据和代码的存储集(例如,4KB)。飞地页高速缓存元数据(EPCM)是相应飞地页高速缓存的进入地址并且确保每个飞地页高速缓存仅能够由一个飞地共享。也就是说,单个飞地可以使用多个飞地页高速缓存,而飞地页高速缓存专用于单个飞地。
上述区块链和TEE技术可用于生成与在线交易相关的高度可靠的记录。在线交易通常涉及多个步骤。替代生成交易的最终结果的经验证记录(例如,生成在交易结束时生成的数据的哈希值),本文中描述的新型系统使用在交易的多个步骤中发生的多个事件期间生成的数据,来生成可用于验证交易的记录。来源于与交易的多个步骤相关联的事件的数据的经验证记录比仅基于交易的最终结果的经验证记录要可靠得多。在一些实施例中,对于每条需要被验证的数据,不仅每条数据本身被验证,生成每条数据的处理也被验证。生成该条数据的处理可涉及多个步骤,并且该处理的每个步骤都经过验证。这确保了最终数据是高度可靠的,因为该处理的每个步骤都被欺骗性地修改的概率非常低。在一些实施例中,提供了一种用于以数字数据形式收集证据的工具。对于需要被验证的每条证据,不仅证据本身被验证,收集或生成每条证据的处理也被验证。收集或生成证据的处理可涉及多个步骤,并且该处理的每个步骤都经过验证。这确保了在处理结束时收集或生成的证据是高度可靠的,因为有人在该处理的每个步骤中均欺骗性地修改数据的概率非常低。
图13是示出根据本文实施例的用于区块链安全的架构1300的示例的图示。架构1300可以被实现为向基于区块链的可信系统(诸如图3的基于区块链的可信平台312或图8的基于区块链的可信平台800)提供安全功能。在所示的示例中,安全架构1300包括以下组件:应用安全组件1310、数据安全组件1320、协议和算法安全组件1330以及安全管理组件1340。
在一些实施例中,应用安全组件1310可以包括诸如身份管理功能1312、访问控制功能1314和智能合约审核功能1316之类的功能。在一些实施例中,身份管理功能1312可以包括用于用户认证的基于凭证的认证机制。在一些示例中,基于凭证的认证机制可以包括服务系统与区块链节点之间的认证以及使用TLS(传输层安全性)的不同区块链节点之间的认证。在此示例中,在认证成功之后,可以允许在可靠的信道上传输服务。服务系统与区块链节点之间以及区块链节点之间的通信可以通过TLS加密以减轻恶意网络攻击。在一些实施例中,基于区块链的可信系统可以支持TLS协议和HTTPS(超文本传输协议安全)协议,其中这两个协议都可以支持基于凭证的双向认证。在一些实施例中,HTTPS可以被配置为支持根据用户需求的单向认证。在一些实施例中,可以在区块链节点之间实现握手程序。可以通过要求一个区块链节点在握手程序中验证另一个区块链节点的私钥签名来实现区块链节点之间的可靠通信。在一些实施例中,访问控制功能1314可以被配置为支持对用户账户的访问控制。在一些示例中,访问控制功能1314可以支持具有不同级别/优先级的不同账户访问权限。访问控制功能1314可以支持不同类别的不同账户权限。访问控制功能1314可以支持不同账户的相互授权以及对账户权限的修改。智能合约审核功能1316可以在处理和实施方面为智能合约提供安全性,并管理智能合约的整个生命周期,包括合作、审核、初始化、升级、撤销等,以减少由代码和服务漏洞引起的安全风险。
数据安全组件1320包括存储安全功能1322和传输安全功能1324。在一些示例中,存储安全功能1322可以提供对多节点数据存储的支持,使得单个区块链节点中的数据丢失不会影响整个区块链网络。存储安全功能1322可以在区块链节点之间提供数据同步机制,以确保数据的正确复制,并提供用于数据存档和备份的数据归档工具。传输安全功能1324可以支持基于私钥的交易签名,以防止交易内容被篡改。传输安全功能1324可以支持哈希机制,该哈希机制提高了记录在区块链中的交易的数据安全性。传输安全功能1324可以基于零知识证明通过隐私交易来支持机密信息的非可见性,以确保机密信息不能被第三方获得。
协议和算法安全组件1330包括智能合约安全功能1332、密码算法安全功能1334和密钥安全功能1336。在一些实施例中,智能合约安全功能1332可以为代码安全性、运行机制安全性、服务逻辑安全性和用户安全性提供支持。在一些示例中,智能合约安全功能1332可支持使用虚拟机来加载和执行智能合约。在此示例中,可以为每个区块链交易创建一个独立的虚拟机。当区块链交易完成时,可以销毁用于区块链交易的虚拟机。可以将虚拟机配置为检测不适当的智能合约内容,并中断具有不适当内容的智能合约的执行。在一些实施例中,密码算法安全功能1334可以为加密、签名和哈希算法及函数提供实用安全性。在一些示例中,密码算法安全功能1334可以根据不同服务场景的需要来支持多组密码套件。如下的表1示出了根据本文实施例的密码套件的说明的示例。
表1.密码套件说明
密钥安全功能1336可通过维护密钥管理系统来为例如公钥和私钥的密钥提供安全。在一些示例中,密钥安全功能1336可支持密钥和凭证的生命周期管理,包括密钥和凭证的生成、导入、保存、导出、分发、交换、使用和更新。密钥安全功能1336可支持用于生成数字签名的私钥的安全存储。密钥安全功能1336可在发生密钥丢失的情况下提供用户信息保护和用户账户锁定。密钥安全功能1336还可支持私钥丢失报告和签名保护机制。
安全管理组件1340包括安全审核功能1342、监督支持功能1344和配置管理功能1346。在一些示例中,安全审核功能1342可支持基于应用日志的安全审核。在此示例中,可对可定义日志命令规则、打印格式、警报级别和节省时间来执行安全审核。安全审核还可包括基于访问时间、IP地址、行为以及记录在日志中的其他信息来发现、分析和跟踪异常事件。在一些实施例中,监督支持功能1344可支持允许用户访问区块链网络以获得账本数据的管理员许可。在一些实施例中,配置管理功能1346可通过配置区块链网络的可信根和核心参数来支持配置和建立创世块以建立初始信任。
图14是示出根据本文实施例的跨链通信系统1400的示例的图示。在一些实施例中,可以实现跨链系统1400以促进不同区块链网络之间的通信。例如,司法区块链网络可能需要与公有区块链网络通信,以向访问公有区块链网络的客户端提供服务。司法区块链网络和公有区块链网络可以在跨链系统1400中实现,以确保两个区块链网络之中以及之间的数据传输和存储过程中的数据安全。在所示的示例中,跨链系统1400包括第一区块链网络1410和第二区块链网络1430。在一些实施例中,每个区块链网络可以包括跨链通信组件或节点,以促进区块链网络的区块链节点与另一区块链网络的区块链节点之间的通信。在上述示例中,第一区块链网络包括第一区块链节点1412和第一跨链通信组件1418,第二区块链网络包括第二区块链节点1432和第二跨链通信组件1438。注意,仅出于说明性目的,示出了区块链节点1412和1432各自包括一个区块链节点和一个跨链通信组件。区块链节点1412和1432可以具有任何合适数量的区块链节点和跨链通信组件。
在一些实施例中,跨链通信组件可以被配置为促进与跨链通信组件在同一区块链网络中的区块链节点与另一区块链网络中的另一跨链通信组件之间通信的通信接口。在所示的示例中,跨链通信组件1418被配置为允许区块链节点1412与跨链通信组件1438之间的通信,并且跨链通信组件1438被配置为允许区块链节点1432与跨链通信组件1418之间的通信。以此方式,可以使用跨链通信组件1418和1438在不同区块链网络1410和1430中的两个区块链节点1412和1432之间实现数据通信。在一些实施例中,跨链通信组件可以被配置为支持本地区块链网络上的数据验证和数据证明。跨链通信组件还可以被配置为支持跨链消息的统一数据格式转换、跨链通信网络协议以及跨链消息的路由。
在所示的示例中,每个区块链节点包括服务端智能合约和跨链智能合约。如图所示,区块链节点1412包括服务智能合约1414和跨链智能合约1416,而区块链节点1432包括服务智能合约1434和跨链智能合约1436。在一些实施例中,服务智能合约可以被配置为允许用户访问区块链节点并提交区块链交易,例如用于将数据记录到区块链的交易,用于将数据传输到另一个区块链网络的交易等等。跨链合约可以被配置为实现跨链协议,以促进区块链节点与跨链通信组件之间的通信。在一些示例中,跨链智能合约可以被配置为支持定义跨链消息格式和跨链消息通信协议。在一些实施例中,跨链智能合约还可以被配置为验证跨链证明并解析格式化数据。
在所示的示例中,每个跨链通信组件包括跨链中继组件和预言机。如图所示,跨链通信组件1418包括跨链中继组件1420和预言机1422,而跨链通信组件1438包括跨链中继组件1440和预言机1442。在一些实施例中,跨链中继组件可以被配置为从跨链智能合约接收的消息中提取账本数据和账本证明。在所示的示例中,跨链中继组件1420可以从跨链智能合约1416接收消息,并从该消息中提取账本数据和账本证明。在一些实施例中,跨链中继组件可以被配置为与不同区块链网络中的另一跨链中继组件通信。继续以上示例,跨链中继组件1420可以处理来自跨链智能合约1416的消息,从消息中提取账本数据,基于账本数据生成跨链消息,并将该跨链消息发送至跨链中继组件1440。在一些实施例中,预言机(例如,预言机1422和1442)可以被配置为执行签名验证,并且对从跨链中继组件接收的数据执行统一的数据格式化。在一些实施例中,预言机可以包括任何合适的硬件和/或软件以执行本文所述的方法。下面将参考图15更详细地讨论使用跨链中继组件和预言机的跨链通信。
图15描绘了可以根据本文实施例执行的跨链通信处理1500的示例。为方便起见,处理1500将被描述为由位于一个或多个位置并根据本文被适当地编程的一个或多个计算机的系统执行。例如,被适当编程的基于区块链的系统,例如图14的系统1400,可以执行处理1500。在一些实施例中,区块链网络1510和1520可以各自被实现为图14的区块链网络1410和1430。在所示的示例中,区块链网络1510包括区块链节点和跨链通信组件,并且区块链网络1520包括区块链节点和跨链通信组件。服务智能合约1512和跨链智能合约1514在区块链网络1510的区块链节点上执行,而服务智能合约1528和跨链智能合约1526在区块链网络1520的区块链节点上执行。跨链中继组件1516和预言机1518在跨链通信组件中实现,而跨链中继组件1524和预言机1522在跨链通信组件中实现。
处理1500开始于步骤1530,其中,服务智能合约1512将包括账本数据的消息发送至跨链智能合约1514。在一些示例中,账本数据可以包括法律文件、商业合约等。在一些实施例中,账本数据的格式可以包括图像、视频、网页、电子表格等。在一些实施例中,账本数据可以包括明文数据和/或明文数据的哈希值。
在步骤1532,跨链智能合约1514在接收到消息之后将包括账本数据的消息发送给跨链中继组件1516。在一些实施例中,跨链智能合约1514可发送消息中的账本数据的账本证明。在一些实施例中,账本证明包括基于账本数据根据预先确定的加密或密码算法生成的数字签名。在一些示例中,可基于账本数据使用执行跨链智能合约1514的区块链节点1502的私钥生成数字签名。
在步骤1534,跨链中继组件1516将账本数据发送到预言机1518。在一些实施例中,跨链中继组件1516从接收自跨链智能合约1514的消息中获得账本数据。在一些实施例中,跨链中继组件1516还从消息中获得账本证明。在一些实施例中,跨链中继组件1516可以将账本数据和账本证明发送至预言机1518。
在步骤1536,预言机1518验证账本数据并确定账本数据是否有效。在一些实施例中,预言机1518可以基于账本证明验证账本数据。在一些示例中,预言机1518可以验证账本证明中包括的数字签名。如果数字签名是有效的,则预言机1518可以确定账本数据是有效的,并继续处理该账本数据。如果数字签名是无效的,则预言机1518可以丢弃该账本数据。
在步骤1538,预言机1518基于账本数据生成格式化的账本数据。在一些实施例中,预言机可以根据统一的数据格式,按照跨链通信协议将账本数据格式化。在一些实施例中,预言机1518可以基于账本数据和账本证明生成格式化的账本数据。
在步骤1540,预言机1518将格式化的账本数据返回到跨链中继组件1516。在一些实施例中,预言机1518可以生成格式化的账本数据的哈希值,并将该哈希值发送到跨链中继组件1516。
在步骤1542,跨链中继组件1516在从预言机1518接收到格式化的账本数据之后,将跨链消息发送到跨链中继组件1524。在一些实施例中,跨链中继组件1516基于格式化的账本数据可以生成跨链消息。在一些实施例中,跨链消息可以包括格式化的账本数据和格式化的账本数据的哈希值。
在步骤1544,跨链中继组件1524在接收到跨链消息之后将格式化的账本数据发送到跨链智能合约1526。在一些实施例中,跨链中继组件1524从接收自跨链中继组件1516的跨链消息获得格式化的账本数据。在一些实施例中,跨链中继组件1524可以从跨链消息获得格式化的账本数据的哈希值。在一些实施例中,跨链中继组件1524可以将哈希值连同格式化的账本数据一起发送到跨链智能合约1526。
在步骤1546,跨链智能合约1526验证格式化的账本数据并确定格式化的账本数据是否有效。在一些实施例中,跨链智能合约1526可以基于从跨链中继组件1524接收到的哈希值验证格式化的账本数据。在一些示例中,跨链智能合约1526可以计算格式化的账本数据的哈希值,并且将计算出的哈希值与接收到的哈希值进行比较。如果这两个哈希值匹配,则跨链智能合约1526可以确定该格式化的账本数据是有效的。如果这两个哈希值不匹配,则跨链智能合约1526可以确定该格式化的账本数据是无效的,并丢弃该格式化的账本数据。在一些实施例中,跨链智能合约1526可以确定格式化的账本数据的格式是否与预定数据格式匹配。如果格式化的账本数据的格式与预定的数据格式匹配,则跨链智能合约1526可以确定格式化的账本数据是有效的。如果格式化的账本数据的格式与预定数据格式不匹配,则跨链智能合约1526可以确定该格式化的账本数据是无效的。
在步骤1548,跨链智能合约1526解析格式化的账本数据。在一些实施例中,跨链智能合约1526可以对格式化的账本数据执行预定的解析方法,例如通过将格式化的账本数据转换成原始账本数据格式。在一些示例中,跨链智能合约1526可以通过将格式化的账本数据转换为原始账本数据格式来获得账本数据。
在步骤1550,跨链智能合约1526在通过解析格式化的账本数据获得账本数据之后,将账本数据发送至服务智能合约1528。服务智能合约1528接收账本数据,并使账本数据可供对区块链网络1520进行访问的用户使用。
图16描绘了根据本文实施例的基于区块链的可信平台中的数据存储的示例1600。在高层,区块链节点1602的数据存储可包括智能合约数据缓存1606和区块链数据库1610。智能合约数据缓存1606可用于存储由智能合约管理的可变数据,而区块链数据库1610可用于存储增量的不可变区块链数据,例如智能合约代码、智能合约的输入、输出和执行日志。区块链数据库1610可是键值数据库,包括区块数据库1612、状态数据库1618和扩展数据库1624。区块数据库1612可存储包括区块头1614和区块体1616的区块链数据。状态数据库1618可存储与区块链数据相关的状态信息,包括状态树1620和存储树1622。扩展数据库1624可存储包括多个智能合约池1626和与多个智能合约池1626相关联的元数据1628的智能合约数据。
区块链节点1602可以调用虚拟机1608来执行智能合约。在一些实施例中,虚拟机1608可以被部署在诸如TEE之类的可信计算环境中。在一些实施例中,虚拟机1608可以被配置为通过执行智能合约编程语言的指令来执行智能合约操作。在一些示例中,虚拟机1608可以在操作执行期间访问TEE外部的资源,例如外部服务器、区块链、数据库或该操作指示的其他资源。在一些实施例中,可以限制或拒绝访问外部资源,使得操作的整体执行仅取决于存储在TEE中的数据(例如,智能合约状态)。这种限制还可以减少篡改操作执行的可能性。
智能合约操作可以包括与请求合约操作相关联的智能合约的执行状态(例如,添加文档、更新文档状态等)。在执行智能合约期间,区块链网络的多个区块链节点可以分别执行智能合约的每条指令,并在执行完指令后产生指示智能合约的执行状态的结果。执行状态可以包括与智能合约相关联的数据。合约的每个已执行指令可以更改数据的内容(例如,存储要由智能合约中的后续指令使用的值)。
在执行智能合约的指令后,区块链网络的节点可以在执行指令后就新的执行状态达成共识。对智能合约中执行的每个指令执行此共识处理,从而促使就智能合约的执行路径达成共识。执行路径可以被记录为区块数据库1612中记录的对应智能合约执行事件日志。最后,执行的最终结果(即输出)也记录在区块数据库1612中。
通常,可变数据可以包括文档类型、文档ID、文档状态、文档内容的可修改数据、与存储在智能合约数据缓存1606和区块链数据库1610中的文档数据相关联的交易哈希、为将与同一订单相关联的不同文档进行链接而提供的链接信息、加密密钥以及文档的授权用户列表等。在一些实施例中,智能合约数据缓存1606还可以存储索引数据,以将与同一文档或交易相关联的可变数据和不可变数据相关联。如前所述,索引数据可以包括与文档相关联的文档ID和与交易相关联的交易哈希。文档ID可以被存储在智能合约数据缓存1606和区块链数据库1610中,以链接与同一文档相关联的可变数据和不可变数据。交易哈希可以被存储在智能合约数据缓存1606和区块链数据库1612中,以链接与同一交易相关联的可变数据和不可变数据。这样,当查询文档或与文档相关联的交易时,可以从两个存储位置识别可变数据和不可变数据。
文档类型和文档ID可以分别指示文档的类型和ID。文档状态可以指示文档的状态。文档内容的可修改数据可以是文档的创建者插入到文档中以用于数据处理的开销等特定内容。
交易哈希可以是存储在区块链数据库1610中的不可变区块链数据的哈希值。加密密钥可以包括对称密钥,该对称密钥用于在将文档数据存储在区块链数据库1610中的区块链上之前对其加密。加密密钥还可以包括与如图3的描述中所描述的基于区块链的可信平台312的用户相关联的加密密钥。存储在区块链数据库1610中的数据可以被加密以保护文档所有者的隐私。
文档所有者可以通过使用基于区块链的可信平台的另一用户的公钥发布对称密钥的加密版本来向该用户提供明文文档的访问权限。加密数据是不可变的,并存储在区块链数据库1610中,可以生成加密数据的哈希值(即交易哈希)并将其与对称密钥的加密版本一起存储到同一数据结构下的智能合约数据缓存1606。通常,交易哈希可以用于将智能合约数据缓存1606中存储的可变数据与关联于存储在区块链数据库1610中的同一订单的不可变区块链数据链接。例如,订单文档和与订单相关联的一个或多个物流文档可以包括存储在智能合约数据缓存1606中的可变数据和存储在区块链数据库1610中的加密文档。存储在区块链数据库1610中的加密文档的交易哈希可以与智能合约数据缓存1606中的同一数据结构下的可变数据一起存储。这样,在查询时可以链接存储在不同位置的数据。
为了查询数据,被许可的用户可以搜索智能合约数据缓存1606以获得哈希值和对称密钥的加密版本。用户可以使用其私钥将对称密钥的加密版本解密。如果对称密钥被成功解密,则用户可以确定其具有对明文数据的访问权限。然后,用户可以使用哈希值定位来自区块链数据库1610的加密数据,并使用对称密钥将该加密数据解密。
在一些实施例中,智能合约数据缓存1606中的可变数据被存储为KVP。与诸如硬盘驱动器的其他存储介质相比,缓存存储可以是相对高速、高成本和低容量的存储介质。当KVP的容量超过某个阈值(例如,5GB)时,可能会发生缓存丢失状态(cache-miss state)。缓存丢失是指在缓存存储器中找不到由组件或应用进行处理所需的数据的状态。缓存丢失可能会要求程序或应用从其他缓存级别或主内存中获取数据,从而导致执行延迟。
在一些实施例中,可以在区块链数据库1610中创建多个智能合约池1626,以将由智能合约管理的可变数据的至少一部分存储在智能合约数据缓存1606中。然后,可以将至少一部分可变数据从高成本缓存存储移到区块链数据库1610,以降低总存储成本并减轻缓存丢失状态。
在一些实施例中,可以由区块链节点1602将新的智能合约地址添加到配置文件1604,以创建对应的智能合约。当执行配置文件1604时,虚拟机1608可以基于智能合约地址创建智能合约。当创建对应的智能合约时,可以在扩展数据库1624中自动创建与智能合约相对应的智能合约池。
在一些实施例中,智能合约池1626中存储的数据也通过共识被记录在区块数据库1612中。在一些实施例中,智能合约池中存储的数据可以由相应的智能合约专门管理。智能合约的合约ID可以被添加到存储在相应智能合约池中的数据中,以便可以通过智能合约轻松查询、检索或以其他方式管理池中的数据。
在一些实施例中,可以基于文档ID或文档类型中的一个或多个的哈希值将文档存储在智能合约池1626之一中。哈希值范围可以是预定的,并分配给每个智能合约池1626。例如,对于文档ID为000001的文档,其md3哈希值为769924EADBBF6F72C6581377419FCB77。假设存在16个智能合约池,则基于哈希值的第一位十六进制数,该文档可以被存储在第七智能合约池中。同样,文档ID为000003的文档具有md3哈希值4DE1F0F6DA993FC4AB439CDCA5E084F6。基于哈希值的第一位十六进制数,该文档可以被存储在第四智能合约池中。
在一些实施例中,与同一订单相关联的订单文件、物流文件和付款文件可以被分配给同一文件ID或标签。这样,当从智能合约数据缓存1606、智能合约池1626和区块链814查询时,可以轻松定位它们。为了链接与存储在不同智能合约池1626中的相同订单相关联的文档,可以将对应智能合约的文档ID与对应文档ID一起添加到每个文档。这样,可以根据文档ID从不同的智能合约池1626检索文档。在一些实施例中,文档ID可以是对应文档的交易哈希。交易哈希可以用于定位存储在区块数据库1612中的对应不可变数据。
在一些实施例中,可以周期性地创建新的智能合约池。例如,如果每月创建一个新的智能合约池,则可以将智能合约与创建时间(表示为MMYYYY,其中,MM表示创建月份,YYYY表示创建年份)相关联。这样,可以将在特定月份创建的可变数据存储在该月份创建的智能合约池中。
在一些实施例中,可以以循环方式将文档存储在每个智能合约池1626中。在一些示例中,在智能合约池达到其存储容量之后,新文档的可变数据可以存储在下一个智能合约池中。在一些示例中,在智能合约池存储了预定数量文档的可变数据之后,可以将新文档的可变数据存储在下一个智能合约池中。
图17描绘了根据本文实施例的用于实现基于区块链的可信平台1702的系统1700的示例。基于区块链的可信平台1702提供允许用户管理在合约制定和执行的各个阶段中使用的信息的集成接口。在一些实施例中,基于区块链的可信平台1702向一个或多个合约方(例如,合约方A 1768和合约方B 1772)提供服务,使得由合约方谈判和签署的合约可以被安全地存储(例如,如在图16的描述中所描述的,在区块链数据库1610和智能合约数据缓存1606中)。在一些实施例中,基于区块链的可信平台1702还可以通过网络1764(例如,互联网)向例如与一个或多个银行1772、一个或多个司法机构1774以及一个或多个政府机构1776等与合约相关联的其他实体提供服务。
合约方A 1768可以是从合约方B 1770购买服务或商品的买方。合约方A 1768和合约方B 1770可以协商一个合约,该合约定义要购买的商品或服务、交货日期、付款方式、违约金等。当合约双方都同意该合约的条款,他们可以签署合约,并且合约方A1768或合约方B1770可以将合约副本发送到基于区块链的可信平台1702以进行记录保存,例如,通过将合约副本存储在区块链数据库1610和/或智能合约数据缓存1606。
银行1772可以维护合约方的银行账户,以及在合约方之间发送和接收付款。银行1772可将与合约相关的付款信息提供给基于区块链的可信平台1702。银行可生成包括与合约有关的付款信息的付款文档,并将该付款文档发送到基于区块链的可信平台1702。
司法机构1774可以在合约执行期间解决纠纷。例如,合约方A 1768可以默认付款给合约方B 1770。司法机构1774可以发布将合约方A 1768确定为债务人并将合约方B 1770确定为债权人的法院命令以及判决金额。司法机构1774可以将法院命令的副本发送到基于区块链的可信平台1702以进行记录保存,例如,通过将法院命令的副本存储在区块链数据库1610和/或智能合约数据缓存1606中。然后,合约方B 1770可以将请求发送到基于区块链的可信平台1702,以从合约方A 1768收取判决金额。在验证该请求与存储在区块链中的真实法院命令相关联之后,基于区块链的可信平台1702可以识别与合约方A 1768相关联的总余额不小于判决金额的一个或多个银行账户,并将该判决金额从与合约方A相关联的一个或多个银行账户1768转移到与合约方B相关联的一个或多个银行账户。
政府机构1776可以是一家政府机构,其负责监督和调节与合约有关的活动,例如确定合约是否符合法律、法规或规章制度,以及评估和收取与货品进出口有关的关税、税款和费用。政府机构1776还可负责检测与合约相关的欺诈活动。政府机构1776可以访问和检索存储在基于区块链的可信平台1702中的合约。基于区块链的可信平台1702可以向政府机构1776提供服务,例如检查合约中是否存在潜在的违规行为或欺诈行为。
基于区块链的可信平台1702与包括多个区块链节点1758的区块链网络1756交互,以将合约信息安全地记录在区块链数据库1610和智能合约数据缓存1606中。如上所述,智能合约数据缓存1606可以以智能合约数据的形式存储可变数据,并且区块链数据库1610可以存储增量的、不可变的、永久的区块链数据。这在区块链数据的处理效率和存储成本之间提供了很好的平衡。
在一些实施例中,基于区块链的可信平台1702包括应用层1704、可信服务层1710、区块链层1718、基础设施层1738和工具平台1744。
应用层1704可以提供使一个或多个合约方(例如,合约方A 1768和合约方B 1770、一个或多个银行1772、一个或多个司法机关1774以及一个或多个政府机构1776)能够方便地并安全地访问和处理合约数据。例如,应用层1704可以包括使得能够在区块链上记录合约数据的数据记录功能1706。应用层1704还可以包括数据验证功能1708,其使得能够验证特定合约数据是否被记录在区块链上。应用程序层1704可以调用基于区块链的可信平台1702的其他层。
可信服务层1710可以向应用层1704提供可信区块链服务,以确保记录在区块链上的数据是可信的。可信服务层1710可以包括可信身份模块1712、可信时间模块1714和可信计算模块1716。
区块链层1718可以为基于区块链的可信平台1702提供核心功能,并且可以包括API层1720、平台管理层1734和基础服务层1736。API层1720可以包括用于向基于区块链的可信平台1702输入数据和从其输出数据的接口。API层1720可以包括:记录输入接口1722,用于接收要记录在区块链上的数据;记录输出接口1724,用于输出在区块链上记录数据的结果;验证输入接口1726,用于接收基于记录在区块链上的数据要验证的数据;验证输出接口1728,用于输出基于记录在区块链上的数据验证数据的结果;数据历史搜索接口1730,用于查询记录在区块链上的数据;交易搜索接口1732,用于查询记录在区块链上的交易。平台管理层1734可以提供管理功能,例如,链域管理、节点管理和组织管理。链域管理可以在区块链级别提供网络管理和配置管理。节点管理可以管理共识节点的加入或退出。组织管理可以指定访问平台的实体的访问权限。基础服务层1736可以包括为基于区块链的可信平台1702提供基础功能的模块,例如,共识策略模块、隐私保护模块、网络协议模块、区块链存储模块、ZKP生成模块和ZKP验证模块。共识策略模块可以使区块链节点就要记录在区块链上的数据达成共识。隐私保护模块可以保护访问平台的实体的身份和交易的隐私。网络协议模块可以实现区块链节点之间的可靠通信。区块链存储模块可以使数据可靠地存储在区块链上。ZKP生成模块可以用于基于要隐藏的数据生成一个或多个ZKP。ZKP验证模块可以用于基于输入证明验证一个或多个ZKP。
基础设施层1738可以为基于区块链的可信平台1702提供计算和通信功能。基础设施层1738可以提供诸如公有云1740和私有云1742的云服务。基础设施层1738可以确保安全的数据存储、分析和计算。
工具平台1744可提供用于监视、管理以及基于区块链的可信平台1702的操作和维护的工具。工具平台1744可包括统计显示工具1746、状态监视工具1748、日志收集工具1750、性能分析工具1752和网络拓扑工具1754。
图18描绘了根据本文实施例的用于记录账本数据的处理1800的示例。处理1800可由在一个或多个区块链节点上或在可通信地耦接到一个或多个区块链节点的一个或多个计算设备上实现的基于区块链的可信平台(例如,基于区块链的可信平台1702)执行。为了清楚地呈现,以下描述总体地描述了在本文中的其他附图的背景下的处理1800。然而,应当理解,处理1800可以例如通过任何系统、环境、软件和硬件,或者系统、环境、软件和硬件的组合来适当地执行。在一些实施例中,处理1800的各个步骤可以并行、组合、循环或以任何顺序运行。
在1802,可以从客户端设备并经由记录输入接口(例如,记录输入接口1722)接收要记录在区块链上的账本数据。在一些实施例中,基于区块链的可信平台包括数据记录功能(例如,数据记录功能1706),用于在区块链上记录账本数据;数据验证功能(例如,数据验证功能1708),用于验证记录在区块链上的账本数据;可信服务层(例如,可信服务层1710)用于提供可信计算;以及区块链层(例如,区块链层1718),包括记录输入接口和记录输出接口(例如,记录输出接口1724)。
在一些实施例中,客户端设备与不同于要记录数据的第一区块链的第二区块链相关联。在一些实施例中,第一区块链可以采用第一标准化格式来存储区块链数据,而第二区块链可以采用与第一标准化格式不同的第二标准化格式来存储区块链数据。例如,第一区块链可以是公有区块链,并且对应的交易具有包括诸如总输入、总输出、费用等数据字段的标准化格式,而第二区块链可以是联盟区块链,并且对应的交易具有包括诸如值、随机数、气体限制(gas limit)等的数据字段的标准化格式。如果客户端设备将要记录的数据打包在联盟区块链交易中,并将该联盟区块链交易发送到公有区块链节点以用于记录,则公有区块链节点可能无法解析该联盟区块链交易,因为例如,联盟区块链交易的数据字段与公有区块链交易的数据字段不同。在一些实施例中,客户端设备基于图15中所讨论的处理将包括账本数据的跨链消息发送到第一区块链。
在一些实施例中,账本数据包括被定义在记录规则中并且被记录输入接口接受的一个或多个记录输入参数。在一些实施例中,账本数据包括与结构化数据相关联的一个或多个记录输入参数。结构化数据可以是例如具有标准化格式的数据,该标准化格式具有一个或多个预定数据字段。例如,键值表中的数据记录可以是结构化数据。作为另一个示例,具有预定数据字段(例如,总输入、总输出、费用)的区块链交易也可以是结构化数据。在一些实施例中,结构化数据的数据字段的位置或与数据字段相关联的位数中的至少一个是以标准格式预先确定的。
在一些实施例中,账本数据包括与非结构化数据相关联的一个或多个记录输入参数。非结构化数据可是例如不能在多维表中呈现的数据。例如,非结构化数据可是数据文件,例如,文本文件、图像文件、视频文件、音频文件等。
如果账本数据与结构化数据相关联,则一个或多个记录输入参数可以包括以下一个或多个:结构化数据的数据信息、结构化数据的服务信息、结构化数据的时间戳、结构化数据的签名数据、以及结构化数据的区块链共识结果。结构化数据的数据信息可以包括以下一个或多个:结构化数据的唯一ID和/或基于哈希函数计算的结构化数据的哈希值和结构化数据的至少一部分。结构化数据的服务信息可以包括:例如,与结构化数据相关联的合约的ID、与合约各方相关联的一个或多个ID、合约的名称等。结构化数据的时间戳可以指示创建或最后修改结构化数据的时间。结构化数据的签名数据可以是通过使用客户端设备的用户的私钥签名的结构化数据。结构化数据的区块链共识结果可以指示是否已经对结构化数据达成了区块链共识。
如果账本数据与数据文件相关联,则一个或多个记录输入参数可包括以下一个或多个:数据文件的哈希值、数据文件的属性信息、数据文件的服务信息、数据文件的时间戳、以及数据文件的签名数据。可基于哈希函数和数据文件的至少一部分来计算数据文件的哈希值。数据文件的属性信息可包括以下一个或多个:数据文件的类型、来源、状态、名称、大小、与客户端设备相关联的用户以及更新时间。数据文件的服务信息可包括例如,与数据文件相关联的合约的ID、与合约各方相关联的一个或多个ID、合约的名称等。数据文件的时间戳可指示创建或最后修改数据文件的时间。数据文件的签名数据可是通过使用客户端设备的用户私钥签名的数据文件。
在一些实施例中,在客户端设备将账本数据发送到基于区块链的可信平台之前,在客户端设备和基于区块链的可信平台之间建立安全的通信信道。基于双向传输层安全性(TLS)协议、双向超文本传输协议安全性(HTTPS)协议或单向HTTPS协议中的至少一种可以建立安全通信信道。
在1804,可确定与账本数据相关联的原始账本数据是否满足记录规则。
在一些实施例中,原始账本数据是账本数据本身。在一些实施例中,账本数据包括比特流,并且通过基于转换规则转换比特流来获得原始账本数据。转换规则可以包括在记录规则中。在一些实施例中,在经由记录输入接口接收账本数据之前,客户端设备可以生成包括一个或多个记录输入参数的原始数据,并且基于转换规则将原始数据转换为比特流。转换规则可以包括以下至少一个:与一个或多个记录输入参数中的每个记录输入参数相对应的编码方案,或者在比特流中排列一个或多个记录输入参数的顺序。例如,客户端设备可以生成包括一个或多个记录输入参数的原始数据,将各个记录输入参数的每个数据值编码为各个小比特流,确定在比特流中排列一个或多个记录输入参数的顺序,以及拼接各个小比特流以生成比特流。
例如,原始数据包括三个记录输入参数:记录输入参数1、记录输入参数2和记录输入参数3。记录输入参数1的值为x。记录输入参数2的值为y。记录输入参数3的值为z。转换规则的编码方案可以提供:x被编码为1000、y被编码为1001、z被编码为1101。转换规则还可以指:在比特流中排列三个记录输入参数的顺序是{记录输入参数1、记录输入参数3、记录输入参数2}。然后,获得的比特流为100011011001。
在接收账本数据之后,然后可以基于转换规则将账本数据中包括的比特流转换为包括一个或多个记录输入参数的原始数据。例如,假设接收到比特流100011011001,则可以确定接收到记录输入参数1,记录输入参数3和记录输入参数2,并且它们各自的值为x、z和y。
在一些实施例中,记录规则定义由记录输入接口接受的一个或多个记录输入参数。在一些实施例中,对于一个或多个记录输入参数中的每个记录输入参数,记录规则提供相应记录输入参数采用的输入格式。例如,记录输入参数可以是由记录输入接口接受的变量,账本数据可以包括与该变量对应的值,并且记录输入参数的输入格式可以是变量的数据类型、变量的大小限制、在变量中被排除使用的字符等。在一些实施例中,如果原始账本数据包括一个或多个记录输入参数的至少一个且满足一个或多个记录输入参数的输入格式,则确定原始账本数据满足记录规则,并且处理1800进行到1806。否则,确定原始账本数据不满足记录规则,并且处理1800进行到1812。
在1806,原始账本数据可被记录在区块链上。在一些实施例中,可信服务层可包括可信时间模块(例如,可信时间模块1714)、可信身份模块(例如,可信身份模块1712)和可信计算模块(例如,可信计算模块1716)。在一些实施例中,数据记录功能可调用可信时间模块以生成第一记录时间戳,该第一记录时间戳表示由数据记录功能接收账本数据的时间。在一些实施例中,数据记录功能可调用可信身份模块以验证与客户端设备相关联的用户身份,并调用可信时间模块以生成第二记录时间戳。第二记录时间戳可表示原始账本数据记录在区块链上的时间。在一些实施例中,数据记录功能可调用可信计算模块以生成包括原始账本数据、用户身份、第一记录时间戳和第二记录时间戳的区块链交易。然后,区块链交易可与一个或多个区块链节点共享以执行区块链共识,并在达成区块链共识后该区块链交易可被添加到区块链中。
在1808,可以生成记录收据。在一些实施例中,记录收据指示原始账本数据已被成功记录在区块链上。
在1810,经由记录输出接口(例如,记录输出接口1724)可以发送记录收据。
在1812,经由记录输出接口可以发送错误消息。在一些实施例中,错误消息指示原始账本数据不满足记录规则。在一些实施例中,错误消息还可以包括原始账本数据不满足记录规则的一个或多个原因。
图19描绘了根据本文实施例的用于验证账本数据的处理1900的示例。可以由在一个或多个区块链节点上或在可通信地耦接到一个或多个区块链节点的一个或多个计算设备上实现的基于区块链的可信平台(例如,基于区块链的可信平台1702)执行处理1900。为了清楚地呈现,以下描述总体地描述了在本文中的其他附图的背景下的处理1900。然而,应当理解,处理1900可以例如通过任何系统、环境、软件和硬件,或者系统、环境、软件和硬件的组合来适当地执行。在一些实施例中,处理1900的各个步骤可以并行、组合、循环或以任何顺序运行。
在1902,从客户端设备并经由验证输入接口(例如,验证输入接口1726)可接收账本数据。在一些实施例中,客户端设备获得诸如合约文件之类的原始数据,并打算验证该原始数据是否被篡改。然后,客户端设备可计算该原始数据的哈希值,生成包括哈希值的账本数据,并将该账本数据发送到基于区块链的可信平台以用于验证。基于区块链的可信平台可将从客户端设备接收到的哈希值与记录在区块链上的哈希值进行比较。如果基于区块链的可信平台发现记录在区块链上的哈希值匹配从客户端设备接收到的哈希值,则基于区块链的可信平台可验证该原始数据未被篡改。然后,基于区块链的可信平台可将验证收据发送至客户端设备,以表明合约文件未被篡改。
在一些实施例中,客户端设备与不同于接收账本数据的第一区块链的第二区块链相关联。在一些实施例中,第一区块链可采用第一标准化格式来存储区块链数据,第二区块链可采用与第一标准化格式不同的第二标准化格式来存储区块链数据。例如,第一区块链可是公有区块链,且对应的交易具有包括诸如总输入、总输出、费用等数据字段的标准化格式,第二区块链可是联盟区块链,且对应的交易具有包括诸如值、随机数、气体限制等的数据字段的标准化格式。如果客户端设备将要记录的数据打包在联盟区块链交易中,并将该联盟区块链交易发送到公有区块链节点以进行记录,则公有区块链节点可能无法解析该联盟区块链交易,因为例如联盟区块链交易的数据字段与公有区块链交易的数据字段不同。在一些实施例中,客户端设备基于图15中所讨论的处理将包括账本数据的跨链消息发送到第一区块链。
在一些实施例中,账本数据包括被定义在验证规则中并且被验证输入接口接受的一个或多个验证输入参数。账本数据可以包括与图18中讨论的结构化数据或非结构化数据相关联的一个或多个验证输入参数。
如果账本数据与结构化数据相关联,则一个或多个验证输入参数可包括以下一个或多个:对账本数据的验证方法的选择、结构化数据的唯一ID、结构化数据的服务信息、结构化数据的时间戳、以及结构化数据的签名数据。在一些实施例中,基于区块链的可信平台提供多种验证方法供客户端设备选择。例如,多种验证方法可包括比特流验证方法和明文验证方法。在比特流验证方法下,在账本数据可以被验证之前,账本数据包括比特流,并需要将该比特流转换为一个或多个验证输入参数的数据值。在明文验证方法下,账本数据直接包括不需要转换的一个或多个验证输入参数的数据值。结构化数据的唯一ID可是基于哈希函数和结构化数据的至少一部分计算的结构化数据的哈希值。结构化数据的服务信息可包括例如与结构化数据相关联的合约的ID、与合约各方相关联的一个或多个ID、合约的名称等。结构化数据的时间戳可指示创建或最后修改结构化数据的时间。结构化数据的签名数据可以是通过使用客户端设备的用户的私钥签名的结构化数据。
如果账本数据与数据文件相关联,则一个或多个验证输入参数可以包括以下一个或多个:数据文件的哈希值、数据文件的服务信息、数据文件的时间戳和数据文件的签名数据。基于哈希函数和数据文件的至少一部分可以计算数据文件的哈希值。数据文件的服务信息可以包括:例如,与数据文件相关联的合约的ID、与合约各方相关联的一个或多个ID、合约的名称等。数据文件的时间戳可指示创建或最后修改数据文件的时间。数据文件的签名数据可以是通过使用客户端设备的用户的私钥签名的数据文件。
在1904,可以确定与账本数据相关联的原始账本数据是否满足验证规则。在一些实施例中,原始账本数据是账本数据本身。在一些实施例中,账本数据包括比特流,并且通过基于转换规则转换比特流来获得原始账本数据。转换规则可以被包括在验证规则中。在一些实施例中,比特流和原始数据之间的转换遵循与图18中讨论的类似的处理。
在一些实施例中,验证规则定义由验证输入接口接受的一个或多个验证输入参数。在一些实施例中,对于一个或多个验证输入参数中的每个验证输入参数,验证规则提供相应的验证输入参数采用的输入格式。例如,验证输入参数可是由验证输入接口接受的变量,账本数据可包括与该变量对应的值,并且验证输入参数的输入格式可是变量的数据类型、变量的大小限制、在变量中被排除使用的字符等。在一些实施例中,如果原始账本数据包括一个或多个验证输入参数中的至少一个且满足一个或多个验证输入参数的输入格式,则确定原始账本数据满足验证规则,并且处理1900进行到1906。否则,确定原始账本数据不满足验证规则,并且处理1900进行到1912。
在1906,可确定原始账本数据是否被证实。在一些实施例中,如果原始账本数据匹配记录在区块链上的第一账本数据,则原始账本数据被证实。在一些实施例中,原始账本数据和第一账本数据都包括数据文件的哈希值或结构化数据的哈希值,如果包括在原始账本数据中的哈希值匹配包括在第一账本数据中的哈希值,则确定原始账本数据对应于第一账本数据。如果确定原始账本数据被证实,则处理1900进行到1908。否则,处理1900进行到1912。
在1908,可以生成验证收据。在一些实施例中,验证收据指示与账本数据相关联的原始数据未被篡改。
在1910,可以经由验证输出接口(例如,验证输出接口1728)将验证收据发送至客户端设备。
在1912,可经由验证输出接口发送错误消息。在一些实施例中,错误消息指示原始账本数据不满足验证规则以及原始账本数据不满足验证规则的一个或多个原因。在一些实施例中,错误消息指示与账本数据相关联的原始数据被篡改。
图20描绘了根据本文实施例的跨链和跨网络数据传输的示例2000。示例2000包括互联网2002、私有网络2004以及网关2006a和2006b。在一些实施例中,网关2006a和2006b是两个不同的网关,其中网关2006a处理从互联网2002发送到私有网络2004的数据,而网关2006b处理从私有网络2004发送到互联网2002的数据。在一些实施例中,网关2006a和网关2006b是同一网关。在一些实施例中,互联网2002和私有网络2004之间的唯一物理网络路径是经由网关2006a和2006b。
在一些实施例中,第一区块链网络的第一多个区块链节点(例如,区块链节点12008a至区块链节点5 2008e)通过互联网2002连接。例如,第一多个区块链节点可以与合约的一个或多个参与者相关联。在一些实施例中,第二区块链网络的第二多个区块链节点(例如,区块链节点1 2010a至区块链节点5 2010e)通过私有网络2004连接。第二多个区块链节点可以与例如司法机构、金融机构、政府机构等相关联。在一些实施例中,第一多个区块链节点和第二多个区块链节点中的每个区块链节点都可以经由API层1720访问基于区块链的可信平台1702。
在一些实施例中,网关2006a包括至少一个网络设备和至少一个服务器。至少一个网络设备可以与互联网2002的路由器和私有网络2004的路由器互连。在一些实施例中,网关2006a允许从互联网到私有网络的单向数据传输,或者从私有网络到互联网的单向数据传输,而不允许互联网和私有网络之间的双向数据传输。
在一些实施例中,为了执行单向数据传输,网关2006a采用单根光纤而不是一对光纤来连接网关2006a的至少一个网络设备和互联网的路由器。网关2006a可采用另一单根光纤来连接网关2006a的至少一个网络设备和私有网络的路由器。网关2006a的至少一个网络设备可配备有用于连接互联网2002的单根光纤的光接收器和用于连接私有网络2004的单根光纤的光发射器,从而允许从互联网2002到私有网络2004的单个方向上进行数据传输。在一些实施例中,网关2006a的至少一个网络设备采用用于连接私有网络2004的单根光纤的光接收器和用于连接互联网2002的单根光纤的光发射器,从而允许从私有网络2004到互联网2002的单个方向上进行数据传输。
在一些实施例中,网关2006a的至少一个服务器存储从第一区块链网络的区块链节点发送的密文2012,使得第二区块链网络的第二区块链节点可以从网关2006a的至少一个服务器获得密文2012。在一些实施例中,网关2006b的至少一个服务器存储从第二区块链网络的区块链节点发送的密文2014,使得第一区块链网络的区块链节点可以从网关2006b的至少一个服务器获得密文2014。
图21描绘了根据本文实施例的跨链和跨网络数据传输的处理2100的示例。在高层,处理2100的参与者包括第一区块链节点2008a、网关2006a和第二区块链节点2010a。可以执行处理2100以将数据从第一区块链节点2008a发送到第二区块链节点2010a。如在图20的描述中所讨论的,第一区块链节点2008a与第一区块链网络相关联,并通过互联网2002与第一区块链网络的其他区块链节点连接,第二区块链节点2010a与第二区块链网络相关联,并通过私有网络2004与第二区块链网络的其他区块链节点连接。第一区块链网络的区块链节点可以将区块链数据记录在第一区块链上,第二区块链网络的区块链节点可以将区块链数据记录在第二区块链上。
在2102,第一区块链节点2008a可以获得跨链消息中的原始数据。原始数据可以是记录在第一个区块链上的数据。在一些实施例中,在第一区块链节点2008a获取原始数据之前,第一区块链网络的第三区块链节点从第一区块链中检索该原始数据,生成跨链消息,并将该跨链消息发送给第一区块链节点。在一些实施例中,在第三区块链节点检索原始数据之前,第三区块链节点可以从私有网络接收请求原始数据的数据请求。在一些实施例中,原始数据是记录在第一区块链上的合约文件,并且第三区块链节点可以将合约文件发送到私有网络以记录在第二区块链上或由第二区块链网络验证。
在2104,第一区块链节点可以验证原始数据被存储在第一区块链中。原始数据可以通过使用图19中讨论的处理来验证。
在2106,第一区块链节点可以转换原始数据以获得第一数据。
在一些实施例中,原始数据包括与使用第一区块链网络的第一标准化格式布置的一个或多个数据字段相关联的一个或多个数据值。第一区块链网络可能需要将原始数据转换为第二标准化格式,该第二标准化格式可以由第二区块链网络解析。例如,基于转换规则执行转换。转换规则可以提供以下至少一个:要布置在第一数据中的数据字段的顺序,或者转换每个数据字段中包括的每个数据值的编码方案。在一些实施例中,转换规则由第一区块链网络和第二区块链网络预先确定。在一些实施例中,第二区块链网络根据如图18中讨论的记录规则或如图19中讨论的验证规则中的至少一个来确定输入规则,其中,输入规则提供以下至少一个:向第二区块链网络输入的多个输入参数,与所述多个输入参数中的每个输入参数相对应的编码方案,或在输入中布置所述多个输入参数的顺序。然后,第一区块链网络可以根据输入规则确定转换规则。例如,如果在由输入规则提供的多个输入参数中不包括一数据字段,则第一区块链节点在第一数据中不包括该数据字段。
在一些实施例中,第一数据包括通过将各数据字段的每个数据值编码成各个小比特流,确定在比特流中布置一个或多个数据值的顺序,并拼接各个小比特流以生成比特流而获得该比特流。
在2108,第一区块链节点可以将第一数据加密以生成密文。加密算法可以是对称加密算法或非对称加密算法。
在2110,第一区块链节点可以生成第一数据的哈希值。
在2112,第一区块链节点可以生成与第一数据相关联的一个或多个ZKP。通过使用如图17中讨论的ZKP生成模块以及基于ZKP算法,例如零知识简洁非交互式知识论点(zk-SNARK)算法或零知识可扩展透明知识论点(zk-STARK)算法,可以生成一个或多个ZKP。所述一个或多个ZKP可被网关2006a用来在不对密文进行解密的情况下确认密文是否安全。
ZKP是一种加密技术。使用这种技术,证明者可使一个或多个验证者相信某个声明是正确的,无需向所述一个或多个验证者提供任何敏感信息。
ZKP算法通常包括密钥生成算法、证明生成算法和证明验证算法。密钥生成算法负责计算证明密钥(可用作生成证明的输入数据)和验证密钥(可用作验证证明的输入数据)。证明生成算法负责生成证明。证明验证算法负责验证证明并获得为真或假的二进制验证结果。
以zk-SNARK算法为例,zk-SNARK算法包括三种算法:G、P和V。G算法代表密钥生成器,它负责生成证明密钥和验证密钥。P算法负责生成证明。V算法负责验证用P算法生成的证明,并获得为真或假的验证结果。
应当注意,当要由区块链节点基于证明生成算法来计算证明时,证明生成算法的输入数据的内容通常取决于要用证明验证的声明。
在一些实施例中,当以下声明中的至少一个为真时,网关2006确定密文是安全的。
声明1:要从密文解密的数据不包括由网关2006a维护的受限列表中定义的任何关键字。为了确定此声明是否为真,可以通过将至少原始数据、密文和限制列表输入到证明生成算法中来生成ZKP。
声明2:要从密文中解密的数据满足第二区块链网络的输入规则。为了确定此声明是否为真,可以通过将原始数据、密文和第二区块链网络的输入规则输入到证明生成算法中来生成ZKP。
声明3:要从密文中解密的文件具有第二区块链网络可接受的文件类型。为了确定此声明是否为真,可以通过将原始数据、密文和第二区块链网络可接受的文件类型列表输入到证明生成算法中来生成ZKP。
声明4:要从密文解密的数据不包含恶意软件或病毒。为了确定该声明是否为真,可以通过至少将原始数据、密文以及恶意软件或病毒的代码输入到证据生成算法中来生成ZKP。
在2114,第一区块链节点可以将密文、哈希值和一个或多个ZKP发送到网关2006a。
在2116,网关2006a可以基于一个或多个ZKP来验证密文。
具体地,作为一个或多个ZKP的验证者,网关2006a可以至少将所述一个或多个ZKP和所述密文作为输入数据输入到证明验证算法中,然后基于上述声明来确定密文是否安全。
再次以zk-SNARK算法为例,当要对一个或多个ZKP中的一个ZKP执行零知识验证时,可将该ZKP和密文作为输入数据输入到zk-SNARK算法的V算法中以用于计算。如果V算法的输出结果为真,则使用ZKP验证声明为真。相反,如果V算法的输出结果为假,则使用ZKP验证声明为假。
在2118,当网关2006a基于一个或多个ZKP确定密文是安全时,网关2006a将接收到的密文和接收到的哈希值存储在网关2006a中包括的至少一个服务器中。
在2120,网关2006a可以向第二区块链节点2010a发送数据通知。数据通知可以通知第二区块链节点密文被存储在至少一个服务器中。
在2122,响应于数据通知,第二区块链节点2010a可以将数据检索请求发送到网关2006a。响应于该数据检索请求,可以在网关2006a和第二区块链节点2010a之间建立网络连接。
在2124,网关2006a可以将密文和哈希值发送到第二区块链节点2010a。
在2126,第二区块链节点2010a可以将密文解密以生成第二数据。如果在数据传输中第一数据或密文没有被篡改,则第二数据可与第一数据相同。否则,第二数据可不同于第一数据。
在2128,第二区块链节点2010a可以基于哈希值来验证第二数据。例如,第二区块链节点2010a可以计算第二数据的第二哈希值,并且将第二哈希值与该哈希值进行比较。如果第二哈希值和该哈希值相同,则第二区块链节点2010a可以确定第一数据或密文没有被篡改。否则,第二区块链节点2010a可以确定第一数据或密文被篡改。
在2130,第二区块链节点2010a可将包括在第二数据中的一个或多个输入参数存储在第二区块链上。在一些实施例中,第二数据包括如在第二区块链网络的输入规则中定义的一个或多个输入参数。在一些实施例中,第二数据包括比特流,并且第二区块链节点2010a基于第一区块链节点在将原始数据转换为第一数据时所使用的转换规则,将该比特流转换为一个或多个输入参数。
在2132,第二区块链节点2010a可以将数据收据发送到网关2006a。在一些实施例中,数据收据指示密文被成功接收并且第二数据被存储在第二区块链上。在一些实施例中,数据收据指示第二数据未被存储在第二区块链上以及第二数据未被存储在第二区块链上的一个或多个原因。一个或多个原因可以包括,例如,密文未能被第二区块链节点2010a接收,密文的哈希值与接收的哈希值不匹配,第二数据不满足第二区块链网络的输入规则等。
在2134,网关2006a可以将数据收据发送到第一区块链节点2008a。在一些实施例中,如果数据收据指示第二数据未被存储在第二区块链上,则第一区块链节点2008a可以重新开始处理2100。
在一些实施例中,第一区块链节点2008a可以从网关2006a获得附加密文,其中,网关2006从第二区块链网络的区块链节点接收附加密文。然后,第一区块链节点可以将附加密文解密以生成第三数据,然后将该第三数据存储在第一区块链中。
在一些实施例中,可以执行处理2100以将数据从私有网络传输到互联网。即,第一区块链节点2008a可以与私有网络相关联,而第二区块链节点2010a可以与互联网相关联。
图22描绘了根据本文实施例的跨网络和跨链数据通信的示例2200。在高层,示例2200示出了将与第一区块链网络的第一区块链节点相关联的债务人2202向与第二区块链网络的第二区块链节点相关联的银行2204发送贷款合约2206a的处理。第一区块链网络可以通过互联网连接,第二区块链网络可以通过与互联网空气隔离的私有计算机网络连接。
与债务人相关联的第一区块链节点可以将贷款合约2206a加密以生成密文2208a,并生成一个或多个ZKP 2210以证明密文2208a是安全的。第一区块链节点可以将密文2208a和一个或多个ZKP 2210发送到网关2006a。网关2006a然后可以基于一个或多个ZKP 2210来验证密文2208a是安全的,而密文2208a在验证处理中保持被加密。在成功验证之后,网关2006a可以随后将密文2208a存储在网关2006a的服务器中。然后,与银行2204相关联的第二区块链节点可以从网关2006a的服务器获得密文2208b。银行2204然后可以将密文2208b解密以获得原始贷款合约2206b,并对贷款合约2206b执行后续操作。
图23描绘了根据本文实施例的基于区块链的可信平台的示例2300。在一些实施例中,基于区块链的可信平台1702可通过采用各个计算机网络中的数据安全规则来向多个计算机网络中的用户提供服务。在此示例中,商户(例如,商户1 2302a至商户N 2302n)与使用互联网连接的商户区块链网络相关联。银行(例如,银行1 2304a到银行N 2304n)与使用私有银行网络连接的银行区块链网络相关联。法院(例如,法院1 2306a至法院N 2306n)与使用私有法院网络连接的法院区块链网络相关联。
例如,商户1 2302a希望将合约发送到银行1 2304a以将该合约记录在与银行相关联的银行区块链上。与商户1 2302a相关联的第一区块链节点从商户区块链数据库2310或智能合约数据缓存2308获得合约,并基于图21中讨论的处理2100,将包括该合约的跨链和跨网络消息发送到与银行1 2304a相关联的第二区块链节点。银行1 2304a调用基于区块链的可信平台1702的服务,基于图18中讨论的处理1800,将合约记录在银行区块链中。私有银行网络的数据安全规则可要求将合约的数据存储在位于与互联网空气隔离的私有银行网络中的计算机服务器中。当基于区块链的可信平台1702检测到合约要被记录在银行区块链中时,基于区块链的可信平台1702将该合约记录在由银行区块链网络和位于私有银行网络中的银行智能合约数据缓存2314管理的银行区块链数据库2312中。
以类似的方式,商户1 2302a可能需要向法院1 2306a发送法院命令以执行该法院命令。与商户1 2302a相关联的第一区块链节点基于图21中讨论的处理2100向与法院12306a相关联的第三区块链节点发送包括法院命令的跨链和跨网络消息。法院1 2306a调用基于区块链的可信平台1702的服务,基于图19中讨论的处理,验证法院命令的真实性。私有法院网络的数据安全规则可要求将法院数据存储在位于与互联网空气隔离的私有法院网络中的计算机服务器中。当基于区块链的可信平台1702基于法院数据而检测到法院命令要被验证时,基于区块链的可信平台1702访问由法院区块链网络和位于私有法院网络中的法院智能合约数据缓存2318管理的法院区块链数据库2316中的法院数据,以基于法院数据来验证法院命令。
对于另一示例,基于区块链的可信平台1702可以区别对待商户的数据、银行的数据和法院的数据。例如,私有银行网络和私有法院网络中的每一个都可以具有数据安全规则,所述数据安全规则管理处理敏感数据的规程以及应用于敏感数据的隐私保护。在一些实施例中,基于区块链的可信平台1702向商户、银行和法院提供相同的API,但是应用层1704将根据与敏感数据相关联的计算机网络来区别处理敏感数据。
例如,基于区块链的可信平台1702包括规则数据库2320,该规则数据库包括关于基于区块链的可信平台1702在其中运行的各种计算机网络的规章的信息。应用层1704可以访问规则数据库2320并且按照每个计算机网络的规章运行。例如,当银行1 2304a调用基于区块链的可信平台1702以将商户1 2302a的银行对账单发送到法院1 2306a时,应用层1704可以访问规则数据库2320以确定私有银行网络的数据安全规则,指定在将银行对账单发送到私有银行网络之外时,要对银行对账单的社会安全保障码进行编辑,然后,基于区块链的可信平台1702可以对银行对账单的社会安全保障码进行编辑并向法院1 2306a发送经编辑的银行对账单。
图24描绘了根据本文实施例的基于区块链的可信平台的另一示例2400。基于区块链的可信平台1702可用于基于一群人同意的一组定制规则来处理定制清关数据。例如,当一个国家的第一群人同意遵循关于货品进口税项的一组规则时,基于区块链的可信平台1702可用于处理进口海关清关数据。
例如,具有环保意识的第二群成员可以决定主要从可持续来源购买产品,并将从非可持续来源购买的商品的购买价格的一定百分比捐赠给环保事业。对于个人而言,很难跟踪来自可持续来源或非可持续来源的产品。基于区块链的可信平台1702允许第二群成员容易地设置规则以帮助实现他们的目标。例如,基于区块链的可信平台1702可以包括规则数据库2412,该规则数据库指定哪些消费产品来自可持续来源,哪些农产品使用环境友好的方法生产,以及哪些海鲜产品通过以可持续方式收获海洋野生生物来生产。管理员可以不时更新规则数据库2412。第二群成员(例如,第一购买者2402、...、第N购买者2404)可以通过在线商务系统2414从商户(例如,第一商户2406、...、第M商户2408)购买产品。
当购买者通过在线商务系统2414购买产品并且指示该购买者属于第二群成员时,在线商务系统2414将购买数据发送到基于区块链的可信平台1702,并指示该购买数据与第二群相关联(例如,通过与第二群相关联的ID)。基于区块链的可信平台1702将购买数据记录在区块链数据库2418和/或智能合约数据缓存2416上。基于区块链的可信平台1702包括清关批准模块2410,该清关批准模块2410基于规则数据库2412分析购买数据以确定所购买的产品是否来自可持续来源。如果产品不是来自可持续来源,则清关批准模块2410确定购买者应捐出的捐款金额(这类似于海关当局确定将应用于进口货品的进口税金额)。
例如,清关批准模块2410可向购买者发送指示该产品不是来自可持续来源的消息,并购买者应基于第二群成员之间的协议捐出一定量的金额。基于区块链的可信平台1702可与购买者的银行通信,向银行请求付款,并将该付款作为捐款发送给例如环保非营利组织。基于区块链的可信平台1702执行的交易可被记录在可由相关方验证的区块链数据库2418中。由基于区块链的可信平台1702提供的服务可通过使用智能合约而实现自动化。
在一些实施例中,基于区块链的可信平台1702可用于在例如游戏平台的虚拟世界中处理清关数据(例如,进口清关数据)。例如,游戏平台可允许玩家建立虚拟国家或王国,招募其他玩家成为虚拟国家或王国的公民或臣民,并为虚拟国家或王国建立自己的规则或法律。一个国家或王国的公民或臣民可与他人进行货品贸易。国家或王国可通过对贸易征税来筹集资金(以虚拟货币的形式)。基于区块链的可信平台1702的操作可通过使用智能合约来实现自动化,从而在虚拟世界中实现虚拟清关和税收。这允许在线游戏平台的玩家建立自己的贸易税收规则,使得在线游戏平台更加现实和有趣。
图25是用于记录和验证区块链数据的处理2500的示例的流程图。为方便起见,处理2000将被描述为由位于一个或多个位置并根据本文被适当地编程的一个或多个计算机的系统执行。例如,基于区块链的系统(例如,图3的基于区块链的系统)可以执行处理2500。
在2502,服务计算机系统(例如,服务系统306-1或404)从客户端设备(例如,用户402)接收数据。在一些实施例中,服务计算机系统从客户端设备接收存储数据的请求,并且该请求包括数据。在一些实施例中,服务计算机系统将数据存储在本地存储器中。
在2504,服务计算机系统将数据发送到基于区块链的可信系统(例如,基于区块链的可信平台312或606)。在一些实施例中,服务计算机系统在从客户端设备接收到数据之后生成存储该数据的请求,并将请求中的数据发送到基于区块链的可信系统。
在一些实施例中,服务计算机系统可加密数据并将请求中的加密数据发送到基于区块链的可信系统。在一些实施例中,服务计算机系统可以根据预定的加密功能或算法来加密数据。在一些示例中,服务计算机系统可以使用基于区块链的可信系统的公钥来加密数据。
在一些实施例中,基于区块链的可信系统可从服务计算机系统接收加密数据。在一些示例中,加密数据可使用基于区块链的可信系统的公钥进行加密。基于区块链的可信系统可使用与公钥配对的私钥将加密数据解密并获得数据。
在一些实施例中,基于区块链的可信系统在从服务计算机系统接收数据之后计算数据的第一哈希值。在一些实施例中,基于区块链的可信系统基于第一哈希值生成账本数据。在一些实施例中,账本数据包括第一哈希值和诸如数据的元数据之类的附加信息。在一些实施例中,元数据可以包括作者、创建日期、修改日期和数据的文件大小中的一个或多个。
在一些实施例中,基于区块链的可信系统将账本数据存储在基于区块链的可信系统中。在一些实施例中,基于区块链的可信系统可将账本数据存储在基于区块链的可信系统的一个或多个区块链节点中。在一些实施例中,基于区块链的可信系统的一个或多个区块链节点可以是参与共识过程的共识节点。在一些实施例中,基于区块链的可信系统的共识节点可以对账本数据执行共识处理。在共识节点之间达成共识后,基于区块链的可信系统可以记录存储在基于区块链的可信系统的一个或多个区块链节点中的区块链中的账本数据。
在一些实施例中,基于区块链的可信系统生成与数据对应的凭证,并将凭证发送到服务计算机系统。在一些实施例中,凭证可以被配置成唯一地标识数据和/或账本数据。在一些实施例中,凭证包括账本数据的标识或基于区块链的可信系统的数字签名。在一些实施例中,可使用基于区块链的可信系统的私钥基于账本数据生成数字签名。
在2506,服务计算机系统从基于区块链的可信系统接收凭证。如所述,凭证可包括账本数据的标识或使用基于区块链的可信系统的私钥基于账本数据生成的数字签名。
在2508,服务计算机系统将凭证发送到客户端设备。在一些实施例中,服务计算机系统可以验证凭证,例如,当凭证包括基于区块链的可信系统的数字签名时。在一些实施例中,服务计算机系统可使用基于区块链的可信系统的公钥来验证凭证中包含的数字签名。
在一些实施例中,服务计算机系统可以将记录结果中的凭证发送至客户端设备。在一些实施例中,记录结果还可以包括指示数据记录是否完成的通知。
在2510,服务计算机系统接收用于验证数据的第一请求至基于区块链的可信系统。在一些实施例中,第一请求包括凭证。如所述,凭证可以配置为唯一标识原始数据和/或账本数据。
在2512,服务计算机系统从本地存储器获取数据。在一些实施例中,服务计算机系统可以基于包含在请求中的凭证来获得数据。
在2514,服务计算机系统将获得的数据发送到基于区块链的可信系统。在一些实施例中,服务计算机系统可在用于验证所获得数据的第二请求中向基于区块链的可信系统发送所获得的数据。
在一些实施例中,服务计算机系统可以将所获得的数据的凭证发送到基于区块链的可信系统。在一些实施例中,服务计算机系统可以加密所获得的数据和/或凭证,并将加密的信息发送到基于区块链的可信系统。在一些实施例中,服务计算机系统可以使用基于区块链的可信系统的公钥加密所获得的数据和/或凭证。
在一些实施例中,基于区块链的可信系统可以从服务计算机系统接收加密数据和/或凭据,并使用与公钥配对的私钥将加密数据解密并获得数据和/或凭据。在一些实施例中,基于区块链的可信系统基于从服务计算机系统接收到的数据计算数据的第二哈希值。
在一些实施例中,基于区块链的可信系统可以基于凭证从基于区块链的可信系统的一个或多个区块链节点获取账本数据,并获得账本数据中的第一哈希值。在一些实施例中,基于区块链的可信系统将第二哈希值与第一哈希值进行比较。
在一些实施例中,基于区块链的可信系统将验证结果中的比较结果发送至服务计算机系统。在一些实施例中,验证结果还可以包括基于区块链的可信系统的数字签名。在一些实施例中,基于区块链的可信系统的数字签名可以基于两个哈希值中的至少一个使用基于区块链的可信系统的私钥生成。
在2516,服务计算机系统接收基于区块链的可信系统的验证结果。验证结果可以包括基于区块链的可信系统的两个哈希值和/或数字签名的比较结果。在一些实施例中,服务计算机系统可以使用基于区块链的可信系统的公钥验证数字签名。如果数字签名被确定为无效,服务计算机系统可以忽略验证结果。如果确定数字签名有效,服务计算机系统可以继续处理验证结果。
2518,服务计算机系统确定两个哈希值是否匹配。在一些实施例中,服务计算机系统基于接收到的验证结果确定两个哈希值是否匹配。在一些实施例中,如果两个哈希值匹配,则服务计算机系统可以确定数据没有被篡改。如果两个哈希值不匹配,服务计算机系统可以确定数据已被篡改。
在2520,服务计算机系统向客户端设备发送通知。在一些实施例中,如果第一哈希值与第二哈希值匹配,服务计算机系统可以向客户端设备发送指示数据没有被篡改的通知。如果第一哈希值与第二哈希值不匹配,服务计算机系统可以向客户端设备发送指示数据已被篡改的通知。
图26是根据本文实施例的装置2600的模块的示例的图示。
装置2600可以是配置为在基于区块链的可信系统中记录和验证数据的计算机系统的实施例的示例。装置2600可以对应于上述实施例,并且装置2600包括以下:第一接收模块2602,用于从客户端设备接收数据;第一发送模块2604,用于将数据发送到基于区块链的可信系统;第二接收模块2606,用于从基于区块链的可信系统接收凭证;第二发送模块2608,用于将凭证发送到客户端设备;第三接收模块2610,用于接收来自客户端设备的第一请求以验证数据;获取模块2612,用于从本地存储器获取数据;第三发送模块2614,用于将所获得的数据发送到基于区块链的可信系统;第四接收模块2616,用于接收基于区块链的可信系统的验证结果;确定模块2618,用于基于验证结果确定两个哈希值是否匹配;第四发送模块2620,用于向客户端设备发送通知。
前述实施例中示出的系统、装置、模块或单元可以通过使用计算机芯片或实体来实现,或者可以通过使用具有特定功能的产品来实现。典型的实施例设备是计算机,该计算机可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件接收和发送设备、游戏控制台、平板电脑、可穿戴设备或这些设备的任意组合。
对于装置中每个模块的功能和作用的实施过程,可以参考前述方法中相应步骤的实施过程。为简单起见,这里省略了细节。
由于装置实施例基本上与方法实施例相对应,因此对于相关部件,可参照方法实施例中的相关描述。先前描述的装置实施例仅是示例。作为单独部件描述的模块可是或不是物理上分离的,并且作为模块显示的部件可是或不是物理模块,可位于一个位置,或者可分布在多个网络模块上。可基于实际需求来选择一些或所有模块,以实现本文方案的目标。本领域普通技术人员在无需付出创造性努力的情况下就能理解和实现本申请的实施例。
再次参见图26,它可以被解释为示出了区块链数据记录和验证装置的内部功能模块和结构。区块链数据记录和验证装置可以是被配置为在基于区块链的可信系统中记录和验证区块链数据的计算机系统的示例。本质上,执行主体可以是电子设备,该电子设备包括以下:一个或多个处理器;被配置为存储一个或多个处理器的可执行指令的一个或多个计算机可读存储器。在一些实施例中,所述一个或多个计算机可读存储器耦接至所述一个或多个处理器并且所述一个或多个计算机可读存储器上存储有编程指令,所述编程指令可以由所述一个或多个处理器执行以执行本文所描述的算法、方法、函数、处理、流程和程序。本文还提供了耦接至一个或多个处理器并且其上存储有指令的一个或多个非暂态计算机可读存储介质,当所述指令由所述一个或多个处理器执行时,所述指令将促使所述一个或多个处理器按照本文提供的方法的实施例执行操作。
本文还提供了用于实现本文提供的方法的系统。该系统包括一个或多个处理器,以及耦接到所述一个或多个处理器并在其上存储有指令的计算机可读存储介质,该指令在由一个或多个处理器执行时,使所述一个或多个处理器执行根据本文提供的方法实施例的操作。
本文中描述的主题、动作以及操作的实施例可在数字电子电路、有形实现的计算机软件或固件、计算机硬件、包括本文中公开的结构及其结构等同物,或者其中的一个或多个的组合中实现。本文描述的主题的实施例可被实现为一个或多个计算机程序,例如,一个或多个计算机程序指令的模块,其编码在计算机程序载体上,用于由数据处理装置执行或者控制数据处理装置的操作。例如,计算机程序载体可包括其上编码有或存储有指令的一个或多个计算机可读存储介质。载体可是有形的非暂态计算机可读介质,例如,磁盘、磁光盘或者光盘、固态驱动器、随机存取存储器(RAM)、只读存储器(ROM)或者其它媒体类型。可选地或附加地,载体可是人工生成的传播信号,例如,机器生成的电信号、光信号或电磁信号,其生成为对信息进行编码用以传输到合适的接收器装置以由数据处理装置执行。计算机存储介质可是或部分是机器可读存储设备、机器可读存储基板、随机或串行访问存储设备或其中的一个或多个的组合。计算机存储介质不是传播信号。
计算机程序可称为或描述为程序、软件、软件应用、app、模块、软件模块、引擎、脚本或代码,可以任何形式的编程语言编写,包括编译或解释性语言、或说明或程序性语言;其可以任何形式部署,包括作为独立程序或者作为模块、组件、引擎、子例程或适合在计算环境中执行的其它单元,该环境可包括在一个或多个位置中由数据通信网络互连的一个或多个计算机。
计算机程序可以对应于文件系统中的文件,但是可不需对应于文件系统中的文件。计算机程序可以存储在:保存其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本中;专用于所讨论的程序的单个文件中;或者多个协调文件中,例如,存储一个或多个模块、子程序或代码部分的文件中。
用于执行计算机程序的处理器例如既包括通用和专用微处理器,又包括任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从耦接至处理器的非暂态计算机可读介质接收用于执行的计算机程序的指令以及数据。
术语“数据处理装置”涵盖了用于处理数据的所有类型的装置、设备和机器,例如包括可编程处理器、计算机、或多个处理器或计算机。数据处理装置可包括例如FPGA(现场可编程门阵列)、ASIC(专用集成电路)或GPU(图形处理单元)的专用逻辑电路。该装置除了包括硬件之外,还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或其中的一个或多个的组合的代码。
本文中描述的处理和逻辑流程可以由一个或多个计算机或执行一个或多个计算机程序的处理器执行,以通过对输入数据进行操作并生成输出来执行操作。该处理和逻辑流程还可通过专用逻辑电路,例如,FPGA、ASIC或GPU,或通过专用逻辑电路和一个或多个编程计算机的组合执行。
适合于执行计算机程序的计算机可以基于通用和/或专用微处理器,或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的元件可以包括用于执行指令的中央处理单元和用于存储指令和数据的一个或多个存储设备。中央处理单元和存储器可以补充有专用逻辑电路或集成在专用逻辑电路中。
通常,计算机也会包括或可操作地耦接以从一个或多个存储设备接收数据或将数据传输到一个或多个存储设备。存储设备可以是例如磁盘、磁光盘或光盘、固态驱动器或任何非暂态的其它类型的计算机可读介质。然而,计算机也非必需具有此类设备。因而,计算机可以耦接到一个或多个存储设备,例如位于本地和/或远程的一个或多个存储器。例如,计算机可以包括作为计算机集成组件的一个或多个本地存储器,或者计算机可以耦接至位于云网络中的一个或多个远程存储器。此外,计算机也可以嵌入到另一个设备中,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器、或诸如通用串行总线(USB)闪存驱动器等的便携式存储设备,这只是列举几项。
组件可以通过直接或经由一个或多个中间组件例如电连接或光连接地彼此连接通信而彼此“耦接”。如果其中一个组件集成到另一个组件中,则这些组件也可以相互“耦接”。例如,将集成到处理器中的存储组件(例如,L2高速缓存组件)“耦接到”处理器。
为了提供与用户的交互,本文中描述的主题的实施例可以在具有显示设备和输入设备的计算机上实现或配置为与该计算机进行通信,显示设备例如为LCD(液晶显示器)监视器,用于向用户显示信息,用户可以通过输入设备向计算机提供输入,输入设备例如为键盘和指针设备,指针设备例如为鼠标、轨迹球或触摸板。其他类型的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以接收来自用户的任何形式的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从其接收文档来与用户交互;例如,通过向用户设备上的web浏览器发送web页面以响应从web浏览器接收到的请求,或者通过与例如智能电话或电子平板电脑等的用户设备上运行的应用程序(app)进行交互。计算机也可以通过将文本消息或其它形式的消息发送到诸如运行消息程序的智能手机的个人设备,并从用户接收响应消息,来与用户进行交互。
本文关于系统、装置和计算机程序组件使用了术语“配置为”。对于被配置为执行特定操作或动作的一个或多个计算机的系统,意味着系统已经在其上安装了在运行中促使该系统执行所述操作或动作的软件、固件、硬件或它们的组合。对于被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当被数据处理装置执行时促使该装置执行所述操作或动作的指令。对于被配置为执行特定操作或动作的专用逻辑电路,意味着该电路具有执行所述操作或动作的电子逻辑。
尽管本文包含许多特定的实施细节,但是不应将这些理解为对所要求保护的范围的限制,而是作为对特定实施例特定的特征的描述,所要求保护的范围由权利要求本身限定。本文中在单独的实施例的上下文中描述的某些特征也可以在单个实施例中组合地实现。相反,在单个实施例的上下文中描述的各种特征也可以单独或者以任何适合的子组合方式实现在多个实施例中。而且,尽管以上描述的特征可以以某些组合起作用并且甚至最初是这样主张的,但是在某些情况下,可以从要求保护的组合中删除该组合中的一个或多个特征,并且权利要求书也可以针对子组合或子组合的变型。
类似地,虽然以特定顺序在附图中描绘了操作并且在权利要求中叙述了操作,但是这不应该被理解为:为了达到期望的结果,要求以所示的特定顺序或依次执行这些操作,或者要求执行所有示出的操作。在某些情况下,多任务和并行处理会是有利的。此外,不应将上述实施例中的各种系统模块和组件的分离理解为在所有实施例中都要求这种分离,并且应当理解的是,所描述的程序组件和系统通常可以在单个软件产品中集成在一起或打包成多个软件产品。
已对主题的特定实施例进行了描述。其它实施例也在以下权利要求书的范围内。例如,权利要求书中记载的动作可以不同的顺序执行并仍然实现期望的结果。作为一个示例,附图中描绘的处理无需要求所示的特定顺序或次序来实现期望的结果。在一些情况下,多任务并行处理可能是有利的。

Claims (8)

1.一种用于维护账本数据的计算机实现的方法,包括:
由服务计算机系统从客户端设备接收存储所述数据的请求,所述请求包括所述数据;
由所述服务计算机系统向基于区块链的可信系统发送存储所述数据的请求;
在从所述服务计算机系统接收到所述数据之后,由所述基于区块链的可信系统计算所述数据的哈希值;
由所述基于区块链的可信系统生成包括所述哈希值的账本数据;
由所述基于区块链的可信系统将所述账本数据存储在所述基于区块链的可信系统中;
由所述基于区块链的可信系统生成与所述数据对应的凭证;其中,与所述数据相对应的凭证包括所述账本数据的标识或所述基于区块链的可信系统的数字签名;
由服务计算机系统从客户端设备接收数据;
由所述服务计算机系统将所述数据发送到基于区块链的可信系统;
由所述服务计算机系统从所述基于区块链的可信系统接收与所述数据相对应的凭证;以及
由所述服务计算机系统向所述客户端设备发送所述凭证;
在将所述数据存储在所述服务计算机系统的本地存储器中之后,由所述服务计算机系统接收验证所述数据的第一请求;其中,验证所述数据的所述第一请求包括所述凭证;
由所述服务计算机系统从所述服务计算机系统的本地存储器获取所述数据;以及
由所述服务计算机系统向所述基于区块链的可信系统发送验证所获得的数据的第二请求,所述第二请求包括所述所获得的数据;
所述哈希值是第一哈希值,并且所述方法还包括:
响应于从所述服务计算机系统接收到验证所获得的数据的第二请求,由所述基于区块链的可信系统基于所获得的数据计算第二哈希值;
由所述基于区块链的可信系统确定所述第一哈希值与所述第二哈希值是否匹配;以及
由所述基于区块链的可信系统向所述服务计算机系统发送验证结果,所述验证结果包括所述第一哈希值和所述第二哈希值的比较结果。
2.根据权利要求1所述的计算机实现的方法,还包括:
由所述服务计算机系统将所述数据存储在所述服务计算机系统的本地存储器中。
3.根据权利要求1所述的计算机实现的方法,其中,所述账本数据还包括所述数据的元数据。
4.根据权利要求1所述的计算机实现的方法,还包括:
在从所述基于区块链的可信系统接收到所述验证结果之后,由所述服务计算机系统基于所述验证结果确定所述第一哈希值与所述第二哈希值是否匹配。
5.根据权利要求4所述的计算机实现的方法,还包括:
响应于基于所述验证结果确定所述第一哈希值与所述第二哈希值匹配,由所述服务计算机系统向所述客户端设备发送指示所述数据未被篡改的通知。
6.根据权利要求4所述的计算机实现的方法,还包括:
响应于基于所述验证结果确定所述第一哈希值与所述第二哈希值不匹配,由所述服务计算机系统向所述客户端设备发送指示所述数据已被篡改的通知。
7.一种用于维护数据的系统,包括:
一个或多个处理器;以及
一个或多个计算机可读存储器,耦接至所述一个或多个处理器并且其上存储有指令,所述指令能够由所述一个或多个处理器执行以执行权利要求1至6中任一项所述的方法。
8.一种用于维护数据的装置,所述装置包括用于执行权利要求1至6中任一项所述的方法的多个模块。
CN202080014849.8A 2020-11-25 2020-11-25 基于区块链的可信平台 Active CN113491090B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/131391 WO2022109847A1 (en) 2020-11-25 2020-11-25 Blockchain-based trusted platform

Publications (2)

Publication Number Publication Date
CN113491090A CN113491090A (zh) 2021-10-08
CN113491090B true CN113491090B (zh) 2023-11-14

Family

ID=77933291

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080014849.8A Active CN113491090B (zh) 2020-11-25 2020-11-25 基于区块链的可信平台

Country Status (3)

Country Link
EP (1) EP4066475A4 (zh)
CN (1) CN113491090B (zh)
WO (1) WO2022109847A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115065487B (zh) * 2022-08-17 2022-12-09 北京锘崴信息科技有限公司 隐私保护云计算方法、保护金融隐私数据的云计算方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3318999A1 (de) * 2016-11-04 2018-05-09 Bundesdruckerei GmbH Verfahren zum ausstellen einer virtuellen version eines dokuments
CN110019009A (zh) * 2017-11-10 2019-07-16 中兴通讯股份有限公司 电子证照共享方法、服务器和可读存储介质
CN110046156A (zh) * 2018-12-20 2019-07-23 阿里巴巴集团控股有限公司 基于区块链的内容管理系统及方法、装置、电子设备
CN110138733A (zh) * 2019-04-03 2019-08-16 华南理工大学 基于区块链的对象存储系统可信存证与访问权限控制方法
CN110912937A (zh) * 2019-12-23 2020-03-24 杭州中科先进技术研究院有限公司 一种基于区块链的数字存证平台和存证方法
CN111339551A (zh) * 2020-01-23 2020-06-26 腾讯科技(深圳)有限公司 数据的验证方法及相关装置、设备
CN111597590A (zh) * 2020-05-12 2020-08-28 重庆邮电大学 一种基于区块链的数据完整性快速检验方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106534273B (zh) 2016-10-31 2022-04-15 中金云金融(北京)大数据科技股份有限公司 区块链元数据存储系统及其存储方法与检索方法
DE102017204536B3 (de) * 2017-03-17 2018-03-08 Bundesdruckerei Gmbh Ausstellen virtueller Dokumente in einer Blockchain
US11269842B2 (en) 2017-05-09 2022-03-08 Accenture Global Solutions Limited Data storage layer index for efficient information retrieval
US20190251573A1 (en) * 2018-02-09 2019-08-15 Airbus (S.A.S.) Systems and methods of verifying credentials of aircraft personnel using a blockchain computer system
WO2019191213A1 (en) * 2018-03-27 2019-10-03 Workday, Inc. Digital credential authentication
CN109388643A (zh) * 2018-10-26 2019-02-26 陕西医链区块链集团有限公司 一种基于区块链的快速数据检索系统及方法
PL3602457T3 (pl) * 2019-02-28 2021-10-25 Advanced New Technologies Co., Ltd. System i sposób zarządzania danymi w łańcuchu bloków
CN111414650B (zh) * 2020-03-25 2023-11-21 北京新创智链科技有限公司 一种基于区块链存证的订单处理方法及系统
CN111814173B (zh) * 2020-08-28 2021-03-23 支付宝(杭州)信息技术有限公司 一种作品文件的存储方法、著作权确权方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3318999A1 (de) * 2016-11-04 2018-05-09 Bundesdruckerei GmbH Verfahren zum ausstellen einer virtuellen version eines dokuments
CN110019009A (zh) * 2017-11-10 2019-07-16 中兴通讯股份有限公司 电子证照共享方法、服务器和可读存储介质
CN110046156A (zh) * 2018-12-20 2019-07-23 阿里巴巴集团控股有限公司 基于区块链的内容管理系统及方法、装置、电子设备
CN110138733A (zh) * 2019-04-03 2019-08-16 华南理工大学 基于区块链的对象存储系统可信存证与访问权限控制方法
CN110912937A (zh) * 2019-12-23 2020-03-24 杭州中科先进技术研究院有限公司 一种基于区块链的数字存证平台和存证方法
CN111339551A (zh) * 2020-01-23 2020-06-26 腾讯科技(深圳)有限公司 数据的验证方法及相关装置、设备
CN111597590A (zh) * 2020-05-12 2020-08-28 重庆邮电大学 一种基于区块链的数据完整性快速检验方法

Also Published As

Publication number Publication date
CN113491090A (zh) 2021-10-08
WO2022109847A1 (en) 2022-06-02
EP4066475A4 (en) 2022-12-21
EP4066475A1 (en) 2022-10-05

Similar Documents

Publication Publication Date Title
JP6514831B1 (ja) 分散型ハッシュテーブル及びピア・ツー・ピア分散型台帳を利用してデジタルアセットのオーナシップを検証する方法及びシステム
US11360963B2 (en) Tracking and verification of physical assets
US20210091960A1 (en) Tracking and verification of physical assets
US11734259B2 (en) Anonymous database rating update
WO2022109851A1 (en) Blockchain-based trusted platform
US11580240B2 (en) Protecting sensitive data
CN113302610B (zh) 基于区块链的可信平台
CN111936995A (zh) 海关清关数据的分布式存储
CN111989707A (zh) 管理基于区块链的海关清关服务的用户权限
CN111989663A (zh) 基于区块链的智能合约池
US11949794B2 (en) Data anonymization of blockchain-based processing pipeline
CN111868725A (zh) 基于区块链处理进口海关清关数据
CN114930330A (zh) 基于区块链的海关清关服务平台的用户管理
US20210217098A1 (en) Blockchain-based message services for time-sensitive events
CN111936994A (zh) 用于海关清关的基于区块链的文档注册
CN113302612B (zh) 一种用于跨链和跨网络数据传输的计算机实现方法、系统及装置
WO2022109848A1 (en) Blockchain-based trusted platform
US11924348B2 (en) Honest behavior enforcement via blockchain
US20210217100A1 (en) Storage management based on message feedback
JP2023530594A (ja) 分散型データベースにおける許可されたイベント処理
CN113491090B (zh) 基于区块链的可信平台
JP2023098847A (ja) 装置、方法、コンピュータプログラム(プライバシー保護ブロックチェーンの選択的監査プロセス)

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