首页 / 专利库 / 银行与财务事项 / 比特币地址 / 计算机实现的系统和方法

计算机实现的系统和方法

阅读:841发布:2020-05-16

专利汇可以提供计算机实现的系统和方法专利检索,专利查询,专利分析的服务。并且本 发明 提供了用于确保和控制关于将数字资产或实体从一个资源转移到另一资源的 区 块 链 交易的安全性的加密技术。该区块链可以是 比特币 区块链或替代的协议。本发明的 实施例 提供了一种计算机实现的方法,用于改进具有多个参与 节点 的价值混合 区块链交易 的安全性、匿名性和/或控制,每一节点具有该交易要分配价值的相应输出地址。该方法包括:第一序列中的每一参与节点使用该节点的公钥加密其输出地址,将加密的输出地址添加到该交易的输出地址集,且如果该集合中存在一个以上加密的输出地址,那么混洗该集合中加密的输出地址的顺序。第二序列中的每一参与节点识别该集合中的其加密输出地址,并使用其未加密输出地址替换其加密输出地址。结果是混洗的输出地址集无法链接到特定的输入。,下面是计算机实现的系统和方法专利的具体信息内容。

1.一种计算机实现的抗故障多节点通信的方法,所述通信具有多个参与节点,每一节点具有其自身的公钥和私钥,每一节点具有所述通信要指派代币的相应输出地址,所述方法包括:
使用第一公钥来加密第一输出地址,所述第一公钥与所述参与节点的一者相关联,所述第一输出地址与所述参与节点中的一者相关联;
将所述加密的第一输出地址添加到加密输出地址集;
混洗所述集合中的所述加密输出地址的顺序;
将所述集合发送到下一个节点;
从所述参与节点中的另一者接收另一混洗地址集,所述另一混洗地址集包括所述加密的第一输出地址;
使用所述第一输出地址来替换所述另一混洗地址集中的所述加密第一输出地址;以及将含有所述第一输出地址的所述另一混洗地址集转发到后续的节点。
2.根据权利要求1所述的方法,其中使用所述第一输出地址替换所述另一混洗地址集中的所述加密第一输出地址包括:
使用发起者的公钥加密所述第一输出地址以获得最终加密的第一输出地址,所述第二公钥与发起者节点相关联;以及
使用所述最终加密第一输出地址来替换所述加密第一输出地址。
3.根据权利要求1或权利要求2所述的方法,其中添加所述加密第一输出地址进一步包括:先从先前参与节点接收加密集合并解密所述加密集合以获得所述加密输出地址集。
4.根据权利要求3所述的方法,其中发送所述集合到下一个节点包括:使用与所述下一个节点相关联的第二公钥来加密所述集合。
5.根据权利要求4所述的方法,其中使用所述第二公钥加密所述集合不包括使用与其他参与节点相关联的其他公钥加密所述集合。
6.根据权利要求1至5中的任一项所述的方法,其中发送所述集合到下一个节点包含:
确定所述参与节点中的所述一者不是所述参与节点的第一序列中的最后节点,以及发送所述集合到所述第一序列中的所述下一个节点。
7.根据权利要求1至5中的任一项所述的方法,其中发送所述集合到下一个节点包含:
确定所述参与节点中的所述一者是所述参与节点的第一序列中的最后节点,以及发送所述集合到所述第一序列中的第一节点,
其中,所述第一节点是所述通信的发起者。
8.根据权利要求1至7中的任一项所述的方法,其中转发所述另一混洗地址集到所述后续节点包含:
确定所述参与节点中的所述一者不是所述参与节点的第二序列中的最终节点,以及发送所述集合到所述第二序列中的所述后续节点。
9.根据权利要求1至7中的任一项所述的方法,其中转发所述另一混洗地址集到所述后续节点包含:
确定所述参与节点中的所述一者是所述参与节点的第二序列中的最终节点,以及发送所述集合到所述第二序列中的第一节点,
其中,所述第一节点是所述通信的发起者,所述另一混洗集合含有所述通信的所有输出地址。
10.根据权利要求1至9中的任一项所述的方法,其中混洗所述顺序包括随机化所述集合中的所述加密输出地址的所述顺序。
11.根据权利要求1至10中的任一项所述的方法,进一步包括先发送参与所述通信的请求,所述请求包括所述第一公钥。
12.根据权利要求1至11中的任一项所述的方法,其中,所述通信包括链交易,所述相应输出地址中的每一者包含其相关联的参与节点所拥有的未花费的交易输出地址。
13.根据权利要求1至12中的任一项所述的方法,其中,所述通信被构造成从与每一参与节点相关联的相应输入地址接收等量的代币,并将所述相同等量的代币分配给所述相应输出地址中的每一者。
14.根据权利要求1至13中的任一项所述的方法,进一步包括:通过签署输入地址来批准所述通信的后续操作,所述输入地址包括在所述通信中并且与所述参与节点中的所述一者相关联。
15.一种可用于在多个参与节点中进行抗故障多节点通信的计算装置,所述计算装置是所述参与节点中的一者,所述计算机装置包括:
处理器;
存储器
网络接口,用以提供网络连接性;
含有计算机可执行指令的应用,所述计算机可执行指令在由所述处理器执行时,致使所述处理器执行如权利要求1至14中的任一项所述的方法。
16.一种存储处理器可执行指令的非暂时性处理器可读介质,可用于在多个参与节点中的抗故障多节点通信,其中所述处理器可执行指令在由所述参与节点中的一者中的处理器执行时,致使所述处理器执行如权利要求1至14中的任一项所述的方法。

说明书全文

计算机实现的系统和方法

技术领域

[0001] 本发明大体上涉及可用于确保和控制计算机实现的程序的安全性的加密技术。这些加密技术可以给链交易提供增强的安全性和控制,区块链交易将数字资产或实体从一种资源转移到另一种资源。更具体地,本发明可以有利地用于提供控制方法、系统和装置,以产生和进行将输入与输出解耦的混合交易。

背景技术

[0002] 在本文件中,我们使用术语“区块链”来包括所有形式的基于计算机的电子分布式分类帐技术(distributed ledger technologies,DLT)。这些技术包括但不限于基于共识的区块链和交易链技术、许可和未经许可的分类账、共享分类账、侧链及其变体。区块链技术最广为人知的应用是比特币(Bitcoin)分类帐,尽管其他区块链实现方式也已被提出和开发。虽然出于方便和说明的目的,在此可以引用比特币,但是应注意,本发明不限于与比特币区块链一起使用,且替代的区块链实现方式和协议落入本发明的范围内。
[0003] 区块链是基于共识的电子分类账,它被实现为基于计算机的去中心化的分布式系统,由区块构成,而区块又由交易构成。每一交易是一种数据结构,对区块链系统中的参与者之间的数字资产控制的转移进行编码,并包括至少一个输入和至少一个输出。每一区块都含有前一个区块的散列,因此这些区块链接在一起以创建自区块链成立以来写入其中的所有交易的永久、不可更改的记录。交易含有被称为脚本的嵌入到它们的输入和输出中的小程序,这些程序指定了如何以及由谁来访问交易的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言编写的。
[0004] 为了将交易写入区块链,必须对其进行“验证”。网络节点(矿工)执行工作以确保每一交易有效,且无效交易被网络拒绝。安装在节点上的软件客户端通过执行定和解锁脚本来对未花费的交易(UTXO)执行此验证工作。如果锁定和解锁脚本的执行评估为真,那么该交易有效,并将该交易写入区块链。因此,为了将交易写入区块链,它必须:i)由接收交易的第一节点验证——如果交易被验证,那么该节点将其中继给网络中的其他节点;和ii)添加到由矿工建立的新区块;和iii)挖掘,即添加到过去交易的公共分类账。
[0005] 尽管区块链技术以使用加密货币实现方式而闻名,但数字企业家已经开始探索使用比特币所基于的加密安全系统以及可以存储在区块链上的数据两者来实现新系统。如果区块链可以用于不限于加密货币领域的自动化任务和过程,那将是非常有利的。此类解决方案将能够利用区块链的益处(例如永久的、防篡改的事件记录、分布式处理等),同时在其应用中更加通用。
[0006] 与区块链相关的另一个兴趣领域是使用“代币”(或“彩币”)来表示并经由区块链来转移真实世界的实体。潜在的敏感或秘密项目可以由没有可辨别的意义或价值的代币来表示。因此,代币充当允许从区块链引用真实世界项目的识别符。如本文所使用的术语“代币”应理解为表示对有形或无形资产的控制或所有权的最广泛含义。例如,在一些情况下,代币可以表示未来计算资源的控制或所有权的指派。
[0007] 诸如比特币的区块链技术的感知优势之一是匿名性。也就是说,比特币分类账不含有任何关于参与交易者的个人信息;它只含有公共地址信息。然而,通过使用外部数据和分析,有可能成功地将特定交易和地址与个人相关联。
[0008] 为了改进比特币货币的匿名性和可替代性,可以使用硬币混合交易。硬币混合交易(如CoinJoin)汇集一组输入并将价值转移到一组输出。然而,CoinJoin仍然涉及了解另一参与者的输入输出关系的至少一个参与者,这使得它只是部分匿名的。
[0009] 创建名为CoinShuffle的交易,以改进CoinJoin交易的匿名性。在CoinShuffle交易中,节点使用与该交易相关联的序列中所有后续参与者的公钥来加密其输出地址,且输出地址在被传递到下一节点之前被混洗。最终结果是,没有一个参与者知道交易中任何其他参与者的输入输出链接。但是,CoinShuffle交易的缺点是所有参与者及其参与序列必须被预先知道并严格遵守。如果参与者中途退出交易,这会导致潜在的失败,并阻止任何新节点加入尚未完成的交易。如果节点中的一者在序列需要该节点的动作时离线,也会导致显著的延迟。
[0010] 因此,期望提供改进的方法和装置,其能够实现多节点通信,诸如区块链混合交易,同时在添加新节点和/或修改节点的参与序列以实现更大的灵活性和容错性方面提供更大的灵活性。
[0011] 现已设计出此类改进的解决方案。

发明内容

[0012] 因此,根据本发明,提供了如随附权利要求中定义的方法、系统和装置。
[0013] 本申请公开了用于抗故障多节点通信的方法和装置。可以提供用于提供改进的加密技术和解决方案的方法、系统和装置,用于控制经由区块链的价值或数字资产的转移。通过提供改进的抗故障多节点通信,本发明可以实现价值或硬币混合区块链交易中的增强的安全性和/或匿名性。另外或替代地,当在节点之间构建交易时,该方法和装置可以在从交易中添加或移除参与者方面提供更大的灵活性。因此,在至少一个实现方式中,本发明可以提供关于将数字资产的所有权从一方转移到另一方的区块链交易(Txs)的增强控制解决方案。
[0014] 本申请可以提供一种计算机实现的抗故障多节点通信的方法,该通信具有多个参与节点,每一节点具有其自身的公钥和私钥,每一节点具有该通信要指派代币的相应输出地址。在一个实例中,本申请可以包含计算机实现的方法,以能够参与区块链交易,该交易具有多个参与节点。每一节点可以具有其自身的(加密)公钥和私钥。每一节点可以具有该交易要分配或转移价值的相应输出地址。该方法可以在参与节点中的一者处实现。该方法可以包括:使用与参与节点中的所述一者相关联的第一公钥加密与参与节点中的所述一者相关联的第一输出地址;将加密的第一输出地址添加到加密的输出地址集;混洗该集合中的加密输出地址的顺序;并将该集合发送到下一个节点。该方法可以进一步包括:从参与节点中的另一者接收另一混洗地址集,该另一混洗地址集包括加密第一输出地址;使用第一输出地址替换该另一混洗地址集中的加密第一输出地址;以及将含有第一输出地址的另一混洗地址集转发到后续节点。
[0015] 在一些实现方式中,使用第一输出地址替换另一混洗地址集中的加密第一输出地址包括:(a)使用发起者的公钥加密第一输出地址以获得最终加密的第一输出地址,且第二公钥与发起者节点相关联;以及(b)使用该最终加密的第一输出地址替换加密的第一输出地址。在一些其他实现方式中,替换包括使用未加密第一输出地址替换加密第一输出地址。
[0016] 在一些实现方式中,本申请描述通过签署包括在区块链交易中并与参与节点中的所述一者相关联的输入地址来批准该区块链交易的后续操作。
[0017] 在一些实现方式中,本申请提供,添加加密的第一输出地址进一步涉及首先从先前参与节点接收加密集合并解密该加密集合以获得该加密输出地址集。在一些实现方式中,发送该集合到下一个节点包括使用与下一个节点相关联的第二公钥来加密该集合。使用第二公钥加密该集合可以不包括使用与其他参与节点相关联的其他公钥加密该集合。
[0018] 在一些实现方式中,本申请提供,发送该集合到下一个节点包括确定参与节点中的所述一者不是参与节点的第一序列中的最后节点,且发送该集合到第一序列中的下一个节点。
[0019] 在一些实现方式中,本申请提供,发送该集合到下一个节点包括确定参与节点中的所述一者是参与节点的第一序列中的最后节点,且发送该集合到第一序列中的第一节点,且其中该第一节点是区块链交易的发起者。
[0020] 在一些实现方式中,本申请提供,转发另一混洗地址集到后续节点包括确定参与节点中的所述一者不是参与节点的第二序列中的最终节点,且发送该集合到第二序列中的后续节点。
[0021] 在一些实现方式中,本申请提供,转发另一混洗地址集到后续节点包含包括确定参与节点中的所述一者是参与节点的第二序列中的最终节点,且发送该集合到第二序列中的第一节点。第一节点是区块链交易的发起者,且另一混洗集合含有该区块链交易的所有输出地址。在一些情况下,另一混洗集合中的输出地址中的每一者已使用发起者节点的公钥来加密。
[0022] 在一些实现方式中,本申请提供,混洗顺序包括随机化集合中的加密输出地址的顺序。
[0023] 在一些实现方式中,本申请提供,该方法可以包括首先发送参与区块链交易的请求,该请求包括第一公钥。
[0024] 在一些实现方式中,相应输出地址中的每一者是其相关联的参与节点所拥有的未花费的交易输出地址。
[0025] 在一些实现方式中,价值是货币量,且区块链交易被构造成从与每一参与节点相关联的相应输入地址接收相等的货币量,并将所述相等的货币量分配给相应输出地址中的每一者。
[0026] 本申请可以包含一种计算机实现的方法,该方法提供用于控制经由区块链的价值或数字资产转移的改进的加密技术和解决方案。本发明可以提供增强的安全性和/或改进具有多个参与节点的价值混合区块链交易的匿名性,每一节点具有交易要分配价值的相应输出地址。该方法可以包括以下步骤,其中:第一序列中的每一参与节点使用该节点的公钥加密其输出地址,将加密的输出地址添加到该交易的输出地址集,且如果该集合中存在一个以上加密的输出地址,那么混洗该集合中加密的输出地址的顺序。第二序列中的每一参与节点可以识别该集合中的其加密输出地址,并使用其未加密输出地址替换其加密输出地址。结果可以是混洗的输出地址集无法链接到特定的输入。
[0027] 上文关于一个方面或实施例所描述的任何特征可以结合任何其他方面或实施例来使用。对于该方法的每一实施例,提供经布置以实现该方法的对应系统。关于该方法的实施例所描述的任何特征还可以适用于对应的系统,且反之亦然。
[0028] 本发明的实现方式提供了改进的抗故障多节点通信,在一些情况下,其可以用于根据混合协议在参与节点当中分配代币。通过本发明所描述的操作,由于离线或丢失节点、由于参与节点的改变和/或由于参与节点的重新排序,通信不太容易延迟和失败。附图说明
[0029] 参考本文描述的实施例,本发明的这些和其他方面将变得显而易见并得以阐明。现将仅以实例的方式并参考附图来描述本发明的实施例,其中:
[0030] 图1示出节点的示例性区块链网络;
[0031] 图2图解地示出产生和进行价值混合区块链交易的第一阶段;
[0032] 图3图解地示出产生和进行价值混合区块链交易的第二阶段;
[0033] 图4以流程图形式展示用于参与价值混合区块链交易的示例性过程;以及
[0034] 图5展示简化的参与节点的框图

具体实施方式

[0035] 在本申请中,术语“和/或”旨在涵盖所列元素的所有可能组合和子组合,包括单独列出的任何一个元素、任何子组合或所有元素,且不一定排除附加元素。
[0036] 在本申请中,短语“…或…中的至少一者”旨在涵盖任何一个或多个所列元素,包括单独列出的任何一个元素、任何子组合或所有元素,而不一定排除任何附加元素,且不一定要求所有元素。
[0037] 下文描述的许多示例性实施例可以参考区块链交易;然而,应理解,本发明不限于结合区块链的实现方式。此外,下文对硬币或价值的引用并不将本申请的范围限于加密货币应用。无论是否使用区块链,本申请可以涉及节点之间代币的更大体的分布或分配。
[0038] 首先将参看图1,其以框图的形式示出与区块链相关联的示例性区块链网络100。区块链网络是对等型开放成员网络,任何人都可以加入,无需邀请或其他成员的同意。运行区块链网络100操作的区块链协议实例的分布式电子装置可以参与区块链网络100。此类分布式电子装置可称作节点102。区块链协议可以是比特币协议或例如其他加密货币。
[0039] 运行区块链协议且形成区块链网络100的节点102的电子装置可以具有多种类型,包括例如,诸如台式计算机、膝上型计算机、平板计算机的计算机、服务器、诸如智能电话的移动装置、诸如智能手表可穿戴计算机或其他电子装置。
[0040] 区块链网络100的节点102使用合适的通信技术相互耦合,该通信技术可以包括有线和无线通信技术。在许多情况下,区块链网络100至少部分通过因特网实现,且一些个别节点102可以位于地理上分散的位置
[0041] 节点102维持区块链上所有交易的全局分类账。全局分类帐是分布式分类帐,且每一节点102可以存储全局分类帐的完整副本或部分副本。影响全局分类账的节点102的交易由其他节点102验证,从而维持全局分类账的有效性。本领域普通技术人员将了解实现和操作诸如使用比特币协议的区块链网络的细节。
[0042] 每一交易通常具有一个或多个输入和一个或多个输出。嵌入到输入和输出中的脚本指定了如何以及由谁可以访问交易的输出。交易的输出可以是作为交易结果的价值被转移到的地址。然后,该价值与该输出地址相关联,作为未花费的交易输出。随后的交易可以引用该地址作为输入,以便花费或分散该价值。
[0043] 虽然这些交易是伪匿名的,因为区块链分类账上的交易中不含有个人信息,但有可能跟踪交易链中的价值转移,且在一些情况下,使用外部数据将价值与个人链接起来。为了增加匿名性,可以使用硬币混合交易来汇集来自各种来源的输入,且然后将汇集的值划分并分配给输出。如果所有的输入和输出是相同的大小,那么难以将特定的输入与特定的输出相关联。然而,在此类交易中,至少一个参与节点知道由另一参与节点指定的输入地址和输出地址之间的链接。
[0044] 已进行一些尝试,如比特币协议中的CoinShuffle,来进一步匿名化硬币混合。然而,CoinShuffle协议要求参与者在开始时完全了解操作,并按照定义的顺序毫无偏差地执行操作。
[0045] 根据本申请,描述了一种有助于价值混合的方法和装置,其在参与和完成方面具有更大的灵活性,从而提高可靠性、完成的可能性和完成的速度。通常,所描述的方法涉及建立一组混洗的加密输出地址,其中每一节点依次将其相关联的加密输出地址添加到该组中,且然后混洗该组中加密地址的顺序,直到产生完整的组为止。然后该节点再次循环该集合,且每一节点依次使用其未加密的输出地址替换其各自的加密地址。一旦每一参与节点使用其未加密的输出地址替换其加密的输出地址,交易的输出地址集就完成了,且没有一个节点可以确定哪个其他节点添加了任何其他输出地址。
[0046] 在本文的描述中,可以使用术语“参与节点”以及其“输出地址”引用参与节点的“输出地址”并不意图指代物理节点的网络地址。相反,“输出地址”是在区块链的交易中指定的具有未花费价值的地址,物理节点可以通过具有对应于交易上的签名的密钥来声明对该地址的所有权。在此意义上,“输出地址”不是参与节点的地址,而是参与节点拥有或相关联的区块链交易输出地址。本文对参与节点的“输出地址”的任何引用都应理解为这样。
[0047] 现在参看图2,其图解地示出了根据本申请的区块链交易中的第一阶段200。该交易可以具有n个参与者(本文称作“节点”或“参与节点”)。为了便于说明和论述,将个别节点202标为“A”、“B”、“C、”…“n”。尽管节点202被示为以圆形通信,但节点202的物理布置和地理布置以及它们在网络中的互连性可以采取任何形式。
[0048] 节点202中的一者,在此情况下是节点A,通过提议区块链交易来发起操作。可以使用任何公告、通知或适用协议规定的其他此类功能来公布所提议的交易,以起始混合交易和邀请参与。
[0049] 希望加入交易的参与节点202可以通知发起节点,如节点A,发起节点可以维持参与节点的列表以及它们进行第一阶段的顺序。在一些情况下,如果第一阶段已经在进行中,那么节点A可以将关于新参与者的信息转发到顺序中的最后一个节点,使得最后一个节点可以将该地址集正确地转发给新参与者。在一些情况下,根据基础的区块链协议,控制可能会更加分散,参与者无需通知发起者即可加入交易。交易中参与节点的发布列表可以在分散的基础上可用,且新的参与者可以联系列表上的最后一个参与节点,以表明其加入交易的意图。可以根据基础的区块链协议来使用用于加入交易的其他机制。
[0050] 每一节点202具有其自身的公钥-私钥对。例如,节点A具有公钥PA和私钥VA。交易中的每一节点202按照顺序或序列至少与其之前的节点202共享其公钥。
[0051] 建立交易的第一阶段涉及节点A,发起者(也可以称为“创始者”),使用其公钥PA加密其相关联的输出地址,表示为A’。如上文解释,“输出地址”是参与节点所拥有的区块链未花费价值输出地址,且并非参与节点的网络地址。与节点A相关联的加密输出地址是输出地址集204的第一元素。节点A然后使用节点B的公钥PB加密集合204,节点B是序列中的下一个节点。然后将加密的集合204提供给节点B,节点B解密集合204。出于说明的目的,图2用上标示出公钥Pi,以指示其用于加密给定元素或集合204,视情况而定。
[0052] 节点B使用其公钥PB加密其相关联的输出地址,表示为B’,并将其添加到集合204。它使用任何合适的伪随机过程来混洗集合中地址的顺序。含有与节点A和节点B相关联的混洗加密输出地址的集合204然后使用序列中的嵌套节点(节点C)的公钥PC进行加密。
[0053] 该过程继续,每一节点依次解密集合204,加密其相关联的输出地址,将其添加到集合中,并混洗集合中地址的顺序,且然后加密并转发该加密的集合到序列中的下一个节点,直到达到停止条件为止。在一个实例中,停止条件可以包括达到规定的最小参与节点数目,例如n个节点。在另一实例中,停止条件可以包括时间限制,例如在X分钟后停止第一阶段。在另一实例中,停止条件可以包括最小数目的参与节点和到期时间两者,使得如果在到期时间内没有达到最小数目的节点,那么交易被取消,且假如至少最小数目的参与节点在到期时间已经加入,那么交易继续进行。
[0054] 一旦第n个节点已经添加了它的加密输出地址并混洗了地址的顺序,它就使用发起者节点A的公钥PA来加密集合204,并将加密集合提供给节点A。在第一阶段结束时,节点A具有含有由参与节点中的每一者指定的所有输出地址的集合,每一输出地址使用添加它的节点的公钥进行加密。集合中地址的顺序是随机的,因此它与为交易指定的任何输入的顺序无关。
[0055] 节点参与的顺序或序列不需要预先确定,且可以随着第一阶段200的进行而改变。也就是说,例如,节点E可以在节点A、节点B和节点C已经将它们的地址添加到集合204之后决定加入交易,且节点D在接收到节点E的参与通知和节点E的公钥PE的副本之后,将依次将加密的集合转发到节点E。而且,先前表示将参与的节点可能会在产生其加密地址之前退出交易。此外,如果其中一个节点因暂时离线或无响应而不可用,那么顺序可能会改变。作为实例,如果节点E离线,那么节点D可以使用另一参与节点如节点F的公钥PF来加密集合204,且可以将该集合转发到节点F,从而跳过节点E。节点E可能最终不参与交易,或者可能会及时恢复联机,以便在序列中稍后参与交易。
[0056] 现在参看图3,其图解地示出了根据本申请的区块链交易中的第二阶段300。第二阶段300可以被称为解密阶段,涉及每一参与节点202使用未加密的输出地址替换其加密的输出地址。例如,节点A解密地址集204。该节点接着搜索集合,并识别节点A插入到该集合中的加密输出地址。它可以通过尝试解密集合中的每一加密地址来识别其自身的输出地址。更快的方法可以是在第一阶段200期间存储加密输出地址的副本,且在第二阶段300期间简单地搜索集合204以寻找匹配的加密输出地址。
[0057] 在集合204中使用其未加密的输出地址替换其加密的输出地址之后,节点A然后使用序列中下一个节点(在此实例中是节点B)的公钥加密该集合,并将加密的集合提供给节点B。
[0058] 然后,节点B执行相同的操作,解密集合204,识别其加密的输出地址,使用其未加密的输出地址替换它,使用下一个节点的公钥加密集合,并继续传递加密的集合。此过程从一个节点继续到另一节点,直到参与交易的所有节点都使用它们的未加密输出地址替换了它们的加密输出地址为止。然后,该集合以随机顺序含有区块链交易的完整输出地址列表。
[0059] 请注意,第二阶段300中节点的序列或顺序无需与第一阶段200中的序列或顺序相同。
[0060] 可以理解,所描述的解密过程仍然存在至少一个参与者将能够识别另一参与者的输出地址的可能性。明确地说,节点n-2接收一个集合,该集合含有所有未加密地址和其自身的加密输出地址(它可以识别)以及节点n的加密地址。在该阶段,它无法确定哪些地址是加密的且哪些是未加密的;然而,一旦交易完成,它将能够识别哪个地址由于节点n使用其未加密地址替换其加密地址而改变,且因此识别哪个输出地址与节点n相关联。
[0061] 为了进一步增强匿名性,在一些实现方式中,解密过程涉及每一节点使用节点A的公钥来加密其输出地址。也就是说,它使用节点A的公钥加密其输出地址,并插入其输出地址的加密版本来代替其最初插入的先前加密的输出地址,而不是使用其未加密的输出地址替换其加密的输出地址,从而使其暴露给过程中的所有后续节点查看。在所有节点已经替换了它们的地址并将地址集返回给节点A之后,节点A然后可以解密所有地址以获得未加密的混洗输出地址集,且没有一个节点能够识别哪个输出地址与任何其他节点相关联。
[0062] 在一个变体中,不是在第一阶段期间插入加密的输出地址,而是每一节点插入具有规定长度的伪随机字符串。它将该字符串存储在本地存储器中,因此可以再次识别它,且接着在第二阶段,节点用其输出地址替换该字符串。
[0063] 一旦产生完整的输出地址集,交易接着将呈现给所有参与者用于批准。每一参与者签署各自的输入以确认参与交易,然后提交给区块链网络进行验证并最终包含在区块链中。
[0064] 现将参看图4,其以流程图形式展示用于产生价值混合区块链交易的示例性过程400。示例性过程400是由区块链交易中的参与节点中的一者处的一个或多个处理器进行的计算机实现的过程。此实例假定该节点不是发起者节点。
[0065] 在操作402中,节点请求参与交易。这可以包括提供节点的公钥。在一些实现方式中,公钥可以包括在由节点产生并发送或发布的加入请求消息中。取决于实现方式,消息可以被发送到发起者节点、在第一阶段期间是集合的当前持有者的节点、发送到两者或者发送到充当识别参与交易的节点的中央资源的另一节点。
[0066] 在操作404中,节点加密其输出地址(在价值混合交易中将价值发送到的地址)。它可以存储加密输出地址的本地副本,以便稍后能够在混洗集合中容易地识别它。
[0067] 一旦节点在第一阶段序列中从前一个节点接收到集合,它就解密该集合。该集将由前一个节点使用当前节点的公钥加密。当前节点作为相应私钥的持有者,能够解密该集合。接着,在操作406中,节点将其加密输出地址添加到加密输出地址集,且在操作408中,混洗该集合内的加密输出地址的顺序。混洗可以采用任何合适的伪随机过程以重新布置加密输出地址的顺序。
[0068] 在操作410中,该节点接着确定它是否是序列中的最后节点,即它是否是第n个节点。如上所述,在一些实现方式中,n可以是由发起者节点、外部策略或以某种其他方式设置的规定的最小节点数目,一旦达到该数目,将导致建立交易的第一阶段结束。在其他实现方式中,n可以不被规定,且可以是自从起始交易以来,一旦到达到期时间,碰巧已经加入交易的参与节点的数目。交易进行可能需要最少数目的参与者,因为参与节点太少会降低价值混合交易所提供的匿名性。在一些实现方式中,最小数目n可以是50,尽管在其他实现方式中可以规定其他最小值。
[0069] 如果在操作410中节点确定它不是序列中的最后节点,那么它将该集合发送到序列中的下一个节点,如操作414所指示。在发送集合之前,它可以使用下一个节点i的公钥Pi来加密集合。
[0070] 尽管在一些实现方式中,加密输出地址集可以在不加密该集合的情况下从一个节点传递到另一节点,但匿名性可以通过确保该集合被传递到的节点的公钥加密而得到改进。否则,能够观察去往和离开特定节点的集合的任何装置可以识别由该特定节点添加的加密输出地址字符串,且随后识别添加到集合中的未加密输出地址来代替加密输出地址。因此,为了改进安全性,在此实例中集合本身就是加密的。
[0071] 如果在操作410中节点确定它是序列中的最后节点,那么在操作416中它将该集合转发到发起节点。这可以包括首先使用发起节点的公钥PA来加密该集合。
[0072] 在任一情况下,当前节点都添加了它的加密输出地址,混洗了集合中加密地址的顺序,并将集合传递给另一参与节点。节点接着在第二阶段期间接收该集合,如操作418所指示。在操作418接收另一混洗的集合。该集合可以使用当前节点的公钥加密,或者可以不加密。因为第二阶段中的节点序列不一定与第一阶段中的序列相同,所以它可能是从相同的前一个节点接收的,或者可能不是从相同的前一个节点接收的。
[0073] 在操作420中,当前节点在另一混洗的集合中找到其加密的输出地址并替换它。在此实例中,当前节点使用发起者节点(节点A)的公钥来加密其输出地址,且使用此第二加密输出地址来替换其混洗集合中的加密输出地址。以此方式,一旦交易准备好被组装和批准,只有发起者节点能够解密输出地址,以未加密的形式暴露它。然而,在一些实现方式中,当前节点可以使用其未加密形式的输出地址替换其加密的输出地址。出于上述原因,此类实现方式导致参与节点之间的较不安全的匿名性。
[0074] 当前节点接着再次确定它是否是第二阶段节点序列中的最后节点,即第n个节点,如操作422所示。如果不是,那么在操作424中,它将另一混洗集合传递到序列中的下一个节点。如果它是序列中的最终节点,那么当前节点将另一混洗集合返回到发起节点,该另一混洗集合现将含有所有输出地址,每一输出地址使用发起节点的公钥来加密,如操作426所指示。
[0075] 一旦所有节点已插入了由发起者的公钥加密的它们各自的输出地址,发起者节点随后解密输出地址,并向参与节点发布交易或以其他方式使交易可用,包括其输入和输出以及要从每一地址和向每一地址转移的价值。在操作428中,当前节点通过签署其输入来批准该交易。一旦所有节点都签署了该交易,它将提交给区块链网络进行验证,并最终添加到区块链。
[0076] 将了解,在上述示例性实施例中的一些所描述的操作在一些实现方式中可以同时发生或者以不同的顺序发生,而不会对过程产生实质性影响。本申请包含那些变化和修改。
[0077] 现将参看图5,其以框图形式展示参与节点500的简化实例。节点500包括处理器502,处理器502可以包括一个或多个微处理器、专用集成芯片(ASIC)、微控制器或类似的计算机处理装置。节点500进一步包括存储器504和网络接口506,存储器504可以包括持久和非持久存储器以存储值、变量,且在一些情况下存储处理器可执行程序指令,网络接口506通过有线或无线网络提供网络连接性。
[0078] 节点500包括含有处理器可执行指令的处理器可执行区块链应用508,当处理器可执行指令被执行时,使得处理器502进行本文描述的功能或操作中的一者或多者。
[0079] 将理解,本文描述的装置和过程以及实现所描述的用于配置视频特征提取器的方法/过程的任何模块、例程、过程、线程、应用或其他软件部件可以使用标准计算机编程技术和语言来实现。本申请并不限于特定处理器、计算机语言、计算机编程惯例、数据结构、其他此类实现方式细节。
[0080] 应注意,上述实施例说明而非限制本发明,且本领域技术人员将能够在不脱离由所附权利要求限定的本发明范围的情况下设计许多替代实施例。在权利要求中,括号中的任何附图标记不应被理解为限制该权利要求。词“包含”和“包括”等并不排除除了在任何权利要求或说明书整体中列出的元件或步骤之外的元件或步骤的存在。在本说明书中,“包含”意味着“包括或由其组成”,且“包括”意味着“包含或由其组成”。元件的单数引用并不排除此类元件的复数引用,且元件的复数引用并不排除此类元件的单数引用。本发明可以借助于包含若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的装置权利要求中,这些装置中的几个可以由同一个硬件项目来体现。在相互不同的从属权利要求中引用某些措施的事实并不表示这些措施的组合不能被有利地使用。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈