1.一种基于异构环境下委托股份证明协议的安全共识方法,其特征在于,包含以下步骤:
步骤1:节点注册得到普通节点,通过检查权益得到权益持有者节点;注册节点扫描得到权益持有者节点的名单跟证人候选者节点的名单;查询地址,得到发送空白选票的确认;
添加数据项,得到空白选票;注册节点通过扫描方法,扫描权益持有者节点的基本信息得到权益持有者节点的名单,将其发送给计票节点;
步骤2:权益持有者节点通过投票的方式,选择证人候选者节点的名单中的一个证人候选者节点,结果是其中的一个证人候选者节点被投票选中,得到填充数据项完整的选票;权益持有者节点得到一个生成的签名后,将发送该签名跟选票给计票节点;
步骤3:计票节点通过处理选票的方法处理重复的选票、无效的选票得到计票的结果;
根据计票的结果,公布此选票结果、选票跟签名选票跟签名副本;
步骤4:根据区块构建区块链。
2.根据权利要求1所述的基于异构环境下委托股份证明协议的安全共识方法,其特征在于:
步骤1所述节点注册得到普通节点,通过检查权益得到权益持有者节点,具体为:在P2P网络中注册后成为一个普通节点;通过判断Token的方法,根据普通节点的Token大于0,决定角色转化为权益持有者节点,从而得到权益持有者节点;其中,Token表示权益;
步骤1所述注册节点扫描得到证人候选者节点的名单,具体为:注册节点通过扫描方法,扫描证人候选者节点的信息后得到证人候选者节点的名单ListW;其中,ListW表示证人候选者节点的名单;
步骤1所述添加数据项,具体为:
权益持有者节点通过添加数据项的方法,将ListW添加到权益持有者节点生成的空白选票的数据结构中,得到包含ListW的电子选票;其中,ListW表示证人候选者节点的名单;
步骤1所述空白选票,具体为:
权益持有者节点发送自己的Address给注册节点;注册节点通过查询权益持有者节点的Token方法来判断是否发送空白选票,若Token大于0,发送空白选票;否则,不发送;其中,Address表示权益持有者节点的地址,Token表示权益;
步骤1所述权益持有者节点的名单为ListS。
3.根据权利要求1所述的基于异构环境下委托股份证明协议的安全共识方法,其特征在于:
所述步骤2具体如下:
步骤2.1:权益持有者节点利用自己手中的空白电子选票,选择一个证人候选者节点,设置状态位为1,系统自动生成时间戳,得到填充数据项完整的选票;
步骤2.2:权益持有者节点利用公钥以及权益持有者节点的私钥生成一个签名后,将发送该签名跟选票即(s,Ballot)给计票节点;
其中,Ballot表示数据项填充完整的电子选票;
其中,s=(σ,m)表示权益持有者节点生成的签名,σ=sig(PKS,SKS,PKC)表示权益持有者节点生成的签名的第一部分,m表示权益持有者节点生成的签名的第二部分。
4.根据权利要求1所述的基于异构环境下委托股份证明协议的安全共识方法,其特征在于:
步骤3所述计票节点通过处理选票的方法处理重复和无效的选票,具体如下:计票节点通过对选票的统计结果按照票数高低进行排序,得到排序后的统计结果,选出此排序结果中的前N个证人候选者节点作为证人节点;其中,N表示证人节点的个数;
计票节点验证权益持有者节点的签名的有效性,根据权益持有者节点的签名s,s=(σ,m),σ=Sig(PKS,SKS,PKC)是否通过验证作为判断依据;根据签名验证是否通过,判断签名是否由权益持有者生成;
若验证成功,签名是由权益持有者节点生成;若验证失败,签名不是由S生成;结果是签名的真实性得到验证;其中,s=(σ,m)表示权益持有者节点生成的签名,σ=sig(PKS,SKS,PKC)表示权益持有者节点生成的签名的第一部分,m表示权益持有者节点生成的签名的第二部分;
步骤3所述根据计票的结果,公布此选票结果、选票跟签名选票跟签名副本,具体为:签名验证成功后,计票节点根据权益持有者节点的权重计算,得到总的计票数;
统计选票结束后,计票节点公开计票结果,投票过程的选票和签名,选票连同签名副本;得到公开的计票结果,投票过程的选票和签名,选票连同签名副本。
5.根据权利要求1所述的基于异构环境下委托股份证明协议的安全共识方法,其特征在于:
步骤4所述根据区块构建区块链,具体如下:步骤4.1:将证人节点按照一个顺序排列,得到一个排序后的证人节点;
步骤4.2:在规定的时间内,每个证人按照顺序参与生产区块时,得到一个区块,否则,顺序后的第二个证人节点参与生产区块,得到一个区块;
步骤4.3:步骤4.2生产得到的区块按照顺序传递给下一个证人节点,被超过2/3的证人节点确认后,得到不可逆转区块,也叫做上链区块。