CN109643350A - 在有节点能够执行基于消息的交易的网络架构中实施的方法和系统 - Google Patents
在有节点能够执行基于消息的交易的网络架构中实施的方法和系统 Download PDFInfo
- Publication number
- CN109643350A CN109643350A CN201780006951.1A CN201780006951A CN109643350A CN 109643350 A CN109643350 A CN 109643350A CN 201780006951 A CN201780006951 A CN 201780006951A CN 109643350 A CN109643350 A CN 109643350A
- Authority
- CN
- China
- Prior art keywords
- node
- message
- transaction
- program
- hash
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 198
- 238000012545 processing Methods 0.000 claims abstract description 75
- 238000013459 approach Methods 0.000 claims abstract description 20
- 230000004043 responsiveness Effects 0.000 claims description 48
- 230000004044 response Effects 0.000 claims description 27
- 238000012546 transfer Methods 0.000 claims description 27
- 238000011144 upstream manufacturing Methods 0.000 claims description 21
- 238000003860 storage Methods 0.000 claims description 20
- 238000004891 communication Methods 0.000 claims description 17
- 238000010380 label transfer Methods 0.000 claims description 17
- 230000001360 synchronised effect Effects 0.000 claims description 17
- 230000005540 biological transmission Effects 0.000 claims description 16
- 230000008901 benefit Effects 0.000 claims description 15
- 230000006870 function Effects 0.000 claims description 14
- 230000008859 change Effects 0.000 claims description 11
- 238000005516 engineering process Methods 0.000 claims description 11
- 230000003993 interaction Effects 0.000 claims description 7
- 238000009826 distribution Methods 0.000 claims description 3
- 239000000203 mixture Substances 0.000 claims description 3
- 238000000605 extraction Methods 0.000 claims description 2
- 230000008929 regeneration Effects 0.000 claims 1
- 238000011069 regeneration method Methods 0.000 claims 1
- RTZKZFJDLAIYFH-UHFFFAOYSA-N ether Substances CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 53
- 238000012790 confirmation Methods 0.000 description 26
- 230000000694 effects Effects 0.000 description 7
- 241000205585 Aquilegia canadensis Species 0.000 description 6
- 238000012946 outsourcing Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 230000037431 insertion Effects 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 230000000977 initiatory effect Effects 0.000 description 4
- 238000003780 insertion Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 241000251468 Actinopterygii Species 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000004821 distillation Methods 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000002790 cross-validation Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 208000032718 dominant Weill-Marchesani syndrome 2 Diseases 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 101100156752 Caenorhabditis elegans cwn-1 gene Proteins 0.000 description 1
- 244000131316 Panax pseudoginseng Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 240000007643 Phytolacca americana Species 0.000 description 1
- 235000009499 Vanilla fragrans Nutrition 0.000 description 1
- 244000263375 Vanilla tahitensis Species 0.000 description 1
- 235000012036 Vanilla tahitensis Nutrition 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 125000001033 ether group Chemical group 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 230000003455 independent Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000029058 respiratory gaseous exchange Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000001568 sexual effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
- 230000007306 turnover Effects 0.000 description 1
- 239000002023 wood Substances 0.000 description 1
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
一种用于在网络节点之间建立连接权重的方法通过向数据处理单元传送与每一节点相关联的公开密钥和私用密钥来实施,每一节点能够向另一节点传送它的公开密钥,由此在两个节点之间形成所谓的实际连接(“IRL连接”),且每一节点还能够向另一节点传送从又一节点接收的公开密钥,由此在所述另一节点和所述又一节点之间形成所谓的间接连接。每一节点能够相对于与其实际或间接连接的另一节点而具有特定连接权重。为了确定第二节点相对于第一节点的连接权重,所述方法包括计算IRL连接到所述第二节点的第三节点的加权因数(影响、接近度)的设定组合。
Description
技术领域
本发明涉及在网络架构中使用的方法和系统,所述网络架构一般是去中心化的且具有能够在彼此之间实行基于消息的交易的节点。
背景技术
在本文中应注意,下文描述内容中的一些部分为英语,且它们对应的准确法语翻译也被视为描述内容的部分。
此外,以申请人的名义参考申请WO2016120826A2,所述申请的内容以引用的方式并入本文中。
PGP的去中心化信任模型(信任网,1992)是已知的,它能使得多个对充当公开密钥的引入者和验证者,并提出一种具有数字标识的去中心化验证度量,所述度量专注于所讨论的多个对的电子邮件地址。从那时起,一直提出用于建立不具有认证中心的标识的其它方式(例如,Carl Ellison在1996年提出的)。此外,已知使用“带外通道”方式且在存在“中间人(Man-in-the-Middle,MitM)攻击”风险的情况下需要使用可靠终端来以安全方式实行公开密钥交换的方法,具体地说,设计成优化以下情况的SafeSlinger方法[http://www.netsec.ethz.ch/publications/papers/farb_safeslinger_mobicom2013.pdf]:例如“密钥签名方”的群组用户中的每个用户与所有其它用户进行密钥交换。
本发明首先旨在实现去中心化标识,其更简单且用途更广泛,并且完全满足使用目前用于共识协议上的“智能合约”类型的可执行提交的要求[https:// en.wikipedia.org/wiki/Smart_contract],具体地说,在其中任何人都可动态加入和离开以及其中不存在一般依赖于计算谜题的共识节点的先验知识的无许可环境(“无许可”)中[Dwork和Naor,1992:http://www.hashcash.org/papers/pvp.pdf;Back,2002:http://www.hashcash.org/papers/hashcash.pdf],以便阻止“女巫攻击(Sybil attack)”,假设大部分计算力为诚实的参与者所有[Nakamoto,2008:https://bitcoin.org/bitcoin.pdf]。关于智能合约的主题的现有技术水平的主要代表是以太坊系统(Ethereum system)[https://github.com/ethereum/wiki/wiki/White-Paper]。
不存在已知的仅基于受信任制造者的硬件(“hardware”)的“智能合约”(不具有受信任第三方)的实施方案。
更精确地说,本发明与此实施方案有关,且另外基于在大量制造者的所及范围内的硬件,以便实现去中心化,即使是在制造者自己的站点处,并且此外,它旨在提出一种去中心化标识机制,使得有可能缓解女巫攻击(当对手在网络中产生任何数目的由他控制的新节点时)。
借助于硬件,本发明旨在不仅实现快速性(区块链的共识是缓慢的)和成本(交易成本)优势,甚至还实现质量性优势。具体地说,论文《为何许多智能合约用例根本不可能(Why Many Smart Contract Use Cases Are Simply Impossible)》[http:// www.coindesk.com/three-smart-contract-misconceptions/]呈现了以太坊对于与外界的交互的限制(具体参见“接触外部服务(Contacting External Services)”下的:
“通常,所提出的第一用例是响应于一些外部事件而改变其行为的智能合约。例如,基于给定月份中的降雨量而有条件地给付的农业保险单。
想像的过程是这样的:智能合约一直等到预定时间、从外部服务获取天气报告,并基于接收到的数据以适当方式表现。
这听起来非常简单,但它是不可能的。为什么?因为区块链是基于共识的系统,这意味着它仅在每个节点在处理每个交易和区块之后达到相同状态的情况下才起作用。
在区块链上进行的所有事物必须是完全确定的,同时差异不可能发生徐变。在两个诚实节点关于链的状态未达成一致时,整个系统变得毫无意义。
现在,要记得智能合约是由链上的每个节点独立执行。因此,如果智能合约从外部源获取一些信息,那么这一获取被每个节点反复地且单独地执行。但是因为这个源在区块链之外,所以不保证每个节点都会接收到相同应答。
源可能会在来自不同节点的请求之间的时间内改变它的响应,或者它可能会变成暂时不可用。无论哪种方式,共识都被打破,且整个区块链失效。所以,解决方法是什么?实际上,解决方法相当简单。智能合约并不发起对外部数据的获取,而是由一个或多个受信任方(“预言机(oracle)”)创建在链中内嵌所述数据的交易。每个节点将具有这一数据的相同复本,因此它可安全地用于智能合约计算。”
本发明首先通过端到端地利用TLS协议启用“钱包节点”WN(见WO2016120826A2]以安全方式直接到任何HTTPS网站的访问(由此去除对“预言机”智能合约的需要)来弥补这一缺陷。此访问可实施于能够冗余地访问数据源的多个“WN克隆”节点上。关于源在两个请求之间修改响应的风险,WN克隆能够协调自身,以便根据预先协定的规则(根据配置参数)处理相同请求的不同回复的情况(根据例如取多数、取平均等方法)——相比于访问网络的以太坊节点,这提供了必不可少的优势,从而免去了受信任第三方的调解。上文引用的论文接着提到需要向外界发出消息:
“当涉及到产生外界事件的智能合约时,类似问题出现了。例如,许多人喜欢调用银行的API以转移资金的智能合约的构思。但是如果每个节点独立地执行链中的代码,那么谁负责调用此API?如果应答仅为一个节点,那么在所述特定节点有意或无意地出现故障时会发生什么?”
本发明通过启用可靠协议的实施来弥补这一缺陷,根据所述可靠协议,就是节点的镜像节点中应该向外界发出消息的那个节点发出此消息(见下文的“WN向外界发出消息”部分)。
在上述的两个应用情况中,以太坊节点对于网络的内在限制破坏了它去中心化的目的;见上文引用的论文:
“它们都需要受信任实体来管理区块链和外界之间的交互。尽管这在技术上是可能的,但是它破坏了去中心化系统的目标。”
上文引用的论文中所描述的以太坊的另一重要限制是它内在的不保密性:
“如果一个智能合约无法访问另一智能合约的数据,我们就解决了区块链保密性的问题了吗?谈论将信息隐藏在智能合约中有意义吗?很不幸,答案是否定的。
因为即使一个智能合约无法读取另一智能合约的数据,所述数据也仍然存储在链中的每个单个节点上。对于每一区块链参与者来说,所述数据在由所述参与者完全控制的系统的存储器或磁盘中。并且,如果他们选择从他们自己的系统中读取信息,没有什么能够阻止他们这样做。”
通过本发明提出的硬件架构获得的WN的盲属性(意指“扩展到硬件的保密性”)解决了以太坊的这一严重限制。
以太坊的智能合约被理解为“含有价值且仅在符合某些条件的情况下才解锁它的加密“盒””[短语提取自引用的以太坊白皮书],然而根据本发明的系统,智能合约实施为钱包节点的网络的节点(WN)之间的可执行“钱包程序(WP)”合约,且具有以下特征:
●WN通过“钱包消息”(WM)消息交互;
●每一WM向WP指定接收WN必须执行以处理它
●WM能够包括“价值”从发出WN转移到接收WN的一个或多个交易;
●价值将属于接收WN(或至少将通过接收WN管理),且继而将能够通过产生其它交易来转移价值(在执行一般可不同于将价值转移到接收WN的WM中指定的WP的WP的上下文中),
●WN的系统包括每一WN中的均值以阻止这些价值的双花,以及
●WN有利地包括均值,以便为一个或多个经授权WP程序预留这些价值的消费。
然而,所述“加密盒”可易于在WN上构建。因此,本发明的系统组合合约的常规概念(“应该“满足”或“符合”的某物”)与以太坊的概念(“实际上,它们更类似于存在于以太坊执行环境内部的“自主代理”,当通过消息或交易“戳进(poke)”时始终执行一段特定代码,并且能够直接控制它们自己的以太平衡和它们自己的密钥/价值存储以跟踪永久变量”)[短语同样取自引用的以太坊白皮书]。
WN节点与以太坊的节点类似:基于一对密钥中的公开密钥确定的以太坊节点的地址类似于根据所讨论的WN的公开密钥确定的WN的地址。在WN中,智能合约是可执行“钱包程序”代码(通过它的哈希“#WP”标识),所述代码可使用例如Solidity[http://solidity.readthedocs.io/en/develop/introduction-to-smart-contracts.html(在本文中以引用的方式并入)]的语言进行编译,但是可以进行自适应,使得WN有可能访问网络,由WN产生的交易有可能可以转移任何单位(且不仅仅是以太)的价值,等等。
然而在以太坊中,合约执行是在验证它的大量节点(矿工)上实行,在WN的情况下,当执行合约(WP)时,在其上发起此执行的节点是执行合约且具有其自身的永久状态变量的唯一节点。在节点的永久性变量是通用的且不是只表示以太平衡,并且它们不一定是与执行合约的所有节点的合约相关联的变量(它们不一定是构成以太坊合约的密钥/价值存储的共享变量[见已引用的以太坊白皮书])的意义上,WN表示更一般的模型。
WN保证通过硬件约束以及有利地通过冗余(redundance)(用于更高的安全性)的执行的完整性,所述节点是通过多个镜像节点具体化的虚拟节点,所述镜像节点以同步方式存储、操控并维持特定于所述虚拟节点的变量。
在名称为“具体实施方式”的部分的开始参考图23的描述是有用的。
本发明的另一目标是实现使用比特币区块链(或另一区块链)通过在所讨论的WN的指令后产生交易中的仅一些交易并将其插入到区块链中来在WN上执行智能合约(WP),这提供了以下三个优势:具有比特币的智能合约的效力、避免它的共识协议的缓慢性,以及不需支付交易费用(对于未插入到区块链中的交易)。名称为“链下比特币交易”的部分描述一种使得具有价值的单元(例如比特币或以太)有可能被不同类型的WP程序消费的方法,所述方法由此向基于比特币的系统赋予了例如以太坊的系统的智能合约的效力。
比特币协议需要等待每一区块对交易的确认,在如今,取决于所采用的方式,每一区块的确认会花费大约数秒到约十分钟,并且涉及到有限交易量。以太坊和如以申请人的名义在FR 3 018 377 A1中描述的方法实现可执行合约的去中心化执行。侧链技术设计成基本上实现以与比特币中所提供的方式不同的方式管理提交和交易,且能够视需要传回到原始比特币协议[https://blockstream.com/sidechains.pdf](这通过本发明基本上是可能的)。近年来,除了这些系统之外,还已经提出例如“闪电网络”[https//lightning.network/lightning-network-paper.pdf]的“状态通道网络”和以太坊的“支付通道网络”[http://raiden.network/],以避免针对每一交易必须使用区块链。此方式意味着节点监测区块链以便在插入不反映当前状态的交易的情况下做出反应,从而进行校正,所述校正需要使用保护观测时间窗口安全的锁,这导致了一定程度的缓慢。本发明因为从一开始就保证了它提供的WP的执行的完整性而解决了这一难题:由WN产生的所插入的交易不需要监测。
此外,应注意,根据本发明提出的硬件使得有可能确保在不公开的情况下的处理,特别是由例如新因特尔处理器等安全环境提供的属性(被称为“保密性”),以用于它们的安全“SGX”环境(飞地(enclave)),并且众所周知,存在关于用于在云上进行处理的同态加密的研究,其提供对执行完整性和经处理数据的不公开,乃至所执行代码的不公开的保证。然而,同态加密的技术处于研究阶段,并且除了有限或特定情况外,尚不具有操作性。
出于参考目的,申请WO2016/120826 A2描述集成在例如智能手机的连接装置、具有物联网(IoT)的连接物或计算机中——或与它们耦接——的片上系统(SoC,被称为“钱包节点”或“WN”或“实体”),从而提供对执行完整性的保证,以便它的不同部分之间的访问限制无法被更改或规避。基本上,WN的唯一可能执行是通过验证它的完整性以及接着执行对应于此消息中指定的哈希的可执行“钱包程序”来对传入消息做出反应。参考此PCT申请,在本文本中,“消息”应理解成意指“钱包消息”,除非明显不是这样。
根据第一方面,提出一种用于在网络节点之间建立连接权重的方法,所述方法通过向数据处理单元传送与每一节点相关联的公开密钥和私用密钥来实施,给定节点能够向另一节点传送它的公开密钥,由此在这两个节点之间形成所谓的实际连接(“IRL连接”),且每一节点还能够向另一节点传送从又一节点接收的公开密钥,由此在所述另一节点和又一节点之间形成所谓的间接连接,一个节点能够相对于与它实际或间接连接的另一节点而具有特定连接权重,所述方法包括:为了确定第二节点相对于第一节点的连接权重,计算IRL连接到第二节点的第三节点的加权因数(影响、接近度)的设定组合。
有利但是任选地:
*第二节点的连接权重影响第三节点的加权因数,且另外包括在计算第二节点的连接权重之后更新第三节点的加权因数的值。
*所述方法在收敛之前一直反复实施。
*在第一节点和另一节点之间建立所谓的实际连接(IRL连接)包括以下步骤:
在实施第一节点的第一处理单元的位置处,通过邻近读取能够访问对任意数(随机数(nonce))进行编码的机器可读代码;
在实施另一节点的另一处理单元的位置处,读取机器可读代码、提取所述任意数,并计算所述任意数的哈希,
通过通信通道,将与所述另一节点相关联的公开密钥和利用它的私用密钥实行的任意数的(哈希的)签名从所述另一处理单元传输到第一处理单元,
在第一处理单元的位置处,借助于所接收的公开密钥和用于产生机器可读代码的任意数来验证所述签名,并在验证成功的情况下记录所述公开密钥。
*在第一节点和另一节点之间建立所谓的实际连接(IRL连接)包括以下步骤:
在实施第一节点的第一处理单元的位置处,产生密码并使得所述密码可由所述第一处理单元的用户访问,
在实施另一节点的另一处理单元的位置处,通过涉及第一处理单元的用户和另一处理单元的用户之间的人为动作的通信路线,引入通过第一处理单元的用户传送到另一处理单元的用户的所述密码作为输入,
通过通信通道,将与所述另一节点相关联的公开密钥和利用它的私用密钥实行的所引入密码的(哈希的)签名从所述另一处理单元传输到第一处理单元,
在第一处理单元的位置处,借助于所接收的公开密钥和第一处理单元的用户最初可访问的密码来验证所述签名,并在验证成功的情况下记录所述公开密钥。
*多个第二节点具有与第一节点连接的权重,并且其中确定给定第二节点相对于第一节点的连接权重还基于所述另一第二节点相对于第一节点的连接权重。
根据第二方面,提出一种用于确定节点网络中的第一节点的影响的方法,所述方法通过向数据处理单元传送与每一节点相关联的公开密钥和私用密钥来实施,一个节点能够向另一节点传送它的公开密钥,由此在这两个节点之间形成所谓的实际连接(IRL连接),且每一节点还能够向另一节点传送从又一节点接收的公开密钥,由此在所述另一节点和又一节点之间形成所谓的间接连接,所述方法包括:基于与所述给定节点实际连接且具有通过其中多个第二节点具有与第一节点连接的权重的方法确定的连接权重值的第二节点的数目,确定给定节点的影响因数,且其中对于不同的第二节点,确定给定第二节点相对于第一节点的连接权重还基于所述另一第二节点相对于第一节点的连接权重。
有利但是任选地:
*第二节点相对于第一节点的连接权重还基于与所述第二节点实际连接的第三节点的相应影响因数的值来确定。
*反复地确定连接权重和影响因数值,直到它们收敛成不再显著变化的值为止。
根据第三方面,提出一种用于在网络的节点之间建立所谓的准实际连接的方法,所述方法通过向数据处理单元传送与每一节点相关联的公开密钥和私用密钥来实施,给定节点能够向另一节点传送它的公开密钥,由此在这两个节点之间形成所谓的实际连接(“IRL连接”),且每一节点还能够向另一节点传送从又一节点接收的公开密钥,由此在所述另一节点和又一节点之间形成所谓的间接连接,每一节点能够相对于与它实际或间接连接的另一节点而具有特定连接权重,所述方法包含以下步骤:
在要建立连接的第一节点和第二节点之间,从在第一节点和第二节点之间的相对于第一节点具有最高连接权重的那些中间节点中选择多个中间节点,
将既定传送到第二节点的任意数(随机数)从第一节点传送到所选择的中间节点,
通过不同于节点之间的通信通道的一个或多个通信通道,将所述任意代码以及所述中间节点的公钥冗余地从中间节点传送到第二节点,
在第二节点的位置处,响应于任意代码的接收,借助于第二节点的私用密钥冗余地产生任意代码的签名,并将所述签名以及第二节点的公开密钥分别传回到中间节点,第二节点的公开密钥借助于中间节点的公开密钥进行加密,
在每一个中间节点的位置处,验证从第二节点接收的任意代码的签名,并且在验证成功的情况下,将第二节点的公开密钥传送到第一节点,所述第二节点的公开密钥借助于第一节点的公开密钥进行加密,以及
在第一节点的位置处,对第二节点的公开密钥进行解密和存储,
接着,第一节点和第二节点能够交换加密信息,其安全性与中间节点的连接权重相关。
有利但是任选地:
*还从相对于第二节点具有最高连接权重的那些中间节点当中选择中间节点。
*通过实施以下步骤,通过由第一节点和中间节点形成的一组节点共同产生任意代码:
在所述组中的每一节点的位置处产生任意代码,
利用借助于节点的相应密钥进行的加密,在所述组的节点之间交换所述任意代码的哈希,
利用借助于节点的相应密钥进行的加密,在所述组的所述节点之间交换原本的任意代码,
在所述组中的每一节点的位置处验证原本的任意代码是否确实对应于它们在前一步骤接收的相应哈希,以及
通过在所述组中的每一节点的位置处产生的任意代码的设定组合产生既定传送到第二节点的最终任意代码。
*所述不同通信通道是基于社交网络,且包括以下步骤:通过所述社交网络上的第二节点公开所述任意代码的签名和它的公开密钥。
*所述方法另外包括以下步骤:响应于成功验证从第二节点接收的任意代码的签名,指派第二节点相对于第一节点的连接权重。
*根据第一方面的方法实施于包括其中根据第三方面建立准实际连接的节点的网络中,且准实际连接被认为是所述方法意义上的实际连接,其中权重考虑到连接的准实际特征。
根据第四方面,提出一种用于保护节点网络的运行安全的方法,所述网络能够响应于消息(WM)的接收而执行程序(WP),所述节点能够根据不同连接权重而彼此连接,所述连接权重通过根据第一方面的方法或通过根据第三方面的方法确定,所述方法包括:在接收节点的位置处接收消息(WM)后,比较发出此消息的节点的连接权重与实际连接到接收节点的其它节点的连接权重,且仅在发出节点的连接权重等于或大于所述连接权重中的最小连接权重时才接受所述消息。
根据第五方面,提出一种用于保护节点网络的运行安全的方法,所述网络能够响应于消息(WM)的接收而执行程序(WP),所述节点能够根据不同连接权重而彼此连接,所述连接权重具体是通过根据第一方面的方法或根据第三方面的方法获得,其中提供以下步骤:响应于成功验证从第二节点接收的任意代码的签名,指派第二节点相对于第一节点的连接权重,所述方法包括以下步骤:
基于连接权重值,向每一节点指派相对于其具有大于阈值的连接权重的至少一个副署节点,
在每一节点的位置处,维持能够从所讨论的节点接收消息(WM)的副署节点列表,每一节点和它的副署节点形成一组镜像节点,
当消息将通过发出节点发送到接收节点时,开始由发出节点的镜像节点中的至少一些向接收节点的镜像节点中的至少一些发送此消息,
仅在已接收到发出消息的给定部分时才验证消息。
有利但是任选地:
*消息被发到接收节点的所有镜像节点。
*通过发出节点以及发出节点的唯一副署节点发出消息,所述发出节点的唯一副署节点还是接收节点的副署节点。
*从第一节点发送到第二节点的消息仅在出现以下情况时才通过第二节点验证:
第一节点和第二节点的镜像节点的相应组具有要素数目大于某一阈值的相交区,且
第二节点已(冗余地)从属于此相交区的所述镜像节点的至少给定部分接收到这一相同消息。
*在实施于包括根据第五方面的镜像节点的网络中的根据第一方面的方法中,一个节点仅在其连接权重至少等于与给定节点实际连接的节点的连接权重中的最小连接权重时才被视为所述给定节点的副署节点。
根据第六方面,提出一种用于保护节点网络的运行安全的系统,所述网络能够响应于消息(WM)的接收而执行程序(WP),所述节点能够根据不同连接权重而链接到彼此,所述系统能够:
基于连接权重的值,向每一节点指派相对于其具有大于阈值的连接权重的至少一个副署节点,
在每一节点的位置处,维持能够从所讨论的节点接收消息的节点的副署节点列表,每一节点和它的副署节点形成一组镜像节点,
当消息将通过发出节点发送到接收节点时,开始由发出节点的镜像节点中的至少一些向接收节点的镜像节点中的至少一些发送此消息。
有利但是任选地:
*接收消息(WM)的接收节点仅在发出和接收节点的镜像节点的相应组具有要素数目大于给定阈值的相交区且接收节点已(冗余地)从属于此相交区的所述镜像节点的至少给定部分接收到这一相同消息时才验证所述消息。
根据第七方面,提出一种用于保护节点网络的运行安全的系统,所述网络由片上系统组成且能够响应于消息(WM)的接收而执行程序(WP),所述系统的特征在于它以组合形式包含以下两个架构:
-在每一节点的位置处,用于基于这些程序的哈希而访问加密程序的架构,所述程序包含在传入消息中,
-在每一节点的位置处,用于确定副署节点、用于从/向副署节点复制消息以及用于确定所接收消息的相同字符的架构。
根据第八方面,提出一种用于安全执行包括以网络形式连接的一组装置的架构中的程序的系统,特征在于它在至少一个装置中包括安全片上系统(SoC),其中私用SoC密钥以它只能被SoC访问的方式存储,或SoC能够动态地再生这一私用密钥(PUF技术),
SoC能够仅通过消息与另一装置通信,且能够仅响应于消息的接收而执行程序,
SoC能够存储将在通过SoC加密之后执行的至少一个程序,并产生所述程序或每一程序的哈希,从而使得有可能再次找出加密程序,
装置另外能够向SoC发送含有某一待执行程序的输入数据(数据)的消息,以及所述程序的哈希(#P2),所述SoC能够响应于此类消息而以安全方式进行以下操作:(i)基于在消息中接收到的程序的哈希(#P2)而访问待执行加密程序,(ii)在运行中解密程序的指令,以及(iii)在运行中执行经解密指令。
有利但是任选地:
*在通过SoC发出消息之前,SoC将处于执行过程中的程序的哈希(#P1)以及借助于SoC的所述秘密私用密钥对此哈希进行的签名插入在待发出消息中。
*在通过SoC发出消息之前,SoC将处于执行过程中的程序的哈希(#P1)插入在待发出消息的主体中,SoC借助于SoC的秘密私用密钥对所述待发出消息的主体进行签名。
* SoC包括密码存储器管理单元(密码存储器管理单元[CMMU]),其中存储了——或其能够动态地再生(PUF技术)——SoC的秘密密钥,所述秘密密钥可仅通过从不显示它的CMMU单元访问,且通过此CMMU单元实行以下操作:
-程序在存储之前的所述加密,
-针对由此加密的程序的存储器地址分配(addr1……addr2范围)
-程序的哈希的所述产生,以及
-用于在运行中供包含在SoC中的至少一个处理器单元执行的所述解密。
* CMMU单元针对每一指令块实行加密和存储器中的存储,且每次向所述处理器供应一个经解密区块以在运行中执行。
*在通过SoC发出消息之前,CMMU单元将处于执行过程中的程序的哈希(#P1)以及CMMU借助于SoC的所述秘密私用密钥对此哈希进行的签名插入在待发出消息中。
*在通过SoC发出消息之前,CMMU单元将处于执行过程中的程序的哈希(#P1)插入在待发出消息的主体中,CMMU单元借助于SoC的秘密私用密钥对所述待发出消息的主体进行签名。
* SoC能够发出具有对处于执行过程中的程序(#P1)和将通过接收方执行的程序来说相同的哈希(#P1=#P2)的消息,此程序(P1=P2)在所述消息的接收方是SoC的情况下是可执行提交(智能合约)。
根据第九方面,提出一种片上系统SoC,其意在形成网络的钱包节点(WN)节点,且包括密码存储器管理单元,其中加密(CMMU)能够确保SoC的至少一个处理器对程序的盲(blind)执行,其中:
●在CMMU单元中,私用密钥(秘密密钥)以它只能被CMMU单元访问的方式存储(或动态地再生),
●CMMU单元能够存储将在通过CMMU单元加密之后执行的至少一个程序,并产生所述程序或每一程序的哈希,从而使得有可能再次找出加密程序,
●除非CMMU单元命令,否则所述处理器无法执行程序,
●片上系统和网络的其它节点之间的交互仅通过消息进行,且消息仅通过CMMU单元接收/发出,
●消息包括通过其哈希标识的某一待执行程序的标识,
●响应于消息的接收,CMMU单元:(i)访问加密程序以基于在消息中接收到的程序的哈希来执行(具体是通过PHT表格),(ii)解密程序的指令,以及(iii)向处理器传输所述接收到的数据上的经解密指令以供执行。
有利但是任选地:
*所述处理器或至少一个处理器能够通过CMMU单元访问和操控(创建、更新、删除)与给定程序相关联的永久状态变量(PSV),所述永久状态变量还进行加密、通过CMMU单元存储在存储器中并在运行中进行解密。
*待执行的所述程序和它的永久状态变量(PSV)存储在特定编址空间中,以确保它们与其它程序分离。
*消息可含有计算单位(UA)从发出节点转移到接收节点的一个或多个交易,通过接收节点接收的计算单位能够通过由所述接收节点发出的消息中所含的交易再次转移。
*所述方法包括用于通过交易接收的计算单位(标记)的存储空间。
*方法能够在待发出的相同交易组合不同标记的计算单位中,所述交易可以在SoC之间进行组合和转移。
* CMMU单元包括用于以使得由此消费的UA无法通过另一交易消费的方式使馈送发出交易的标记无效的构件。
* CMMU单元包括用于以使得只有经授权程序可以馈送将基于给定标记产生的交易的方式控制不同程序对标记的使用的构件。
*所述存储器在SoC中。
*所述存储器与SoC分开。
*程序可替代地基于经过给定程序的超时时间而触发,且CMMU单元还能够在出现与程序的哈希相关联的超时后:(i)在存储器中访问基于此哈希的加密程序,(ii)解密程序的指令,以及(iii)向处理器传输经解密指令以供执行。
* CMMU单元针对每一指令块实行所述加密和存储器中的存储,且每次向所述处理器供应一个经解密区块以在运行中执行。
*在发出消息之前,CMMU单元将处于执行过程中的程序的哈希(#P1)以及CMMU借助于所述秘密私用密钥对此哈希进行的签名插入在待发出消息中。
*在发出消息之前,CMMU单元将处于执行过程中的程序的哈希(#P1)插入在待发出消息的主体中,CMMU单元借助于所述秘密私用密钥对所述待发出消息的主体进行签名。
*CMMU单元能够发出具有对处于执行过程中的程序(#P1)和将通过接收方执行的程序(#P2)来说相同的哈希(#P1=#P2)的消息,此程序(P1=P2)因此在所述消息的接收方同样是SoC的情况下是可执行提交(智能合约),其中在通过SoC发出消息之前,SoC将处于执行过程中的程序的哈希(#P1)以及借助于SoC的所述秘密私用密钥对所述哈希进行的签名插入在待发出消息中。
*特定消息(WM)构成存储在具有用于通过交易接收的计算单位(标记)的存储空间的系统中的标记转移消息,且仅在接收节点的一组镜像节点和最初从其转移此类标记的上游节点中的每一个的一组镜像节点之间的相交区中存在数目大于给定阈值的节点时才实行在接收节点的位置处的标记转移消息的验证。
根据第十方面,提出一种用于保证片上系统(WN)架构中的片上系统(WN)的提交的方法,所述片上系统(WN)能够在此类片上系统变得无响应性的情况下,通过消息(WM)在彼此之间转移计算单位,所述方法包括以下步骤:
(a)在提供(任何)提交的WN(E1)向此提交的受惠人WN(E4)提交后,使得受惠人WN(E4)在所述提供者WN(E1)无响应性的情况下可获得潜在受让人WN(E51、E52、E53)的“PT列表”(潜在受让人列表);
(b)使所讨论的提交状态(PST)从所述提供者WN(E1)同步到所有潜在受让人WN(E51、E52、E53)。
(c)在所述受惠人WN(E4)向所述提供者WN(E1)发送消息(WM)之后,在所述受惠人WN(E4)的位置处建立所述提供者WN(E1)的无响应性,
(d)在所述受惠人WN(E4)的位置处建立在所述列表(PT列表)中的潜在受让人WN当中具有优先级的受让人WN(E51),
(e)在所述优先受让人WN(E51)的位置处处理所述消息(WM),所述优先受让人WN(E51)接着使所讨论的提交状态(PST)同步到其它潜在受让人WN(E52、E53)以及无响应性的所述提供者WN(E1),
(f)对于通过无响应性的所述提供者WN(E1)的提交的受惠人WN发出的后续消息(WM),如果提供者WN(E1)仍然无响应性,那么从步骤(c)开始执行相同过程。
根据第十一方面,提出一种交易系统,所述交易系统具有点对点分布式架构,实施使得有可能在单元发出节点和单元接收节点之间转移计算单位的交易,每一交易将指代先前交易的输出的输入(或各自指代先前交易的输出的数个输入)作为输入,且其自身具有指定数个计算单位和接收节点的至少一个新输出,其中每一交易可通过将交易的签名插入在以分布方式存储在节点之间的区块链中来验证,特征在于交易中的至少一些通过能够确保所述交易的盲条件的节点来实行,在于它包括用于按照简化满足盲条件的一组交易的方式处理这一组交易的构件,所述一组交易随计算单位的数目、这些交易中所涉及的发出节点和接收节点的地址变化,以便产生经缩减的一组交易,并且仅产生经缩减的一组交易中的交易的签名且在区块链中存储所述签名。
根据第十二方面,提出一种交易系统,所述交易系统具有点对点分布式架构,实施使得有可能在单元发出节点和单元接收节点之间转移计算单位的交易,每一交易将指代先前交易的输出的输入(或各自指代先前交易的输出的数个输入)作为输入,且其自身具有指定数个计算单位和接收节点的至少一个新输出,其中每一交易可通过将交易的签名插入在分布于节点之间的区块链中来验证,特征在于交易中的至少一些通过能够确保所述交易的盲条件的节点来实行,在于它包括用于按照简化满足盲条件的一组交易的方式处理这一组交易的构件,所述一组交易随计算单位的量、这些交易中所涉及的发出节点和接收节点的地址变化,以便产生经缩减的一组交易,并且仅在所讨论的节点发出指令后,仅产生所述经缩减的一组中的一些签名且在区块链中存储所述签名。
根据第十三方面,提出一种用于在网络的节点之间实行交易的方法,所述节点与用户相关联且能够在彼此之间转移计算单位,并且能够通过消息在彼此之间传送,每一消息表示将在接收此消息的节点中执行的WP程序,并且用户能够广播包括一个或多个竞价准则的竞价要素,且能够在网络上发起交易,所述方法包括以下步骤:
-通过出售节点向已发出对应竞价要素的用户的请求节点发送符合准则的供应品出售消息,并提交所述节点,并且标识给定WP程序,
-通过请求节点向出售节点发送接受供应品出售的消息,并标识同一给定WP程序,
-产生关于供应品的性能、存在或可用性的凭证,所述凭证可由出售节点访问且能够通过所述给定WP程序验证,
-在所述两个节点中的至少一个的位置处通过给定WP程序验证凭证,以及
-如果验证成功,那么在请求节点的位置处,产生构成为供应品支付的转移计算单位的消息,并将此消息发送到出售节点。
根据另一有利方面,在实施于包括具有依据根据第三方面的方法建立的准实际连接的节点的网络中的根据第二方面的方法中,准实际连接被认为是所述方法意义上的实际连接,其中权重考虑到连接的准实际特征。
附图说明
在本文中描述的系统和方法的其它方面、目的和优势将根据以下详细描述阐明,以下详细描述作为实例给出且参考附图提供,附图中:
图1a、1b和2a、2b呈现用于计算用户周围环境的节点的连接权重的方法。
图3a到3d以图解方式呈现消息在镜像节点之间的分派。
图4示出钱包节点上的两个WP程序对永久状态变量(标记)的使用。
图5a和5b以图解方式呈现标记转移交易。
图6以图解方式呈现镜像节点在一连串消息传输标记转移交易的情况下的行为。
图7示出包含一组有效可执行代码的哈希的具体说明(specification)的消息。
图8示出钱包节点之间的接收确认的传播。
图9以图解方式呈现通过抽象比特币交易在钱包节点之间进行的支付的实例。
图10到15以图解方式呈现对应于图9的抽象交易的实际比特币交易。
图16以图解方式呈现通过抽象比特币交易在钱包节点之间进行的支付的另一实例。
图17到19以图解方式呈现对应于图16的抽象交易的实际比特币交易。
图20以图解方式呈现用于保证将变成无响应性的钱包节点的提交的方法。
图21以图解方式呈现包括接收可执行程序的CMMU单元的SoC。
图22以图解方式呈现包括接收消息的CMMU单元的SoC,所述消息包含将执行的程序的输入数据。
图23呈现钱包节点的通用架构。
具体实施方式
下文中,取决于上下文,术语“用户”可表示网络中的特定节点,每一节点具有一对密码密钥。此外,除了明确指代的是人类用户外,术语“用户”可表示与用户相关联的装置或程序。例如,“用户A向用户B发送某某数据”类型的指示将意味着“与用户A相关联的装置或程序向与用户B相关联的装置或程序发送某某数据”。最后,关于给定装置或程序,术语“用户”在一些情况下可表示另一装置或程序。
然后,描述此类网络的一定数目的方面,其中节点是分别与用户U相关联且能够通过“钱包消息”WM与彼此通信的“钱包节点”WN,以使影响与WN相关联的用户U的不同类型的交易或提交(通常为智能合约类型)具体化。这些WN构成图形的节点,图形在构成图形边缘的WN之间具有链路。
WN可为不同类型(软或硬)的,且WN之间的链路可具有某一符号或权重。消息WM可仅在所讨论的发端WN到接收WN之间的链路满足某一符号和/或权重时才通过发端WN发送到接收WN。
此类网络的一个实例在申请PCT WO2016120826A2中以申请人的名义描述,所述申请的内容以引用的方式并入本文中。术语“实体”、“钱包节点”、“WN”或仅仅“节点”用于表示此类网络的节点,且此类节点通过它的公开密钥或通过从其导出的地址标识;这些术语“密钥”、“地址”可用于意指节点的标识符,且反之亦然。
图23呈现WN的架构。参考此图,“准WM”消息是不通过WN发出但在它们像WM一样含有将在接收消息后执行的WP的哈希的意义上具有相同格式的(已接收)消息。因此,例如,当用户发起交易(通过其耦接到WN的终端)时,它的“准WM”消息包含WP的哈希以产生此交易(此信息通过终端自动添加)。在另一实例中,当WP将“非轻”处理操作(参见下文)外包到远程计算机时,呈包含将处理操作外包的WP的哈希的“准WM”消息形式的结果传回到WP。
有利的是,此架构实现了处理器(PROCESSOR)的较轻处理操作以及WM和非WM消息的非阻塞发出:
●非阻塞:WN相对于WM的响应是指代第一者的另一WM。同样非阻塞的是等待“用户”或“网络”对发出的“非WM”消息的响应的WP的执行——“用户”是用户的终端(例如计算机),且“网络”表示远程装置(例如计算机)——这些消息是回调(callback)被转换为“准WM”消息的异步调用。
●轻:当WP必须实行不轻的处理操作(例如,将一百行乘一百列的两个矩阵相乘)时,它将处理操作外包(通过“非WM”消息)到能够在安全环境(例如,新因特尔微处理器的SGX飞地)中执行处理操作且能够传回执行的真实性和完整性的凭证的计算机[https:// software.intel.com/en-us/articles/intel-software-guard-extensions-remote- attestation-end-to-end-example],所述响应被视为“准WM”消息。
通过WN发出的“HTTPS”消息的目的在于使得它能够在端到端HTTPS协议中访问数据源(在“受信任”网站中)。为此目的,WN主管TLS握手(TLS握手可使用例如“mbed TLS”[https://tls.mbed.org/]的库来实施,其模块弱耦接,且有可能使用库的部分而不必包含整个库),并且执行所有密码操作,而使所耦接的终端扮演主管低层(TCP)的输入/输出接口的角色,以便端到端地确保所述数据的完整性。
有利的是,在“非轻”处理操作(通过非WM消息外包)的情况下,被视为“阻塞”的HTTPS消息被外包到能够传回执行的真实性和完整性的凭证的计算机(SGX飞地)实际上,(在等于给定阈值的持续时间之后)证明是阻塞的所发出的HTTPS消息系统地进行取消和外包。
消息为轻且非阻塞的事实使得能够实施WN,这不需要最新芯片制造技术,并且使它处于数个WN制造者的所及范围内(且降低了它的成本),由此即使在制造者方面,也促进了去中心化,这也是本发明的一个目标。在下文,描述应用类别(在“不具有受信任第三方的知识交易”部分中)。
最后,图23示出WM能够以交易(tx)形式转移价值(标记),这在下文描述于“标记”、“CMMU-密码存储器管理单元”和“CCC的改进”部分中。
接下来,详细地描述基于此类WN的系统的一些方面和特征。
去中心化标识
首先,将描述一种用于基于采用图形的不同路径的WN的用户之间的标识而向WN指派连接权重方法,然后将描述使用此类连接权重的不同方法。
带外通道上的通信
为了以去中心化方式标识自身,个人可通过相应的智能终端直接交换他们各自的公开密钥,并向彼此确认与他们相关联的属性。在此阶段,保护自己不受插入的人的攻击是必不可少的,这个插入的人被称为MitM(使用英语术语的“中间人攻击(Man in the Middleattack)”)。以下是允许两个人在不具有MitM风险的情况下交换他们的密钥的方法的实例(所述方法可适用于n个人):
1.第一用户(和它的终端,例如,移动电话)接近另一用户并向他示出随机数(一次性使用的任意数),所述随机数呈现为在它的终端中从这一随机数产生的QR码的形式。
2.所述另一用户(这个用户位于附近且正在使用它的终端)将此QR码拍照,并解译它以再生此随机数、计算它的哈希(哈希被理解为意味着应用常见的预定义加密哈希函数的结果),并将自己的未经译码的公开密钥和所述随机数的(哈希的)签名传回到第一用户。(应注意,可经口传送秘密“密码”,而不是——或外加——QR码,如果用户不在附近,那么这可通过电话进行,并且另一用户在它的终端中计算此“密码”的哈希,而不是随机数的哈希,然后传回其具有密钥的签名)。
3.第一用户的终端相对于所接收的密钥和随机数(和/或密码)验证签名,并记录所述另一用户的(公开)密钥。
4.在它们的终端可靠(参看WO2016120826A2中的钱包节点的描述)的情况下,两个用户现在可传送加密信息(任选地通过产生/使用常见的Diffie-Hellman密钥)——自然开始于通过第一用户进行的它的公开密钥(借助于所述另一用户的公开密钥进行加密)的通信。这些通信还包含每一用户能够在先前使用相同方法接收的其它用户的密钥,或通过又其它用户以相同方法传送到这些其它用户的密钥,等等。
所述第一用户的节点据说“IRL连接”(IRL指代“在现实中(In Real Life)”)到通过上述方法向所述节点传送它的密钥的所述其它用户中的每一个的节点,每一节点通过其公开密钥(或从其导出的地址)标识。
在(如上文所提及)节点还向彼此传送未IRL连接但通过一个或多个中间节点间接连接的节点的密钥的情况下,每一节点可重构构成它的“周围环境”的网络的一部分,并且使“连接权重”与周围环境中的每一节点相关联。
接下来,描述用于通过第一节点(N1,用户)确定构成它的周围环境的节点(全部被称为“第二节点”)的相应连接权重(相对于第一节点)的方法的数个实施例。
所述方法通过节点N1的周围环境中的8个IRL连接(或“实际连接”)的实例说明,所述周围环境由六个节点(包含N1)组成,其中将由此确定连接权重。连接是双向的,且实线表示IRL连接。
这些方法根据可有利地通过学习优化的配置参数(例如阈值或权重系数)来实施。
应注意,以引用的方式并入本文中的申请WO2016120826A2描述如何使此类去中心化标识过程完整,具体地说,基于通过其它用户辨识的用户属性以及基于WN图形。
通过蒸馏的连接权重
方法通过第一节点(N1)实施,所述第一节点(N1)使它的周围环境中的每一节点与连接权重和影响因数(隐式地默认它们等于零)相关联。最初,第一节点具有等于1的影响因数(且所有其它节点隐式地具有零影响因数)。所述方法包括以下步骤:
步骤1:每一第二节点的连接权重是与第二节点IRL连接(或IRL连接到第二节点)的节点(被称为“第三节点”)的影响因数加上其先前连接权重的经归一化的总和。接着,连接权重再次进行归一化(也就是说,除以2)。
步骤2:每一第三节点的影响因数是与第三节点IRL连接的(第二)节点的连接权重的经归一化的总和。
步骤3:从步骤1开始重复这一处理,直到收敛为止(也就是说,只要在步骤2中确定的最后一个连接权重和先前连接权重之间的差保持大于阈值就重复)。
图1a呈现节点之间的IRL连接的实例。由所述方法产生的通过第一节点而与第一节点的周围环境中的节点相关联的连接权重在每一节点上指示。应注意,IRL连接的节点3的连接权重(等于0.15)小于未IRL连接的节点5的连接权重(0.21),这是因为未IRL连接的节点5通过节点1和6的集群间接连接。
有利的是,第一节点(用户)将仅从连接权重大于或等于与其IRL连接的节点的连接权重中的最小连接权重的节点接受消息(WM)。换句话说,对于所述用户,来自连接权重小于IRL连接到第一节点的所有节点的连接权重的节点的消息(WM)无效。因此,在图1a的实例中,N1接受从它的周围环境中除节点4(其连接权重0.12小于IRL连接到第一节点的所有节点,即节点1、3和6的连接权重)以外的任何节点到达的消息(WM)。
应注意,WM的验证可实施有应用于连接权重(根据配置参数确定,如已经论述的)的系数。因此,来自乘以给定系数的连接权重小于IRL连接到第一节点的所有节点的连接权重的节点的消息(WM)无效。
图1b呈现放置在一组第二节点(“第2节点”)和第三节点(“第3节点”)中的这些相同节点。第三节点的相应影响因数和第二节点的相应连接权重在第一次迭代之后的值在圆括号之间指示,当它们收敛时,它们加下划线指示。
最后,在此方法的步骤1中,(根据配置参数,具体地说根据周围环境的大小确定的)系数可在添加之前有利地应用于所述先前连接权重。
连接权重为接近度
根据此变化形式,第一节点(用户)基于通向它的中间节点的数目(和配置参数)向第二节点指派“连接权重”。
例如,权重1与第一节点自身相关联;权重0.5与IRL连接到第一节点的节点相关联,且权重0.25与IRL连接到与第一节点IRL连接的节点的节点相关联,等等,在每次添加额外的中间节点后将它们除以2(如果那是参数)。
通向同一节点的每一额外路径进一步增加了与此节点相关联的连接权重。例如,如果对于与当前连接权重0.25相关联的节点,另一路径分摊0.12,那么与此节点相关联的因数增加此额外摊款的一半(如果那是参数),即,0.25+0.12/2=0.31(额外摊款的一半加上最高摊款)。
连接权重进行归一化。图2a示出“接近”节点N1的连接权重的实例,所述连接权重通过此节点而与它的周围环境中的节点相关联。
混合方法
第一节点(用户)向第二节点指派“连接权重”,如下:
在第一节点的周围环境中的节点当中,
●存在的IRL连接到第二节点的第三节点越多
●且它们越接近第一节点,
第一节点到第二节点的连接的权重越大,
●第三节点的影响(influence)还是IRL连接到第三节点的第二节点的连接权重的函数。
如在“通过蒸馏的连接权重”方法的情况下,此环形定义需要通过收敛(或准收敛,也就是说,额外迭代的增益可以忽略)之前的连续优化操作的迭代方法,在所述方法中,给定节点可反过来扮演第二和第三节点的角色。
实施所述方法可包括以下步骤:
步骤1:接近度因数(到第一节点的接近度)基于配置参数而与在用户的周围环境中的每一节点相关联,如先前部分“连接权重为接近度”中所描述。
步骤2:连接权重与用户的周围环境中的每一(第二)节点相关联,所述连接权重等于IRL连接到(第二)的(第三)节点的相应接近度的(经归一化的)总和。
步骤3:影响因数与用户的周围环境中的每一(第三)节点(重新)相关联,所述影响等于用户的周围环境中的(第二)节点的连接权重的总和。此因数进行归一化。
步骤4:新连接权重与用户的周围环境中的每一(第二)节点相关联,所述新连接权重等于“影响*接近度”乘积的(IRL连接到第二节点的节点的)经归一化的总和,
“影响*接近度”乘积进行归一化,也就是等于IRL连接到第二节点的用户的周围环境中的(第三)节点的相应影响的经归一化的总和,所述影响通过(第三)节点到第一节点的相应接近度(或这些因数的另一组合,如下所述)进行加权。
步骤5:只要在步骤4中确定的最后一个连接权重和先前连接权重之间的差保持大于阈值(基于配置参数),就从步骤3开始重复进行。
基于具有连接权重待确定的6个节点的周围环境的相同实例,在图2a和2b中说明此方法。
图2a表示用户的周围环境中的节点,所述节点(通过“2”标识)具有它们相对于第一节点的相应接近度因数(在步骤1中计算),因数以斜体形式指示。
图2b表示成两组的这些相同节点:一组第三节点(“第3节点”)和一组第二节点(“第2节点”)。此图指示(在圆括号中)每一第二节点的初始连接权重(在步骤2中相对于第一节点计算)(为IRL连接到第二节点的第三节点的相应接近度的总和)。初始影响因数(在第一次执行步骤3时计算)在每一第三节点的左侧的圆括号中指示(此因数等于与第三节点IRL连接的节点的连接权重的总和)。在收敛之后的在步骤4计算的连接权重(相对于第一节点)通过加下划线指示(在第2节点中)。
在本实例中,针对节点“4”具有值0.09的初始连接权重(其在图2b中在第二节点中的圆括号中指示)通过使节点“3”和“5”的接近度因数(在图1a中指示)相加,然后将此相加的结果除以连接权重的和以便对它们进行归一化(0.14+0.12)/2.76=0.09)来获得。与节点“3”相关联的具有值0.09的初始影响因数(其在图2b中在第三节点中的圆括号中指示)通过使节点“2”和“4”的初始连接权重(在图2a中在第二节点中的圆括号中指示)相加,然后将此相加的结果除以影响因数的和以便对它们进行归一化(0.18+0.09/2.96=0.09)。在最后步骤中,连接权重通过将“影响*接近度”乘积(并通过对其进行归一化)获得。此处,方法在三个步骤中收敛以向与节点“3”相关联的最终影响因数(在图2b中在第三节点中通过加下划线指示)提供值0.1,并且向节点“4”的最终连接权重(在图2b中在第二节点中通过加下划线指示)提供值0.05。关于节点5的最终连接权重,方法收敛到值0.13,其等于节点3的值。
最后,在最后一个变化形式中,在混合方法的步骤4中,用于计算连接权重的表达式中的项“影响*接近度”可被“λ*影响+(1-λ)*接近度”类型的表达式替换,且λ系数通常可采用值0.5。有利的是,在每次迭代步骤5时,此系数增加,每一第三节点的接近度因数(到第一节点的接近度)由此逐渐为IRL连接到第一节点的第二节点到第一节点的连接的权重开路。
用于确定连接权重的方法的各种实施例,例如上文呈现的方法,可进行组合。有利的是,它们的结果可根据通过学习优化的系数进行加权。这些结果使得第一节点(用户)能够在此文本中呈现的不同方法的上下文中验证其它节点。
冗余密钥通信
如果冗余地使用多个节点,那么连接权重使得有可能使用类似于上文在“带外通道上的通信”部分中所描述的连接方法但是自动进行的连接方法。
下文在第一节点(Alice)和第二节点(Bob)之间通过具有相对于第一节点的高连接权重的中间节点的密匙交换的实例中描述实施此方法的方法。对此实施方案,对应于这些节点的WN能够通过多个通道(例如SMS、电子邮件等)接收或发出消息。此方法包括以下步骤:
1.Alice的WN在具有到Alice节点的最高连接权重且优选地具有(如果适用)到Bob节点的最高连接权重的中间节点当中选择N个中间节点(在本文中,选择三个中间节点[N=3],此数目根据配置参数确定,它特别地是这些连接权重的值的函数),并且以加密方式将待传送给Bob节点的随机数传送给它们;
2.所述中间节点的WN使用单独的且易于自动化的通道,例如SMS,以(冗余地)向Bob节点传送相同随机数以及它们相应的公开密钥(如果它们使用彼此不同的通道,那就更好了);
3.Bob节点的WN检测这些随机数的到达,并将它对此随机数的签名以及它借助于此随机数的公开密钥进行加密的公开密钥传回到所述中间节点;
4.所述中间节点的WN通过具有此随机数的Bob节点验证签名(通过利用它的公开密钥进行解密以及通过验证它的哈希),并且在验证成功的情况下,将它们自己签名且利用Alice的公开密钥加密的Bob节点的密钥传送到Alice的WN;
5.接着,Alice的WN记录Bob节点的密钥,并且可接着与此节点交换加密信息。
由此交换的密钥可表示所述中间节点的连接权重越高,连接权重的数值越显著,就全部越安全的连接。与其中所述中间节点具有高连接权重且存在足够数目的节点的连接标记为“准实际”,且用于确定连接权重的方法(例如,上文所描述的那些:“通过蒸馏的连接权重”、“作为接近度的连接权重”和“混合方法”)将它们比作到最接近系数的IRL连接。
有利的是,在上述方法的步骤1中,不是Alice的WN分别产生所述随机数,而是与所述所选择的中间节点的WN共同产生此随机数。此互补方法还是自动的,并且包含以下步骤:
1.通过所选择的N个节点的所述WN中的每一个以及通过Alice的WN产生随机数(各自单独地产生随机数并在步骤3之前一直保密);
2.在这些WN之间(以加密方式)交换它们产生的所述相应随机数的哈希(同时他们自己仍然不公开随机数);
3.在这些WN之间(以加密方式)交换未经译码的随机数,且每一接收节点验证接收到的随机数是否实际上对应于在步骤2中接收的相应哈希;
4.根据先前协定的共同规则(例如,简单的算术运算),通过组合它们产生的所述相应随机数来产生最终随机数(将传送给Bob的最终随机数)。
此外,在“冗余密钥通信”方法的步骤2中,中间节点并不会只向Bob节点传送相同的最终随机数,而是还传送它们各自单独产生(如上文所描述)的相应随机数;在步骤3中,Bob对接收到的一组这些随机数进行签名;这允许在步骤4中N个中间节点确定Bob实际上已接收到传送给他的全部N个随机数。
有利的是,在其中足够数目个中间节点的连接权重在两侧上为高(相对于Alice和相对于Bob)的情况下,第一节点(Alice)的WN直接从这些中间节点获得第二节点(Bob)的密钥。
利用现有社交网络
现在将描述社交网络上的“WN app”应用程序。此app的用户“Alice”构成社交网络中的一个节点。此app能够在多个通道(例如SMS、电子邮件等)上接收和发出消息。
在安装后,WN app:
●产生它的一对私用/公开密钥(除非WN app与硬WN耦接,在此情况下这一对密钥已经存在),
●存储通过社交网络提供的直接连接的“朋友”(“Friends”)列表;
Friends(Alice)
●并确定(通过向朋友请求)哪些朋友已安装WN app(以及邀请没有WN app的朋友安装WN app):
FriendsWN(Alice)
就特定节点进行IRL连接并用作中间人来说,朋友的连接权重可根据上述方法确定、作为属性添加到所述朋友节点的列表,并且可从这一列表进行访问。因此,具有大于给定阈值(此阈值根据配置参数确定)的连接权重的朋友可通过函数调用再次找到,例如以下:
FriendsWNConnected(Alice)
为了IRL连接到作为FriendsWN(Alice)的部分的朋友节点“Bob”,Alice可通过带外通道向他传送随机数,Bob必须对这个随机数进行签名并将其传回给Alice,如上文所描述。
然而,可利用社交网络以便根据自动方法(仅仅通过扩展在“冗余密钥通信”部分中描述的方法)传送Bob节点的WN app的密钥:
1.Alice节点的WN app在FriendsWNConnected(Alice)和FriendsWN(Bob)之间的相交区的要素当中选择具有到Alice节点的最高连接权重并且优选地还具有到Bob节点的最高连接权重的N个朋友(在本文中,N=3,此数值N根据配置参数确定,其具体地说随这些连接权重的值变化),并以加密方式将待传送到Bob节点的WN app的随机数传送给它们;
2.这些朋友的相应WN app使用单独的且易于自动化的通道,例如SMS,以(冗余地)向Bob的WN app传送此相同随机数以及它们相应的公开密钥(如果这些朋友使用彼此不同的通道,那就更好了);
3.Bob的WN app检测这些随机数的到达,并在社交网络中(在它的墙上)公布它的公开密钥和它对此随机数的签名——此外,任选地,Bob的WN app将它对此随机数的签名和它的公开密钥直接传回到Alice的所述三个朋友的WN App,所述签名和公开密钥借助于所述三个朋友的公开密钥加密;
4.Alice的所述三个朋友的相应WN app通过具有此随机数的Bob的WN app验证签名(通过利用它的密钥进行解密以及通过验证它的哈希),并且在验证成功的情况下,将它们自己签名且利用Alice的公开密钥加密的Bob节点的密钥传送到Alice的WN app(有利的是,此外,它们通过在Bob的墙上公布它们自己的签名来认证此密钥);
5.接着,Alice的WN app通过利用此密钥对Bob节点在其墙上公布的签名进行解密并通过验证随机数的相关联哈希来验证(复查)Bob节点的密钥,记录Bob节点的密钥,接着可在验证成功的情况下,与Bob节点交换加密信息。
此处同样地,与其中所述朋友具有高连接权重且数目足够的节点的连接标记为“准实际”,且用于确定连接权重的方法将它们比作到最接近系数的IRL连接。
有利的是,Bob在社交网络中公布的它的公开密钥始终可由作为朋友连接到Bob的至少所有节点访问。
并且此处同样地,有利的是,在上述方法的步骤1中,所述随机数并不是由Alice的WN app分别产生,而是所述所选择的朋友节点的WN App共同产生此随机数。此互补方法与上方呈现的方法相同,除了此处的WN是WN app之外。
同样如上文所描述的,所述N个朋友还将向Bob(分别)传送不同随机数,所述不同随机数将产生最终随机数,并且将允许所述N个朋友验证Bob确实已接收到它们传送给他的全部N个随机数。
最后,在其中足够数目个中间节点的连接权重在两侧上为高(相对于Alice和相对于Bob)的情况下,第一节点(Alice)的WN直接从这些中间节点获得第二节点(Bob)的密钥。因此,为了连接到“Bob”节点的WN app,“Alice”节点可向他询问(通过WM消息)它具有高连接权重的朋友:
FriendsWNConnected(Bob),
并且采用具有它自己的高度连接的朋友的相交区:
FriendsWNConnected(Alice),
并且,如果此相交区不为空,那么从这一由选自具有最高连接权重的那些朋友的朋友组成的相交区的子集请求Bob的密钥。
WN镜像
有利的是,针对具有“镜像节点”的每一节点创建冗余,其中数据保持同步,并且其中一些执行成镜像处理操作以便同时进行以下操作:
●缓和“无响应性”,以及
●缓解篡改(“tampering”)的风险。
定义:
“节点”(钱包节点)现在是通过多个镜像节点具体化的虚拟节点(用符号VWNx表示用户x的“虚拟钱包节点”),包括:
●实际节点RWN(对应于所述虚拟节点),以及
●一组副署节点CWN。
在本发明的这一方面中,两个节点(WN)可仅通过“智能合约”(参看申请PCTWO2016120826A2中描述的“钱包程序”[WP]智能合约)连接,所述“智能合约”在它们相应的节点上执行:
●如果它们各自与大于公共镜像节点的第一给定阈值的数值相关联,所述公共镜像节点具有大于第二阈值(阈值根据配置参数确定)的连接权重(相对于这些节点中的每一个),并且
●当两个节点通过执行智能合约(WP)交互时,从一个节点发送到另一节点的消息(WM)仅在至少10%(或同样根据配置参数确定的另一百分比)的公共镜像节点已相同地(“成镜像模式”)执行此合约且已向另一节点发出相同消息(WM)时才有效。
换句话说,消息(WM)的接收节点仅在发出和接收节点的镜像节点的相应组具有要素数目大于第一给定阈值的相交区且接收节点已(冗余地)从属于此相交区的所述镜像节点的至少一个给定部分(对应于第二阈值)接收到这一相同消息时才验证此消息。
例如,Bob节点的实际WN app将仅在它还从Bob节点和Alice节点的至少10%的公共镜像节点(它们也是WN app,例如)接收(以Alice节点的名义)发出的这一消息时才认为通过Alice节点的实际WN app发送的WM消息是有效的。
执行钱包程序的每一节点使它的数据(即:它的钱包程序的永久状态变量(PSV)以及下文描述的它的“标记”)在一组这些镜像节点上同步,此组包含与其中所述每一节点具有有效钱包程序的节点相同的镜像节点的所有相应组的并集。
实行所述数据同步:
●部分地通过发送(通过钱包程序)WM消息,其触发在接收节点上执行的(相同)钱包程序对数据(PSV和标记)的更新,以及
●对于不接收它们的节点,数据直接通过数据更新通知WM同步。
此外,每一节点使它的镜像节点列表与具有高于阈值的连接权重的节点同步,且所述数据同步相对于这些镜像节点列表实行。列表的同步通过对应的WM实行。
图3a示出WM从给定VWN1到接收方VWN2的传播。
镜像节点RWN1、CWN1各自存储VWN2的镜像节点的列表L2,以便能够针对所有发出镜像节点和接收镜像节点路由具有相同内容的WM。
图3b以更精细的方式描述消息在镜像节点之间的发送。它示出了取自公共副署节点组中的两个组:Alice和Bob的节点之间的CWNAB,以及Bob和Carl的节点之间的CWNBC,这两组的并集(+实际Bob节点RWNB)是Bob节点的一组镜像节点,其在任何WM消息发送到Bob节点之后同步。
因此,Alice和Carl的节点各自不仅知道它们与Bob节点相同的相应镜像节点,还知道Bob节点的整个镜像节点组(归功于上述镜像节点列表的同步)。
图3b还示出在与用户(Alice)交互之后由Alice节点产生的WM消息,所述WM消息待发送到Bob节点。首先,通过实际Alice节点RWNA向Alice的镜像节点CWNAB发送WM消息的宣布消息(用符号PWM表示“前钱包消息”),所述Alice的镜像节点CWNAB与Bob节点(示出单个PWM以免使附图过载)相同,且Alice的其它CWNXA节点接收数据同步消息(用符号DSM表示“数据同步消息”)。接着,实际Alice节点RWNA和与Bob节点相同的副署节点CWNAB中的每一个将所讨论的WM消息发送到Bob节点,也就是发送到实际Bob节点RWNB并发送到Bob节点的副署节点发送(仅示出这些WM消息中的一些以免使附图过载)。
此处应注意,当此类WN将通过CWN发送到其自身时,它并未发出(此处,CWNAB并不向其自身发送WN)。
图3c示出在实际节点RWNB出于某一原因而无响应性的情形中,通过DSM类型的消息使Bob的一组镜像节点(RWNB、CWNAB、CWNBC)同步的尝试阶段。
最后,图3d示出通过节点VWNB发送到Carl的节点VWNC的WM'消息,所述消息不是在实际Bob节点与它的用户(Bob)交互之后产生,而是在从Alice节点接收所述WM消息(通过所执行WP的指令产生)之后产生。在此情况下,实际上已从Alice节点接收到此消息的镜像节点能够产生用于Carl的节点的所述消息(通过执行此WP)。然而,图3d示出实际Bob节点无响应性,且因此并不发出WM'消息(其在图中由“!”表示),以及尽管如此,Bob节点的其它镜像节点仍然向Carl节点VWNC发送此消息(这解决了无响应性的问题)。
最后,再次,因为WM'消息不是在与用户交互之后(通过Bob节点)发出,而是通过响应于WM消息(从Alice节点接收)来执行智能WP合约(在此Bob节点上),接收WM'的VWNC的镜像节点中的每一个将请求从10%(或根据配置参数确定的另一百分比)的与(Bob的)此节点相同的镜像节点CWNBC接收相同消息。Carl可因此预料到:所述消息确实已产生,且确实已由尚未更改的所讨论的智能WP合约产生(通过此方式解决了提交保证问题)。
接下来将描述选择镜像节点的过程。
对于每一节点,镜像节点的连接权重各自大于或等于它的周围环境中的IRL连接节点(或成准实际连接的节点)的最低连接权重。有利的是,系数可应用于它:每一镜像节点的连接权重在与它IRL连接的节点的连接权重当中必须大于或等于最低连接权重乘以系数(根据配置参数确定)(且对于成准实际连接的节点,大于或等于最低连接权重乘以另一系数)。
在WM的发出节点和接收节点之间的所述公共镜像节点当中,它们中的至少一个(或一定数目,根据配置参数)是硬WN(硬WN是如申请PCT WO2016120826A2中和下面在“CMMU”部分中所描述的SoC),每一硬WN的公开密钥(对应于秘密私用密钥)通过它的制造者认证,并且这些硬钱包节点可来自不同制造者——然而,在节点之间交换的消息仅在它们的制造者自身的节点通过共同制造者的镜像节点链接时有效(参看下面的描述)。
在针对给定节点的镜像节点检测到冲突(在与节点相关联的镜像节点之间的同步期间,或在从所述给定节点的镜像节点接收到不兼容WM之后等等检测到冲突)的情况下,检测到此冲突的节点向相应的制造者报告冲突的镜像节点的密钥的信息,且接着这些密钥被这些制造者撤销。接着,它们在再循环之后被替换掉。这根据以下步骤实施:
与每一制造者相关联的是硬WN,所述硬WN表示制造者且它自身就是制造者(认证它自身的公开密钥);
每一制造者节点IRL连接到每个其它制造者的节点,所述每个其它制造者通过在“带外通道上的通信”中描述的方法将它的密钥传送到所述每一制造者节点,其中的一些还将其它制造者节点的密钥传送到所述每一制造者节点,由此间接连接到所述其它制造者节点,它们各自由此构成所述每一制造者节点的周围环境,连接权重与周围环境中的每一节点相关联,如上文所描述;
对于将通过其接收节点验证的任何WM,发出节点的制造者节点的镜像节点的相应组以及接收节点的制造者节点的镜像节点的相应组必须具有相交区,其要素数目大于给定阈值(再外加上文关于发出和接收节点的镜像节点所指定的两个条件)——因此,就来自不同制造者的硬钱包节点必须能够交互来说,镜像节点与这些制造者的节点相关联;
在冲突(在同步(通过DSM消息)期间,或在从相同发出节点的镜像节点接收到不兼容WM后,等等)的情况下,冲突的镜像节点的密钥的信息通过发送消息(WM)来传送到它们相应制造者的节点(并且,如果它们不同,那么传送到它们相应的镜像节点);
制造者节点(也就是其镜像)在撤销列表中记录冲突的镜像节点的密钥;
为硬WN的冲突的镜像节点被相应的制造者替换;
在冲突解决的情况下,分别恢复/重新发送(适用时)因为冲突而暂停的所述同步(DSM)和/或WM消息;
在冲突持续的情况下,大部分硬WN被视为真实的,且不同于它们的镜像节点无效且在黑名单上。
在黑名单上的节点的信息立即传送到用户的周围环境中的节点,并且从那些节点传送到它们自己的周围环境中的节点,等等(且方法可为复杂的,取决于拜占庭共识协议领域的现有技术水平和进展)。
应注意,类似于以太坊的“油(gas)”(参看《以太坊:安全去中心化一般交易分类账(Ethereum:A secure decentralized generalised transaction ledger)》,EIP-150修订,Dr.Gavin Wood——附录G:费用表——http://paper.gavwood.com/)的成本代币可用于控制通过镜像进行处理操作,所述成本通证使得有可能标识合约执行的操作(计算、存储、对存储器的访问等)之间的相对成本。
WN向外界发出消息
为了向外界(也就是向不是WN的实体)发送消息,为硬WN的每一镜像WN向其它硬镜像WN(如果适用)提出它自己发出所讨论的消息,且第一个提出的获胜。所述方法包含以下步骤:
●第一硬镜像WN向其它硬镜像WN(如果适用)提出发出所讨论的消息,所述提议在先前协定的持续时间(根据配置参数)之后到期;
●当此类提议被硬镜像WN接收到时,如果此提议先于接收到或发出(对于所述所讨论的消息)的另一提议,那么它被批准;否则它被拒绝;
●当批准的数目大于已响应的硬镜像WN的数目的一半时,指派此提议,接着实际发出所讨论的消息,且通知其它硬镜像WN所讨论的消息实际已被接收。
视情况而定,发出所讨论的消息的需要可直接关闭或在来自接收方的回复到达时关闭。此外,所属领域技术人员还将能够利用涉及拜占庭共识协议的现有技术水平。
标记
此处再次参考以申请人的名义详细地描述于文件WO2016120826A2中的“钱包节点”WN的概念。WO2016120826A2的图7呈现节点“WN 1”向节点“WN 2”支付10个计算单位(UA)。这10个UA从WN1的余额(“balance”)中减去,并加到WN2的余额中,这些余额是这些WN的永久状态变量(PSV表示“永久状态变量”)。
参考图4,接下来将考虑此类UA余额不是在WN中执行的某一特定WP的PSV,而是被称为“标记”(或“价值标记”)的数据,它可在WN上使用,而不管是什么执行它的WP。以标记形式由WP供应的UA由此属于WN,且可供另一WP在相同WN上使用——它们是整体考虑的WN的永久状态变量。
考虑一个实例,接收从节点WN1支付的消息WM1的用户WN2在节点WN1实行出售之后执行支付钱包程序WP1,然后通过执行保险钱包程序WP2支付保险金。因此,在图4中呈现的实例中,10个UA借助于通过执行WP1发出的消息WM1(此消息包括哈希#WP1)而从WN1转移到WN2,这10个UA由WN2通过执行向节点WN3发送消息WM2(包括哈希#WP2)的WP2来支付以支付保险金。
具体地,作为标记UA,BTC(比特币单位)在下文被考虑,其最初来自在比特币区块链中插入和确认n次的比特币交易(如下文所解释,在此情况下,受惠人WN的秘密私用密钥是对应于比特币地址的私用密钥),但是这不具有限制性,因为相同机制可用于任何类型的UA,特别是由WN从无中创建的UA,例如在礼品卡(Gift Cards)中。具体地说,申请WO2016120826A2描述标记的特定使用,所述标记由“OWN”(“所有者钱包节点”)所有者节点创建,具有在变换链或对数链(供应链)(或商业链)的上下文中通过“VWN”(“查看者钱包节点”)节点认证的属性,并且从一个OWN转移到另一OWN,从而反映以下事实:它们表示的产品实例(product instance)(物理或非实质产品)在现实世界中在这些OWN钱包节点的用户之间转移。
此类标记可在交易中重组(也就是合并或分解)以产生其它标记。例如,参考图5a,在给定交易(tx1)中,构成交易的输入的10个UA的标记和3个UA的标记可重组成构成交易的输出的三个标记,此处为5个UA的标记、6个UA的标记和2个UA的标记,全部UA被保留(图中尚未指示所讨论的UA单位,例如,它可为BTC)。此处“标记转移交易”将指代此类交易。标记转移交易通过能够对指定它的签名密钥的交易的输出进行签名的WN(OWN)产生。应注意,此模型包括比特币交易模型(等等):比特币交易是标记转移交易的特定情况。在图5b中示出另一标记转移交易,其示出10个鱼(10个不同标记)的情况,它们各自具有以欧元为单位的不同价值,变换(例如,切割)到具有100欧元价值的鱼箱(箱具有标签为“tg87”的单独的标记)中,此交易tx2由具有9个鱼的所有者OWN产生。
应注意,标记从一个OWN转移到另一OWN的特定情况,即使没有进行合并或分解,也将在本文中一直通过此类重组交易表示,这是出于实施的简单性目的。标记转移交易的处理的实施将在“CMMU”中部分描述)。
现在,参考图6,将描述一种使用镜像节点(下文描述)的方法,以便缓解一连串标记转移WM中的双花风险,此方法使得特别有可能实施链下比特币交易(区块链的使用变成任选的)。此图示出通过Carl节点发送到Y节点(图中只有其与Carl节点相同的副署节点“CWNCY”)的用符号“WMCY/tgx”表示的消息。此消息WMCY/tgx传输其之前交易(在具有一连串标记的“tgx”链中)先前已经通过消息WMXA/tgx、WMAB/tgx和WMBC/tgx传输的交易。此图旨在示出Carl节点保证具有一个或特定数目个与所有上游节点相同的镜像节点,其中的一个(或一些)是硬WN,此处所述上游节点包含Alice节点(这在图中指示如下:“CWNCY=CWNXA”)。
要记得,比特币交易相当于通过对向至少一个新所有者分配它们的先前交易的至少一个输出进行签名(利用私用密钥)来转移BTC,比特币地址从它的公开代码中导出。此处,我们考虑了WN的秘密私用密钥是对应于比特币地址的私用密钥(也就是WN从它的秘密私用密钥产生比特币地址)的情况。因此,WN能够产生比特币交易,所述比特币交易的输入(或其输入中的一个)与上游交易(例如,所述WN的用户能够访问其输出,因为所述交易在区块链中公布,并且在所述WN中将它作为输入输入到它的终端中)的输出(其意在用于所述比特币交易)连接,并且(任选地)能够宣布(广播)所述交易,以使得它插入在区块链中。这应理解成意味着存在实际且正确形成的比特币交易,其由所述WN产生,但是下面(在“链下比特币交易”部分中)详细说明了不将它插入区块链中的优势。
WN花费的BTC可来源于一连串链下交易,以形成图形并将BTC从一个或多个节点转移到一个或多个其它节点,且意在缓解产生这些交易的这些节点中的任一个上的双花风险。这可通过以下额外条件(其添加到上文关于WM的发出和接收节点的镜像节点所指定的条件)来实现:对于转移将通过其接收节点验证的给定标记(例如,0.5BTC)的WM,接收节点的一组镜像节点与(标记转移交易的)上游图形的每一个节点的一组镜像节点必须具有相交区,其要素数目大于给定阈值,此标记源于所述(标记转移交易的)上游图形的每一个节点的一组镜像节点,并且这两组镜像节点中的至少一个或一个(或它们中的特定数目个)必须为硬WN。因此,通过WN执行所述方法的实施方案包含通过递送标记转移交易的WM的图形从下游传递到上游以及验证镜像节点的相交区的所述条件。
有利的是,每一标记包含上游标记转移交易的图形的信息,各自指示产生它的WN的地址(这些WN被称为“上游WN”),从而使得标记转移WM的接收WN能够直接验证它的周围环境中的所有上游节点中的至少一个镜像(或特定数目)是不是它自己的镜像节点且是不是硬WN,以及对于不被此情况覆盖的每一上游WN,它的是硬WN的镜像中的一个的连接权重是否将使得它能够成为镜像的部分(在可能交换与它的周围环境中的节点的新连接之后)。因此,更精确地说,与每一标记相关联的是全部上游标记(也就是在通向所讨论的标记的所有具有一连串标记转移交易的链中出现在上游图形中的那些),其具有产生所述标记的所有者节点的地址,以及(如果适用)它的每一个后续所有者(OWN)的地址以及它们的镜像节点的地址,从而使得传输标记转移交易的WM的每一接收节点能够直接验证它自己的镜像节点和这些所有者中的每一个的镜像节点的所述地址之间需要的相交区,以及至少一个(或一些,根据配置参数)是硬WN的事实,并且在必要时启动搜索具有高连接权重的节点以便使新镜像节点关联。
知识交易
WN将处理操作外包到受信任计算机(能够传回执行的可靠性和完整性的凭证,例如具有带SGX飞地的因特尔微处理器的计算机)的能力使得有可能直接且比智能合约的现有技术水平更简单地实施不具有受信任第三方的知识交易:
例如,假设用户U1(具有带公开密钥K1的钱包节点WN1)正在寻找向它出售秘密(S1)的另一用户U2(WN2,K2),U2知道所述秘密(S1)但U1不知道,但是U1处于某一原因知道哈希H(S1),且U1准备好为所提供的这一服务支付当前在U1的WN1的(标记的)余额中可用的金额$R1(R表示报酬)。
更精确地说,来自具有密钥K的WN的此类购买竞价包括一组要素{H(S);$R;$P;T[;params]},其在这一具有此WN的签名SigK({H(S);$R;$P;T[;params]})的市场上宣布,其中$P是同意在时间T供应的供应者在他没有这样做时必须支付罚款(同样参看下文的“使用情形”)。随后,术语{H(S);$R;$P;T[;params]}也被称作“竞价要素”。
此处基本上是关于方法如何运作:
1.U1使得钱包程序(WP1)可用并广播钱包程序(WP1),从而使得有可能发出三种类型的消息(已通过抽象方式仅指示基本要素;我们将在下文看到WM的精确组成部分):
● WMBid:WM(Sig,#WP1),其传送用于服务“Sig”的服务出售声明(对应于WN对竞价要素的签名,如上文所描述),其接收方是Sig的签名者且在由后者接受的情况下,提交其发出者(提供所讨论的服务的一方)在给定时限T内未供应而应支付金额$P的罚款;
● WMAccept:WM(WMBid,#WP1),其响应于给定消息WMBid而传送对所讨论的服务出售的接受,并提交其发出者在接收消息WM后支付金额$R(在所讨论的竞价要素中指定),所述消息WM包括其哈希对应于H(S)的秘密(在所讨论的竞价要素中指定);以及
● WMS:WM(WMAccept,S,#WP1),其响应于给定消息WMAccept而传送秘密S,并在接收WN上触发其验证(相对于在先前消息中在所讨论的竞价要素中指定的H(S)),并且在此验证成功的情况下,触发在接收WN上产生通过接收WN的最终WM发送到此消息WMS的发出者的支付金额$R(同样在竞价要素中指定)的交易。
此外,在接收消息WMAccept后,WP1能够将处理操作(此处的处理是为了通过穷举搜索秘密S)外包到受信任计算机,所述受信任计算机能够传回执行的可靠性和完整性的凭证,所述凭证将在发出消息WMS之前通过WP1自动验证。
2.U1宣布它的竞价{H(S1);$R1;$P1;T1[;params1]},它利用它的签名Sig1({H(S1);$R1;$P1;T1[;params1]})广播。
此处是使用情形:
假设WN2的用户U2尚不知道此秘密S,还假设参数params1包含所要秘密的字符的最大数目的指示,所述数目指示受信任计算机将能够通过在合理时间内穷举搜索来找出所要秘密。接着,U2决定使它的钱包节点WN2向U1的钱包节点WN1发送消息
WMBid2:WM(Sig1,#WP1)
作为服务出售,接着(因为U1接受此服务出售),WN1向它回复消息
WMAccept1:WM(WMBid2,#WP1)
作为接受,从而(自动地或在用户U2命令后,其可例如选择要外包的受信任计算机)触发所讨论的到受信任计算机的外包。随后,当结果——对应于H(S1)的所要秘密S1——通过此受信任计算机传回时,WN2自动发送消息
WMS2:WM(WMAccept1,S1,#WP1)
其向WN1传送所要秘密S1,并且在接收此消息并验证所接收的秘密的哈希与H(S1)的对应关系后,WN1产生$R到WN2的支付交易,并(通过WM)将其发送到WN2。
应注意,竞价要素还可表示销售出售,且所述方法的处理使得成为可能通过竞价和反竞价迭代进行协商,竞价要素能够在这些迭代中演变,且接着,消息基本如下(如果一个人认为第一消息,此处为WMBid,通过供应者发送的话):
● WMBid:WM(Sig,{H(S);$R;$P;T[;params]},WP1),其相对于“Sig”传送反竞价{H(S);$R;$P;T[;params]},所述消息的接收方是Sig的签名者,且在“相同地”被后者接受的情况下,提交其发出者(提供所讨论的服务的WN)在给定时长T内未供应而支付给定金额$P的罚款;
● WMAccept:WM(WMBid或WMNewBid,{H(S);$R;$P;T[;params]},#WP1),其响应于给定消息WMBid或WMNewBid而传送反竞价;在{H(S);$R;$P;T[;params]}与后者的竞价要素相同的情况下,此消息WMAccept提交其发出者在接收到包括其哈希对应于H(S)的所述秘密的消息WMS后支付给定金额$R;并且,在出售相同竞价要素的消息WMNewBid在(先前协定的)时限内到达的情况下,此消息WMAccept直接提交其发出者在接收到包括其哈希对应于H(S)的秘密的消息WMS后支付给定金额$R;
● WMNewBid:WM(WMAccept,{H(S);$R;$P;T[;params]},WP1),其相对于给定竞价WMAccept传送反竞价{H(S);$R;;T[;params]},且其接收方是此消息WMAccept的发出者;在{H(S);$R;$P;T[;params]}与此给定消息WMAccept的竞价要素相同的情况下,此消息WMNewBid直接提交其发出者(出售所讨论的服务的一方)在给定时长T内未供应而支付金额$P的罚款(无需等待新的接受消息WMAccept);
● WMS:WM WMAccept,S,#WP1),其响应于给定消息WMAccept而传送秘密S且在接收WN上触发它的验证,并且在此验证成功的情况下,触发产生通过最终WM从接收WN发送到此消息WMS的发出者的支付金额$R的交易。
此方法的变化形式在于移动到所述受信任计算机,以及所供应的验证结果的任务,并且所述受信任计算机提供充当证明的(针对此验证执行的处理操作的可靠性和完整性的)对应凭证。
因此,在供应结果S1而不是简单的消息“WMS2:WM(WMAccept1,S1,#WP1)”时,WN2传回消息
WMA2:WM(WMAccept1,S1,A2,#WP1)
其中A2是在所述受信任计算机中实行的此成功验证的所述凭证,且接着,WN1在产生向WN2支付$R的交易之前不必执行此验证。
在变化形式中,为了提供额外的安全性,传回凭证A2,同时不立即供应结果S1,并且此结果在WN1传回支付交易(包括支付交易的WM)之后供应(其为至少部分的,接着通过在接收结果S1之后发送最终交易来完成支付——还应注意,在结果可能被分割的情况下,数个支付分割迭代可彼此接续,直到供应完成为止)。
传送此类凭证(A2)的行为涵盖更广泛的应用领域,实际上所述验证可有时由长时间且昂贵的处理操作(相比于上述实例,其仅涉及关于所供应的结果S1的哈希对应于开始时指定的H(S1)的验证)或仅仅不必在钱包节点中实行的处理操作组成,所述钱包节点意图仅管理节点之间的协议(agreements)并且为此目的必须保持可用(在执行中)。
最后,可创建问题解决拍卖交易,从而确保,例如,提供更好的出售(更完整和/或更快速和/或……)的供应者保密此交易。此类出售可不仅包括针对给定问题的解决方案的部分,还包括验证所提供的解决方案的处理操作(例如,在软件测试区中)。
WN将处理操作外包到受信任计算机的可能性还扩展了WN网络的能力,WN网络使得有可能在交换中利用中立的第三方进行分配,因为每一WN可由多个制造者以低成本使用可访问且相对常见的技术产生,确切地说,归功于允许WN仅处理关于交换的处理(交换条件、支付等)的这一外包可能性。
“盲代理”
钱包节点使得有可能实施处理操作,同时不公开经处理数据或在这些处理操作中执行的代码。
让我们认为“客户端”装置和“盲代理”装置(或“代理”),客户端基于它发送到代理的数据“I”(代表输入)在代理上运行可执行代码“P”(表示程序)。
针对此可执行代码P采用的执行模型是有限状态机,其执行通过接收传入消息触发且能够发出传出消息。因此,它对传入消息的接收使得产生0到n个传出消息以及0到m个状态改变(永久状态)。
与代理相关联的是一对公开/私用密钥,代理的公开密钥(“K2”)在先前已经认证,且呈可利用某一公开密钥“K”(以SoC的制造者的名义,代表SoC制造者)解密的签名,以保证代理的“盲”属性,且包含执行完整性保证(被称为“哈希锁定执行”、“哈希(hash)”译自“哈希(haché)”)。
首先考虑用于产生“盲代理”的以下方法。在下文,符号“§”用于加密;后面可接着数字(P1)的字母“P”用于程序;后面可接着数字(K1)的字母“K”用于密钥,所述密钥在产生加密(例如在§KP中)的情况下是公开密钥,且在密钥用于产生签名(例如,在signK(X)中)的情况下是私用密钥。此盲代理方法如下:
向客户端提供代理:
1.提供(代表代理制造者)凭证公开密钥(K)(可通过客户端访问)
2.产生代理的公开密钥(K2)
3.利用signK(K2)认证K2(即,可使用K解密)
4.代理向客户端发送K2(且{K2,signK(K2)}可通过客户端访问)
客户端向代理提供可执行代码(P):
5.客户端使用K2加密P(§K2P)并向代理发送§K2P
6.代理在表格PHT(程序哈希表)中解密§K2P、哈希P(#P)并存储与#P相关联的§K2P
7.客户端哈希P(#P)
对于每一执行请求:
8.客户端使用K2加密I+#P(§K2input+#P)(或§K2input+#P+K1,其中K1是客户端的公开密钥)
9.客户端向代理发送§K2input+#P和K1(或§K2input+#P+K1),以及随机数(nonce)(或发送§K2input+#P+K1+nonce)
10.代理(“盲”)解密§K2(input+#P…)以及§K2P(使用#P从PHT获取§K2P)
11.代理(盲)运行具有1的P(在运行中进行解密)(一旦解密的话)、使用K1加密结果(§K1output)并向客户端传回随机数和§K1output(或所有在一起加密)以及signK2(nonce,§K1output…),其中代理的所有者无法看到I、P或这些结果
12.客户端解密结果并通过利用K2对它们的签名进行解密来检查它们。
如上文所提及,有利的是,在步骤8中,并不是仅仅利用代理的密钥K2对I+#P进行加密,客户端还加密I+#P+K1(§K2input+#P+K1),并且在步骤9中,客户端通过发送§K2input+#P+K1传送它的公开密钥K1。接着,代理将结果传回到客户端(在它的地址处可为#K1),同时不公开K1。根据另一选择方案,nonce还可为加密消息的主体(§K2input+#P+K1+nonce)的部分,并且在通过代理传回到客户端的消息中,它也以加密方式出现(§K1output+nonce)。为简单和清晰起见,所属领域技术人员将知道如何轻易实施的这些选择方案在下文不重复。重要的是不公开#P的事实,以使得用户或代理的所有者无法建立它与客户端之间的关系。
在可能实施方案(自然还可考虑其它实施方案)中,从客户端到代理的消息包括:
消息:§K2input+#P,K1,nonce
并且(从代理到客户端的)回复包括:
消息:nonce,§K1output,[K2,]signK2(nonce,§K1output),
(或仅仅
消息:signK2(nonce,§K1output)
在nonce和§k1output可通过借助K2对signK2(nonce,§K1output)进行解密来获得的情况下;但是,在下面,签名被视为由哈希的加密组成)
nonce有利地使得有可能传出消息对应于传入消息,且K2和signK2(nonce,§K1output)使得客户端有可能验证处理确实已通过具有此密钥K2(经认证)的代理执行。
为了客户端能够验证保证“盲”属性的凭证(以及执行的完整性——此处应理解,“盲”包括(subsumes(“subsumes”为英语))通过代理(其利用signK2(nonce,§K1output)对此处理的结果进行签名)的处理的执行的完整性(哈希锁定的执行完整性)),
●在先前将signK(K2)传送到客户端且将其存储在客户端,和/或有利地
● signK(K2)包含在每一回复消息中,如下:
消息:nonce,§K1output,[K2,]signK2(nonce,§K1output),signK(K2)
存在一个人想要相同客户端为具有盲属性的执行的完整性属性的实体的情况,并且,为了保证这一点,一个人还想要(i)从客户端到代理的消息通过客户端签名(signK1(nonce,§K2input+#P)),以及(ii)认证客户端的密钥K1(signK(K1)):
消息:§K2input+#P,nonce,K1,signK1(§K2input+#P,nonce),signK(K1)
(此处,#P是可供客户端或代理使用的可执行代码的哈希)。
此类方法的有效性是显而易见的,例如,在验证电子护照的情况下,参考申请PCTWO2016/120826 A2号的图6:客户端的执行的完整性的保证——执行验证护照的程序,其可执行代码的哈希是#P1——意味着保证存在此护照:
消息:§K2input+#P1,nonce,K1,signK1(§K2input+#P1,nonce),signK(K1).
一个人可接着构想从客户端到代理的消息和从代理到客户端的回复的统一格式(此处以非限制性方式呈现,因为还可选择其它格式),以下:
消息:nonce1,§K2(data+#P1+#P2),nonce2,K1,SignK1(nonce1,§K2(data+#P1+#P2),nonce2),signK(K1).
在具有此格式的消息M中:
● M被视为传出消息(从其发出者的视角),nonce1再生(如果适用)在上游消息中接收的nonce2,其触发产生此消息M的处理;
● M被视为传入消息(从其接收方的视角),nonce2表示将在处理过程期间响应于接收到此消息M而通过所述接收方发出的(每一)传出消息的nonce1;
● #P1是通过此消息M的发出者执行的可执行代码的哈希;
● #P2是在接收到此消息M后实行处理所需要的可执行代码的哈希。
因此,可理解nonce2标识所讨论的消息(M),而nonce1是所接收的触发产生此消息M的处理的传入消息的标识符。
视情况而定,将省略这些自变量中的一些,以便向不同使用情况应用此格式。例如,对于上文呈现的“盲代理”方法,其中从客户端到代理消息包括:
消息:§K2input+#P,K1,nonce
并且(从代理到客户端的)回复包括
消息:nonce,§K1output,K2,signK2(nonce,§K1output),signK(K2)),
呈此形式的从客户端到代理的消息包括以下自变量:
消息:_,§K2(data+_+#P2),nonce2,K1,_,_
并且呈此形式的回复包括以下自变量:
消息:nonce1,§K2(data+#P1+_),_,K1,SignK1(nonce1,§K2(data+#P1+_),_),signK(K1).
有利的是,更完整的消息格式另外包括自变量#spec,其含有(如果适用)联系#P1和#P2,也就是限制#P1后的一组有效#P2的约束的具体说明的哈希:
消息:nonce1,§K2(data+#P1+#P2),#spec,nonce2,K1,SignK1(nonce1,§K2(data+#P1+#P2),spec,nonce2),signK(K1)
在一个实施方案中,此具体说明“spec”可为一组有效可执行代码(#P1、#P2等)。在另一实施例中,参考图11,对于给定其哈希(#P1)的每一可执行代码,所有有效可执行代码的哈希(#P2…)在此具体说明中供应。
在对于给定消息,需要将通过消息的接收方执行的可执行代码(全文)与通过消息的发出者执行的可执行代码相同的情况下,也就是在相同#P从所接收的传入消息传播到所产生的(每一)传出消息的情况下,优选的是,消息的格式为以下格式(并且在下文可使用或参考此特定统一格式选择方案,但是这不具有限制性):
消息:nonce1,§K2data+#P,nonce2,K1,SignK1(nonce1,§K2data+#P,nonce2),signK(K1)
作为参考
参考WO2016120826A2的图5,在SoC内,存在微控制器(Microcontroller),其包括具有内部存储器的通用处理器(“general-purpose processor”,例如实施RISC-V架构的处理器)。只有这个处理器可以访问提供加密功能的“签名”部分,特别是通过SoC的签名的功能性,“签名”部分反过来独自能够访问含有芯片的秘密密钥(Secret Key)的部分。“(Secret Key)”部分在图中在圆括号中呈现,因为在一些实施选择方案中,并不存储而是动态地再生秘密密钥。钱包程序部分存储加密可执行代码(§P)以及它们相应的哈希。Microcontroller在它的存储器中以安全方式载入随包含在传入消息的哈希(#P)(或通过I/O的输入)而变的这些可执行代码中的一个或另一个。可执行代码能够在非易失性存储器中操控仅可通过Microcontroller访问的永久状态变量。在WO2016120826A2中,永久状态变量系统使得所述永久状态变量(PSV)可以访问以仅用于执行这些变量属于的特定相应WP。这些状态变量可由此仅(排他性地)通过它们相应的WP访问/处理。(然而,在本发明中,永久状态变量还包含上述标记。)在通电和电力复位期间,将首先在Microcontroller中载入和执行存储在“检查/载入”部分中的可执行代码,并且哈希可接着与在“钱包程序”部分中可用的WP(重新)相关联。当WM到达(通过I/O)时,此检查/载入部分验证完整性和可靠性(发出此WM的WN的公开密钥用于解密此发出WN的签名并验证消息的完整性;验证表示制造者的凭证签名的密钥,并且接着将它认证的公开密钥验证为WN的密钥,从而使得有可能确认所述WM的可靠性),对应于所述哈希(如果适用)的WP在“钱包程序”部分中选择并载入以供执行。通过所述钱包程序的WM的发出(如果适用)通过签名部分的中间人进行,其在进行签名之前的准备过程中验证插入在WM中的哈希。应注意,在可能实施方案变化形式中,为了向接收WN发出WM,发出WN的签名子系统利用(如果适用)待传输数据借助于接收WN的公开密钥来产生(或验证)处于执行过程中的WP(也就是,当前载入的WP)的加密,并且在所述待发出WM的签名之前将其包含在所述待发出WM中(且在接收后,一旦解密,接收WN就载入以供执行此WP),由此保证相同WP在接收WN中重新执行。有利的是,WP可组织成各种版本;在WM中提供的先前WP版本的哈希伴随所述WM,并且对于存储在芯片中的每一状态变量,最后处理它的WP版本的哈希与它相关联。因此,WP的状态变量可通过WP自身更新,即使它的版本在演变。
在下文,考虑WP,其在WM内借助于特定传输WP从一个WN转移到另一WN(参看下文的可执行代码“PP”)。
正如已经提到的,对应于所述秘密私用密钥的公开密钥由所述片上系统WN的制造者“认证”。此凭证是签名(它是表示制造者的实体的对应于WN的所述秘密密钥的公开密钥的签名),其签名密钥(也就是表示制造者的公开密钥)在同一制造者的所有(或至少多个)片上系统WN之间共享。所述凭证自动产生,不管使用什么产生方法:其中在如TPM或芯片卡的芯片中雕刻所述秘密密钥的方法,其中所述秘密密钥以安全方式存储的方法,其中所述秘密密钥在芯片中根据物理不可克隆函数(“PUF”)技术(介绍于[P.S.Ravikanth,《物理单向函数(Physical one-way functions)》,PhD论文,MIT,2001]和[Pappu等人,《物理单向函数(Physical one-way functions)》,科学,297(5589):2026-2030,2002](具体实施在SoCFPGA Smartfusion2和来自制造者Microsemi的其它芯片中的技术)中)或根据类似于后者的技术而自动产生。发出WM的WN的所述公开密钥的可靠性(具体地说,借助于此WN的秘密密钥实行的签名的可靠性)通过接收此WM的WN在它接收所述凭证时自动验证。有利的是,系统在WM中自动包含所述凭证。
通常,逻辑集成在SoC中,并被称为机内自测试(BIST),其通常用于测试SoC的秘密密钥。根据发明性方面,相同逻辑BIST将用于在进行此测试时,也就是在其产生时,自动产生制造者的签名(凭证),制造者的私用密钥使得此签名自身有可能为秘密的。因此,在进行所述测试时,如果秘密密钥(私用密钥)是可操作的并且使得有可能从其推导出对应的公开密钥,那么公开密钥的凭证请求借助于表示制造者的私用密钥而被传输到签名装置。(如果适用)如此得出的签名有利地雕刻在SoC中。
CMMU-密码存储器管理单元
接下来,将描述片上系统“盲SoC”,以确保“盲”属性,且能够实施在“盲代理”部分的开始处呈现的方法以及具有上文所描述的统一格式的消息。
盲SoC具有秘密私用密钥。盲SoC可仅通过消息与另一装置通信,并且可仅响应于消息的接收而执行程序(如图23中呈现)。此外,盲SoC可存储已经接收到的待执行程序,所述程序以加密方式接收和/或在通过盲SoC加密之后,并且盲SoC可产生每一程序的哈希,此哈希使得有可能再次借助于表格“程序哈希表”(PHT)找出加密程序。装置(客户端)可向盲SoC发送含有用于某一待执行程序(P2)的输入数据(data)的消息,以及所述程序的(#P2)。响应于此类消息,盲SoC(i)基于在消息中接收到的程序的哈希(#P2)而访问待执行程序,(ii)在运行中解密程序,以及(iii)在运行中执行经解密指令。
有利的是,在发出消息之前,盲SoC在消息中将处于执行过程中的程序的哈希(#P1)插入在待发出消息的主体中,盲SoC借助于它的秘密密钥对所述待发出消息的主体进行签名。当消息的用于处于执行过程中的程序的哈希(#P1)与将通过此消息的接收方执行的程序的哈希相同(#P1=#P2)时,在所述消息的接收方提供此程序P2的执行的完整性的保证的情况下,所述程序(P1=P2)是“可执行提交”(智能合约)。(并且,如果针对处于执行过程中的程序发出的哈希(#P1)不同于将通过提供此程序(P2)的执行的完整性的保证的接收方执行的程序的哈希(#P2),但是借助于对这些程序(P1、P2…,如参考图7已经描述)来说共同的此具体说明保证对应关系,那么这些程序表示“可执行提交”(智能合约))。
盲SoC包括CMMU(密码存储器管理单元)单元,其存储——或能够动态地重新产生(通过上文提出的PUF技术)——盲SoC的所述秘密密钥(其可仅由不公开它的CMMU单元访问),并且通过此CMMU单元实行以下操作:
-所述程序在存储之前的所述加密,
-其中将存储由此加密的程序的空间的分配(addr1……addr2范围),此所分配空间还允许存储与此程序连接的永久状态变量,并确保程序相对于彼此的分离,
-程序的哈希的所述产生,以及
-用于在运行中供包含在盲SoC中的至少一个处理器单元执行的所述解密,
-在本描述的下文中描述的其它处理操作。
图21以图解方式呈现通过CMMU接收含有将在存储器(MEMORY)中载入的程序的消息的步骤。应注意,存储器(MEMORY)可以在也可以不在SoC外部,并且包括为上述标记预留的空间。编号步骤表示以下步骤:
1)接收含有将在存储器中载入的程序的消息
2)待载入所述程序进行加密,并且所述程序的哈希在加密之前确定,在存储器中预留可含有此加密程序和其也将进行加密的永久状态变量的空间,并存储所述加密程序,所述哈希随后使得有可能通过表格(PHT)再次找出所述程序。
有利的是,CMMU单元针对每一指令块实行加密程序的所述存储,并每次(向所述处理器)提供单个经解密指令(以供区块包括的指令的处理器执行)。因此,用于在盲SoC中载入程序(可执行代码)的方法有利地包括以下步骤。在盲SoC接收到包括P和#PP(呈加密形式§K2P+#PP…)的消息后,PP是程序载入程序,且P是待载入可执行代码的内容,CMMU单元:
1.解密§K2P…并计算待载入程序的哈希(#P);
2.创建从{#P+盲SoC的秘密密钥}推导出的对称密钥(PK);
3.利用此对称密钥加密此可执行代码的指令块(§PKPi);
4.在存储器中为这些块§PKPi以及未来的由此程序处理的永久状态变量分配存储空间(addr1……addr2),并在其中记录这些块§PKPi;
5.在PHT(程序哈希表)表格中插入包括#P、addr1、addr2的信息。
当含有用于某一待执行程序(P)的输入数据的消息和此程序的哈希(#P)被盲SoC接收时,它的CMMU单元:
1.从在消息中通过PHT表格接收到的程序的哈希#P访问存储在存储器中为其预留的空间(addr1……addr2)中的待执行加密程序的块§PKP;
2.在运行中解密P的指令块并将它们传输到处理器单元;
3.处理器单元在运行中执行输入数据上的经解密指令,与P有关的永久状态变量分离地存储在addr1……addr2中,且所产生的消息包含#P并由CMMU签名。
因此,在盲SoC发出消息之前,CMMU单元在待发出消息中插入处于执行过程中的程序的哈希(#P)以及CMMU借助于秘密密钥对此哈希进行的签名(或在它利用秘密密钥对其进行签名的待发出消息的主体中插入程序的所述哈希),在#P=#P1=#P2的情况下(或根据参考图7的以上描述,在程序根据具体说明分组的情况下)且如果接收实体还保证它们的执行的完整性,那么这使得有可能在本发明的意义上将此类程序用作可执行提交(智能合约)。
图22以图解方式呈现系统的不同部分(PROCESSOR、CMMU、MEMORY)之间的交互,其由以下这些步骤表示:
1)通过CMMU接收含有待执行程序的输入数据以及所述程序的哈希的消息;
2)基于所述哈希,CMMU在PHT表格中定位所述加密程序,在它的高速缓存器中载入它并将它解密(逐块进行);
3)CMMU在运行中向PROCESSOR传输经解密程序(每次一个块)以供执行;
4)如果适用,那么PROCESSOR请求访问已经创建的永久状态变量(PSV和/或标记)创建一些此类变量/更新它们并请求存储它们,或删除一些此类变量,以及
5)CMMU访问、解密/加密及存储所述永久状态变量;
6)如果适用,PROCESSOR准备待发出消息,以及
7)CMMU在待发出消息中插入正在执行的所述程序的哈希以及它借助于秘密密钥的签名,并发出所述消息。
有利的是,CMMU能够在接收WM期间,针对接收到的每一标记转移交易,验证所需要的上文描述的镜像节点组的相交区。
参考图22,WM可由盲SoC发出(通过执行WP程序产生)或接收作为来自用户的输入或通过另一装置接收(“准WM”消息),并且它们包括此程序在所述两个情况中的哈希#WP。
图23呈现作为输入的标记转移消息WM,其递送交易(tx1),此交易在标记(Tags)级在存储器(MEMORY)中发起由此新交易提供的标记的插入,每一标记包括表示一连串上游交易(图形)的数据,如已经描述的,其中每一上游交易与产生它的上游WN的地址和它的WN镜像的地址相关联。为了验证或不验证消息,CMMU利用此信息验证它自己的镜像节点和镜像WN的所述地址之间的所要相交区,以及至少一个(或一些,取决于配置参数)是硬WN的事实。这个图还呈现作为输出的标记转移的WM消息,其递送在WP的指令后由CMMU产生的交易(tx2),CMMU使由这一所产生的交易消费的标记无效(使得不可再次消费)(以免双花),并产生新标记作为它的输出,相应的上游交易图形与它们相关联(基于在它们上游的图形)。
此外,CMMU管理下文在“链下比特币交易”部分中描述的交易的简化:简化包括替换尚未通过替换的新(或最少的可能)交易插入在区块链中的至少两个先验WN间交易,CMMU确保当前余额通过这些替换保持不变(此机制是通用的,标记转移交易比比特币交易更通用)。
图23还示出由主管握手和加密操作的CMMU产生的https请求,使得与它耦接的终端扮演输入/输出接口的角色(在TCP级),以确保端到端的数据的完整性(访问位置是受信任位置)。
最后,CMMU还主管管理和盲SoC对非WM消息的签名(在输出处,如图23中所呈现和上文在“WN向外界发出消息”部分中所描述)。
标记上的约束
CMMU包含使得有可能通过WP程序约束标记的使用的机制。因此,可预留标记以供WP或链接WP使用(参看图7),其方式为使得避免计算单位被未被授权的WP花费掉的可能性。
因此,WP能够向CMMU指示预留标记以供它使用,且CMMU向此标记指派指示存储器MEMORY中的这一预留的标志。
此标志可在发起相同程序时消除,由此使得标记可供另一WP再次使用。
在WP尝试产生通过其中此WP未被授权的标记馈送的交易的情况下,CMMU阻止操作,并且此标记的UA可因此不被消费掉(因为此类交易无法进行)。此架构允许WN预留UA,所述UA通过用于打算通过WP执行的分别为其预留的特定操作类型的标记具体化,并由此基于为此目的阻塞的UA实施提交,例如在WO2016/120826 A2中描述的CCC。
CCC的改进
一般上下文的审核
一般上下文是一组节点,它们是CCC提交的受惠人,并且可自己向其它节点提供相同类型的CCC提交,所述其它节点再次向又其它节点提供等等,节点和CCC提交由此形成“联网保险”网络。
保险费和最大潜在摊款
已向第二节点提供某一类型的CCC提交的第一节点根据此提交在它的CCC余额(所预留的标记的UA的总和)中添加(通常在时间上错开)“保险费”(类似于保险金),以便涵盖一组这些第二节点,并且向每一第二节点指定指示此第二节点被保险费涵盖的金额的阈值,所述阈值被称为“最大潜在摊款”。在由第一节点覆盖的第二节点中的一个发生灾难之后:作为由此第二节点发出的“保险费凭单”(参看下文的定义)的交换,第一节点从它的CCC余额中向此第二节点转移一定金额的UA(参看“UA转移交易”)。此转移的金额是第一节点的CCC余额的函数,且它在针对此特定第二节点指定的最大潜在摊款的金额范围内。
保险费凭单
由第二节点发出的“保险费凭单”是“给持有者”的债务确认书,其在支付执行CCC提交时被此第二节点接收到的摊款时发出,即在发生灾难之后,从作为此CCC提交的供应者的第一节点接收到的摊款。此债务可根据此CCC提交(通常在时间上错开)在为第二节点提供的保险费金额范围内由第二节点收回,并且针对此接收到的摊款分摊(适用于多个接收到的摊款)。保险费凭单是“给持有者”的,使得只要它们相应的债务金额还未被付清(也就是说,只要UA保持待接收),它们就表示一定金额的长期价值,具有一定的“以UA为单位的即时价值”,并且可从一个节点转移到另一节点(参看“UA转移交易”)。保险费凭单的“以UA为单位的即时价值”被定义为它针对所提供的不同项表示的金额总和减去在这些项的持续时间内相应的利息金额的总和。保险费凭单的第一持有人是在执行CCC提交时补偿发出此保险费凭单的第二受灾节点的第一节点。应注意,第二受灾节点在“仅在受灾情况下使用”模式中将摊款转移到第一节点:由此通过第一节点接收到的保险费凭单的即时价值添加到CCC余额(其预留用于为灾害支付)中,并且它无法由经授权WP花费(即使部分地),除非是根据此CCC提交补偿灾难。
并行保险费凭单
所述第二受灾节点还向所述第一节点转移其自身从其过去在同一CCC的上下文中补偿的下游节点接收的所有保险费凭单,且仍然处于“仅在受灾情况下使用”模式,但是此处处于“并行”模式(也就是复制和同步),并且针对它们相应价值的金额的一半(或在CCC中给定的某一比例)。每一保险费凭单可因此同时在数个节点上复制,可仅用于在受灾的情况下,并且仅在所讨论的CCC的上下文中支付(它的即时价值的全部或部分),通过保险费凭单的支付在它所定位的所有节点上(包含在补偿灾难的第一节点上,第一节点是支付的起点且付款首先转移到第一节点)同时(通过同步)消费。为了实现这一目的,通过保险费凭单的每一灾难支付(如果适用)由支付节点向其中它同样进行转移的其它并行节点报告,并且当价值下降到零时,在这一组这些节点上删除灾难支付。
消息发送
现在,将描述实施例,根据所述实施例,后,包含nonce2(且通过nonce2标识)的发出消息在接收到由此消息的接收方传回的且如上文所描述的包含所述nonce2的接收确认(ack)消息后被视为已经由它的发出者“发送”,也就是说,作为自变量nonce1的值。
所述消息在针对给定可执行代码固定的一定时间之后到期,在所述时间之后,它通常重新发出达一定次数(参看下文的“在无响应性的情况下保证提交”部分)。
接收确认因此具有以下形式:
消息:nonce1:receivedNonce2,§K2(data:ack(receivedNonce2)+#P),nonce2,K1,signK1(nonce1:receivedNonce2,§K2(data:ack(receivedNonce2)+#P),nonce2),signK(K1))
此外,参考图8,当发送
●通过第一发出者(WN1)到接收WN2的第一消息(WM1)处于从发送WM1(其通常针对当前可执行代码为固定的)开始的给定时长内,接着发送
●通过WN2到另一接收方(WN3)的第二消息(WM2),
标记为“(ack(WM2))”(在图8中在圆括号中)的消息传播通过WN2从WN3接收的接收确认“ack(WM2)”,并通过WN2发送到第一发出者(WN1)。
为了说明此方法,参考图8,消息WM1具有以下形式:
从WN1到WN2的WM1:nonce1,§K2data+#P,nonce2:N1,K1,signK1(nonce1,§K2data+#P,nonce2:N1),signK(K1)
它的接收确认(确认来自WM1的此发送)具有以下形式:
从WN2到WN1的ack(WM1):nonce1:N1,§K2data:ack(N1)+#P,nonce2,K1,signK1(nonce1:N1,§K2data:ack(N1)+#P,nonce2),signK(K1)
在通过nonce2标识的第一消息“N1”之后,从WN2发送到WN3的图12的消息WM2具有以下形式:
从WN2到WN3的WM2:nonce1,§K2data+#P,nonce2:N2,K1,signK1(nonce1,§K2data+#P,nonce2:N2),signK(K1)
在接收确定由WN3传回的WM2的接收确认后,接收确认具有以下形式:
从WN3到WN2的ack(WM2):nonce1:N2,§K2data:ack(N2)+#P,nonce2,K1,signK1(nonce1:N2,§K2data:ack(N2)+#P,nonce2),signK(K1)
条件是此接收确认在从WM1发送开始的给定时长内到达WN2,如图12中所示,WN2在具有以下形式的消息“(ack(WM2))”中将它传播到WN1:
从WN2到WN1的(ack(WM2)):nonce1:N1,§K2data:{(ack(N2),payload)}+#P,nonce2,K1,signK1(nonce1:N2,§K2data:{(ack(N2),payload)}+#P,nonce2),signK(K1)
payload是取决于所讨论的可执行代码的内容,例如WM2的内容。
在高达给定最大深度(通常,此深度针对给定可执行代码为固定的)的较长消息链的情况下实行同一方法。例如,且参考图8,此链包括
●从第一发出者(WN1)到第二发出者(WN2)的第一消息(WM1),
●后跟着(在给定时长内)从第二到第三(WN3)的消息(WM2),
然后
●后跟着(在从发送WM1开始的给定时长内)从第三到第四(WN4)的消息(WM3),
从第四(WN4)接收的接收确认还逐渐传播到第一发出者(WN1),到达通过WN2发送到WN1的消息“((ack)WM3))”,且包括对应于一连串交换消息的信息“:{(ack(N2),payload1),(ack(N3)payload2)}”:
从WN2到WN1的((ack(WM3))):nonce1:N1,§K2data:{(ack(N2),payload1),(ack(N3),payload2)}+#P,nonce2,K1,signK1(nonce1:N2,§K2data:{(ack(N2),payload1),(ack(N3),payload2)}+#P,nonce2),signK(K1)
payload1和payload2取决于所讨论的可执行代码,且为例如WM2和WM3的相应内容。优选的是,为了保密,仅传送有效传送的部分,任选地在变换之后。
接收确认的这一传播的优势将见于以下方法中。
链下比特币交易
现在,下文描述了基于WN以使转移价值单位的交易具体化(串行化)的方法,其方式为使得能够例如在区块链中记录它们。在下文描述的实施方案中,产生有效且可直接插入在比特币区块链中的比特币交易——但是不一定非要将它们插入在此区块链中,同时提供相同保证,就好像它们被插入一样。(相同方法可基于区块链转置成其它协议,例如以太坊)。因此,在下文中,所讨论的价值单位是BTC。
因此,图9呈现具有三个钱包节点(“WN1”、“WN2”和“WN3”)的实例,其中,首先,WN1的用户(或第三方)创建支持WN1(具有给WN1 10个BTC的输出)传入比特币交易(“Tx1”),且按照惯例广播(“broadcast”)此交易,此交易接着插入在区块链中,这具有向WN1的用户保证仅WN1可以在Tx1上花费可用的这10个BTC的效果。(应注意,即使在独立于WN1创建Tx1的情况下,也提供手段使得WN1被通知此交易和/或在此交易插入在区块链中之后验证/检测它,等待或不等待区块的一定确认次数,并相对于这一新入账更新它的永久状态变量。)
这三个长垂直线表示这些钱包节点的随着时间推移的演变(从上到下)。因此,在Tx1之后,可以这个图中看到WN之间的一连串数个交易(Tx2、Tx3等),以及其它传入交易(来自支持WN1、WN2或WN3的非WN地址,例如Tx4,其是支持WN2的传入交易)和传出交易(来自支持非WN地址的WN1、WN2或WN3,例如Tx7),其中每当可行时,由新交易替换至少两个先验WN间交易,以使得,优选的是,仅一个(或尽可能少的)非广播交易在两个给定WN之间保持,被替换掉的那些交易删除(这意味着它们至少被标记为这样且被视为如同它们被删除),并且当前余额通过这些替换保持不变。一般来说,方法在于一组交易的简化是通过利用它们不进行广播(下文“非广播”)的事实来更新它们。
当产生将BTC从WN1转移到WN2的交易(例如Tx2)时,交易由WN1签名(常规比特币交易签名)并通过消息传送到WN2。创建(或交易的更新或取消,条件是它是非广播的)通过发送消息确认(在先前部分的意义上)。
在图9中,每一交易抽象地由放置在箭头上的方框(方块)表示。此方框内部的数字表示从用户的视角的转移金额。所述传入和传出交易(也就是非WN之间的交易的交易)由比WN间交易大的方框表示。所述余额以斜体表示(沿着长垂直线,在它们的右侧)。WN间交易的所述删除在表示此交易的箭头的尖端处通过短斜线呈现。所述替换交易(例如Tx6)借助于双线箭头以不同方式表示,并且当它们自己被删除(如在Tx8的情况下)时,同样通过短斜线呈现。
因此,图9在左上示出其余额在之前仅为0的WN1上的10个BTC的入账(Tx1)。通过此交易,它的余额由此变成10(以斜体示出)。这10个BTC(通过Tx2)转移到WN2,WN1的余额再次变成0,且WN2的余额从0变成10。接着,WN2(通过Tx3)将5个BTC转移到WN3(它由此还剩余5个)。另外在下文,10个BTC从非WN地址转移到WN2(通过插入在区块链中的交易Tx4),WN2的余额由此从5变成15。WN2将4个BTC转移到WN3(Tx5),这两个的余额由此分别变成(15-4=)11和(5+4=)9。
现在存在两个从WN2到WN3的非广播交易(Tx3和Tx5),并且它们可被转移它们总和的交易(Tx6,转移5+4=9个BTC)替换。由此删除Tx3和Tx5,这在图9中通过表示这些交易的箭头上的短斜线示出。
WN3通过广播的交易Tx7向非WN第三方转移1个BTC。因此,馈送它(在此情况下,仅Tx6和Tx4,如下文描述的图11中所示)整个交易链同样是广播的(插入在区块链中以使得Tx7也可插入),并且它们可因此不被删除——因此它们不再是可替换的。
WN2向WN1转移5个BTC(Tx8)。接着,因为这些WN之间还存在交易Tx2,所以这两个交易(Tx2和Tx8)用从WN1到WN2的Tx9替换,因为它们处于相反方向,所以Tx9转移它们的差(10-5=5个BTC)。由此删除Tx2和Tx8。
此替换交易Tx9在产生Tx12之后删除其自身(均为非广播的),从而产生替换交易Tx13。(图9示出用户所感知的这一替换,而下文描述的图12和13示出在比特币级的这一替换的细节)。
Tx10和Tx15在WN1和WN3之间产生,具有相同值,且处于相反方向,均是非广播的,且可简单地抵消掉,也就是说可被删除而不产生替换交易。(再一次地,有趣的是,在图13和14中看到这在比特币级的细节)。
处于相同方向(从WN3到WN2)的Tx11和Tx16是非广播的,产生转移它们的总和且自身可替换同时保持非广播的替换交易Tx17(图14和13中示出比特币级的细节)。
另一方面,传出交易Tx18(广播)造成馈送它且此后无法再删除的交易链的广播,在此情况下为Tx13(参看图15)。
在图9中呈现的比特币交易是“抽象”的,因为它们呈现出从用户的视角来看的转移金额,但是没有在比特币意义上示出这些交易的输入和输出。图10到15呈现对应于图9的抽象交易的实际交易(通过明确地提供它们的输入和输出)。
用于它们的产生的方法是基于以下事实:对应于WN中可用的余额(在图中呈斜体形式的数字),始终至少存在支持此WN的输出(其上可用的金额)(所有这些输出等于此余额);一个人可组合此类输出以便将它们连接到由所述WN产生的交易的输入,并且在超过的情况下,通过额外输出将剩余额(被称作“零钱”)传回到所述WN。至于涉及到替换/删除的实施,即使在待删除交易(例如,Tx10,参看图13)的输出在相同操作中连接到不应被删除的交易(Tx11)的输入的情况下,后者也可自动更新以便连接到可从另一交易(Tx13)获得的输出。
在图10到15中,交易的输入和输出展示为短水平箭头,且它们的连接展示为细弯曲虚线(交易的标记为“WN1”的输出连接到后一交易的同样标记为“WN1”的输入,以此类推)。
在这些图中隐含的是,交易的创建包括在先前部分意义上发送消息。例如,通过WN2产生Tx3导致通过WN2发送向WN3指示的消息,并且此交易实际上仅在WN3传回接收确认后创建(同样参看“在无响应性的情况下保证提交”部分)。
图10示出实际交易Tx1到Tx5,它们对应于具有与图9中相同的标志的抽象交易。可以看到,尽管根据图9,Tx3仅向WN3转移5个BTC,但是它的输入从Tx2获得10个BTC(因为Tx2仅具有支持WN2的10个BTC的输出)并向WN2传回5个BTC。换句话说,Tx3具有支持WN2的5个BTC的输出,外加支持WN3的5个BTC的输出。
图10的交易Tx3和Tx5在图11中用WN2产生的交易Tx6替换(所述替换通知被发送到WN3)。为了实行此替换,WN2可将Tx6连接到Tx2或传入交易Tx4。传入交易Tx4是优选的,因为上游的馈送交易链更短(或通过应用更复杂的探试法)。实际上,这个图表示从一开始广播的传出交易Tx7,并且另一方面,如果Tx6连接到Tx2,那么Tx2也必须已经广播过,且随后不可被替换,如图12中表示。
图12呈现用Tx9替换Tx2和Tx8的结果,以及通过WN1进行(到WN3)的交易Tx10、通过WN3进行(到WN2)的Tx11和再次通过WN1进行(但是到WN2)的Tx12的产生。
图13呈现在产生Tx12之后Tx13对替换交易Tx9的替换。实际上,如图9(和图12)中所示,这两个交易的累积效应是从WN1向WN2提供5+4=9个BTC。此替换具有更新Tx10的输入以及它的现连接到新交易Tx13的第二输出的效果。在此图中,还看到交易Tx14到Tx16的产生。
Tx15的产生具有抵消Tx10的效果的效果,实际上,它在相反方向上转移了1个BTC。
图14呈现这一抵消的结果,其导致Tx11的输入和输出的更新。
最后,在图15中,Tx11和Tx16被Tx17替换,Tx17将它的输出连接到Tx7的输出。此图还示出WN1产生通过Tx13馈送的传出交易Tx18,这使得Tx13广播且因此不可删除。
在上文以及申请PCT WO2016/120826A2中,已经描述WN的执行完整性保证和盲属性,根据这一描述,在接收到WM后,WN必然在把所有其它数据除外的所提供输入数据上执行在此WM中指示的把所有其它指令除外的特定WP,并且通过在输入数据、它们的处理、状态变量和处理结果不具有不连续性的同时确保不可访问性,仅发出(如果适用)相对于此输入数据和永久状态变量在所述WP中提供的WM。
上文对于比特币交易(可插入也可不插入在区块链中)的产生和处理所述的操作利用这些属性来保护所述删除/替换的安全。因此,例如,通过WN1产生替换交易Tx6(参考图9和11)并不存在WN2(或它的用户或所有者)不删除Tx6替换的交易Tx2的风险。实际上:
●只要WN2不广播Tx2以插入在区块链中(例如,在用户发出命令之后),用户就无法看到Tx2的内容(此内容包括WN1对此支付的签名,并且如果不是为了盲属性,WN2的用户可在之后通过其它手段复制和广播);
● WN2在删除WN2中的Tx2之后(或当Tx2标记为处于“已删除”模式时)不考虑广播命令;
●当Tx2的内容已经向用户公开(在广播之后)时,在本发明方法的意义上,它不能再被删除/替换。
应注意,可产生所有不同可能比特币交易类型(并且因为WN能够保留它们的状态,所以本发明方法还特别适用于以太坊)。交易通过WM传送到具有在这些交易的输出上指定或针对这些输出指定的地址的WN。所要签名可通过WM传送。例如,需要m个签名中的n个(多重签名)的交易可通过WN产生,并通过WM传送到m个潜在的签名者,其中的一些将传回它们的签名。
不必在区块链中插入交易的事实存在优势,具体地说,存在以下优势:(1)瞬时确认,(2)无付费,以及(3)理论上无限制的可能交易量。在哪些情况下确实需要将交易插入在区块链中呢?
—传入交易(来自非WN地址)必须在先前插入在区块链中,以防双花。因此,WN不考虑(或确认)传入交易,直到它在区块链中可见为止。
—传出交易仅任选地广播,从而(几乎)不存在WN双花的风险(利用现有技术水平的片上系统篡改(“tampering”)的风险较低,特别是在存在镜像WN的情况下——参看上文镜像WN的描述)。实际上,传出交易可能在将要花费意图用于非WN地址的至少一个输出时插入在区块链中。此时,它的内容变得可访问,如上游交易那样,并且这些交易不再是可删除的。
—WN间交易可有利地不进行广播,但是并不禁止广播它们(在任何时间)。广播交易(出于使它插入在区块链中的目的)将不替换,因为它无法删除,但是其它交易仍然具有上述优势,除了它们馈送它的情况之外(优势在广播交易+馈送它的上游交易链本地丢失)。
已经发现,所产生的WN间比特币交易在接收到接收确认(从它们相应的受惠人)后确认,并且在一些情况下,两个给定WN之间的两个交易在它们均未广播时得以简化(被单个交易替换或简单地抵消掉)。现在参考图16到19,将描述一种用于简化(包含通过替换或简单的抵消)超过两个WN之间的多个交易的方法。此方法使用上文所描述的传播接收确认的方法,它们的净负荷(同样在上文描述)传播在非直接邻近的WN之间转移的BTC的信息。
图16到19再次采用图9到15的实例,除了在图16到19中,交易Tx7在交易Tx13已经确认(由WN1产生)之后(通过WN3)产生。(应注意,相同方法已经利用在图9到15中呈现的实例加以描述,但是认为Tx7在Tx13已经确认之前未广播。)
归功于WN3对Tx6的9个BTC以及交易Tx9和Tx12的同样总共9个BTC的接收确认通过WN2到WN1的传播(在WN1从WN2接收到接收确认后)被确认,WN1用直接从WN1向WN3转移9个BTC的单个交易Tx19替换这三个交易。
在实施方案变化形式(这一变化形式在图16到19中呈现)中,首先,均是从WN1到WN2的Tx9(5个BTC)和Tx12(4个BTC)被Tx13(9个BTC,从WN1到WN2)替换,接着Tx13和Tx6(9个BTC,从WN2到WN3)被从WN1到WN3的Tx19(9个BTC)替换。
为了呈现所产生的实际比特币交易,图17重复图13,但是没有同样产生Tx7和之后交易。图18示出交易Tx19(9个BTC,从WN1到WN3),其替换图17中示出的交易Tx13(9个BTC,从WN1到WN2)和Tx6(9个BTC,从WN2到WN3,其从Tx4获得10个BTC并使自身具有1个BTC的零钱)。最后,如图19中可见,本实例的所有九个WN间交易已经简化以形成一组仅两个交易(Tx19和Tx17)。
应理解,此方法可用于简化具有超过三个WN(不限于此数目)的网络中的WN间交易路线。
所讨论的计算单位(BTC)有利地以标记形式实施,并且所述比特币交易是标记转移交易,其UA是BTC(如上文所描述)。
因此,不同类型的WP程序消费标记的UA的可能性(如果它们被授权这么做的话)(参看标记和CCC的描述)使得有可能提供具有例如以太坊的系统的智能合约的效力的基于比特币的系统。
在无响应性的情况下保证提交
出于参考目的,申请PCT WO2016/120826 A2号描述一种系统和方法,其中作为对具有处理器的装置接收到消息的反应,不可修改指令(类似于信任根或RoT)将其哈希对应于包含在所述接收到的消息中的给定哈希的可执行代码载入到此片上系统中。由此相对于这一接收到的消息预先确定遵循此可执行代码的在所述装置中的执行。保证所述对应关系,使得在所述片上系统的不同部分之间存在适当访问限制且无法更改。因此,通过消息的发出者施加的可执行代码是任意的,且能够更新状态变量(只有具有这些状态变量的可执行代码能够修改它们)并产生又其它消息,所述又其它消息自身将这一相同哈希代码传播到又其它此类系统。
系统因此使得有可能保证所述可执行代码表示的可执行提交(上文描述),使得所述装置保持响应性(有效、接通)。实际上,此方法和系统保证:(i)接收此类消息的装置根据此消息施加的“智能合约”做出反应,以及(ii)此消息自身在完全相同的智能合约(因为由相同可执行代码产生)的上下文中产生。此装置在具有秘密私用密钥(可仅通过签名子系统“Sign”访问:参看此PCT申请的图5)的片上系统中实施,并且能够:
*作为对接收到含有哈希(“#WP”)的消息(“钱包消息”或“WM”)的反应,从任意可执行代码(“钱包程序”)的子系统中载入任意可执行代码(“钱包程序”或“WP”),其内容的哈希对应于所述消息(WM)中所含的所述所包含的哈希(“#WP”);
*在待发出消息(WM)的签名之前,使得签名子系统(Sign)产生或验证当前载入的任意可执行代码的哈希(#WP)以包含在所述消息中(在任选的利用待传输的其它数据对此哈希的加密之后),由此保证相同哈希从接收到的消息重新传播到发出消息(或,有利地且如已经描述的,WN交换包含待执行的不同WP的不同哈希的WM,但是其对应关系借助于包含在WM中的待执行WP的通用具体说明保证)。
现在将描述一种方法,其一般与提交管理方法互补,以便在此WN变得无响应性的情况下,保证WN的一个或多个提交。
图20呈现一种提交,其供应能够变得无响应性的WN(E1)、应该能够得益于所讨论的提交的WN(E4),以及在无响应性的情况下接管此提交的受让人WN(E51到E53)。参考此图,方法包括以下步骤:
1.PT列表具体说明:(任意)提交的供应者(E1)向此提交的受惠人(E4)的此提交在所述供应者(E1)无响应性的情况下指定潜在受让人WN(E51、E52、E53)的“PT列表”(潜在受让人列表)。
2.永久状态变量同步:所述供应者(E1)使所讨论的提交的永久状态变量尽可能地同步到所有潜在受让人WN(E51、E52、E53)。
3.无响应性确认:在通过所述受惠人(E4)向所述供应者(E1)发送WM之后,通过所述受惠人(E4)报告所述供应者(E1)的无响应性。
4.受让人选择:所述受惠人(E4)和/或所述受让人从PT列表的潜在受让人中选择至少一个受让人(E51)。
5.委托执行:通过所述所选择的受让人(E51)的所述WM的处理和所述所选择的受让人(E51)接着使永久状态变量尽可能地同步到所有其它潜在受让人WN(E52、E53)以及无响应性的所述供应者(E1)。
6.延续部分:如果所述所选择的受让人无响应性,或对于通过无响应性的所述供应者(E1)的提交的受惠人发出的后续WM,如果所述供应者(E1)仍然无响应性,那么从步骤3开始应用相同方法(无响应性确认)。
这些步骤实施如下:
PT列表具体说明
首先,将介绍“提交转移提交”(CTC)类型的提交:类似于旨在满足改变供应者的客户端的TOC(“接管提交”)(在申请PCT WO2016/120826中描述),CTC用于向任意提交的受惠人指示如果所述任意提交的供应者(钱包节点)变得无响应性,那么CTC的供应者(钱包节点)代替地自动执行所述任意提交。CTC的供应者被称为“潜在受让人”(“PT”)。
根据此方法,与任何提交(任意提交、智能合约)相关联的是“潜在受让人列表”(“PT列表”),其含有向此提交的供应者(或签名者)供应CTC的钱包节点(PT)的地址(这是为了向它的受惠人指示在它变得无响应性时哪些实体[钱包节点]负责执行提交),所述实体默认负责执行提交,使得此执行是自动的,而无需用户方面的任何输入。
永久状态变量同步
为了无响应性供应者(E1)的PT列表的所述受让人钱包节点(E51、E52、E53)能够代替地执行它的提交,它们必须具有PSV的当前状态和对应WP的标记。例如,在接管CCC的情况下,它们必须具有钱包程序CCC的永久变量(具体地说,不同发出者的余额、金额加量(amount+)和金额减量(amount-))的当前值,以便能够产生UA转移交易(如果适用)。为此目的,在每次更新它的数据时,提供提交的钱包节点(E1)向此提交中给定的PT列表的所有WN(E51、E52、E53)通知它的数据的新状态。归功于钱包节点的盲属性,这些WN的用户或所有者无法访问此数据。
无响应性确认
如果在先前协定的持续时间内不存在定期重新发出到所述供应者(E1)的WM的接收确认,那么所述受惠人(E4)向PT列表的WN(E51、E52、E53)重新发出相同WM,并且所述供应者(E1)还应该向后者(E51、E52、E53)发送由受惠人(E4)发送的WM的所述接收确认的复本。当在先前协定的持续时间内,PT列表中无PT通知受惠人(E4)它接收到所述接收确认时,受惠人(E4)将所述供应者(E1)视为无响应性。
受让人选择
在所述受惠人(E4)请求后,PT列表中的每一PT向受惠人发送从所述供应者(E1)接收的最后n个数据更新WM(永久状态变量),使得有可能在此列表中的其数据最新更新的那些PT当中自动选择至少一个(E51)。归功于钱包节点的盲属性,所述受惠人WN(E4)的用户或所有者无法访问这些消息。
此步骤可用于在PT列表的潜在受让人当中选择数个受让人,所述潜在受让人必须以m个WN中的n个的多重签名形式对计算单位转移交易进行签名(n小于m,以便在所选择的PT同时都不具有响应性的情况下提供)。
m个受让人的选择可根据协议实行(如在上述的任意选择协议中),其中PT列表中的每一个(或至少某一数目个)潜在受让人传回从这一列表随机获取的PT子列表,首先呈哈希形式,接着在第二轮中公开,并且PT列表的潜在受让人接着通过交叉确认根据在所讨论的提交中预先建立的选择规则或默认地选择所选择的m个受让人(例如,采用由最大数目的潜在受让人随机选择的m)。
委托执行
所述供应者(E4)通知接着代替地执行所述供应者的提交的所选择的一个(或多个)PT(E51),作为对所述WM的反应,接着通知所有其它PT(E52、E53)以及无响应性的所述供应者(E1)永久状态变量的新的当前状态。
延续部分
为了使永久状态变量在PT列表的PT中同步,所发出的意图用于相同提交的所述供应者的任何新WM可在供应者再次无响应性的情况下从步骤3开始重新进行相同方法。
应理解,例如在申请PCT WO2016/120826 A2号中描述的CCC的任何提交的信誉度不仅与例如可用金额的方面相关,而且还与通过每一PT的可能响应性加权的PT列表中的PT数量相关。提交的未来受惠人在获取此提交之前自动评估此信誉度并对它的值进行加权,所述值随与这些PT相关联的响应性的已知参数变化(从一个WN传送到另一WN)。
应注意,对于供应者的给定提交,此提交的受惠人WN自身可为PT(也就是说,可为用于相同提交的相同供应者的PT列表的部分)。在此情况下,状态变量在提交的受惠人中同步,所述受惠人自身变得能够执行它作为受惠人的这一提交。
在无响应性情况下的替换WN
在无响应性的情况下提交接管的上述方法的使用情况包括使用给定WN(E4)作为WN以替换通常具有相同所有者的另一WN(E1)。所讨论的提交简单地:在简单请求后从作为所述提交的供应者的所述另一WN(E1)向作为所述提交的受惠人且发出此请求的所述给定WN(E4)转移余额。因此,在所述另一WN(E1)丢失或不操作的情况下,它可被所述给定WN(E4)替换,余额自动转移到所述给定WN(E4),即使所述另一WN(E1)已经变得无响应性也如此。有利的是,因为所述给定WN(E4)自身是(E1的)PT,所以不需要另一PT来确保WN的替换。
所讨论的所有者可为给定另一WN(E1)提供数个此类替换WN(E4),并使用任何一个来进行替换。
一组WN可扮演替换WN的角色以彼此替换,并且可变得可以互换。
所讨论的提交可实现,所述转移可针对余额的一部分进行,以及某一数目(在提交中给定)的替换WN必须在一起签名以转移大于某一阈值的金额(m个WN中的n个的多重签名,n和m是待转移金额的函数)。
上述在无响应性情况下的提交接管方法(用于在它变得无响应性的情况下保证WN的提交的方法)可扩展以便还在篡改的情况下通过以下方式保证提交:在“永久状态变量同步”步骤中,提交的供应者(E1)还传送提交的WP的哈希(以及它在哈希缺失时的内容);向所述方法添加同步的交叉验证步骤;在“无响应性确认”(此处重新命名为“无响应性或不合格性通知”)步骤中,提交的受惠人(E4)报告所述提交的供应者WN(E1)的不合格性(如果适用);在“委托执行”步骤中,通过所述所选择的受让人(E51)处理所述WM包括在WP中提供的特定处理操作,以校正不合格WN的改变后的行为;最后,添加包括将不合格WN加黑名单的步骤。
自然地,本发明绝不限于所描述和表示的实施例,并且所属领域技术人员将能够向其提供众多变化形式和修改。所属领域技术人员还将能够根据需要和应用来组合和分离本文中描述的不同特征。
Claims (53)
1.一种用于在网络节点之间建立连接权重的方法,所述方法通过向数据处理单元传送与每一节点相关联的公开密钥和私用密钥来实施,给定节点能够向另一节点传送它的公开密钥,由此在所述两个节点之间形成所谓的实际连接(“IRL连接”),且每一节点还能够向另一节点传送从又一节点接收的公开密钥,由此在所述另一节点和所述又一节点之间形成所谓的间接连接,一个节点能够相对于与它实际或间接连接的另一节点而具有特定连接权重,所述方法包括:为了确定第二节点相对于第一节点的连接权重,计算IRL连接到所述第二节点的第三节点的加权因数(影响、接近度)的设定组合。
2.根据权利要求1所述的方法,其中所述第二节点的所述连接权重影响所述第三节点的所述加权因数,且另外包括在计算所述第二节点的所述连接权重之后更新所述第三节点的所述加权因数的值。
3.根据权利要求2所述的方法,所述方法在收敛之前一直反复实施。
4.根据权利要求1到3中任一项所述的方法,其中在第一节点和另一节点之间建立所谓的实际连接(IRL连接)包括以下步骤:
在实施所述第一节点的第一处理单元的位置处,通过邻近读取能够访问对任意数(随机数)进行编码的机器可读代码;
在实施所述另一节点的另一处理单元的位置处,读取所述机器可读代码、提取所述任意数,并计算所述任意数的哈希,
通过通信通道,将与所述另一节点相关联的公开密钥和利用它的私用密钥实行的所述任意数的(所述哈希的)签名从所述另一处理单元传输到所述第一处理单元,
在所述第一处理单元的位置处,借助于所接收的公开密钥和用于产生所述机器可读代码的所述任意数来验证所述签名,并在验证成功的情况下记录所述公开密钥。
5.根据权利要求1到3中任一项所述的方法,其中在第一节点和另一节点之间建立所谓的实际连接(IRL连接)包括以下步骤:
在实施所述第一节点的第一处理单元的位置处,产生密码并使得所述密码能够由所述第一处理单元的用户访问,
在实施所述另一节点的另一处理单元的位置处,通过涉及所述第一处理单元的用户和所述另一处理单元的用户之间的人为动作的通信路线,引入通过所述第一处理单元的用户传送到所述另一处理单元的用户的所述密码作为输入,
通过通信通道,将与所述另一节点相关联的公开密钥和利用它的私用密钥实行的所引入密码的(哈希的)签名从所述另一处理单元传输到所述第一处理单元,
在所述第一处理单元的位置处,借助于所接收的公开密钥和所述第一处理单元的用户最初能够访问的密码来验证所述签名,并在验证成功的情况下记录所述公开密钥。
6.根据权利要求1到5中任一项所述的方法,其中多个第二节点具有与所述第一节点连接的权重,并且其中确定给定第二节点相对于所述第一节点的连接权重还基于所述其它第二节点相对于所述第一节点的连接权重。
7.一种用于确定节点网络中的第一节点的影响的方法,所述方法通过向数据处理单元传送与每一节点相关联的公开密钥和私用密钥来实施,一个节点能够向另一节点传送它的公开密钥,由此在所述两个节点之间形成所谓的实际连接(IRL连接),且每一节点还能够向另一节点传送从又一节点接收的公开密钥,由此在所述另一节点和所述又一节点之间形成所谓的间接连接,所述方法包括:基于与给定节点实际连接且具有针对不同节点通过根据权利要求6所述的方法确定的连接权重值的第二节点的数目,确定所述给定节点的影响因数。
8.根据权利要求7所述的方法,其中第二节点相对于所述第一节点的连接权重还基于与所述第二节点实际连接的第三节点的相应影响因数的值来确定。
9.根据权利要求7和8中任一项所述的方法,其中反复地确定所述连接权重和影响因数值,直到它们收敛成不再显著变化的值为止。
10.一种用于在网络的节点之间建立所谓的准实际连接的方法,所述方法通过向数据处理单元传送与每一节点相关联的公开密钥和私用密钥来实施,给定节点能够向另一节点传送它的公开密钥,由此在所述两个节点之间形成所谓的实际连接(“IRL连接”),且每一节点还能够向另一节点传送从又一节点接收的公开密钥,由此在所述另一节点和所述又一节点之间形成所谓的间接连接,每一节点能够相对于与它实际或间接连接的另一节点而具有特定连接权重,所述方法包含以下步骤:
在要建立连接的第一节点和第二节点之间,从在所述第一节点和所述第二节点之间的相对于所述第一节点具有最高连接权重的那些中间节点中选择多个中间节点,
将既定传送到所述第二节点的任意数(随机数)从所述第一节点传送到所选择的中间节点,
通过不同于节点之间的所述通信通道的一个或多个通信通道,将所述任意代码以及所述中间节点的公开密钥冗余地从所述中间节点传送到所述第二节点,
在所述第二节点的位置处,响应于所述任意代码的接收,借助于所述第二节点的私用密钥冗余地产生所述任意代码的签名,并将所述签名以及所述第二节点的公开密钥分别传回到所述中间节点,所述第二节点的公开密钥借助于所述中间节点的公开密钥进行加密,
在每一个所述中间节点的位置处,验证从所述第二节点接收的所述任意代码的签名,并且在验证成功的情况下,将所述第二节点的公开密钥传送到所述第一节点,所述第二节点的公开密钥借助于所述第一节点的公开密钥进行加密,以及
在所述第一节点的位置处,对所述第二节点的公开密钥进行解密和存储,
接着,所述第一节点和所述第二节点能够交换加密信息,其安全性与所述中间节点的连接权重相关。
11.根据权利要求10所述的方法,其中还从相对于所述第二节点具有最高连接权重的那些中间节点中选择中间节点。
12.根据权利要求10和11中任一项所述的方法,其中通过实施以下步骤,通过由所述第一节点和所述中间节点形成的一组节点共同产生所述任意代码:
在所述组中的每一节点的位置处产生任意代码,
利用借助于所述节点的相应密钥进行的加密,在所述组的节点之间交换所述任意代码的哈希,
利用借助于所述节点的相应密钥进行的加密,在所述组的所述节点之间交换原本的任意代码,
在所述组中的每一节点的位置处验证原本的任意代码是否确实对应于它们在前一步骤接收的相应哈希,以及
通过在所述组中的每一节点的位置处产生的任意代码的设定组合产生既定传送到所述第二节点的最终任意代码。
13.根据权利要求10到12中任一项所述的方法,其中所述不同通信通道是基于社交网络,且包括以下步骤:通过所述社交网络上的第二节点公开所述任意代码的签名和它的公开密钥。
14.根据权利要求10到13中任一项所述的方法,所述方法另外包括以下步骤:响应于成功验证从所述第二节点接收的所述任意代码的签名,指派所述第二节点相对于所述第一节点的连接权重。
15.根据权利要求1到6中任一项所述的方法,在包括具有依据根据权利要求10到14中任一项所述的方法建立的准实际连接的节点的网络中,其中所述准实际连接被认为是所述方法意义上的实际连接,其中权重考虑到所述连接的准实际特征。
16.一种保护节点网络的运行安全的方法,所述网络能够响应于消息(WM)的接收而执行程序(WP),所述节点能够根据通过根据权利要求1到9中任一项所述的方法或通过根据权利要求14所述的方法确定的不同连接权重而彼此连接,所述方法包括:在接收节点的位置处接收消息(WM)后,比较发出此消息的节点的连接权重与实际连接到所述接收节点的其它节点的连接权重,且仅在所述发出节点的连接权重等于或大于所述连接权重中的最小连接权重时才接受所述消息。
17.一种用于保护节点网络的运行安全的方法,所述网络能够响应于消息(WM)的接收而执行程序(WP),所述节点能够根据具体是通过根据权利要求1到9中任一项所述的方法或通过根据权利要求14所述的方法获得的不同连接权重而彼此连接,所述方法包括以下步骤:
基于连接权重值,向每一节点指派相对于其具有大于阈值的连接权重的至少一个副署节点,
在每一节点的位置处,维持能够从所讨论的节点接收消息(WM)的节点的副署节点列表,每一节点和它的副署节点形成一组镜像节点,
当消息将通过发出节点发送到接收节点时,开始由所述发出节点的镜像节点中的至少一些向所述接收节点的镜像节点中的至少一些发送此消息,
仅在已接收到发出消息的给定部分时才验证所述消息。
18.根据权利要求17所述的方法,其中向所述接收节点的所有镜像节点发出所述消息。
19.根据权利要求17或18所述的方法,其中通过所述发出节点以及通过所述发出节点的唯一副署节点发出所述消息,所述发出节点的唯一副署节点还是所述接收节点的副署节点。
20.根据权利要求17到19中任一项所述的方法,其中从第一节点发送到第二节点的消息仅在出现以下情况时才通过所述第二节点验证:
所述第一节点和所述第二节点的镜像节点的相应组具有要素数目大于某一阈值的相交区,且
所述第二节点已(冗余地)从属于此相交区的所述镜像节点的至少给定部分接收到这一相同消息。
21.根据权利要求1到6中任一项所述的方法,在包括根据权利要求17到20中任一项所述的镜像节点的网络中,其中一个节点仅在其连接权重至少等于与给定节点实际连接的节点的连接权重中的最小连接权重时才被视为所述给定节点的副署节点。
22.一种用于保护节点网络的运行安全的系统,所述网络能够响应于消息(WM)的接收而执行程序(WP),所述节点能够根据不同连接权重而链接到彼此,所述系统能够:
基于连接权重的值,向每一节点指派相对于其具有大于阈值的连接权重的至少一个副署节点,
在每一节点的位置处,维持能够从所讨论的节点接收消息的节点的副署节点列表,每一节点和它的副署节点形成一组镜像节点,
当消息将通过发出节点发送到接收节点时,开始由所述发出节点的镜像节点中的至少一些向所述接收节点的镜像节点中的至少一些发送此消息。
23.根据权利要求22所述的系统,其中接收消息(WM)的接收节点仅在所述发出和接收节点的镜像节点的相应组具有要素数目大于给定阈值的相交区且所述接收节点已(冗余地)从属于此相交区的所述镜像节点的至少给定部分接收到这一相同消息时才验证所述消息。
24.一种用于保护节点网络的运行安全的系统,所述网络由片上系统组成且能够响应于消息(WM)的接收而执行程序(WP),所述系统的特征在于它以组合形式包含以下两个架构:
在每一节点的位置处,用于基于这些程序的哈希而访问加密程序的架构,所述程序包含在传入消息中,
在每一节点的位置处,用于确定副署节点、用于从/向所述副署节点复制消息以及用于确定所接收消息的相同字符的架构。
25.一种用于安全执行包括以网络形式连接的一组装置的架构中的程序的系统,特征在于它在至少一个装置中包括安全片上系统(SoC),其中私用SoC密钥以它只能被所述SoC访问的方式存储,或所述SoC能够动态地再生这一私用密钥(PUF技术),
SoC能够仅通过消息与另一装置通信,且能够仅响应于消息的接收而执行程序,
SoC能够存储将在通过所述SoC加密之后执行的至少一个程序,并产生所述程序或每一程序的哈希,从而使得有可能再次找出加密程序,
所述装置另外能够向所述SoC发送含有某一待执行程序的输入数据(数据)的消息,以及所述程序的哈希(#P2),所述SoC能够响应于此类消息而以安全方式进行以下操作:(i)基于在所述消息中接收到的所述程序的哈希(#P2)而访问待执行加密程序,(ii)在运行中解密所述程序的指令,以及(iii)在运行中执行经解密指令。
26.根据权利要求25所述的系统,其中,在通过所述SoC发出消息之前,所述SoC将处于执行过程中的程序的哈希(#P1)以及借助于所述SoC的所述秘密私用密钥对此哈希进行的签名插入在待发出消息中。
27.根据权利要求25所述的系统,其中,在通过所述SoC发出消息之前,所述SoC将处于执行过程中的程序的哈希(#P1)插入在待发出消息的主体中,SoC借助于所述SoC的所述秘密私用密钥对所述待发出消息的主体进行签名。
28.根据权利要求25到27中任一项所述的系统,其中所述SoC包括密码存储器管理单元(密码存储器管理单元[CMMU]),其中存储了——或其能够动态地再生(PUF技术)——所述SoC的秘密密钥,所述秘密密钥能够仅通过从不显示它的所述CMMU单元访问,且通过此CMMU单元实行以下操作:
所述程序在存储之前的所述加密,
针对由此加密的程序的存储器地址分配(addr1……addr2范围)
所述程序的哈希的所述产生,以及
用于在运行中供包含在所述SoC中的至少一个处理器单元执行的所述解密。
29.根据权利要求28所述的系统,其中所述CMMU单元针对每一指令块实行加密和存储器中的存储,且每次向所述处理器供应一个经解密指令块以在运行中执行。
30.根据权利要求28或29所述的系统,其中,在通过所述SoC发出消息之前,所述CMMU单元将处于执行过程中的程序的哈希(#P1)以及CMMU借助于所述SoC的所述秘密私用密钥对此哈希进行的签名插入在待发出消息中。
31.根据权利要求28或29所述的系统,其中,在通过所述SoC发出消息之前,所述CMMU单元将处于执行过程中的程序的哈希(#P1)插入在待发出消息的主体中,所述CMMU单元借助于所述SoC的所述秘密私用密钥对所述待发出消息的主体进行签名。
32.根据权利要求25到31中任一项所述的系统,其中SoC能够发出具有对处于执行过程中的程序(#P1)和将通过接收方执行的程序来说相同的哈希(#P1=#P2)的消息,此程序(P1=P2)在所述消息的接收方是SoC的情况下是可执行提交(智能合约)。
33.一种片上系统SoC,其意在形成网络的钱包节点(WN)节点,且包括密码存储器管理单元,其中加密(CMMU)能够确保所述SoC的至少一个处理器对程序的盲(blind)执行,其中:
在CMMU单元中,私用密钥(秘密密钥)以它只能被CMMU单元访问的方式存储(或动态地再生),
CMMU单元能够存储将在通过CMMU单元加密之后执行的至少一个程序,并产生所述程序或每一程序的哈希,从而使得有可能再次找出加密程序,
除非CMMU单元命令,否则所述处理器无法执行程序,
所述片上系统和所述网络的其它节点之间的交互仅通过消息进行,且所述消息仅通过CMMU单元接收/发出,
所述消息包括通过其哈希标识的某一待执行程序的标识,
响应于消息的接收,CMMU单元:(i)访问加密程序以基于在所述消息中接收到的程序的哈希来执行(具体是通过PHT表格),(ii)解密程序的指令,以及(iii)向所述处理器传输所述接收到的数据上的经解密指令以供执行。
34.根据权利要求33所述的系统,其中所述处理器或至少一个处理器能够通过CMMU单元访问和操控(创建、更新、删除)与给定程序相关联的永久状态变量(PSV),所述永久状态变量还进行加密、通过CMMU单元存储在存储器中并在运行中进行解密。
35.根据权利要求33或34所述的系统,其中待执行的所述程序和它的永久状态变量(PSV)存储在特定编址空间中,以确保与其它程序分离。
36.根据权利要求33到35中任一项所述的系统,其中消息能够含有计算单位(UA)从发出节点转移到接收节点的一个或多个交易,通过接收节点接收的所述计算单位能够通过由所述接收节点发出的消息中所含的交易再次转移。
37.根据权利要求33到36中任一项所述的系统,其包括用于通过交易接收的计算单位(标记)的存储空间。
38.根据权利要求37所述的系统,其能够在待发出的相同交易中组合不同标记的计算单位,所述交易能够在SoC之间进行组合和转移。
39.根据权利要求37到38中任一项所述的系统,其中所述CMMU单元包括用于以使得由此消费UA无法通过另一交易消费的方式使馈送发出交易的标记无效的构件。
40.根据权利要求37到39中任一项所述的系统,其中所述CMMU单元包括用于以使得只有经授权程序可以馈送将基于给定标记产生的交易的方式控制不同程序对所述标记的使用的构件。
41.根据权利要求33到40中任一项所述的系统,其中所述存储器在所述SoC中。
42.根据权利要求33到40中任一项所述的系统,其中所述存储器与所述SoC分开。
43.根据权利要求33到42中任一项所述的系统,其中程序能够可替代地基于逝去给定程序的超时时间而触发,且所述CMMU单元还能够在出现与程序的哈希相关联的超时后:(i)在存储器中访问基于此哈希的加密程序,(ii)解密所述程序的指令,以及(iii)向所述处理器传输经解密指令以供执行。
44.根据权利要求33到43中任一项所述的系统,其中所述CMMU单元针对每一指令块实行所述加密和存储器中的存储,且每次向所述处理器供应一个经解密块以在运行中执行。
45.根据权利要求33到44中任一项所述的系统,其中,在发出消息之前,所述CMMU单元将处于执行过程中的程序的哈希(#P1)以及CMMU借助于所述秘密私用密钥对此哈希进行的签名插入在待发出消息中。
46.根据权利要求33到44中任一项所述的系统,其中,在发出消息之前,所述CMMU单元将处于执行过程中的程序的哈希(#P1)插入在待发出消息的主体中,所述CMMU单元借助于所述秘密私用密钥对所述待发出消息的主体进行签名。
47.根据权利要求33到46中任一项所述的系统,其中所述CMMU能够发出具有对处于执行过程中的程序(#P1)和将通过接收方执行的程序(#P2)来说相同的哈希(#P1=#P2)的消息,此程序(P1=P2)因此在所述消息的接收方同样是根据权利要求26所述的SoC的情况下是可执行提交(智能合约)。
48.根据权利要求17到20中任一项所述的方法,其中特定消息(WM)构成存储在根据权利要求37所述的系统中的标记转移消息,其中仅在接收节点的一组镜像节点和最初从其转移此类标记的上游节点中的每一个的一组镜像节点之间的相交区中存在数目大于给定阈值的节点时才实行在接收节点的位置处的标记转移消息的验证。
49.一种用于保证片上系统(WN)架构中的片上系统(WN)的提交的方法,所述片上系统(WN)能够在此类片上系统变得无响应性的情况下,通过消息(WM)在彼此之间转移计算单位,所述方法包括以下步骤:
(a)在(任何)提交的供应者WN(E1)向此提交的受惠人WN(E4)提交期间,使得所述受惠人WN(E4)在所述供应者WN(E1)无响应性的情况下可获得潜在受让人WN(E51、E52、E53)的“PT列表”(潜在受让人列表);
(b)使所讨论的提交状态(PST)从所述供应者WN(E1)同步到所有潜在受让人WN(E51、E52、E53),
(c)在所述受惠人WN(E4)向所述供应者WN(E1)发送消息(WM)之后,在所述受惠人WN(E4)的位置处报告所述供应者WN(E1)的无响应性,
(d)在所述受惠人WN(E4)的位置处确定在所述列表(PT列表)中的潜在受让人WN当中具有优先级的受让人WN(E51),
(e)在所述优先受让人WN(E51)的位置处处理所述消息(WM),所述优先受让人WN(E51)接着使所讨论的提交状态(PST)同步到其它潜在受让人WN(E52、E53)以及无响应性的所述供应者WN(E1),
(f)对于通过无响应性的所述供应者WN(E1)的提交的受惠人WN发出的后续消息(WM),如果所述供应者WN(E1)仍然无响应性,那么从步骤(c)开始执行相同方法。
50.一种交易系统,其具有点对点分布式架构,实施使得有可能在单元发出节点和单元接收节点之间转移计算单位的交易,每一交易将指代先前交易的输出的输入(或各自指代先前交易的输出的数个输入)作为输入,且其自身具有指定数个计算单位和接收节点的至少一个新输出,其中每一交易能够通过将所述交易的签名插入在分布存储于所述节点之间的区块链中来验证,特征在于所述交易中的至少一些通过能够确保所述交易的盲条件的节点来实行,在于它包括用于按照简化满足所述盲条件的一组交易的方式处理这一组交易的构件,所述一组交易随计算单位的量和这些交易中所涉及的发出节点和接收节点的地址而变,以便产生经缩减的一组交易,并且仅产生所述经缩减的一组交易中的交易的签名且在所述区块链中存储所述签名。
51.一种交易系统,其具有点对点分布式架构,实施使得有可能在单元发出节点和单元接收节点之间转移计算单位的交易,每一交易将指代先前交易的输出的输入(或各自指代先前交易的输出的数个输入)作为输入,且其自身具有指定数个计算单位和接收节点的至少一个新输出,其中每一交易可通过将所述交易的签名插入在分布存储于所述节点之间的区块链中来验证,特征在于所述交易中的至少一些通过能够确保所述交易的盲条件的节点来实行,在于它包括用于按照简化满足所述盲条件的一组交易的方式处理这一组交易的构件,所述一组交易随计算单位的量、这些交易中所涉及的发出节点和接收节点的地址变化,以便产生经缩减的一组交易,并且仅在所讨论的节点发出指令后,仅产生所述经缩减的一组中的一些签名且在区块链中存储所述签名。
52.一种用于在网络的节点之间实行交易的方法,所述节点与用户相关联且能够在彼此之间转移计算单位,并且能够通过消息在彼此之间传送,每一消息表示将在接收此消息的节点中执行的WP程序,并且所述用户能够广播包括一个或多个竞价准则的竞价要素,且能够在所述网络上发起交易,所述方法包括以下步骤:
通过出售节点向已发出对应竞价要素的用户的请求节点发送符合所述准则的供应品出售消息,并提交所述节点,并且标识给定WP程序,
通过所述请求节点向所述出售节点发送接受供应品出售的消息,并标识同一给定WP程序,
产生关于供应品的性能、存在或可用性的凭证,所述凭证能够由所述出售节点访问且能够通过所述给定WP程序验证,
在所述两个节点中的至少一个的位置处通过所述给定WP程序验证所述凭证,以及
如果验证成功,那么在所述请求节点的位置处,产生构成为所述供应品支付的转移计算单位的消息,并将此消息发送到所述出售节点。
53.根据权利要求7到9中任一项所述的方法,在包括具有通过根据权利要求10到14中任一项所述的方法建立的准实际连接的节点的网络中,其中所述准实际连接被认为是所述方法意义上的实际连接,其中权重考虑到所述连接的准实际特征。
Applications Claiming Priority (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1650352 | 2016-01-15 | ||
FR1650352 | 2016-01-15 | ||
IBPCT/IB2016/050440 | 2016-01-28 | ||
PCT/IB2016/050440 WO2016120826A2 (fr) | 2015-01-30 | 2016-01-28 | Systèmes et procédés pour la gestion d'engagements en réseau d'entités sécurisées |
US201662399358P | 2016-09-24 | 2016-09-24 | |
US62/399,358 | 2016-09-24 | ||
US201662400174P | 2016-09-27 | 2016-09-27 | |
US62/400,174 | 2016-09-27 | ||
EPPCT/EP2017/050041 | 2017-01-02 | ||
EPPCT/EP2017/050041 | 2017-01-02 | ||
PCT/IB2017/050228 WO2017122187A2 (fr) | 2016-01-15 | 2017-01-16 | Procédés et systèmes mis en œuvre dans une architecture en réseau de nœuds susceptibles de réaliser des transactions basées sur messages |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109643350A true CN109643350A (zh) | 2019-04-16 |
Family
ID=66052332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780006951.1A Pending CN109643350A (zh) | 2016-01-15 | 2017-01-16 | 在有节点能够执行基于消息的交易的网络架构中实施的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109643350A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110336663A (zh) * | 2019-06-14 | 2019-10-15 | 东南大学 | 一种基于区块链技术的PUFs群对群认证方案 |
CN110827121A (zh) * | 2019-10-22 | 2020-02-21 | 全链通有限公司 | 基于区块链的电子投标方法、设备及存储介质 |
CN113661682A (zh) * | 2019-04-18 | 2021-11-16 | 维萨国际服务协会 | 用于控制服务器网络中的访问的方法、系统和计算机程序产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1268264A (zh) * | 1996-06-26 | 2000-09-27 | 英特尔公司 | 从远程节点数字化地签署协议 |
CN101232415A (zh) * | 2007-01-22 | 2008-07-30 | 华为技术有限公司 | 对等网络节点访问装置、方法和系统 |
WO2012122994A1 (en) * | 2011-03-11 | 2012-09-20 | Kreft Heinz | Off-line transfer of electronic tokens between peer-devices |
CN104541247A (zh) * | 2012-08-07 | 2015-04-22 | 超威半导体公司 | 用于调整云计算系统的系统和方法 |
-
2017
- 2017-01-16 CN CN201780006951.1A patent/CN109643350A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1268264A (zh) * | 1996-06-26 | 2000-09-27 | 英特尔公司 | 从远程节点数字化地签署协议 |
CN101232415A (zh) * | 2007-01-22 | 2008-07-30 | 华为技术有限公司 | 对等网络节点访问装置、方法和系统 |
WO2012122994A1 (en) * | 2011-03-11 | 2012-09-20 | Kreft Heinz | Off-line transfer of electronic tokens between peer-devices |
CN104541247A (zh) * | 2012-08-07 | 2015-04-22 | 超威半导体公司 | 用于调整云计算系统的系统和方法 |
Non-Patent Citations (2)
Title |
---|
BEN DAVENPORT: "《https://www.coincenter.org/education/advanced-topics/multi-sig/》", 1 January 2015 * |
LONWON: "《https://blog.csdn.net/lonwon/article/details/3221227》", 4 November 2008 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113661682A (zh) * | 2019-04-18 | 2021-11-16 | 维萨国际服务协会 | 用于控制服务器网络中的访问的方法、系统和计算机程序产品 |
CN113661682B (zh) * | 2019-04-18 | 2024-04-16 | 维萨国际服务协会 | 控制网络中的访问的方法、系统和计算机可读介质 |
CN110336663A (zh) * | 2019-06-14 | 2019-10-15 | 东南大学 | 一种基于区块链技术的PUFs群对群认证方案 |
CN110336663B (zh) * | 2019-06-14 | 2021-11-30 | 东南大学 | 一种基于区块链技术的PUFs群对群认证方法 |
CN110827121A (zh) * | 2019-10-22 | 2020-02-21 | 全链通有限公司 | 基于区块链的电子投标方法、设备及存储介质 |
CN110827121B (zh) * | 2019-10-22 | 2023-08-18 | 全链通有限公司 | 基于区块链的电子投标方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110392888A (zh) | 用于在安全环境中执行智能合约的方法和系统 | |
US20220069994A1 (en) | Methods and systems implemented in a network architecture with nodes capable of performing message-based transactions | |
Chowdhury | Inside blockchain, bitcoin, and cryptocurrencies | |
CN103636160B (zh) | 安全文件共享方法与系统 | |
CN110073633A (zh) | 使用同态加密的区块链数据保护 | |
US7788499B2 (en) | Security tokens including displayable claims | |
CN110147994A (zh) | 一种基于同态加密的区块链的即时执行方法 | |
KR100632984B1 (ko) | 네트워크를 통해 이용자와 컴퓨터의 인증과 보증을수행하기 위한 방법 및 장치 | |
CN109544331A (zh) | 基于区块链的供应链金融应用方法、装置及终端设备 | |
CN108737348A (zh) | 一种基于区块链的智能合约的物联网设备访问控制方法 | |
CN109150539A (zh) | 一种基于区块链的分布式ca认证系统、方法及装置 | |
CN108667612A (zh) | 一种基于区块链的信任服务架构及方法 | |
CN111047443B (zh) | 用户评分方法及装置、电子设备、计算机可读存储介质 | |
CN102025710A (zh) | 多应用智能卡及智能卡多应用管理系统和方法 | |
WO2020051710A1 (en) | System and process for managing digitized security tokens | |
CN109274573A (zh) | 一种融合区块链技术的即时消息系统、方法及应用 | |
Gayvoronskaya et al. | Blockchain | |
CN113393225B (zh) | 数字货币加密支付方法及系统 | |
KR20190132047A (ko) | 스마트 컨트랙트를 이용한 블록체인 기반 서비스 플랫폼 제공 방법 | |
CN110298152A (zh) | 一种保护用户隐私和系统安全的线上身份管理方法 | |
CN109643350A (zh) | 在有节点能够执行基于消息的交易的网络架构中实施的方法和系统 | |
CN109559164A (zh) | 优惠信息处理方法、装置、电子设备及计算机可读介质 | |
KR20220066823A (ko) | 블록체인 기반 피싱 방지 시스템, 장치 및 방법 | |
Manimaran et al. | Blockchain-based smart contract for e-bidding system | |
Li et al. | Metaopera: A cross-metaverse interoperability protocol |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190416 |