CN110995413B - 一种防止伪节点攻击的联盟链共识节点管理方法 - Google Patents

一种防止伪节点攻击的联盟链共识节点管理方法 Download PDF

Info

Publication number
CN110995413B
CN110995413B CN201911234593.7A CN201911234593A CN110995413B CN 110995413 B CN110995413 B CN 110995413B CN 201911234593 A CN201911234593 A CN 201911234593A CN 110995413 B CN110995413 B CN 110995413B
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.)
Active
Application number
CN201911234593.7A
Other languages
English (en)
Other versions
CN110995413A (zh
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.)
Hangzhou Qulian Technology Co Ltd
Original Assignee
Hangzhou Qulian Technology Co Ltd
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 Hangzhou Qulian Technology Co Ltd filed Critical Hangzhou Qulian Technology Co Ltd
Priority to CN201911234593.7A priority Critical patent/CN110995413B/zh
Publication of CN110995413A publication Critical patent/CN110995413A/zh
Application granted granted Critical
Publication of CN110995413B publication Critical patent/CN110995413B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/06Cryptographic 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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

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,从而加快该查找过程。
CN201911234593.7A 2019-12-05 2019-12-05 一种防止伪节点攻击的联盟链共识节点管理方法 Active CN110995413B (zh)

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 CN110995413A (zh) 2020-04-10
CN110995413B true 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)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112564960B (zh) * 2020-12-01 2022-05-13 浙商银行股份有限公司 基于区块链节点中心度弹性调整共识的方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106789920A (zh) * 2016-11-25 2017-05-31 深圳前海微众银行股份有限公司 区块链的节点连接方法及装置
CN108616362A (zh) * 2018-04-16 2018-10-02 广州杰赛科技股份有限公司 投票信息生成方法和装置
CN108933804A (zh) * 2017-05-26 2018-12-04 中移物联网有限公司 一种对等网络构建方法和装置
CN109495246A (zh) * 2018-11-20 2019-03-19 王建新 一种联盟链节点验证方法
CN110430061A (zh) * 2019-07-19 2019-11-08 东南大学 一种基于区块链技术的车联网设备身份认证方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7373509B2 (en) * 2003-12-31 2008-05-13 Intel Corporation Multi-authentication for a computing device connecting to a network
CN107196842B (zh) * 2016-03-14 2020-07-14 阿里巴巴集团控股有限公司 消息防伪的实现方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 东南大学 一种基于区块链技术的车联网设备身份认证方法

Also Published As

Publication number Publication date
CN110995413A (zh) 2020-04-10

Similar Documents

Publication Publication Date Title
US7738495B2 (en) Method of determining a maximum transmission unit value of a network path using transport layer feedback
US9871781B2 (en) Systems and methods for path maximum transmission unit discovery
US20190007316A1 (en) Controller for software defined network
US8386637B2 (en) Connection forwarding
US7890637B1 (en) Secure communications in a system having multi-homed devices
US20070204046A1 (en) Methods and apparatus for balanced load distribution in wireless switch architecture
WO2015114473A1 (en) Method and apparatus for locality sensitive hash-based load balancing
CN105704030A (zh) 用于基于距离的兴趣转发的系统和方法
CN110351388B (zh) 一种基于物联网络架构系统的应用方法
CN109525678B (zh) 区块链网络系统以及相应的节点设备发现方法
US9332053B2 (en) Methods, systems, and computer readable media for load balancing stream control transmission protocol (SCTP) messages
CN111327650A (zh) 数据传输方法、装置、设备及存储介质
US20060045131A1 (en) Method, system, and computer program product for remote storage and discovery of a path maximum transmission unit value on a network
CN110677397A (zh) 基于dpdk下的nat转发数据的方法
CN110995413B (zh) 一种防止伪节点攻击的联盟链共识节点管理方法
CN106375355B (zh) 负载均衡处理方法及装置
US8117305B2 (en) Communication management system, communication management method, and communication control device
CN110708383B (zh) 区块链节点的网络连接方法及相关设备
CN109040323B (zh) 负载均衡装置
CN110995609A (zh) 报文发送方法、装置、电子设备及存储介质
US20030101279A1 (en) Method for transferring messages along optimally redundant network paths in a distributed communication network
CN112468363B (zh) 一种链路连通性检测的方法及装置
WO2021164236A1 (zh) 报文的处理方法及装置
CN108574615B (zh) 一种基于多路径mptcp的内容传输方法、设备及系统
CN110611678B (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