Page 406 - 《软件学报》2026年第4期
P. 406
徐易 等: 基于真实源地址验证的轻量共识机制 1847
HMAC) 技术, 以支持 IP 地址身份验证. HMAC 采用对称密钥对哈希值进行加密, 能确保共识消息的完整性, 同时
也满足身份验证的需求. 整个轻量化共识过程中的节点行为可以分为两类: 共识消息发送和共识消息接收.
传统共识过程: 基于公私钥验证节点身份 轻量共识过程: 使用 HMAC 支持 IP 地址身份验证
共识消息 共识消息 共识消息 共识消息
发送方 接收方 发送方 接收方
公钥获取 对称密钥协商
密钥选择:
对称密钥
取代
非对称公私钥
共识消息收发 共识消息收发
计算哈希: hash=hash(data) 查询对称密钥: key=search(IP des )
签名: sig=sign(hash, key pri ) 计算 HMAC: hmac=HMAC(data, key)
message(data, hash, sig) message(data, hash, sig)
身份验证:
HMAC 支持的 IP 地址身份验证
查询公钥: key pub =search(IP sro ) 取代 查询对称密钥: key=search(IP src )
验证签名: verify(sig, key pub ) 基于哈希和签名的身份验证 验证 HMAC: verify(data, hmac, key)
验证哈希: verify(data, hash)
图 4 轻量共识过程中节点行为示意图
共识消息发送: 为降低发送共识消息的通信与计算开销, 在发送共识消息时, 本文框架结合 IP 地址和 HMAC,
在共识消息中附加节点身份信息. 具体而言, 发送共识消息时, 共识节点首先根据目标节点的 IP 地址, 通过密钥维
护模块查看“对称密钥-地址域”对应表, 判断目标节点是否为信任联盟内可信地址域的下级地址. 如果目标节点在
信任联盟内, 共识节点将使用接收方所在地址域对应的对称密钥, 对共识消息内容生成 HMAC, 并将其附加到消
息中发送. 如果目标节点不在信任联盟内, 共识节点则遵循传统共识过程的身份验证流程, 对消息内容进行哈希计
算和签名后发送共识消息.
共识消息接收: 在接收共识消息时, 本文框架根据共识消息中附带的 HMAC, 通过对称密钥验证源节点所在
地址域, 并根据 IP 地址验证源节点身份. 具体而言, 在接收到共识消息后, 共识节点首先根据消息的源 IP 地址, 通
过密钥维护模块的“对称密钥-地址域”对应表查找该地址, 判断消息源节点是否为网络信任联盟内地址域的下级
地址. 如果源节点在信任联盟内, 共识节点将使用源节点所在地址域对应的对称密钥, 对共识消息中的 HMAC 进
行验证; 验证通过后, 根据共识消息源地址进一步确认源节点身份. 如果源节点不在信任联盟内, 共识节点将遵循
传统基于非对称加密的身份验证流程, 对消息中的签名进行验证.
为确保消息完整性, 同时降低验证开销, 本文框架在生成消息的哈希值时采用密钥关联的 HMAC. 具体而
言, 在 HMAC 生成过程中, 发送方会根据密钥维护模块分发的“对称密钥-地址域”对应关系, 将收发双方所在地
址域协商的对称密钥输入到 HMAC 计算过程中, 确保生成的 HMAC 含有该密钥信息, 从而支持身份验证的功
能. 在 HMAC 验证过程中, 接收方会使用相同的对称密钥进行 HMAC 计算, 并对比生成的 HMAC 值与消息中
附带的 HMAC 值, 以验证双方密钥的一致性及消息的完整性, 从而完成身份验证. 由于信任联盟内地址域之间
的对称密钥是独立协商生成的, 任意两个地址域之间的对称密钥均唯一且互不共享. 这种“对称密钥-地址域”对
应关系的唯一性能显著降低节点身份验证的复杂度, 同时确保共识消息的可靠性和安全性, 从而实现轻量化共
识过程.
6 安全性分析
本节对所提出的轻量共识框架进行安全性分析. 共识机制的目的是让所有诚实的共识节点达成一致, 因而共
识机制的安全性在于确保共识过程和结果的一致性和有效性. 为了保证二者的一致性和有效性, 进而确保共识过

