1.一种基于智能合约的区块链贡献证明共识方法,其特征在于,包括:
基于智能合约,根据节点在区块链系统中的操作行为,为所述节点计算并分配系统贡献值和应用贡献值,其中,所述系统贡献值为根据所述节点参与维护所述区块链系统的操作行为分配得到,所述应用贡献值为根据所述节点调用所述区块链系统部署的应用合约的配置参数进行分配;
根据参与共识的候选节点在上一周期的贡献值和/或代币的质押数量进行加权计算,根据各候选节点的权值进行离线VRF抽签计算,并根据抽签结果选举得到委员会节点;
根据节点的贡献值和/或代币的质押者、质押方式和质押数量的比例进行分配奖励,同时对未积极完成共识出块任务的节点所质押的贡献值和/或代币进行扣押惩罚;
所述根据节点在区块链系统中的操作行为为所述节点计算并分配系统贡献值的具体过程包括:根据节点为新加入的候选验证节点或新的应用注册进行提议和投票的操作行为,在投票结束时为参与投票的节点增加贡献值;
根据节点为候选节点质押代币的操作行为,当候选节点被选举为出块节点并完成出块后,为质押节点增加贡献值;
针对同步所有数据的节点,根据每个周期生成的存储证明进行计算并提交存储证明结果,出块节点在出块时,对提交的存储证明结果进行验证,并为提交节点计算贡献值;
针对参与共识的候选节点,计算VRF进行抽签并提交计算结果,出块节点在出块时,对提交的计算结果进行验证,并为提交节点计算贡献值;
所述根据节点在区块链系统中的操作行为为所述节点计算并分配应用贡献值的具体过程包括:统计节点调用的所述区块链系统上部署的应用合约,根据所述应用合约注册过程对应的应用注册合约中的配置参数,对调用所述应用合约的节点分配所述配置参数对应的贡献值。
2.根据权利要求1所述的基于智能合约的区块链贡献证明共识方法,其特征在于,所述候选节点为达到预设质押条件的参与共识的节点,所述委员会节点根据预设出块时间进行出块,根据预设的周期重新选举委员会节点;
出块节点完成出块后,质押贡献值的节点获得本次区块中的代币手续费,质押代币的节点获得预设数量的贡献值。
3.根据权利要求1或2所述的基于智能合约的区块链贡献证明共识方法,其特征在于,所述智能合约包括投票合约、提议合约、共识节点管理合约、应用数据合约、质押合约、贡献值管理合约、存储证明合约、VRF抽签合约、奖励合约和惩罚合约。
4.一种基于智能合约的区块链贡献证明共识系统,其特征在于,应用如权利要求1至3中任一项所述的基于智能合约的区块链贡献证明共识方法,包括:贡献值管理模块,用于基于智能合约,根据节点在区块链系统中的操作行为,为所述节点计算并分配系统贡献值和应用贡献值;
委员会选举模块,用于根据参与共识的候选节点在上一周期的贡献值和/或代币的质押数量进行加权计算,根据各候选节点的权值进行离线VRF抽签计算,并根据抽签结果选举得到委员会节点;
节点奖惩模块,用于根据节点的贡献值和/或代币的质押者、质押方式和质押数量的比例进行分配奖励,同时对未积极完成共识出块任务的节点所质押的贡献值和/或代币进行扣押惩罚;
所述贡献值管理模块具体用于:
根据节点为新加入的候选验证节点或新的应用注册进行提议和投票的操作行为,在投票结束时为参与投票的节点增加贡献值;
根据节点为候选节点质押代币的操作行为,当候选节点被选举为出块节点并完成出块后,为质押节点增加贡献值;
针对同步所有数据的节点,根据每个周期生成的存储证明进行计算并提交存储证明结果,出块节点在出块时,对提交的存储证明结果进行验证,并为提交节点计算贡献值;
针对参与共识的候选节点,计算VRF进行抽签并提交计算结果,出块节点在出块时,对提交的计算结果进行验证,并为提交节点计算贡献值;
所述贡献值管理模块还用于:
统计节点调用的所述区块链系统上部署的应用合约,根据所述应用合约注册过程对应的应用注册合约中的配置参数,对调用所述应用合约的节点分配所述配置参数对应的贡献值。
5.根据权利要求4所述的基于智能合约的区块链贡献证明共识系统,其特征在于,所述候选节点为达到预设质押条件的参与共识的节点,所述委员会节点根据预设出块时间进行出块,根据预设的周期重新选举委员会节点;
出块节点完成出块后,质押贡献值的节点获得本次区块中的代币手续费,质押代币的节点获得预设数量的贡献值。
6.根据权利要求4或5所述的基于智能合约的区块链贡献证明共识系统,其特征在于,所述智能合约包括投票合约、提议合约、共识节点管理合约、应用数据合约、质押合约、贡献值管理合约、存储证明合约、VRF抽签合约、奖励合约和惩罚合约。