实验设计-1129

存储

存储开销

  • 对比指标:存储空间开销随着结点数目增长的变换
  • 对比项目
    • 最普通的方案:全存储
    • Paritition
    • LBFT
    • 我的
  • 预期:结点数目<15之前,我的最好,之后partition最好,我的略差。

查询效率(查询时间)

  • 对比指标:客户端查询一个信息所耗费的时间或者相同时间内可以受理客户端的查询请求数目(吞吐量
  • 对比项目
    • Paritition:因为每次都要逆编码,所以很差
    • LBFT
    • 我的:大部分情况无需逆编码
  • 预期:我的最好

共识:验证信誉值方案的设计合理性

  • 对比指标:各个结点区块生成分布情况+基尼系数(衡量中心化程度)
  • 对比项目:
    • 最普通的大众方案:信誉值累加
    • TRA:《Trusted resource allocation based on proof‑of‑reputation consensus mechanism for edge computing》——采用sigmoid函数拟合信誉值
    • 我的方案
  • 参数设置:
    • 6个旧结点(No.1-No.6)【已经有信誉值积累】,3个新结点(No.7-No.9)【初始信誉值为0】
    • 其中1个旧结点(1)会在运行小段时间后短时间作为拜占庭结点,随后被解除控制
    • 其中1个旧结点(2)会在运行过程中长时间作为拜占庭结点,
    • 其中1个新结点(7)会在一开始就加入,且是好结点
    • 其中1个新结点(8)会在一段时间后加入,且是好结点
    • 其中1个新结点(9)会在一段时间后加入,加入后一段时间后作为拜占庭结点
  • 实验预期
    • 最普通的方案:
      • 仅2-6结点会一直生成区块,集中化
      • 新节点无法追赶
      • 基尼系数最差
    • TRA:
      • 2-6结点+7+8结点会生成区块
      • 3-8结点的信誉值一直在最高点。
      • 1虽然作恶后被接触控制,但是因为其信誉值快速下降,因此没有办法恢复安全性
      • 8-9是因为其成长的时间是静态的,所以成长起来后无法充分考察,因此9会作恶。
      • 基尼系数中
    • 我的
      • 预期 1+(3-6)+7+8会生成区块
      • 9号结点不会出块,因为考察时间是动态的调整的。
      • 基尼系数最好

  • 存储+查询性能实验

    • 存储开销(在小结点的情况下,应该比partition略微好一点点;在大结点数目情况下,比partition略差)
    • 查询时间(能够比partition高比较多)

    • 对照组

      • 全存储(每个结点存储完整区块、不分片,最传统的方案)
      • partition方案《PartitionChain: A Scalable and Reliable Data Storage Strategy for Permissioned Blockchain》(冗余值和原始数据都完全分片,但是查询效率会比较低)
        • 论文的方案是基于他改的,他的存储开销很小,但是查询效率比较低
      • 我的方案(原始数据分片但是冗余值并不完全分片,存储效率可能比partition方案相似,但是查询效率相对partition比较高)
    • 实验预期
      • 查询时间:我≈全存储<< partition
      • 存储开销:我<partition<< 全存储
  • 共识层面

    • 找实验理论
    • 新节点加入可以快速纳入共识+防止连任
      • 使用奖励函数前 20 个节点生成区块分布更均匀
      • 基尼系数(Gini coefficient)是衡量不平等程度的一种统计指标,表示各节点之间产生区块数量的不平等
    • 恢复安全性可以恢复
      • 验证在一定时间后可以重新纳入候选群体
    • 吞吐量?

      • 对照组
        • 方案1:信誉值纯累加形势,最传统的方案
        • 方案2:《Trusted resource allocation based on proof-of-reputation consensus mechanism for edge computing》
        • 方案3:我
    • 实验预期
      • 生成区块的分布均匀情况、基尼系数:我(更均匀,更好)>方案2》方案1

指标

  • 存储开销

    • 理论分析
      • 首先n栋楼,统一长度后的每一栋楼的数据长度为T,每个结点存储空间大小为——
      • 全存储$nT$
      • partition::$\frac{nT}{n-2f}$=3T(原始论文写的)
      • LBFT: 不好算,但是比partition存储性能差不多
      • 我们的开销:T+(fT)/(n/(f+1))=
        • $T+(\frac{\frac{fT}{1}}{\frac{n}{f+1}})=T+\frac{T(f^2+f)}{n}$
        • $(T\frac{f^2+f+n}{n})≈(\frac{4}{3}+\frac{1}{9}n)T$
        • 在楼宇结点数量为15之前效果更好。
        • 如果结点数目大于15可以进行进一步的分层。
          $(n,n+f)$
          (c,n)-RS
  • 查询时间(或者查询吞吐量)

    • 理论分析(查询计算复杂度)【编码复杂度相同】

      • 全存储 $O(1)$
      • partition 查询计算复杂度$O(r·(\frac{T}{(r)(n-2f)})^2(n-2f)^3)$ =$Tcn^2$=$T\frac{T}{r(n-2f)}n^2=\frac{9T^2n}{r}$【一级分片分成r片】(n-2f,n)-RS
      • 考虑一级分片的情况下:$O((\frac{T}{r})^2N^3)=T^2(N-2f)$

      • LBFT $O((\frac{T}{(c)}^2·c^3))$ =$T^2c$【分成C片K个委员会】(c,n)-RS 【与N无关,常数项】

      • 我们的查询复杂度$O(\frac{n-f}{n}+\frac{f}{n}·(\frac{T}{n})^2DRS(n))$
      • $1-\frac{f}{n}+\frac{f}{n}T^2(n+f)^3$=$\frac{2}{3}+\frac{64}{81}n^2T$
      • $(1-\frac{f}{n}+\frac{f}{n}T^2n)$
      • $(1-\frac{f}{n}+T^2f)$【f一般小于c】
        • 实验预期,一般来说高三倍以上

其他论文方案思路

partition

  • 首先编码:(n-2f,n)-RS
    • 分片分x份(x自己定)——比如定为1,即不进行多次分片了
    • 然后对每个分片再分n-2f
  • 查询的时候,先聚合,然后再聚合完成的数据中查询。

LBFT

  • 分成c
  • 运行(c,n)-RS
  • 解码时:选c* k个结点组成委员会,分成k个委员会、每个委员会c个结点,每个结点进行一个函数的解码,然后合并
  • 其他结点进行验证。
  • LBFT

信誉

TRA

  • 最普通累加型:
    • 全由最高的值进行,去中心化程度最低
  • 基于普通的sigmoid函数的非累加性,最高值会聚集,
    • 当最高位只有一个的时候,会造成连任。(比如有一个被暂时)
    • 如果设置的成长时间过长,区中心化程度次低
    • sigmoid的考察时间设计长一点
    • 如果设置的考察时间过
      • 引入一个
  • x:历史的评价分数

实验写作