保护可审计的帐户的隐私的制作方法

文档序号:33252894发布日期:2023-02-18 05:29阅读:38来源:国知局
保护可审计的帐户的隐私的制作方法
保护可审计的帐户的隐私


背景技术:

1.本公开总体上涉及区块链事务处理领域,并且更具体地涉及在保留用户事务的隐私的同时审计区块链事务。
2.区块链是由对等网络内的多个节点组成的分布式分类账。每个节点具有分类账的相同拷贝,使得区块链成为去中心化系统,因为不存在对区块链的中央权限控制管理。区块链中的块是“事务”,其通过向块的链添加附加块来记录,通过加密手段链接在一起。区块链内的每个块包含先前块的散列、时间戳和事务数据,直到在区块链开始时的生成块。向区块链添加块要求节点遵循一致协议(例如,工作证明、股权证明等)以便验证新的块。
3.区块链可以是许可的或无经许可的。许可的区块链是私有区块链,其中节点必须在它可以访问区块链或对区块链作出改变之前以某种方式被验证。在一些许可的区块链中,可以限制区块链中的各方访问区块链的部分或参与双向或多向事务。无经许可的区块链在本质上通常是开源的,并且允许具有互联网连接的任何人发送事务并参与执行共识协议。


技术实现要素:

4.本公开的实施例包括一种用于隐私保护可审计账户的计算机实施的方法、系统和计算机程序。各实施例可包括生成至少一个令牌,其中该至少一个令牌是用所有者、类型、当前历元值、可转移性、种子、和r值来编码的,其中历元是特定时间范围。进一步,各实施例可包括生成零知识证明,其中该零知识证明指示该至少一个令牌的所有者是区块链网络的注册用户。另外,各实施例可包括组装第一事务消息,其中该事务消息包括至少一个令牌、零知识证明和发行者的公钥。此外,实施例可以包括对第一事务消息进行签名,其中签名基于与发行者的公钥相关联的私钥,并且向区块链网络广播事务消息。
5.以上发明内容并不旨在描述本公开的每个展示的实施例或每个实现方式。
附图说明
6.包括在本公开中的附图被结合到说明书中并且形成说明书的一部分。它们示出了本公开的实施方式,并且与具体实施方式一起用于解释本公开的原理。附图仅说明某些实施例,而并不限制本公开。
7.图1a示出了根据本公开的实施例的一般指定为100的示例区块链架构。
8.图1b示出了根据本公开的实施例的一般指定为150的区块链事务流。
9.图2示出了根据本公开的实施例的一般指定为200的用于可审计的隐私保护区块链事务的示例系统。
10.图3示出根据本公开的实施例的一般指定为300的用于可审计的隐私保护区块链事务的示例方法的流程图。
11.图4a示出了根据本公开的实施例的云计算环境。
12.图4b示出了根据本公开的实施例的抽象模型层。
13.图5示出了根据本公开的实施例的示例计算机系统的高级框图,该计算机系统一般指定为501,可以用于实施本文描述的方法、工具和模块和任何相关功能中的一个或多个。
14.虽然本文描述的这些实施例服从不同修改和替代形式,但是其细节已经通过举例在附图中示出并且将被详细描述。然而,应当理解,所描述的特定实施例不应被视为限制性的。相反,本发明旨在覆盖落入本公开的精神和范围内的所有修改、等同物和替代物。
具体实施方式
15.本公开的多个方面总体上涉及在区块链事务中保留隐私的领域,并且更具体地涉及经由区块链与账户服务进行隐私保护令牌交换。分布式分类账技术(“dlt”)已经引起去中心化令牌系统。这些系统允许终端用户在没有中央机构的情况下交换令牌。dlt基础的一致机制保证了分类账中数据的正确性和交换的最终性。然而,去中心化引起隐私担忧:通过设计,访问分类账的任何人都可以读取用户事务的历史。这已经创造了重点在于模糊用户的事务而不牺牲可验证性的研究的活跃领域。也就是说,即使事务的内容被隐藏,维护分类账的节点仍然可以验证事务。
16.在实施例中,零知识证明可以用于隐藏事务的内容。零知识证明提供一种实现验证事务同时向区块链网络上的未授权观看者隐藏事务内容的目的的方法。隐藏事务内容不应阻止授权方的审计和事务监控。例如,反洗钱条例要求银行检查可疑事务并且如果必要的话防止可疑事务最终化。
17.本发明的实施例可以提供一种方法,该方法使得用户能够在区块链网络上进行私人事务,同时允许审计员或监控代理执行账户任务。更具体地,被授权方可学习用户在历元(epoch)内接收的令牌的数量。如果用户没有在每一历元声明其所拥有的所有令牌,则任何未声明的令牌将被毁坏和丢失。
18.在转向附图之前,将容易理解的是,如本文的附图中总体上描述和展示的这些即时部件可以按多种不同的构型来安排和设计。因此,如附图中表示的方法、装置、计算机可读介质和系统中的至少一个的实施方式的以下详细描述并不旨在限制所要求保护的应用的范围,而是仅仅表示所选择的实施方式。
19.在一个或多个实施例中,如贯穿本说明书所描述的即时特征、结构、或特性可以以任何适合的方式组合或去除。例如,贯穿本说明书的短语“示例性实施例”、“一些实施例”或其他类似语言的使用是指结合该实施例所描述的特定特征、结构或特性可以被包括在至少一个实施例中的事实。因此,贯穿本说明书出现的短语“示例性实施例”、“在一些实施例中”、“在其他实施例中”或其他类似语言不一定都指同一组实施例,并且所描述的特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合或去除。此外,在附图中,元件之间的任何连接可以允许单向和/或双向通信,即使所描绘的连接是单向或双向箭头。而且,在附图中描绘的任何装置可以是不同的装置。例如,如果移动设备被示为发送信息,则有线设备也可被用于发送该信息。
20.此外,虽然术语“消息”可能已经在实施例的描述中使用,但该应用程序可以应用于许多类型的网络和数据。此外,尽管在示例性实施例中可以描述特定类型的连接、消息和信令,但是本技术不限于特定类型的连接、消息和信令。
21.本文详述了一种方法、系统、和计算机程序产品,这些方法、系统、和计算机程序产品利用专门的区块链组件来用于可以在区块链网络上审计的允许隐私保护的事务。
22.在一些实施例中,该方法、系统和/或计算机程序产品利用作为分布式存储系统的去中心化数据库(如区块链),该分布式存储系统包括彼此通信的多个节点。去中心化数据库可包括类似于能够在互不信任方之间维护记录的分布式分类账的仅附加不可变数据结构。互不信任方在本文中称为对等体或对等节点。每个对等体维护数据库记录的副本,并且在分布式对等体之间没有达成一致下,没有单个对等体可以修改数据库记录。例如,对等体可执行一致协议以验证区块链存储事务,将存储事务分组成块,并在块上建立散列链。为了一致性,该过程根据需要通过排序存储事务形成分类账。
23.在各个实施例中,可以使用许可的和/或无许可的区块链。在公共或无许可的区块链中,任何人可在没有特定身份(例如,保留匿名性)的情况下参与。公共区块链可以涉及本地密码并且使用基于不同协议(诸如工作证明或股权证明)的共识。而经许可的区块链数据库提供了共享共同目标但不完全相互信任的一组实体(诸如交换资金、商品、(私人)信息等的企业)之间的安全交互。
24.进一步地,在一些实施例中,该方法、系统、和/或计算机程序产品可以利用区块链,该区块链操作针对去中心化存储方案定制的任意可编程逻辑并且被称为“智能合同”或“链码”。在一些情况下,可存在用于被称为系统链码的管理功能和参数的专用链码(诸如管理对不同的区块链、桥接的区块链客户端等的访问)。在一些实施例中,该方法、系统和/或计算机程序产品可以进一步利用智能合同,该智能合同是可信的分布式应用,其利用区块链数据库的防篡改属性和节点之间的基础协议,该协议被称为认可或认可策略。
25.认可策略允许链码以认可所必需的对等节点集的形式指定用于事务的认可者。当客户端将事务发送给认可策略中指定的对等体(例如,认可者)时,执行该事务以验证事务。在验证之后,事务进入排序阶段,其中使用一致协议产生被分组为块的认可事务的有序序列。
26.在一些实施例中,所述方法、系统和/或计算机程序产品可以利用作为所述区块链系统的通信实体的节点。在不同类型的多个节点可在同一物理服务器上运行的意义上,“节点”可执行逻辑功能。节点在信任域中被分组并且与以不同方式控制它们的逻辑实体相关联。节点可以包括不同类型,诸如向认可者(例如,对等体)提交事务调用并且向订购服务(例如,订购节点)广播事务建议的客户端或提交-客户端节点。
27.另一类型的节点是对等节点,该对等节点可以接收客户端提交的事务、提交这些事务、并且维持区块链事务的分类账的状态和副本。对等体也可以具有认可人的作用,尽管它不是必需的。排序-服务-节点或排序器是针对所有节点运行通信服务的节点,并且其实现递送保证,诸如在提交/确认事务和修改区块链的世界状态时向系统中的每个对等节点广播,所述区块链的世界状态是初始区块链事务的另一名称,其通常包括控制和设置信息。
28.在一些实施例中,该方法、系统和/或计算机程序产品可以利用分类账,该分类账是区块链的所有状态转换的排序的、防篡改记录。状态转换可以由参与方(例如,客户端节点、排序节点、认可者节点、对等节点等)提交的链码调用(例如,事务、转移、交换等)引起。每个参与方(诸如对等节点)可维护分类账的副本。事务可以导致一组资产关键字-值对作为一个或多个操作数(诸如创建、更新、删除等)被提交到分类账。分类账包括用于在块中存
储不可变的排序记录的区块链(也称为链)。分类账还包括维护区块链的当前状态的状态数据库。
29.在一些实施例中,本文描述的方法、系统、和/或计算机程序产品可以利用链,该链是被结构化为散列链接块的事务日志,并且每个块包含n个事务的序列,其中n大于或等于一。块报头包括块的事务的散列以及先前块的报头的散列。以这种方式,分类账上的所有事务可被排序和加密地链接在一起。因而,不可能篡改分类账数据而不破坏散列链接。最近添加的区块链块的散列表示在链之前已经出现的每个事务,从而使得可以确保所有对等节点都处于一致且可信的状态。该链可以存储在对等节点文件系统(例如,本地、附加存储、云等)上,从而有效地支持区块链工作负载的仅附加性质。
30.不可变分类账的当前状态表示包括在链事务日志中的所有键的最新值。因为当前状态表示信道已知的最新键值,所以有时将其称为世界状态。链调用执行针对分类账的当前状态数据的事务。为了使这些链码交互有效,密钥的最新值可以存储在状态数据库中。状态数据库可以简单地是到链的事务日志中的索引视图,因此可以在任何时间从链中重新生成它。在对等节点启动时和在接受事务之前,可以自动恢复(或生成)状态数据库。
31.本文描述和描绘的即时解决方案的一些益处包括一种用于实现新的、新颖的区块链组件的方法、系统和计算机程序产品,所述区块链组件利用零知识证明来保护用户隐私,同时允许对区块链网络上的事务的审计。示范性实施例解决了在允许审计或监视代理执行必要任务的同时保护用户隐私的问题。
32.注意,区块链与传统数据库的不同之处在于,区块链不是中央存储,而是去中心化的、不可变的和安全存储,其中,节点可以共享对存储中的记录的改变。区块链中固有的并且有助于实现区块链的一些属性包括但不限于本文进一步描述的不可变分类账、智能合同、安全、隐私、去中心化、一致、认可、可访问性等。根据不同方面,本文描述的系统是由于对于区块链是固有的和唯一的不可变的问责制、安全性、隐私性、许可的去中心化、智能合同的可用性、认可和可访问性而实现的。
33.具体地,这些示范性实施例提供了优于传统数据库的许多益处。例如,通过区块链,实施例提供了区块链固有的和唯一的不可变的问责制、安全性、隐私性、许可的去中心化、智能合同的可用性、认可以及可访问性。
34.同时,传统数据库不能用于实现示例实施例,因为它未带来网络上的所有方,它不创建可信协作并且不提供涉及可验证凭证的事务的有效提交。如果资产交换被中断,则传统数据库不提供防篡改存储,并且不提供对资产相关成本(例如,计算成本,诸如处理能力、费用等)的保留。由此,本文所描述的利用区块链网络的所提议的实施例不能由传统数据库来实现。
35.现在转向图1a,示出了根据本公开的实施例的区块链架构100。在一些实施例中,区块链架构100可以包括某些区块链元件,例如,一组区块链节点102。区块链节点102可以包括一个或多个区块链节点,例如对等体104-110(这四个节点仅通过示例描绘)。这些节点参与多个活动,诸如区块链事务添加和确认过程(一致)。对等体104-110中的一个或多个可以基于认可策略来认可和/或推荐事务,并且可以为区块链架构100中的所有区块链节点102提供排序服务。区块链节点可发起区块链认证并试图写入存储在区块链层116中的区块链不可变分类账,其副本也可存储在支撑物理基础设施114上。区块链配置可包括一个或多
个应用程序124,这些应用程序链接到应用编程接口(api)122以访问和执行所存储的程序/应用程序代码120(例如,链代码、智能合同等),这些程序/应用程序代码可根据参与者寻求的定制配置来创建并且可维持其自己的状态、控制其自己的资产和接收外部信息。这可以被部署为事务并且经由附加到分布式分类账而被安装在所有区块链节点104-110上。
36.区块链基础或平台112可以包括不同层的区块链数据、服务(例如,加密信任服务、虚拟执行环境等)、和支持物理计算机基础设施,这些基础设施可以用于接收和存储新事务并且提供对试图访问数据条目的审计者的访问。区块链层116可以暴露接口,该接口提供对处理程序代码和参与物理基础设施114所必需的虚拟执行环境的访问。密码信任服务118可用于验证事务(诸如资产交换事务)并保持信息私有。
37.图1a的区块链架构100可以经由由区块链平台112暴露的一个或多个接口和提供的服务来处理和执行程序/应用程序代码120。应用程序代码120可以控制区块链资产。例如,应用程序代码120可以存储和传输数据,并且可以由对等体104-110以智能合同和相关联的链式代码的形式来执行,其中条件或其他代码元素受其执行。作为非限制性示例,可以生成智能合同以执行资产/资源的转移、资产/资源的生成等。智能合同本身可用于识别与授权相关联的规则(例如,资产传输规则、限制等)、访问要求(例如,数据存储的访问要求、链外数据存储的访问要求、谁可参与事务的访问要求等)、和/或分类账的使用等。例如,可验证证书126可由包括在区块链层116中的一个或多个处理实体(例如,虚拟机)处理。结果128可包括多个链接的共享文档(例如,每个链接的共享文档记录关于由所选对等体组基于资产交换模式、发行者策略等提交的可验证证书126的智能合同的发行)。在一些实施例中,物理基础设施114可以用于检索本文所述的任何数据/信息/资产/等。
38.可以经由高级应用和编程语言创建智能合同,并且然后将其写入区块链中的块。智能合同可以包括利用区块链(例如,区块链对等体的分布式网络)注册、存储和/或复制的可执行代码。事务是智能合同代码的执行,该智能合同代码的执行可以响应于与智能合同相关联的条件被满足而执行。智能合同的执行可以触发对数字区块链分类账的状态的可信修改。由智能合同执行引起的对区块链分类账的修改可以通过一个或多个一致协议遍及区块链对等体的分布式网络被自动复制。
39.智能合同可以以键-值对的格式向区块链写入数据。此外,智能合同代码可以读取存储在区块链中的值,并在应用程序操作中使用它们。智能合同代码可以将不同逻辑操作的输出写入到区块链中。代码可以用于在虚拟机或其他计算平台中创建临时数据结构。写入区块链的数据可以是公共的和/或可以被加密并维持为私有的。由智能合同使用/生成的临时数据由供应的执行环境保存在存储器中,然后一旦识别了区块链需要的数据就删除。
40.链码可以包括具有附加特征的智能合同的代码解释。如本文所描述的,链码可以是部署在计算网络上的程序代码,其中链码在一致过程期间由链确认器一起执行和验证。链码接收散列并且从区块链中检索与通过使用先前存储的特征提取器创建的数据模板相关联的散列。如果散列标识符的散列和从所存储的标识符模板数据创建的散列匹配,则链码向所请求的服务发送授权密钥。链码可以向与加密细节相关联的区块链数据写入(例如,因此提交与资产相关联的事务等)。
41.图1b示出根据示例性实施例的在区块链的节点之间的区块链事务流150的实例。参考图1b,事务流程可以包括由应用客户端节点160发送至认可的对等节点181的事务建议
191(例如,在一些实施例中,事务建议191可以包括规定要用于特定事务的所选择的一组对等体[对等节点181-184]的模式)。认可的对等节点181可验证客户端签名并执行链码功能以发起事务。输出可以包括链码结果、在链码中读取的键/值版本的集合(读取集合)、以及在链码中写入的键/值的集合(写入集合)。如果被批准,则建议响应192连同认可签名一起被发送回客户端节点160。客户端节点160将认可组装成事务有效载荷193并将其广播至定购服务节点184。定购服务节点184然后将定购事务作为块在信道上递送到所有对等节点181-183。在提交到区块链之前,每个对等节点181-183可验证事务。例如,对等体可检查认可策略以确保指定对等体的正确分配已针对事务有效载荷193对结果进行签名并认证签名(例如,来自模式的所有指定对等体已验证并批准将事务提交至区块链)。
[0042]
再次参见图1b,客户端节点160通过构建请求并将请求发送到对等节点181来发起事务提议191,该对等节点在本示例中是认可者。客户端节点160可以包括利用所支持的软件开发工具包(sdk)的应用程序,所述sdk利用可用的api来生成事务提议191。该提议是调用链码功能以使得数据可以被读取和/或写入到分类账的请求。sdk可以将事务提议191的包缩减成适当的架构化格式(例如,远程过程调用(rpc)上的协议缓冲器),并采用客户端的加密证书来产生事务提议191的唯一签名。
[0043]
作为响应,认可的对等节点181可以验证:(a)事务提议191格式良好,(b)事务在过去尚未被提交(重放攻击保护),(c)签名有效,以及(d)提交者(在该实例中,客户端节点160)被适当地授权以在该信道上执行所提议的操作。认可的对等节点181可以将事务提议191输入作为对所调用的链码函数的自变量。然后,对照当前状态数据库执行链码以产生包括响应值、读集合和写集合的事务结果。然而,此时没有对分类账进行更新。在一些实施例中,该值集合连同认可的对等节点181的签名作为提议响应192被传递回客户端节点160的sdk,sdk解析应用程序消费的有效载荷。
[0044]
作为响应,客户端节点160的应用程序检查/验证认可的对等体签名,并且比较建议响应以确定建议响应是否相同。如果链码仅查询分类账,则应用程序将检查查询响应并且通常将不向订购服务节点184提交事务。如果客户端应用程序意图将事务提交给订购服务节点184以更新分类账,则应用程序确定在提交之前指定的认可策略是否已被满足。这里,客户端可仅包括事务的多方中的一个。在这种情况下,每个客户端可具有其自身的认可节点,并且每个认可节点将需要认可事务。该架构使得即使应用程序选择不检查响应或以其他方式转发未认可的事务,认可策略仍将由对等体强制执行并在提交验证阶段得到保持。
[0045]
在成功检查之后,在事务有效载荷步骤193中,客户端节点160将认可组装成事务并且将事务建议191和事务消息内的响应广播至订购节点184。事务可包含读/写集合、认可对等体签名和信道id(例如,如果要使用特定的[离链]数据存储库)。排序节点184不需要检查事务的全部内容以便执行其操作,相反,排序节点184可以简单地从网络中的所有信道接收事务,按信道对它们按时间顺序进行排序,并且每信道创建事务块。
[0046]
事务的块被从排序节点184递送到信道上的所有对等节点181-183。块内的事务194被验证以确保任何认可策略被满足并确保对于读集合变量的分类账状态没有改变,因为读集合是由事务执行生成的。块中的事务被标记为有效或无效。此外,在步骤195中,每个对等节点181-183将块附加到通道的链,并且对于每个有效事务,写入集被提交到当前状态
数据库。发出事件以通知客户端应用程序事务(调用)已经被不可变性地附加到链,以及通知事务被验证还是被无效。
[0047]
现在参见图2,示出了根据本公开的实施例的用于可审计事务的隐私保护的示例区块链网络200。在一些实施例中,区块链网络包括在对等体1104上操作的私有可审计事务引擎202。私有可审计事务引擎202是计算机程序,它可以生成和/或执行在许可的或无许可的区块链网络上操作的私有可审计事务。虽然私有可审计事务引擎202被示出为在对等体1104上操作,但私有可审计事务引擎202可以在区块链网络内的一个或多个区块链节点102(例如,对等体2 106、对等体3 108和对等体4 110)上操作。进一步,一个或多个私有可审计事务引擎202可以作为单独节点位于区块链网络内和区块链网络的特定信道内。区块链网络内的每个对等体可在私有的可审计事务服务内充当一个或多个角色。
[0048]
在一些实施例中,私有可审计事务引擎202建立历元并且保持与每个历元相关联的世界时钟。历元是事务可落入的预定时间量(例如,一小时、两小时、一天等)。例如,一个或多个节点可负责保持和维护与区块链网络相关联的世界时钟。世界时钟可以基于单个时区或在给定时间初始化的运行的24小时时钟。进一步,负责维护世界时钟的对等节点可在历元结束时发出通知并相应地更新该区块链。
[0049]
在一些实施例中,私有可审计事务引擎202可以生成与事务相关联的令牌。在事务内生成的令牌可以在基于非挂起事务输出的方法中隐藏令牌的所有者。例如,来自收款人块的一组令牌可以是输入令牌。输入令牌必须可追踪到先前的事务。输入令牌必须是与将由私有可审计事务引擎202生成的输出令牌相同的类型。输入令牌的总值必须与要生成的输出令牌相同。输入令牌的所有者必须提供私有密钥以签署事务。输入令牌在之前的事务中不能消耗。
[0050]
在实施例中,私有可审计事务引擎202可以以下方式生成输出令牌。应注意,为了简单起见,以下实例仅指代来自一个输入令牌的一个输出令牌。可以由私有的可审计事务引擎202在事务期间生成多于一个令牌。令牌可以是包含以下的一条数据:
[0051]
令牌=提交(所有者、类型、值、e、可转移、种子、r)
[0052]
其中,提交是隐藏组件,e是当前历元的标识符。可转移是指示令牌是否可转移的布尔项。种子是用于生成令牌的序列号的随机种子,并且r是盲因子。
[0053]
在实施例中,私有可审计事务引擎202可以审计令牌。区块链网络内的一个或多个节点可以占据审计者(例如,对等体2 106、对等体3 108)的角色。例如,在每个历元结束时,在每个历元期间接收用户的当前令牌。审计者可以检查令牌的新鲜度。新鲜度是该令牌是否在关闭的最近历元中生成的指示。在上面的直接示例中,审计者将检查令牌中的e。如果审计者确定令牌是新鲜的,则它可以将令牌的状态更新为可转移的。如果审计者确定令牌不是新的,则它可以将令牌的状态更新为不可转移的。在一些情况下,不可转移的令牌基本上是无用的,并且因此被毁坏。
[0054]
在实施例中,私有可审计事务引擎202可以生成零知识证明以示出所有者被注册并且令牌编码了适当的信息。例如,发布者可以是区块链网络中的节点,其发布零知识证明ψ以示出令牌编码所有者、令牌类型、值、e、假和r。
[0055]
在实施例中,私有可审计事务引擎202可以被配置为允许发行者向消息添加签名并提交签名的事务。例如,该消息可以包含令牌、类型、ψ和pki(pki是指发布者的公钥)。因
此,签名的事务可以如下:
[0056]
tx=(发布、令牌、所有者、类型、值、ψ、pki、σ)
[0057]
在实施例中,私有可审计事务引擎202可以被配置允许审计者为通过检查以下来验证事务:1)发布是否在其创建“类型”令牌的许可内;2)σ在公钥pki下是有效的;以及3)ψ是否是有效的零知识证明。
[0058]
在实施例中,私有可审计事务引擎202可以被配置为生成转移令牌的所有权的事务。例如,输入令牌可以是来自先前事务的输出令牌,其中输入令牌已被重新随即话。例如,不具有相关联历元的原始令牌可如下:令牌=提交(所有者、类型、值、真、
‑‑
、种子、r),并且原始令牌可按以下方式重新随机化:令牌’=提交(所有者’、类型、值、假、e、种子’、r’)。在所有者是新所有者的情况下,e是当前历元种子’并且r’是随机数。进一步,私有的可审计事务引擎202可以生成用于随机化令牌的新序列号。例如,令牌序列号可以如下:sn=vrf(sk,种子),其中,vrf是可验证的伪随机函数并且sk是所有者的密钥。vrf提供了输出的正确性的可公开验证的证明。
[0059]
在实施例中,私有的可审计事务引擎202可以被配置为由令牌的所有者生成零知识证明。零知识证明可以包括以下各项中的一项或多项。令牌”是有效令牌的随机化,令牌’被正确地生成(即,其保留令牌的类型和值并且可转移的被设置为假,该历元是当前历元)。所有者是区块链网络的注册用户。sn已被正确地计算(即,使用所有者的密钥和以令牌”中编码的种子来计算sn)。
[0060]
在实施例中,私有可审计事务引擎202可以被配置为允许令牌的所有者生成匿名签名,这示出签名者知道令牌的密钥的所有者。例如,让匿名签名对消息(sn,签名”,签名’,ψ)为σ。σ表示签名者知道令牌”中的拥有者的密钥。传输事务将对应于以下tx=(传输,sn,令牌”,令牌’,ψ,σ)。
[0061]
在实施例中,私有的可审计事务引擎202可以被配置为允许用户在该历元结束时对令牌记账。例如,对于用户拥有的每个令牌,它可以向审计者提供以下:所有者、值、类型、e、种子和r。审计者可以检查所有者是否是用户以及令牌是否是匹配所提供的数据的有效事务的输出。如果所提供的数据有效,则审计者可以将令牌标记为已检查。
[0062]
在实施例中,私有的可审计事务引擎202可以被配置为允许审计者改变所检查的令牌内的数据。例如,审计器可将所呈现的令牌从令牌=提交(所有者、值、类型、e、假、种子、r)改变为令牌’=提交(所有者、值、类型、
‑‑‑
、真、种子、r’),其中历元不与令牌相关联,并且令牌是否可被转移到另一用户的布尔值被设置为真。另外,记账的总体事务可以如下:tx=(账户,令牌,令牌’,ψ,σ)。由此,ψ是零知识证明,其示出了令牌”与令牌编码相同的信息,除了它是可转移的并且其历元被编辑,并且σ是审计者在消息上的签名(账户,令牌,令牌”,ψ)。
[0063]
在实施例中,私有的可审计事务引擎202可以被配置为在不改变令牌的所有权的情况下允许合并和分割令牌。例如,审计者可以监视用户在当前历元中参与账户会话的最后时间。在该示例中,布尔可转移可从历元字段的存在中移除或推断。如果历元字段已被审计者设置,则令牌不能被花费,但是如果历元字段为空,则令牌可被花费。进一步,私有可审计事务引擎202可以配置成允许审计者监视并批处理一个账户事务中的多个令牌,从而允许依次发生多横向事务。
[0064]
在实施例中,私有的可审计事务引擎202可以被配置为合并和分割事务和令牌。例如,用户可通过合并或分割事务或令牌来隐藏在当前历元中参与的事务的数量。事务可具有以下性质:可转移的布尔被设置为假,输出中的所有者与输入相同,并且输出中的历元与输入相同。由此,与任何令牌和事务相关联的数据将对审计者和网络的其他参与者隐藏,因为它将仅看起来好像它先前被用户拥有。
[0065]
应指出,如图2中所体现的并且贯穿本说明书,如所实施的,所呈现的新颖性是倍增性的。
[0066]
现在参见图3,示出了隐私保护可审计区块链事务的示例方法300的流程图。在一些实施例中,方法300可由区块链网络(诸如图2的区块链网络200)中的处理器、节点和/或对等节点来执行。
[0067]
在一些实施例中,方法300行进至步骤302,其中,处理器经由区块链架构100内的对等体(例如,对等体1 104、对等体2 106、对等体3 108、对等体4 110)对当前历元内的令牌进行编码。例如,私有可审计事务引擎202可以允许用户将当前历元内接收的输入令牌编码为表示在当前历元内接收的输出令牌。
[0068]
在一些实施例中,方法300前进到步骤304,在步骤304中,经由区块链架构100内的对等体接收一个或多个令牌以用于检查。例如,私有的可审计事务引擎202可以被配置为允许审计者节点从区块链网络的用户接收令牌。
[0069]
在一些实施例中,方法300前进到步骤306,其中审计节点执行对所接收的令牌的审计检查。例如,私有可审计事务引擎202可以被配置为允许区块链网络内的审计节点对所接收的令牌执行审计检查,其中审计节点可以检查以确定令牌是否可转移并且是否在最近的历元中生成。
[0070]
在一些实施例中,方法300前进到步骤308,其中私有可审计事务引擎202可以被配置为确定审计节点的审计检查是否成功。例如,如果审计节点确定编码的令牌来自有效事务(例如,令牌是可转移的并且在最近的历元中生成的),则可以确定审计检查成功。进一步,审计节点可以经由在步骤302中由用户编码的零知识证明来确定用户是否是令牌的所有者。
[0071]
在一些实施例中,方法300前进到步骤310,其中私有可审计事务引擎202可以被配置为提交审计检查。例如,审计节点可以提供用于审计检查的签名,允许令牌被包括在可附加到区块链网络的分类账的事务中。
[0072]
在一些实施例中,如以下所讨论的,存在为了简洁起见未描绘的方法300的一个或多个操作。
[0073]
应当理解的是,尽管本公开包括关于云计算的详细描述,但本文所叙述的教导的实现不限于云计算环境。相反,本公开的实施例能够结合现在已知的或以后开发的任何其他类型的计算环境来实现。
[0074]
云计算是服务递送的模型,用于使得能够方便地、按需地网络访问可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池,所述可配置计算资源可以用最小的管理努力或与所述服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
[0075]
特征如下:
[0076]
按需自助服务:云消费者可以根据需要自动地单方面地配设计算能力,如服务器时间和网络存储,而无需与服务的提供商进行人类交互。
[0077]
广泛的网络访问:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理pda)对云的使用。
[0078]
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
[0079]
快速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
[0080]
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
[0081]
服务模型如下:
[0082]
软件即服务(saas):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。可通过诸如web浏览器(例如,基于web的电子邮件)之类的瘦客户端接口从不同客户端设备访问应用。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至单独的应用能力的底层云基础设施,可能的例外是有限的用户特定应用配置设置。
[0083]
平台即服务(paas):提供给消费者的能力是将消费者创建的或获取的使用由提供商支持的编程语言和工具创建的应用部署到云基础设施上。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但是对所部署的应用和可能的应用托管环境配置具有控制。
[0084]
基础设施即服务(iaas):向消费者提供的能力是提供处理、存储、网络和消费者能够部署并运行任意软件的其他基本计算资源,所述任意软件可以包括操作系统和应用程序。消费者不管理或控制底层云基础设施,而是具有对操作系统、存储、所部署的应用的控制以及对所选联网组件(例如,主机防火墙)的可能受限的控制。
[0085]
部署模型如下:
[0086]
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
[0087]
社区云:云基础设施由若干组织共享并且支持具有共享关注(例如,任务、安全要求、策略、和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于该社区场所内或场所外。
[0088]
公共云:云基础设施可供公众或大型行业团体使用,并且由出售云服务的组织拥有。
[0089]
混合云:云基础设施是两个或更多个云(私有、社区或公共)的组合,这些云保持唯一实体但通过使数据和应用能够移植的标准化或专有技术(例如,云突发以用于云之间的负载平衡)绑定在一起。
[0090]
云计算环境是面向服务的,集中于无状态、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
[0091]
图4a示出了所描绘的云计算环境410。如图所示,云计算环境410包括由云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点400,本地计算设备诸如例如个人数字助理(pda)或蜂窝电话400a、台式计算机400b、膝上型计算机400c和/或汽车计算机系统400n。节点400可彼此通信。它们可以物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上所述的私有云、社区云、公共云或混合云、或其组合。
[0092]
这允许云计算环境410提供基础架构、平台和/或软件作为服务,云消费者无需为其维护本地计算设备上的资源。应当理解,图4a中示出的计算设备400a-n的类型仅旨在是说明性的,并且计算节点400和云计算环境410可以通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化设备通信。
[0093]
图4b示出了由云计算环境410(图4a)提供的一组功能抽象层。应提前理解,图4b中所示的组件、层和功能仅旨在是说明性的,并且本公开的实施方式不限于此。如下所述,提供以下层和对应功能。
[0094]
硬件和软件层415包括硬件和软件组件。硬件组件的示例包括:大型机402;基于risc(精简指令集计算机)架构的服务器404;服务器406;刀片服务器408;存储设备411;以及网络和网络组件412。在一些实施例中,软件组件包括网络应用服务器软件414和数据库软件416。
[0095]
虚拟化层420提供抽象层,从所述抽象层可以提供虚拟实体的以下示例:虚拟服务器422;虚拟存储器424;虚拟网络426,包括虚拟专用网络;虚拟应用和操作系统428;以及虚拟客户端430。
[0096]
在一个示例中,管理层440可以提供以下描述的功能。资源供应442提供用于在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价444在云计算环境内利用资源时提供成本跟踪,并为这些资源的消费开账单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户446为消费者和系统管理员提供对云计算环境的访问。服务水平管理448提供云计算资源分配和管理,使得满足所需的服务水平。服务水平协议(sla)规划和履行450提供根据sla预期未来需求的云计算资源的预安排和采购。
[0097]
工作负载层460提供可以利用云计算环境的功能的示例。可以从该层提供的工作负荷和功能的示例包括:地图和导航462;软件开发和生命周期管理464;虚拟课堂教育交付466;数据分析处理468;事务处理470;以及可审计的隐私保护区块链事务472。
[0098]
图5是根据本公开的实施例的示例计算机系统501的高级框图,该计算机系统可以用于实施本文描述的方法、工具和模块和任何相关功能中的一个或多个(例如,使用计算机的一个或多个处理器电路或计算机处理器)。在一些实施例中,计算机系统501的主要部件可以包括一个或多个cpu502、存储器子系统504、终端接口512、存储接口516、i/o(输入/输出)设备接口514、和网络接口518,所有这些可以直接或间接地通信地耦合,以用于经由存储器总线503、i/o总线508、和i/o总线接口单元510的部件间通信。
[0099]
计算机系统501可以包含一个或多个通用可编程中央处理单元(cpu)502a、502b、502c、和502d,本文统称为cpu 502。在一些实施例中,计算机系统501可以包含相对大型系
统的典型的多个处理器;然而,在其他实施例中,计算机系统501可以替代地是单个cpu系统。每个cpu502可执行存储在存储器子系统504中的指令,并且可包括一个或多个板载高速缓存。
[0100]
系统存储器504可以包括呈易失性存储器形式的计算机系统可读介质,如随机存取存储器(ram)522或高速缓存存储器524。计算机系统501可以进一步包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。仅通过示例的方式,存储系统526可被设置为从不可移动、非易失性磁介质(诸如,“硬盘驱动器”)读取和写入不可移动、非易失性磁介质。尽管未示出,可以提供用于从可移动非易失性磁盘(例如,“软盘”)读取或向其写入的磁盘驱动器,或用于从可移动非易失性光盘(如cd-rom、dvd-rom或其他光学介质)读取或向其写入的光盘驱动器。此外,存储器504可包括闪存,例如闪存棒驱动器或闪存驱动器。存储器设备可通过一个或多个数据介质接口连接到存储器总线503。存储器504可包括具有一组(例如,至少一个)程序模块的至少一个程序产品,这些程序模块被配置为执行不同实施例的功能。
[0101]
一个或多个程序/实用程序528(每个程序均具有至少一组程序模块530)可以存储在存储器504中。程序/实用程序528可以包括管理程序(也称为虚拟机监视器)、一个或多个操作系统、一个或多个应用程序、其他程序模块和程序数据。操作系统、一个或多个应用程序、其他程序模块和程序数据中的每一个或它们的一些组合可以包括网络环境的实现方式。程序528和/或程序模块530一般执行不同实施例的功能或方法。
[0102]
尽管存储器总线503在图5中被示出为提供cpu502、存储器子系统504、以及i/o总线接口510之间的直接通信路径的单个总线结构,但是在一些实施例中,存储器总线503可以包括多个不同的总线或通信路径,这些总线或通信路径可以被安排成各种形式中的任何一种,如分层、星形或网络配置中的点对点链路、多个分层总线、并行和冗余路径、或任何其他适当类型的配置。此外,尽管i/o总线接口510和i/o总线508被示出为单个相应的单元,但是在一些实施例中,计算机系统501可以包含多个i/o总线接口单元510、多个i/o总线508、或两者。进一步,虽然示出了将i/o总线508与运行到不同i/o设备的不同通信路径分开的多个i/o接口单元,但是在其他实施例中,一些或全部i/o设备可以直接连接到一个或多个系统i/o总线。
[0103]
在一些实施例中,计算机系统501可以是多用户大型计算机系统、单用户系统、或服务器计算机或几乎不具有或不具有直接用户界面但从其他计算机系统(客户端)接收请求的类似设备。进一步,在一些实施例中,计算机系统501可以被实现为台式计算机、便携式计算机、膝上型或笔记本计算机、平板计算机、袖珍计算机、电话、智能电话、网络交换机或路由器、或任何其他适当类型的电子设备。
[0104]
要注意的是,图5旨在描述示例性计算机系统501的代表性主要部件。然而,在一些实施例中,单个组件可以具有比图5中所表示的更大或更小的复杂度,可以存在不同于图5中所示出的那些组件或者除图5中所示出的那些组件之外的组件,并且此类组件的数量、类型和配置可以变化。
[0105]
如本文更详细地讨论的,预期本文描述的方法的一些实施例的操作中的一些或全部操作可以按替代顺序执行或可以根本不执行;此外,多个操作可同时发生或作为较大过程的内部部分发生。
[0106]
本公开可以是任何可能的集成技术细节水平的系统、方法、和/或计算机程序产品。所述计算机程序产品可包含上面具有用于致使处理器执行本发明的方面的计算机可读程序指令的计算机可读存储介质(或介质)。
[0107]
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式紧凑盘只读存储器(cd-rom)、数字通用盘(dvd)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
[0108]
本文所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载至相应的计算/处理装置或者下载至外部计算机或外部存储装置。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
[0109]
用于执行本公开的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如smalltalk、c++等)和过程程序设计语言(诸如“c”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(lan)或广域网(wan))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本公开的各方面。
[0110]
本文参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本公开的多个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0111]
这些计算机可读程序指令可以被提供给计算机的处理器、或其他可编程数据处理装置以便产生机器,这样使得经由计算机的处理器或其他可编程数据处理装置执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括
包含实现流程图和/或框图中的或多个方框中规定的功能/动作的方面的指令的制造品。
[0112]
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置、或其他设备上,以便使得在该计算机、其他可编程装置或其他设备上执行一系列操作步骤以产生计算机实现的过程,从而使得在该计算机、其他可编程装置、或其他设备上执行的指令实现流程图和/或框图的或多个框中所指定的功能/动作。
[0113]
附图中的流程图和框图示出了根据本公开的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,连续示出的两个方框实际上可以作为一个步骤完成,同时、基本上同时、以部分或完全时间上重叠的方式执行,或者方框有时可以以相反的顺序执行,这取决于所涉及的功能。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
[0114]
已经出于说明的目的呈现了本公开的不同实施例的描述,但并不旨在是详尽的或限于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域普通技术人员将是显而易见的。这里使用的术语被选择来最好地解释实施例的原理、实际应用或对在市场中找到的技术的技术改进,或者使得本领域普通技术人员能够理解这里公开的实施例。
[0115]
虽然已经根据具体实施例描述了本公开,但预期其变更和修改将对本领域技术人员变得清楚。因此,以下权利要求旨在被解释为覆盖落入本公开的真实精神和范围内的所有这样的改变和修改。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1