区块链论文实验部分
实验设计-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个结点,每个结点进行一个函数的解码,然后合并
- 其他结点进行验证。
信誉
TRA
- 最普通累加型:
- 全由最高的值进行,去中心化程度最低
- 基于普通的sigmoid函数的非累加性,最高值会聚集,
- 当最高位只有一个的时候,会造成连任。(比如有一个被暂时)
- 如果设置的成长时间过长,区中心化程度次低
- sigmoid的考察时间设计长一点
- 如果设置的考察时间过
- 引入一个
- x:历史的评价分数
实验写作
- 分类分群(地理位置 HLOChain)
- 编码链
- 动态共识
- 介绍PBFT,领导者选取——信誉值方案
- 该机制将数据放置问题集成到领导者选择中,以实现公平的策略和高QoS的数据存储 https://ieeexplore.ieee.org/abstract/document/9786743
- https://www.sciencedirect.com/science/article/pii/S2096720923000301 # ULS-PBFT: An ultra-low storage overhead PBFT consensus for blockchain
- 本文提出了一种基于信誉驱动的区块链动态节点安全分片共识模型(RDSCM)https://www.mdpi.com/1999-4893/15/2/28
- https://www.sciencedirect.com/science/article/pii/S2405959522001655 声誉机制区块链
评论
本文评论已经关闭且暂不可见😕