CN116438776A - 区块链网络中通过伪随机函数的密钥回收 - Google Patents

区块链网络中通过伪随机函数的密钥回收 Download PDF

Info

Publication number
CN116438776A
CN116438776A CN202180074811.4A CN202180074811A CN116438776A CN 116438776 A CN116438776 A CN 116438776A CN 202180074811 A CN202180074811 A CN 202180074811A CN 116438776 A CN116438776 A CN 116438776A
Authority
CN
China
Prior art keywords
blockchain
key
keys
transaction
peers
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180074811.4A
Other languages
English (en)
Inventor
Y·马尼维什
N·高尔
D·B·庞赛龙
P·诺沃特尼
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN116438776A publication Critical patent/CN116438776A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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
    • 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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/0822Key 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) using key encryption key
    • 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/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

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)

Abstract

示例操作可以包括以下各项中的一项或多项:用加密密钥对私钥进行加密;基于所述加密密钥生成多个密钥并且基于秘密输入值将所述多个密钥转换成多个密钥份额;将经加密的私钥存储在区块链上;以及将所述多个密钥份额分发至所述区块链的多个区块链对等体,其中,所述分发包括将所述多个密钥份额中的不同的密钥份额传输至所述多个区块链对等体中的每个区块链对等体。

Description

区块链网络中通过伪随机函数的密钥回收
背景技术
集中式平台在单个位置中存储和维护数据。该位置通常是中央计算机,例如,云计算环境、web服务器、大型计算机等。存储在集中式平台上的信息典型地可从多个不同点访问。多个用户或客户端工作站可例如基于客户端/服务器配置在集中式平台上同时工作。集中式平台由于其单个位置而易于管理、维护和控制,尤其是出于安全的目的。在集中式平台内,数据冗余被最小化,因为所有数据的单个存储位置也意味着给定数据集仅具有一个主要记录。
发明内容
一个举例实施例提供了一种装置,该装置包括一个或多个处理器,该处理器被配置成进行以下各项中的一项或多项:用加密密钥对私钥进行加密,基于所述加密密钥生成多个密钥以及基于秘密输入值将所述多个密钥转换成多个密钥份额,以及将加密的私钥存储在区块链上,以及网络接口,所述网络接口被配置为将所述多个密钥份额分配给所述区块链的多个区块链对等体,其中所述处理器将所述多个密钥份额中的不同密钥份额发送到所述多个区块链对等体中的每个区块链对等体。
另一举例实施例提供一种方法,所述方法包括下列各项中的一项或多项:用加密密钥对私钥进行加密;基于所述加密密钥生成多个密钥并且基于秘密输入值将所述多个密钥转换成多个密钥份额(shares);将经加密的私钥存储在区块链上;以及将所述多个密钥份额分发到所述区块链的多个区块链对等体,其中所述分发包括将所述多个密钥份额中的不同密钥份额发送到所述多个区块链对等体中的每个区块链对等体。
又一示范性实施例提供一种包括指令的非暂时性计算机可读介质,所述指令在由处理器读取时致使所述处理器执行以下各项中的一者或一者以上:用加密密钥对私用密钥加密,基于所述加密密钥生成多个密钥并且基于秘密输入值将所述多个密钥转换成多个密钥份额,将加密的私钥存储在区块链上,以及将所述多个密钥份额分发给所述区块链的多个区块链对等体,其中所述分发包括将所述多个密钥份额中不同的密钥份额发送到所述多个区块链对等体中的每个区块链对等体。
附图说明
图1A是示出根据示例实施例的利用区块链网络存储加密私钥的过程的示图。
图1B是示出根据示例实施例的经由遗忘的伪随机函数(OPRF)将加密密钥转换成密钥份额的过程的示图。
图1C是示出根据示例性实施方式的恢复加密密钥的过程的示图。
图1D是示出根据实例实施方式的解密费用交易并且检索加密的私钥的过程的示图。
图2A是示出根据示例实施例的示例区块链架构配置的示图。
图2B是示出根据示例性实施方式的在节点之间的区块链交易流程的示图。
图3A是示出根据示例实施例的许可网络的图。
图3B是示出根据示例性实施方式的另一个许可网络的示图。
图3C是示出根据示例性实施方式的无许可网络的示图。
图4A是示出根据示例实施例的用于生成和分配OPRF密钥的通信过程的示图。
图4B是示出根据示例实施方式的用于基于分配的OPRF密钥恢复加密密钥的通信过程的示图。
图5是示出根据示例性实施方式的在区块链网络的对等体之间分配加密密钥的方法的示图。
图6A是示出根据示例实施方式的被配置为执行本文描述的一个或多个操作的示例***的示意图。
图6B是示出根据示例实施方式的被配置为执行本文描述的一个或多个操作的另一个示例***的示意图。
图6C是示出根据示例实施例的被配置为利用智能合同的另一示例***的图。
图6D是示出根据示例实施例的被配置为利用区块链的又一示例***的示意图。
图7A是示出根据示例实施例的新块被添加到分布式分类账的过程的示图。
图7B是示出根据示例性实施方式的新数据块的数据内容的示图。
图7C是示出根据举例实施例的数字内容的区块链的示图。
图7D是示出根据实例实施方式的可表示区块链中的块的结构的块的图。
图8A是示出根据示例性实施方式的存储机器学习(人工智能)数据的示例性区块链的示图。
图8B是示出根据示例性实施方式的示例性量子安全模区块链的示图。
图9是示出了支持一个或多个示例性实施方式的示例性***的示图。
具体实施方式
将容易理解的是,如在本文的附图中大体描述和图示的,本发明的部件可以以各种不同的配置布置和设计。因此,如附图中表示的方法、装置、非易失性计算机可读介质和***中的至少一个的实施方式的以下详细描述并不旨在限制所要求保护的应用的范围,而是仅仅表示所选择的实施方式。
在一个或多个实施例中,如贯穿本说明书所描述的即时特征、结构、或特性可以以任何适合的方式被组合或移除。例如,贯穿本说明书的短语“示例性实施方式”、“一些实施方式”或其他类似语言的使用是指以下事实:结合实施方式所描述的特定特征、结构或特性可以包括在至少一个实施方式中。因此,贯穿本说明书出现的短语“示例性实施方式”、“在一些实施方式中”、“在其它实施方式中”、或其它类似语言不一定都指相同组的实施方式,并且在一个或多个实施方式中,可以任何合适的方式组合或去除所描述的特征、结构、或特性。进一步,在图中,元件之间的任何连接可以允许单向和/或双向通信,即使所描绘的连接是单向或双向箭头。而且,在附图中描绘的任何装置可以是不同的装置。例如,如果移动设备被示为发送信息,则有线设备也可被用于发送该信息。
此外,尽管在实施方式的描述中可以使用术语“消息”,但是应用可以应用于许多类型的网络和数据。此外,尽管在示例性实施例中可以描述特定类型的连接、消息和信令,但是本申请不限于特定类型的连接、消息和信令。
举例实施例提供涉及基于遗忘的伪随机函数(OPRF)的密钥恢复过程的方法、***、组件、非瞬态计算机可读媒质、设备和/或网络。
在一个实施例中,本申请利用作为分布式存储***的去中心化数据库(诸如区块链),该分布式存储***包括彼此通信的多个节点。去中心化数据库包括类似于能够在互不信任方之间维护记录的分布式分类账的仅附加不可变数据结构。不可信方在本文中称为对等体(peers)或对等节点(peer nodes)。每个对等体维护数据库记录的副本,并且没有单个对等体可以修改数据库记录而不在分布式对等体之间达成一致。例如,对等体可执行一致协议以验证区块链存储交易,将存储交易分组成块,并在块上建立散列链。为了一致性,该过程根据需要通过排序(ordering)存储交易形成分类账。在不同实施例中,可以使用经许可的和/或无许可的区块链。在公共或无权限区块链中,任何人都可以在没有特定身份的情况下参与。公共区块链可以涉及原生加密货币并且使用基于不同协议(诸如工作证明(PoW))的共识。另一方面,经许可的区块链数据库提供共享共同目标但不完全相互信任的一组实体之间的安全交互,诸如交换资金、商品、信息等的企业。
本申请可以利用操作任意、可编程逻辑的区块链,其被定制为去中心化存储方案并且被称为“智能合同”或“链码”。在一些情况下,可存在被称为***链码的管理功能和参数的专用链码。应用还可以利用智能合同,智能合同是可信的分布式应用,其利用区块链数据库的防篡改特性和节点之间的基础协议,这被称为背书(endorsement)或背书策略。与本申请相关联的区块链交易在被提交至区块链之前可以被“背书”,而未被背书的交易被忽略。背书策略允许链代码以对于背书必需的对等节点集合的形式指定用于交易的背书者。当客户端将交易发送给背书策略中指定的对等体时,执行该交易以验证交易。在验证之后,交易进入排序阶段,其中使用一致协议产生被分组为块的批注交易的有序序列。
本申请可以利用作为区块链***的通信实体的节点。在不同类型的多个节点可在同一物理服务器上运行的意义上,“节点”可执行逻辑功能。节点被分组在信任域中并且与以不同方式控制它们的逻辑实体相关联。节点可以包括不同类型,诸如向背书者(例如,对等体)提交交易调用并且向排序服务(例如,排序节点)广播交易建议的客户端或提交-客户端节点。另一类型的节点是对等节点,其可接收客户端提交的交易、提交交易并维持区块链交易的分类账的状态和副本。对等体也可以具有背书人的作用,尽管它不是必需的。排序-服务-节点或排序器是为所有节点运行通信服务的节点,并且其实现递送保证,诸如在提交交易和修改区块链的世界状态时向***中的每个对等节点广播,该世界状态是初始区块链交易的另一名称,其通常包括控制和设置信息。
该应用能够利用分类账,该分类账是区块链的所有状态转换的排序、防篡改记录。状态转换可以由参与方(例如,客户端节点、排序节点、背书者节点、对等节点等)提交的链码调用(即,交易)引起。每个参与方(诸如对等节点)可维护分类账的副本。交易可以导致一组资产键-值(key-value)对作为一个或多个操作数被提交到分类账,诸如创建、更新、删除等。分类账包括用于在块中存储不可变的排序记录的区块链(也称为链)。分类账还包括维护区块链的当前状态的状态数据库。
本申请可以利用作为交易日志的链,所述交易日志被构造为散列链接的块,并且每个块包含N个交易的序列,其中N等于或大于1。块报头包括块的交易的散列以及先前块的报头的散列。以这种方式,分类账上的所有交易可被排序和加密地链接在一起。因而,不可能篡改分类账数据而不破坏散列链接。最近添加的区块链块的散列表示在链之前已经出现的每个交易,从而使得可以确保所有对等节点都处于一致且可信的状态。链可存储在对等节点文件***(即,本地的、附加的存储、云等)上,有效地支持区块链工作负载的仅附加性质。
不可变分类账的当前状态表示包括在链交易日志中的所有键的最新值。因为当前状态表示信道已知的最新键值,所以有时将其称为世界状态。链调用执行针对分类账的当前状态数据的交易。为了使这些链码交互有效,密钥的最新值可以存储在状态数据库中。状态数据库可以简单地是到链的交易日志中的索引视图,因此可以在任何时间从链中重新生成它。在对等节点启动时并且在接受交易之前,可以自动恢复(或者如果需要的话生成)状态数据库。
非对称密钥对(私有和公共数字密钥对)通常用于安全信息。例如,区块链客户端可以使用私钥来加密/解密被提交给区块链的其他参与者的数据。在该示例中,私钥仅对客户端是已知的。同时,私钥的对应公钥可以在区块链上的其他参与者之间共享并且用于解密/加密数据。然而,当私钥丢失(例如,存储私钥的设备被破坏、丢失、致使不可操作等)时,用这种私钥加密的数据也丢失。因此,在私钥曾经丢失的情况下,客户端可与第三方(例如,远程服务器等)一起存储私钥。
例如,为了从服务器检索私钥,客户端可以提供用于登录的密码。基于密码的认证使得客户端(具有密码的知识)能够获得私钥。同时,没有密码的实体也无法获得私钥。然而,基于密码的认证容易受到恶意攻击。例如,当客户端向远程服务器发送私钥时,客户端可以与服务器建立认证过程,包括密码。服务器可以存储密码的混淆(salted)和散列形式。当客户端期望获得私钥时,它例如在登录过程期间提供相应的密码。在这种情况下,如果服务器是恶意的,则服务器可以通过对密码的蛮力字典攻击或通过简单地拦截登录来发现密码。
举例实施例提供了一种新的机制,通过该机制,可以执行基于密码的认证而不留下私钥易受暴力攻击。具体地,私钥可以用加密密钥加密。这里,加密的私钥可被提供给一个或多个区块链对等体并且甚至被存储在区块链上。此外,私钥可以被转换成多个密钥值(例如,随机值),并且不注意的伪随机函数(OPRF)可以用于将多个密钥转换成多个密钥份额。在该示例中,OPRF可从客户端接收密码(秘密输入),并基于该密码来生成多个密钥份额。密钥份额可以分布在多个区块链对等体中。
当客户端希望恢复私钥时,客户端从多个区块链对等体请求密钥份额。这里,客户端可能需要预定数量的密钥份额以便恢复加密密钥。为了将密钥份额转换回多个密钥,客户端将密钥份额和密码输入到OPRF程序,OPRF程序输出多个密钥。客户端随后可从所述多个密钥重构所述加密密钥。客户端随后可从区块链对等体请求经加密的私钥并基于经恢复的加密密钥对经加密的私钥进行解密。
本文所述的OPRF过程的一些益处包括保护密码免受恶意客户端和恶意对等体(服务器)的影响。例如,防止尝试强力登录尝试和/或学习存储在服务器上的信息的恶意客户端学习密码,因为密码不存储在服务器上或对服务器可访问。相反,密码在整个过程中保留在客户端。此外,防止尝试离线字典攻击或拦截攻击的服务器获取密码,这是因为服务器不存储密码。此外,每个密钥份额看起来是随机的。
图1A示出根据示例实施例的利用区块链网络存储加密私钥101’的过程100A。参照图1A,客户端应用程序(例如,区块链客户端等)可以从区块链钱包(未示出)接收私钥101。这里,私钥101可以是非对称密钥对的一部分,非对称密钥对包括与区块链钱包相关联的对应公钥。在这个实例中,客户端应用程序110可基于加密密钥102对私钥101加密以生成加密的私钥101’。
根据不同实施例,客户端应用程序110可以与管理区块链130的区块链网络的一个或多个区块链对等体131、132、133和134存储加密的私钥101’和费用。除了加密私钥101之外,还可以加密要分配给区块链对等体131、132、133和134的费用,以防止区块链对等体花费费用。在该示例中,区块链对等体131-134可以是运行在所有区块链对等体131-134之间分布/复制的区块链分类账的服务器。费用可以是包括在存储在区块链130上的交易中的报偿。当客户端应用程序110随后从区块链对等体131-134请求加密的私钥101’时,客户端应用程序110可解密费用交易并且将解密的费用提供至区块链对等体131-134中的任一个。作为响应,区块链对等体131-134可以执行相应的交易,并且收集费用并返回加密的私钥(如图1D所示)。
图1B示出根据示例实施例的经由遗忘的伪随机函数(OPRF)服务120将加密密钥102转换成密钥份额122A-122D的过程100B。参照图1B,客户端应用程序110可基于加密密钥102生成多个密钥112A、112B、112C和112D。这里,密钥112A-112D可以是从加密密钥102等中提取的伪随机值。这里,键112A-112D的数量可以基于网络的或由客户端应用程序110使用的区块链对等体的数量。例如,键112A-112D可以是从较大素数均匀采样的随机值。生成密钥112A-112D,使得它们可用于经由OPRF协议恢复加密密钥102。
在举例实施例中,(例如,与客户端应用程序110相关联的)用户111具有密码114或某个其他秘密值。这里,密码114可以是仅对用户111已知的文本值或字母数字值。键112A-112D可从客户端应用程序110输出并输入到OPRF服务120中。此外,密码114可经由用户设备的用户界面(未示出)输出并输入到OPRF服务120中。在该示例中,OPRF服务120可与客户端应用程序110(在客户端设备上)集成,或者它可以是在客户端设备上运行的独立服务。OPRF服务120可经由OPRF协议将多个密钥112A-112D转换成多个OPRF密钥122A-122D,OPRF协议使用密码114来将OPRF密钥122A-122D绑定到密码114,使得只有用户111(其知道密码114)可恢复密钥112A-112D。
为了生成每个OPRF密钥122A、122B、122C和122D,OPRF服务120可执行预定函数fK(x)。
在该示例中,f是OPRF算法,K是与区块链对等体(例如,密钥112A-112D中的一个)相关联的输入值,并且x是来自客户端应用程序110的秘密值(例如,密码114)。函数fK是将密钥(密钥112A-112D中的一个)和秘密值(密码114)作为输入并返回绑定到用户111的特定密码114的OPRF密钥122A-122D的双方协议。例如,OPRF服务120可接收密钥112A和密码114作为输入,并输出被分配给区块链对等体131的OPRF密钥122A。可以针对区块链对等体131-134中的每一个执行该过程。OPRF服务120可并行(同时地)、顺序地(例如,一次一个)、在时间上部分重叠等生成OPRF密钥122A-122D。OPRF函数(f)的实例包括但不限于DH-OPRF和Naar-Reingold等。此外,OPRF密钥122A-122D被分别分配给多个区块链对等体131-134。结果,区块链对等体131-134不学习关于密码114的任何东西。
如果函数fK可被有效计算,则函数fK是伪随机函数,K被随机选择,并且没有有效算法可以将fK与随机函数区分开来。此外,客户端应用程序110可将键112A-112D中的每一个分别与区块链对等体131-134中的一个相关联。在该***中,OPRF协议本质上是客户端应用程序110和相应的区块链对等体131-134之间的双方协议,其中客户端提供输入x,并且区块链对等体用输入K注册,并且在协议之后,客户端计算fK(x),使得区块链对等体对密码114一无所知。
图1C示出了根据示例实施例的恢复加密密钥102的过程100C。在该实例中,OPRF服务120可基于在图1B的过程100B中与区块链对等体131-134一起存储的OPRF密钥122A-122D和从用户111提供的密码114恢复加密密钥102。参照图1C,OPRF服务120接收分别由多个对等体131-134保持的多个OPRF密钥122A-122D,并且从用户111接收密码114。如果所使用的秘密共享方案仅需要密钥的预定阈值(例如,规定数量等)来恢复加密密钥102,则OPRF服务120不必接收所有OPRF密钥122A-122D。在这种情况下,OPRF服务120可在用户111提供密码114时评估OPRF密钥122A-122D。OPRF服务120可执行OPRF函数fK(x)以恢复多个密钥112A-112D。接下来,OPRF服务120或客户端应用程序110可从多个密钥112A-112D中恢复加密密钥102,所述加密密钥可用于对加密的私钥101’进行解密以揭示私钥101。
图1D示出了根据示范性实施例的对费用交易进行解密并且从区块链对等体131-134检索经加密的私钥101’的过程100D。参照图1D,客户端应用程序110已经基于多个密钥112A-112D恢复了加密密钥102,如图1C的实例中所描述的。在这个实例中,客户端应用程序110可基于恢复的加密密钥102对存储在区块链对等体131-134上的费用交易进行解密,并且将解密的交易交换为加密的私钥101’。在这个示例中,客户端应用程序110将解密的交易转发到区块链对等体131-134中的每一个,使得它们能够接收支付。接下来,一个或多个区块链对等体131-134可以返回加密的私钥101’。作为响应,客户端应用程序110可以对加密的私钥101’进行解密以恢复原始私钥101。
图2A示出根据示例实施例的区块链架构配置200。参照图2A,区块链架构200可包括某些区块链元件,例如,一组区块链节点202。区块链节点202可以包括一个或多个节点204-210(这四个节点仅通过示例来描绘)。这些节点参与许多活动,诸如区块链交易添加和验证过程(一致)。区块链节点204-210中的一个或多个可以基于背书策略对交易进行背书,并且可以为架构200中的所有区块链节点提供排序服务。区块链节点可发起区块链认证并试图写入存储在区块链层216中的区块链不可变分类账,其副本也可存储在支撑物理基础设施214上。区块链配置可以包括被链接到应用编程接口(API)222以访问和执行所存储的程序/应用代码220(例如,链码、智能合同等)的一个或多个应用224,所存储的程序/应用代码220可以根据参与者寻求的定制配置来创建并且可以维护其自己的状态、控制其自己的资产和接收外部信息。这可以被部署为交易并且经由附加到分布式分类账而被安装在所有区块链节点204-210上。
区块链基础或平台212可包括不同层的区块链数据、服务(例如,加密信任服务、虚拟执行环境等)和支持物理计算机基础设施,所述基础设施可用于接收和存储新交易并提供对试图访问数据条目的审核者的访问。区块链层216可以暴露接口,该接口提供对处理程序代码和参与物理基础设施214所必需的虚拟执行环境的访问。密码信任服务218可用于验证交易(诸如资产交换交易)并保持信息私有。
图2A的区块链架构配置可经由由区块链平台212暴露的一个或多个接口和提供的服务来处理和执行程序/应用代码220。代码220可以控制区块链资产。例如,代码220可以存储和转移数据,并且可以由节点204-210以智能合同和相关联的链式代码的形式来执行,该链式代码具有经受其执行的条件或其他代码元素。作为非限制性实例,可以创建智能合同以执行提醒、更新和/或取决于改变、更新等的其他通知。智能合同本身可用于识别与分类账的授权和访问要求和使用相关联的规则。例如,智能合同(或执行智能合同的逻辑的链代码)可以读取区块链数据226,区块链数据226可以由包括在区块链层216中的一个或多个处理实体(例如,虚拟机)处理,以在复杂服务场景内生成包括警报、确定责任等的结果228。物理基础设施214可用于检索本文所述的任何数据或信息。
智能合同可以经由高级应用和编程语言创建,并且然后被写到区块链中的块。智能合同可以包括利用区块链(例如,区块链对等体的分布式网络)注册、存储和/或复制的可执行代码。交易是智能合同逻辑的执行,其可以响应于满足与智能合同相关联的条件而执行。智能合同的执行可以触发对数字区块链分类账的状态的可信修改。由智能合同执行引起的对区块链分类账的修改可以通过一个或多个一致协议遍及区块链对等体的分布式网络被自动复制。
智能合同可以以键-值对的格式向区块链写入数据。此外,智能合同代码可以读取存储在区块链中的值,并在应用操作中使用它们。智能合同代码可以将不同逻辑操作的输出写入区块链内的一个或多个块中。代码可以用于在虚拟机或其他计算平台中创建临时数据结构。写入区块链的数据可以是公共的和/或可以被加密并维持为私有的。由智能合同使用/生成的临时数据由供应的执行环境保存在存储器中,然后一旦识别了区块链需要的数据就删除。
链码可以包括智能合同的代码解释(例如,逻辑)。例如,链码可以包括智能合同内的逻辑的打包和可部署版本。如本文所描述的,链码可以是部署在计算网络上的程序代码,其中链码在共有过程期间由链确认器一起执行和验证。链码可以接收散列并且从区块链中检索与通过使用先前存储的特征提取器创建的数据模板相关联的散列。如果散列标识符的散列和从所存储的标识符模板数据创建的散列匹配,则链码向所请求的服务发送授权密钥。链码可以向区块链写入与加密细节相关联的数据。
图2B示出根据示例实施例的区块链的节点之间的区块链交易流250的示例。参考图2B,交易流可包括将交易建议291传输至背书的对等体节点281的客户端节点260。背书的对等体281可验证客户端签名并且执行链码功能以发起交易。输出可以包括链码结果、在链码中读取的键/值版本的集合(读取集合)、以及在链码中写入的键/值的集合(写入集合)。这里,背书的对等体281可以确定是否背书交易建议。如果被批准,提议响应292连同背书签名一起被发送回客户端节点260。客户端节点260将签章组装成交易有效载荷293并将其广播至定购服务节点284。定购服务节点284然后将定购交易作为块递送到信道上的所有对等体281-283。在提交到区块链之前,每个对等体281-283可以验证交易。例如,对等体可检查背书策略以确保指定对等体的正确分配已对结果签名并对交易有效载荷293验证签名。
再次参考图2B,客户端节点通过构建请求并将请求发送至作为背书者的对等节点281来发起交易291。客户端节点260可以包括利用所支持的软件开发工具包(SDK)的应用,所述SDK利用可用的API来生成交易建议。提议是调用链码功能以使得数据可以被读取和/或写入到分类账(即,为资产写入新的键值对)的请求。SDK可以充当垫片以将交易提案封装成适当的架构化格式(例如,远程过程调用(RPC)上的协议缓冲器)并采用客户端的加密证书来产生交易提案的唯一签名。
作为响应,背书方对等节点281可验证(a)交易提议形成良好,(b)交易在过去尚未被提交(重放攻击保护),(c)签名有效,以及(d)提交者(在该实例中,客户端节点260)被适当地授权以在该信道上执行所提议的操作。背书的对等节点281可以将交易提议输入作为对所调用的链码函数的自变量。然后,对照当前状态数据库执行链码以产生包括响应值、读集合和写集合的交易结果。然而,此时没有对分类账进行更新。在292中,该值集合连同背书的对等节点281的签名作为提议响应292被传递回客户端节点260的SDK,SDK解析应用消费的有效载荷。
作为响应,客户端节点260的应用检查/验证背书的对等者的签名,并且比较建议响应以确定建议响应是否相同。如果链码仅查询分类账,则应用将检查查询响应并且通常将不向排序节点服务284提交交易。如果客户端应用程序意图将交易提交给排序节点服务284以更新分类账,则应用程序确定在提交之前指定的背书策略是否已被满足(即,所有对等节点对交易是否背书该交易)。这里,客户端可仅包括交易的多方中的一个。在这种情况下,每个客户端可具有其自身的背书节点,并且每个背书节点将需要背书交易。该架构使得即使应用选择不检查响应或以其他方式转发未个性化交易,背书策略仍将由对等体强制执行并在提交验证阶段得到保持。
在成功检查之后,在步骤293,客户端节点260将背书组装成交易建议,并在交易消息内向排序节点284广播该交易建议和响应。交易可包含读/写集合、背书对等体签名和信道ID。排序节点284不需要检查交易的全部内容以便执行其操作,相反,排序节点284可以简单地从网络中的所有信道接收交易,按信道对它们按时间顺序进行排序,并且每信道创建交易块。
这些块被从排序节点284递送到信道上的所有对等节点281-283。块内的数据部分可被验证以确保背书策略被满足并确保读集合变量的分类账状态没有改变,因为读集合由交易执行生成。此外,在步骤295,每个对等节点281-283将块附加到通道的链,并且对于每个有效交易,写入集被提交至当前状态数据库。可以发出事件以通知客户端应用程序交易(调用)已经被不可变性地附加到链,以及通知交易被验证还是被无效。
图3A示出了以分布式、分散式对等架构为特征的受许可的区块链网络300的示例。在该示例中,区块链用户302可以向经许可的区块链304发起交易。在该示例中,交易可以是部署、调用或查询,并且可以通过利用SDK的客户端侧应用、直接通过API等来发布。网络可以提供对诸如审核者之类的调节器306的访问。区块链网络运营商308管理成员许可,诸如将调节器306登记为“审核者”并且将区块链用户302登记为“客户端”。审核者可以仅限于查询分类账,而客户端可以被授权部署、调用和查询某些类型的链码。
区块链开发者310可写入链码和客户端侧应用。区块链开发者310可以通过接口将链码直接部署到网络。为了在链码中包括来自传统数据源312的证书,开发者310可使用带外连接来访问数据。在该示例中,区块链用户302通过对等节点314连接到经许可的区块链304。在进行任何交易之前,对等节点314从管理用户角色和许可的证书授权机构316检索用户的注册和交易证书。在一些情况下,区块链用户必须拥有这些数字证书以便在经许可的区块链304上进行交易。同时,尝试利用链码的用户可能被要求在传统数据源312上验证他们的凭证。为了确认用户的授权,链码可以通过传统处理平台318使用到该数据的带外连接。
图3B示出了以分布式、去中心化对等架构为特征的受准许的区块链网络320的另一示例。在该示例中,区块链用户322可以向经许可的区块链324提交交易。在该示例中,交易可以是部署、调用或查询,并且可以通过利用SDK的客户端侧应用、直接通过API等来发布。网络可以提供对诸如审核者之类的调节器326的访问。区块链网络运营商328管理成员许可,诸如将调节器326登记为“审核者”并且将区块链用户322登记为“客户端”。审核者可以仅限于查询分类账,而客户端可以被授权部署、调用和查询某些类型的链码。
区块链开发者330写入链码和客户端侧应用。区块链开发者330可以通过接口将链码直接部署到网络。为了在链码中包括来自传统数据源332的凭证,开发者330可以使用带外连接来访问数据。在该示例中,区块链用户322通过对等节点334连接到网络。在进行任何交易之前,对等节点334从证书授权机构336检索用户的登记和交易证书。在一些情况下,区块链用户必须拥有这些数字证书以便在经许可的区块链324上进行交易。同时,尝试利用链码的用户可能被要求在传统数据源332上验证他们的凭证。为了确认用户的授权,链码可以使用通过传统处理平台338到该数据的带外连接。
在一些实施例中,本文中的区块链可以是无许可的区块链。与要求允许加入的经许可的区块链相反,任何人都可以加入未经许可的区块链。例如,为了加入未经许可的区块链,用户可通过提交交易并因此将条目添加到分类账来创建个人地址并开始与网络交互。此外,所有方具有在***上运行节点以及采用挖掘协议来帮助验证交易的选择。
图3C示出了由包括多个节点354的无许可区块链352处理的交易的处理350。发送者356希望经由无许可区块链352向接收者358发送支付或某一其他形式的价值(例如,契约、医疗记录、合同、商品、服务或可被封装在数字记录中的任何其他资产)。在一个实施例中,发送者356和接收方设备358中的每一个可具有提供用户界面控制和交易参数的显示的数字钱包(与区块链352相关联)。作为响应,交易贯穿区块链352被广播至节点354。取决于区块链352的网络参数,节点基于无许可的区块链352创建者建立的规则(其可以是预定义的或动态分配的)来验证360交易。例如,这可以包括验证所涉及的各方的身份等。可以立即验证交易,或者可以将其与其他交易放置在队列中,并且节点354基于网络规则集确定交易是否有效。
在结构362中,将有效交易形成为块并且用锁(散列)密封。该过程可以通过节点354中的挖掘节点来执行。挖掘节点可以利用另外的软件,其特别地用于针对无许可区块链352挖掘和创建块。每个块可由使用由网络商定的算法创建的散列(例如,256位数等)来标识。每个块可包括报头、指向链中的先前块的报头的散列的指针或引用、以及一组有效交易。对先前块的散列的引用与块的安全独立链的创建相关联。
在块可以被添加到区块链之前,块必须被验证。对无许可区块链352的验证可包括工作证明(PoW),其是从块的头部导出的谜题的解。虽然在图3C的示例中未示出,但是用于验证块的另一过程是权益证明(proof-of-stake)。与工作证明不同,其中,算法用权益证明来奖励解决数学问题的挖掘者,新块的创建者以确定性方式被选择,取决于其财富,也被定义为“权益”。然后,由选择的/选出的节点执行类似的证明。
利用挖掘364,节点尝试通过对一个变量进行增量改变直到解满足全网络目标来解决块。这产生PoW,从而确保正确答案。换言之,潜在的解决方案必须证明在解决该问题时耗尽计算资源。在一些类型的无许可区块链中,可以为挖掘者奖励用于正确挖掘封锁的价值(例如,硬币等)。
这里,PoW过程在块的链接旁边使得区块链的修改极其困难,因为攻击者必须修改所有后续块以便接受一个块的修改。此外,随着新块的挖掘,修改块的难度增加,并且后续块的数量增加。通过分发366,成功验证的块被分发通过无许可分组链352,并且所有节点354将该块添加到作为无许可分组链352的可审计的分类账的多数链中。此外,将由发送者356提交的交易中的值存入或以其他方式传送到接收者设备358的数字钱包。
图4A示出根据示例实施例的用于生成和分发OPRF密钥的通信过程400A。参照图4A,客户端410具有公共和私钥对(pk,sk)。在该示例中,客户端利用加密密钥对私钥(sk)进行加密,并分别在430、431、432和433中向多个区块链对等体421、422、423和424提交多个交易,用于存储加密私钥(sk)的备份。每个交易可包括加密私钥和客户端410何时需要恢复加密私钥的费用/补偿。这里,区块链对等体的数量不限于四个,并且可以是协议期望的任何阈值。
在434中,客户端410为每个区块链对等体421-424生成OPRF密钥。首先,客户端410可生成可用于恢复加密密钥的多个密钥。接下来,客户端410基于用户密码将多个密钥转换为多个OPRF密钥。对于每个组织(对等体),客户端410可基于接收密钥和密码作为输入的预定函数fK(x)随机生成OPRF密钥,并输出OPRF密钥。迭代执行或同时执行该步骤434以生成用于区块链对等体421-424的多个OPRF密钥。在步骤435、436、437和438中,客户端410将多个OPRF密钥分别分配给多个区块链对等体421-424。
尽管步骤430-433被示为在图4A中执行步骤434-438,但应当理解,步骤430-433可在步骤434-438之后执行和/或与步骤430-433同时执行。换言之,步骤430-438的顺序不限于图4A所示和所述的示例。
图4B示出根据示例实施例的用于基于分布式OPRF密钥恢复加密密钥的通信过程400B。参照图4B,在440中,客户端设备410向区块链对等体421-424发送对OPRF密钥的请求。请求可以被广播到所有对等体421-424。作为响应,在步骤441、442、443和444,区块链对等体421-424可发送为客户端设备410保持的各个OPRF密钥。在445中,客户端410可触发OPRF函数(服务)的执行以将接收到的OPRF密钥转换为可用于恢复加密密钥的相应密钥。在这种情况下,用户可输入与OPRF键一起被输入到OPRF功能的密码。OPRF函数的输出是原始密钥。在445中,客户端410可以基于密钥恢复加密密钥。在446中,客户端410可以从任何区块链对等体请求加密的私钥。在这种情况下,在447中,客户端从区块链对等体421接收经加密的私钥。客户端410随后在448中解密私钥,并且使用私钥来对区块链交易、区块链消息、区块链请求等进行签名。
图5示出了根据示例性实施方式的在区块链网络的对等体之间分配加密密钥的方法500。作为非限制性示例,方法500可由在计算设备(诸如智能电话、平板、膝上型计算机、桌面型计算机、服务器、云平台等)上运行的客户端应用程序来执行。参考图5,在510中,方法可包括利用加密密钥对私钥进行加密。这里,加密密钥可以由客户端生成。
在520中,该方法可包括基于加密密钥生成多个密钥并且基于秘密输入值将多个密钥转换成多个密钥份额。秘密输入可以是仅对客户端已知的密码。在530中,该方法可以包括将经加密的私钥存储在区块链上。例如,客户端可以将加密的私钥发送到该区块链的多个区块链对等体。在540,该方法可包括将多个密钥份额分发给区块链的多个区块链对等体,其中该分发包括将多个密钥份额中的不同密钥份额发送给多个区块链对等体中的每个区块链对等体。
在一些实施例中,所述多个密钥可以包括多个伪随机值,并且所述方法还可以包括分别向所述多个区块链对等体注册所述多个伪随机值。在一些实施例中,所述转换可以包括执行遗忘的伪随机函数(OPRF),所述OPRF从所述多个密钥中接收密钥以及所述秘密输入值,并且输出用于所述相应密钥的密钥份额。在一些实施例中,所述转换还可包括基于所述秘密输入值迭代地执行所述多个密钥中的每个密钥的OPRF以输出所述多个密钥份额中的每个密钥份额。
在一些实施例中,存储可包括将区块链交易分配至多个区块链对等体,其中区块链交易包括加密的私钥和支付值。在一些实施例中,该方法还可以包括:从所述多个区块链对等体检索所述多个密钥份额;以及基于所述秘密输入值将所述多个密钥份额转换回所述多个密钥。在一些实施例中,该方法可以进一步包括从多个密钥恢复加密密钥并且基于恢复的加密密钥对加密的私钥进行解密。
在一些实施例中,该方法还可以包括从多个密钥恢复加密密钥,并且基于恢复的加密密钥对由多个区块链对等体存储的费用交易进行解密。在本示例中,该方法还可以包括:将解密的费用交易发送给多个区块链中的区块链对等体;从区块链对等体接收加密的私钥以交换解密的费用交易;以及基于恢复的加密密钥对加密的私钥进行解密。
图6A示出了包括被配置为执行根据示例性实施方式的各种操作的物理基础设施610的示例性***600。参考图6A,物理基础设施610包括模块612和模块614。模块614包括区块链620和智能合同630(其可以驻留在区块链620上),智能合同630可以执行包括在任何举例实施例中的任何操作步骤608(在模块612中)。步骤/操作608可以包括所描述或描绘的实施例中的一个或多个,并且可以表示从一个或多个智能合同630和/或区块链620写入或读取的输出或写入信息。物理基础设施610、模块612和模块614可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。进一步,模块612和模块614可以是相同的模块。
图6B示出了根据示例实施方式的被配置为执行各种操作的另一个示例***640。参考图6B,***640包括模块612和模块614。模块614包括区块链620和智能合同630(其可以驻留在区块链620上),智能合同630可以执行包括在任何举例实施例中的任何操作步骤608(在模块612中)。步骤/操作608可以包括所描述或描绘的实施例中的一个或多个,并且可以表示从一个或多个智能合同630和/或区块链620写入或读取的输出或写入信息。物理基础设施610、模块612和模块614可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。进一步,模块612和模块614可以是相同的模块。
图6C示出根据示例实施例的被配置为在订约方之间利用智能合同配置的示例***和被配置为在区块链上强制执行智能合同条款的调解服务器。参考图6C,配置650可以表示由明确识别一个或多个用户设备652和/或656的智能合同630驱动的通信会话、资产传输会话或过程或过程。智能合同执行的执行、操作和结果可以由服务器654管理。智能合同630的内容可能需要作为智能合同交易的各方的实体652和656中的一个或多个的数字签名。智能合同执行的结果可以作为区块链交易被写到区块链620。智能合同630驻留在可以驻留在一个或多个计算机、服务器、处理器、存储器和/或无线通信设备上的区块链620上。
图6D示出了根据实例性实施方式的包括区块链的***660。参考图6D的示例,应用编程接口(API)网关662提供用于访问区块链逻辑(例如,智能合同630或其他链码)和数据(例如,分布式分类账等)的公共接口。在该示例中,API网关662是用于通过将一个或多个实体652和656连接至区块链对等体(即,服务器654)来对区块链执行交易(调用、查询等)的公共接口。这里,服务器654是区块链网络对等组件,其保存世界状态的副本和分布式分类账,允许客户端652和656查询关于世界状态的数据以及将交易提交到区块链网络中,其中,根据智能合同630和背书策略,背书对等体将运行智能合同630。
以上实施例能够以硬件、由处理器执行的计算机程序、固件或以上的组合来实现。计算机程序可实施于计算机可读媒体上,例如存储媒体。例如,计算机程序可以驻留在随机存取存储器(“RAM”)、闪存、只读存储器(“ROM”)、可擦除可编程只读存储器(“EPROM”)、电可擦除可编程只读存储器(“EEPROM”)、寄存器、硬盘、可移动盘、致密盘只读存储器(“CD-ROM”)、或本领域已知的任何其他形式的存储介质中。
示范性存储媒体可耦合到处理器,使得处理器可从存储媒体读取信息和将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体。处理器和存储介质可驻留在专用集成电路(“ASIC”)中。在替代方案中,处理器和存储媒体可作为离散组件驻留。
图7A示出根据示例实施例的新块被添加到分布式分类账720的过程700,图7B示出根据示例实施例的用于区块链的新数据块结构730的内容。参考图7A,客户端(未示出)可向区块链节点711、712和/或713提交交易。客户端可以是从任何源接收的指令以制定在区块链720上的活动。作为示例,客户端可以是代表请求者(诸如设备、个人或实体)行动的应用,以提议针对区块链的交易。多个区块链对等体(例如,区块链节点711、712和713)可以维护区块链网络的状态和分布式分类账720的副本。在区块链网络中可存在不同类型的区块链节点/对等体,包括背书模拟并背书由客户端提出的交易的对等体,其验证背书、验证交易和提交交易到分布式分类账720。在此实例中,区块链节点711、712和713可执行背书节点、提交节点或两者的作用。
分布式分类账720包括在块中存储不可变的排序记录的区块链和维护区块链722的当前状态的状态数据库724(当前世界状态)。每个通道可以存在分布式分类账720,并且每个对等体维护它们作为其成员的每个通道的分布式分类账720的其自己的副本。区块链722是交易日志,被构造为散列链接的块,其中每个块包含N个交易的序列。块可包括诸如图7B中所示的各种组件。块的链接(由图7A中的箭头示出)可以通过在当前块的块报头内添加先前块的报头的散列来生成。以此方式,将区块链722上的所有交易排序并加密地链接在一起,从而防止篡改区块链数据而不破坏散列链接。此外,由于链接,区块链722中的最新块代表在它之前出现的每个交易。区块链722可以存储在对等文件***(本地或附加存储)上,所述对等文件***支持仅附加的区块链工作负载。
区块链722和分布式分类账722的当前状态可以存储在状态数据库724中。此处,当前状态数据表示曾经包括在区块链722的链交易日志中的所有键的最新值。链码用对照状态数据库724中的当前状态执行交易。为了使这些链码交互极其有效,所有密钥的最新值被存储在状态数据库724中。状态数据库724可以包括进入区块链722的交易日志的索引视图,因此可以在任何时间从链中重新生成它。在交易被接受之前,在对等体启动时,状态数据库724可自动被恢复(或者如果需要的话被生成)。
背书节点从客户端接收交易,并基于模拟结果背书交易。背书节点持有模拟交易建议的智能合同。当背书节点背书交易时,背书节点创建交易背书,该交易背书是指示模拟交易的背书的从背书节点到客户端应用程序的签名响应。背书交易的方法取决于可以在链码中指定的背书策略。背书策略的示例是“多数背书对等体必须背书交易”。不同的信道可具有不同的背书策略。客户端应用程序将经过验证的交易转发至排序服务(orderingservice)710。
排序服务710接受背书的交易,将它们排序到块中,并且向提交(committing)对等体递送所述块。例如,当已经达到交易阈值、定时器超时或另一条件时,排序服务710可以发起新块。在图7A的示例中,区块链节点712是提交对等体,其已接收到新数据新数据块730以供存储在区块链720上。区块链中的第一块可以称为生成块,其包括关于区块链、其成员、存储在其中的数据等的信息。
排序服务710可以由排序器群集构成。排序服务710不处理交易、智能合同或维护共享分类账。相反,排序服务710可以接受背书的业务并且指定那些业务被提交到分布式分类账720的顺序。可以设计区块链网络的架构,使得‘排序’(例如,Solo、Kafka、BFT等)的具体实现变成可插拔组件。
交易以一致的顺序被写到分布式分类账720。交易的顺序被建立以确保对状态数据库724的更新在它们被提交至网络时是有效的。与其中通过解决密码谜题或挖掘发生排序的密码货币区块链***(例如,Bitcont等)不同,在该示例中,分布式分类账720的各方可以选择最适合该网络的排序机制。
当排序服务710初始化新数据块730时,新数据块730可以被广播到提交对等体(例如,区块链节点711、712和713)。作为响应,每个提交对等体通过检查以确保读取集和写入集仍匹配状态数据库724中的当前世界状态来验证新数据块730内的交易。具体地,提交对等体可以确定当背书者模拟交易时存在的读数据是否与状态数据库724中的当前世界状态相同。当提交对等体验证交易时,交易被写到分布式分类账720上的区块链722,并且状态数据库724用来自读-写集合的写数据来更新。如果交易失败,即,如果提交对等体发现读-写集合与状态数据库724中的当前世界状态不匹配,则排序到块中的交易将仍然被包括在该块中,但它将被标记为无效,并且状态数据库724将不被更新。
参考图7B,被存储在分布式分类账720的区块链722上的新数据块730(也被称为数据块)可以包括多个数据段,诸如块报头740、块数据750(块数据区段)和块元数据760。应当理解,图7B中示出的各种描述的方框及其内容(例如,新数据方框730及其内容)仅仅是实例,并非旨在限制实例实施方式的范围。在常规块中,数据部分可以将N个交易(例如,1、10、100、500、1000、2000、3000等)的交易信息存储在块数据750内。
新数据块730可以包括到块报头740内的先前块(例如,图7A中的区块链722上)的链接。特定来说,块报头740可包含先前块的标头的散列。块报头740还可包括唯一块号、新数据块730的块数据750的散列等。新数据块730的块号可以是唯一的并且以不同顺序分配,诸如从零开始的递增/顺序顺序。
块元数据760可存储元数据的多个字段(例如,作为字节阵列等)。元数据字段可以包括关于块创建的签名、对最后配置块的引用、标识块内的有效和无效交易的交易过滤器、对块进行排序的排序服务的存留的最后偏移等。签名、最后配置块、和排序器元数据可以由排序服务710添加。同时,块的提交节点(诸如区块链节点712)可基于背书策略、读/写集合的验证等来添加有效/无效信息。交易过滤器可包括大小等于包括在块数据750中的交易的数量的字节阵列和标识交易是否有效/无效的验证码。
图7C示出了根据本文描述的实施方式的用于数字内容的区块链770的实施方式。数字内容可包括一个或多个文件和相关联的信息。所述文件可包含媒体、图像、视频、音频、文本、链接、图形、动画、网页、文档或其他形式的数字内容。区块链的不可变的、仅附加的方面充当保护措施来保护数字内容的完整性、有效性和真实性,从而使其适合用于法律程序中,其中可接受性规则适用,或在其中考虑证据或其中数字信息的呈现和使用以其他方式感兴趣的其他设置中。在这种情况下,数字内容可以被称为数字证据。
区块链可以各种方式形成。在一个实施例中,数字内容可以包括在区块链本身中并且从区块链本身访问。例如,区块链的每个块可以沿着相关联的数字内容存储参考信息的散列值(例如,报头、值等)。然后可以一起加密散列值和相关联的数字内容。因此,每个块的数字内容可以通过解密区块链中的每个块来访问,并且每个块的散列值可以用作引用先前块的基础。这可以说明如下:
块1 块2..........块N
散列值1 散列值2 散列值N
数字内容1 数字内容2 数字内容N
在一个实施例中,数字内容可以不包括在区块链中。例如,区块链可在没有任何数字内容的情况下存储每个块的内容的经加密的散列。数字内容可以被存储在与原始文件的散列值相关联的另一存储区域或存储器地址中。其他存储区域可以是用于存储区块链的相同存储设备,或者可以是不同的存储区域或者甚至是单独的关系数据库。通过获得或查询感兴趣块的散列值,然后在存储区域中查找与该实际数字内容对应存储的值,可以引用或访问每个块的数字内容。这个操作可以被执行,例如,数据库网守(gatekeeper)。这可以说明如下:
区块链 存储区
块1散列值 块1散列值…内容
块N散列值 块N散列值…内容
在图7C的示例性实施方式中,区块链770包括以有序序列密码连接的多个块7781,7782,…778N,其中N≥1。用于链接块7781,7782,…778N的加密可以是多个键控或非键控散列函数中的任何函数。在一个实施例中,块7781,7782,…778N取决于散列函数,该散列函数从基于块中的信息的输入产生n位字母数字输出(其中,n是256或另一个数)。这样的散列函数的示例包括但不限于SHA类型(SHA代表安全散列算法)算法、Merkle-Damgard算法、HAIFA算法、Merkle-tree算法、基于现时的算法和防冲突的PRF算法。在另一实施例中,块7781,7782,…778N可通过不同于散列函数的函数加密链接。为了说明的目的,参考散列函数(例如,SHA-2)进行以下描述。
在区块链中的块7781,7782,…778N中的每一个包括报头、文件的版本、以及值。由于区块链中的散列,报头和值对于每个块是不同的。在一个实施例中,该值可被包括在报头中。如下文更详细描述的,文件的版本可以是原始文件或原始文件的不同版本。
区块链中的第块7781被称为起源块(genesis block),并且包括报头7721、原始文件7741和初始值7761。用于起源块以及实际上在所有后续块中的散列方案可以变化。例如,第一块7781中的所有信息可被一起散列并且一次散列,或者第一块7781中的信息的每一个或一部分可被分开散列,然后可执行分开散列的部分的散列。
报头7721可以包括一个或多个初始参数,其例如可以包括版本号、时间戳、随机数、根信息、难度级、一致性协议、持续时间、媒体格式、源、描述性关键字和/或与原始文件7741和/或区块链相关联的其他信息。报头7721可以自动地(例如,通过区块链网络管理软件)或由区块链参与者手动地生成。与区块链中的其他块7782至778N中的头不同,起源块中的头7721不参考先前的块,仅仅因为不存在先前的块。
起源块中的原始文件7741可以是例如在被包括在区块链中之前在有或没有处理的情况下由装置捕获的数据。通过***的接口从设备、媒体源或节点接收原始文件7741。原始文件7741与元数据相关联,所述元数据例如可以由用户、设备和/或***处理器手动地或自动地生成。元数据可以被包括在与原文件7741相关联的第一块7781中。
起源块中的值7761是基于原始文件7741的一个或多个唯一属性生成的初始值。在一个实施例中,一个或多个唯一属性可以包括原始文件7741的散列值、原始文件7741的元数据和与文件相关联的其他信息。在一个实施例中,初始值7761可基于以下唯一属性:
1)原始文件的SHA-2计算的散列值
2)发起(originating)设备ID
3)原始文件的开始时戳
4)原始文件的初始存储位置
5)用于软件来当前控制原始文件和关联元数据的区块链网络成员ID
在区块链中的其他块7782至778N也具有报头、文件和值。然而,与第一块7721不同,其他块中的报头7722至772N中的每一个包括紧临的前一个块的散列值。紧邻的前一个块的散列值可以仅是前一个块的报头的散列或者可以是整个前一个块的散列值。通过在剩余块的每个中包括前一块的散列值,可以在逐块的基础上执行从第N个块返回到起源块(和相关联的原始文件)的跟踪,如箭头780所指示的,以建立可审计的和不可变的监管链。
其他块中的报头7722至772N中的每一个还可以包括其他信息,例如,版本号、时间戳、随机数、根信息、难度级、一致协议和/或其他参数或与对应的文件和/或区块链相关联的信息。
在其他块中的文件7742至774N可以等于原始文件或者可以是起源块中的原始文件的修改版本,这取决于例如所执行的处理的类型。所执行的处理的类型可从块到块变化。该处理可以涉及,例如,对在前块中的文件的任何修改,如编辑信息或以其他方式改变文件的内容、将信息从这些文件带走、或将信息添加或附加到这些文件上。
另外或可替代地,处理可以涉及仅从在前块复制文件、改变文件的存储位置、分析来自一个或多个在前块的文件、将文件从一个存储或存储器位置移动到另一个、或执行相对于区块链的文件和/或其相关联的元数据的动作。涉及分析文件的处理可以包括例如附加、包括或以其他方式将不同分析、统计或与该文件相关联的其他信息相关联。
其他块中的其他块7762至776N中的每一个中的值是唯一的值,并且作为所执行的处理的结果都是不同的。例如,任何一个块中的值对应于先前块中的值的更新版本。该更新反映在被赋值的块的散列中。块的值因此提供在块中执行什么处理的指示,并且还允许通过区块链返回到原始文件的跟踪。该跟踪确认文件在整个区块链中的监管链。
例如,考虑先前块中的文件的部分被编辑、阻挡或像素化以便保护在文件中示出的人的身份的情况。在这种情况下,包括编辑文件的块将包括与编辑文件相关联的元数据,例如,如何执行编辑、谁执行编辑、编辑发生的时间戳等。元数据可被散列以形成值。因为块的元数据不同于经散列以在先前块中形成值的信息,所以所述值彼此不同,且可在解密时恢复。
在一个实施例中,当发生以下任何一个或多个时,可以更新先前块的值(例如,计算新的散列值)以形成当前块的值。在这个举例实施例中,可以通过对以下指出的信息的全部或一部分进行散列来计算新的散列值。
a)如果文件已经以任何方式处理(例如,如果文件被编辑、复制、更改、访问或采取一些其他动作),则新SHA-2计算的散列值;
b)文件的新存储位置
c)所识别的与所述文件相关联的新元数据;
d)将所述文件的访问或控制从一个区块链参与者传输至另一个区块链参与者;
图7D示出根据一种实施方式的可表示区块链790中的块结构的块的实施方式。所述块,Blocki,包括报头772i、文件774i和值776i
报头772i包括先前块Blocki-1的散列值和附加参考信息,所述附加参考信息例如可以是本文所讨论的任意类型的信息(例如,包括参考、特性、参数等的报头信息)。所有块参考前一块的散列,当然除了起源块。前一块的散列值可以仅是前一块中的报头的散列或前一块中的信息的全部或部分(包括文件和元数据)的散列。
文件774i包括多个数据,如按顺序的数据1、数据2、…、数据N。使用描述与数据相关联的内容和/或特性的元数据1、元数据2、…、元数据N对数据加标签。例如,每个数据的元数据可以包括用于指示数据的时间戳、处理数据、指示人员或数据中描绘的其他内容的关键词、和/或可以有助于作为整体建立文件的有效性和内容、并且特别是其使用数字证据的其他特征的信息,例如,如结合以下讨论的实施例所描述的。除了元数据之外,每个数据可以标记有对先前数据的引用REF1,REF2,…,REFN以防止篡改、文件中的间隙、以及通过文件的顺序引用。
一旦元数据被分配给数据(例如,通过智能合同),在没有散列改变的情况下不能更改元数据,这可以容易地被识别用于无效。因此,元数据创建可被访问以供区块链中的参与者使用的信息的数据记录。
值776i是散列值或基于先前讨论的任何类型的信息计算的其他值。例如,对于任何给定的块Blocki,该块的值可被更新以反映为该块执行的处理,例如,新的散列值、新的存储位置、相关联的文件的新的元数据、控制或访问的转移、标识符、或将被添加的其他动作或信息。尽管每个块中的值被示出为与文件的数据的元数据和表头分离,但是在另一实施例中,该值可以部分地或整体地基于该元数据。
一旦形成区块链770,在任何时间点,可以通过查询区块链以获得跨块的值的交易历史来获得文件的不可变托管链。该查询或跟踪过程可开始于解密最近的一次被包括的块(例如,最后(第N)块)的值,然后继续解密其他块的值,直到到达起源块并恢复原始文件为止。解密还可包括在每个块解密报头和文件以及相关联的元数据。
解密是基于在每个块中发生的加密的类型来执行的。这可涉及使用私钥、公钥或公钥-私钥对。例如,当使用非对称加密时,网络中的区块链参与者或处理器可使用预定算法生成公钥和私钥对。公钥和私钥通过某种数学关系相互关联。公钥可公开分发以用作从其他用户接收消息的地址,例如,IP地址或家庭地址。私钥保密并且用于对发送到其他区块链参与者的消息进行数字签名。签名被包括在消息中,使得接收者可以使用发送者的公钥来验证。这样,接收者可以确信只有发送者可能已经发送该消息。
产生密钥对可类似于在区块链上创建账户,但不必实际上在任何地方注册。此外,在区块链上执行的每个交易由发送方使用其私钥进行数字签名。此签名确保仅账户的所有者能够跟踪和处理(如果在由智能合同确定的许可的范围内)区块链的文件。
图8A和图8B示出了可以合并和使用在本文中的区块链的使用情况的另外的实例。具体地,图8A示出了存储机器学习(人工智能)数据的区块链810的示例800。机器学习依赖于大量历史数据(或训练数据)来构建预测模型以便对新数据进行准确预测。机器学习软件(例如,神经网络等)经常可以筛选数百万个记录以挖掘非直观模式。
在图8A的示例中,主机平台820构建并部署用于设备830的预测监视的机器学***台820可以是云平台、工业服务器、web服务器、个人计算机、用户设备等。设备830可以是任何类型的资产(例如,机器或设备等),诸如飞机、机车、涡轮机、医疗机器和设备、油气设备、船、船、交通工具等。作为另一示例,设备830可以是非有形资产,诸如股票、货币、数字硬币、保险等。
可以使用区块链810来显著地改进机器学***台820在执行预测模型训练时所需的收集时间。例如,使用智能合同,数据可以直接地并且可靠地从其起始位置直接传输到区块链810。通过使用区块链810来确保所收集的数据的安全性和所有权,智能合同可以直接将数据从设备发送到使用该数据来建立机器学习模型的个体。这允许在设备830之间共享数据。
可以基于一致机制将所收集的数据存储在区块链810中。一致机制拉入(允许节点)以确保正在记录的数据被验证并准确。所记录的数据被加时间戳、密码签名和不变。因此,它是可审计的、透明的、并且安全的。在某些情况下(即,向区块链添加直接写入的IoT设备)可以。供应链、医疗保健、物流等)增加了被记录的数据的频率和准确度。
此外,对收集的数据的机器学***台820进行的细化和测试的轮次。每个回合可以基于附加数据或先前未被考虑来帮助扩展机器学***台820存储在区块链810上。机器学***台820已经实现最终训练的模型时,所得到的模型可以被存储在区块链810上。
在已经训练了模型之后,可以将其部署到现场环境,其中,其可以基于最终训练的机器学***台820处执行机器学***台820存储在区块链810上。在一个实施例中,本文描述和/或描绘的特征和/或动作可以在区块链810上或相对于区块链810发生。
区块链的新交易可被一起聚集成新块并被添加到现有散列值。然后将其加密以创建新块的新散列。当交易被加密时,其被添加到下一交易列表,等等。结果是各自包含所有先前块的散列值的区块链。存储这些块的计算机定期比较它们的散列值以确保它们全部一致。任何不同意的计算机丢弃引起该问题的记录。这种方法对于确保该阻挡链的抗篡改性是良好的,但它不是完美的。
游戏该***的一种方式是不诚实的用户以他们的偏好改变交易列表,但是以保持散列不变的方式。这可以通过强力完成,换言之,通过改变记录、加密结果以及查看散列值是否相同。并且如果不是,则反复地尝试,直到它找到匹配的散列为止。区块链的安全性基于这样的信念:普通计算机仅能够在完全不切实际的时间尺度(诸如宇宙的年龄)上执行这种暴力攻击。相比之下,量子计算机要快得多(快1000s倍)并且因此造成更大的威胁。
图8B示出了实现量子密钥分配(QKD)以防止量子计算攻击的量子安全模区块链852的示例850。在该示例中,区块链用户可以使用QKD来验证彼此的身份。这利用诸如光子的量子粒子发送信息,在不破坏光子的情况下***无法复制该信息。这样,发送者和接收者通过该区块链可以确定彼此的身份。
在图8B的示例中,存在四个用户854、856、858和860。每对用户均可在它们之间共享密钥862(即,QKD)。由于在该示例中存在四个节点,因此存在六对节点,因此使用六个不同的秘密密钥862,包括QKDAB,QKDAC,QKDAD,QKDBC,QKDBD,和QKDCD。每对可以通过使用量子粒子(例如光子)发送信息来创建QKD,该量子粒子不能被窃听者复制而不破坏它们。这样,一对用户可以确定彼此的身份。
区块链852的操作基于以下两个过程:(i)交易的创建,以及(ii)聚集新交易的块的构造。可以类似于传统的区块链网络来创建新交易。每个交易可以包含关于发送者、接收者、创建时间、待转移的金额(或值)、证明发送者拥有用于操作的资金的参考交易的列表等的信息。该交易记录然后被发送到所有其他节点,在那里其被输入到未确认交易池中。这里,两方(即,854-860中的一对用户)通过提供其共享密钥862(QKD)来认证交易。该量子签名可附接至每个交易,使得其非常难以篡改。每个节点相对于区块链852的本地副本检查它们的条目以验证每个交易具有足够的资金。然而,交易尚未确认。
可以使用广播协议以分散方式创建块,而不是对块执行传统的挖掘过程。在预定时间段(例如,秒、分钟、小时等),网络可将广播协议应用于任何未确认的交易,从而实现关于交易的正确版本的拜占庭(Byzantine)协议(共识)。例如,每个节点可以拥有私有值(该特定节点的交易数据)。在第一轮中,节点将它们的私有值传送给彼此。在随后的轮次中,节点传送它们在前一轮次从其他节点接收的信息。这里,诚实节点能够在新块内创建完整的一组交易。这个新的块可以被添加到区块链852中。在一个实施例中,本文描述和/或描绘的特征和/或动作可在阻挡链852上或相对于阻挡链852发生。
图9示出了支持本文中描述和/或描绘的一个或多个示例性实施方式的示例性***900。***900包括计算机***/服务器902,其可与许多其他通用或专用计算***环境或配置一起操作。适于与计算机***/服务器902一起使用的众所周知的计算***、环境和/或配置的示例包括但不限于个人计算机***、服务器计算机***、瘦客户机、厚客户机、手持式或膝上型设备、多处理器***、基于微处理器的***、机顶盒、可编程消费电子产品、网络PC、小型计算机***、大型计算机***和包括以上***或设备中的任一个的分布式云计算环境等。
计算机***/服务器902可以在由计算机***执行的诸如程序模块之类的计算机***可执行指令的一般上下文中描述。一般而言,程序模块可包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机***/服务器902可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机***存储媒质中。
如图9所示,云计算节点900中的计算机***/服务器902以通用计算设备的形式示出。计算机***/服务器902的组件可以包括但不限于一个或多个处理器或处理单元904、***存储器906、以及将包括***存储器906的不同***组件耦合至处理器904的总线。
总线表示若干类型的总线结构中的任何一种或多种,包括存储器总线或存储器控制器、***总线、加速图形端口、以及使用各种总线架构中的任一种的处理器或局部总线。作为示例而非限制,此类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线以及***组件互连(PCI)总线。
计算机***/服务器902通常包括各种计算机***可读介质。这样的介质可以是可由计算机***/服务器902访问的任何可用介质,并且其包括易失性和非易失性介质、可移动和不可移动介质。在一个实施例中,***存储器906实现其他附图的流程图。***存储器906可包括易失性存储器形式的计算机***可读介质,诸如随机存取存储器(RAM)910和/或高速缓存存储器912。计算机***/服务器902还可以包括其他可移动/不可移动、易失性/非易失性计算机***存储媒质。仅通过示例的方式,存储***914可以被提供用于从不可移除的非易失性磁性介质(未示出,并且通常被称为“硬盘驱动器”)进行读取和写入。尽管未示出,可以提供用于从可移动非易失性磁盘(例如,“软盘”)读取或向其写入的磁盘驱动器,以及用于从可移动非易失性光盘(如CD-ROM、DVD-ROM或其他光学介质)读取或向其写入的光盘驱动器。在这样的情况下,每一个可以通过一个或多个数据介质接口连接到总线。如以下将进一步描绘和描述的,存储器906可以包括具有被配置成用于执行该应用的不同实施例的功能的一组(例如,至少一个)程序模块的至少一个程序产品。
具有一组(至少一个)程序模块918的程序/实用程序916,以及操作***、一个或多个应用程序、其他程序模块和程序数据,可以通过示例而非限制的方式存储在存储器906中。操作***、一个或多个应用程序、其他程序模块和程序数据中的每一个或它们的一些组合可以包括网络环境的实现方式。程序模块918通常执行如本文所述的应用的不同实施例的功能和/或方法。
如本领域技术人员将理解的,本申请的方面可以体现为***、方法或计算机程序产品。因此,本申请的方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或者结合软件和硬件方面的实施例的形式,在本文中可以统称为“电路”、“模块”或“***”。此外,本申请的方面可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质具有体现在其上的计算机可读程序代码。
计算机***/服务器902还可与一个或一个以上外部装置920(例如,键盘、指向装置、显示器922等)通信;和/或使计算机***/服务器902能够与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)。这样的通信可经由I/O接口924发生。此外,计算机***/服务器902可以经由网络适配器926与诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,互联网)的一个或多个网络通信。如所描绘的,网络适配器926经由总线与计算机***/服务器902的其他部件通信。应当理解,虽然未示出,但是其他硬件和/或软件组件可以与计算机***/服务器902结合使用。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器和数据归档存储***等。
虽然***、方法和非暂态计算机可读介质中的至少一个的示例性实施例已经在附图中示出并且在前面的详细描述中描述,但是将理解的是,本申请不限于所公开的实施例,而是能够具有由以下权利要求阐述和定义的许多重排、修改和替换。例如,不同附图的***的能力可由本文描述的或分布式架构中的一个或多个模块或组件来执行,并且可包括发射器、接收器或两者对。例如,由单独模块执行的功能的全部或一部分可由这些模块中的一者或一者以上执行。进一步,本文描述的功能可以在不同时间和关于模块或组件内部或外部的不同事件来执行。此外,在各个模块之间发送的信息可以经由数据网络、互联网、语音网络、互联网协议网络、无线设备、有线设备和/或经由多个协议中的至少一个在模块之间发送。而且,由任何模块发送或接收的消息可直接和/或经由一个或多个其他模块发送或接收。
本领域技术人员将理解,“***”可以体现为个人计算机、服务器、控制台、个人数字助理(PDA)、蜂窝电话、平板计算设备、智能电话或任何其他合适的计算设备或设备的组合。将上述功能呈现为由“***”执行并不旨在以任何方式限制本申请的范围,而是旨在提供许多实施例的一个实例。实际上,本文公开的方法、***和装置可以以与计算技术一致的局部和分布式形式来实现。
应注意,本说明书中所描述的***特征中的一些已经被呈现为模块,以便更具体地强调其实现独立性。例如,模块可以被实现为硬件电路,所述硬件电路包括定制超大规模集成(VLSI)电路或门阵列、诸如逻辑芯片、晶体管之类的现成半导体、或其他分立组件。模块也可以在可编程硬件设备(诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等)中实现。
模块也可以至少部分地在软件中实现,用于由不同类型的处理器执行。所标识的可执行代码单元可以例如包括可以例如被组织为对象、过程或函数的计算机指令的一个或多个物理或逻辑块。然而,所识别的模块的可执行文件不需要在物理上位于一起,而是可以包括存储在不同位置的不同指令,当逻辑地结合在一起时,所述不同指令包括模块并且实现模块的所述目的。进一步,模块可存储在计算机可读媒体上,所述计算机可读媒体可为(例如)硬盘驱动器、快闪装置、随机存取存储器(RAM)、磁带或用于存储数据的任何其他此类媒体。
实际上,可执行代码的模块可以是单个指令或许多指令,并且甚至可以分布在几个不同的代码段上、在不同的程序之间、以及跨几个存储器设备。类似地,操作数据可以在本文中在模块内被识别和示出,并且可以以任何合适的形式体现和组织在任何合适类型的数据结构内。操作数据可以作为单个数据集来收集,或者可以分布在不同位置上,包括在不同的存储设备上,并且可以至少部分地仅仅作为电子信号存在于***或网络上。
将容易理解的是,如在此的附图中总体上描述和展示的,本申请的这些部件可以按多种多样的不同构型来安排和设计。因此,实施例的详细描述不旨在限制所要求的应用的范围,而仅代表本申请的所选实施例。
本领域普通技术人员将容易理解,可以用不同顺序的步骤和/或用与所公开的配置不同的配置的硬件元件来实践以上内容。因此,虽然已经基于这些优选实施例描述了本申请,但是对于本领域技术人员而言显而易见的是,某些修改、变化和替代构造将是显而易见的。
虽然已经描述了本申请的优选实施例,但是应当理解的是,所描述的实施例仅是说明性的,并且当考虑对其的全范围的等效物和修改(例如,协议、硬件设备、软件平台等)时,本申请的范围将仅由所附权利要求书限定。

Claims (20)

1.一种装置,包括:
处理器,被配置为
利用加密密钥对私钥进行加密,
基于所述加密密钥生成多个密钥并且基于秘密输入值将所述多个密钥转换成多个密钥份额,并且
将加密的私钥存储在区块链上;以及
网络接口,所述网络接口被配置为将所述多个密钥份额分发到所述区块链的多个区块链对等体,其中所述处理器将所述多个密钥份额中不同的密钥份额发送到所述多个区块链对等体中的每个区块链对等体。
2.根据权利要求1所述的装置,其中,所述多个密钥包括多个伪随机值,并且所述处理器被配置为分别向所述多个区块链对等体注册所述多个伪随机值。
3.根据权利要求1所述的装置,其中,所述处理器被配置为执行遗忘的伪随机函数(OPRF),所述遗忘的伪随机函数从所述多个密钥中接收密钥以及所述秘密输入值,并且输出所述相应密钥的密钥份额。
4.根据权利要求3所述的装置,其中,所述处理器被配置为基于所述秘密输入值,针对所述多个密钥中的每个密钥迭代地执行伪随机函数,以输出所述多个密钥份额中的每个密钥份额。
5.根据权利要求3所述的装置,其中,所述秘密输入值包括密码。
6.根据权利要求1所述的装置,其中,所述处理器被配置为控制所述网络接口将区块链交易分配至所述多个区块链对等体,其中,所述区块链交易包括所述加密私钥和支付值。
7.根据权利要求1所述的装置,其中,所述处理器被配置为从所述多个区块链对等体检索所述多个密钥份额,并且基于所述秘密输入值将所述多个密钥份额转换回所述多个密钥。
8.根据权利要求7所述的装置,其中,所述处理器进一步被配置为从所述多个密钥恢复所述加密密钥并且基于所恢复的加密密钥对由所述多个区块链对等体存储的费用交易进行解密。
9.根据权利要求8所述的装置,其中,所述处理器进一步被配置为将所述解密的费用交易发送给来自所述多个区块链对等体中的区块链对等体,从所述区块链对等体接收所述加密的私钥以交换所述解密的费用交易,并且基于所述恢复的加密密钥对所述加密的私钥进行解密。
10.一种方法,包括:
用加密密钥对私钥进行加密;
基于所述加密密钥生成多个密钥并且基于秘密输入值将所述多个密钥转换成多个密钥份额;
将加密的私钥存储在区块链上;以及
将所述多个密钥份额分发给所述区块链的多个区块链对等体,其中所述分发包括将所述多个密钥份额中不同的密钥份额发送到所述多个区块链对等体中的每个区块链对等体。
11.根据权利要求9所述的方法,其中,所述多个密钥包括多个伪随机值,并且所述方法进一步包括分别向所述多个区块链对等体注册所述多个伪随机值。
12.根据权利要求9所述的方法,其中,所述转换包括执行遗忘的伪随机函数(OPRF),所述遗忘的伪随机函数从所述多个密钥中接收密钥以及所述秘密输入值,并且输出所述相应密钥的密钥份额。
13.根据权利要求12所述的方法,其中,所述转换进一步包括:基于所述秘密输入值,迭代地执行所述多个密钥中的每个密钥的所述伪随机函数比,以输出所述多个密钥份额中的每个密钥份额。
14.根据权利要求12所述的方法,其中,所述秘密输入值包括密码。
15.根据权利要求9所述的方法,其中,所述存储包括将区块链交易分配至所述多个区块链对等体,其中,所述区块链交易包括所述加密私钥和支付值。
16.根据权利要求9所述的方法,其中,所述方法进一步包括从所述多个区块链对等体检索所述多个密钥份额,并且基于所述秘密输入值将所述多个密钥份额转换回所述多个密钥。
17.根据权利要求16所述的方法,其中,所述方法进一步包括从所述多个密钥恢复所述加密密钥并且基于所恢复的加密密钥对由所述多个区块链对等体存储的费用交易进行解密。
18.根据权利要求17所述的方法,其中,所述方法进一步包括将解密的所述费用交易发送至所述多个区块链对等体中的区块链对等体,从所述区块链对等体接收所述加密的私钥以交换所述解密的费用交易,并且基于所恢复的加密密钥对所述加密的私钥进行解密。
19.一种包括指令的计算机程序产品,所述指令在由处理器读取时使所述处理器执行一种方法,所述方法包括:
用加密密钥对私钥进行加密;
基于所述加密密钥生成多个密钥并且基于秘密输入值将所述多个密钥转换成多个密钥份额;
将加密的私钥存储在区块链上;以及
将所述多个密钥份额分发给所述区块链的多个区块链对等体,其中所述分发包括将所述多个密钥份额中不同的密钥份额发送到所述多个区块链对等体中的每个区块链对等体。
20.根据权利要求17所述的计算机程序产品,其中,所述转换包括执行遗忘的伪随机函数(OPRF),所述遗忘的伪随机函数从所述多个密钥中接收密钥以及所述秘密输入值,并且输出相应密钥的密钥份额。
CN202180074811.4A 2020-11-24 2021-10-25 区块链网络中通过伪随机函数的密钥回收 Pending CN116438776A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/103,475 US20220166616A1 (en) 2020-11-24 2020-11-24 Key reclamation in blockchain network via oprf
US17/103,475 2020-11-24
PCT/CN2021/125947 WO2022111175A1 (en) 2020-11-24 2021-10-25 Key reclamation in blockchain network via oprf

Publications (1)

Publication Number Publication Date
CN116438776A true CN116438776A (zh) 2023-07-14

Family

ID=81658686

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180074811.4A Pending CN116438776A (zh) 2020-11-24 2021-10-25 区块链网络中通过伪随机函数的密钥回收

Country Status (6)

Country Link
US (1) US20220166616A1 (zh)
JP (1) JP2023551458A (zh)
CN (1) CN116438776A (zh)
DE (1) DE112021006165T5 (zh)
GB (1) GB2615710A (zh)
WO (1) WO2022111175A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115114082A (zh) * 2021-03-23 2022-09-27 伊姆西Ip控股有限责任公司 用于在物联网中备份数据的方法、设备和程序产品
TWI806724B (zh) * 2022-08-02 2023-06-21 中華電信股份有限公司 用於決定金鑰的系統及方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8015211B2 (en) * 2004-04-21 2011-09-06 Architecture Technology Corporation Secure peer-to-peer object storage system
US9413735B1 (en) * 2015-01-20 2016-08-09 Ca, Inc. Managing distribution and retrieval of security key fragments among proxy storage devices
US11107071B2 (en) * 2016-02-01 2021-08-31 Apple Inc. Validating online access to secure device functionality
WO2017184160A1 (en) * 2016-04-22 2017-10-26 Entit Software Llc Authorization of use of cryptographic keys
US10762564B2 (en) * 2016-11-10 2020-09-01 International Business Machines Corporation Autonomous peer-to-peer energy networks operating on a blockchain
LU93377B1 (en) * 2016-12-15 2018-07-03 Luxembourg Inst Science & Tech List P2p network data distribution and retrieval using blockchain log
US10601585B1 (en) * 2016-12-16 2020-03-24 EMC IP Holding Company LLC Methods and apparatus for blockchain encryption
US11190344B2 (en) * 2017-01-25 2021-11-30 Salesforce.Com, Inc. Secure user authentication based on multiple asymmetric cryptography key pairs
WO2018213419A1 (en) * 2017-05-16 2018-11-22 Apple Inc. Facilitating a fund transfer between user accounts
GB201709367D0 (en) * 2017-06-13 2017-07-26 Nchain Holdings Ltd Computer-implemented system and method
CN107623569A (zh) * 2017-09-30 2018-01-23 矩阵元技术(深圳)有限公司 基于秘密共享技术的区块链密钥托管和恢复方法、装置
US10439812B2 (en) * 2018-02-02 2019-10-08 SquareLink, Inc. Technologies for private key recovery in distributed ledger systems
US10841080B2 (en) * 2018-03-20 2020-11-17 International Business Machines Corporation Oblivious pseudorandom function in a key management system
US10917234B2 (en) * 2018-05-03 2021-02-09 International Business Machines Corporation Blockchain for on-chain management of off-chain storage
CN109379397B (zh) * 2018-08-31 2019-12-06 阿里巴巴集团控股有限公司 基于区块链的交易共识处理方法及装置、电子设备
US20210135855A1 (en) * 2019-10-30 2021-05-06 EMC IP Holding Company LLC Threshold-Based Override of Data Privacy Using Distributed Ledgers and Key Shares
CN110929290B (zh) * 2019-12-04 2022-03-18 南京如般量子科技有限公司 基于联盟链的私钥门限备份、挂失及恢复***及其方法
CN111507710A (zh) * 2020-03-25 2020-08-07 农业农村部农药检定所(国际食品法典农药残留委员会秘书处) 一种数据查询与共享***
US11736456B2 (en) * 2020-09-29 2023-08-22 International Business Machines Corporation Consensus service for blockchain networks

Also Published As

Publication number Publication date
JP2023551458A (ja) 2023-12-08
GB2615710A (en) 2023-08-16
GB202307404D0 (en) 2023-07-05
DE112021006165T5 (de) 2023-10-05
US20220166616A1 (en) 2022-05-26
WO2022111175A1 (en) 2022-06-02

Similar Documents

Publication Publication Date Title
JP7499852B2 (ja) 許可型ブロックチェーンのためのランダムなノード選択
US11201726B2 (en) Multi-layered image encoding for data block
CN114128214B (zh) 用于配置区块链的安全层
AU2021254870B2 (en) Faster view change for blockchain
US11362826B2 (en) Endorsement process for non-deterministic application
CN115211093A (zh) 数据对象的有效阈值存储
WO2022089198A1 (en) Blockchain for artificial intelligence training
US11580098B2 (en) Multi-client transaction validation
US11838400B2 (en) Image encoding for blockchain
CN111881109B (zh) 数据库可合并分类账
US11924348B2 (en) Honest behavior enforcement via blockchain
CN116941265A (zh) 区块链网络身份管理使用ssi
US11847234B2 (en) Verifiable training of model in untrusted environment
CN115943411A (zh) 用于保护数据的噪声交易
WO2022111175A1 (en) Key reclamation in blockchain network via oprf
US20230208638A1 (en) Future asset reclamation via blockchain
US11856092B2 (en) Limiting data availability on distributed ledger
CN116361823A (zh) 用于隐私保护的区块链的选择性审计处理
WO2023046409A1 (en) Digital asset platform with hsm verification
CN116264860A (zh) 广播内容的阈值加密
US20230087602A1 (en) Privacy-preserving state reference

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