03 Blockchain Reputation-Based Consensus: A Scalable and Resilient Mechanism for Distributed Mistrusting Applications
每个矿工都由随机选择的陪审团监控,陪审团根据网络要求的信任阈值评估矿工的声誉。 挖矿不是基于竞争,矿工循环序列。分叉概率小,发生分叉用Ethereum GHOST解决
实验结果【p30】 验证时间: 6-13ms 均值 9.789ms 挖矿时间:两个块时间戳的差值 在 0-12s 均值5.462s 表明:相同大小的网络时,模拟器与私有区块链网络表现相似。
访问控制,我们从三个方面评估了节点数量增加时的网络性能:节点进入网络的时间、节点成为矿工的时间以及执行控制事务的开销。 (M矿工数量,N节点数量)
1.访问控制 (t1 申请访问的时间戳) 1)新用户生成一对非对称密钥(sk,pk)。密钥用于对网络上的节点操作进行签名,公钥用作节点标识和节点地址。因此,必须通过以下入口事务将PKI发送到网络
2)一名矿工验证 (t2 同意加入的时间戳)
3)所有节点将新节点的公钥添加到标识密钥列表中,新节点作为公共节点加入网络,然后公共节点可以请求访问区块链的全部内容并生成交易。
2.矿工选择<最佳1/3 *N全网节点数> (t4 验证成为矿工的时间戳) 矿工是所有节点的一部分(按比例),期待 根据成熟度标准选择“老结点”(长时间表现好)
3.陪审团选择(1/4 * N 全网节点数) 每一个矿工都有一个陪审团去监控和判断。 用不可逆的伪随机的选择陪审团【Bloom Filter】 m bits 和 hash functions 1个 hash函数 映射向量中1个 1 的位置,不同的哈希函数可能会映射到相同的向量位置。 假阳性 先对矿工的公钥hash, 前m bits 填充到bloom filter 表中 对node的公钥hash,判断是否在 miner 的 bloom filter 中
4.矿工监测 node 监测 miner ,并对其打分。 miner 的公钥 添加到 trust table中,初始分R0 = T(阀值) 奖励 和 惩罚的 分值 是一个难点
5 驱逐恶意矿工 (t5 投票签名的时间戳) 1)judge 弄得 发起投票交易 2)投票交易被验证和挖掘 3)全网删除恶意节点的key 信誉分低于阀值 投票驱逐
半数以上人同意就可驱逐。最后一个同意的judge将 驱逐意见打包成块,当块被挖掘时,所有结点移除被驱逐结点的地址,丢弃它的公钥。
最后一个judge没有发布驱逐交易,就由倒数第二的jusge发布,以此类推。重新加入时,从node做起。
评估 1.矿工循环序列,通过 t4 (成为矿工的时间)确定序列顺序。每个矿工被分配到一个步骤。因此同步循环。 当一个新步骤开始,该步骤中的矿工(leader)必须验证新块并广播。用时间上限保证活跃性。除了当前的leader,序列中的下一个矿工可以在每个步骤中提出新块。每个miner只能提出一个块的M * 2/3 步,避免恶意矿工产生不规则块,M是miners数量因此,同时最多有M/3个miners allowed 同propose a block 为了避免分叉,①非leader 提出的块被随机延迟②leader发布的块评分更高
安全性分析: 1.51%攻击。 (攻击者注册51%用户,必须等待,直到她的节点根据成熟度标准成为矿工。期间正常节点也可能成为矿工,这就需要攻击者引入更多节点。产生恶意行为后要继续作为矿工,必须控制一半以上的法官,法官是随机选择的,这就要求攻击者几乎控制网络中所有节点。) 2.自私矿工攻击稳健性<让攻击者成为恶意矿工,选择要挖掘的交易,并在其挖掘回合中忽略其他交易。> (由于矿工之间的采矿轮换,攻击必须持续一轮。轮换中的下一个合法矿工将开采最古老的交易。一旦确定一名自私的矿工,法官将惩罚她的名誉和/或投票驱逐袭击者。) 3.Eclipse attack soundness 4.双花攻击 (矿工循环序列) 5.拒绝服务攻击 (时限) 6.模拟攻击<嫁祸> (获取其他矿工私钥难,尝试获取私钥及篡改块的transactions会被记录) 7.selection of judges attack soundness<维护特定miner声誉> (成功概率呈指数增长) 8.审查员投票或驱逐攻击可靠性 (挖矿频率3/M,确保控制51%miners 几乎不可能) 9.驱逐值得信赖的矿工攻击
|