摘要:随着物联网的发展, 高效的共识算法是区块链技术应用于物联网的关键. 针对实用拜占庭容错 (practical Byzantine fault tolerance, PBFT)算法在物联网场景中通信次数多、未考虑共识功耗、共识时延高等问题, 本文提出了一种基于二分K均值算法的改进PBFT共识算法(binary K-means practical Byzantine fault tolerance algorithm, BK-PBFT). 首先, 获取节点地理坐标并计算节点综合评价值, 通过二分K均值算法将节点划分为一个双层多中心聚类集群. 然后, 先在下层集群再在上层集群对区块进行PBFT共识. 最后, 集群验证执行并存储区块, 完成共识. 此外, 本文证明了当节点均匀分布在每个簇时算法通信次数可以达到最少, 以及通信次数最少时的最优聚类数. 分析与仿真结果表明, 本文算法可以有效减少通信次数、降低共识功耗和共识时延.