CN110995413A - 一种防止伪节点攻击的联盟链共识节点管理方法 - Google Patents
一种防止伪节点攻击的联盟链共识节点管理方法 Download PDFInfo
- Publication number
- CN110995413A CN110995413A CN201911234593.7A CN201911234593A CN110995413A CN 110995413 A CN110995413 A CN 110995413A CN 201911234593 A CN201911234593 A CN 201911234593A CN 110995413 A CN110995413 A CN 110995413A
- Authority
- CN
- China
- Prior art keywords
- node
- consensus
- hash
- message
- routing table
- 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.)
- Granted
Links
Images
Classifications
-
- 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开一种防止伪节点攻击的联盟链共识节点管理方法,根据共识消息中的发送该共识消息的节点ID和共识层维护的路由表信息,来获取该ID对应的节点Hash,并将该节点Hash和网络层维护的实际的节点Hash进行对比,以此来确认消息来源者身份的正确性。当发现共识层的节点Hash与网络层的节点Hash不一致时,共识节点会拒绝该消息。本发明的共识节点管理方法可过滤掉恶意共识节点伪装成其他共识节点发来的共识消息,节点只接收身份正确的节点消息,从而保证了共识算法尤其是拜占庭容错共识算法的正确性。
Description
技术领域
本发明涉及区块链中联盟链共识节点的管理领域,具体涉及一种防止伪节点攻击的联盟链共识节点管理方法。
背景技术
区块链是由中本聪于2008年提出的一种支持比特币运行的底层技术,区块链现阶段做落地项目,联盟链是合适的切入点,其去中心化、可追溯、信息不可篡改等特性对银行、保险、信托等金融服务业带来了重大影响。
共识算法是联盟链的核心要素,也是目前联盟链最为关心的技术问题之一。目前,联盟链中通常采用BFT类共识机制。这是因为在恶意节点数不超限制的前提下,BFT(Byzantine Fault Tolerance,BFT)类算法可以支持较高的吞吐量和极短的终局时间,其正确性和活动性又可被严格证明,非常合乎大机构的需求。经典的PBFT算法及其变体是最为常见的联盟链共识算法,PBFT算法最初出现在MIT的Miguel和Barbara Liskov提出,初衷是为一个低延迟存储系统所设计,降低算法的复杂度。它解决了原始拜占庭容错算法效率不高的问题,将算法复杂度由指数级降低到多项式级,使得拜占庭容错算法在实际系统应用中变得可行。PBFT是第一个得到广泛应用的BFT算法。随后业界还提出了若干改进版的BFT共识算法。
此外,与不限制共识成员的公链不同,联盟链中所有参与节点的身份都是已知的,每个节点有很高的可信度,故在某些业务场景下可采用不容拜占庭节点的CFT(CrashFault Tolerance)类共识算法(如RAFT、ZAB等共识协议),著名的开源联盟链项目Fabric从1.4版本开始支持RAFT共识算法。
与CFT类共识算法相比,BFT类共识必须严格验证节点的身份,只能接收身份正确的共识节点的消息,将伪造身份的共识节点的消息作为其他合法共识节点的消息来处理,将影响BFT类共识算法的正确性。
对于拥有大规模共识节点的联盟链场景来说,网络层的传输效率也是行业内关心的技术重点之一。业界使用较多的GRPC技术,是一个高性能、通用的开源RPC框架,其由Google主导并基于HTTP2协议标准而设计。以GRPC双向流技术为例,每两个节点间需要建立一条GRPC连接,每个连接都有一条对应的stream流去接收和发送共识消息,节点可将另外一个节点的节点Hash作为该连接的唯一标识符。目前,区块链领域最常见的哈希算法,其哈希结果的长度一般在32字节,而int64类型的ID值,长度只有8字节。为了降低共识消息的大小,共识节点在发送共识消息时往往只会带上本节点的ID(1,2,3,4…),以此作为自己的唯一标识符。
由上可知,为了降低共识消息的大小,共识节点在发送共识消息时往往只会带上本节点的ID,以此作为自己的唯一标识符,恶意的合法共识节点可以很容易的通过伪造ID来伪造共识消息。目前,联盟链平台一般使用防拜占庭错误的共识算法,对于BFT类的共识,接收来自伪造节点的共识消息会严重影响共识算法的正确性。
发明内容
针对现有技术的不足,本发明提出一种防止伪节点攻击的联盟链共识节点管理方法,具体技术方案如下:
一种防止伪节点攻击的联盟链共识节点管理方法,其特征在于,共识节点拥有共识层和网络层,所述的管理方法具体包括如下步骤:
S1:共识节点在网络层为每个合法的对端共识节点建立一条网络连接,并用对端共识节点的节点Hash作为连接的唯一标识符,该连接负责接收来自对端共识节点的共识消息,或者给对端共识节点的发送共识消息;
S2:共识节点在共识层协商一个路由表,即全量的合法对端共识节点的唯一标识符列表,路由表中节点的唯一标识符包括节点Hash和ID;
S3:共识节点发送共识消息,消息中带有本节点的ID,作为节点的唯一标识符;
S4:对端节点接收该共识消息,根据共识消息中的ID和本地的路由表,找出该ID对应的节点Hash;
S5:对端节点根据与其建立的网络连接的标识符来获取发送该共识消息的节点Hash;
S6:对比S4和S5的哈希值,如果一致,则接收该共识消息,否则,拒绝该共识消息。
进一步地,所述的S1中的网络连接的建立,根据系统的需求来选择单/双向网络连接技术。
进一步地,所述的S1和S2中的节点Hash,用节点IP或端口号或本机物理地址作为种子,并用哈希算法来计算该节点Hash。
进一步地,所述的哈希算法为Keccak-256或SHA-256。
进一步地,所述的S2中协商路由表通过如下方式进行:通过读取配置文件来初始化该路由表,即每个合法的共识节点都拥有一份相同的节点列表文件,通过读取该节点列表文件即可构建正确的路由表。
进一步地,所述的S4中,通过顺序查找本地路由表中的节点列表或使用K-V类型的结构来存储路由表,找出ID对应的节点Hash,从而加快该查找过程。
与现有技术相比,本发明的有益效果如下:
本发明通过对比网络层的节点Hash和共识层维护的节点Hash(通过共识消息中的节点ID和本地的路由表信息来获取),过滤掉伪造身份的共识节点的消息,节点只接收身份正确的对端节点消息,从而保证了共识算法尤其是拜占庭容错共识算法的正确性。另外,共识消息中只带节点ID将大大降低共识消息的大小,可缓解共识节点的带宽压力。
附图说明
图1是各节点间连接的状态图。
具体实施方式
下面根据附图和优选实施例详细描述本发明,本发明的目的和效果将变得更加明白。以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提出的防止伪节点攻击的联盟链共识节点管理方法,共识节点拥有共识层和网络层,节点根据网络配置文件在网络层为每个合法的对端节点建立一条网络连接,负责接收和发送共识消息。
下面以四个共识节点为例对本发明的共识节点管理方法进行说明。
节点的网络配置文件具体如下:
hosts=["node1 127.0.0.1:50011",
"node2 127.0.0.1:50012",
"node3 127.0.0.1:50013",
"node4 127.0.0.1:50014",]
如图1所示,Node1和Node2之间建立的连接叫Stream1-2,Node1和Node3之间建立的连接叫Stream1-3,Node2和Node3之间建立的连接叫Stream2-3,以此类推。
Node1在Stream1-2上绑定的唯一标识符为Node2的节点Hash,即:
"c82a71a88c58540c62fc119e78306e7fdbe114d9b840c47ab564767cb1c706e2"
Node2在Stream1-2上绑定的唯一标识符为Node1的节点Hash,即:
"fa34664ec14727c34943045bcaba9ef05d2c48e06d294c15effc900a5b4b663a",
Node1在Stream1-3上绑定的唯一标识符为Node3的节点Hash,即:
"0c89dc7d8bdf45d1fed89fdbac27463d9f144875d3d73795f64f35dc204480fd"
Node3在Stream1-3上绑定的唯一标识符为Node1的节点Hash,即:
"fa34664ec14727c34943045bcaba9ef05d2c48e06d294c15effc900a5b4b663a",
节点根据路由表配置文件,在共识层维护一个全量的对端节点的路由表信息。路由表配置文件具体如下:
[self]
n=4
ID=1
[[nodes]]
ID=1
[[nodes]]
ID=2
[[nodes]]
ID=3
[[nodes]]
ID=4
注:self字段中的ID值为本节点的ID值
根据配置文件的信息,共识节点初始化后的全量的路由表信息具体如下:
router1[ID:1,Hash:"fa34664ec14727c34943045bcaba9ef05d2c48e06d294c15effc900a5b4b663a"]
router2[ID:2,Hash:"c82a71a88c58540c62fc119e78306e7fdbe114d9b840c47ab564767cb1c706e2"]
router3[ID:3,Hash:"0c89dc7d8bdf45d1fed89fdbac27463d9f144875d3d73795f64f35dc204480fd"]
router4[ID:4,Hash:"34d299742260716bab353995fe98727004b5c27bde52489f61de093176e82088"]
路由表中每个对端节点的唯一标识符由节点Hash和节点ID组成。
实例一:Node2伪造成Node3的节点身份发送共识消息
S1:四个节点Node1、Node2、Node3、Nod4在网络层为每个对端共识节点建立一条物理连接,如图1所示;
S2:四个节点分别初始化各自的路由表信息;
S3:如图1所示,Node2给Node1发送一条共识消息msg[replicaID:3,payload:"test"],其中replicaID字段为发送方的节点ID,payload字段为具体的消息内容;
S4:Node1经过Stream1-2接收到本条消息,由上可知Node1在Stream1-2上绑定的对端节点Hash为"c82a71a88c58540c62fc119e78306e7fdbe114d9b840c47ab564767cb1c706e2";
S5:Node1根据消息中的replicaID字段信息和本地路由表信息,找到ID为3的对端节点的节点Hash为"0c89dc7d8bdf45d1fed89fdbac27463d9f144875d3d73795f64f35dc204480fd";
S6:Node1对比S4和S5中的节点Hash,发现两者不一致,故将拒绝本次共识消息。
实例二:身份正确的节点发送共识消息
S1:四个节点Node1、Node2、Node3、Nod4在网络层为每个对端共识节点建立一条物理连接,如图1所示;
S2:四个节点分别初始化各自的路由表信息;
S3:如图1所示,Node4给Node3发送一条共识消息msg[replicaID:4,payload:"test"],其中replicaID字段为发送方的节点ID,payload字段为具体的消息内容;
S4:Node3经过Stream3-4接收到本条消息,由上可知Node3在Stream3-4上绑定的对端节点Hash为"34d299742260716bab353995fe98727004b5c27bde52489f61de093176e82088";
S5:Node3根据replicaID字段信息和本地路由表信息,找到ID为4的对端节点的节点Hash为"34d299742260716bab353995fe98727004b5c27bde52489f61de093176e82088";
S6:Node3对比S4和S5中的节点Hash,发现两者一致,故将接收本次共识消息。
本领域普通技术人员可以理解,以上所述仅为发明的优选实例而已,并不用于限制发明,尽管参照前述实例对发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在发明的精神和原则之内,所做的修改、等同替换等均应包含在发明的保护范围之内。
Claims (6)
1.一种防止伪节点攻击的联盟链共识节点管理方法,其特征在于,共识节点拥有共识层和网络层。所述的管理方法具体包括如下步骤:
S1:共识节点在网络层为每个合法的对端共识节点建立一条网络连接,并用对端共识节点的节点Hash作为连接的唯一标识符,该连接负责接收来自对端共识节点的共识消息,或者给对端共识节点的发送共识消息;
S2:共识节点在共识层协商一个路由表,即全量的合法对端共识节点的唯一标识符列表,路由表中节点的唯一标识符包括节点Hash和ID;
S3:共识节点发送共识消息,消息中带有本节点的ID,作为节点的唯一标识符;
S4:对端节点接收该共识消息,根据共识消息中的ID和本地的路由表,找出该ID对应的节点Hash;
S5:对端节点根据与其建立的网络连接的标识符来获取发送该共识消息的节点Hash;
S6:对比S4和S5的哈希值,如果一致,则接收该共识消息,否则,拒绝该共识消息。
2.根据权利要求1所述的防止伪节点攻击的联盟链共识节点管理方法,其特征在于,所述的S1中的网络连接的建立,根据系统的需求来选择单/双向网络连接技术。
3.根据权利要求1所述的防止伪节点攻击的联盟链共识节点管理方法,其特征在于,所述的S1和S2中的节点Hash,用节点IP或端口号或本机物理地址作为种子,并用哈希算法来计算该节点Hash。
4.根据权利要求3所述的防止伪节点攻击的联盟链共识节点管理方法,其特征在于,所述的哈希算法为Keccak-256或SHA-256。
5.根据权利要求1所述的防止伪节点攻击的联盟链共识节点管理方法,其特征在于,所述的S2中协商路由表通过如下方式进行:通过读取配置文件来初始化该路由表,即每个合法的共识节点都拥有一份相同的节点列表文件,通过读取该节点列表文件即可构建正确的路由表。
6.根据权利要求1所述的防止伪节点攻击的联盟链共识节点管理方法,其特征在于,所述的S4中,通过顺序查找本地路由表中的节点列表或使用K-V类型的结构来存储路由表,找出ID对应的节点Hash,从而加快该查找过程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911234593.7A CN110995413B (zh) | 2019-12-05 | 2019-12-05 | 一种防止伪节点攻击的联盟链共识节点管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911234593.7A CN110995413B (zh) | 2019-12-05 | 2019-12-05 | 一种防止伪节点攻击的联盟链共识节点管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110995413A true CN110995413A (zh) | 2020-04-10 |
CN110995413B CN110995413B (zh) | 2023-03-31 |
Family
ID=70090465
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911234593.7A Active CN110995413B (zh) | 2019-12-05 | 2019-12-05 | 一种防止伪节点攻击的联盟链共识节点管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110995413B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112564960A (zh) * | 2020-12-01 | 2021-03-26 | 浙商银行股份有限公司 | 基于区块链节点中心度弹性调整共识的方法及装置 |
CN113888168A (zh) * | 2020-07-03 | 2022-01-04 | 支付宝(杭州)信息技术有限公司 | 联盟链的共识方法、数据校验方法、装置及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050149730A1 (en) * | 2003-12-31 | 2005-07-07 | Selim Aissi | Multi-authentication for a computing device connecting to a network |
CN106789920A (zh) * | 2016-11-25 | 2017-05-31 | 深圳前海微众银行股份有限公司 | 区块链的节点连接方法及装置 |
CN108616362A (zh) * | 2018-04-16 | 2018-10-02 | 广州杰赛科技股份有限公司 | 投票信息生成方法和装置 |
CN108933804A (zh) * | 2017-05-26 | 2018-12-04 | 中移物联网有限公司 | 一种对等网络构建方法和装置 |
US20190014127A1 (en) * | 2016-03-14 | 2019-01-10 | Alibaba Group Holding Limited | Techniques to verify message authenticity |
CN109495246A (zh) * | 2018-11-20 | 2019-03-19 | 王建新 | 一种联盟链节点验证方法 |
CN110430061A (zh) * | 2019-07-19 | 2019-11-08 | 东南大学 | 一种基于区块链技术的车联网设备身份认证方法 |
-
2019
- 2019-12-05 CN CN201911234593.7A patent/CN110995413B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050149730A1 (en) * | 2003-12-31 | 2005-07-07 | Selim Aissi | Multi-authentication for a computing device connecting to a network |
US20190014127A1 (en) * | 2016-03-14 | 2019-01-10 | Alibaba Group Holding Limited | Techniques to verify message authenticity |
CN106789920A (zh) * | 2016-11-25 | 2017-05-31 | 深圳前海微众银行股份有限公司 | 区块链的节点连接方法及装置 |
CN108933804A (zh) * | 2017-05-26 | 2018-12-04 | 中移物联网有限公司 | 一种对等网络构建方法和装置 |
CN108616362A (zh) * | 2018-04-16 | 2018-10-02 | 广州杰赛科技股份有限公司 | 投票信息生成方法和装置 |
CN109495246A (zh) * | 2018-11-20 | 2019-03-19 | 王建新 | 一种联盟链节点验证方法 |
CN110430061A (zh) * | 2019-07-19 | 2019-11-08 | 东南大学 | 一种基于区块链技术的车联网设备身份认证方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113888168A (zh) * | 2020-07-03 | 2022-01-04 | 支付宝(杭州)信息技术有限公司 | 联盟链的共识方法、数据校验方法、装置及系统 |
CN112564960A (zh) * | 2020-12-01 | 2021-03-26 | 浙商银行股份有限公司 | 基于区块链节点中心度弹性调整共识的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110995413B (zh) | 2023-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10674486B2 (en) | System, security and network management using self-organizing communication orbits in distributed networks | |
US7738495B2 (en) | Method of determining a maximum transmission unit value of a network path using transport layer feedback | |
US9602428B2 (en) | Method and apparatus for locality sensitive hash-based load balancing | |
CN101102250A (zh) | 用于自组织网络的分布式散列机制 | |
CN102148854B (zh) | 对等节点共享流量识别方法和装置 | |
US20070204046A1 (en) | Methods and apparatus for balanced load distribution in wireless switch architecture | |
CN110995413B (zh) | 一种防止伪节点攻击的联盟链共识节点管理方法 | |
WO2020119328A1 (zh) | 数据传输方法、装置、设备及存储介质 | |
US9332053B2 (en) | Methods, systems, and computer readable media for load balancing stream control transmission protocol (SCTP) messages | |
US20170302474A1 (en) | Network as Service Service Cross-Domain Orchestration Method, Orchestration Device, and Control Device | |
WO2019196562A1 (zh) | 报文处理方法、装置、存储介质及处理器 | |
CN109525678B (zh) | 区块链网络系统以及相应的节点设备发现方法 | |
WO2017012471A1 (zh) | 负载均衡处理方法及装置 | |
US20080247393A1 (en) | Methods and systems for using a link management interface to distribute information in a communications network | |
US20170222998A1 (en) | Network service header used to relay authenticated session information | |
WO2021164236A1 (zh) | 报文的处理方法及装置 | |
WO2014029287A1 (zh) | 隧道负荷分担方法及装置 | |
CN107786684B (zh) | 一种移动自组网地址自动分配协议在ns2中的模拟仿真方法 | |
CN107278364B (zh) | 节点认证方法及节点认证系统 | |
CN111064729B (zh) | 报文的处理方法及装置、存储介质和电子装置 | |
CN109040323B (zh) | 负载均衡装置 | |
CN110995609A (zh) | 报文发送方法、装置、电子设备及存储介质 | |
CN112468363B (zh) | 一种链路连通性检测的方法及装置 | |
CN110611678B (zh) | 一种识别报文的方法及接入网设备 | |
CN107124361A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |