Improved Proof of Authority Consensus Based on Verifiable Random Functions
宇 周 · Computer Science and Application · 2021
权威证明(Proof of Authority, PoA)共识算法中的领导节点需要提出和确认区块,针对该算法中领导节点选取容易导致权威节点公开易遭受攻击、权威节点不能变更等问题,提出一种基于可验证随机函数领导节点随机选取和动态变更权威节点的可验证权威证明(Verifiable Proof of Authority, VPoA)改进算法。首先,改进PoA共识算法中领导节点的选取方法,在所有权威节点集合中随机选取一个领导节点,其他节点可以验证该领导节点的身份,但无法预知下一阶段中的领导节点,防止权威节点的公开被攻击。其次,PoA中其他节点不经过验证直接接受新区块,VPoA在共识流程中改进区块接收阶段,可以通过投票验证区块的有效性,防止领导节点作恶的情况。此外,VPoA实现节点状态动态变更,即可以通过已参与共识的权威节点来投票决定新节点加入和恶意节点的移除。最后实现了VPoA方案,并进行了实验和安全分析,结果表明VPoA共识改进方案能够正确有效随机选取领导节点,提供稳定的区块出块时间,实现区块链网络共识的一致性。 Proof of Authority (PoA) needs leader node to propose block and confirm block. The selection of leader node may expose the authorities, which is vulnerable to attacks and result in the authorities cannot be updated. In this paper, we propose a Verifiable Proof of Authority (VPoA) algorithm based on Verifiable Random Function, aiming to dynamic update the leader node. Firstly, a leader node is randomly selected from the set of all authorities, which can prevent the publicity of authorities from being attacked. The other nodes can verify the identity of the leader node, but they cannot predict the leader node in the next phase. Secondly, other nodes in PoA directly accept new blocks without verification. VPoA adds a Block Acceptance phase to the consensus process, which can verify the validity of the block by voting to prevent the leader node from conducting evil. In addition, VPoA realizes the dynamic change of node status, that is, authority nodes can determine adding new nodes and deleting malicious nodes. Finally, we implement the VPoA and conduct experiments and security analysis. The VPoA consensus can correctly and effectively select the leader node randomly, ensure a stable block generation time, and achieve the consensus of the blockchain network.