CN110311885B - 用以实施安全联机的装置及方法 - Google Patents
用以实施安全联机的装置及方法 Download PDFInfo
- Publication number
- CN110311885B CN110311885B CN201910239433.5A CN201910239433A CN110311885B CN 110311885 B CN110311885 B CN 110311885B CN 201910239433 A CN201910239433 A CN 201910239433A CN 110311885 B CN110311885 B CN 110311885B
- Authority
- CN
- China
- Prior art keywords
- block
- users
- last known
- latest
- trusted
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000004044 response Effects 0.000 claims abstract description 26
- 238000012795 verification Methods 0.000 claims description 25
- 238000013515 script Methods 0.000 claims description 23
- 238000010200 validation analysis Methods 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000001186 cumulative effect Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 238000005406 washing Methods 0.000 description 2
- 241000287828 Gallus gallus Species 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 235000013601 eggs Nutrition 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/065—Network architectures or network communication protocols for network security for supporting key management in a packet data network for group communications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1046—Joining mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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 using cryptographic hash functions
- H04L9/3239—Cryptographic 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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/308—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using the Internet of Things
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16Y—INFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
- G16Y40/00—IoT characterised by the purpose of the information processing
- G16Y40/50—Safety; Security of things, users, data or systems
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种实施安全联机的方法,应用于装置,方法包含:连接至网络;存取最后已知区块头哈希值,其中最后已知区块头哈希值对应于最后已知区块链中的最后已知区块;通过网络连接复数可信任用户;响应于成功连接至每一可信任用户,自该可信任用户中下载最新区块头;根据最后已知区块头哈希值判断该些可信任用户中的最新区块头是否引用最后已知区块;以及响应于第一数量超过阈值,验证最新区块头以形成当前版本区块链,其中第一数量为该些可信任用户中被成功连接的第一用户的数量,且第一用户对应的最新区块头引用最后已知区块。藉由本案的方法,装置经长时间的脱机后仍可根据区块链正确地实施安全联机。
Description
技术领域
本案涉及一种计算装置以及一种操作此种装置的方法。详细而言,本案提供一种计算装置,用以藉由区块链实施安全联机,以及一种方法,可操作该计算装置以实施安全联机。
背景技术
在许多实施情境中,当物联网(IoT)装置被制造出来后,其可能被储存于仓库的货架上一段时间,甚至可能长达数月或数年。当此物联网装置首次连接至物联网网络时,其将执行内建的验证程序。然而,当本领域中技术人员尝试令此装置执行公开基础密钥建设(PKI)验证时,其将面对一种“先有鸡还是先有蛋”的问题。详细而言,当此物联网装置与网络联机时,其至少需确认两件事情:(1)确切当前时间(actual current time)为何;(2)如何验证联机的安全性。然而,在没有确切当前时间的状况下,此物联网装置将无法实施公钥基础建设的凭证验证。而在没有公钥基础建设的凭证验证的状况下,此物联网装置将无法确认时间来源是否可信。
发明内容
本案的一方面提供一种实施安全联机的方法,应用于装置。该方法包含以下步骤:藉由该装置连接至网络;自该装置的内存存取最后已知区块头哈希值,其中该最后已知区块头哈希值对应于最后已知区块链中的最后已知区块;通过该网络连接复数可信任用户;响应于成功连接至该些可信任用户中的每一者,自该些可信任用户中的每一者分别下载最新区块头;根据该最后已知区块头哈希值判断该些可信任用户中的每一者对应的该最新区块头是否引用该最后已知区块;以及响应于第一数量超过阈值,验证该最新区块头以形成延伸自该最后已知区块链的当前版本区块链,其中该第一数量为该些可信任用户中被成功连接的复数第一用户的数量,且该些第一用户对应的该最新区块头引用该最后已知区块。
在一实施例中,该最后已知区块链中的每个区块对应的区块头当中储存有创造该区块的用户的网络地址,且该方法中通过该网络连接该些可信任用户更包含:根据该些可信任用户各自对应的该网络地址来连接该些可信任用户。
在另一实施例中,该方法更包含:获取对应该些可信任用户的用户群档案,其中该些可信任用户分别具有加密签名;根据该用户群档案当中的该加密签名,检查是否成功地与该些可信任用户中的每一个用户建立联机;检查自该些可信任用户中的每一者获取的该最新区块头是否相同,且该最新区块头引用该最后已知区块;以及响应于自该些可信任用户中的每一者获取的该最新区块头确实相同,验证该最新区块头以形成该当前版本区块链。
在又一实施例中,该方法更包含:获取对应该些可信任用户的用户群档案,其中该些可信任用户分别具有加密签名;根据该用户群档案当中的该加密签名,检查是否成功地与该些可信任用户中的每一个用户建立联机;响应于该第一数量低于该阈值,发现第二数量的复数可连接用户,使该第一数量以及该第二数量的总和至少超过该阈值,其中该第二数量的该些可连接用户中的每一者皆具有引用该最后已知区块的最新区块头;自该第二数量的该些可连接用户中的每一者分别下载该最新区块头;以及递进地检查介于该最新区块头以及该最后已知区块之间的复数区块,以形成该当前版本区块链。
在再一实施例中,该方法中验证该最新区块头以形成延伸自该最后已知区块链的该当前版本区块链更包含:自该些第一用户中的每一者分别下载该最新区块头;递进地检查介于该最新区块头以及该最后已知区块之间的复数区块;为该些区块中的每一者分别指派复数分数,其中该些分数中的每一分数分别对应于该些第一用户中的一者,且该些第一用户中的该者的该加密签名纪录于该区块之前的一或多个区块当中;递进地判断该些区块中的每一者被指派的该些分数的总分是否超过验证阈值;响应于该些区块中的任一者的该总分超过该验证阈值,验证该区块;以及串接已验证的该些区块,以形成延伸自该最后已知区块链的该当前版本区块链。
在一实施例中,该些分数中的每一分数为该些第一用户中的一者在该最后已知区块链中的区块创造比例,该些第一用户分别对应的该加密签名纪录于该最后已知区块链中。
在另一实施例中,该方法更包含:响应于该些区块中的任一者的该总分未超过该验证阈值,不信任该区块。
在又一实施例中,该验证阈值根据该些可信任用户的数量中的相对多数所决定。
在再一实施例中,该方法更包含:在该用户群档案中,将该些可信任用户当中无法被该装置成功连接的复数第二用户替换为该第二数量的该些可连接用户。
在一实施例中,该方法更包含:响应于该第一数量以及该第二数量的该总和未超过该阈值,判断该装置受到操纵。
在另一实施例中,该方法更包含:自该当前版本区块链的该最新区块头获取当前时间。
本案的另一方面提供一种实施安全联机的装置。该装置至少包含内存以及处理器。该内存以及该处理器相互电性耦接。该内存配置以储存复数计算机可读取脚本以及最后已知区块头哈希值,其中该最后已知区块头哈希值对应于最后已知区块链中的最后已知区块。该处理器配置以存取该些计算机可读取脚本以执行下列步骤:连接至网络;存取该最后已知区块头哈希值;通过该网络连接复数可信任用户;响应于成功连接至该些可信任用户中的每一者,自该些可信任用户中的每一者分别下载最新区块头;根据该最后已知区块头哈希值判断该些可信任用户中的每一者对应的该最新区块头是否引用该最后已知区块;以及响应于第一数量超过阈值,验证该最新区块头以形成延伸自该最后已知区块链的当前版本区块链,其中该第一数量为该些可信任用户中被成功连接的复数第一用户的数量,且该些第一用户对应的该最新区块头引用该最后已知区块。
在一实施例中,该最后已知区块链中的每个区块对应的区块头当中储存有创造该区块的用户的网络地址,且该处理器通过该网络连接该些可信任用户更包含:根据该些可信任用户各自对应的该网络地址来连接该些可信任用户。
在另一实施例中,该装置的该处理器更配置以存取该些计算机可读取脚本以执行:获取对应该些可信任用户的用户群档案,其中该些可信任用户分别具有加密签名;根据该用户群档案当中的该加密签名,检查是否成功地与该些可信任用户中的每一个用户建立联机;检查自该些可信任用户中的每一者获取的该最新区块头是否相同,且该最新区块头引用该最后已知区块;以及响应于自该些可信任用户中的每一者获取的该最新区块头确实相同,验证该最新区块头以形成该当前版本区块链。
在又一实施例中,该装置的该处理器更配置以存取该些计算机可读取脚本以执行:获取对应该些可信任用户的用户群档案,其中该些可信任用户分别具有加密签名;根据该用户群档案当中的该加密签名,检查是否成功地与该些可信任用户中的每一个用户建立联机;响应于该第一数量低于该阈值,发现第二数量的复数可连接用户,使该第一数量以及该第二数量的总和至少超过该阈值,其中该第二数量的该些可连接用户中的每一者皆具有引用该最后已知区块的最新区块头;自该第二数量的该些可连接用户中的每一者分别下载该最新区块头;以及递进地检查介于该最新区块头以及该最后已知区块之间的复数区块,以形成该当前版本区块链。
在再一实施例中,该装置的该处理器验证该最新区块头以形成延伸自该最后已知区块链的该当前版本区块链更包含:自该些第一用户中的每一者分别下载该最新区块头;递进地检查介于该最新区块头以及该最后已知区块之间的复数区块;为该些区块中的每一者分别指派复数分数,其中该些分数中的每一分数分别对应于该些第一用户中的一者,且该些第一用户中的该者的该加密签名纪录于该区块之前的一或多个区块当中;递进地判断该些区块中的每一者被指派的该些分数的总分是否超过验证阈值;响应于该些区块中的任一者的该总分超过该验证阈值,验证该区块;以及串接已验证的该些区块,以形成延伸自该最后已知区块链的该当前版本区块链。
在一实施例中,该些分数中的每一分数为该些第一用户中的一者在该最后已知区块链中的区块创造比例,该些第一用户分别对应的该加密签名纪录于该最后已知区块链中。
在另一实施例中,该装置的该处理器验证该最新区块头以形成延伸自该最后已知区块链的该当前版本区块链更包含:响应于该些区块中的任一者的该总分未超过该验证阈值,不信任该区块。
在又一实施例中,该装置的该验证阈值根据该些可信任用户的数量中的相对多数所决定。
在再一实施例中,该装置的该处理器更配置以存取该些计算机可读取脚本以执行:在一实施例中,在该用户群档案中,将该些可信任用户当中无法被该装置成功连接的复数第二用户替换为该第二数量的该些可连接用户。
在另一实施例中,该装置的该处理器更配置以存取该些计算机可读取脚本以执行:响应于该第一数量以及该第二数量的该总和未超过该阈值,判断该装置受到操纵。
在又一实施例中,该装置的该处理器更配置以存取该些计算机可读取脚本以执行:自该当前版本区块链的该最新区块头获取当前时间。
附图说明
图1为基于本案一些实施例所绘示的用以实施安全联机的装置的示意图;
图2为基于本案一些实施例所绘示的用以实施安全联机的方法的步骤图;
图3为基于本案一些实施例所绘示的区块链的部分示意图;
图4为基于本案一些实施例所绘示的区块链的部分示意图;以及
图5为基于本案一些实施例所绘示的区块链的部分示意图。
具体实施方式
请参照以下内容以及图式,以更佳地了解本案实施例当中的细节。应理解,在本案实施例以及图式中,相同或相似的对象将以同一组件符号标示。
本文的用语只为描述特定实施例,而无意为本案的限制。单数形式如“一”、“这”、“此”、“本”以及“该”,如本文所用,同样也包含复数形式。
关于本文中所使用的“第一”、“第二”、…等,并非特别指称次序或顺位的意思,亦非用以限定本案,其仅为了区别以相同技术用语描述的组件或操作。
本文的叙述中将使用“耦接”、“连接”及其衍生用语。在一些实施例中,“耦接”、“连接”可指二或多个组件直接实体接触或电性接触,或是指二或多个组件间接接触。“耦接”、“连接”亦可指二或多个组件之间可相互操作或动作。
关于本文中所使用的“包含”、“包括”、“具有”、“含有”等,均为开放性的用语,意指可包含但不限于此。
关于本文中所使用的“及/或”等用语,可包含所述事物的任一或全部组合。
关于本文中所使用的方向用语,例如:“上”、“下”、“左”、“右”、“前”或“后”等,可指涉参考附加图式当中的方向,并非用以限制本案。
关于本文中所使用的“矿工(miner)”、“用户(peer)”、“区块创造者(blockcreator)”等用语,可被理解为执行本文实施例中所述动作的同级网络参与者,或者可替换为相似意义的用语。该些用语为了更佳地解释本案当中的各种情境,并非用以限制本案。
关于本文中所使用的用词(terms),除有特别注明外,通常具有每个用词使用在此领域中、在本案内容中与特殊内容中的平常意义。某些用以描述本案的用词将于下或在此说明书的别处讨论,以提供本领域技术人员在有关本案的描述上额外的引导。
请参照图1。图1为基于本案一些实施例所绘示的装置10的示意图。在一些实施例中,该装置10可包含控制单元110、操作单元120以及通信单元130,其中该控制单元110可电性耦接于该操作单元120以及该通信单元130。在一些实施例中,该装置10为物联网(IoT)装置。
在一些实施例中,该控制单元110具有内存112以及处理器114,该两者相互耦接,使该控制单元110可作为核心组件以控管该装置10,尤可用以控管该装置10的该操作单元120。
在一些实施例中,该处理器114可包含但不限于单一处理单元(例如:CPU、GPU)或复数微处理的集成单元(例如:特殊应用集成电路)。在一些实施例中,该内存112可为瞬时或非瞬时的内部存储器,其储存有复数脚本,该些脚本界定了用以控制该操作单元运作的特定方法。该处理器114可存取该些脚本,并根据该些脚本执行该特定方法。换言之,该内存112可被理解为非瞬时计算机可读取媒体,使该控制单元110可实施对该操作单元120的控制。然而,应理解,前述实施例中的配置仅用以说明,而非用以限制本案。
在一些实施例中,该操作单元120可为电动/机械单元,用于执行预定功能/操作,使该装置10可实现其目的。例如,若该装置10为洗衣机,该操作单元120可为马达,用以驱动该洗衣机的内鼓(inner drum)。例如,若该装置10为照明装置,该操作单元120可为设置于该照明装置本体上的灯泡。然而,应理解,前述实施例中的配置仅用以说明,而非用以限制本案。
在一些实施例中,该通信单元130可为电性单元,用以发射/接收信号,使与其耦接的该控制单元110可实施与其他装置的双向信息交换。例如,在一些实施例中,该通信单元130可包含无线电信号收发器,用以发射/接收无线电信号(例如:Wi-Fi标准下的信号),该些无线电信号中可包含某些脚本的编码信息。藉由该无线电信号收发器发射/接收该无线电信号,该控制单元110可通信耦接至该装置10附近的接入点,藉此,该控制单元110可连接至网络(例如:物联网网络)。
换言之,在图1的实施例中,该控制单元110、该操作单元120以及该通信单元130可相互协作,以执行该装置10的预定功能/操作。然而,应理解,前述实施例中的配置仅用以说明,而非用以限制本案。该装置10可藉由其他的可行配置来实施。
如“先前技术”部分所述,当该装置10被制造后,该装置10可能被储存于仓库当中,处于脱机状态。在一些实施例中,当该装置10被启动时,该控制单元110可自动执行预定程序以存取该通信单元130,藉此连接至可用的网络。该控制单元110可连接至附近的接入点20。随后,藉由该接入点20,该控制单元110可尝试存取区块链以获取该确切当前时间。因为,在无法确认该确切当前时间的情况下,该控制单元110将无法实施公钥基础建设(PKI)的凭证验证。在一些实施例中,该控制单元110的该处理器114可自该内存112存取该些脚本以执行前述预定程序,藉此判断该区块链所提供的时间源是否可信。应理解,该预定程序至少可包含复数步骤,该些步骤将于下面段落中结合图式以说明。
在一些实施例中,所谓的区块链实际上由一网络中的某些分布式节点验证后的一系列区块所形成的虚拟数据链。该些区块一个接一个地相互引用(referenced),以确保该区块链的整体性。在该网络中的各个节点可作为矿工来创造该区块链中的各区块。当进行交易时,交易将被送到池(pool)中等待,直至该些交易被收集到一个新区块中并被验证。在工作证明(Proof-of-Work,PoW)架构下,各个矿工(例如:节点)可以与该网络中的其他节点竞争,以其各自所拥有的算力(computing power)执行特定哈希算法(hash algorithms),以验证池中的该些交易。以最快的速度成功验证该些交易的矿工可赢得(也可称为开采)该新区块。在一些实施例中,该矿工可利用其私钥加密签署该新区块,其可称作该矿工的签名。
在一些实施例中,相当于该网络中的一种共识,每一个区块具有一个区块头(block header),该区块头可储存有该矿工的身份(identity)、加密签名以及地址(address)。新的区块链可加入该新区块,并被广播到该网络中。该网络中的其他矿工将验证该新区块以及以往的区块是否正确。当新的区块链经该些矿工验证后,此版本的区块链即为该网络中长度最长的链(也可理解为可靠的链)。应注意的是,藉由储存于各个区块头当中的区块创造者(block creator)的地址,该网络中的其他矿工可尝试与该区块创建者建立联机。
一些相关技术指出,典型的区块链机制可能存在一些潜在问题。例如,在典型的区块链机制下,该网络中的矿工们将信任长度最长的链。因此,恶意的矿工可以伪造长度最长的链,并将其广播到网络中。在拥有足够算力的条件下,此种不应信任的链将被该网络错认为可靠的链。此种理论被称作百分之五十一攻击(51%attack)。值得庆幸的是,百分之五十一攻击需要很高的成本,使其并不容易被实现。应注意的是,在本案的一些实施例中,可利用百分之五十一攻击的概念来设定预定阈值,相关的详细配置将在下面段落中叙述。
另外,有一种相对容易实行的攻击,其称作中间人攻击(man-in-the-middleattack)。在典型的中间人攻击情境中,当该装置10被启动时,其可能连接至***纵的(或称恶意的)该接入点20。藉由该接入点20,该装置10只能访问受感染的网络,而在该网络中,该装置10只能存取一个不可信任的区块链。在前述机制下,物联网装置容易受害于伪造时间攻击(fake time-server attacks)。为了防止此种攻击,在本案的一些实施例中,该控制单元110的该处理器114可以执行前述预定程序,以检查该网络中的时间源是否可信任,且/或识别可靠的区块链以及时间戳,从而获取当前时间。
图2基于本案一些实施例所绘示的方法200的步骤图,该方法用以实施安全联机。在一些实施例中,该方法200可由如图1所示的该装置10所实施。为了方便理解,可一并参照图1以及图2。具体而言,在图1的实施例中,该控制装置110的该内存112中储存了该些脚本。该些脚本关联于图2中所示的该方法200。该控制装置110的该处理器114可以存取并执行该内存112当中的该些脚本,进而实施该方法200。该方法200可用于检查该装置10所获取的区块链是否可信。在一些实施例中,该方法200的各步骤将于下面段落中详述。
步骤S210:连接至网络并自该装置的内存中获取最后已知区块头哈希值,其中该最后已知区块头哈希值对应于最后已知区块链当中的最后已知区块。
为了更佳地理解本案,请参照图3。图3基于本案一些实施例所绘示的区块链的部分示意图。图3绘示了可靠的(authoritative)区块链300当中的一部分,该部分由复数区块301-306所组成,该些区块301-306由该网络中的一些矿工所创造。根据该些矿工在可靠的区块链当中创造的区块数,该些矿工属于“可信任的(trusted)矿工”。该区块链300中的每个区块皆具有区块头,其至少记录了区块创造者的身份、签名及/或地址。例如,若该区块301由矿工A所创造,区块头301h当中可储存该区块301的创造纪录,其可包含矿工A的身份、签名、地址及/或对应创造时间的时间戳。在一些实施例中,该身份可被加密地包含于该签名当中,或可根据该签名以回复该身份。如图3所示,当区块链300被访问时,首先可存取区块链300尾端的区块306,其中区块头306h储存有该区块306的创造纪录。应理解,区块头302h-305h也对应地储存有该区块302-305的创造纪录,于此不再重复。
在一些实施例中,当该装置10被制造时,其制造者可存取区块链300。在一些实施例中,制造者可分析区块链300以获取用户群档案,该用户群档案关于该网络中的该些矿工。在一些实施例中,制造者更将区块链300的至少区块头(例如:最尾端的区块306的区块头306h)输入特定哈希算法以产生校验和(或称区块头杂奏值)。在一些实施例中,校验和可被储存于该控制单元110的内存112中,用以进行验证。在一些实施例中,该用户群档案被可选地记录于该控制单元110的该内存112中,用以进行验证。
在一些实施例中,区块链300的该用户群档案可包含该网络中的用户群列表。该用户群列表可记录区块链300中的已知矿工的网络地址、签名及/或身分等。详细而言,在一些实施例中,如图3所示,区块301-302由矿工A所创造,区块303由矿工B所创造,区块304由矿工C所创造,区块305-306由矿工D所创造。在一些实施例中,由于制造者已存取区块链300,该制造者可将该些矿工A-D的网络地址、签名及/或身份存储于该内存112中。根据该用户群档案,该些矿工A-D为该装置10被制造时的可信任用户群。
在一些实施例中,该用户群列表可更可记录该些矿工所创造的区块在区块链300及/或其子集合当中的百分比(可由前述统计报告中获取)。在一些实施例中,假设(在该装置10被制造时)矿工A所创造的区块数在整个区块链300当中占比为30%,矿工B所创造的区块数在整个区块链300当中占比为15%,矿工C所创造的区块数在整个区块链300当中占比为13%,而矿工D所创造的区块数在区块链300当中占比为14%。整个区块链300。应注意的是,区块链300当中的其余区块(图中未示的部分)可由其他矿工(在实施例中未提及的矿工)所创造,但未绘示于图中。该些区块的创造者所对应的百分比也可以被记录在该内存112当中。
应当理解,前述实施例中的区块链300仅为示例,而非用以限制本案。在一些实施例中,区块链300可具有不同长度,且各区块创造者于区块链当中所占的区块数比例亦可不同。
承前所述,当该装置10首次启动时,该控制单元110的处理器114可藉由该通信单元130连接到任何可用的网络。此时,该控制单元110的处理器114可存取该内存112,从而获得区块链300的该用户群档案及/或该最后已知区块(例如:该装置10被制造时的最后已知区块306)的校验和。在一些实施例中,该用户群档案以及校验和可用于判断当前连接的网络是否可信。
步骤S220:通过该网络尝试连接复数可信任用户,并于成功连接至该些可信任用户中的每一者时,自该可信任用户下载最新区块头。
在一些实施例中,根据该用户群档案(尤为可信任用户群的网络地址),该处理器114可以执行快速更新程序,以确认是否可藉由该接入点20连接至足够数量的先前已知的可信任用户(或可称作“已知”矿工)。根据图3所示的区块链300,该用户群档案至少可记录已知的该些矿工A-D及其网络地址。根据各个网络地址,该处理器114可以尝试连接至该些矿工A-D。当其成功连接该些矿工A-D中的一者时,该处理器114可根据该用户群档案检查该矿工所显示的身份(例如:其公钥),判断其是否匹配于该矿工的加密签名。如果确认该矿工的身份匹配于其加密签名,该处理器114可将其找到的该矿工注记为一个可信任用户。反之,当纪录于该用户群档案中的已知矿工无法被连接(例如:已知矿工当前脱机或矿工的身份未匹配于其签名),该处理器114可忽略该些矿工。在一些实施例中,该处理器114可尝试访问先前已知的每个可信任用户,直至找到足够数量的可信任用户。
在一些实施例中,当该处理器114成功连接至该些可信任用户中的一者时,该处理器114可自此可信任用户下载最新区块头(即,此已知矿工所知的最新版本区块链)。藉此,当成功连接至复数可信任用户时,该处理器114可藉由该些可信任用户获取复数版本的最新区块链。
步骤S230:根据该最后已知区块头哈希值判断该些可信任用户中的每一者对应的该最新区块头是否引用该最后已知区块,并于预定数量的可信任用户被找到时验证该最新区块头,从而获取当前版本区块链。
在一些实施例中,针对该处理器114所获取的每个最新区块头,该处理器114可根据区块头306h当中的该校验和,以检查该最新区块头是否有引用区块306。若自某一用户取得的最新区块头并未引用区块306,该处理器114可不信任该用户,此种用户将被忽略。
在一些实施例中,当该处理器114成功连接的可信任用户的数量超过预定阈值(例如:10个)时,该处理器114可以停止连接程序并进入验证程序。在一些实施例中,位于区块306之前的区块可被视为已验证(根据该校验和)的区块,在该验证程序中,该处理器114可检查最后已知区块306之后的区块。在一实施例中,若自该些可信任用户处下载的最新区块头皆相同,该处理器114可停止该验证程序,并认可自该些可信任用户处所获取的版本为可靠的区块链。藉此,该处理器114可以快速地获得由该网络中的已知矿工所信任的最新区块。该处理器114执行快速更新程序的过程如前所示。
应注意的是,前述实施例中的该预定阈值仅示例性,而非用以限制本案。根据该制造者的需求或该网络中的矿工数量,该预定阈值可被设置为各种可能数值(例如:50或100)。在一些实施例中,根据该装置10所获取的区块头所显示的网络“相对”多数,该预定阈值的值可被动态地决定。例如,根据前述实施例中的该用户群档案,矿工B创造了15%的区块,矿工C创造了13%的区块,矿工D创造了14%的区块。若该处理器114连接到该网络时可成功地连接至该些矿工B-D,由此相对多数(该些矿工B-D所创造的区块加总已超过50%)所获取的当前版本区块链(即根据最新的区块头所获取的版本)可被信任为可靠的区块链。
在一些实施例中,若该处理器无法连接至任何可信任用户,或者该处理器成功连接的可信任用户的数量小于该预定阈值,该处理器114可执行慢速更新程序,以于该网络中寻找更多可信任的矿工。
在一些实施例中,若该处理器114无法藉由该网络连接至足够数量的可信任用户,或该处理器114并未取得该用户群文件时,该处理器114可根据区块头当中的网络地址以执行慢速更新程序,以发现其他的用户。当开始慢速更新程序时,该处理器114可使用区块头306h当中的该校验和以验证该网络中的可连接矿工。在一些实施例中,该处理器114可进一步地根据历史信息(即执行后退搜索)来识别其他用户,以继续该慢速更新程序。当该处理器114成功连接至少一未知的矿工(并非可信任用户)时,该处理器114可向此未知的用户索取区块头306h,并根据该处理器114的内存中所储存的区块头306h的哈希值来验证其正确性。该处理器114可再索取在其之前的区块头305h,并使用该区块头306h所包含的区块头305h的哈希值来验证其正确性。当验证该些区块头皆正确时,该处理器可将区块305的创造者的地址及身份注记为可信任用户。
在一些实施例中,若该处理器114无法根据区块头306h的该校验和成功连接至可提供区块头以供验证的未知矿工,则可判定该装置10所连接的该网络为受到操纵的网络。亦即,该处理器114可假设该接入点20为受操纵的节点。在此状况下,该处理器114可转向另一个可存取的网络并进行验证,或者可中止验证程序并回报错误。
在一些实施例中,若该处理器114成功地根据该区块头306h的该校验和找到新的可信任用户。那么,该处理器114可依序地下载并验证更多先前的区块头304h、303h、302h等,以发现更多的可信任用户。应注意的是,各个区块头304h、303h、302h当中可存储有其创造者的网络地址。因此,藉由该些网络地址,该处理器114可尝试依序连接至该些区块的创造者(即用户),以发现其他可信任用户。
之后,该处理器114可尝试连接至该可信任用户。同样地,若该区块的创造者可被成功地连接,且从该创造者处下载的最新区块头有引用区块306,则该处理器114可注记该区块的创造者为该网络中可信任用户。若该用户无法连接,或者从该用户下载的最新区块头并未引用该区块306,则该处理器114可跳至下个先前区块的创造者。前述程序可理解为一种后退搜索(backward search)。该处理器114可继续该程序以寻找并连接至多个可信任用户,直到其所成功连接的先前已知可信任用户的数量以及在后退搜索中所发现的可信任用户的数量的总和超过该预定阈值。
承前所述,在成功连接的先前已知的可信任用户的数量小于该预定阈值的状况下,该处理器114可更新该用户群档案,以将该用户群档案当中无法连接的先前已知可信任用户替换为后退搜索中所发现的可信任用户。藉此,该处理器114可根据当前的网络拓扑来更新该用户群档案。
在一些实施例中,若该处理器114无法成功连接到足够数量(例如:该总和未达该预定阈值)的可信任用户,则该处理器114可判定该装置10所连接的该网络为受到操纵的网络。
在一些实施例中,若该处理器114可成功地连接到足够数量的可信任用户(包含先前已知的用户以及新发现的用户),该处理器114可再检验最新的区块头与最后已知的区块之间的链接(linkage)。在一些实施例中,该处理器114可依序验证最新区块头和最后已知区块之间的多个区块,以获取最新版本的区块链。
为了更佳地理解本案,请参考图4。图4基于本案一些实施例所绘示的区块链的部分示意图。图4绘示了一实施例中的当前版本区块链,此当前版本区块链当中包含了区块链300。应理解,假设此实施例距前述实施例已经过了一段时间,因此区块链300与当前版本的区块链之间的链接(linkage)对该处理器114而言为未知的。
如图4所示,在一些实施例中,当前版本的区块链400由可靠的区块链300以及尾链所形成,该尾链包含复数区块401-406,该些区块401-406为该装置10脱机时被创造的。在此实施例中,假设区块401由良善的矿工E所创造,区块402则由良善的矿工F所创造,因此,该些区块401-402为可信任的区块。而区块403-406由恶意的矿工G所创造,该些区块并非可靠区块链的一部分。假设该些矿工的信息皆被记录于该用户群档案当中,但该矿工G于该装置10被制造完成后才遭到入侵。亦即,当前版本的区块链400并非可靠的(non-authoritative)区块链。在此实施例中,假设,根据该用户群档案,该矿工E创造了该区块链300当中15%的区块,该矿工F创造了该区块链300当中25%的区块,而该矿工G创造了该区块链300当中8%的区块(该些百分比根据该装置被制造时的最后已知可靠区块链所得出)。根据本案的机制,复数区块头401h-406h将分别记录该些矿工的签名。
在一些实施例中,该内存112并未储存前述根据最后已知的可靠区块链所获取的关于用户创造区块的百分比,而由该处理器114藉由该后退搜索来获取该些百分比。该处理器114可自所连接到的用户处获取一些(例如:100个)先前区块头并进行验证,再根据该些区块头获取关于用户创造区块的百分比。
在一些实施例中,当该处理器114藉由当前所连接的该网络自用户处获取当前版本的区块链400,该处理器114可根据该校验和在区块链400当中找到该区块306。随后,由于该区块头306h引用了区块链400中的其他区块,该处理器114可以对该区块链400当中的接续区块(例如:接续于区块306之后的该些区块401-406)执行前进搜索(forward search),以尝试找出最新的可信任区块。
前进搜索为一种迭代(iterative)计算(或可称递进地验证)程序,用于确定是否可以信任区块链400中的后续区块。当执行前进搜索时,可对区块链400当中接续于区块306之后的每个区块进行交叉检查。针对每个区块,该处理器114可检查该区块的创造者身份,并对该区块实施一些评估参数。在一些实施例中,实施该些评估参数为根据该用户群档案为各区块累计百分比加总值。针对每一区块,当已知的相异矿工(即用户)对应的百分比累计而成的百分比加总值超过预定阈值时,该处理器114可将该区块视为可信任的区块。亦即,各矿工在可信任的区块链当中所创造的区块数的多寡,可作为参考条件来判断矿工是否可被视为新的可信任矿工。
在一些实施例中,当每一次前进搜索移动到某一区块时,该处理器114可确认对应于此区块的总得分(亦即,累积的百分比加总值)中的任何一个是否超过预定阈值。根据51%攻击的原理,在一些实施例中,该预定阈值可设定为50%(或任何超过50%的百分比值)。亦即,根据已知矿工各自创造的区块百分比值,如果累积超过50%的已知矿工认识(或引用)某一区块,该处理器114可接受该区块为可靠区块链的一部分。反之,直到确认某一区块被超过50%的已知矿工认识之前,该区块属于不可信任的区块。
在一些实施例中,在区块链400当中,该处理器114的前进搜索可自区块306之后(或称接续于区块306)的第一个区块开始,即矿工E所创造的区块401。该处理器114可读取区块401的区块头401h当中纪录的创造者身份。根据该用户群档案,矿工E在区块链300当中创造了15%的区块。因此,该处理器114在区块401的前进搜索可获取以下结果:针对区块401,矿工E贡献了15%的分数,其总分(亦即,累计百分比值)为15%。换言之,该用户群档案显示区块401由一位已知的矿工E所签章,其具有15%的可信度。
在一些实施例中,接着,前进搜索进入矿工F所创造的区块402。根据该用户群档案,矿工F在区块链300当中创造了25%的区块。因此,该处理器11在区块402的前进搜索可获取以下结果:针对区块401,矿工E贡献了15%的分数,矿工F贡献了25%的分数,总分为40%;针对区块402,矿工F贡献了25%的分数,总分为25%。换言之,当前进搜索执行至区块402时,该用户群档案显示区块401由两个已知矿工(即矿工E、F)所引用,其具有40%的可信度。而区块402由一个已知矿工(即矿工F)所签章,其具有25%的可信度。
在一些实施例中,接着,前进搜索进入矿工G所创造的区块403。根据该用户群档案,矿工G在区块链300当中创造了8%的区块。因此,该处理器114在区块403的前进搜索可获取以下结果:针对区块401,矿工E贡献了15%的分数,矿工F贡献了25%的分数,矿工G贡献了8%的分数,其总分为48%;针对区块402,矿工F贡献了25%的分数,矿工G贡献了8%的分数,其总分为33%;针对区块403,矿工G贡献了8%的分数,其总分为8%。根据区块403的前进搜索结果,该处理器114尚无法信任区块401-403。
在一些实施例中,接着,前进搜索进入区块404,其亦为矿工G所创造。应注意的是,在本案当中,仅针对相异矿工对应的百分比值进行累积。因此,当前进搜索执行到区块404时,可获取以下结果:针对区块401,矿工E贡献了15%的分数,矿工F贡献了25%的分数,矿工G贡献了8%的分数,其总分为48%;针对区块402,矿工F贡献了25%的分数,矿工G贡献了8%的分数,其总分为33%;针对区块403,矿工G贡献了8%的分数,总分为8%。可预见地,当前进搜索执行到区块405-406时,前进搜索的总分将不再增加,因此,该些区块当中没有任何区块可被信任。
如图4的实施例所示,当该处理器114完成对区块401-406的前进搜索后,由于对应于该些区块的总分皆未超过预定阈值(例如:50%),其将无法找到任何可信任的区块。也就是说,在此实施例当中,由于区块403-406由同一矿工所创造,其实际上并非可靠区块链的一部分,因此,认识区块401-406的已知矿工无法达到足够的数量。在此状况下,根据该用户群档案,该处理器114将无法信任该些区块401-406。承上所述,此机制可排除自受操纵矿工处所获取的档案,显示本案确实可以防止中间人攻击。
为了更佳地理解本案,请参考图5。图5基于本案一些实施例所绘示的区块链的部分示意图。图5绘示了另一实施例中的当前版本区块链,此当前版本区块链当中包含了区块链300。同样地,假设此实施例距前述实施例已经过了一段时间,因此区块链300与当前版本的区块链之间的链接对该处理器114而言为未知的。
如图5所示,在一些实施例中,当前版本的区块链500由可信任的区块链300以及尾链所形成,该尾链包含区块501-506,该些区块501-506为该装置10脱机时被创造的。在此实施例中,区块501-502由矿工E所开采,区块503由矿工F所开采,区块504由矿工H所开采,区块505由矿工B所开采,区块505由矿工C所开采。亦即,区块链500为该网络中的可靠区块链。根据本案的机制,复数区块头501h-506h将分别记录该些矿工的签名。
藉由当前连接的网络,若该处理器114可自暂时信任的用户处存取当前版本的区块链500,该处理器114可尝试利用校验和于区块链500当中定位区块306。由于区块头306h引用了区块链500当中的其他区块头,随后,该处理器114可依序对区块链500当中的后续区块(亦即,区块306之后的区块501-506)执行前进搜索,以尝试找出可靠区块链当中的最后一个区块。
类似于图4的实施例,在图5的一些实施例中,前进搜索可用以确定是否可以信任区块链500当中的后续区块。针对区块501-506当中的每个区块,该处理器114可根据该用户群档案检查该区块的创造者,并根据已知矿工累积计算百分比加总值。若搜索到某一区块的相异已知矿工(即用户)的累积百分比加总值超过该预定阈值时,该处理器114可信任该区块。此后,该区块将被识别为可信任的区块。
在一些实施例中,对区块501以及区块502执行前进搜索的结果如下所示。对区块501执行前进搜索时,其结果可为:针对区块501,矿工E贡献了15%的分数,其总分(亦即,百分比加总值)为15%。对区块502执行前进搜索时,其结果可为:针对区块501,矿工E贡献了15%的分数,其总分为15%;针对区块502,矿工E贡献了15%的分数,其总分亦为15%。
在一些实施例中,对区块503执行前进搜索时,其结果可为:针对区块501,矿工E贡献了15%的分数,矿工F贡献了25%的分数,其总分为40%;针对区块502,矿工E贡献了15%的分数,矿工F贡献了25%的分数,其总分为40%;针对区块503,矿工F贡献了25%的分数,其总分为25%。
在一些实施例中,当对矿工H创造的区块504执行前进搜索时,由于根据该用户群档案无法获得矿工H所创造的区块百分比,该处理器114可以选择略过(或暂停)累计百分比加总值。因此,对区块504执行前进搜索时,其结果可为:针对于区块501,矿工E贡献了15%的分数,矿工F贡献了25%的分数,矿工H了贡献0%(未知)分数,其总分为40%;针对区块502,矿工E贡献了15%的分数,矿工F贡献了25%的分数,矿工H贡献了0%的分数,其总分为40%;针对区块503,矿工F贡献了25%的分数,矿工H贡献了0%的分数,其总分为25%;针对区块504,矿工H贡献了0%的分数,其总分为0%。
在一些实施例中,当对区块505执行前进搜索时,该处理器114可重新开始累计百分比加总值,且判断是否有区块的累计百分比超过该预定阈值(即,50%)。对区块505执行前进搜索时,其结果可为:针对区块501,矿工B贡献了15%的分数,矿工E贡献了15%的分数,矿工F贡献了25%的分数,矿工H贡献了0%(未知)的分数,其总分为55%;针对区块502,矿工B贡献了15%的分数,矿工E贡献了15%的分数,矿工F贡献了25%的分数,矿工H贡献了0%的分数,其总分为55%;针对区块503,矿工B贡献了15%的分数,矿工F贡献了25%的分数,矿工H贡献了0%的分数,其总分为40%;针对区块504,矿工B贡献了15%的分数,矿工H贡献了0%的分数,其总分为15%;针对区块505,矿工B贡献了15%的分数,其总分为15%。
由于区块501-502的总分(亦即,百分比加总值)已超过该预定阈值(亦即,50%),该处理器114可确认区块501-502属于可信任的区块,并停止对该些区块进行百分比累计。此时,该处理器114可根据区块501-502所对应的创造者重新计算各创造者所创造区块的百分比值。由于区块501-502由矿工E所开采,对应于矿工E的百分比可从15%增加至17%(例如:若以100个区块为总数计算创造百分比)。
在一些实施例中,当对区块506执行前进搜索时,由于该用户群档案指出矿工C为已知矿工,故该处理器114可继续累计百分比加总值。对区块506执行前进搜索的结果可为:针对区块503,矿工B贡献了15%的分数,矿工C贡献了13%的分数,矿工F贡献了25%的分数,矿工H贡献了0%的分数,其总分为53%;针对块504,矿工B贡献了15%的分数,矿工C贡献了13%的分数,矿工H贡献了0%的分数,其总分为28%;针对区块505,矿工B贡献了15%的分数,矿工C贡献了13%的得分,其总分为28%。此时,由于区块503的总分超过了该预定阈值(即,50%),该处理器114可确认区块503属于可信任的区块,并停止对区块503进行的百分比累计。随后,其可重新计算区块创造者的比例分布。
如图5的实施例所示,当对区块501-506的前进搜索完成后,该处理器114可信任区块501-503为可靠区块链的一部分。亦即,在该实施例中,区块501-503由足够数量的已知矿工所引用。当该处理器114判断一个新区块的得分高于该预定阈值时,该处理器114可信任该新区块作为可靠区块链的一部分。此时,该处理器114可将当前版本区块链中的最后已知区块更新为该新区块,并将其存储至该内存112中,藉以覆写(override)先前已储存的区块。
应注意的是,在前述实施例中,虽然矿工H无法在前进搜索当中贡献分数,然而,可预见地,当位于区块504之后的区块中有足够数量的区块被确认为由已知用户所开采时,***将信任区块504。当区块504被信任时,该处理器114可将矿工H列为新的可信任用户,其可信度可根据矿工H在可靠区块链中所创造的区块多寡程度而定。在此实施例中,该处理器114可再重新计算区块创造者的比例分布。此后,在计算后续区块的可信度分数时,矿工H将可贡献1%(例如:若以100个区块为总数计算创造百分比)的分数。可见地,若继续执行此程序,随着时间的推移,矿工H未来能够贡献的可信度分数有提升的空间。
在一些实施例中,若矿工H的可信度分数超过阈值令该处理器114可信任矿工H,且该处理器114可成功连接矿工H,该处理器114可将该用户群档案当中的脱机可信任用户替换为矿工H。根据前述方法,该处理器114可藉由当前版本区块链当中各区块头之间的引用(reference)关系来发现新的可信任用户。经过一段时间之后,该装置10可藉由此种机制适应当前包含了许多未知矿工的区块链拓扑。
在一些实施例中,当前进搜索结束且将区块504确定为可信区块链的一部分时,该处理器114可以从该区块504开始后退搜索。这是为了向区块链中的其他用户进行检查,确认该些用户是否有其他版本的包含更多区块的可信区块链。当该处理器11成功访问的可信用户数量已达阈值时,其可将最新版本推断为它所知的版本。
在一些实施例中,该处理器114可向新发现的用户索取更多区块,并重新开始前进搜索,直到没有更多区块可以搜索,且访问到的所有用户皆确认最新版本的可靠区块链时,可结束前进搜索。此时,该处理器114可自此可靠区块链的最后区块头(例如:区块504h)中读取时间戳。在此实施例中,该处理器114可根据该区块头504h的该时间戳大致上地确认当前的时间。
根据前述段落,可以理解该处理器114实施前进搜索以及后退搜索的流程。其中,前进搜索用以确认某个区块头是否为可靠区块链当中的一部分,后退搜索则用以确认最新版本的区块链。
应当理解,图5的实施例仅为示例,而非用以限制本案。本案的概念为根据网络中的已知矿工的相异程度来实施前述迭代检查程序,以对当前版本区块链中的“未知”区块进行验证。即便有新矿工加入网络当中,已知矿工的百分比仍有助于该处理器114寻找可信任的区块(及其矿工)。理论上,若当前版本的区块链确实是可靠区块链,根据前述方法,最后链中的大多数区块将可以被信任。而若当前版本的区块链并非可靠区块链,根据前述方法,该处理器114将不信任链中的任何非可靠区块。
在一些实施例中,该处理器114可以持续于网络中发现新的可信任矿工,并将脱机的已知矿工替换为新的可信任矿工。每当该处理器114找到该用户群档案当中的可信任矿工时,该处理器114可自该矿工处下载当前版本的区块链。当预定数量(例如:3-50个)的可信任矿工所提供的区块链皆为相同版本时,该处理器114可确定此版本的区块链为最新版本的可靠区块链。
应注意的是,前述实施例中的该预定数量仅示例性,而非用以限制本案。根据制造商的需求或网络中的矿工总数多寡,可将设置该预定阈值设定为任意数量。在一些实施例中,该预定阈值的数值可根据该装置10被制造时网络中的“相对”多数的数量而决定,或可根据该装置10被启动时的最后已知版本区块链中的“相对”多数的数量而决定。
承前所述,在一些实施例中,当该处理器114成功连接至预定数量的可信任用户时,该处理器114可获取可靠区块链。根据可靠区块链中的最新区块头,该处理器114可取得确切当前时间,并实施公钥基础建设(PKI)的凭证验证。
基于前述实施例,本案提供了两种可藉由区块链来建立与网络的安全连接的方式。快速更新程序具有高效率,当有足够数量的可信任用户可供连接时,此程序可节省时间。慢速更新程序具有显着效果,当没有足够数量的可信任对用户可供连接时,此程序可在新的网络拓扑中发现并连接用户。尤其是当该装置10经过很长(例如:多年)的脱机时间之后,此程序仍有效。
虽然前述实施例相当详细地描述了本案当中的各种细节,然其并不排除其他可行的实施例。因此,权利要求的精神以及范围不应受限于前述实施例的描述方式。应注意,本案的方法可应用于其他的区块链机制中,例如:权益证明(Proof-of-stake,PoS)机制或其他共识机制。
在前述实施例中,本案的装置具有多个模块或单元。领域中人应当理解,在一些实施例中,前述模块或单元可藉由特定电路(包含在一或多个处理器以及编码指令下操作的专用电路或通用电路)以实现。一般而言,前述电路可包含晶体管或其他电路组件,以前述实施例中的方式配置,使前述电路可根据本案前述的功能以及操作运行。进一步地,前述电路当中的单元或模块间的协作程序可由特定编译程序(Compiler)所实现,例如,缓存器传输语言(Register Transfer Language,RTL)编译程序。缓存器传输语言编译程序根据相似于汇编语言代码的脚本运作,从而将脚本编译为用于布局或制造电路的形式。实际上,缓存器传输语言编译程序在电子及数字***设计过程中具有广泛的作用及用途,已为领域中人所熟知。
应当理解,在不脱离本案的精神和范围内,领域中的技术人员可对本案的实施例作各种更动与润饰。基于前述内容,后附的权利要求的范围应当涵盖本案经更动与润饰后的态样。
【符号说明】
10:装置
110:控制单元
120:操作单元
130:通信单元
20:接入点
S210~S230:步骤流程
300:区块链
301~306:区块
301h~306h:区块头
400:区块链
401~406:区块
401h~406h:区块头
500:区块链
501~506:区块
501h~506h:区块头。
Claims (20)
1.一种实施安全联机的方法,应用于装置,其特征在于,所述方法包含:
藉由所述装置连接至网络;
自所述装置的内存存取最后已知区块头哈希值,其中所述最后已知区块头哈希值对应于最后已知区块链中的最后已知区块;
通过所述网络连接复数可信任用户;
响应于成功连接至所述可信任用户中的每一个,自所述可信任用户中的每一个分别下载最新区块头;
根据所述最后已知区块头哈希值判断所述可信任用户中的每一个对应的所述最新区块头是否引用所述最后已知区块;
响应于第一数量超过阈值,验证所述最新区块头以形成延伸自所述最后已知区块链的当前版本区块链;以及
自所述当前版本区块链的所述最新区块头获取当前时间;其中所述第一数量为所述可信任用户中被成功连接的复数第一用户的数量,且所述第一用户对应的所述最新区块头引用所述最后已知区块。
2.如权利要求1所述的方法,其特征在于,所述最后已知区块链中的每个区块对应的区块头当中储存有创造所述区块的用户的网络地址,且通过所述网络连接所述可信任用户更包含:
根据所述可信任用户各自对应的所述网络地址来连接所述可信任用户。
3.如权利要求1所述的方法,其特征在于,更包含:
获取对应所述可信任用户的用户群档案,其中所述可信任用户分别具有加密签名;
根据所述用户群档案当中的所述加密签名,检查是否成功地与所述可信任用户中的每一个用户建立联机;
检查自所述可信任用户中的每一个获取的所述最新区块头是否相同,且所述最新区块头引用所述最后已知区块;以及
响应于自所述可信任用户中的每一个获取的所述最新区块头确实相同,验证所述最新区块头以形成所述当前版本区块链。
4.如权利要求1所述的方法,其特征在于,更包含:
获取对应所述可信任用户的用户群档案,其中所述可信任用户分别具有加密签名;
根据所述用户群档案当中的所述加密签名,检查是否成功地与所述可信任用户中的每一个用户建立联机;
响应于所述第一数量低于所述阈值,发现第二数量的复数可连接用户,使所述第一数量以及所述第二数量的总和至少超过所述阈值,其中所述第二数量的所述可连接用户中的每一个皆具有引用所述最后已知区块的最新区块头;
自所述第二数量的所述可连接用户中的每一个分别下载所述最新区块头;以及
递进地检查介于所述最新区块头以及所述最后已知区块之间的复数区块,以形成所述当前版本区块链。
5.如权利要求1所述的方法,其特征在于,验证所述最新区块头以形成延伸自所述最后已知区块链的所述当前版本区块链更包含:
自所述第一用户中的每一个分别下载所述最新区块头;
递进地检查介于所述最新区块头以及所述最后已知区块之间的复数区块;
为所述区块中的每一个分别指派复数分数,其中所述分数中的每一分数分别对应于所述第一用户中的一者,且所述第一用户中的所述者的加密签名纪录于所述区块之前的一或多个区块当中;
递进地判断所述区块中的每一个被指派的所述分数的总分是否超过验证阈值;
响应于所述区块中的任一者的所述总分超过所述验证阈值,验证所述区块;以及
串接已验证的所述区块,以形成延伸自所述最后已知区块链的所述当前版本区块链。
6.如权利要求5所述的方法,其特征在于,所述分数中的每一分数为所述第一用户中的一者在所述最后已知区块链中的区块创造比例,所述第一用户分别对应的所述加密签名纪录于所述最后已知区块链中。
7.如权利要求5所述的方法,其特征在于,更包含:
响应于所述区块中的任一者的所述总分未超过所述验证阈值,不信任所述区块。
8.如权利要求5所述的方法,其特征在于,所述验证阈值根据所述可信任用户的数量中的相对多数所决定。
9.如权利要求4所述的方法,其特征在于,更包含:
在所述用户群档案中,将所述可信任用户当中无法被所述装置成功连接的复数第二用户替换为所述第二数量的所述可连接用户。
10.如权利要求4所述的方法,其特征在于,更包含:
响应于所述第一数量以及所述第二数量的所述总和未超过所述阈值,判断所述装置受到操纵。
11.一种实施安全联机的装置,其特征在于,包含:
内存,配置以储存复数计算机可读取脚本以及最后已知区块头哈希值,其中所述最后已知区块头哈希值对应于最后已知区块链中的最后已知区块;以及
处理器,电性耦接于所述内存,所述处理器配置以存取所述计算机可读取脚本以执行:
连接至网络;
存取所述最后已知区块头哈希值;
通过所述网络连接复数可信任用户;
响应于成功连接至所述可信任用户中的每一个,自所述可信任用户中的每一个分别下载最新区块头;
根据所述最后已知区块头哈希值判断所述可信任用户中的每一个对应的所述最新区块头是否引用所述最后已知区块;
响应于第一数量超过一阈值,验证所述最新区块头以形成延伸自所述最后已知区块链的当前版本区块链;以及
自所述当前版本区块链的所述最新区块头获取当前时间;
其中所述第一数量为所述可信任用户中被成功连接的复数第一用户的数量,且所述第一用户对应的所述最新区块头引用所述最后已知区块。
12.如权利要求11所述的装置,其特征在于,所述最后已知区块链中的每个区块对应的区块头当中储存有创造所述区块的用户的网络地址,且所述处理器通过所述网络连接所述可信任用户更包含:
根据所述可信任用户各自对应的所述网络地址来连接所述可信任用户。
13.如权利要求11所述的装置,其特征在于,所述处理器更配置以存取所述计算机可读取脚本以执行:
获取对应所述可信任用户的用户群档案,其中所述可信任用户分别具有加密签名;
根据所述用户群档案当中的所述加密签名,检查是否成功地与所述可信任用户中的每一个用户建立联机;
检查自所述可信任用户中的每一个获取的所述最新区块头是否相同,且所述最新区块头引用所述最后已知区块;以及
响应于自所述可信任用户中的每一个获取的所述最新区块头确实相同,验证所述最新区块头以形成所述当前版本区块链。
14.如权利要求11所述的装置,其特征在于,所述处理器更配置以存取所述计算机可读取脚本以执行:
获取对应所述可信任用户的用户群档案,其中所述可信任用户分别具有加密签名;
根据所述用户群档案当中的所述加密签名,检查是否成功地与所述可信任用户中的每一个用户建立联机;
响应于所述第一数量低于所述阈值,发现第二数量的复数可连接用户,使所述第一数量以及所述第二数量的总和至少超过所述阈值,其中所述第二数量的所述可连接用户中的每一个皆具有引用所述最后已知区块的最新区块头;
自所述第二数量的所述可连接用户中的每一个分别下载所述最新区块头;以及
递进地检查介于所述最新区块头以及所述最后已知区块之间的复数区块,以形成所述当前版本区块链。
15.如权利要求11所述的装置,其特征在于,所述处理器验证所述最新区块头以形成延伸自所述最后已知区块链的所述当前版本区块链更包含:
自所述第一用户中的每一个分别下载所述最新区块头;
递进地检查介于所述最新区块头以及所述最后已知区块之间的复数区块;
为所述区块中的每一个分别指派复数分数,其中所述分数中的每一分数分别对应于所述第一用户中的一者,且所述第一用户中的所述者的加密签名纪录于所述区块之前的一或多个区块当中;
递进地判断所述区块中的每一个被指派的所述分数的总分是否超过验证阈值;
响应于所述区块中的任一者的所述总分超过所述验证阈值,验证所述区块;以及
串接已验证的所述区块,以形成延伸自所述最后已知区块链的所述当前版本区块链。
16.如权利要求15所述的装置,其特征在于,所述分数中的每一分数为所述第一用户中的一者在所述最后已知区块链中的区块创造比例,所述第一用户分别对应的所述加密签名纪录于所述最后已知区块链中。
17.如权利要求15所述的装置,其特征在于,所述处理器验证所述最新区块头以形成延伸自所述最后已知区块链的所述当前版本区块链更包含:
响应于所述区块中的任一者的所述总分未超过所述验证阈值,不信任所述区块。
18.如权利要求15所述的装置,其特征在于,所述验证阈值根据所述可信任用户的数量中的相对多数所决定。
19.如权利要求14所述的装置,其特征在于,所述处理器更配置以存取所述计算机可读取脚本以执行:
在所述用户群档案中,将所述可信任用户当中无法被所述装置成功连接的复数第二用户替换为所述第二数量的所述可连接用户。
20.如权利要求14所述的装置,其特征在于,所述处理器更配置以存取所述计算机可读取脚本以执行:
响应于所述第一数量以及所述第二数量的所述总和未超过所述阈值,判断所述装置受到操纵。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862648413P | 2018-03-27 | 2018-03-27 | |
US62/648,413 | 2018-03-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110311885A CN110311885A (zh) | 2019-10-08 |
CN110311885B true CN110311885B (zh) | 2021-10-01 |
Family
ID=66091859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910239433.5A Active CN110311885B (zh) | 2018-03-27 | 2019-03-27 | 用以实施安全联机的装置及方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11146545B2 (zh) |
EP (1) | EP3547609B1 (zh) |
CN (1) | CN110311885B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10419225B2 (en) | 2017-01-30 | 2019-09-17 | Factom, Inc. | Validating documents via blockchain |
US10817873B2 (en) | 2017-03-22 | 2020-10-27 | Factom, Inc. | Auditing of electronic documents |
US11170366B2 (en) | 2018-05-18 | 2021-11-09 | Inveniam Capital Partners, Inc. | Private blockchain services |
US10783164B2 (en) | 2018-05-18 | 2020-09-22 | Factom, Inc. | Import and export in blockchain environments |
US11134120B2 (en) | 2018-05-18 | 2021-09-28 | Inveniam Capital Partners, Inc. | Load balancing in blockchain environments |
US11989208B2 (en) | 2018-08-06 | 2024-05-21 | Inveniam Capital Partners, Inc. | Transactional sharding of blockchain transactions |
US11348097B2 (en) | 2018-08-06 | 2022-05-31 | Inveniam Capital Partners, Inc. | Digital contracts in blockchain environments |
US20200106623A1 (en) * | 2018-09-28 | 2020-04-02 | NEC Laboratories Europe GmbH | Method and system for a trusted execution environment-based proof of stake protocol |
US11108820B2 (en) * | 2019-06-16 | 2021-08-31 | Moac Blockchain Tech Inc | Apparatus and method for distinguishing between legitimate and malicious branches of a split blockchain |
US11343075B2 (en) * | 2020-01-17 | 2022-05-24 | Inveniam Capital Partners, Inc. | RAM hashing in blockchain environments |
CN112837060B (zh) * | 2021-01-12 | 2022-05-03 | 中科柏诚科技(北京)股份有限公司 | 用于区块链安全防护的支付业务处理方法及数字金融平台 |
US12008526B2 (en) | 2021-03-26 | 2024-06-11 | Inveniam Capital Partners, Inc. | Computer system and method for programmatic collateralization services |
US12007972B2 (en) | 2021-06-19 | 2024-06-11 | Inveniam Capital Partners, Inc. | Systems and methods for processing blockchain transactions |
US11522726B1 (en) * | 2021-06-29 | 2022-12-06 | Fmr Llc | Systems and methods for reading, storing, and correcting historical records in distributed ledgers |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105719185A (zh) * | 2016-01-22 | 2016-06-29 | 杭州复杂美科技有限公司 | 区块链的数据对比及共识方法 |
WO2016193811A1 (en) * | 2015-05-29 | 2016-12-08 | Digital Cc Ip Pty Ltd. | Systems and methods for publicly verifiable authorization |
CN106528775A (zh) * | 2016-10-28 | 2017-03-22 | 山东明和软件有限公司 | 支持逻辑多链的私有区块链运行支撑***及其工作方法 |
CN107135661A (zh) * | 2016-12-26 | 2017-09-05 | 深圳前海达闼云端智能科技有限公司 | 数据处理方法、装置、***及信息采集设备 |
CN107171794A (zh) * | 2017-06-27 | 2017-09-15 | 葛峰 | 一种基于区块链和智能合约的电子文书签署方法 |
GB2549085A (en) * | 2016-03-30 | 2017-10-11 | British Telecomm | Blockchain state reliability determination |
CN107506661A (zh) * | 2017-08-15 | 2017-12-22 | 河南真二互联网科技有限公司 | 一种基于区块链的生成房屋历史记录的方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101678795B1 (ko) * | 2015-11-30 | 2016-11-22 | 전삼구 | 블록체인 인증을 이용하는 IoT 기반 사물 관리 시스템 및 방법 |
US11153091B2 (en) * | 2016-03-30 | 2021-10-19 | British Telecommunications Public Limited Company | Untrusted code distribution |
EP3639471B1 (en) * | 2017-06-14 | 2021-10-06 | Harman International Industries, Incorporated | Systems and methods for security of network connected devices |
US10601598B2 (en) * | 2017-11-02 | 2020-03-24 | Keir Finlow-Bates | System and method for storing the location on a blockchain of a hash of a digital item within said digital item |
US10572855B1 (en) * | 2018-08-28 | 2020-02-25 | Digiprint Ip Llc | Tracking and authentication of inventory via distributed ledgers and NFC tags |
-
2019
- 2019-03-18 US US16/356,099 patent/US11146545B2/en active Active
- 2019-03-27 CN CN201910239433.5A patent/CN110311885B/zh active Active
- 2019-03-27 EP EP19165455.7A patent/EP3547609B1/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016193811A1 (en) * | 2015-05-29 | 2016-12-08 | Digital Cc Ip Pty Ltd. | Systems and methods for publicly verifiable authorization |
CN105719185A (zh) * | 2016-01-22 | 2016-06-29 | 杭州复杂美科技有限公司 | 区块链的数据对比及共识方法 |
GB2549085A (en) * | 2016-03-30 | 2017-10-11 | British Telecomm | Blockchain state reliability determination |
CN106528775A (zh) * | 2016-10-28 | 2017-03-22 | 山东明和软件有限公司 | 支持逻辑多链的私有区块链运行支撑***及其工作方法 |
CN107135661A (zh) * | 2016-12-26 | 2017-09-05 | 深圳前海达闼云端智能科技有限公司 | 数据处理方法、装置、***及信息采集设备 |
CN107171794A (zh) * | 2017-06-27 | 2017-09-15 | 葛峰 | 一种基于区块链和智能合约的电子文书签署方法 |
CN107506661A (zh) * | 2017-08-15 | 2017-12-22 | 河南真二互联网科技有限公司 | 一种基于区块链的生成房屋历史记录的方法 |
Also Published As
Publication number | Publication date |
---|---|
US20190306150A1 (en) | 2019-10-03 |
EP3547609A1 (en) | 2019-10-02 |
EP3547609B1 (en) | 2020-11-18 |
US11146545B2 (en) | 2021-10-12 |
CN110311885A (zh) | 2019-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110311885B (zh) | 用以实施安全联机的装置及方法 | |
CN107085675B (zh) | 受控安全代码验证 | |
US10360018B2 (en) | Update control apparatus, software update system, and update control method | |
US9705678B1 (en) | Fast CAN message authentication for vehicular systems | |
US10244394B2 (en) | Method and update gateway for updating an embedded control unit | |
CN107086981B (zh) | 受控安全代码认证 | |
CN108334753B (zh) | 盗版应用验证方法和分布式服务器节点 | |
US10565380B2 (en) | Apparatus and associated method for authenticating firmware | |
JP6371919B2 (ja) | セキュアなソフトウェアの認証と検証 | |
CN111064711B (zh) | 基于区块链的数据流检测方法、装置及服务器 | |
EP2544400A2 (en) | PUF based Cryptographic communication system and cryptographic communication method | |
US9602487B2 (en) | Method for the protected transmission of data | |
CN111641712B (zh) | 区块链数据更新方法、装置、设备、***及可读存储介质 | |
CN110059089B (zh) | 数据同步方法、装置、存储介质及电子设备 | |
CN102509049A (zh) | 一种程序合法性验证方法和*** | |
US20200313851A1 (en) | Local ledger block chain for secure updates | |
JP2018081349A (ja) | 改竄検知システム、検証ecu、被検証ecu、プログラム | |
CN111641496B (zh) | 区块链数据更新方法、装置、设备、***及可读存储介质 | |
CN109634628A (zh) | 在可信存储装置上生成校验和以加速认证 | |
CN113168482A (zh) | 用于确保源码的可信性的方法 | |
CN110392083B (zh) | 文件秒传的控制方法、装置及终端设备 | |
Salas | A secure framework for OTA smart device ecosystems using ECC encryption and biometrics | |
CN114245183B (zh) | 推流数据鉴权方法及装置 | |
CN113783839B (zh) | 区块链数据更新方法、装置、计算机设备及存储介质 | |
KR102031248B1 (ko) | 보안 모듈을 이용한 실행 환경의 안전성 검증 방법 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231212 Address after: 30 North Gould Street, Sheridan, Wyoming, USA, Room 20452 Patentee after: Daote Technology Address before: Room 535, 275 Market Street, Minneapolis, Minnesota, USA Patentee before: American Business Vision Technology Co.,Ltd. |