CN115428400A - 撤销对网络的访问权限 - Google Patents

撤销对网络的访问权限 Download PDF

Info

Publication number
CN115428400A
CN115428400A CN202180020618.2A CN202180020618A CN115428400A CN 115428400 A CN115428400 A CN 115428400A CN 202180020618 A CN202180020618 A CN 202180020618A CN 115428400 A CN115428400 A CN 115428400A
Authority
CN
China
Prior art keywords
transaction
node
nodes
bridging
network
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
Application number
CN202180020618.2A
Other languages
English (en)
Inventor
克洛伊·塔尔坦
亚历山大·麦凯
克雷格·史蒂文·赖特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Blockchain Licensing Jsc
Original Assignee
Blockchain Licensing Jsc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Blockchain Licensing Jsc filed Critical Blockchain Licensing Jsc
Publication of CN115428400A publication Critical patent/CN115428400A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种用于撤销对第一网络的访问权限的计算机实现的方法,其中所述第一网络包括一组桥接节点以及可由所述一组桥接节点中的一个或更多个桥接节点控制的一组设备,每个桥接节点也是区块链网络的相应节点,每个桥接节点和设备与授予对所述第一网络的访问权限的相应证书相关联;所述方法由注册机构执行并且包括:获取警报事务,所述警报事务是区块链事务并且包括第一输出,所述第一输出包括标识一个或更多个桥接节点和/或一个或更多个设备的警报消息;以及通过撤销所述标识的一个或更多个桥接节点和/或一个或更多个设备的所述相应证书来撤销所述标识的一个或更多个桥接节点和/或一个或更多个设备对所述第一网络的访问权限。

Description

撤销对网络的访问权限
技术领域
本发明涉及用于(例如使用区块链事务)撤销对网络的访问权限的方法。
背景技术
区块链是指一种分布式数据结构形式,其中在点对点(P2P)网络中的多个节点中的每个节点处维护区块链副本。区块链包括一系列数据区块,其中每个区块包括一个或更多个事务(transaction)。每个事务都可以回指序列中的先前事务,其可以扩展一个或更多区块。通过称为“挖掘”的过程,事务可以通过提交到网络包括在新区块中,该过程涉及多个挖掘节点中的每个挖掘节点争相执行“工作量证明”,即基于等待包括在区块中的未决事务池解决加密难题。
区块链中的事务通常用于传递数字资产,即用一定数量的数字通证。但是也可利用区块链实现区块链上的分层附加功能。例如,区块链协议可允许在事务输出中存储附加用户数据。现代区块链在单一事务中可储存的最大数据容量在不断增加,从而能够并入更复杂的数据。例如,这可用于在区块链中存储电子文档,甚至音频或视频数据。
网络中的每个节点可以具有以下三个角色中的任何一个、两个或全部:转发、挖掘和存储。转发节点在整个网络节点中传播事务。挖矿节点核实事务并将这些事务插入到候选区块中,这些事务尝试标识有效的工作量证明解。执行的事务挖掘至区块中。存储节点各自对区块链中的已挖掘区块存储自己的副本。为了将事务记录在区块链中,一方将该事务发送到网络中的节点中的一个节点进行传播。接收该事务的挖掘节点可以争相将该事务挖掘到新区块中。每个节点被配置为遵守相同的节点协议,该协议将包括用于确认事务有效的一个或更多个条件。无效事务将不会传播或挖掘到区块中。假定事务已经核实有效,从而在区块链上被接受,该附加用户数据将因此作为不可改变的公共记录,继续存储在P2P网络中的各个节点处。
发明内容
物联网(IoT)技术使物理设备网络能够在无需人工干预的情况下监控事件并交换数据。推动物联网技术发展的原因是需要实时数据采集机制和自动控制机制,以取代各个行业的常规监测和控制方法。物联网系统产生大量数据,并且依赖于具有网络可扩展性、强大网络安全性、可靠连接性和最小网络延迟的系统。
目前,集中式架构模型广泛应用于认证、授权和连接物联网中的节点。此类模型易受攻击,并且充当单点故障。如果集中式系统受到破坏,可能会向恶意设备授予和/或从现有设备中删除访问所述物联网的权限。例如,如果恶意设备被授予访问所述物联网的权限,该设备可能会获取敏感数据或破坏所述网络。
与集中式架构相比,点对点(P2P)架构提供了更安全且更高效的方案,相邻节点之间无需使用任何集中式节点或智能体即可直接进行交互。区块链技术是安全P2P通信的基础,有望彻底改变物联网系统的发展趋势。利用所述区块链构建物联网的一个优势在于能够使用区块链事务授予对所述网络的访问权限。例如,可以使用区块链事务将新对等节点(即,网络节点)引导到P2P网络中,即被授予加入所述网络的访问权限。该过程涉及为每个节点生成数字证书。如果节点的证书有效,则所述节点可以访问所述网络并与其他节点(例如,其他设备)通信。与节点通信可以包括指示所述节点执行动作或响应所述网络中的其他节点。如果所述证书无效,则所述节点无法访问所述网络并与所述网络中的其他节点通信(例如,指示)。注册机构可以通过专用公钥-私钥对(skIssue,PKIssue)颁发证书。
如果许可节点(即,拥有对所述网络的访问权限的节点)发生故障或受到恶意行为者的攻击,就会出现问题。节点发生故障或被恶意行为者控制的示例性后果是,其他节点可能无法指示所述故障/恶意节点执行动作,或者所述故障/恶意节点可能无法向其他节点报告已执行相应动作。故障/恶意节点可能会无意或恶意(视情况而定)指示所述网络中的其他节点执行有害动作,或者它们可能会错误地报告其动作或状态。
根据本文公开的一个方面,提供了一种用于撤销对第一网络的访问权限的计算机实现的方法,其中所述第一网络包括一组桥接节点以及可由所述一组桥接节点中的一个或更多个桥接节点控制的一组设备,每个桥接节点也是区块链网络的相应节点,每个桥接节点和设备与授予对所述第一网络的访问权限的相应证书相关联;所述方法由注册机构执行并且包括:获取警报事务,所述警报事务是区块链事务并且包括第一输出,所述第一输出包括标识一个或更多个桥接节点和/或一个或更多个设备的警报消息;以及通过撤销所述标识的一个或更多个桥接节点和/或一个或更多个设备的所述相应证书来撤销所述标识的一个或更多个桥接节点和/或一个或更多个设备对所述第一网络的访问权限。
所述第一网络(例如,物联网)包括一个或更多个桥接节点以及可由所述一个或更多个桥接节点控制的一个或更多个设备。所述桥接节点也是区块链网络中的节点。也就是说,所述桥接节点是所述物联网和所述区块链网络的一部分,从这个意义上来说,所述桥接节点既可以连接至所述物联网(例如,与其他网络节点和设备通信),也可以连接至所述区块链网络(例如,将事务传输到所述区块链,并标识和读取所述区块链上记录的事务)。这些节点充当所述第一网络与所述区块链网络之间的网关或网桥。此外,这些节点无需具有所述区块链网络中的挖矿节点、转发节点或存储节点的作用,但也不排除这种情况。在一些示例中,所述第一网络的所述设备中的一个或更多个也可以是所述区块链网络中的节点。
所述注册机构(可以是所述物联网的桥接节点,也可以不是)是所述区块链网络中的节点。即,所述注册机构连接至所述区块链,并且被配置为将事务传输到所述区块链网络。所述注册机构负责向节点和设备授予证书,然后,这些证书授予节点或设备加入所述网络的权限。
响应于接收到所述警报事务,所述注册机构撤销在所述警报事务中标识的节点(例如,已发生故障或已恶意执行动作的节点)或设备的证书。一旦节点或设备的证书被撤销,该节点或设备就无法再访问所述网络。换言之,证书已被撤销的节点或设备不能指示其他节点执行动作,同样也不能按照指示执行动作。
证书可以记录在证书(区块链)事务中。例如,通过向每个节点颁发记录在所述区块链上的区块链事务中包含的证书,可以向每个节点授予证书(并因此授予对所述网络的访问权限)。虽然所述证书事务与未花费事务输出(UTXO)链接,但是所述证书被视为有效证书,并且所述节点被视为具有对所述网络的访问权限。即,其他节点可以检查发出命令的节点是否具有有效证书(例如,链接到该节点的公钥的有效证书)。为了撤销所述证书,所述注册机构生成撤销事务,所述撤销事务花费与所述证书事务链接的所述UTXO。所述证书将不再与未花费事务输出链接,例如,包含所述证书的输出将不再出现在所述区块链的UTXO集合中。其他节点将能够(例如)通过查询所述UTXO集合来了解被撤销的节点不再具有有效证书,并且因此不会与所述被撤销的节点通信,包括不再向所述被撤销的节点发出命令或根据从所述被撤销的节点接收的命令执行动作。
根据本文公开的另一个方面,提供了一种用于向负责撤销对第一网络的访问权限的注册机构报告失败连接的计算机实现的方法,其中所述第一网络包括一组桥接节点以及可由所述一组桥接节点中的一个或更多个桥接节点控制的一组设备,每个桥接节点也是区块链网络的相应节点,每个桥接节点和设备与授予对所述第一网络的访问权限的相应证书相关联;所述方法由所述桥接节点中的第一桥接节点执行并且包括:响应于与一个或更多个桥接节点和/或一个或更多个终端设备建立相应连接的预定次数的失败尝试,将所述第一桥接节点的数字签名添加到第一警报事务的输入中,所述第一警报事务是区块链事务并且包括第一输出,所述第一输出包括标识所述一个或更多个桥接节点和/或所述一个或更多个设备的警报消息;以及将所述第一警报事务传输到所述桥接节点中的一个其他桥接节点、注册机构和所述区块链网络的一个或更多个节点中的一个、一些或全部,以使所述第一警报事务包含在所述区块链中。
如果所述网络的节点(“第一节点”)不能再与(疑似)故障/恶意节点通信,则所述第一节点可能会意识到(或怀疑)其他节点或设备发生故障或受到恶意行为者攻击。当所述第一节点无法与所述故障/恶意节点建立连接,或者在与所述故障/恶意节点建立连接时经历多次失败尝试时,所述第一节点对所述警报事务进行签名,所述警报事务可用于向所述注册机构告知所述故障/恶意节点。所述第一节点可以将所述警报事务传输到所述区块链,所述注册机构可以从所述区块链获取所述警报事务。附加地或替代地,所述第一节点可以(例如)经由链下通信信道将所述警报事务直接传输到所述注册机构。作为另一选项,所述第一节点可以将所述警报事务传输到所述网络的另一节点(“第二节点”)。如果所述第二节点也遇到与所述故障/恶意节点的连接问题,则所述第二节点也可以对所述警报事务进行签名。然后,所述第二节点可以将所述警报事务转发到另一节点、所述注册机构或所述区块链网络。
在一些示例中,如果警报事务包括阈值数目的签名,则所述注册机构可以仅对所述警报事务执行动作。也就是说,已证明与所述故障/恶意节点存在连接问题的节点数目最小。
附图说明
为了帮助理解本公开的实施例并示出如何实施此类实施例,现将仅通过举例的方式参考附图进行说明,其中:
图1是一种用于实现区块链的系统的示意性框图;
图2示意性地示出了可记录在区块链中的事务的一些示例;
图3是另一种用于实现区块链的系统的示意性框图;
图4A是客户端应用程序的示意性框图;
图4B是可由图4A的客户端应用程序表示的示例性用户界面的示意性模型;
图5示意性地示出了物联网与区块链网络之间的重叠;
图6示意性地示出了分层网络拓扑结构;
图7a和图7b示意性地示出了示例性证书事务和示例性证书格式;
图8示意性地示出了示例性网络,其中节点无法连接和/或响应所述网络上的其他节点和设备;
图9a至图9c示意性地示出了第一示例性警报事务;
图10示意性地示出了图9a至图9c所示的有效载荷数据的示例;
图11a和图11b示意性地示出了警报事务和对应的确认事务的第二示例;以及
图12a和图12b示意性地示出了警报事务和对应的确认事务的第三示例。
具体实施方式
示例性系统概述
图1总体地示出了一种用于实现区块链150的示例性系统100。系统100包括分组交换网络101,通常是诸如互联网的广域互联网。分组交换网络101包括多个节点104,该多个节点被设置成在分组交换网络101内形成点对点(P2P)覆盖网络106。每个节点104包括对等体的计算机设备,不同的节点104属于不同的对等体。每个节点104包括含一个或更多个处理器的处理装置,例如一个或更多个中央处理单元(CPU)、加速器处理器、特定应用程序处理器和/或现场可编程门阵列(FPGA)。每个节点还包括存储器,即采用非暂时性计算机可读介质形式的计算机可读存储器。存储器可包括一个或更多个存储器单元,其采用一个或更多个存储器介质,例如诸如硬盘等的磁介质、诸如固态硬盘(SSD)、闪存或电可擦可编程只读存储器(EEPROM)等的电子媒介和/或诸如光盘驱动器等的光学介质。
区块链150包括一系列数据区块151,其中在P2P网络160中的多个节点中的每个节点处维护相应的区块链150副本。区块链中的每个区块151均包括一个或更多个事务(transaction)152,其中该上下文中的事务是指一种数据结构。数据结构的性质将取决于用作事务模型或计划的一部分的事务协议类型。给定的区块链通常全程使用一个特定的事务协议。在一种常见的事务协议中,每个事务152的数据结构至少包括一个输入和至少一个输出。每个输出指定一个数额,该数额表示属于输出被加密锁定的用户103的数字资产值(需要该用户的签名进行解锁,从而进行赎回或花费)。每个输入指向先前事务152的输出,从而链接这些事务。
节点104中的至少一些节点扮演转发节点104F的角色,这些节点转发并因此传播事务152。节点104中的至少一些节点扮演挖掘区块151的矿工104M的角色。节点104中的至少一些节点扮演存储节点104S(有时也称为“完整副本”节点)的角色,每个存储节点均在相应的存储器中存储相同区块链150的相应副本。每个矿工节点104M还维护等待挖掘到区块151中的事务152的池154。给定节点104可以是转发节点104、矿工104M、存储节点104S或其中两个节点或所有节点的任意组合。
在给定的当前事务152j中,输入(或每个输入)包括指针,该指针引用事务序列中先前事务152i的输出,指定该输出将在当前事务152j中被赎回或“花费”。通常,当前事务可以是池154或任何区块151中的任何事务。尽管为了确保当前事务有效,将需要存在先前事务152i并核实其有效,但是在创建当前事务152j甚至向网络106发送当前事务152j时,不必存在先前事务152i。因此,在本文中,“先前”是指由指针链接的逻辑序列中的前任,而不一定是时间序列中的创建时间或发送时间,因此,不一定排除无序创建或发送事务152i、152j的情况(参见下面关于孤立事务的讨论)。先前事务152i同样可以称为先行事务或前任事务。
当前事务152j的输入还包括先前事务152i的输出被锁定到的用户103a的签名。反过来,当前事务152j的输出可以加密锁定到新用户103b。因此,当前事务152j可将先前事务152i的输入中定义的数额转移到当前事务152j的输出中定义的新用户103b。在某些情况下,事务152可具有多个输出,以在多个用户间分割输入数额(其中一个可以是原始用户103a,以便进行变更)。在某些情况下,一个事务还可以具有多个输入,以将一个或更多个先前事务的多个输出中的数额汇总在一起,并重新分配到当前事务的一个或更多个输出。
上述可称为“基于输出的”事务协议,有时也称为未花费的事务输出(UTXO)的协议(其中输出称为UTXO)。用户的总余额不是用区块链中存储的任何一个数字定义的;相反,用户需要特殊“钱包”应用程序105,以整理该用户的所有UTXO值,这些UTXO值分散在区块链151的许多不同事务152中。
作为基于账户的事务模型的一部分,另一种类型的事务协议可称为“基于账户的”协议。在基于账户的情况下,每个事务均不通过参考过去事务序列中先前事务的UTXO来定义转移的数额,而是通过参考绝对账户余额进行定义。所有账户的当前状态由矿工单独存储到区块链中,并不断更新。在此类系统中,事务使用账户的运行事务记录(也称为“头寸”)进行排序。该值由发送者签名作为其加密签名的一部分,并作为事务引用计算的一部分进行哈希处理。此外,可选的数据字段也可以在事务中签名。例如,如果数据字段中包含先前事务的ID,则该数据字段可指向先前事务。
无论采用何种类型的事务协议,当用户103希望执行新事务152j时,其希望将新事务从其计算机终端102发送至P2P网络106的节点104中的一个(现在通常是服务器或数据中心,但原则上可以是其他用户终端)。此节点104根据在节点104中的每个节点处应用的节点协议检查事务是否有效。节点协议的详细信息将与相关区块链150中使用的事务协议类型相对应,一起形成整个事务模型。节点协议通常要求节点104检查新事务152j中的加密签名是否与预期签名相匹配,这取决于事务152的有序序列中的先前事务152i。在基于输出的情况下,这可包括检查新事务152j的输入中包含的用户加密签名是否与新事务花费的先前事务152i的输出中定义的条件相匹配,其中该条件通常包括至少检查新事务152j的输入中的加密签名是否解锁新事务的输入所指向的先前事务152i的输出。在一些事务协议中,条件可至少部分地由输入和/或输出中包含的自定义脚本定义。或者,这可仅由节点协议单独确定,或可通过其组合确定。无论采用哪种方式,如果新事务152j有效,当前节点会将其转发到P2P网络106中的一个或更多个其他节点104。这些节点104中的至少一些节点还作为转发节点104F,根据相同的节点协议应用相同的检验,从而将新事务152j转发到一个或更多个进一步的节点104,依此类推。通过这种方式,新事务在节点104的整个网络中进行传播。
在基于输出的模型中,给定输出(例如,UTXO)是否花费的定义是,根据节点协议,其是否通过另一个随后事务152j的输入有效赎回。事务有效的另一个条件是其试图花费或赎回的先前事务152i的输出尚未被另一个有效事务花费/赎回。同样,如果无效,事务152j将不会在区块链中传播或记录。这可防止重复花费,即花费者对同一个事务的输出花费超过一次。另一方面,基于账户的模型通过保持账户余额防止重复花费。因为同样存在定义的事务顺序,账户余额在任何时候均具有单一定义的状态。
除核实之外,节点104M中的至少一些节点在称为挖矿的过程中争先创建事务区块,该过程以“工作量证明”为基础。在挖矿节点104M处,将新事务添加到区块中尚未出现的有效事务的池中。然后,矿工争相通过尝试解决加密难题来组装事务池154中事务152的新的有效区块151。通常情况下,这包括搜索“随机数”值,从而当随机数与事务池154并置且进行哈希处理时,哈希值的输出满足预定条件。例如,预定条件可以是哈希值的输出具有某个预定义的前导零数。哈希函数的特性是,相对于其输入,其具有不可预测的输出。因此,该搜索只能通过强力执行,从而在试图解决难题的每个节点104M处消耗大量的处理资源。
解决难题的第一矿工节点104M在网络106上宣布难题解决,提供解决方案作为证明,然后网络中的其他节点104则可以轻松检查该解决方案(一旦给出哈希值的解决方案,就可以直接检查该解决方案是否使哈希值的输出满足条件)。基于已在每个此类节点处检查获胜者的已宣布解决方案,获胜者已为其解决该难题的事务池154之后由充当存储节点104S的节点104中的至少一些节点记录在区块链150中作为新区块151。区块指针155还分配给指向区块链中先前创建的区块151n-1的新区块151n。工作量证明有助于降低重复花费的风险,因为创建新区块151需要大量工作,并且由于包含重复花费的任何区块都可能被其他节点104拒绝,因此挖矿节点104M受到激励,不允许在其区块中包含双重花费。一旦创建,则不可修改区块151,因为其根据相同的协议在P2P网络106中的存储节点104S中的每个存储节点进行识别和维护。区块指针155还向区块151施加顺序。由于事务152记录在P2P网络106中每个存储节点104S处的有序区块中,因此提供了事务的不可变公共分类账。
应当注意的是,在任何给定时间争相解决难题的不同矿工104M可能会根据任何给定时间的未挖掘事务池154的不同快照执行该操作,具体取决于他们何时开始搜索解决方案。解决相应难题的人员首先定义新区块151n中包含的事务152,并更新当前未挖掘事务池154。然后,矿工104M继续争相从新定义的未完成池154中创建区块,依此类推。此外,还存在解决可能出现的任何“分叉”的协议,其中两名矿工104M彼此在很短的时间内解决难题,从而传播区块链的冲突视图。简言之,分叉方向最长的成为最终区块链150。
在大部分区块链中,获胜矿工104M会自动获得特殊类型的新事务作为奖励,该新事务创建新的数字资产值(与将数字资产数额从一个用户转移至另一个用户的正常事务截然相反)。因此,获胜节点被视为已“挖掘”一定数量的数字资产。这种特殊类型的事务有时称为“生成”事务,其自动形成新区块151n的一部分。该奖励可激励矿工104M争相参与工作量证明。通常情况下,常规(非生成)事务152还将在其输出中的一个输出中指定附加事务费用,以进一步奖励创建其中包含事务的区块151n的获胜矿工104M。
由于挖掘中涉及的计算资源,通常至少矿工节点104M中的每个矿工节点采用服务器的形式,该服务器包括一个或更多个物理服务器单元,甚至整个数据中心。每个转发节点104M和/或存储节点104S还可采取服务器或数据中心的形式。但是,原则上来说,任何给定节点104均可采用一个用户终端或联网在一起的一组用户终端的形式。
每个节点104的存储器均存储被配置为在节点104的处理装置上运行的软件,以根据节点协议执行其相应的角色并处理事务152。应当理解的是,在本文中归因于节点104的任何动作均可通过在相应计算机设备的处理装置上运行的软件执行。此外,在本文中使用的“区块链”一词是指一般技术类型的通用术语,不限于任何特定专有区块链、协议或服务。
扮演消费用户角色的多方103中的每一方的计算机设备102也连接到网络101。他们充当事务中的支付者和收受者,但不一定代表其他方参与挖掘或传播事务。他们不一定运行挖矿协议。出于说明目的,示出了双方103及其相应的设备102:第一方103a及其相应的计算机设备102a,以及第二方103b及其相应的计算机设备102b。应当理解的是,更多此类当事方103及其相应的计算机设备102可能存在并参与系统,但为了方便起见,未进行说明。每一方103均可以是个人或组织。仅出于说明目的,在本文中,第一方103a称为爱丽丝,第二方103b称为鲍勃,但应当理解的是,这并不仅限于爱丽丝或鲍勃,且本文对爱丽丝或鲍勃的任何引用均可分别用“第一方”和“第二方”替换。
每一方103的计算机设备102包括相应的处理装置,其包括一个或更多个处理器,例如一个或更多个CPU、图形处理单元(GPU)、其他加速器处理器、特定应用程序处理器和/或FPGA。每一方103的计算机设备102还包括存储器,即采用非暂时性计算机可读介质形式的计算机可读存储器。该存储器可包括一个或更多个存储器单元,其采用一个或更多个存储器介质,例如诸如硬盘等磁介质、诸如SSD、闪存或EEPROM等电子媒介和/或诸如光盘驱动器等的光学介质。每一方103的计算机设备102上的存储器存储软件,其包括被设置为在处理装置上运行的至少一个客户端应用程序105的相应实例。应当理解的是,在本文中归因于给定方103的任何行动均可通过在相应计算机设备102的处理装置上运行的软件执行。每一方103的计算机设备102包括至少一个用户终端,例如台式或笔记本电脑、平板电脑、智能手机或诸如智能手表等的可穿戴设备。给定方103的计算机设备102还可包括一个或更多个其他网络资源,诸如通过用户终端访问的云计算资源。
客户端应用程序或软件105最初可通过例如从服务器下载的适当计算机可读存储介质,或通过诸如可移动SSD、闪存密钥、可移动EEPROM、可移动磁盘驱动器、软盘或磁带等的可移动存储设备、诸如CD或DVD ROM等的光盘或可移动光驱等提供至任何给定方103的计算机设备102。
客户端应用程序105至少包括“钱包”功能。这有两个主要功能。其中一个功能是使相应的用户方103创建、签名和发送拟在节点104的整个网络中传播的事务152,并因此包含在区块链150中。另一个功能是向相应方汇报其目前拥有的数字资产数额。在基于输出的系统中,该第二功能包括整理分散在区块链150中属于相关方的各种事务152的输出中定义的数额。
每个计算机设备102上的客户端应用程序105的实例可操作地耦合到P2P网络106的转发节点104F中的至少一个转发节点。这可以启用客户端105的钱包功能,以将事务152发送至网络106。客户端105还可联系一个、一些或所有存储节点104,以在区块链150中查询相应方103作为接收者的任何事务(或实际上在区块链150中检查其他方的事务,因为在实施例中,区块链150是在某种程度上通过其公开可见性提供事务信任的公共设施)。每个计算机设备102上的钱包功能被配置为根据事务协议制定和发送事务152。每个节点104运行软件,其被配置为根据节点协议核实事务152有效的软件,并且在转发节点104F的情况下转发事务152,以在整个网络106中传播此类事务。事务协议和节点协议相互对应,给定事务协议和给定节点协议一起实现给定的事务模型。区块链150中的所有事务152均采用相同的事务协议(尽管事务协议可允许其内存在不同的事务子类型)。网络106中的所有节点104采用相同的节点协议(尽管其可根据针对该子类型定义的规则区分处理不同的事务子类型,并且不同的节点还可扮演不同的角色,从而实现协议的不同对应方面)。
如上所述,区块链150包括一系列区块151,其中每个区块151包括通过如前所述的工作量证明过程创建的一个或更多个事务152的集合。每个区块151还包括区块指针155,其指向区块链中先前创建的区块151,以定义区块151的顺序。区块链150还包括有效事务池154,其等待通过工作量证明过程包含在新的区块中。每个事务152(除了一生成事务)包括指向先前事务的指针,以定义事务序列的顺序(注:事务152的序列可进行分支)。区块151的区块链一直追溯到创始区块(Gb)153,该创始区块是区块链中的第一区块。区块链150中早期的一个或更多个原始事务152指向创始区块153,而非先前事务。
当给定方103(比方说爱丽丝)希望发送拟包含在区块链150中的新事务152j时,她将根据相关事务协议(使用其客户端应用程序105中的钱包功能)制定新事务。然后,她将事务152从客户端应用程序105发送至其连接的一个或更多个转发节点104F中的一个。例如,这可以是与爱丽丝的计算机102最近或最佳连接的转发节点104F。当任何给定节点104接收新事务152j时,其将根据节点协议及其相应的角色进行处理。这包括首先检查新接收的事务152j是否满足变为“有效”的特定条件,具体示例稍后将详细讨论。在一些事务协议中,有效条件可通过事务152中包含的脚本在每个事务的基础上进行配置。或者,条件可仅仅是节点协议的内置功能,或通过组合脚本和节点协议进行定义。
如果新接收的事务152j通过有效性检验(即:“有效”的条件下),接收事务152j的任何存储节点104S将向在该节点104S处维护的区块链150的副本中的池154中添加新有效事务152。进一步地,接收事务152j的任何转发节点104F随后将有效事务152传播至P2P网络106中的一个或更多个其他节点104。由于每个转发节点104F应用相同的协议,因此假定事务152j有效,这意味着事务很快将在整个P2P网络106中传播。
一旦进入在一个或更多个存储节点104处维护的区块链150的副本中的池154中,矿工节点104M将开始竞相解决包括新事务152的池154的最新版本方面的工作量证明难题(其他矿工104M可继续尝试基于池154的旧视角解决难题,但首先解决难题的矿工将定义下一个新区块151的结束位置和新池154的开始位置,最终将有人解决包括爱丽丝的事务152j的池154的一部分的难题)。一旦包括新事务152j的池154完成工作量证明,其将不可变地成为区块链150中区块151中的一个区块的一部分。每个事务152包括指向早前事务的指针,因此事务的顺序也被不可变地记录下来。
基于UTXO的模型
图2示出了示例性事务协议。这是基于UTXO的协议的示例。事务152(简称“Tx”)是区块链150的基本数据结构(每个区块151包括一个或更多个事务152)。下面将通过参考基于输出或基于“UTXO”的协议进行描述。但这并不限于所有可能的实施例。
在基于UTXO的模型中,每个事务(“Tx”)152包括数据结构,其包括一个或更多个输入202和一个或更多个输出203。每个输出203可包括未花费的事务输出(UTXO),其可用作另一新事务的输入202的来源(如果UTXO尚未赎回)。UTXO包括指定数字资产数额的值。这表示(分布式)分类账中的一组代币。UTXO还可包含其来源事务的事务ID以及其他信息。事务数据结构还可包括标头201,其可包括输入字段202和输出字段203的大小指示符。标头201还可包括事务的ID。在实施例中,事务ID是事务数据(不含事务ID本身)的哈希值,且存储在提交至矿工104M的原始事务152的标头201中。
需要注意的是,虽然图2中的每个输出都示为UTXO,但事务可以附加地或替代地包括一个或更多个不可花费的事务输出。
比方说爱丽丝103a希望创建转移相关数字资产数额至鲍勃103b的事务152j。在图2中,爱丽丝的新事务152j标记为“Tx1”。该新事务获取在序列中先前事务152i的输出203中锁定至爱丽丝的数字资产数额,并至少将此类数额中的一部分转移至鲍勃。在图2中,先前事务152i标记为“Tx0”。Tx0和Tx1只是任意的标记,其不一定意味着Tx0指区块链151中的第一事务且Tx1指池154中的下一个事务。Tx1可指向仍具有锁定至爱丽丝的未花费输出203的任何先前(即先行)事务。
当爱丽丝创建其新事务Tx1时,或至少在她将该新事务发送至网络106时,先前事务Tx0可能已经有效并包括在区块链150中。该事务此时可能已包括在区块151中的一个区块中,或者可能仍在池154中等待,在这种情况下,该事务将很快包括在新区块151中。或者,Tx0和Tx1可以创建并一起发送至网络102;或者,如果节点协议允许缓冲“孤立”事务,Tx0甚至可以在Tx1之后发送。本文事务序列上下文中使用的“先前”和“后续”一词是指由事务中指定的事务指针定义的序列中的事务顺序(哪个事务指向哪个其他事务等等)。它们同样可以替换为“前任”和“继任”、“先行”和“后代”或“父项”和“子项”等。这不一定指其创建、发送至网络106或到达任何给定节点104的顺序。然而,指向先前事务(先行事务或“父事务”)的后续事务(后代事务或“子事务”)不会有效除非父事务有效。在父事务之前到达节点104的子事务被视为孤立事务。根据节点协议和/或矿工行为,其可被丢弃或缓冲一段时间,以等待父事务。
先前事务Tx0的一个或更多个输出203中的一个包括特定的UTXO,标记为UTXO0。每个UTXO包括指定UTXO表示的数字资产数额的值以及锁定脚本,该锁定脚本定义后续事务的输入202中的解锁脚本必须满足的条件,以使后续事务有效,从而成功赎回UTXO。通常情况下,锁定脚本将数额锁定至特定方(该数额的事务的受益者)。即,锁定脚本定义解锁条件,该解锁条件通常包括以下条件:后续事务的输入中的解锁脚本包括先前事务被锁定到的一方的加密签名。
锁定脚本(亦称scriptPubKey)是节点协议识别的域特定语言中写入的一段代码。此类语言的特定示例称为“脚本(Script)”(S大写)。锁定脚本指定花费事务输出203所需的信息,例如爱丽丝签名的要求。解锁脚本出现在事务的输出中。解锁脚本(亦称scriptSig)是提供满足锁定脚本标准所需信息的域特定语言中写入的一段代码。例如,其可包含鲍勃的签名。解锁脚本出现在事务的输入202中。
因此在示出的示例中,Tx0的输出203中的UTXO0包括锁定脚本[Checksig PA],该锁定脚本需要爱丽丝的签名Sig PA,以赎回UTXO0(严格来说,是为了使试图赎回UTXO0的后续事务有效)。[Checksig PA]包含爱丽丝的公私密钥对中的公钥PA。Tx1的输入202包括指向Tx1的指针(例如,通过其事务ID(TxID0),其在实施例中是整个事务Tx0的哈希值)。Tx1的输入202包括在Tx0中标识UTXO0的索引,以在Tx0的任何其他可能输出中对其进行标识。Tx1的输入202进一步包括解锁脚本<Sig PA>,该解锁脚本包括爱丽丝的加密签名,该签名由爱丽丝通过将其密钥对中的私钥应用于预定的部分数据(有时在密码学中称为“消息”)创建。爱丽丝需要签名以提供有效签名的数据(或“消息”)可通过锁定脚本、节点协议或其组合进行定义。
当新事务Tx1到达节点104时,该节点应用节点协议。这包括一起运行锁定脚本和解锁脚本,以检查解锁脚本是否满足锁定脚本中定义的条件(其中该条件可包括一个或更多个标准)。在实施例中,这涉及并置两个脚本:
<Sig PA><PA>||[Checksig PA]
其中“||”表示并置,“<…>”表示将数据放在堆栈上,“[…]”表示由解锁脚本组成的函数(在该示例中指基于堆栈的语言)。同样,脚本可以使用公共堆栈一个接一个地运行,而不是并置脚本。无论采用哪种方式,当一起运行时,脚本使用爱丽丝的公钥PA(包括在Tx0的输出的锁定脚本中),以认证Tx1的输入中的锁定脚本是否包含爱丽丝签名预期部分的数据时的签名。预期的部分数据本身(“消息”)也需要包括在Tx0中,以便执行此认证。在实施例中,签名的数据包括整个Tx0(因此不需要包括一个单独的元素来明文指定签名的部分数据,因为其本身便已存在)。
本领域技术人员将熟悉通过公私密码进行认证的细节。基本上而言,如果爱丽丝已通过使用其私钥加密签署消息,则给定爱丽丝的公钥和明文中的消息(未加密消息),诸如节点104等其他实体可认证加密版本的消息必须已经由爱丽丝签名。签署通常包括对消息进行散列,签署哈希值和将此标记到消息的明文版本作为签名,从而使公钥的任何持有者能够认证签名。
如果Tx1中的解锁脚本满足Tx0的锁定脚本中指定的一个或更多个条件(因此,在所示示例中,如果在Tx1中提供了爱丽丝的签名并进行认证),则节点104认为Tx1有效。如果是挖矿节点104M,这意味着其将添加至等待工作量证明的事务154池。如果是转发节点104F,则其将事务Tx1转发到网络106中的一个或更多个其他节点104,从而将在整个网络中传播。一旦Tx1有效并包括在区块链150中,这将把Tx0中的UTXO0定义为已花费。请注意,Tx1仅在花费未花费的事务输出203时才有效。如果试图花费另一事务152已经花费的输出,则即使满足所有其他条件,Tx1也将无效。因此,节点104还需要检查先前事务Tx0中引用的UTXO是否已经花费(已经形成另一有效事务的有效输入)。这是为何区块链150对事务152施加定义的顺序很重要的原因之一。在实践中,给定节点104可维护单独的数据库,标记已花费事务152的UTXO 203,但最终定义UTXO是否已花费取决于是否在区块链150中形成了另一有效事务的有效输入。
请注意,在基于UTXO的事务模型中,给定UTXO需要作为一个整体使用。不能“留下”UTXO中定义为已花费的一部分数额,而同时又花费另一部分。但UTXO的数额可以在下一个事务的多个输出之间分割。例如,Tx0的UTXO0中定义的数额可以在Tx1中的多个UTXO之间分割。因此,如果爱丽丝不想将UTXO0中定义的所有数额都给鲍勃,她可以使用剩余部分在Tx1的第二输出中自己找零,或者支付给另一方。
在实践中,爱丽丝通常还将需要包括获胜矿工的费用,因为现在仅靠生成事务的奖励币通常不足以激励挖掘。如果爱丽丝未包括矿工的费用,Tx0可能会被矿工节点104M拒绝,因此,尽管技术上有效,但仍然不会传播并包括在区块链150中(如果矿工104M不愿意,矿工协议不会强制他们接受事务152)。在一些协议中,挖掘费不需要其自身的单独输出203(即不需要单独的UTXO)。相反,给定事务152中输入202所指向的总数额与输出203所指定的总数额之间的任何差额都将自动提供给获胜矿工104。例如,假设指向UTXO0的指针是Tx1的唯一输入,而Tx1只有一个输出UTXO1。如果UTXO0中指定的数字资产的数额大于UTXO1中指定的数额,则该差额将自动提供给获胜矿工104M。替代地或附加地,这不一定排除可以在其自身事务152的其中一个UTXO 203中明确指定矿工费用。
另请注意,如果给定事务152的所有输出203中指定的总数额大于其所有输入202所指向的总数额,则这是大多数事务模型中的另一失效依据。因此,此类事务将不会传播或挖掘到区块151中。
爱丽丝和鲍勃的数字资产由区块链150中任何位置的任何事务152中的锁定至他们的未花费UTXO组成。因此,通常情况下,给定方103的资产分散在整个区块链150的各种事务152的UTXO中。区块链150中的任何位置均未存储定义给定方103的总余额的一个数字。客户端应用程序105的钱包功能的作用是将锁定至相应方且在其他随后事务中尚未花费的各种UTXO值整理在一起。通过查询在任何存储节点104S(例如,与相应方的计算机设备102最近或最佳连接的存储节点104S)处存储的区块链150副本,可以实现这一点。
请注意,脚本代码通常用示意图表示(即非精确语言)。例如,可写入[ChecksigPA]表示[Checksig PA]=OP_DUP OP_HASH160<H(Pa)>OP_EQUALVERIFY OP_CHECKSIG。“OP_...”是指脚本语言的特定操作码。OP_CHECKSIG(又称“Checksig”)是脚本操作码,其取两个输入(签名和公钥),并使用椭圆曲线数字签名算法(ECDSA)验证签名的有效性。在运行时,移除脚本中任何出现的签名(‘sig’),但在由‘sig’输入验证的事务中仍保留附加要求,诸如哈希难题。再如,OP_RETURN是脚本语言操作码,用于创建事务的不可花费输出,其可以将元数据储存在事务中,从而将元数据不可变地记录在区块链150中。例如,元数据可包括需存储在区块链中的文件。
签名PA是数字签名。在实施例中,这基于使用椭圆曲线secp256k1的ECDSA。数字签名对特定的数据段进行签名。在实施例中,对于给定事务,签名将对部分事务输入以及全部或部分事务输出进行签名。对输出的特定部分进行签名取决于SIGHASH标志。SIGHASH标志是包含在签名末尾的4字节代码,用于选择签名的输出(并因此在签名时固定)。
锁定脚本有时称为“scriptPubKey”,指其包括相应事务被锁定到的当事方的公钥。解锁脚本有时称为“scriptSig”,指其提供相应的签名。但是更通俗地说,在区块链150的所有应用中,UTXO赎回的条件并不一定包括对签名进行认证。更通俗地说,脚本语言可用于定义任何一个或更多个条件。因此,可以优选更为通用的术语“锁定脚本”和“解锁脚本”。
可选的侧信道
图3示出了用于实现区块链150的另一系统100。除了附加的通信功能外,该系统100与图1所示的内容基本相同。爱丽丝和鲍勃的每台计算机设备102a、120b上的客户端应用程序分别包括附加通信功能。也就是说,这可使爱丽丝103a建立与鲍勃103b分离的侧信道301(在任何一方或第三方的鼓动下)。侧信道301能够独立于P2P网络实现数据交换。此等通信有时候被称为“链下”通信。比如,当交换爱丽丝与鲍勃之间的事务152时不想将该事务(仍未)发布到P2P网络106或挖掘到区块150,可以采用此等通信,直到其中一方选择将该事务广播到网络106。替代地或附加地,该侧信道301可以用于交换任何其他的事务相关数据,例如密钥、协商的数额或条款、数据内容、等等。
通过与P2P覆盖网络106相同的分组交换网络101可建立侧信道301。此外/或者,通过诸如移动蜂窝网络等不同网络、或者诸如本地无线网络等局域网、或者甚至爱丽丝和鲍勃的设备1021、102b之间的直接有线或无线连接可以建立侧信道301。一般而言,本文所指的侧信道301可包括经由一种或更多种联网技术或者通信介质的任何一个或更多个链路,用于“链下”(即独立于P2P覆盖网络106)交换数据。在多个链路被使用的情况下,整个链下链路的捆绑或集合才可以被称为侧信道301。因此,需要注意的是,虽然爱丽丝和鲍勃通过侧信道301对特定的信息或数据片段或者诸如此类进行交换,但这并不一定意味着所有这些数据片段必须通过相同的链路或甚至同一类型网络进行发送。
客户端软件
图4A示出了用于实现本公开方案的实施例的客户端应用程序105的示例性实施方式。客户端应用程序105包括事务引擎401和用户界面(UI)层402。根据上文讨论的方案以及稍后将进一步详细讨论的内容,事务引擎401被配置为实现客户端105的基础事务相关功能,诸如制定事务152,通过侧信道301接收和/或发送事务和/或其他数据,和/或发送事务以通过P2P网络106传播。
该UI层402被配置为通过相应用户的计算机设备102的用户输入/输出(I/O)方式呈现用户界面,包括通过设备102的用户输出方式向相应用户103输出信息,和通过设备102的用户输入方式接收来自相应用户103的输入。例如,用户输出方式可包括提供视觉输出的一个或显示多个屏(触摸或非触摸屏)、提供音频输出的一个或更多个扬声器、和/或提供触觉输出的一个或更多个触觉输出设备等。用户输入方式可包括例如一个或更多个触摸屏的输入阵列(可与用于输出方式的那个/那些相同或不同);一个或更多个基于光标的设备,诸如鼠标、轨迹板或轨迹球;一个或更多个麦克风和语音或声音识别算法,用于接收语音或声音输入;一个或更多个基于手势的输入设备,用于接收手动或身体手势形式的输入;或者一个或更多个机械按钮、开关或控制杆等。
注:虽然本文中的各种功能可以被描述为集成到同一客户端应用程序105中,但这并不一定构成限制,相反,它们可以在两个或更多个不同应用程序组成的一套程序中实现,例如一个应用程序作为另一个应用程序的插件或经由API(应用程序编程接口)进行接口。比如,事务引擎401的功能可以在单独的应用程序中实现,而不是在UI层402中实现,或者诸如事务引擎401的给定模块的功能可以在多个应用程序之间分割。同时,也不排除部分或全部描述的功能可以在比如操作系统层实现。在本文任何位置引用单个或给定应用程序105或诸如此类的情况下,应当理解的是这只是作为示例,并且更通俗地说,所描述的功能可以在任何形式的软件中实现。
图4B给出了用户界面(UI)400的示例的模型,该UI可由客户端应用程序105a的UI层402在爱丽丝的设备102a上呈现。应当理解的是,类似的UI可以由客户端105b在鲍勃的设备102b或任何其他方的设备上呈现。
通过图示的方式,图4B从爱丽丝的角度示出了UI 400。UI 400可包括一个或更多个UI元素411、412、413,该一个或更多个UI元素通过用户输出方式呈现为不同的UI元素。
例如,UI元素可包括一个或更多个用户可选择的元素411,这些元素可以是屏幕上的不同按钮、菜单中的不同选项或者诸如此类。用户输入方式被设置成使用户103(在这种情况下为爱丽丝103a)能够选择或以其它方式操作其中一个选项,诸如通过点击或触摸屏幕上的UI元素,或者说出所需选项的名称(注:本文使用的“手动”一词仅用于与自动进行对比,而不一定限于用手执行操作)。这些选项使得用户(爱丽丝)能够生成事务并将其发送给另一用户(鲍勃),且根据所述实施例生成事务的签名。
替代地或附加地,UI元素可以包括一个或更多个数据输入字段412,通过数据输入字段412,用户可以输入要包含在所生成事务中的数据和/或要签名的消息。这些数据输入字段通过用户输出方式呈现,例如屏幕上,并且数据可通过用户输入方式输入到字段中,例如键盘或触摸屏。或者,数据可以例如基于语音识别口头地接收。
替代地或附加地,UI元素可包括向用户输出信息的一个或更多个信息元素413。例如,这/这些可以在屏幕上呈现或可听见。
应当理解的是,呈现各种UI元素、选择选项和输入数据的特定方式并不重要。这些UI元素的功能稍后将进行更详细地讨论。还应当理解的是,图4B中示出的UI 400只是一个图示模型,在实践中,它可包括一个或更多个进一步的UI元素,为了简洁起见,未对其进行说明。
授予网络访问权限
图5示出了用于实现本发明实施例的示例性系统500。示例性系统500包括由一个或更多个终端设备(即,计算设备)502和一个或更多个桥接节点503(即,运行区块链客户端应用程序105并因此充当区块链网络106与第一网络501之间网桥的计算设备)组成的第一网络501。为了清楚起见,第一网络501称为物联网,即通过互联网互连的计算设备的网络。然而,应当理解的是,第一网络不需要是物联网,通常可以是任何P2P网络。通常,终端设备502和桥接节点503嵌入在日常设备中。终端设备502可以采用多种形式中的一种,例如用户设备(例如,智能电视、智能音箱、玩具、可穿戴设备等)、智能家电(例如,冰箱、洗衣机、烤箱等)、仪表或传感器(例如,智能恒温器、智能照明、安全传感器等)。同样,桥接节点503也可以采用多种形式,可以包括但不限于与终端设备可以采用的相同形式。节点503也可以采用专用服务器设备、基站、接入点、路由器等形式。在一些示例中,每个设备可以具有固定网络(例如,IP)地址。例如,一个、一些或所有终端设备可以是固定设备(例如,智能灯或智能中央加热控制器等),而不是移动设备。在该示例性系统500中,爱丽丝103a和鲍勃103b各自采用桥接节点503的形式。
物联网是分组交换网络101,通常是互联网等广域互联网。分组交换网络101中的节点503和设备502被布置成在分组交换网络101中形成点对点(P2P)覆盖网络501。每个节点503包括相应的计算机设备,每个计算机设备包括相应的处理装置,所述处理装置包括一个或更多个处理器,例如一个或更多个中央处理单元(CPU)、加速器处理器、专用处理器和/或现场可编程门阵列(FPGA)。每个节点503还包括存储器,即采用非暂时性计算机可读介质形式的计算机可读存储器。该存储器可以包括一个或更多个存储器单元,其采用一个或更多个存储器介质,例如硬盘等磁介质;固态硬盘(SSD)、闪存或EEPROM等电子介质;和/或光盘驱动器等光学介质。
物联网中的每个节点503也是区块链节点104。这些节点503被布置成桥接节点(网关节点),充当第一网络501与区块链网络106之间的网桥(网关)。区块链节点104可以是“侦听节点”。侦听节点运行客户端应用程序105,所述应用程序保留区块链的完整副本,核实并传播新的事务和区块,但不主动挖掘或生成新的区块。替代地,节点可以是“简单支付验证节点”(SPV节点)。SPV节点运行轻量级客户端,所述轻量级客户端可以生成和广播比特币事务并间接监控地址,但不会保留区块链的完整副本。
物联网中的每个节点503用于直接或间接控制终端设备502。直接连接至终端设备502的节点503可以直接控制该设备。未直接连接至终端设备502的节点503只能间接控制该设备,例如,通过一个或更多个中间节点将控制消息转发给终端节点。每个节点503连接至一个或更多个挖矿节点104M。
图5还示出了挖矿节点104M的网络504,该网络是区块链网络106的子集。上文参考图1至图3对挖矿节点进行了讨论。挖矿节点104M用于挖掘传输至区块链150的有效事务(例如,从物联网节点传输的事务)。
如图5所示,节点503构成P2P网络501和区块链P2P网络106的一部分,而挖矿节点104M仅构成区块链P2P网络106的一部分。虽然图5中示出终端设备502仅构成P2P物联网501的一部分,但不排除终端设备502也可以是区块链节点104。
图6示出了物联网501的示例性拓扑结构。物联网501可以控制主节点503a、一个或更多个中间节点(503b、503c)中的一组或更多组(601)以及一组终端设备502。主节点502a用于控制一个或更多个中间节点(503b、503c)。如果物联网501包括多组(例如,多层)(601a、601b)中间节点,则主节点503a用于直接控制第一组(层)(601a)中间节点(“服务器节点”503b),并间接控制一组或更多组(层)(601b)其他中间节点(例如,一层“从节点”503c)。主节点503a是能够覆盖和控制服务器节点和从节点的控制节点。每个服务器节点503b是能够控制从节点503c的节点。每个从节点503c是受控于服务器节点503b和主节点503a的节点。例如,为了指示终端设备502a,主节点503a通过服务端节点503b向从节点503c发出命令。
虽然图6所示的示例性物联网仅示出了两层中间节点(服务器节点和从节点),但其他示例可以包括一组或更多组其他中间节点,例如主节点503a与服务器节点503b之间的中间节点和/或服务器节点503b与从节点503c之间的中间节点。如图所示,每个节点通过相应的连接602连接至一个或更多个其他节点,每个终端设备502通过相应的连接602连接至一个或更多个从节点。一个或更多个节点(例如,主节点)在下文中称为控制节点。每个控制节点是可以通过发出命令来指示其他节点执行操作的节点503。
物联网节点503可以对应于功能范围、指令/特权优先级和/或访问范围方面的层次结构。在一些实现方式中,一组分层SPV节点实现了具有三个层级的“物联网控制器”,对应于图5和图6所示的主节点503a、服务器节点503b和从节点503c。主节点503a指示一个或更多个服务器节点503b,每个服务器节点指示一个或更多个从节点503c。每个从节点503c接收来自一个或更多个服务器节点503b的指令。每个从节点503c与一个或更多个物联网终端设备502进行通信,这是物联网控制器503与物联网终端设备502之间的直接通信信道。物联网控制器503的执行状态记录在区块链事务Tx中。每个物联网节点(即,主节点、服务器节点或从节点)都有能力创建对应的事务Tx并将其广播到区块链网络106。每个从节点监控来自终端设备502的触发和/或确认信号,每个物联网节点503具有与任何其他物联网节点交互的能力,以执行物联网控制器的整体逻辑。
主节点、服务器节点和从节点可以分别单独连接到区块链网络106中的节点104,操作区块链钱包105(例如,监视区块链地址),并且可能运行全节点(尽管这不是必需的)。主节点503a用于监控直接和间接受其控制的其他物联网节点的活动,以区块链事务Tx的形式向这些节点发出命令,并对警报做出响应。服务器节点503b用于监视多个地址,包括不受服务器节点503b直接控制的地址。主节点503a可以命令服务器节点503b执行操作。从节点503c用于监控直接受其控制的终端设备502的活动。从节点503c受服务器节点503b的直接命令,也可以按主节点503a的命令执行操作。从节点503c充当终端设备502的网关节点(即,终端设备与区块链网络106之间的网关)。终端设备502用于连接至附近的从设备。所述从设备采用链下消息传递协议报告终端设备状态。
需要注意的是,虽然在物联网节点503与终端设备502之间进行了区分(即,终端设备502由物联网节点503控制,但其本身不控制物联网节点503),但终端设备502也可以是区块链网络106中的节点104。也就是说,在一些示例中,终端设备502可以操作区块链协议客户端或钱包应用程序105。
物联网501通过将命令和控制层次结构与区块链网络基础设施的使用相结合,在集中化与分散化之间取得了平衡。网络501的用户可以创建自己的多级控制层次结构,所述层次结构包括客户端-服务器以及设备之间的点对点关系。网络架构包括三层:物联网501;区块链P2P网络104(即,完整区块链客户端和轻量级区块链客户端,例如,所述主节点、所述服务器节点和所述从节点是操作SPV钱包105的轻量级客户端);区块链挖矿网络504(核实、传播和存储由物联网节点传播的事务的区块链P2P网络的子集)。区块链网络106充当后端基础设施,物联网501与区块链P2P网络106之间存在重叠。
第一网络(例如,物联网)包括一个或更多个桥接节点以及可由所述一个或更多个桥接节点控制的一个或更多个设备。桥接节点也是区块链网络中的节点。也就是说,桥接节点是物联网和区块链网络的一部分,从这个意义上来说,桥接节点既可以连接至物联网(例如,与其他网络节点和设备通信),也可以连接至区块链网络(例如,将事务传输到区块链,并标识和读取区块链上记录的事务)。这些节点充当第一网络与区块链网络之间的网关或网桥。此外,这些节点无需具有区块链网络中的挖矿节点、转发节点或存储节点的作用,但也不排除这种情况。在一些示例中,第一网络的设备中的一个或更多个也可以是区块链网络中的节点。
必须向节点503和设备502中的一个、一些或全部授予加入(即,访问)网络501的权限。在物联网环境中,允许新节点503使用注册机构(例如,网络中的可信实体)提供的链上防伪数字证书加入物联网501。通过确保只有真正的节点才能访问网络和/或控制网络中的其他节点或设备,其可解决与网络攻击相关的问题。
如前所述,加入物联网501的权限由注册机构授予(注册机构registrationauthority也可以称为“权限授予机构”或“认证机构”)。所述注册机构负责向请求实体(例如,请求节点或请求设备)颁发数字证书。具有有效证书的实体可以访问物联网501。所述注册机构包括相应的计算机设备,每个计算机设备包括相应的处理装置,所述处理装置包括一个或更多个处理器,例如一个或更多个中央处理单元(CPU)、加速器处理器、专用处理器和/或现场可编程门阵列(FPGA)。所述注册机构的所述计算设备还包括存储器,即采用非暂时性计算机可读介质形式的计算机可读存储器。该存储器可以包括一个或更多个存储器单元,其采用一个或更多个存储器介质,例如硬盘等磁介质;固态硬盘(SSD)、闪存或EEPROM等电子介质;和/或光盘驱动器等光学介质。
为了授予请求实体加入网络501的权限,所述注册机构可以生成区块链事务Tx,在下文中称为“证书事务”。示例性证书事务如图7a所示。证书事务Tx包括一个或更多个输入以及一个或更多个输出。至少一个输入包括所述注册机构的数字签名。也就是说,所述注册机构具有可从中生成数字签名的第一私钥(例如,第一私钥-公钥对),所述注册机构使用该数字签名对所述事务进行签名。示例性证书格式如图7b所示。通过对所述证书事务进行签名,所述注册机构证实了事务输出中所包含的数据。所述数字签名只能由知道所述第一私钥的所述注册机构生成。所述事务还具有第一输出(例如,不可花费的输出),所述输出包括由所述注册机构颁发给所述请求者的数字证书。所述数字证书包含分配给所述请求者的标识符。在物联网501中,对所述请求者来说,所述标识符是唯一的。为所述请求者分配标识符,该标识符一经发出就必须保持不变,并且会出现在颁发给所述设备的任何证书中。优选地,在生成证书时分配设备标识符。然而,不排除所述请求者已经拥有设备标识符的情况,然后,所述设备标识符通过包含在证书中的方式进行认证。
所述证书事务生成后,所述注册机构将其传输至区块链网络106中的一个或更多个节点104,以将其记录在区块链150中。所述证书事务记录在区块链150中后,所述请求者可以使用证书向网络501中的其他节点或设备证明所述请求者已经被授予加入网络501的权限。例如,当与网络501中的其他节点503进行通信时,所述请求者可以包含标识所述证书事务的信息,并且因此包含证书。
参考图1至图3,在这些示例中,第一节点可以是爱丽丝103a的计算机设备102a,第二节点可以是鲍勃103b的计算机设备102b。
如果所述请求者是网络501中的节点503(或者正在请求作为节点加入网络501的权限),则证书可以包括分配给该节点的唯一公钥。请求节点503加入网络501后,公钥允许请求节点503传输和接收区块链事务。
所述证书事务可以包括锁定至所述注册机构的第二公钥的第二输出。所述第二公钥可以与用于生成对所述证书事务进行签名的所述签名的所述公钥相同,也可以是不同的公钥。第二输出锁定至所述第二公钥,即,需要知道所述第二公钥才能解锁该输出。例如,所述第二输出可以包括所述第二公钥的哈希,为了由后续事务的输入解锁,该输入必须包括所述第二公钥。当第二输出与所述第二事务的输入一起执行时,对所述输入中提供的所述第二公钥进行哈希处理,并与第二输出中所包含的哈希进行比较。如果这两个哈希匹配,则可以解锁第二输出1502b(前提是满足任何附加约束条件)。
可以通过支付到公钥哈希(P2PKH)将输出锁定至公钥。P2PKH是一种将输出锁定至公钥哈希的脚本模式。如果接收者提供了相对于与所述公钥哈希匹配的公钥有效的签名,则可以花费P2PKH输出。也就是说,P2PKH输出要求花费者提供两个项目:公钥,使得所述公钥的哈希与所述P2PKH输出中的地址相匹配;签名,对所述公钥和事务消息有效,但不一定按照该顺序。
由于第二输出1502b锁定至所述注册机构的公钥,因此只有所述注册机构可以撤销证书。这样可以防止证书被恶意方撤销。
当记录在区块链150中时,每个事务可以通过唯一的事务标识符TxID进行标识。可以通过计算序列化事务字节的(双重)SHA256哈希来生成事务标识符。可以使用其他哈希函数来代替SHA256。所述注册机构可以将所述证书事务的事务标识符传输给所述请求者。这使得所述请求者能够标识所述证书事务,从而获取所述证书事务中的证书。替代地,所述请求者可以侦听从所述注册机构的地址传输至区块链150的事务。
如果所述请求者作为节点(例如,服务端节点)加入网络501,则请求节点可以使用事务标识符来获取所述注册机构的第一公钥,并标识从该第一公钥发送的一个或更多个其他事务(即,其他证书事务)。其他事务中的每一个可以包括网络501中的一个或更多个其他节点或设备的相应证书。然后,所述请求者可以获取(例如,下载和保存)这些证书。证书中的信息(例如,设备标识符和/或公钥)可以用于与网络501中的其他节点503和/或设备502通信。例如,所述请求者可以使用另一个节点503的认证公钥将区块链事务传输至该节点,例如通过在锁定至所述认证公钥的事务中包含输出(例如,P2PKH输出)。在接收命令时,所述请求者可以使用证书来检查该命令是否从授权节点503或设备502发出。
如果所述请求者作为不能访问区块链的终端设备502加入网络501,所述注册机构可以通过有线连接或无线连接(例如,蓝牙、Wi-Fi等)等方式将证书传输给终端设备。所述注册机构还可以将由一个或更多个第二证书组成的一组第二证书传输给请求终端设备502。颁发给网络501中的相应节点或终端设备的每个第二证书可以用于确保所述请求终端设备与授权节点503和设备502之间的通信。
每个证书(第一证书和第二证书)可以包括向其颁发证书的节点503或终端设备502的网络地址(例如,IP地址)。所述请求者可以使用授权(即,认证)节点的网络地址与该节点通信,例如发送传感器读数或命令确认。
所述注册机构可以将证书传输至所述请求者以及传输至网络501中的一个或更多个节点和/或终端设备。这些终端设备可以使用该证书与所述请求者进行通信,并验证所述请求者是否已经被授予加入网络501的权限。
撤销网络访问权限
在某些情况下,可能需要撤销颁发给请求者的证书。例如,所述请求者可能受到危害,或者可能出现了故障。图8示出了示例性网络801,其中故障或恶意节点801无法连接或响应该网络上的其他节点(503a、503b)和设备803。为了简洁起见,故障或恶意节点801接下来将称为故障节点。此外,除非上下文另有要求,否则对“故障节点801”的任何引用均可理解为“故障节点或故障终端设备”。该特定示例性网络801包括主节点503a、若干中间节点503b(其中一个恰好是故障节点801)和若干终端设备502a。故障节点801示为阴影部分。可由故障节点801控制的终端设备803也示为阴影部分。终端设备803是中断的终端设备803,从这个意义上来说,由于故障节点801遇到连接问题,中断的节点803无法再由故障节点801控制。与图8的示例一样,如果中断的终端设备803仅可由故障节点801控制,则中断的终端设备803无法再被控制,因为没有其他节点(503a、503b)可以与中断的终端设备803建立连接。图8中节点与设备之间的实线表示已建立的连接,而故障节点801与其他节点(503a、503b)以及中断的节点803之间的虚线表示故障连接802。
在图8的示例中,与故障节点801存在连接问题的每个节点与相应公钥相关联。第一节点具有第一公钥PK1,第二节点具有第二公钥PK2,第三节点具有第三公钥PK3,主节点具有主公钥PKM
当节点(例如,中间节点503)与故障节点801连接失败时,节点503b可以生成警报事务。警报事务的目的是就网络上的节点发生故障或受到危害的可能性向注册机构503a(例如,主节点503a)发出警报。应当注意的是,本文使用的术语“故障节点”801也指疑为故障或受危害节点的节点,实际上不一定是故障或受危害节点。
图9a示出了第一节点生成的警报事务的示例。警报事务包括第一输出,该第一输出包括警报消息(或警报数据)。在该示例中,包括警报消息的输出是不可花费输出(例如,“OP_RETURN输出”)。应当注意的是,根据某些区块链协议,操作码“OP_FALSE OP_RETURN”使输出不可花费。在本申请中,对“OP_RETURN输出”的引用被视为等同于“OP_FALSE OP_RETURN输出”。在其他示例中,包括警报消息的输出可以是可花费输出。警报消息包括标识故障节点801的数据。
图10示出了示例性警报消息。标识故障节点801的数据可以包括故障节点(或故障设备,具体视情况而定)的设备标识符(“Device ID”)。对于故障节点,警报消息可以包括故障节点801的公钥,例如故障节点801用来访问网络501的经认证公钥。在图10的示例中,故障节点801具有公钥PK4。警报消息可以包括标识故障节点的证书位置的数据(“设备证书位置数据”),例如节点的公钥,该证书对该设备或节点进行认证。在第一节点已经标识多个故障节点801的示例中,警报消息可以包括标识每个故障节点801的相应数据。或者,第一节点可以包括多个警报消息,每个警报消息标识相应的故障节点801。作为另一替代选项,第一节点可以生成多个警报事务,每个警报事务包括标识相应故障节点801的警报消息。
在一些示例中,警报消息可以包括表示第一节点与故障节点801之间失败连接次数的数据。在警报消息标识多个故障节点801的示例中,警报消息可以包括表示第一节点与相应故障节点801之间相应连接失败次数的相应数据。
警报事务还包括与注册机构503a相关联的第二输出。在图9a至图9c以及图10至图12的示例中,注册机构503a包括具有主公钥PKM的主节点。然而,应当理解的是,注册机构503a可以不同于主节点。与注册机构503a相关联的输出可以是基于注册机构503a的公钥PKM锁定到地址的输出,例如应支付到注册机构503a的公钥PKM的散列值的支付到公钥散列输出。
警报事务还包括输入,该输入包括第一节点的签名SigPK1。例如,第一节点可以使用基于与第一节点的公钥PK1对应的私钥的签名SigPK1来对事务的第一输出和第二输出进行签名。在这些示例中,输入中包括标志(称为“sighash标志”),使得其他输入能够添加到警报事务中。在该特定示例中,标志“SIGHASH_ANYONECANPAY”是仅对当前输入(即,包括第一节点的签名SigPK1的输入)进行签名的签名散列类型。
第一节点可以将警报事务传输到注册机构503a,例如,以就故障节点801向注册机构503a发出警报。附加地或替代地,第一节点可以将警报事务传输到区块链网络106,以将其记录在区块链150中,从而向注册机构503a发出警报。例如,注册机构503a可以被配置为基于注册机构503a的公钥PKM(例如,H160(PKM)),来监视区块链150以寻找应支付到地址的事务输出。在其他实施例中,第一节点可以将警报事务转发到第二节点(应当注意的是,在图9a至图9c以及图10至图12所示的特定示例中,这实际上是必要的,因为输入值小于输出值,因此区块链网络106将拒绝该事务)。例如,注册机构503a可以运行要求多个节点对警报事务进行签名的协议。从这个意义上来说,警报事务可以称为“部分警报事务”。在一些示例中,部分事务是要求其至少一个附加输入被区块链网络106接受为有效事务的事务。
在从第一节点接收到警报事务之后(或者在以其他方式获取警报事务之后),第二节点可以尝试与故障节点801(即,被警报事务标识为故障的节点)建立连接。如果第二节点无法连接到故障节点801,则第二节点将另一输入添加到警报事务中。与第一节点添加的输入一样,第二节点添加的输入包括第二节点的签名SigPK2。第二节点的签名SigPK2可以对整个事务(即,所有输入和输出)或事务的一部分(例如,仅第二节点添加的输入或第二节点添加的输入和一个或更多个输出)进行签名。第二节点可以将警报事务传输到注册机构503a、区块链网络106和/或第三节点中的一个、一些或全部。例如,如果在警报事务中只需要两个签名以便注册机构503a对警报消息执行动作,则第二节点可以将警报事务传输到注册机构503a和/或区块链网络106。如果需要第三签名,则第二节点可以将警报事务发送到第三节点。第二节点可以在输入中包括标志,使得其他输入能够添加到警报事务中。
与第二节点一样,第三节点可以响应于从第二节点接收到警报事务而尝试与故障节点801建立连接。如果第三节点无法与故障节点801建立连接,例如故障节点801不响应来自第三节点的命令或请求,则第三节点可以将输入添加到警报事务中。也就是说,第三节点添加包括第三节点的签名SigPK3的输入。如果警报事务中已包括足够多的签名,则第三节点可以包括对整个事务进行签名的标志,例如“SIGHASH_ALL”标志。然后,第三节点可以将(已完成)警报事务传输到注册机构503a和/或区块链网络106。
第二节点和/或第三节点可以各自在警报事务中添加表示第二节点或第三节点与故障节点801之间失败连接(或尝试连接)次数的数据。该数据可以添加到警报事务的相应输入中,或者添加到警报事务的(可花费或不可花费)输出中。
在图9a至图12的示例中,注册机构503a是网络的主节点,用于获取警报事务。注册机构503a可以直接从第一节点、第二节点或第三节点获取警报事务,具体取决于哪个节点负责将警报事务传输到注册机构503a。如果警报事务已经传输到区块链网络106,则注册机构503a可以从区块链150获取警报事务。应当注意的是,从区块链150获取还包括从区块链网络106的节点104M的事务内存池获取事务。优选地,警报事务包括基于注册机构的公钥PKM锁定的输出,例如,基于注册机构的公钥PKM锁定到地址的P2PKH输出。
一旦注册机构503a获取警报事务,则可以撤销警报事务的警报消息中标识的故障节点801的证书。可以自动发起故障节点证书的撤销,以响应于获取警报事务。也就是说,注册机构503a撤销故障节点的证书不需要满足其他条件。或者,注册机构503a可以确定是否满足一个或更多个条件;如果满足,则可以撤销故障节点的证书。
在一些实施例中,在撤销故障节点的证书之前,注册机构503a可以自行尝试与故障节点801建立连接。如果无法建立连接,则注册机构503a可以撤销证书。换言之,撤销证书的条件可以是注册机构503a无法连接到故障节点801。通过这种方式,警报事务作为注册机构503a的提示,以调查故障节点801是否确实存在问题。
附加地或替代地,撤销故障节点801的证书的条件是警报事务包括来自网络501的节点的预定数目的签名。也就是说,警报事务中的签名数目必须满足阈值,以便注册机构503a撤销证书。在图9a至图9c的示例中,阈值为三个签名。通过这种方式,注册机构503a可以确信,不仅是孤立的节点与故障节点801存在问题,而是多个节点各自都与故障节点801存在问题。
附加地或替代地,撤销故障节点801的证书的条件是警报事务包括指示第一节点、第二节点和第三节点中的一个或更多个节点与故障节点801之间发生失败连接的阈值次数的数据。在多个节点报告与故障节点801的相应失败连接次数的示例中,当确定是否达到阈值时,注册机构503a可以仅考虑单个节点的失败连接。也就是说,如果阈值为10次失败连接,且每个节点报告的失败连接次数小于10,则注册机构503a可以选择不撤销证书。相反,当决定是否撤销证书时,注册机构503a可以考虑所有节点的累积失败连接次数。也就是说,如果阈值为10次失败连接,且每个节点报告的失败连接次数为5,则注册机构503a可以选择撤销证书。
图11a示出了第一节点生成的警报事务的另一示例。在该示例中,响应于与故障节点801存在连接问题,第一节点生成警报事务,该警报事务包括:第一输出,包括警报消息(如上所述);以及第二输出,采用多重签名输出的形式。图11a所示的多重签名(“multi-sig”)输出是提供n个公钥的输出(例如,输出脚本),并且被配置为出于解锁目的需要后续事务的输入(例如,输入脚本),以提供与所提供的公钥对应的最少m个签名。n个公钥中的一个或更多个公钥可以对应于网络501的节点的公钥,例如第二节点的公钥PK2和第三节点的公钥PK3。第一节点的公钥PK1也可以包含在multi-sig输出中。在一些示例中,注册机构503a的公钥PKM可以包含在multi-sig输出中。
警报事务包括输入,该输入包括第一节点的签名SigPK1。第一节点的签名SigPK1可以对整个警报事务进行签名。在这些示例中,第一节点可以将警报事务传输到区块链网络106,以使警报事务包含在网络中。附加地或替代地,第一节点可以将警报事务传输到注册机构503a。
如上所述,multi-sig输出要求在引用multi-sig输出的后续事务的输入中包括m个签名,以便解锁该输出。图11b示出了可由一个或更多个节点生成的第二警报事务(或者更确切地说是确认事务),其中,一个或更多个节点的公钥包含在multi-sig输出中。确认事务可以包括与警报事务相同的警报消息。确认事务包括输入(该输入包括至少m个签名),然后被传输到区块链网络以使确认事务包含在区块链150中。例如,包括包含第二签名SigPK2和第三签名SigPK3的输入的确认事务(如图11b所示)将解锁图11a所示的multi-sig输出。确认事务充当其签名包含在其输入中的节点的确认,即它们确认也与故障节点801存在连接问题。确认事务可以包括锁定到注册机构503a的地址的输出,例如,应支付到注册机构503a的公钥PKM的散列值的P2PKH输出。这将向注册机构503a发出警报,提醒其注意警报事务中包含的警报消息,从而允许注册机构503a随后撤销故障节点801的证书(例如,如果满足上述一个或更多个条件)。
图12a示出了第一节点生成的警报事务的另一示例。在该示例中,响应于与故障节点801存在连接问题,第一节点生成警报事务,该警报事务包括:第一输出,包括警报消息(如上所述);以及第二输出,采用不同类型的多重签名输出的形式。图12a所示的多重签名输出是提供n个公钥散列值(即,公钥的散列值)的输出(例如,输出脚本),并且被配置为出于解锁目的需要后续事务的输入(例如,输入脚本),以提供与所提供的公钥对应的最少m个签名。图12a所示的multi-sig输出也称为“multi-sig累加器”,如GB1913385.9中所述。multi-sig累加器被配置为每当提供与multi-sig累加器中包含的公钥散列值对应的签名时(即,与multi-sig累加器一起执行后续事务的输入时)使计数器读数增加。如果已经提供阈值数目的签名(由multi-sig累加器设置),则multi-sig累加器输出被解锁。n个公钥散列值中的一个或更多个可以是与网络501的节点的公钥对应的公钥的散列值,例如,第一节点的公钥PK1、第二节点的公钥PK2、第三节点的公钥PK3和/或注册机构503a的公钥PKM中的一个、一些或全部。
警报事务包括输入,该输入包括第一节点的签名SigPK1。第一节点的签名SigPK1可以对整个警报事务进行签名。在这些示例中,第一节点可以将警报事务传输到区块链网络106,以使警报事务包含在网络中。
如上所述,multi-sig累加器输出要求在引用multi-sig输出的后续事务的输入中包括m个签名,以便解锁该输出。图12b示出了可由一个或更多个节点生成的第二警报事务(或者更确切地说是确认事务),其中,一个或更多个节点的公钥散列值包含在multi-sig累加器输出中。确认事务可以包括与警报事务相同的警报消息。确认事务包括输入(该输入包括至少m个签名),然后被传输到区块链网络106以使确认事务包含在区块链150中。例如,包括包含第二公钥PK2和对应的第二签名SigPK2以及第三公钥PK3和对应的第三签名SigPK3的输入的确认事务(如图12所示)将解锁图12a所示的multi-sig累加器输出。确认事务可以包括锁定到注册机构503a的地址的输出,例如,应支付到注册机构503a的公钥PKM的散列值的P2PKH输出。这将向注册机构503a发出警报,提醒其注意警报事务中包含的警报消息,从而允许注册机构503a随后撤销故障节点801的证书(例如,如果满足上述一个或更多个条件)。
在一些示例中,故障节点801的证书包含在区块链150上记录的证书事务的输出中。为了撤销证书,注册机构503a会生成区块链事务(“撤销事务”)。撤销事务具有引用证书事务的可花费输出(例如,如图7a所示,锁定到注册机构503a的公钥PKM的输出)的输入。该输入包括链接到该公钥的签名。如果证书事务的可花费输出是P2PKH输出,则撤销事务的输入必须包括公钥,使得公钥的散列值(例如,OP_HASH160)与P2PKH输出中的公钥散列值匹配。P2PKH输出要求花费者提供两个项目:公钥,使得公钥的散列值与P2PKH输出中的地址匹配;签名,对公钥和事务消息有效,但不一定按照该顺序。
撤销事务可以包括一个或更多个输出,例如,锁定到注册机构503a的相同或不同公钥的输出。然后,注册机构503a将撤销事务传输到区块链网络106,以将其记录在区块链150中。将撤销事务记录在区块链150中后,从未花费事务输出(UTXO)集中删除证书事务。UTXO是区块链事务中未被另一个区块链事务花费的输出。当网络501中的不同节点试图标识颁发给故障节点801的证书时,该节点就会发现包括该证书的证书事务已被花费,并将此解释为证书被撤销。网络501中的各节点能够通过观察从发证地址(即,注册机构503a的公钥PKM)生成的事务以及传输到发证地址的事务,动态更新其对等节点列表(即,授权节点/认证节点列表)。网络501中的各节点被配置为不与对等节点列表中不包含的其他节点进行通信。
节点/设备证书的有效性可能取决于三个标准:颁发证书的公钥PKM是公认的发行密钥;证书根据预定协议正确格式化;证书事务中的可花费输出未花费。证书撤销后便可根据需要进行更新。为此,注册机构503a花费旧证书中的UTXO,然后使用更新后的信息创建新的证书事务。然后,注册机构503a可以将新的证书输出点位置索引广播到网络501中的设备。这也适用于所述注册机构自己的(自签名)证书。
已经结合单个故障节点801和/或单个故障设备对实施例进行了描述。然而,应当理解的是,上述实施例可以推广应用于一个或更多个故障节点和/或一个或更多个故障设备。例如,警报消息可以包括分别标识一个或更多个故障节点和/或设备中的每一个的数据。类似地,注册机构503a可以撤销一个或更多个故障节点和/或设备的相应证书。
综上所述,本发明提供了一种方案,(例如)通过报告与终端设备和/或对等节点的失败连接次数,使得(IoT)网络中的对等节点能够安全地向注册机构503a发出警报,提醒其注意疑似故障或恶意节点。多方计算可用于创建共享消息,这表明将会有多个独立节点发出警报。通过使用区块链事务对消息进行编码,可以继承区块链系统的几个有益特征。第一,通过公钥加密来保证警报消息的真实性。第二,通过为要对其执行动作的警报事务消息设定可调整的最低支付要求,减少向网络发送虚假警报的动机。第三,可以设置签名(类似于请愿书)的阈值数目,在超过该阈值数目的情况下,系统将向注册机构503a发出警报,提醒其注意连接问题。
专用事务(警报事务)充当发送到注册机构503a(例如,主节点)的警报消息。在第一组实施例中,该方案利用签名散列类型,该签名散列类型允许多方同意并对单个事务进行签名。在第二组实施例中,该方案利用提供与第一组实施例相同功能的多重签名输出。通常,注册机构503a可以选择响应警报事务(例如,撤销证书)所需的最小数目的独立签名。在以下示例中,所需签名的最小数目设置为3。
具体示例:
物联网包括主节点、四个从对等节点和若干终端设备。其中一个节点(如图8中的条纹部分所示)无法与一个或更多个其他节点和终端设备连接。为了发起警报过程,对等节点将创建警报事务(图9a)。该事务包含对警报消息(参见图10)进行编码的OP_RETURN有效载荷,该警报消息指定故障设备的设备ID、公钥和证书位置。该事务还包含支付到3x的主节点,即主节点展开调查所需的最低支付。该事务由控制PK1的节点使用SIGHASH_ANYONECANPAY sighash类型进行签名的x+δ提供资金。应当注意的是,此时该事务并非有效事务。将部分完成事务(点对点)发送到控制PK2的节点。如果该节点也与故障节点801存在失败连接/意外问题,则该节点也会将签名添加到由控制PK2的节点使用SIGHASH_ANYONECANPAY sighash类型进行签名的x的第二输入中(参见图9b)。此时,该事务仍然不是有效事务。将部分完成事务(点对点)发送到控制PK3的节点。如果该节点也与故障节点801存在失败连接/意外问题,则该节点也会将签名添加到由控制PK3的节点SIGHASH_ALLsighash类型进行签名的x的第三输入中(参见图9c)。事务现已完成,可以发送到主节点和区块链网络106以供确认。在事务被确认并且主节点接收到确认信号之后,主节点可以通过尝试与故障节点801通信来调查故障。
应当注意的是,第二节点和第三节点无法改变第一节点指定的警报消息。如果第二节点和第三节点因此希望报告它们与潜在故障/恶意节点存在的确切失败连接次数,它们可以通过在相应输出中推入op_code来实现这一点(图9b和图9c),即在存在2次失败连接的情况下,推入OP_2OP_DROP。
为了让主节点考虑响应警报,包含该消息的事务必须具有三个签名,以表明存在阈值数目的对等节点支持该警报消息。然后,主节点可以就该问题展开调查并考虑证书撤销。警报消息的有效载荷数据中包含物联网协议标识符以及目标设备ID和证书信息。失败计数信息包含在事务的OP_RETURN有效载荷内的警报消息字段中。
一种备选方案是使用支付到多重签名(multi-sig)累加器。图11a示出了支付到多重签名事务输出,其中需要n个公钥(节点)中的2个公钥(节点)来花费事务(从而向主节点发出警报)。图11b示出了初始警报事务的解锁(即,已满足至少2个节点同意警报消息的条件),并且向在图11a中验证事务链和初始警报消息的主节点发送支付物,以发起证书撤销。图12a示出了multi-sig累加器事务的示例。在这里,第一节点已创建事务和警报消息。第二输出规定,必须至少收集两个附加签名才能花费事务(从而向主节点发出警报)。如前所述,第二事务(图12b)花费来自第一警报事务的输出点,该输出点指示对图12a中定义的消息存在共识,并向主节点发送支付物以发起证书撤销过程。应当注意的是,在这两个示例中,可以将资金保存到仅在创建警报消息时使用的警报地址。
结论
应当理解,上述实施例仅通过示例的方式进行描述。更通俗地说,可根据下述任何一个或更多个语句提供一种方法、装置或程序。
语句1、一种用于撤销对第一网络的访问权限的计算机实现的方法,其中所述第一网络包括一组桥接节点和一组设备,所述一组设备可由所述一组桥接节点中的一个或更多个桥接节点控制,其中每个桥接节点也是区块链网络的相应节点,其中每个桥接节点和设备与授予对所述第一网络的访问权限的相应证书相关联,并且其中对于每个桥接节点和每个设备,区块链包括相应证书事务,所述相应证书事务包括所述桥接节点或设备的所述相应证书;所述方法由注册机构执行并且包括:获取警报事务,所述警报事务是区块链事务并且包括第一输出,所述第一输出包括警报消息,所述警报消息标识一个或更多个桥接节点和/或一个或更多个设备;以及,通过撤销所述标识的一个或更多个桥接节点和/或一个或更多个设备的所述相应证书来撤销所述标识的一个或更多个桥接节点和/或一个或更多个设备对所述第一网络的访问权限,其中撤销所述相应证书包括花费所述相应证书事务的输出。
也就是说,对所述第一网络的所述访问权限的所述撤销至少基于所述警报事务的所述获取。
语句2、根据语句1所述的方法,其中每个桥接节点的所述相应证书包括与所述桥接节点相关联的相应公钥。
语句3、根据语句1至2中任一项所述的方法,其中所述警报事务的所述获取包括从所述区块链获取所述警报事务。
换言之,从所述区块链事务中获取所述警报事务。
语句4、根据语句1至3中任一项所述的方法,其中所述警报事务的所述获取包括从所述桥接节点中的一个桥接节点获取所述警报事务。
换言之,点对点发送所述警报事务。
语句5、根据语句1至4中任一项所述的方法,包括:响应于获取所述警报事务,尝试与所述标识的一个或更多个节点和/或一个或更多个设备建立相应连接;所述撤销包括撤销所述标识的一个或更多个桥接节点和/或一个或更多个设备对所述第一网络的访问权限,其中无法为所述标识的一个或更多个桥接节点和/或一个或更多个设备建立所述相应连接。
也就是说,所述警报事务发起调查(例如,由主节点展开),以确定是否应撤销证书。
语句6、根据语句1至5中任一项所述的方法,其中对于所述标识的一个或更多个桥接节点和/或一个或更多个设备中的每一个,所述警报消息包括一个或更多个桥接节点与所述标识的桥接节点或设备之间连接尝试失败的相应次数;并且,所述撤销包括撤销所述标识的一个或更多个桥接节点和/或一个或更多个设备对所述第一网络的访问权限,其中所述一个或更多个桥接节点和/或一个或更多个设备的连接尝试失败的所述相应次数大于或等于连接尝试失败的预定阈值次数。
语句7、根据语句1至6中任一项所述的方法,其中所述警报事务包括所述一个或更多个桥接节点的相应数字签名。
语句8、根据语句7所述的方法,其中所述警报事务包括一个或更多个输入,每个输入包括所述一个或更多个桥接节点中的一个桥接节点的所述相应数字签名。
语句9、根据语句7所述的方法,其中所述警报事务包括一个或更多个输入,并且其中至少一个输入包括所述一个或更多个桥接节点中的多个桥接节点的所述相应数字签名。
语句10、根据语句7至9中任一项所述的方法,其中撤销以所述警报事务为条件,其包括:所述一个或更多个桥接节点的相应数字签名数目大于或等于预定数字签名阈值数目。
语句11、根据前述任一项语句所述的方法,其中对于每个标识的桥接节点,所述警报消息包括以下各项中的一项或更多项:所述标识的桥接节点的相应标识符;所述标识的桥接节点的相应公钥;所述标识的桥接节点的所述相应证书的相应位置。
语句12、根据前述任一项语句所述的方法,其中对于每个标识的设备,所述警报消息包括以下各项中的一项或更多项:所述标识的设备的相应标识符;所述标识的设备的所述相应证书的相应位置。
语句13、根据前述任一项语句所述的方法,其中所述第一网络包括:主层,包括主节点;一个或更多个中间层,每个中间层包括相应的多个桥接节点;以及,设备层,包括所述一个或更多个设备;其中所述注册机构包括所述主节点。
语句14、一种用于向负责撤销对第一网络的访问权限的注册机构报告失败连接的计算机实现的方法,其中所述第一网络包括一组桥接节点和一组设备,所述一组设备可由所述一组桥接节点中的一个或更多个桥接节点控制,每个桥接节点也是区块链网络的相应节点,每个桥接节点和设备与授予对所述第一网络的访问权限的相应证书相关联,并且对于每个桥接节点和每个设备,区块链包括相应证书事务,所述相应证书事务包括所述桥接节点或设备的所述相应证书;所述方法由所述桥接节点中的第一桥接节点执行并且包括:响应于与一个或更多个桥接节点和/或一个或更多个终端设备建立相应连接的预定次数的失败尝试,将所述第一桥接节点的数字签名添加到第一警报事务的输入中,所述第一警报事务是区块链事务并且包括第一输出,所述第一输出包括警报消息,所述警报消息标识所述一个或更多个桥接节点和/或所述一个或更多个设备;以及,将所述第一警报事务传输到以下的一个、一些或全部:所述桥接节点中的一个其他桥接节点、注册机构、所述区块链网络的一个或更多个节点,以使所述第一警报事务包含在所述区块链中。
语句15、根据语句14所述的方法,包括:响应于与所述一个或更多个桥接节点和/或所述一个或更多个终端设备建立所述相应连接的预定次数的失败尝试,生成所述第一报警事务,其中所述第一警报事务的所述生成包括将所述第一桥接节点的所述数字签名添加到所述警报事务中。
语句16、根据语句14所述的方法,包括:从所述桥接节点中的第二桥接节点和/或所述区块链获取所述第一警报事务。
语句17、根据语句16所述的方法,其中所述获取的第一警报事务包括所述桥接节点中的所述第二桥接节点的相应数字签名。
语句18、根据语句17所述的方法,其中所述获取的第一警报事务包括所述桥接节点中的一个或更多个其他节点的相应数字签名。
语句19、根据语句14至18中任一项所述的方法,其中所述注册机构与公钥相关联,所述第一警报事务包括基于所述注册机构的所述公钥应支付到地址的输出。
语句20、根据语句14至19中任一项所述的方法,其中所述第一警报事务包括多重签名输出,所述多重签名输出包括多个相应公钥,每个公钥与所述桥接节点中的相应一个桥接节点相关联;所述多重签名输出被配置为:在与花费事务的输入一起执行时,在所述输入包括与所述多个相应公钥对应的预定数目的相应签名的条件下进行解锁。
语句21、根据语句14至19中任一项所述的方法,其中所述第一警报事务包括多重签名输出,所述多重签名输出包括多个相应地址,每个地址与所述桥接节点中的相应一个桥接节点相关联;所述多重签名输出被配置为:在与花费事务的输入一起执行时,在所述输入包括与所述多个相应地址对应的预定数目的相应签名的条件下进行解锁。
语句22、根据语句14至19中任一项所述的方法,其中所述区块链包括第二警报事务,所述第二警报事务包括多重签名输出,所述多重签名输出包括多个相应公钥,每个公钥与所述桥接节点中的相应一个桥接节点相关联;所述多重签名输出被配置为:在与花费事务的输入一起执行时,在所述输入包括与所述多个相应公钥对应的预定数目的相应签名的条件下进行解锁;所述第一警报事务的所述输入花费所述第二警报事务的所述多重签名输出。
语句23、根据语句14至19中任一项所述的方法,其中所述区块链包括第二警报事务,所述第二警报事务包括多重签名输出,所述多重签名输出包括多个相应地址,每个地址与所述桥接节点中的相应一个桥接节点相关联;所述多重签名输出被配置为:在与花费事务的输入一起执行时,在所述输入包括与所述多个相应地址对应的预定数目的相应签名的条件下进行解锁;所述第一警报事务的所述输入花费所述第二警报事务的所述多重签名输出。
语句24、根据语句14至23中任一项所述的方法,其中对于所述标识的一个或更多个桥接节点和/或一个或更多个设备中的每一个,所述警报消息包括所述第一桥接节点与所述标识的桥接节点或设备之间连接尝试失败的相应次数。
语句25、根据语句14至24中任一项所述的方法,其中对于每个标识的桥接节点,所述警报消息包括以下各项中的一项或更多项:所述标识的桥接节点的相应标识符;所述标识的桥接节点的相应公钥;所述标识的桥接节点的所述相应证书的相应位置。
语句26、根据语句14至25中任一项所述的方法,其中对于每个标识的设备,所述警报消息包括以下各项中的一项或更多项:所述标识的设备的相应标识符;所述标识的设备的所述相应证书的相应位置。
语句27、根据语句14至26中任一项所述的方法,其中所述第一网络包括:主层,包括主节点;一个或更多个中间层,每个中间层包括相应的多个桥接节点;以及,设备层,包括所述一个或更多个设备;其中所述第一桥接节点是所述一个或更多个中间层中的一个中间层的桥接节点。
语句28、根据语句27所述的方法,其中所述注册机构包括所述主节点。
语句29、一种计算机设备,所述计算机设备包括:存储器,所述存储器包括一个或更多个存储器单元;以及,处理装置,所述处理装置包括一个或更多个处理单元,其中所述存储器存储被设置在所述处理装置上运行的代码,所述代码被配置为当在所述处理装置上运行时,执行根据语句1至28中任一项所述的方法。
语句30、一种计算机程序,所述计算机程序包含在计算机可读存储器上并且被配置为当在计算机设备上运行时,执行根据语句1至28中任一项所述的方法。
一旦给出本文的公开内容,所公开技术的其他变体或用例对于本领域技术人员可能变得显而易见。本公开的范围不受所描述的实施例限制,而仅受随附语句限制。

Claims (30)

1.一种用于撤销对第一网络的访问权限的计算机实现的方法,其中所述第一网络包括一组桥接节点和一组设备,所述一组设备可由所述一组桥接节点中的一个或更多个桥接节点控制,其中每个桥接节点也是区块链网络的相应节点,其中每个桥接节点和设备与授予对所述第一网络的访问权限的相应证书相关联,并且其中对于每个桥接节点和每个设备,区块链包括相应证书事务,所述相应证书事务包括所述桥接节点或设备的所述相应证书;所述方法由注册机构执行并且包括:
获取警报事务,所述警报事务是区块链事务并且包括第一输出,所述第一输出包括警报消息,所述警报消息标识一个或更多个桥接节点和/或一个或更多个设备;以及
通过撤销所述标识的一个或更多个桥接节点和/或一个或更多个设备的所述相应证书来撤销所述标识的一个或更多个桥接节点和/或一个或更多个设备对所述第一网络的访问权限,其中撤销所述相应证书包括花费所述相应证书事务的输出。
2.根据权利要求1所述的方法,其中每个桥接节点的所述相应证书包括与所述桥接节点相关联的相应公钥。
3.根据权利要求1至2中任一项所述的方法,其中所述警报事务的所述获取包括从所述区块链获取所述警报事务。
4.根据权利要求1至3中任一项所述的方法,其中所述警报事务的所述获取包括从所述桥接节点中的一个桥接节点获取所述警报事务。
5.根据权利要求1至4中任一项所述的方法,包括:
响应于获取所述警报事务,尝试与所述标识的一个或更多个节点和/或一个或更多个设备建立相应连接;
所述撤销包括撤销所述标识的一个或更多个桥接节点和/或一个或更多个设备对所述第一网络的访问权限,其中无法为所述标识的一个或更多个桥接节点和/或一个或更多个设备建立所述相应连接。
6.根据权利要求1至5中任一项所述的方法,其中对于所述标识的一个或更多个桥接节点和/或一个或更多个设备中的每一个,所述警报消息包括一个或更多个桥接节点与所述标识的桥接节点或设备之间连接尝试失败的相应次数;并且
所述撤销包括撤销所述标识的一个或更多个桥接节点和/或一个或更多个设备对所述第一网络的访问权限,其中所述一个或更多个桥接节点和/或一个或更多个设备的连接尝试失败的所述相应次数大于或等于连接尝试失败的预定阈值次数。
7.根据权利要求1至6中任一项所述的方法,其中所述警报事务包括所述一个或更多个桥接节点的相应数字签名。
8.根据权利要求7所述的方法,其中所述警报事务包括一个或更多个输入,每个输入包括所述一个或更多个桥接节点中的一个桥接节点的所述相应数字签名。
9.根据权利要求7所述的方法,其中所述警报事务包括一个或更多个输入,并且其中至少一个输入包括所述一个或更多个桥接节点中的多个桥接节点的所述相应数字签名。
10.根据权利要求7至9中任一项所述的方法,其中撤销以所述警报事务为条件,其包括:所述一个或更多个桥接节点的相应数字签名数目大于或等于预定数字签名阈值数目。
11.根据前述任一项权利要求所述的方法,其中对于每个标识的桥接节点,所述警报消息包括以下各项中的一项或更多项:
所述标识的桥接节点的相应标识符;
所述标识的桥接节点的相应公钥;
所述标识的桥接节点的所述相应证书的相应位置。
12.根据前述任一项权利要求所述的方法,其中对于每个标识的设备,所述警报消息包括以下各项中的一项或更多项:
所述标识的设备的相应标识符;
所述标识的设备的所述相应证书的相应位置。
13.根据前述任一项权利要求所述的方法,其中所述第一网络包括:主层,包括主节点;一个或更多个中间层,每个中间层包括相应的多个桥接节点;以及,设备层,包括所述一个或更多个设备;其中所述注册机构包括所述主节点。
14.一种用于向负责撤销对第一网络的访问权限的注册机构报告失败连接的计算机实现的方法,其中所述第一网络包括一组桥接节点和一组设备,所述一组设备可由所述一组桥接节点中的一个或更多个桥接节点控制,每个桥接节点也是区块链网络的相应节点,每个桥接节点和设备与授予对所述第一网络的访问权限的相应证书相关联,并且对于每个桥接节点和每个设备,区块链包括相应证书事务,所述相应证书事务包括所述桥接节点或设备的所述相应证书;所述方法由所述桥接节点中的第一桥接节点执行并且包括:
响应于与一个或更多个桥接节点和/或一个或更多个终端设备建立相应连接的预定次数的失败尝试,将所述第一桥接节点的数字签名添加到第一警报事务的输入中,所述第一警报事务是区块链事务并且包括第一输出,所述第一输出包括警报消息,所述警报消息标识所述一个或更多个桥接节点和/或所述一个或更多个设备;以及
将所述第一警报事务传输到以下的一个、一些或全部:所述桥接节点中的一个其他桥接节点、注册机构、所述区块链网络的一个或更多个节点,以使所述第一警报事务包含在所述区块链中。
15.根据权利要求14所述的方法,包括:响应于与所述一个或更多个桥接节点和/或所述一个或更多个终端设备建立所述相应连接的预定次数的失败尝试,生成所述第一报警事务,其中所述第一警报事务的所述生成包括将所述第一桥接节点的所述数字签名添加到所述警报事务中。
16.根据权利要求14所述的方法,包括:从所述桥接节点中的第二桥接节点和/或所述区块链获取所述第一警报事务。
17.根据权利要求16所述的方法,其中所述获取的第一警报事务包括所述桥接节点中的所述第二桥接节点的相应数字签名。
18.根据权利要求17所述的方法,其中所述获取的第一警报事务包括所述桥接节点中的一个或更多个其他节点的相应数字签名。
19.根据权利要求14至18中任一项所述的方法,其中所述注册机构与公钥相关联,所述第一警报事务包括基于所述注册机构的所述公钥应支付到地址的输出。
20.根据权利要求14至19中任一项所述的方法,其中所述第一警报事务包括多重签名输出,所述多重签名输出包括多个相应公钥,每个公钥与所述桥接节点中的相应一个桥接节点相关联;所述多重签名输出被配置为:在与花费事务的输入一起执行时,在所述输入包括与所述多个相应公钥对应的预定数目的相应签名的条件下进行解锁。
21.根据权利要求14至19中任一项所述的方法,其中所述第一警报事务包括多重签名输出,所述多重签名输出包括多个相应地址,每个地址与所述桥接节点中的相应一个桥接节点相关联;所述多重签名输出被配置为:在与花费事务的输入一起执行时,在所述输入包括与所述多个相应地址对应的预定数目的相应签名的条件下进行解锁。
22.根据权利要求14至19中任一项所述的方法,其中所述区块链包括第二警报事务,所述第二警报事务包括多重签名输出,所述多重签名输出包括多个相应公钥,每个公钥与所述桥接节点中的相应一个桥接节点相关联;所述多重签名输出被配置为:在与花费事务的输入一起执行时,在所述输入包括与所述多个相应公钥对应的预定数目的相应签名的条件下进行解锁;所述第一警报事务的所述输入花费所述第二警报事务的所述多重签名输出。
23.根据权利要求14至19中任一项所述的方法,其中所述区块链包括第二警报事务,所述第二警报事务包括多重签名输出,所述多重签名输出包括多个相应地址,每个地址与所述桥接节点中的相应一个桥接节点相关联;所述多重签名输出被配置为:在与花费事务的输入一起执行时,在所述输入包括与所述多个相应地址对应的预定数目的相应签名的条件下进行解锁;所述第一警报事务的所述输入花费所述第二警报事务的所述多重签名输出。
24.根据权利要求14至23中任一项所述的方法,其中对于所述标识的一个或更多个桥接节点和/或一个或更多个设备中的每一个,所述警报消息包括所述第一桥接节点与所述标识的桥接节点或设备之间连接尝试失败的相应次数。
25.根据权利要求14至24中任一项所述的方法,其中对于每个标识的桥接节点,所述警报消息包括以下各项中的一项或更多项:
所述标识的桥接节点的相应标识符;
所述标识的桥接节点的相应公钥;
所述标识的桥接节点的所述相应证书的相应位置。
26.根据权利要求14至25中任一项所述的方法,其中对于每个标识的设备,所述警报消息包括以下各项中的一项或更多项:
所述标识的设备的相应标识符;
所述标识的设备的所述相应证书的相应位置。
27.根据权利要求14至26中任一项所述的方法,其中所述第一网络包括:主层,包括主节点;一个或更多个中间层,每个中间层包括相应的多个桥接节点;以及,设备层,包括所述一个或更多个设备;其中所述第一桥接节点是所述一个或更多个中间层中的一个中间层的桥接节点。
28.根据权利要求27所述的方法,其中所述注册机构包括所述主节点。
29.一种计算机设备,所述计算机设备包括:
存储器,所述存储器包括一个或更多个存储器单元;以及
处理装置,所述处理装置包括一个或更多个处理单元,其中所述存储器存储被设置在所述处理装置上运行的代码,所述代码被配置为当在所述处理装置上运行时,执行根据权利要求1至28中任一项所述的方法。
30.一种计算机程序,所述计算机程序包含在计算机可读存储器上并且被配置为当在计算机设备上运行时,执行根据权利要求1至28中任一项所述的方法。
CN202180020618.2A 2020-03-13 2021-02-12 撤销对网络的访问权限 Pending CN115428400A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB2003641.4A GB2592979A (en) 2020-03-13 2020-03-13 Revoking access to a network
GB2003641.4 2020-03-13
PCT/IB2021/051160 WO2021181178A1 (en) 2020-03-13 2021-02-12 Revoking access to a network

Publications (1)

Publication Number Publication Date
CN115428400A true CN115428400A (zh) 2022-12-02

Family

ID=70453654

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180020618.2A Pending CN115428400A (zh) 2020-03-13 2021-02-12 撤销对网络的访问权限

Country Status (6)

Country Link
US (1) US20230127516A1 (zh)
EP (1) EP4088442A1 (zh)
JP (1) JP2023518004A (zh)
CN (1) CN115428400A (zh)
GB (1) GB2592979A (zh)
WO (1) WO2021181178A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230214792A1 (en) * 2020-06-10 2023-07-06 Elas Holdings PTY LTD Computer implemented systems and methods

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101661933B1 (ko) * 2015-12-16 2016-10-05 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 인증시스템 및 이를 이용한 인증방법
US10333705B2 (en) * 2016-04-30 2019-06-25 Civic Technologies, Inc. Methods and apparatus for providing attestation of information using a centralized or distributed ledger
CN107508680B (zh) * 2017-07-26 2021-02-05 创新先进技术有限公司 数字证书管理方法、装置及电子设备

Also Published As

Publication number Publication date
JP2023518004A (ja) 2023-04-27
US20230127516A1 (en) 2023-04-27
WO2021181178A1 (en) 2021-09-16
GB202003641D0 (en) 2020-04-29
EP4088442A1 (en) 2022-11-16
GB2592979A (en) 2021-09-15

Similar Documents

Publication Publication Date Title
US20220393891A1 (en) Communication protocol using blockchain transactions
JP6285454B2 (ja) エンティティ・ネットワーク・トランスレーション(ent)
CN115606150A (zh) 多层通信网络
KR102627868B1 (ko) 블록체인에서 생성된 데이터를 인증하는 방법 및 시스템
CN115136543A (zh) 在区块链网络中使用的认证服务
US20220376897A1 (en) Request and response protocol using blockchain transactions
CN115136566A (zh) 分布式数据库
CN117480758A (zh) 用于验证区块链上的通证的计算机实现的方法和系统
US20230125507A1 (en) Blockchain transaction double spend proof
CN115885497A (zh) 数字签名
CN115136560A (zh) 分层网络
CN115428400A (zh) 撤销对网络的访问权限
CN118216121A (zh) 用于分布式区块链功能的方法和系统
CN118176694A (zh) 用于分布式区块链功能的方法和系统
TW202308351A (zh) 電腦實施方法及系統
CN116671061A (zh) 节点版本控制
CN115699676A (zh) 自定义事务脚本
JP2023513951A (ja) 階層化ネットワークの接続の適応
CN118202622A (zh) 用于分布式区块链功能的方法和系统
TW202334847A (zh) 用於安全且有效之資料儲存之電腦實現方法及系統
CN118633258A (zh) 用于分布式区块链功能的方法和系统
CN118215919A (zh) 用于分布式区块链功能的方法和系统
CN118476186A (zh) 基于签名的原子交换
CN117693926A (zh) 区块链区块和存在证明

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