实施计算机网络的系统及方法与流程

文档序号:21788384发布日期:2020-08-07 20:38阅读:399来源:国知局
实施计算机网络的系统及方法与流程

本发明总体上涉及一种用于通过计算机网络安全地管理、存储及访问数字资产的系统和方法。



背景技术:

常规区块链系统通常包括三个区块链组成部分,即共识协议、事务状态和应用(又俗称为“节点应用”)。

共识协议是一种网络设备在相同事务状态下进行同步的手段。事务状态是一种系统当前状态的表示。

这通常是使用智能合约从某一假名到另一假名的授权事务形式,该智能合约针对上述事务编写规则。最后,应用采取程序形式,该程序可更改并解译事务状态以实现其目的。

共识协议和事务状态通常是通用的实施方式,其中根据部署进行微调。常规区块链系统的主要功能来自于智能合约和应用对区块链上数据的解译。

智能合约(取决于所实施的语言)允许几乎任何功能。这意味着系统的每一个用户都能在区块链上的应用和数据限制内针对数字资产定义自己的规则。这样就无法验证创建的各不相同的合约,并且可能给个别用户带来系统内未定义/不必要的控制。这成为创建安全关键系统或某些实体采用系统的主要限制因素,这些实体要对所采用系统的正确性、安全性和保险性负有一定责任。



技术实现要素:

根据本发明的第一方面,提供一种用于实施网络的方法,其包括:将网络程序作为程序代码存储在区块链的根区块中,该网络程序定义:(a)用于创建网络设备的结构化网络的一个或多个规则,每个网络设备实现用于执行网络程序的自治网络代理;(b)一种或多种许可数字资产类型;以及(c)能对许可数字资产类型执行的一个或多个函数;由自治网络代理对每个网络设备执行网络程序以实施网络。

在一种实施方案中,配置网络的步骤包括:初始由所述网络设备中的一个授权网络设备执行网络程序,以使区块链分发到其他网络设备中的每个网络设备。

在一种实施方案中,一旦某个网络设备接收到区块链,相应的自治代理便根据一个或多个规则在网络内结构化该网络设备。

在一种实施方案中,所述区块链由网络设备来实施,以验证置于网络上并由相应的网络代理接收的设备和/或用户发起的请求。

在一种实施方案中,所述网络程序定义作为验证的一部分需要满足的一个或多个许可。

在一种实施方案中,响应于网络请求得到验证,所述方法进一步包括更新网络。

在一种实施方案中,所述数字资产类型中的一种数字资产类型使得授权用户能够调用更改和/或更新网络程序的函数。

在一种实施方案中,更新网络包括向区块链添加新区块,该新区块代表至少一个已验证的请求。

根据第二方面,提供一种用于安全管理网络内运行的两个设备以及存储于其上的数字资产的计算机实施的方法,所述方法包括:实施通过网络运行且能执行为与区块链同步和对接的网络程序,且其中,该网络程序的初始版本存储在分发到网络中运行的设备之间的区块链的根区块中。

在一种实施方案中,所述网络程序由设备上运行的自治网络代理来执行。

在一种实施方案中,所述方法进一步包括:响应于自治网络代理一致同意更新而更新网络程序。

在一种实施方案中,将代表网络程序更新的数据存储在添加到区块链的区块中。

根据第三方面,提供一种用于实施能够安全管理数字资产的专用计算机网络的系统,所述系统包括:能通过数字通信媒介进行通信的多个网络设备,其中每个网络设备均实施自治网络代理,该自治网络代理能操作为执行网络程序,该网络程序体现为由各网络设备存储和同步的区块链中的程序代码,该网络程序定义一个或多个许可来验证网络设备通过网络发布的网络请求。

根据第四方面,提供一种用于实施能够安全管理数字资产的专用计算机网络的方法,所述方法包括:网络创建阶段,包括:在将初步形成专用计算机网络的多个计算设备中的每个计算设备上安装自治网络代理;基于一个或多个对等创建规则,将多个计算设备中的每个计算设备与至少一个其他计算设备相关联,以此创建计算设备对等者;生成区块链的根区块并使该根区块在多个计算设备中的每个计算设备之间同步,区块链存储一个或多个请求验证许可和一个或多个安全准则;网络实施阶段,包括:经由计算设备中的一个计算设备接收设备指令,该设备指令促使相应的设备向网络发布对等者请求消息,该对等者请求消息包括:发布计算设备的唯一标识符;以及有关数字资产的设备请求;通过网络将对等者请求消息转发到至少一个对等计算设备以进行验证,该验证是由相应的自治代理基于对区块链所存储的许可的评估来执行;响应于验证对等者请求消息,执行设备请求;以及如果已满足区块链定义的一个或多个安全准则中的每个安全准则,则基于已处理的请求更新网络状态。

在一种实施方案中,所述状态更新包括向区块链添加区块,该区块包括代表已处理的设备请求的数据。

在一种实施方案中,所述状态更新进一步包括使已修改的区块链在多个计算设备的每个计算设备之间同步。

在一种实施方案中,所述添加区块的步骤包括计算设备中的一个计算设备解决基于数学的谜题,其中考虑到以下因素:(a)对前一个已解决谜题的引用;(b)至少一个对等计算设备的标识符;(c)对已处理设备请求的引用。

在一种实施方案中,所述安全准则考虑到以下至少一项:(a)哈希率;(b)计算设备中的一个计算设备已解决基于数学的谜题的次数。

在一种实施方案中,所述一个或多个请求验证许可和一个或多个安全准则由自治代理评估的程序代码来定义。

在一种实施方案中,所述网络实施阶段进一步包括一个或多个非对等计算设备,其将对等者请求消息转发到所选择的一个或多个对等计算设备。

在一种实施方案中,由接收对等者请求消息的一个或多个非对等计算设备中的每个非对等计算设备来评估一个或多个预定义许可。

在一种实施方案中,所述预定义许可中的第一预定义许可是授权发布计算设备访问专用网络。

在一种实施方案中,所述对等者请求消息是基于用户在发布计算设备上输入的用户指令而生成,且其中,该对等者请求消息进一步包括该用户的唯一标识符。

在一种实施方案中,所述预定义许可中的第二预定义许可是授权与唯一标识符相关联的用户使用发布计算机设备。

在一种实施方案中,所述设备请求包括用于对指定类型的数字资产执行指定函数的设备指令。

在一种实施方案中,所述函数包括以下一项或多项:将指定数字资产类型的数据存储在至少一个对等计算设备上;修改存储在至少一个对等计算设备上的指定数字资产类型的数据;或者检索存储在至少一个对等计算设备上的指定数字资产类型的数据。

在一种实施方案中,所述预定义许可中的第三预定义许可是授权与唯一标识符相关联的用户指令一个或多个对等计算设备对指定数字资产类型执行指定函数。

在一种实施方案中,所述预定义许可的第四预定义许可是授权与唯一标识符相关联的用户指令一个或多个对等计算设备对发布计算设备上的指定数字资产类型执行指定函数。

在一种实施方案中,所述用户经由用户界面输入指定函数,该用户界面能通过本地端口与相应计算设备上的网络程序进行通信。

在一种实施方案中,所述用户界面阻止用户指定他们无权访问的函数。

在一种实施方案中,所述对等者请求消息是独立于用户指令而生成,且其中,设备请求包括以下一项或多项:连接到一个或多个对等设备的指令;查询设备所拥有的任何数字资产的健康状态的指令。

在一种实施方案中,在所述网络创建阶段中,将所述计算设备中的一个计算设备指定为主联系计算设备,而将其余的计算设备指定为非主联系计算设备。

在一种实施方案中,所述主联系计算设备负责生成根区块。

在一种实施方案中,一旦生成根区块,便将每个非主联系计算设备上的自治代理配置为与主联系计算设备上的自治代理进行通信以使区块链同步。

在一种实施方案中,一旦根区块已同步,每个自治代理便创建相应计算设备的网络标识符,且其中,对等创建规则至少部分地基于各网络标识符来确定哪些计算设备与其他计算设备相关联。

在一种实施方案中,所述方法进一步包括:注册多个计算设备中的每个计算设备的加密密钥集,其中,由区块链记录每个计算设备的公钥。

在一种实施方案中,所述方法进一步包括:注册每个网络用户的加密密钥集,其中,由区块链记录每个计算设备的公钥。

在一种实施方案中,所述对等者请求消息包括设备和/或网络用户的公钥,且其中,利用该公钥来处理设备请求。

在一种实施方案中,每个计算设备上的自治代理存储同步区块链的哈希值。

在一种实施方案中,所述对等者请求消息包括区块链,且其中,当区块链对所存储的版本进行镜像时,对等计算设备转发对等者请求消息。

在一种实施方案中,所述方法进一步包括以下步骤:指令至少一个计算设备分配用于存储至少一种数字资产类型的空间。

在一种实施方案中,将所述空间分配给专用网络的一个或多个用户。

在一种实施方案中,在网络创建阶段中执行指令至少一个计算设备分配空间的步骤。

根据第五方面,提供一种用于实施能够安全管理数字资产的专用计算机网络的系统,所述系统包括:能通过数字通信媒介进行通信的多个网络设备,其中每个网络设备均实施自治网络代理,该自治网络代理能操作为执行网络程序,该网络程序体现为由各网络设备存储和同步的区块链中的程序代码,该网络程序定义许可网络定义的数字资产类型和相应的函数。

在一种实施方案中,所述网络设备能操作为通过网络发布对等者请求消息,该消息包括对特定数字资产类型执行函数的请求,且其中,至少一个对等网络设备上的网络程序自动评估区块链内所包含的网络环境,以确立特定数字资产类型是否许可所请求的函数。

在一种实施方案中,所述至少一个对等网络设备上的网络程序进一步编程为校验是否已经满足对所请求的函数的所有认可授权。

在一种实施方案中,如果所请求的函数已获许可且已满足认可授权,则至少一个对等网络设备执行该函数或将对等者请求消息转发到该设备的对等者,这取决于所请求的函数是否能由至少一个对等设备来执行。

根据第六方面,提供一种用于实施能够安全管理数字资产的专用计算机网络的方法,所述方法包括:在能通过数字通信媒介进行通信的多个网络设备中的每个网络设备上实施自治网络代理,该自治网络代理能操作为执行网络程序,该网络程序体现为由各网络设备存储和同步的区块链中的程序代码,该网络程序定义许可网络定义的数字资产类型和相应的函数。

附图说明

下文结合附图,举例说明本发明的具体实施方案,本发明的特征和优势将显而易见,图中:

图1是根据本发明一种实施方案的用于实施专用网络的示范物理网络架构的示意图;

图2是根据本发明一种实施方案的示范网络设备的示意图;

图3是示出根据一种实施方案的网络程序操作的示意图;

图4是根据本发明一种实施方案的区块链实施方式的示意图;

图5是示出根据一种实施方案的网络环境更新方式的示意图;

图6是示出根据一种实施方案的用于创建网络的示范过程的示意图;

图7和图8是示出根据一种实施方案的用于定位网络对等者的示范过程的示意图;

图9是示出根据一种实施方案的用于在网络上执行某动作的过程的示意图;

图10和图11是示出根据一种实施方案的用于通过专用网络存储表示为数字资产的数据的过程的示意图;以及

图12和图13是示出根据一种实施方案的用于检索表示为根据图10和图11存储的数字资产的数据的过程的示意图。

具体实施方式

本文所述的实施方案涉及利用区块链技术来安全地管理网络内运行的两个设备以及存储于其上的数字资产的系统和方法。更特别地,通过网络上运行并与区块链同步和对接的网络程序来促进数字资产的管理。与常规区块链系统相比,所述网络程序作为区块链本身的一部分,而非下载并安装在网络设备上的静态软件。

本文所用的术语“数字资产”是指可通过数据表示以数字方式表示的任何事物,或者是指一个或多个数字、物理或抽象概念之间的交互(即以数字方式表示并附带某些权利)。因此,本文所述的实施方案可用于跟踪、审计和管理可定义为与某动作相关联的一组规则的任何事物。例如,报告可表示为pdf,这就是一种数据表示。访问安全门可表示为一系列交互(即开门或关门,可在系统内以二进制表示)。因此,根据本文所述的实施方案,报告和安全门皆可表示为数字资产。

常规系统配置

参照图1,示出适于实施本发明实施方案的示范计算网络100。该网络100包括多个网络设备102。网络设备102通过采取通信网络形式的适当数字数据通信形式或媒介而互连。通信网络的范例包括局域网(lan)、广域网(wan)和因特网。取决于预期的实施方式,通信网络可为固定网络或无线网络。

应当理解,具体物理网络配置可采取根据预期用途所需的任何特定形式。网络内的设备102是基于网络程序所定义的规则来构造,如下文详述。例如,网络程序可能需要将网络配置为基于分布式哈希表(dht)的网络,其中将设备102分组为对等者。尤其参阅图1,其中使用箭头104来说明对等关系。

另外参照图2,网络设备102包括处理器110、存储器112、存储设备114、网络设备116和电源118。应当理解,存储器112存储网络设备102内的数据。在一种实施方式中,存储器112为一个或多个易失性存储器单元。在另一种实施方式中,存储器112为一个或多个非易失性存储器单元。存储器112也可为另一种形式的计算机可读介质(例如磁盘或光盘)。存储器112可为非暂时性存储器。

存储设备114可为任何适当形式的能够提供大容量存储的设备。在一种实施方式中,存储设备114可以是或包含计算机可读介质(例如硬盘设备、快闪存储器或其他类似的固态存储设备或者设备阵列,诸如存储区域网络或其他配置中的设备)。计算机程序产品可有形地体现为数据载体。计算机程序产品也能包含指令,这些指令被执行时执行一个或多个方法(诸如上述那些方法)。数据载体为计算机或机器可读介质。

处理器110能够执行网络设备102内的指令,包括存储在存储器112中的指令。处理器110能够实施为包括分立的多个模数处理器的芯片的芯片组。

处理器110例如能够为设备102的其他组件提供协作,例如用户界面的控制、设备运行的应用以及设备102的无线通信。

每个网络设备102的存储设备114加载有自治网络代理106形式的代理,在处理器110的控制下,该代理能操作为促进网络设备102之间的通信和区块链同步。如下文详述,网络代理106能操作为执行网络程序107(如前文所述),该网络程序体现为由网络设备102存储在区块链内的程序代码。网络代理106可以额外配置为处理用户指令,以供网络程序107应用。

某些或全部网络设备102可以包括显示器120以及用于接收用户指令的用户界面122。应当领会,用户界面122能够采用任何适当形式的接口来接收用户指令(例如鼠标、键盘、并入显示器120的触摸屏等)。

应当领会,网络设备102能够实施为各种不同的形式。例如,设备102可能采取通用计算机、服务器计算机、专用设备、包括智能电话、平板型计算机、物联网(iot)设备等形式。还应理解,网络100可能包括多种不同形式的网络设备102。如图1和图2所示的组件以及它们的连接和关系意在仅为示范,而非意在限制本文所述技术的实施方式。

经修改的区块链

常规区块链系统包括三个区块链组成部分,即共识协议、事务状态和应用(又俗称为“节点应用”)。共识协议是一种网络设备在相同事务状态下进行同步的手段。事务状态是一种系统当前状态的表示。这通常是使用智能合约从某一假名到另一假名的授权事务形式,该智能合约针对上述事务编写规则。最后,应用采取程序形式,该程序可更改并解译事务状态以实现其目的。

共识协议和事务状态通常是通用的实施方式,其中根据部署进行微调。常规区块链系统的主要功能来自于智能合约和应用对区块链上数据的解译。更特别地,常规区块链系统采用智能合约来规定资产的使用/转让和使用授权。

相比之下,本文所述的网络程序107用来操作网络本身,包括构建网络结构、定义可能的数字资产以及允许用户/设备与网络对接。

本文所述的实施方案通过跨网络100内操作的所有网络设备102分布其功能而重新设计常规区块链系统栈。

重要的是,网络程序107(即在区块链上运行、与区块链同步并与之交互)作为区块链本身的一部分,而非下载和安装的静态软件。因此,与其将区块链视为一种数据结构,不如将其用作一种在其所代表的网络环境中运行的分布式编程语言。现将更详细地描述网络程序107。

网络程序

另外参照图3和图4,由区块链200所存储的程序代码206来表示网络程序107。对网络程序107进行编程以促进基于联盟的网络访问控制。

网络程序107是用于处理和解译区块链200上的信息的软件实施,如上所述,它本身也存储在区块链200上。网络代理106用作托管网络程序107的框架,用于构建结构化网络环境、定义可能的数字资产并允许用户/设备与网络对接。应当理解,网络代理106内所示的方框可以视为占位符。网络代理106实施网络程序107在执行期间提供的一系列模块。网络代理106从网络程序107检索这些模块并将它们绑定就位以供操作。

如前所述,网络程序107指定执行创建结构化计算机网络所需的规则和模块。另外参照图3,用于特定实施方案的模块和规则包括:

(a)类型系统规则集150,其描述系统中所有可能的可用数字资产、初始网络环境以及可能的可执行函数;

(b)网络模块152和相应的网络规则,其用于查找对等者并确定网络结构,如前文结合图1所述;

(c)授权模块154,其负责授权对等者请求消息;

(d)确认模块156,其负责对要执行的函数进行排队;以及

(e)共识模块158,其负责使区块链200在对等者之间同步。

网络程序107还能维护许可数字资产类型160的列表以及可对该数字资产类型160执行的函数162。网络代理106查找必要的模块152至158和规则150并将它们绑定就位以供网络上操作,如图3所示。

特别是参照图4,区块链200包括根区块202,其由初始区块头204、初始程序代码206(即代表初始版本的网络程序107)和初始状态208(即定义要存储/管理的数字资产的起始状态)组成。这在图3中表示为“初始ne”163。

置于网络100上的请求能够采取以下形式:设备发起的请求(例如,将指令转发到对等网络设备,连接到更多或不同的对等网络设备,查询网络设备所拥有的任何数字资产的健康状态等);以及用户发起的请求(例如,存储或访问指定的数字资产,进行投票等)。网络100中的数字资产109可以表示为与具有特定状态的存储空间相关联的任意令牌。

区块链200由各种网络设备102来实施,以验证相应网络代理106接收到的每个网络请求(即用于转发或直接执行)。根据特定实施方案,验证能够分解为四个不同的许可组(即,如由网络程序107实施的函数162和授权模块154所指定):

(a)仅网络设备107才能执行的函数(例如sync和store);

(b)个人用户有权执行的函数;

(c)特定用户使用个人网络设备时能够执行的函数;以及

(d)哪些网络设备上允许哪些用户。

对于每个网络请求而言,必须满足每个许可组。

网络区块头204在网络的物理层中进行评估并存在于区块链200的每个区块202/210中。区块头204可以包括但不限于:时间;对前一个区块的引用;对状态更新208和程序代码206的引用;共识协议机制(即工作证明,诸如某些中等难度谜题的解决方案);对创建区块210的网络设备102的公钥的引用;以及使用与创建区块210的网络设备102的公钥相对应的私钥来创建的数字签名。时间指示区块210正表示的时间或时间帧。对前一个区块210的引用指示区块210将区块头204保持在区块链200中的位置(其中使用验证手段,诸如哈希)。

由网络程序107的共识模块158评估对状态更新208和程序代码206的引用,以确定更新发生的顺序以及发生的指定时间或时间帧。共识模块158负责在系统内创建附加的区块并在每个块内放置对状态更新的引用。共识协议机制是共识模块158用来验证区块有效性的数据。对创建设备的公钥的引用和相应的签名用来验证是否授权创建设备来创建区块。

取决于网络请求,可能需要更新网络环境(即网络状态和由此维护的数字资产)以反映特定的一个或多个令牌(即代表某些数字资产)的状态已发生变化,或者网络程序107本身(即尤其是程序代码206)进行更新以反映对网络规则的更新。如本文所述,用语“更新网络”是指使区块链在网络设备102之间同步的过程(即,使每个网络设备102基于相同的网络状态引用和排队对等者请求消息的执行)。例如,当数字资产的所有权从一个用户变给另一个用户时,需要对网络环境进行网络更新。类似地,如果数字资产的内容已被修改,则需要更新网络。应当理解,用于更新网络状态的准则可以根据具体实施方式而有所变化。这些准则包含在区块链200所存储的程序代码206中。当更改所允许的设备和用户的寄存器或者网络内添加或更改可用的数字资产类型时,则需要程序代码206的网络更新范例。

一般而言,更新网络是通过向区块链200添加新区块210,由此新添加的区块210包括代表已经接收并确认哪些网络请求的数据。区块能够更新网络环境和网络程序107之一或两者兼有。这一过程在图5中示意性示出并由每个网络设备102上的网络程序107所实施的共识模块158来执行。

通过创建区块头204来创建区块210。一旦创建区块210,创建区块210的网络设备102便将其发送到其对等者。如下文详述,网络程序107和网络环境100提供一种验证传入区块210的手段。如果区块210能够得以验证,则接收的网络设备102及它们各自的对等者“接受”该区块。如果区块210未能得以验证,则将其忽略。一旦区块210已被接受,则将其附接到接收的设备102所存储的区块链200,并且更新网络程序和/或网络环境以反映新添加的区块210内指示出的变化。

一旦网络上的大多数网络设备102已经接受新创建的区块210,便认为该网络“同步”。换而言之,当大多数网络设备102就同一网络环境100和程序107达成一致时,就会发生“同步”。一旦网络与新区块同步,状态便会发生变化,它们所代表的函数会排队等候对网络设备102予以执行。

网络可能以两种方式变得不同步。已创建区块210而其尚未被大多数网络设备102接受,或者区块链200中已出现分叉。当创建的两个区块210包含相同的对前一个区块210的引用时,区块链200中就会出现分叉。共识模块158提供一种分叉解析方法,并且能够对其进行调整以满足指定实施方式的要求。一种分叉解析方法的范例是接受分叉的一侧,这取决于哪一侧在计算上最难以创建。

如前所述,网络程序107允许用户定义对等规则,该对等规则描述如何将网络设备102分组成一组结构化对等者。根据图示的实施方案,使用分布式哈希表(dht)系统来实施基本网络对等规则,由此基于对等规则为网络设备102分配标识符,这些对等规则指定它们存储/维护的数字资产。举例而言,可以通过对所创建的最新区块的引用的哈希以及如何与网络设备102建立连接的通信协议详细信息来创建网络设备的标识符(id)。另举一例,可以为个人网络设备102指定静态id,该静态id可由用户来指定/更改。尤其如下文言明,对等规则定义为网络程序107内的函数,其允许以预期的安全准则和功能来规范网络配置。

本文所述的实施方案有利地允许用户定义网络的所有者,它们能够更新、更改或删除网络程序107的任何部分,包括网络运行方式、其任何或全部模块152至158、规则150、类型160和函数162或者用户认为合适的计算机网络的执行和结构的任何部分。本文所述的实施方案允许用户在无软件更新、无分叉可能性、无需外部更新分布且无需重启网络的情况下做到这一点。同时,网络与不同步的网络设备107保持后向兼容,并且记录和跟踪所做的全部更改。

具体而言,上述由网络程序107实施的模块152至154、规则150和函数160视为特殊形式的数字资产;或者更高阶的数字资产。因此,网络程序107的所有部分都与系统内的标准数字资产具有相同的属性;亦即,它们都具有一个所有者,它们具有一种类型并具有能够对其使用的函数。所有者惯于通过说明更改其部分所需的许可来指定何人拥有网络程序107。类型160允许网络代理106映射并执行这些数字资产。

函数162允许并指定可能对网络程序107发生的变更和更改。这允许对核心模块152至158、规则150和函数160拥有所有权的用户即时对其进行更改。

网络程序107中可能具有函数160,其允许添加更多的函数。这就表明,可以将对网络程序107的任何部分进行任何更新,无论大小都能作为函数添加,然后执行该函数来进行更改。这样就能在不中断网络本身任何部分的情况下即时进行所有更改。这些更改以与其他“正常”函数相同的方式记录在区块链200上。这就表明区块链200不仅记录所有标准数字资产的历史和当前状态,而且记录网络程序107的历史和当前版本。

包含在区块链200内的网络程序107定义了许可网络定义的类型和相应的函数。当请求网络更新时,验证的网络设备102上的网络程序107将评估区块链200内包含的网络环境,以确立所请求的函数是否许可用于相关联的数字资产类型以及是否已满足所请求的函数所需的所有认可授权。

因此,在常规的基于智能合约的区块链系统中,用户无法创建自己的智能合约;与之相比,本文所述的实施方案确保用户能够仅调用针对其拥有或授权的数字资产类型的许可函数,如由网络程序107来定义。

在一种特定的实施方案中,每个函数162包含以下四个部分:

(a)输入类型;

(b)授权的可执行文件;

(c)功能的可执行文件;以及

(d)返回类型。

输入类型描述该函数需要哪些类型的数字资产。授权的可执行文件作为可执行函数的一部分,其根据网络程序107列出的规则或其他自定义规则来确定该函数是否有效。功能的可执行文件定义要采取的动作。当某一函数被“执行”时,它已经通过授权测试并执行功能的可执行文件。返回类型确定作为动作结果的数字资产类型。例如,在简单的基于通货的系统中,输入类型则是货币,而返回类型也是货币。授权的可执行文件将校验是否允许这种货币转移。功能的可执行文件将更改货币的所有者。在更复杂的范例中,“appendtolog”函数则使用“log(日志)”类型的资产和“storagespace(存储空间)”类型的资产并返回“log(日志)”类型的资产。授权的可执行文件将校验用户是否对该日志具有写入访问权限以及是否提供足够的空间来附加信息。功能的可执行文件将某些内容添加到日志中。

应当理解,用户能够定义他们自己的数字资产类型160和许可函数162。举例而言,用户定义的数字资产类型可以是“数据”,并且能够对该资产类型执行的函数可以包括读取、存储或修改。另举一例,对于给定主题而言,数字资产类型可以是“vote(投票)”类型,并且能够执行的函数是“yes(是)”或“no(否)”。这样,例如在董事会议上,用户就能在会议期间的给定时间针对特定主题进行投票。还一范例包括定义“关系数据”或“复合数据”类型。这涉及到拥有任意数据源,其中包括到其他任意数据源的链接。所执行的函数包括检索链接数据的访问部分或所有部分、校验有关链接数据的事实以及验证数据所有权或以某种方式使用计算资源。这样用户就能创建任意数据段,它们允许访问或使用其他任意数据段。这样用户就能创建数据之间的关系,诸如某人的数字身份,该关系能够链接到其他信息,诸如病史、个人信息或所有权契据。更高级的范例包括创建数字资产类型,以递归地定义当前网络程序107内能够使用的“子专用网络”或“层级专用网络”。该数字资产类型可用于创建全新的区块链200,它们具有自己的(或共享的)网络程序107和网络环境100。对这种类型执行的函数可能将会加入或收听网络。这样网络用户就能区分跨越不同子网的网络需求,或者创建具有不同许可、数字资产类型和安全性的不同级别的网络,诸如公共级别、机密级别和私密级别。

用户界面

用户发起的网络请求是通过用户应用界面126而输入。在一种特定实施方案中,用户应用界面126采取基于浏览器的应用形式,该应用可通过本地端口与网络程序107进行通信。其他实施方案可以依赖于安装在用户网络设备102上的持久性专业应用。基于浏览器的应用被加载到存储设备114上并允许用户请求用于特定数字资产的特定函数。应用界面126可与网络程序107进行通信,以根据输入信息生成对等者请求消息,随后通过网络将该对等者请求消息发送到相关的网络对等设备102。

网络创建阶段

现将参照图6详细描述本文所述的用于创建专用网络的过程。应当理解,专用网络是一种供设备/用户专用的网络,并且只有许可的设备/用户才能加入该专用网络。

在步骤s1,由网络管理员将自治网络代理106(由可编程软件来定义)安装在发起的网络设备102(图6中标为“设备a”)上。

在步骤s2,网络管理员对网络代理106进行编程以创建新的网络程序107。在一种实施方案中,如前所述,创建网络程序107包括对各个模块152至158、规则集150、类型160和函数162进行编程。具体而言,这可以包括指定主要联系网络设备(本例为“设备a”,但应理解,根据预期的实施方式可以将一个以上设备指定为主要联系设备)、所允许的用户和网络设备102的公钥寄存器、用户和网络设备102的许可寄存器(上文中指出四种)、至少一种网络资产类型的定义、每种定义资产类型的至少一个函数、施行共识协议的函数、描述区块创建的函数、施行fork解析的函数以及描述对等解析的函数。

举例而言,通过软件定义的设置菜单以及作为javascript文件提供的函数(它们提供网络程序107可执行的适当函数),可以注册主要联系者、公钥寄存器以及许可和资产类型。假设所使用的语言能够在所有要求加入网络的网络设备102上执行,用于对网络代理/网络程序进行编程的编程语言则可任意并可包括任何类型的语言、脚本或其他方式。

网络程序107的授权模块154被编程为基于用户指定的安全准则来授权传入的对等者请求。安全准则可以包括通过引用公钥寄存器和许可寄存器来校验用户和网络设备的许可而内建的授权。可以通过函数编程而添加其他自定义安全准则。举例而言,用于共识协议和区块创建函数的准则可以包括未超过设置的哈希率。另一准则可以是网络设备102在设置的时间帧内未使网络更新请求有效的次数超过某一设置的次数。

另举一例,用于对某种数字资产类型运行函数的准则可以包括:在可以执行该函数之前,不止一个用户必须对其进行数字签名。另一准则可以是某种数字资产类型存在强制数字资产只能在给定时间帧内使用一次的冷静期。

另举一例,用于对等者解析的准则可以包括要求对等者提供对最新区块210的数字签名引用。另一准则可以是对等网络设备102的id仅在给定时间帧内有效。应当理解,准则的数目和类型可以根据预期的实施方式和专用网络所需的安全级别而有所变化。

应当理解,初始配置的主要联系网络设备102(即,正如前例的设备a)可能并非始终是主要联系者,而其他网络设备可能稍后配置为主要联系者(例如通过网络更新)。

如上所述,网络100中的数字资产109表示为任意令牌。这些令牌可以例如与具有特定状态的存储空间相关联。在此情况下,在初始化期间(或在稍后的某个时间),设备a上的网络程序107可以被编程为请求加入网络的每个网络设备102分配特定量的空间(在可能情况下)来存储数字资产。应当理解,在创建网络后,状态将为零。另外,网络程序107可以被编程为提供能够在整个网络上为个人用户分配特定数量的某种类型的数字资产。

在步骤s3,将网络代理106和网络程序107安装在将要形成专用网络的每个其他设备102上(图6中标为“设备b-z”)。还生成那些网络设备102的密钥集并以加密形式存储这些密钥集(即,以便在运行时执行)。在任何特定实施方案中,用户应用界面126被安装在网络设备102上以允许用户交互。

在步骤s4,网络程序107由各自的网络代理106来执行。在执行时,非主要设备b-z上的网络程序107基于由网络程序107存储并由网络模块152实施的对等解析规则来尝试建立对等关系。

作为初始步骤,非主要设备b-z分别查询物理层以查找主要联系设备a。与设备a连接后,网络程序107的共识模块158进行通信以使区块链200同步(此时,其仅由根区块202组成。设备b-z的网络程序107还以与常规区块链系统相同的方式存储同步化的区块链200的区块哈希值(即,以便添加到任何新创建的区块210,以防用欺诈手段对区块链200进行更改,正如本领域技术人员所应理解的那样)。

应当理解,在网络创建阶段中,可以将任何数目和类型的非主要联系网络设备102添加到专用网络。

图7和图8是示出用于寻找对等者网络位置的示范过程的示意图。本例假定设备a和设备c-z已经加入网络100,而设备b则是仅剩的尝试在网络中找到其位置的设备。

图7的步骤s1包括在物理层中创建网络标识符。网络程序107的网络模块152有助于这一过程,其随后指令设备b在设备发起的对等者请求消息中将标识符通信给设备a。对等者请求消息包括设备标识符、有关如何连接到设备102的信息、对设备公钥的引用以及使用与设备公钥相对应的私钥创建的数字签名。由网络程序107的网络模块152实施的对等解析函数可能需要执行附加参数。举例而言,还可能需要对最新创建区块的引用,以将其包含在对等者请求消息内。

在步骤s2,设备a上的网络程序107的网络模块152首先通过执行对等解析函数来确定对等者请求消息是否有效。该函数的结果将确定对等者请求是否有效,如果有效,则确定是否应连接到该对等者,或者确定是否应将请求消息转发到其他对等者。如果设备a上的网络程序107确立应将设备b视为对等者,则网络程序107的网络模块152与该对等者建立连接(步骤s3)。如果为否,则在步骤s4,设备a将对等者请求消息转发到其对等者之一(即,设备a已基于先前的对等者确定而确定为对等者)。对等计算设备重复上述过程,直到设备b已成为至少一个其他网络设备102的对等者。这一点如图8中示意性示出。

网络实施阶段

参照图9,示出网络100如何处理用户发起的对等者请求消息的示范示意图。

在初始步骤s1,用户113经由网络设备102(本例为设备a)上的用户应用界面126生成对等者请求消息。

对等者请求消息包括对用户113的公钥的引用、使用与用户的公钥相对应的私钥创建的数字签名、对特定数字资产类型执行某预定义函数的请求以及任何所需的函数参数,如由类型系统规则集150定义的规则集所需。相对应的网络设备102上的网络程序107包括对设备公钥的引用以及由与设备公钥相对应的私钥创建的数字签名。

在步骤s2,将对等者请求消息转发到请求的网络设备102的每个对等者以便进行处理。这些设备(如由对等规则确定的设备b至z中的选定设备)上的网络程序107随后验证对等者请求消息(步骤s3)。这涉及到确定是否满足各种设备和用户许可(如由网络程序107中的用户113和设备102的许可寄存器所存储)。另外,当满足正常准则时,可以执行所请求的函数的“isauthorized”部分,以添加额外的安全准则(诸如前文所述的那些安全机制)。如果对等者请求消息有效并且满足所有其他安全准则,则该函数排队等候由网络程序107的确认模块156来执行,并且由相应的设备102存储执行该函数的记录。另外,将对等者请求消息转发到已连接的对等者。

所执行的函数可以例如执行些微状态更改,或者要求设备102通过网络100执行某些动作。如果要求某一动作,则设备102可以例如校验其能力及其在网络环境内是否具有所需的数据(例如数字资产109)。如果有能力,则设备102将执行所请求的动作。该动作可能例如要求设备b到z中的一个或多个设备将数据发送到设备a、存储某些数据或者对某些数据执行某些计算并记录/发送结果。应当理解,该动作可能涉及到使用任何计算资源。

示范用例

下面描述根据本文所述的实施方案创建的网络的各种非限制性用例。

正如第一示范用例,能够创建专用环境来镜像专用网络所托管的典型文件存储/共享系统的功能。专用网络可以通过lan/wan或其他合适的物理网络配置物理地实施。

在这种实施方案的简单范例中,网络程序107可以指定三种主要类型160,即:空间、文件和查看。空间是网络内存储空间量以及何人对该空间拥有所有权的值表示。文件是系统中文件的数据表示。文件类型可以利用网络结构来存储它在网络上表示的数据段,从而提供如上所述的安全性和可靠性。查看是抽象的数字资产,代表检索文件的概念。这是一种每次有人查看文件时都会创建的数字资产,其具有从结构化网络中检索数据的关联函数。因此,可以在区块链内创建与文件有关的所有事件的不可变日志,包括每次更改、空间转移、文件许可更改以及每次查看文件的时间。每个动作均由执行该动作的用户和用于请求该动作的设备来进行数字签名。

图10和图11中示意性示出上述示范用例。在本例中,用户以“file(文件)”类型启动store函数,其中参数为文件data.pdf(步骤s1)。store函数将描述如何在网络中表示、存储和保全data.pdf。store函数定义的事务表示用户所拥有的file类型如何将状态更改为目前的表示data.pdf。图10的附图标记300示意性示出如何创建data.trt事务,用来表示指示用户113所拥有的“file”类型的状态更改的事务。如图所示,文件data.pdf被分成几小段数据。这几小片段经过改组和加密。data.trt事务包括每个文件的哈希值以及片段的原始顺序和用于加密片段的密钥,其中使用用户的密钥来进行加密。设备a发送对等者请求消息,请求如data.trt事务所表示那样执行file类型的store函数。如图10上方所示,设备a将data.pdf的加密片段连同data.trt事务一起发送。store函数将描述对等者收到store函数时如何处理该函数。在本例中,该函数要求存储资产,因此对等者将查询结构化网络(本例为具有dht规则并因此具有dht身份的dht网络)以确定是否需要存储数据或在其上将数据转发给对等者。图11示出store函数的最终结果。

参照图12和图13,示意性示出用于检索所存储的数据文件的过程。在此情况下,特别是参照图12,步骤s1涉及用户(本例为设备a的用户)请求使用file类型的retrieve函数来检索文件data.pdf。由retrieve函数创建该retrieve函数的事务表示。用户113所拥有的file类型的状态未做更改,但程序环境更新为指示曾经检索该文件。该网络设备102上的网络程序107生成对等者请求消息,其包含在网络100上发布的retrieve函数的事务表示。当对等设备接收到对等者请求并且该对等者请求有效时,将对等者的网络程序排队等候执行retrieve函数(步骤s2)。retrieve函数将描述从对等者接收到retrieve函数时如何处理该函数。在本例中,该函数要求设备执行将数据发送到请求设备的动作,因此,如果该设备存储有data.pdf的片段,则该设备将校验其是否具有执行该动作的可用资源。如果该设备具有所需的资源,则其将执行将数据发送到请求设备的动作。这一点如图13中示意性示出。

返回图12,可以通过执行一个或多个函数来发布一个或多个分阶段更新(步骤s3)。

在步骤s4,对等网络设备之一创建新区块210(即,其如前所述包括更新的事务表示)。创建区块210的网络设备102将其发送到其对等者以供验证。

一旦区块210已被验证,则将其附接到接收的设备102所存储的区块链200,并且更新网络程序和/或网络环境以反映新添加的区块210内指示出的变化。

将基于网络程序规则集150中列出的相应执行规则来执行函数。该规则将指定执行该函数之前需要确认的次数。接收到函数时使该函数排队等候执行(即通过确认模块156),并在满足规则时执行该函数。

正如第二示范用例,如本文所述的网络可以配置用于外包存储数据的过程而不会危及数据的安全性,或在该数据的机密性和完整性方面信任单独的第三方。

网络的配置类似于上述用例,但并不将网络分散到专用lan/wan(或一系列专用lan/wan)上,而是将网络分散到因特网上。诸如云服务提供者等多个第三方存储服务提供者各自指派有数个设备102。那些提供者的任务仅是相对于给予的设备数目存储随机数据块的加密部分。例如,如果数据在三个云服务提供者之间平均分配,则每个提供者将会大致存储全部数据块中的随机三分之一。因此,每个提供者只能管理三分之一的数据。安全级别最低时,所有三个提供者都可能需要制止(通过黑客入侵或通过内部恶意行为)而破坏数据安全性的机密性/完整性。

应当领会,参与存储数据的各方/提供者越多,系统就越安全。除了第三方提供者已经提供的安全性和可靠性之外,这种网络配置还能提供大量的安全性和可靠性。

正如第三示范用例,网络可配置成能够限制、控制和跟踪连接到该网络的外围设备的使用和访问。

如本领域技术人员应当领会,网络通常包含许多外围设备。这类外围设备通常是辅助设备,用于将信息放入连接到网络的计算机和/或从中获取信息。例如,这类外围设备可以包括键盘、鼠标、打印机、信用卡读卡机、pos终端、取款机等。通常不会跟踪这些外围设备的使用,而仅要求用户登录到与其连接的计算设备即可操作外围设备。这可能导致诸如盗窃、未授权使用和数据泄露等问题。

如上所述,根据本发明创建的网络可以实施为限制、控制和跟踪连接到网络的外围设备的所有使用和访问。在此情况下,每种类型的设备在系统中均表示为类型160(即由网络程序107来定义),该设备类型的各函数162表示所有可能的用途。外围设备配置为仅接受来自网络程序107的指令。这就表明,如前所述,网络程序107保全所添加的任何外围设备的所有使用,并且通过网络更新来跟踪和记录每次使用。这样的网络配置有利于为网络所有者提供对网络中所有外围设备的卓越控制和安全性。

还一示范用例类似于上文针对外围设备所述的用例,但网络设备为自治设备并具有控制它们的内部流程。这类自治设备例如包括智能设备(例如iot设备)、健身设备、路由器和打印机。并非由个人计算机来控制这些设备,而是基于内部程序代码而自行操作。

根据本发明的实施方案,自治代理106能够嵌入到设备中(具体而言,由设备的操作系统来实施)以允许它们连接到网络。这就允许通过网络跟踪和执行对设备的所有控制、使用和访问。例如,无线路由器能够将自治代理/网络程序嵌入其中,从而允许网络程序直接控制无线访问,以使网络所有者能够自定义且保全无线访问和使用。另外,这一自动过程可在物理层上实施(即合并到设备硬件/固件中),以便实现防盗、病毒防护和信息审查,这些任务通常由服务器在网络边缘执行,以防数据泄露。取而代之,根据上述实施方案,能够在通信源处执行这样的任务,而无需考虑其在网络中所处的位置。

又一用例涉及实施杀毒软件的技术。本领域技术人员应当领会,植入杀毒软件在很大程度上依赖于单一可信来源来识别病毒软件或其他恶意软件,并且通常需要大型的中央服务器才能在跨大型设备网络部署时控制杀毒软件。因此,如果可信来源在中央服务器遭到破坏,则杀毒软件也会受到破坏。本发明的实施方案可用于创建杀毒软件的分散网络,其中可信来源分散给网络上的所有设备,且其中对网络的控制也分散到所有设备上。举一简单范例,网络程序可以定义三种类型:杀毒软件、杀毒控件和可信来源(例如数据资产)。杀毒软件类型将具有一个函数,用来执行本地杀毒软件。杀毒控件类型的函数定义有关杀毒软件控制的所有可能函数以及对杀毒软件的外部请求,诸如扫描该文件或阻止该软件。可信来源类型包含杀毒软件运行要求的所有数据。这种类型的函数将与数据管理相关。在该系统中,每个设备现在都能共同协作以查找恶意软件并使其停止传播。能够跟踪每个操作并能记录操作的结果(如上所述,使用日志记录技术)。网络所有者/用户能够从连接到网络的任何设备控制所有杀毒软件,其中跟踪所有事项。能够跟踪对可信来源的所有更新和更改。这会获得更加安全、稳健和灵活的杀毒部署和用法。

正如再一示范用例,一种实施方案可以实施为改装/淘汰工具。本领域技术人员应当理解,多数专用网络在其网络上安装的系统能够解决具有不同程度成功性/可用性的各种问题。在许多情况下,扩展网络或进行升级时,现有系统在决定如何实施新的网络部分方面发挥重要作用。这样常会导致专用网络严重依赖过时/遗留系统。根据本发明的实施方案所实施的专用网络允许改装过时/遗留系统,即使两个系统不兼容,也很容易就能升级网络的较新/其他部分。正如某一简化的范例,网络程序107将被编程为每种类型代表一种目的/系统(例如文件存储)。每个函数代表系统中可能的不同使用/动作(例如检索文件)。该函数将确定所涉及的设备上安装有哪个版本/系统并与该系统进行对接以达成使用/动作。例如,两个数据库可以使用两种不同的方法来存储文件,而检索文件需要不同的动作集(例如不同的加密方法)。当设备接收到指令其检索文件的函数时,它能够确定该设备使用到哪种方法以及所需的动作集。这就表明,对于用户而言,任何系统所使用的确切实施方式/方法都被隐藏,并且感觉就像用户正与单个系统对接,而非分别运行不同的单独系统。因此,能够使用一些方法来升级专用网络的各部分,并根据其操作的设备来使用不同的技术/工具。

这些实施方案也能用作系统编制工具。

本领域技术人员应当领会,多数专用网络具有大量共同运行的软件和硬件系统。这可例如包括服务器、打印机、crm、数据库、会计软件等。这些系统通常由不同的第三方开发,它们使用各不相同的技术来对接和控制软件/硬件。根据本发明的实施方案所创建的专用网络可用于为网络上运行的所有系统创建统一的接口和控件。网络程序内的每种类型都能代表网络上的不同系统,所有函数描述该系统的各种接口。每个函数均指定为在托管的设备上执行/能够到达所涉及的系统并使用api/rpc/rest或其他方法与之交互。这就允许授权用户使用任何授权的设备来控制/使用/配置任何系统。这可扩展到每个作为网络用户的系统使用专用网络来控制/使用/配置其他系统。这样就能为系统提供大量的灵活性和安全性。因此,系统的控制/使用/配置不再局限于直接连接到系统的接口,而是能由网络上的任何授权设备来完成。可以在所涉及的系统之外的一层上构建自定义和安全访问的控件,从而允许所有者轻松遵循相关的标准和策略,而不受特定系统允许的限制。任何系统的所有控制/使用/配置都被记录并进行数字签名,与常规系统相比,这样能够大幅提高对用户的审核和跟踪能力。

参阅上述用例应当理解,必须将初始网络程序107和网络状态163/208分发给所有要求加入网络的设备102。对于每个设备上必须安装类型系统/程序的任何基于类型/程序的系统而言,情况也是如此。网络程序的实施细节和网络状态可能会破坏系统的安全性。因此,取决于实施方式,可能希望将该信息视为私密信息而不对外公开。如果设备分布到诸如因特网等公用网络上,则尤其如此。

正如再一用例,本发明可以实施为元网络。相对于从一开始就定义类型和函数的前述范例(即,匹配预期的用例),元网络实施配置为用作构建/创建其他用例环境的系统。这会部署在所有具有元网络实施的设备上,允许信息成为公共知识,但不会披露有关实际实施的任何细节。使用专用网络提供的安全机制,就能在所有设备上安全地安装/创建预期的用例。由于专用网络的同步能力,设备能够随时加入元网络,包括在已经创建这一用例系统之后安装实际的用例。

本文所述的各个方面可以经由任何适当数目和/或类型的计算机平台、模块、处理器、存储器等来实施,它们均可用硬件、软件、固件、中间件等来体现。

还应理解,本文所用的术语“处理器”应取广义解释,其范围内包括可处理相关数据/消息的任何设备,并可包括微处理器、微控制器、可编程逻辑设备或其他计算设备、通用计算机或服务器计算机。

虽然已结合本发明的实施方案对本发明予以描述,但本领域技术人员应当理解,在不脱离本本发明范围的情况下,可作出各种变更、更改和改进,并且可用等同方案来替代其中的元素和步骤。此外,在不脱离本发明中心范围的情况下,根据本发明的教导可作出许多修改以适应特殊情况或材料。尽管上文并未明确描述,但这样的变更、更改、修改和改进仍意在隐含在本发明的范围和精神内。因此,本发明不限于本文所述的特定实施方案,而是本发明将包括落入所附独立权利要求范围内的所有实施方案。

在所附权利要求和本发明的前述内容中,除非上下文因表达语言或必要暗示而另作要求,否则词语“包括”或其变形用作开放性含义,即在本发明的各种实施方案中,指定存在所述的特征而不排除存在或增加更多特征。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1