基于区块链的合并式数据传输控制方法和系统与流程
未命名
10-19
阅读:63
评论:0
基于区块链的合并式数据传输控制方法和系统
本技术是中国申请号为2017800088353(对应于pct国际申请号pct/ib2017/050980)、申请日为2017年2月21日、发明名称为“基于区块链的合并式数据传输控制方法和系统”的发明专利申请的分案申请。
技术领域
1.本公开主要涉及点对点(peer-to-peer)分布式技术,例如加密货币区块链。本公开还涉及使用密码技术来安全和有效地确定和/或识别区块链上的交易,从而产生高度通用的技术解决方案,该技术解决方案可用于控制与区块链平台相关和交互的操作过程。本发明可用于确定选择哪些区块链交易(或其中的数据)用于复制和/或传输到另一个基于计算机的目的站。
背景技术:
2.区块链是一种点对点的电子账簿,该电子账簿是一个基于计算机的分散式分布式系统,由块组成,而这些块又由交易组成。每笔交易都是一种数据结构,对区块链系统参与者之间的数字资产控制权的转移进行编码,并包括至少一个输入和至少一个输出。每个块都包含前一个块的散列(hash),这些块被链接在一起,以创建自区块链创建以来写入该区块链的所有交易的永久的、不可更改的记录。交易包含嵌入其输入和输出中的称为脚本的小程序,这些程序指定了如何以及由谁来访问交易的输出。在加密货币平台上,这些脚本是使用基于堆栈的脚本语言编写的。
3.为了将交易写入区块链,必须对其进行验证。网络节点(挖矿机)执行工作以确保每个交易都有效,无效交易被网络拒绝。安装在节点上的软件客户端通过执行锁定和解锁脚本,对未使用(unspent)的交易(utxo)执行此验证工作。如果锁定和解锁脚本的执行评估为true,则交易有效,交易将被写入区块链。因此,为了将交易写入区块链,必须i)由接收交易的第一节点验证-如果交易通过了验证,则该节点将其中继到网络中的其他节点;ii)添加到由挖矿机创建的新区块中;iii)挖掘,即添加到过去交易的公共账簿中。由于区块链提供了各种优势,许多组织(实体)已经开始研究将这种技术整合到其计算基础设施中的方式。实体可以实现复杂的内部计算系统以存储和/或处理其数据。例如,这些系统可以基于处理由组织的活动生成和/或获取的大量数据所需的大型数据库结构。例如,金融系统可能需要管理和同步各种数据库,以便能够准确地处理或通信所生成和获取的数据。然而,尽管希望使用区块链技术来记录数据和事件,因为区块链提供了诸如防篡改和永久记录之类的优点,但是当不同的计算架构和平台需要彼此结合使用时,出现了技术困难。区块链平台可以不与实体的内部系统连接。因此,存在由所使用的不同硬件和软件系统引起的集成和通信问题。从一个系统(例如区块链)识别数据然后从其中提取数据以便将其传输到不同系统(例如dbms)的困难不是微不足道的考虑。而且,希望以不需要改变任何底层平台的方式实现这种跨平台集成。此外,区块链将数据存储在构建为块的交易(tx)中。从区块链中识别并访问相关数据是一项艰巨的任务,需要在时间和计算工作量方
面以安全且有效的方式执行。本发明至少解决了这些技术问题。
4.在整个说明书中,单词“包括(comprise)”或变式例如“包括(comprises)或包括(comprising)”将被理解为暗示包含所述元素、整数或步骤,或元素组、整数组或步骤组,但不排除任何其他元素、整数或步骤,或元素组、整数组或步骤组。
5.在本文中,我们使用术语“区块链”来包括所有形式的电子、基于计算机的分布式账簿。这些包括基于共识的区块链和交易链技术,许可和未许可的账簿、共享的账簿及其变体。区块链技术最广为人知的应用是加密货币账簿,尽管已经提出并开发了其他区块链实施方式。虽然本文中出于方便和说明的目的可能引用加密货币,但应注意,本发明不限于与加密货币区块链一起使用,替代的区块链实施方式和协议也落入本发明的范围内。
6.对本公开中包含的文件、行为、材料、装置、物品等的任何讨论不应视为承认任何或所有这些事项构成存在于本技术的每个权利要求的优先权日之前的现有技术基础的一部分,或者是与本公开相关的领域中的公知常识。
技术实现要素:
7.根据本发明的方法和系统在所附权利要求中限定。本发明可以提供一种加密方法和相应的系统。本发明可以提供区块链实现的方法/系统。本发明可以提供用于安全识别、提取、传输、处理和/或更新数据的控制系统。可以从区块链导出、访问或复制该数据。本发明可以提供一种使用密钥来将区块链与非区块链实现的计算资源(例如数据存储/处理资源)集成的方法/系统。本发明可以提供一种使用密钥从区块链识别和/或提取数据的方法/系统。本发明可以提供一种用于将源自区块链的数据集成到非区块链实现的存储资源中的方法/系统。实体可以称为组织、系统或网络。实体可以是逻辑实体、虚拟的、基于计算机的或物理实体。实体可以包括自然人。
8.本发明可以提供一种用于有效识别、关联或确定与一个或多个实体的区块链交易(tx)的计算机实现方法。区块链交易可以记录在点对点分布式账簿(区块链)中。
9.该方法可以包括以下步骤:将实体的公共地址与第一分类类型(classification type)的一个或多个标识符相关联,以基于第一分类类型对公共地址进行分类;可以涉及将公共地址与至少一个标识符逻辑链接或关联,该标识符属于分类类型;从通信网络接收第一分类类型的一个或多个标识符的第一标识符;确定与第一标识符相关联的第一组公共地址,其中第一组公共地址是公共地址的子集;以及基于与第一标识符相关联的第一组公共地址来识别区块链中的第一组交易。第一组交易可以是区块链上的交易的子集。该方法还可以包括以下步骤:从第一组区块链交易中提取或复制至少一部分数据(其可以被称为“交易数据”),和/或将提取的交易数据传送到不是区块链平台或网络的一部分的计算资源。
10.公共地址可以从密钥得出,或者基于密钥。密钥可以是一个确定性密钥。
11.另外或可替代地,本发明可以提供一种为链接或相关联的实体结构生成公钥的方法,其中将函数应用于确定性密钥以生成公钥,确定性密钥这样生成:通过将散列函数应用
于父实体标识符以生成父确定性密钥,或者应用于父确定性密钥和子实体标识符的总和以生成子确定性密钥。
12.密钥可以构成公钥/私钥对的一部分。可以有一个密钥或密钥对被指定为“主”或“根(root)”密钥/密钥对。一个实体内的子实体、单元或元素可以与从根密钥派生出的子密钥或子密钥对相关联。可以以确定的方式生成子密钥。可以基本上如下文提供的实例中所描述的那样生成或确定子密钥。可以基于另一(先前)密钥生成、派生或确定子密钥。子密钥的生成可以包括使用ecc技术。可以使用基于消息(m)或标识符的密码散列的确定性密钥(dk)来生成、派生或确定子密钥。消息或标识符可以是随机的、伪随机的、预定义的或可选择的。在优选实施例中,选择、安排或创建消息/标识符以对应于有意义的值,例如,账号、患者id、网络节点标识符、公司标识符等。消息或标识符可以具有与实体或子实体/元素相关的某种含义。消息可以提供与实体或元素的链接、关联或对其的引用。可以基于相关联的公共父密钥的标量(scalar)加法以及确定性密钥和生成器(g)的标量乘法来确定子密钥。消息/标识符可以存储在区块链交易(tx)内或作为元数据存储在区块链交易(tx)中。可以对消息/标识符进行重新散列运算,以便提供另外的子密钥。
13.在本发明的一些实施例中,该方法可以包括将实体的公共地址与第一分类类型的一个或多个标识符相关联以基于第一分类类型对公共地址进行分类的步骤。这样,该方法能够基于已分类的公共地址有效地确定记录在点对点分布式账簿(区块链)中的交易(tx)。结果,本公开中公开的方法对于需要从已经发布到区块链的交易中识别和/或提取数据的任何类型的系统特别有用。应用的有用实例可以包括对区块链中记录的交易进行记账和报告,但重要的是要注意本发明不限于该用途、应用或情境。
14.该方法还可以包括:从通信网络接收与第一标识符相关联的第一数据项;基于第一账户项和第一组交易生成第一数据输出。为了方便和简单起见,并且以非限制性方式,数据项可以被称为“记账项目”,数据输出可以被称为“记账报告”。
15.该方法还可以包括:从通信网络接收与第一分类类型的一个或多个标识符的第二标识符相关联的第二记账项目;确定与第二标识符相关联的第二组公共地址,其中第二组公共地址是公共地址的子集;基于与第二标识符相关联的第二组公共地址,确定点对点分布式账簿中的第二组交易,其中第二组交易是交易的子集;基于第二记账项目和第二组交易,生成第二记账报告;对第一记账报告执行第一散列运算,以生成第一记账报告的第一报告散列表示(hash representation);对第二记账报告执行第二散列运算,以生成第二记账报告的第二报告散列表示;以及组合第一报告散列表示和第二报告散列表示;对组合后的第一报告散列表示和第二报告散列表示执行第三散列运算,以生成组
合后的第一报告散列表示和第二报告散列表示的第三散列表示。
16.该方法还可以包括将第三报告散列表示存储在存储设备中。
17.该方法还可以包括:组合第一记账报告和第二记账报告;对组合后的第一记账报告和第二记账报告执行散列运算,以生成组合后的第一记账报告和第二记账报告的散列表示。
18.该方法还可以包括:将实体的公共地址与第二分类类型的一个或多个标识符相关联,以基于第二分类类型对公共地址进行分类;从通信网络接收第二分类类型的一个或多个分类标识符的第三标识符;确定与第三标识符和第一标识符相关联的第三组公共地址,其中第三组公共地址是公共地址的子集;以及基于与第三标识符和第一标识符相关联的第三组公共地址确定点对点分布式账簿中的第三组交易,其中第三组交易是交易的子集。
19.第一分类类型可以代表按实体身份对公共地址的分类。
20.第一分类类型的一个或多个标识符可以包括以下一项或多项:实体名称;名称的十六进制代码;网络节点标识符;实体的澳大利亚商业编号;和/或实体的澳大利亚公司编号。
21.第二分类类型可以按实体的账户类型来表示公共地址的分类。
22.第二分类类型的一个或多个标识符可包括以下任何一个或多个账户:信用账户;借记账户;应收账款;应收账款(是否主动修改);工资账户;和利息账户。
23.将实体的公共地址与第一分类类型的一个或多个标识符相关联可以包括:在查找表的条目中存储与实体的公共地址相关联的第一分类类型的一个或多个标识符,查找表的每个条目都包括第一分类类型的一个或多个标识符之一和公共地址之一。
24.将实体的公共地址与第一分类类型的一个或多个标识符相关联可以包括:使用脚本来将第一分类类型的一个或多个标识符与点对点分布式账簿中的公共地址相关联。
25.第一分类类型可以通过将实体链接起来的树形结构来表示公共地址的分类。
26.第一分类类型的一个或多个标识符可以包括与实体相关联的确定性密钥,其中确定性密钥是基于树形结构生成的。
27.实体可以在树形结构中包括父实体和与父实体相关联的子实体,其中父实体与多个确定性密钥中的第一确定性密钥相关联,而子实体与多个确定性密钥中的第二确定性密钥相关联,并且第一确定性密钥是基于与父实体相关联的父标识(indication)确定的,而第二确定性密钥是基于第一确定性密钥和与子实体相关联的子标识来确定的。
28.该方法还可以包括:从通信网络接收父标识;基于父标识来确定第一确定性密钥;基于第一确定性密钥和子标识来确定第二确定性密钥;确定与第二确定性密钥相关联的第四组公共地址,其中第四组公共地址是公共地址的子集;基于与第二确定性密钥相关联的第四组公共地址,来确定点对点分布式账簿中的第四组交易,其中第四组交易是交易的子集;以及基于第四组交易来生成第三记账报告。
29.确定第四组公共地址还可以包括基于第二确定性密钥来确定第四组公共地址。
30.公共地址可以包括非对称密码对的公钥,每个非对称密码对都包括公钥之一和对应于公钥之一的私钥。
31.点对点分布式账簿可以是根据加密货币协议生成的区块链。
32.公共地址可以包含加密货币协议中使用的实体的加密货币地址。
33.本发明提供了一种计算机软件程序,包括机器可读指令,当由处理器执行时,使处理器执行上述任何一种方法。
34.本发明提供了一种用于有效确定与实体的交易的计算机系统,交易记录在点对点分布式账簿中,该计算机系统包括:处理器,该处理器用于将实体的公共地址与第一分类类型的一个或多个标识符相关联,以基于第一分类类型对公共地址进行分类;从通信网络接收第一分类类型的一个或多个标识符的第一标识符;确定与第一标识符相关联的第一组公共地址,其中第一组公共地址是公共地址的子集;以及基于与第一标识符相关联的第一组公共地址,确定点对点分布式账簿中的第一组交易,其中第一组交易是交易的子集。本发明可以提供一种为实体的链接或相关联的结构生成公钥的方法。可以包括以下步骤:将函数应用于确定性密钥以生成公钥,确定性密钥如此生成:通过将散列函数应用于父实体标识符以生成父确定性密钥,或者应用于父确定性密钥和子实体标识符的总和以生成子确定性密钥。该方法可以进一步包括上述任何特征。以上关于本发明的方法的任何特征都可适用于相应的系统,反之亦然。
附图说明
35.通过非限制性实例来说明本公开的特征,并且相同的附图标记表示相同的元件,
其中:图1示出了根据本公开的包括记账服务器的加密货币系统;图2示出了根据本公开的用于有效确定点对点分布式账簿上的交易的计算机实现方法;图3(a)示出了根据本公开的将实体的公共地址与分类类型的标识符相关联的实例;图3(b)示出了根据本公开的将实体的公共地址与多种分类类型的标识符相关联的实例;图4(a)和4(b)示出了本公开的以树形结构配置的实体网络的示例性应用;以及图5示出了用于实现本公开中描述的方法的计算机系统的示例性示意图。
具体实施方式
36.图1示出了根据本公开的包括服务器111的加密货币系统100。在该实例中,服务器是记账服务器,但是在其他实施例中,服务器可以用于其他类型的目的或功能。
37.加密货币系统100为实体103、105-1至105-7提供发送和接收加密货币的平台。实体103、105-1至105-7通过通信网络101彼此连接。本公开中的加密货币系统100使用点对点分布式账簿(即区块链)109来记录在加密货币系统100上进行的交易(tx)。(区块链)109的副本存储在货币处理终端107上。尽管图1中仅示出了一个货币处理终端107,但是在不脱离本公开的范围的情况下,在加密货币系统100中可以存在多于一个的货币处理终端107。
38.为了描述的目的,本公开中的加密货币系统100描述为使用区块链的加密货币系统100。此外,尽管在记录在区块链109中的交易的记账和报告的上下文中描述了本公开中的加密货币系统100和方法,但是加密货币系统100和这些方法可以以不同的方式使用。本发明不限于用于记账目的。
39.在加密货币系统100中,可以在实体103和实体105-1到105-7之间进行一个或多个交易(tx)。例如,将一定数量的加密货币从实体103转移到实体105-1。根据加密货币协议来定义和处理交易。示例性加密货币交易(tx)如下表1所示。
表1:示例性加密货币交易
40.表1中的上述交易是根据区块链协议排列的数据结构,包括多个字段和脚本。这些字段和脚本包含货币处理终端107使用的用于实施加密货币交易(tx)的信息和命令。需要注意的是,对于不同目的,交易可以具有不同字段和脚本。
41.交易(tx)通常包含交易的简要描述,包括例如交易的散列值、加密货币协议的版本号、输入的数量、输出的数量、交易的大小等。
42.输入字段(“in”)包含对从中接收加密货币的先前交易(“prev...out”)的引用。“输出”字段(“out”)包含要发送到实体使用的公共地址或加密货币地址的加密货币的数量(“值”),以及加密货币发送到的公共地址或加密货币地址(包含在“scriptpubkey”中)。在表1所示的实例中,从先前交易收到的加密货币“0437cd7f8525ceed2324359c2d0ba26006d92d856a9c20fa0241106ee5a597c9”被发送到两个公共地址。
43.上述交易被转移到货币处理终端107,货币处理终端也可以称为加密货币协议中的“挖矿机”。货币处理终端107对过去发生的特定数量(即一区块)交易进行分组,并使用工作量证明机制来验证这些交易。
44.一旦区块被验证后,将已验证的区块与之前已验证的其他区块组合。这些区块构
成点对点分布式账簿109,在加密货币协议中称为“区块链”。区块链109的副本存储在货币处理终端107上,并且可以由公众访问。加密货币系统的区块链中记录的交易可以在例如https://blockchain.info找到。
45.就加密货币协议而言,地址是加密公钥的散列版本。公钥构成公钥对/私钥对的一部分,所以每个地址都链接到由实体(人、逻辑、虚拟或基于计算机的实体)拥有或与其相关联的私钥。
46.需要注意的是,在根据使用区块链的加密货币协议操作的加密货币系统100中,接收加密货币的实体105-1到105-7可以具有多个公共或加密货币地址以从实体103接收加密货币。另一方面,实体103可以具有多个公共或加密货币地址以从实体105-1到105-7接收加密货币。因此,难以识别与特定分类相关联的交易。例如,很难通过访问区块链来识别与特定实体相关联的交易。此外,还难以识别与特定账户类型(例如,借记账户、信用账户等)相关联的交易。这导致难以将存储在区块链上的数据用于区块外目的。例如,如果一个组织希望利用区块链平台进行货币转移,以利用区块链实施技术提供的优势,他们可能需要将区块链中的相关数据输入内部系统,例如服务器上的数据库,以便进一步存储和/或处理。由于如上解释的识别相关区块链交易(tx)的问题,该数据提取过程成为一项困难的技术任务。例如,变得难以将数据用于对已经记录在区块链109中的交易进行例如记账、通信、处理或报告。
47.在该实例中,为了简单起见,我们将讨论将本发明的实施例用于记账报告。在本公开中使用记账报告来报告已经记录在区块链中的交易。记账报告包括一个或多个记账项目。账户项目可以采用不同的形式。基本上,账户项目代表要回答的问题。例如,记账项目可以表示“已经与实体105-1进行了多少次交易?”的问题。该问题的答案是表示与实体105-1的交易次数的值。
48.要包含在记账报告中的记账项目可以在用户界面上显示,供与实体相关联的用户选择。例如,记账项目呈现在用户正在使用的计算机的计算机屏幕上。用户使用与计算机相关联的输入设备(例如,键盘、指示设备或触摸屏)选择要包括在记账报告中的一个或多个记账项目。一旦用户选择了记账项目,这些记账项目就通过通信网络101发送到记账服务器111。随后,在记账服务器111上执行如下所述的方法,以计算与所选择的一个或多个记账项目相对应的值。
49.记账服务器111还通过将所选择的一个或多个记账项目和相应的值合并到电子文件中来生成记账报告。特别地,记账报告可以是包括所选择的一个或多个记账项目和相应值的电子表格。生成的记账报告可以存储在存储设备中或发送到用户正在使用的计算机或用户预先指定的另一计算机。
50.表2中示出了可由与实体103相关联的用户选择的示例性记账项目。这些记账项目包括实体103与实体105-1进行交易(“ducks myth electronics”)相关的记账项目1至5。1.与实体105-1的交易次数2.从实体105-1收到的付款次数3.从实体105-1收到的付款总额4.向实体105-1付款的次数5.向实体105-1支付的总金额
表2:示例性记账项目
51.图2示出了根据本公开的用于有效确定与实体的交易的计算机实现方法200。交易是通过加密货币系统100进行的,并记录在区块链109中。
52.在该实例中,方法200在记账服务器111上实施,以对与实体103相关联的交易进行记账。
53.具体地,方法200将实体105-1至105-7的公共地址与第一分类类型的一个或多个标识符相关联,以基于第一分类类型对公共地址进行分类210。
54.第一分类类型以某种方式表示公共地址的分类。该实例中的第一分类类型表示按实体103、105-1至105-7的身份对公共地址的分类。因此,第一分类类型的一个或多个标识符表示实体103、105-1至105-7的特定身份。所呈现的公开中的实体的身份可以由实体的名称或从实体的名称转换的名称的十六进制代码来表示。如图1所示,例如,实体103的名称是“alice”,实体105-1的名称是“ducks myth electronics”。在其他实例中,实体的身份也可以由澳大利亚商业号码(abn)、澳大利亚公司号码(acn)或诸如“abc14114800389”之类的内部字母数字客户端标识符来表示。
55.在其他实例中,可以以不同方式对公共地址进行分类。例如,可以按实体的账户类型对公共地址进行分类。因此,第一分类类型的一个或多个标识符表示与公共地址相关联的特定账户类型,包括以下账户中的任何一种或多种:信用账户、借记账户、应收账款、应付账款、工资账户和利息账户。在不脱离本公开的范围的情况下,标识符可以表示其他类型的账户。
56.作为实例,实体103与实体105-1进行交易,实体105-1的名称是“ducks myth electronics”。方法200将实体105-1的名称与该交易相关联。
57.一旦建立关联,方法200就使用该关联来对交易进行记账。例如,与实体103相关联的用户使用与其计算机相关联的输入设备来选择与第一标识符(即,“ducks myth electronics”)相关联的记账项目1(例如,“与实体105-1的交易次数”)。所选择的记账项目1通过通信网络101被发送到记账服务器111。
58.在记账服务器111处,方法200从通信网络101接收220第一标识符(“ducks myth electronics”)。特别地,方法200从通信网络101接收与第一标识符(“ducks myth electronics”)相关联的记账项目1;
59.方法200还从在步骤210中建立的关联确定230与第一标识符(“ducks myth electronics”)相关联的第一组公共地址,其中第一组公共地址是公共地址的子集。具体地,方法200按第一标识符(“ducks myth electronics”)搜索关联,以确定与第一标识符(“ducks myth electronics”)相关联的第一组公共地址。结果,确定了“ducks myth electronics”使用的第一组公共地址。
60.方法200还基于与第一标识符(“ducks myth electronics”)相关联的第一组公共地址,来确定240点对点分布式账簿109(特别是该实例中的区块链109)中的第一组交易,其中第一组交易是区块链109中记录的交易的子集。例如,方法200从货币处理终端107下载区块链109,并在区块链109中搜索具有“ducks myth electronics”使用的第一组公共地址中的任何一个的交易。结果,确定了与“ducks myth electronics”进行的所有交易。
61.基于记账项目1(与实体105-1的交易次数)和上面确定的第一组交易,方法200生
成第一记账报告。例如,方法200通过计算第一组交易中的交易次数来确定表示与实体105-1(“ducks myth electronics”)的交易次数的对应值。此外,方法200通过创建包括记账项目1(“与实体105-1的交易次数”)及其对应值的电子表格来生成第一记账报告。
62.用户可以选择多个记账项目。在这种情况下,方法200重复步骤210至240,并生成包括这些记账项目和相应值的记账报告。示例性记账报告如下表3所示:记账项目值与“ducks myth electronics”的交易次数2向“ducks myth electronics”支付的总金额$15,000与“ivision pty ltd”的交易次数1向“ivision pty ltd”支付的总金额$1,000表3:示例性记账报告
63.从上面可以看出,在不脱离本公开的范围的情况下,基于不同的记账项目,方法200可以为记账目的生成不同的记账报告,包括资产负债表、损益表、库存报告、发货和收货报告、自定义报告、记账和支付报告,甚至用于记账目的以外的目的的其他报告。在表4和表5中分别示出了示例性资产负债表和示例性损益表。资产值负债值库存$50,000应付账款$30,000现金$40,000
ꢀꢀ
总资产$90,000负债总额$30,000表4:示例性资产负债表表4:示例性资产负债表表5:示例性损益表
64.图3(a)示出了根据本公开的将实体的公共地址与分类类型的标识符相关联的实例。
65.在图3(a)所示的实例中,查找表310用于将实体的公共地址与分类类型的标识符相关联。查找表310的每个条目都包括两个字段:“公共地址”字段311和“客户端id”字段313。条目的“公共地址”字段311的值表示在交易中使用的特定公共地址,而条目的“客户端id”字段313的值表示与公共地址相关联的实体的特定身份。需要注意的是,在另一实例中,“客户端id”字段313可以用不同的分类类型(例如,账户类型)替换,以按与公共地址相关联
的账户类型对公共地址进行分类。
66.在与使用未存储在查找表310中的公共地址的实体发生与实体103有关的交易的情况下,方法200将一个条目添加到查找表310中。例如,从实体103向未存储在查找表310中的实体105-1(“ducks myth electronics”)使用的公共地址进行支付,方法200将一个条目添加到查找表310中,并且将实体105-1的标识符(“ducks myth electronics”)存储在查找表310的条目中,该条目与实体105-1(“ducks myth electronics”)使用的公共地址相关联,如查找表310的第一条目和第三条目所示。结果,查找表310的每个条目都通过将某一分类类型的标识符之一和公共地址之一包括在条目中而将其相关联。
67.在这种情况下,如果用户选择了与实体105-1(“ducks myth electronics”)相关联的记账项目,并且通过通信网络101将该记账项目发送到记账服务器111,则方法200在查找表310中搜索在“客户端id”字段313中具有“ducks myth electronics”的条目,以确定“ducks myth electronics”(即,实体105-1)使用的第一组公共地址。在该实例中,在该实例中确定的第一组公共地址包括查找表310的第一条目和第三条目中包含的公共地址。
68.此外,方法200还基于与实体105-1(“ducks myth electronics”)相关联的第一组公共地址,来确定点对点分布式分账簿109(特别是区块链109)中的第一组交易,如上文参考步骤240所描述的。因此,确定了与“ducks myth electronics”进行的第一组交易。如上所述,方法200还可以基于第一组交易来生成第一记账报告。第一记账报告从记账服务器111发送到用户正在使用的计算机或用户预先指定的计算机,并显示在计算机的屏幕上供用户或第三方查看。
69.在另一实例中,用户还选择与第一分类类型的第二标识符(“ivision pty ltd”,即实体105-3)相关联的第二记账项目(例如,与实体105-3的交易次数)。用户通过通信网络101将第二记账项目发送到记账服务器111。
70.方法200从通信网络101接收与第一分类类型的第二标识符(“ivision pty ltd”)相关联的第二记账项目。方法200还确定与第二标识符(“ivision pty ltd”)相关联的第二组公共地址,其中第二组公共地址是公共地址的子集。特别地,方法200在查找表310中搜索在“客户端id”字段313中具有“ivision pty ltd”的条目,以确定“ivision pty ltd”(即,实体105-3)使用的第二组公共地址。在该实例中确定的第二组公共地址包括查找表310的第二条目中包含的公共地址。
71.然后,方法200基于与第二标识符(“ivision pty ltd”)相关联的第二组公共地址,来确定区块链109中的第二组交易,其中第二组交易是区块链109中的交易的子集。
72.如上所述,方法200还基于第二记账项目和第二组交易来生成第二记账报告。
73.方法200还对如上生成的第一记账报告执行第一散列运算以生成第一记账报告的第一报告散列表示,并对第二记账报告执行第二散列运算以生成第二记账报告的第二报告散列表示。方法200组合第一报告散列表示和第二报告散列表示。方法还对组合后的第一报告散列表示和第二报告散列表示执行第三散列运算,以生成组合后的第一报告散列表示和第二报告散列表示的第三散列表示。如此,第一报告散列表示和第二报告散列表示被合并为单个散列表示。
74.在另一实例中,方法200组合第一记账报告和第二记账报告,并对组合后的第一记账报告和第二记账报告执行散列运算,以生成组合后的第一记账报告和第二记账报告的散
列表示。
75.查找表310可以包括附加字段(下文中称为第二分类类型),以按两种分类类型对实体的公共地址进行分类。如此,与实体相关联的公共地址根据实体的身份和与公共地址相关联的账户类型进行分类。此外,在不脱离本公开的范围的情况下,可以按更多分类类型对公共地址进行分类。
76.图3(b)示出了根据本公开的将实体的公共地址与多于一种分类类型的标识符相关联的实例。
77.在图3(b)所示的实例中,查找表320的每个条目除了“公共地址”字段311和“客户id”字段313(即,如上所述的第一分类类型)之外,还包括另外的“账户类型”字段315(即,第二分类类型),以便基于与公共地址相关联的账户类型来进一步对公共地址进行分类。账户类型的标识符表示特定账户类型,包括信用账户、借记账户、应收账款、应付账款、工资账户和利息账户中的一种或多种。在不脱离本公开的情况下,标识符可以表示其他类型的账户。
78.在这种情况下,如果从实体103向实体105-1(“ducks myth electronics”)使用的公共地址进行支付,则方法200除了将实体105-1(“ducks myth electronics”)的身份标识符存储在与实体105-1(“ducks myth electronics”)使用的公共地址相关联的查找表320的新条目中(如上文参考图3(a)所述)之外,方法200还将公共地址跟与该公共地址相关联的特定账户类型相关联,以按账户类型对公共地址进行分类。如查找表320的第一条目所示,第一条目中的公共地址还与“借记账户”相关联,第三条目中的公共地址还与“信用账户”相关联。
79.用户选择与第一分类类型(即,实体的身份)的第一标识符(“ducks myth electronics”,即实体105-1)和第二分类类型(即与公共地址相关联的账户类型)的第三标识符(信用账户)相关联的第三记账项目(例如,在信用账户上与实体105-1的交易次数)。用户通过通信网络101将第三记账项目发送到记账服务器111。
80.方法200从通信网络101接收与第一分类类型的第一标识符(“ducks myth electronics”)和第二分类类型的第三标识符(“信用账户”)相关联的第三记账项目。方法200还确定与第三标识符(“信用账户”)和第一标识符(“ducks myth electronics”)相关联的第三组公共地址,其中第三组公共地址是公共地址的子集。在图3(b)所示的实例中,方法200在查找表320中搜索在“客户id”字段313中具有“ducks myth electronics”和在“账户类型”字段315中具有“信用账户”的条目,以确定“ducks myth electronics”(即实体105-1)在信用账户上使用的第三组公共地址。如图3(b)所示,在该实例中确定的第三组公共地址仅包括查找表320的第三条目中包含的公共地址。
81.方法200还基于第三组公共地址来确定点对点分布式账簿109(特别是区块链109)中的第三组交易,其中第三组交易是交易的子集。如上所述,方法200还可以基于第三组交易来生成进一步的记账报告,并将进一步的记账报告存储在存储设备中。
82.需要注意的是,查找表310或320中示出的条目可以表示实体103进行的交易的一部分,而在其他实例中,查找表310或320可以包括更多条目。
83.下面描述根据本公开的将实体的公共地址与分类类型的标识符相关联的另一实例。
84.在该实例中,如果从实体103向实体105-1(“ducks myth electronics”)使用的公
共地址进行支付,则方法200将实体105-1使用的公共地址与交易本身中的实体105-1的身份标识符(“ducks myth electronics”)相关联。例如,方法200使用交易中的脚本来将实体105-1使用的公共地址与区块链109中的实体105-1的身份标识符(“ducks myth electronics”)相关联。
85.在这种情况下,如果用户选择了与实体105-1(“ducks myth electronics”)相关联的记账项目,则该记账项目通过通信网络101发送到记账服务器111。方法200在区块链109中搜索与“ducks myth electronics”使用的公共地址匹配的交易,以确定在区块链109中与“ducks myth electronics”进行的交易。方法200还可以基于上面确定的交易来生成记账报告。方法200还可以将记账报告存储在存储设备中。
86.图4(a)和4(b)示出了本公开向以树形结构配置的实体网络的示例性应用。
87.在图4(a)所示的示例性应用中,实体网络400包括以树形结构配置的多个实体401至413。虽然图4(a)中示出了实体网络400以表示传统上以树形结构构造的零售商网络,但是在不脱离本公开的范围的情况下,实体网络400可以表示其他实体网络。
88.为了对与图4(a)所示的树形结构中配置的结账终端407至413相关联的公共地址进行分类,在该示例中引入了称为“确定性密钥”的分类类型,在图4(b)的查找表420中示出了“确定性密钥”字段413。因此,该分类类型的标识符表示与由树形结构链接的实体401至413中的每一个相关联的特定确定性密钥。
89.如图4(a)所示,零售商网络400中的商店和结账终端401至413以树形结构配置。具体地,实体或商店401位于树的顶部,并具有两个子实体或商店403和405。子实体或商店403也是子实体407和409的父实体,子实体是安装在商店403中或与商店403相关联的结账终端。类似地,子实体或商店405也是子实体411和413的父实体,子实体是安装在商店405中或与商店405相关联的结账终端。商店401至405中的每一个都具有相关联的商家标识(mid)(例如,商店的名称),而结账终端407至413中的每一个都具有相关联的终端标识(tid)(例如,分配给结账终端的制造商标识号)。使用与结账终端407至413相关联的公共地址,在结账终端407至413处进行交易。
90.以确定性密钥被确定性地映射到实体401到413的方式来确定与实体401到413相关联的确定性密钥。具体地,与根实体或商店401相关联的确定性密钥基于与根实体或商店401相关联的mid。例如,可以通过基于与根实体401相关联的mid来执行一组加密函数,来确定与根实体或商店401相关联的确定性密钥。下面示出了使用基于与根实体401相关联的mid(“mid401”)的加密散列算法sha-256来生成与根实体401相关联的生成器值(“gv401”)的实例。gv401 = sha-256(mid401) (公式1)
91.对于子实体或商店403和405来说,与子实体或商店403和405中的每一个相关联的确定性密钥(例如,商店403的“gv403”或商店405的“gv405”)是基于与其父实体401(在这种情况下,根实体401)和其自己的mid(例如,商店403的“mid403”或商店405的“mid 405”)相关联的确定性密钥(即,“gv401”)来确定的。例如,gv403 = sha-256(gv 401+mid403) (公式2)gv405 = sha-256(gv401+mid405) (公式3)
92.对于结账终端407和409,与每个结账终端407和409相关联的确定性密钥(例如,结
账终端407的“gv407”或结账终端409的“gv409”)是基于与其父实体403和其自己的tid(例如,结账终端407的“tid407”或结账终端409的“tid409”)相关联的确定性密钥(即,“gv403”)来确定的。类似地,对于结账终端411和413,与每个结账终端411和413相关联的确定性密钥(例如,结账终端411的“gv411”或结账终端413的“gv 413”)是基于与其父实体405和其自己的tid(例如,结账终端411的“tid411”或结账终端413的“tid413”)相关联的确定性密钥(即,“gv405”)来确定的。例如,gv407 = sha-256(gv403+tid407) (公式4)gv409 = sha-256(gv403+tid409) (公式5)gv411 = sha-256(gv405+tid411) (公式6)gv413 = sha-256(gv405+tid413) (公式7)
93.此外,这些确定性密钥用于得出商店401至405和结账终端407至413使用的相应公共地址。例如,公共地址=f(确定性密钥)(公式8)其中f()是基于确定性密钥生成公共地址的函数。
94.发生与结账终端(例如,结账终端407)有关的交易时,方法200可以向查找表420添加条目。例如,从客户向结账终端407使用的公共地址进行支付,该公共地址是从与结账终端407相关联的确定性密钥得出的。如果结账终端407使用的公共地址未存储在查找表420中,则方法200将新条目添加到查找表420中,并将与结账终端407相关联的确定性密钥(即,“gv407”)存储在查找表420的新条目中,该条目与结账终端407使用的公共地址相关联,如查找表420的第一条目和第三条目所示。在其他实例中,与结账终端407相关联的确定性密钥已经在交易发生之前存储在查找表420的条目中。在这种情况下,方法200将结账终端407使用的公共地址存储在其中存储了确定性密钥的条目中,以将公共地址与确定性密钥相关联。结果,查找表420的每个条目都包括与结账终端407至413之一相关联的确定性密钥以及结账终端407至413之一使用的公共地址之一。
95.在一天营业结束时,商店403的商店经理可能想要商店403的记账报告。商店经理通过例如输入与商店403相关联的mid来选择与商店403相关联的记账项目(例如,“与商店403的交易次数”)。在该实例中,通过通信网络101将与商店403相关联的记账项目和mid发送到记账服务器111。
96.方法200从通信网络101接收与商店403相关联的mid和记账项目。如果商店403是根商店,则方法200基于与商店403相关联的mid,来确定与商店403相关联的第一确定性密钥。如果商店403不是根商店,则可以基于与父商店401相关联的确定性密钥和与商店403相关联的mid来确定第一确定性密钥。方法200还基于第一确定性密钥和结账终端407和409的相应tid,来确定与商店403的子实体或结账终端407和409相关联的确定性密钥(例如,“gv407”、“gv409”)。
97.通过在查找表420中搜索具有与“确定性密钥”字段413中的结账终端407和409相关联的确定性密钥“gv407”和“gv409”中的任何一个的条目,方法200确定与确定性密钥“gv407”和“gv409”相关联的第四组公共地址,其中第四组公共地址是公共地址的子集。如图4(b)所示,上面确定的第四组公共地址包括查找表420的前三个条目的“公共地址”字段411中包含的公共地址。
98.方法200还基于如上所述的第四组公共地址来确定区块链109中的第四组交易,其中第四组交易是交易的子集。方法200还基于如上所述的第四组交易来生成第三记账报告。方法200还可以将第三记账报告存储在存储设备中。
99.由于商店401至405和结账终端407至413使用的公共地址是从它们各自的确定性密钥得出的,因此方法200可以通过应用与结账终端407至413相关联的确定性密钥来确定第四组公共地址(公式8),而不搜索查找表420。
100.需要注意的是,在本公开中,公共地址包括非对称密码对的公钥,每个非对称密码对都包括公钥之一和对应于公钥之一的私钥。可以基于椭圆曲线密码(ecc)算法来生成每个非对称密码对。
101.此外,在加密货币系统中,公共地址是加密货币协议中使用的实体的加密货币地址。
102.图5示出了用于实现所描述的方法的计算机系统500的示例性示意图。计算机系统500可以是记账服务器111的实例。
103.计算机系统500包括处理器510、存储设备520、总线530和通信接口540。处理器510、存储设备520和通信接口540经由总线530连接以彼此进行通信。如图1所示,计算机系统500的通信接口540用于将计算机系统500连接到通信网络101。通信接口540可以是因特网接口、wlan接口、蜂窝电话网络接口、公共交换电话网(pstn)接口,以及光通信网络接口,或任何其他合适的通信接口。
104.处理器510执行存储在存储器520中的机器可执行指令,以实现上面参考图1至4(b)所描述的示例性方法。机器可执行指令包括在计算机软件程序中。在该实例中,计算机软件程序存在于存储设备520中。在其他实例中,计算机软件程序存储在不是计算机系统500的一部分的计算机可读介质中,并从该计算机可读介质读入存储设备520。具体地,处理器510用于:将实体的公共地址与第一分类类型的一个或多个标识符相关联,以基于第一分类类型对公共地址进行分类;从通信网络接收第一分类类型的一个或多个标识符的第一标识符;确定与第一标识符相关联的第一组公共地址,其中第一组公共地址是公共地址的子集;以及基于与第一标识符相关联的第一组公共地址,确定点对点分布式账簿中的第一组交易,其中第一组交易是交易的子集。
105.可以理解的是,本公开的示例性方法可以使用各种技术来实现。例如,这里描述的方法可以通过存在于合适的计算机可读介质上的一系列机器可执行指令来实现。合适的计算机可读介质可以包括易失性(例如ram)和/或非易失性(例如rom、盘)存储器、载波和传输介质。示例性载波可以采取沿着本地网络或可公开访问网络(例如因特网)传送数字数据流的电、电磁或光信号的形式。
106.也可以理解的是,除非明确说明,否则从以下讨论中显而易见的是,应当理解,在整个说明书中,利用诸如“确定”、“获得”或“接收”或“发送”或“生成”等术语的讨论指的是计算机系统或类似的电子计算设备的动作和过程,其将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据,处理和转换为类似地表示为计算机系统的存储器或寄存器或
其他这样的信息存储、传输或显示设备内的物理量的其他数据。
技术特征:
1.一种计算机实现的方法,包括:将多个实体的公共地址与第一分类类型的一个或多个标识符相关联,以通过将所述公共地址与至少一个标识符逻辑地链接或关联来基于所述第一分类类型对所述公共地址进行分类;从通信网络接收所述第一分类类型的所述一个或多个标识符的第一标识符;确定与所述第一标识符相关联的第一组公共地址,其中所述第一组公共地址是所述公共地址的子集;以及基于与所述第一标识符相关联的所述第一组公共地址来识别区块链中的第一组交易。2.根据权利要求1所述的方法,其中所述方法还包括以下步骤:从所述第一组交易中提取或复制至少一部分数据,和/或将提取的交易数据传送到不是区块链平台或网络的一部分的计算资源。3.根据权利要求1或2所述的方法,其中所述公共地址从密钥得出,或者基于密钥。4.根据权利要求3所述的方法,其中所述密钥是确定性密钥。5.根据权利要求1所述的方法,还包括:从所述通信网络接收与所述第一标识符相关联的第一数据项;基于所述第一数据项和所述第一组交易来生成第一数据输出。6.根据权利要求5所述的方法,还包括:从通信网络接收与所述第一分类类型的所述一个或多个标识符的第二标识符相关联的第二数据项;确定与所述第二标识符相关联的第二组公共地址,其中所述第二组公共地址是所述公共地址的子集;基于与所述第二标识符相关联的所述第二组公共地址,确定所述区块链中的第二组交易,其中所述第二组交易是所述交易的子集;基于所述第二数据项和所述第二组交易来生成第二数据输出;对所述第一数据输出执行第一散列运算以生成所述第一数据输出的第一输出散列表示;对所述第二数据输出执行第二散列运算以生成所述第二数据输出的第二输出散列表示;组合所述第一输出散列表示和所述第二输出散列表示;对组合后的第一输出散列表示和第二输出散列表示执行第三散列运算,以生成组合后的第一输出散列表示和第二输出散列表示的第三散列表示。7.根据权利要求6所述的方法,还包括:组合所述第一数据输出和所述第二数据输出;对组合后的第一数据输出和第二数据输出执行散列运算,以生成组合后的第一数据输出和第二数据输出的散列表示。8.根据前述权利要求中任一项所述的方法,还包括:将所述实体的所述公共地址与第二分类类型的一个或多个标识符相关联,以基于所述第二分类类型对所述公共地址进行分类;从所述通信网络接收所述第二分类类型的所述一个或多个分类标识符的第三标识符;
确定与所述第三标识符和所述第一标识符相关联的第三组公共地址,其中所述第三组公共地址是所述公共地址的子集;以及基于与所述第三标识符和所述第一标识符相关联的所述第三组公共地址,来确定所述区块链中的第三组交易,其中所述第三组交易是所述交易的子集。9.根据前述权利要求中任一项所述的方法,其中,所述第一分类类型表示按所述实体的身份对所述公共地址的分类。10.根据前述权利要求中任一项所述的方法,其中,所述第一分类类型的所述一个或多个标识符包括以下中的一个或多个:所述实体的名称;所述名称的十六进制代码;所述实体的澳大利亚商业编号;网络地址;或所述实体的澳大利亚公司编号。11.根据权利要求8所述的方法,其中所述第二分类类型表示按所述实体的账户类型对所述公共地址的分类。12.根据前述权利要求中任一项所述的方法,其中将所述实体的所述公共地址与所述第一分类类型的所述一个或多个标识符相关联包括:在查找表的条目中将所述第一分类类型的所述一个或多个标识符与所述实体的所述公共地址相关联地存储,所述查找表的每个条目包括所述第一分类类型的所述一个或多个标识符之一和所述公共地址之一。13.根据权利要求1至10中任一项所述的方法,其中将所述实体的所述公共地址与所述第一分类类型的所述一个或多个标识符相关联包括:使用脚本来将所述第一分类类型的所述一个或多个标识符与所述区块链中的所述公共地址相关联。14.根据权利要求1所述的方法,其中所述第一分类类型表示按将所述实体链接起来的树形结构对所述公共地址的分类。15.根据权利要求14所述的方法,其中所述第一分类类型的所述一个或多个标识符包括与所述实体相关联的确定性密钥,其中所述确定性密钥是基于所述树形结构生成的。16.根据权利要求15所述的方法,其中所述实体包括所述树形结构中的父实体和与所述父实体相关联的子实体,其中所述父实体与所述确定性密钥中的第一确定性密钥相关联,所述子实体与所述确定性密钥中的第二确定性密钥相关联,并且所述第一确定性密钥是基于与所述父实体相关联的父标识确定的,所述第二确定性密钥是基于所述第一确定性密钥和与所述子实体相关联的子标识来确定的。17.根据权利要求16所述的方法,进一步包括:从所述通信网络接收所述父标识;基于所述父标识来确定所述第一确定性密钥;基于所述第一确定性密钥和所述子标识来确定所述第二确定性密钥;确定与所述第二确定性密钥相关联的第四组公共地址,其中所述第四组公共地址是所
述公共地址的子集;基于与所述第二确定性密钥相关联的所述第四组公共地址,来确定所述区块链中的第四组交易,其中所述第四组交易是所述交易的子集;以及基于所述第四组交易来生成第三数据输出。18.根据前述权利要求中任一项所述的方法,其中所述公共地址包括非对称密码对的公钥,所述非对称密码对中的每一个包括所述公钥之一和与所述公钥之一相对应的私钥。19.根据前述权利要求中任一项所述的方法,其中所述区块链是根据加密货币协议生成的。20.根据权利要求19所述的方法,其特征在于,所述公共地址包括所述加密货币协议中使用的所述实体的加密货币地址。21.一种计算机系统,包括至少一个处理器,所述处理器用于:将多个实体的公共地址与第一分类类型的一个或多个标识符相关联,以通过将所述公共地址与至少一个标识符逻辑地链接或关联来基于所述第一分类类型对所述公共地址进行分类;从通信网络接收所述第一分类类型的所述一个或多个标识符的第一标识符;确定与所述第一标识符相关联的第一组公共地址,其中所述第一组公共地址是所述公共地址的子集;以及基于与所述第一标识符相关联的所述第一组公共地址来确定区块链中的第一组交易。
技术总结
本发明涉及区块链技术,提供了一种用于对与实体的交易进行记账的计算机实现方法,该交易被记录在点对点分布式账簿(区块链)中,该方法包括:将实体的公共地址与第一分类类型的一个或多个标识符相关联,以基于第一分类类型对公共地址进行分类;从通信网络接收第一分类类型的一个或多个标识符的第一标识符;确定与第一标识符相关联的第一组公共地址,其中第一组公共地址是公共地址的子集;以及基于与第一标识符相关联的第一组公共地址,确定点对点分布式账簿中的第一组交易,其中第一组交易是交易的子集。的子集。的子集。
技术研发人员:克雷格
受保护的技术使用者:区块链控股有限公司
技术研发日:2017.02.21
技术公布日:2023/10/8
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种铜杆加工用挤压装置的制作方法 下一篇:一种填充墙连接防开裂结构