最新论文笔记(+15):Redactable Blockchain Protocols with Instant Redaction /IACR Cryptol.ePrint Arch 2021
Redactable Blockchain Protocols with Instant Redaction(具有即时编辑功能的可编辑区块链)
这篇文章是今年放在IACR Cryptol.ePrint Arch上的一篇区块链相关论文,总体质量还行,虽然感觉有些不足,但也有有很多学习的地方。
主要内容是:在许多场景下,区块链的immutability(不可变性)同样带来了许多弊端。例如,存储一些非法数据在链上将带来诸多挑战。因此,本文设计了一种可编辑区块链构造的通用协议,该协议在无授权设置下可即时编辑,并在基于PoS和PoW共识区块链进行了实例化。最后,为编辑协议开发了一个概念验证(Proof of Concept, PoC)实现和应用该协议,实验表明较高的效率,引起的开销也很小。
下面将大致按照文章结构内容,并结合自己读后的学习笔记进行梳理和归纳,可能会有整理不当的地方,仅代表个人理解,详细内容还是建议看原文!
- 原文链接:Redactable Blockchain Protocols with Instant Redaction
(长文警告,本篇大约1.6w个字,谨慎阅读!)
文章目录预览
- Redactable Blockchain Protocols with Instant Redaction(具有即时编辑功能的可编辑区块链)
- 文章主要贡献:
- 一、写作背景
- 二、 主要内容
- 2.1 传统(不可变)区块链
- 2.1.1 基本特征概述:
- 2.1.2 三个重要的安全属性(后面安全性证明需要用到):
- 2.2 可编辑区块链协议
- 2.2.1 可编辑区块链概述:
- 2.2.2 具体步骤:<font color=red size=4>(此处根据自身的理解,本人想象的画了一张步骤图,供参考)
- 2.2.3 可编辑区块链定义
- 2.3 安全分析(根据自身理解,本人大概描绘了三个证明的思想)
- 2.3.1 证明 ∏ideal\prod_{ideal}∏ideal满足可编辑common prefix。
- 2.3.2 证明 ∏ideal\prod_{ideal}∏ideal满足chain quality。
- 2.3.3 证明∏ideal\prod_{ideal}∏ideal满足chain growth。
- 2.4 实例化
- 2.4.1 可编辑PoS区块链
- 2.4.2 可编辑PoW区块链
- 2.5 实现评估与分析
- 2.5.1 实验一:分析编辑的vote和proof开销
- 2.5.2 实验二:评估编辑proof如何影响共识的性能
- 2.5.3 实验三:验证已编辑区块链的额外成本
- 三、结论与思考
- 3.1 本文总结
- 3.2 我的思考
文章主要贡献:
- 1)具有即时编辑功能的区块链通用构造方法:
- 第一步,利用通用函数CmtCmtCmt和VerfiyCmtVerfiyCmtVerfiyCmt来随机选举委员会,以确保足够比例的委员会成员是诚实的;
- 第二步,每个委员的候选编辑区块Bj∗B^*_jBj∗的哈希上签名进行投票,若>1/2>1/2>1/2的投票通过,则旧区块BjB_jBj被Bj∗B^*_jBj∗取代。
- 2)基于仿真的可编辑区块链的安全性分析:
- 首次定义了可编辑区块链的理想化功能Ftree\mathcal{F}_{tree}Ftree,它实时跟踪所有有效链;
- 并证明任何real-world协议中成功的攻击都可规约到ideal-world的Ftree\mathcal{F}_{tree}Ftree模型中。
- 3)实例化和性能评估:
- 通过在基于PoS和PoW共识区块链上的通用函数CmtCmtCmt和VerifyCmtVerifyCmtVerifyCmt的具体实例化,证明了本文的方案构造是通用的。
一、写作背景
论文名称 | 作者 / 单位 | 来源 | 年份 | 简要内容 |
---|---|---|---|---|
Redactable Blockchain Protocols with Instant Redaction | Jing Xu et.al (Institute of Software, Chinese Academy of Sciences) | IACR Cryptol.ePrint Arch | 2021 | 本文设计了一种可编辑区块链构造的通用协议,该协议在无授权设置下可即时编辑。 |
(1)首先,要理解为什么要有可编辑区块链的出现?区块链的内容为什么有编辑需求,该如何进行编辑和审查?
论文中提到,由于任何人都可以在无授权设置(可以理解为是公有链,没有访问限制)的区块链中进行写入(上传)数据操作,一些恶意的用户久可能会滥用发布任意的交易消息[40]\textcolor{blue}{[40]}[40]。
- 区块链账本上存储的数据可能是敏感的、有害的或非法的,如侵犯知识产权的资料[28]\textcolor{blue}{[28]}[28]、儿童性侵照片[34]\textcolor{blue}{[34]}[34],它们可能会永远影响人们的生活,并阻碍更广泛的区块链应用。
- 欧盟在2018年发布了数据保护条例(GDPR)[7]\textcolor{blue}{[7]}[7]不再与比特币和以太坊等当前区块链兼容[6]\textcolor{blue}{[6]}[6]记录个人资料。特别是,GDPR将“被遗忘权”规定为关键的数据主体权利。
- 另外,臭名昭著的DAO漏洞被利用时,以太坊的DAO合约[31]\textcolor{blue}{[31]}[31]的缺陷导致360w以太币(约7900w美元)被盗,必须通过硬分叉“回滚”来解决。
(2)其次,目前可编辑区块链的研究现状是怎样的?一些相关工作主要做了那些方面?
论文中提到,有一些不用编辑的方法就是发起硬分叉,这本质上要求所有社区成员进行投票。这样的方法会带来分裂社区的风险,且非常昂贵和缓慢,那么就有几篇可编辑区块链的研究工作。
- 在2017年,Ateniese等[12]\textcolor{blue}{[12]}[12]首次引入了可编辑区块链的概念,该方案使用了带陷门的变色龙函数(Chameleon Hash)(变色龙哈希函数的详细介绍)来代替了内层的普通抗碰撞哈希函数,而外层还是普通的哈希函数。带陷门的用户可以计算任意输入数据的哈希碰撞,而不知道陷门的用户则变色龙哈希与传统哈希函数一样具有抗碰撞性。该方案从而可以不改变外层哈希函数H、不破坏哈希链路完整性的情况下,实现对区块内容的修改。
- 在2019年,Derler等[20]\textcolor{blue}{[20]}[20]提出了一种基于策略的变色龙哈希函数的细粒度可控编辑机制,任何拥有足够特权满足策略的人都可以找到给定哈希的碰撞。他们的解决方案关注于授权设置,而在非授权设置中,没有单个可信实体,用户可以随时加入和离开系统,因此在共享陷门密钥时,他们的解决方案将面临可伸缩性问题。
- 在2017年,Puddu等[39]\textcolor{blue}{[39]}[39]提出了μ\muμ链,交易发送方可对交易不同版本加密,用解密密钥在矿工之间秘密共享。收到编辑请求时,先根据交易发送方制定的编辑策略进行检测,然后通过执行多方计算协议算出相应的解密密钥,最后对该密钥解密。然而,建立编辑策略的恶意用户可能会逃避编辑,甚至会由于交易之间的影响而破坏交易的稳定性。此外,μ\muμ链采用多方计算协议重建解密密钥也面临可扩展问题。
- 在2019年,Deuber等[21]\textcolor{blue}{[21]}[21]在无权限设置中提出了第一个可编辑区块链协议,该协议不依赖繁重的加密协议或额外的信任假设。一旦用户提出修订,协议就开始一个基于共识的投票期,只有在获得足够的投票批准修订后,版本才在区块链上执行。每个用户都可查看链上的投票数来验证一个编辑填是否被批准。
- 最近,Thyagarajan等[42]\textcolor{blue}{[42]}[42]提出了一个称为Reparo的通用协议,用于在任何区块链上执行编辑,其中区块结构通过引入外部数据结构来存储区块内容保持不变。然而,他们的投票周期很长,实例化中需要1024个连续的区块,大约7天时间来确认和发布一个编辑区块。
最后,该论文依据上面的分析,提出设计了一种具有即时编辑的可编辑区块链协议!
该篇论文提出在无授权设置中,让受信任的一方持特定的陷门来修改链区块似乎是不合理的。因此,需要选取一个委员会共同决定。且论文指出编辑至少会与委员会规模大小T和底层区块链区块生成时间t呈线性关系。委员会规模要大,确保诚实的委员居多。论文的目标实现即时的可编辑功能,这意味着编辑链要像底层链一样快。
下面我们看下协议的具体设计。
二、 主要内容
2.1 传统(不可变)区块链
2.1.1 基本特征概述:
- nnn个参与方P1,P2,...,PnP_1,P_2,...,P_nP1,P2,...,Pn拥有公私钥对(pki,ski)(pk_i, sk_i)(pki,ski)
- slots:表示协议执行被划分的时间单位(记住,在本文中挺重要的,方便理解)
- chainchainchain:表示链,由一个个区块组成,即chain:={B0,B1,B2,...Bm}chain:=\{B_0,B_1,B_2,...B_m\}chain:={B0,B1,B2,...Bm}
- Bj:=(headerj,dj)B_j:=(header_j, d_j)Bj:=(headerj,dj):表示区块;
- headerj=(slj,stj,G(dj),πj)header_j=(sl_j, st_j, G(d_j), \pi_j)headerj=(slj,stj,G(dj),πj):表示区块头信息
- djd_jdj:表示区块数据
- slj∈{sl1,...,slR}sl_j\in \{sl_1,..., sl_R\}slj∈{sl1,...,slR}:表示slots的序号
- stjst_jstj:表示前一个区块头的哈希值,即H(headerj−1)H(header_{j-1})H(headerj−1)
- G(dj)G(d_j)G(dj):表示区块数据的状态(实验中表示区块数据的Merkle root)
- πj\pi_jπj:表示包含区块的一些特殊头数据(例如在PoS中,表示在生成区块slot 领导者下用密钥计算出的签名(slj,stj,G(dj))(sl_j,st_j,G(d_j))(slj,stj,G(dj)),在PoW中,表示谜题的nonce)
2.1.2 三个重要的安全属性(后面安全性证明需要用到):
- 1)Common prefix(公共前缀):要求所有诚实参与方的链是相同的,确认后无法编辑;
- 2)Chain quality(链质量):限制敌手的贡献,即大多数诚实方贡献;
- 3)Chain growth(链增长):有效性,随时可以上传数据上链。
2.2 可编辑区块链协议
2.2.1 可编辑区块链概述:
- 链chain更新:表示为chain∗=chain∣∣B∗chain^*=chain||B^*chain∗=chain∣∣B∗,区块结构与不可变区块链类似,区块头信息增加了一个ibibib,即headerj=(slj,stj,G(dj),ibj,πj)header_j=(sl_j,st_j, G(d_j),ib_j,\pi_j)headerj=(slj,stj,G(dj),ibj,πj).
- Bj∗B^*_jBj∗:表示第jjj个候选编辑区块。
- ibibib:表示区块的原始状态。为了维护编辑区块和它相邻区块的关系,将ibibib代表区块的初始和未编辑状态。例如,若在编辑区块B=(header,d)B=(header, d)B=(header,d)中还是原区块数据d0d_0d0,则ib=G(d0)ib=G(d_0)ib=G(d0),其中header=(sl,st,G(d),ib,π)header=(sl,st,G(d),ib,\pi )header=(sl,st,G(d),ib,π)。
Definition3.1Definition 3.1Definition3.1(编辑策略RP\mathcal{R} \mathcal{P}RP):如果编辑区块B∗B^*B∗在投票期限内,投票数大于阈值(根据环境不同可动态调整),则表示在序号slslsl的slot上的编辑区块B∗B^*B∗满足编辑策略RP\mathcal{R} \mathcal{P}RP,即RP(chain,B∗,sl)=1\mathcal{R} \mathcal{P}(chain, B^*,sl)=1RP(chain,B∗,sl)=1。
2.2.2 具体步骤:(此处根据自身的理解,本人想象的画了一张步骤图,供参考)
- 1)提出编辑请求:若参与方PiP_iPi想将编辑区块Bj∗=(headerj∗,dj∗)B^*_j=(header^*_j,d^*_j)Bj∗=(headerj∗,dj∗)上链,先将Bj∗B^*_jBj∗编辑请求广播至网络,其中headerj∗=(slj,stj,G(dj∗),ibj,πj)header^*_j=(sl_j,st_j,G(d^*_j),ib_j,\pi_j)headerj∗=(slj,stj,G(dj∗),ibj,πj),若他想移除BjB_jBj的所有数据,则dj∗d^*_jdj∗是可以是空数据。
- 2)更新编辑池:从网络中接收到Bj∗B^*_jBj∗后,每个参与方PiP_iPi首先验证Bj∗B^*_jBj∗是否是一个有效的候选编辑区块,若是,则将其存储在自身的编辑池EP\mathcal{E} \mathcal{P}EP中。每个编辑池EP\mathcal{E} \mathcal{P}EP中的候选编辑区块都有一个有效期tpt_ptp。在每个新slot的开始,每个参与方PiP_iPi试图更新自己的编辑池EP\mathcal{E} \mathcal{P}EP。特别地
- PiP_iPi检查 Bj∗B^*_jBj∗有没有过期,如果过期了则删除它;
- PiP_iPi计算编辑策略RP(chain,Bj∗,slj)\mathcal{R} \mathcal{P}(chain, B^*_j,sl_j)RP(chain,Bj∗,slj),如果输出1(感觉应该是输出0吧),则PiP_iPi删除Bj∗B^*_jBj∗。
- 3)对Bj∗B^*_jBj∗投票:对于在EP\mathcal{E} \mathcal{P}EP中的每个候选编辑区块Bj∗B^*_jBj∗,PiP_iPi检查他在当前投票期间是否有投票权(这点没理解,他自己检查自己吗?),这是由Cmt(chain,[sl′ω]∗ω,Pi,para)Cmt(chain, [\frac{sl'}{\omega}]*\omega, P_i, para)Cmt(chain,[ωsl′]∗ω,Pi,para)([ ] 代表向下取整,公式不会打…),其中sl′sl'sl′是当前slot,[sl′ω]∗ω[\frac{sl'}{\omega}]*\omega[ωsl′]∗ω表示当前投票期间的第一个slot。如果输出(c,proof)(c, proof)(c,proof)且c≠0c\neq 0c=0,PiP_iPi广播(c,proof)(c, proof)(c,proof)并附上H(Bj∗)H(B^*_j)H(Bj∗)的签名sigsigsig,即投票。
- 4)提出新区块:如果他的编辑池是空的,则序号sl′sl'sl′的slot中的leader以不可变链相同方式创建一个区块并广播至chain。此外,对于在编辑池中的候选编辑区块Bj∗B^*_jBj∗,leader试图用子协议collectVotecollectVotecollectVote(这个算法后面会介绍)收集并验证投票期间内Bj∗B^*_jBj∗的选票。如果在sl′sl'sl′slot中的collectVotecollectVotecollectVote返回vote-proof,则leader将其添加到他的区块数据中,创建一个新区块并广播到chain。
- 5)编辑区块:对于在编辑池EP\mathcal{E} \mathcal{P}EP中的每个候选区块Bj∗B^*_jBj∗,用户检查是否RP(chain,Bj∗,slj)=1\mathcal{R} \mathcal{P}(chain, B^*_j,sl_j)=1RP(chain,Bj∗,slj)=1,如果是,则将链上的BjB_jBj替换成Bj∗B^*_jBj∗,并从EP\mathcal{E} \mathcal{P}EP中删除Bj∗B^*_jBj∗。
2.2.3 可编辑区块链定义
此小节,作者定义了几个算法,包括validateBlockvalidateBlockvalidateBlock、validateChainvalidateChainvalidateChain和validateCandvalidateCandvalidateCand,以及collectVotecollectVotecollectVote。
- 1) 有效区块(AlgorithmAlgorithmAlgorithm 1):首先根据系统规则检查区块B包含的数据的有效性,然后通过合适的函数检查leader的有效性,最后用leader的公钥验证签名π\piπ或验证PoW中谜题随机数π\piπ。
- 2) 有效链(AlgorithmAlgorithmAlgorithm 2):为了验证区块链chain,算法2首先检查每个区块BjB_jBj的有效性,然后检查它与前一个区块Bj−1B_{j-1}Bj−1的关系,它有两种情况,取决于Bj−1B_{j-1}Bj−1是否是一个编辑过的区块。如果Bj−1B_{j-1}Bj−1已编辑完成(即stj≠H(headerj−1)st_j\neq H(header_{j-1})stj=H(headerj−1),它的检查取决于是否满足编辑策略RP\mathcal{R} \mathcal{P}RP。当且仅当算法2输出1时,我们就说chain是有效的链。
- 3) 有效候选编辑区块(AlgorithmAlgorithmAlgorithm 3):为了验证区块链chain上第jjj个区块的候选编辑区块Bj∗B^*_jBj∗,算法3首先检查Bj∗B^*_jBj∗的有效性,然后检查Bj−1B_{j-1}Bj−1和Bj+1B_{j+1}Bj+1的链接关系,其中与Bj+1B_{j+1}Bj+1的链接是“old“(如stj=H(slj,stj,ibj,ibj,πj)st_j=H(sl_j,st_j,ib_j,ib_j,\pi_j)stj=H(slj,stj,ibj,ibj,πj))。当且仅当算法输出1时,我们就说Bj∗B^*_jBj∗是一个有效的候选编辑区块。
下面将介绍collectVotecollectVotecollectVote负责收集和验证在(sl,sl+ω−1)(sl, sl+\omega -1)(sl,sl+ω−1) slots内的选票,并将其存储在缓冲器msgsmsgsmsgs中。大致的步骤如下:
- 通过编辑策略RP\mathcal{R} \mathcal{P}RP检查H(Bj∗)H(B^*_j)H(Bj∗)的投票数,如果它满足编辑策略,则停止收集,否则开始验证投票;
- 用投票人的公钥验证H(Bj∗)H(B^*_j)H(Bj∗)上的签名,并由VerifyCmt(chain,sl,c,proof,para′)VerifyCmt(chain, sl, c, proof, para')VerifyCmt(chain,sl,c,proof,para′)确认投票人投票的正确性和投票数ccc;
- 算法生成一个对所有有效签名SIGSIGSIG的聚合签名asigjasig_jasigj,聚合相关的证明PROOFPROOFPROOF,并返回它们;
- 聚合签名可以降低区块链的通信复杂性和存储开销。
2.3 安全分析(根据自身理解,本人大概描绘了三个证明的思想)
除了common prefix之外,可编辑区块链的安全属性与不可变区块链的安全属性基本相同,下面将依次证明这三个属性的安全性。
由于编辑操作可知,本协议本质上已经不满足common prefix的原始定义(上面2.1.2节).具体来说考虑到参与方P1P_1P1和P2P_2P2分别在sl1,sl2sl_1, sl_2sl1,sl2 slot上是诚实的,且sl1<sl2sl_1<sl_2sl1<sl2。对于一个候选区块Bj∗B^*_jBj∗替换原始区块BjB_jBj,后者投票结果被公布在slslsl slot中,且sl1<sl<sl2sl_1<sl<sl_2sl1<sl<sl2。在chainP1sl1(view)chain^{sl_1}_{P_1}(view)chainP1sl1(view)中还没有提出编辑请求,但可能已经在chainP2sl2(view)chain^{sl_2}_{P_2}(view)chainP2sl2(view)中生效。对于这样的结果,在chainP1sl1(view)chain^{sl_1}_{P_1}(view)chainP1sl1(view)中的原始BjB_jBj保持不变,但它在chainP2sl2(view)chain^{sl_2}_{P_2}(view)chainP2sl2(view)中被替换成为候选Bj∗B^*_jBj∗。
为此,引入一个可扩展协议,称为可编辑common prefix,并考虑每个编辑操作的效果,它适合于可编辑区块链。如下定义:
Definition4.1Definition 4.1Definition4.1:(可编辑common prefix)如果对于所有(A,Z)(\mathcal{A},\mathcal{Z})(A,Z),存在一个可忽略的函数neglneglnegl,使得对每个足够大的λ∈N\lambda \in Nλ∈N和每个k≥k0k\geq k_0k≥k0都成立,我们就说该区块链协议∏\prod∏满足 k0k_0k0-可编辑common prefix:
Pr[view←EXEC∏(A,Z,λ):redactprefixk(view)=1]≥1−negl(λ)Pr[view\leftarrow EXEC^{\prod}(\mathcal{A},\mathcal{Z},\lambda):redactprefix^k(view)=1]\geq 1-negl(\lambda)Pr[view←EXEC∏(A,Z,λ):redactprefixk(view)=1]≥1−negl(λ)
其中AAA表示敌手,ZZZ表示环境。
接下来,根据以上这个定义,其证明路线为:
1)先考虑ideal-world协议∏ideal\prod_{ideal}∏ideal可以访问一个理想化功能Ftree\mathcal{F}_{tree}Ftree,并满足三个安全属性。
2)再展示了real-world协议安全地模拟了∏ideal\prod_{ideal}∏ideal。(这里就不再叙述,建议看原文)
2.3.1 证明 ∏ideal\prod_{ideal}∏ideal满足可编辑common prefix。
证明:假设存在Bj∗B^*_jBj∗的prefix与其他诚实方的链不相等,它必须根据ideal协议获得足够选票,则编辑策略RP\mathcal{R} \mathcal{P}RP得到满足,即∏ideal\prod_{ideal}∏ideal满足k0k_0k0-可编校common prefix。
2.3.2 证明 ∏ideal\prod_{ideal}∏ideal满足chain quality。
证明:假设将BjB_jBj替换成恶意的Bj∗B^*_jBj∗,敌手增加链中恶意区块的比例,以打破chain quality属性。然而根据ideal协议,编辑区块只当票数超过敌对委员数时才被采用,即∏ideal\prod_{ideal}∏ideal满足chain quality。
2.3.3 证明∏ideal\prod_{ideal}∏ideal满足chain growth。
证明:根据ideal协议,任何编辑操作不改变链长度(不删除区块),且新区块上链不受投票影响,即∏ideal\prod_{ideal}∏ideal满足chain growth。
2.4 实例化
假设S为系统总权益,T为投票委员会的预期权益数,委员会中诚实用户的权益至少为n。委员会成员只在每个投票期间的第一个slot 上选出(sl,sl+w−1)(sl, sl+w-1)(sl,sl+w−1)之间的slslsl,可以根据具体网络环境设置www,保证在www slots之后所有用户都能以更大概率收到选票。
2.4.1 可编辑PoS区块链
1)检查委员会成员Cmt:Cmt函数用私钥skisk_iski和权益sis_isi检查PiP_iPi是否在slot slslsl中的委员会成员和输出(c,proof)(c,proof)(c,proof),如算法4。首先,Cmt函数用VRF以私有或非交互的方式去随机选择投票人;为了选择投票人与他们的权益成比例,把每个单位的stake看作是不同的子用户,用sis_isi表示。且每个单位的选择概率为p=TSp=\frac TSp=ST,S为系统总stakes,T为委员会预期stakes值,而子用户sis_isi中选择qqq的概率服从二项分布B(q;si,p)=C(si,q)pq(1−p)si−qB(q;s_i,p)=C(s_i,q)p^q(1-p)^{s_i-q}B(q;si,p)=C(si,q)pq(1−p)si−q,其中C(si,q)=si!q!(si−q)!C(s_i,q)=\frac {s_i!}{q!(s_i-q)!}C(si,q)=q!(si−q)!si!且∑q=0siB(q;si,p)=1\sum^{s_i}_{q=0}B(q;s_i,p)=1∑q=0siB(q;si,p)=1。为了确定参与方中子用户有多少,算法从IcI^cIc中将区间[0,1)[0, 1)[0,1)划分为连续区间。若hash2hashlen\frac{hash}{2^{hashlen}}2hashlenhash落在IcI^cIc内,意味着PiP_iPi的ccc个子用户(c个投票)被选中,其中hashlenhashlenhashlen表示哈希的bit长度。
2)验证委员会成员VerifyCmt:算法5中函数VerifyCmt用PiP_iPi的公钥pkipk_ipki和proof验证PiP_iPi是权重为c的委员。它首先用VerifyVRFpki(hash,π,seed∣∣sl)VerifyVRF_{pk_i}(hash,\pi,seed||sl)VerifyVRFpki(hash,π,seed∣∣sl)验证proof,然后验证hash2hashlen\frac{hash}{2^{hashlen}}2hashlenhash落在区间IcI^cIc。
3)参数选择:如前面所述,将每个权益的单元视为不同的“sub-user”,例如,若用户UiU_iUi有sis_isi个权益则他有sis_isi个单元。当提出修订建议时,将从所有子用户中选出一个投票委员会。委员会的预期人数T是固定的,并且子用户被选中的概率为TS\frac{T}{S}ST。然后准确抽取K个子用户的概率为:P=CSKρSK(1−ρS)S−K=S⋯(S−K+1)TKSKTKK!(1−TS)(S−K)P=C^K_S\rho^K_S(1-\rho_S)^{S-K}=\frac{S\cdots(S-K+1)T^K}{S^K}\frac{T^K}{K!}(1-\frac{T}{S})^{(S-K)}P=CSKρSK(1−ρS)S−K=SKS⋯(S−K+1)TKK!TK(1−ST)(S−K)
若K为定值,有limS→∞S⋯(S−K+1)SK=1\lim_{S\to \infty}\frac{S\cdots(S-K+1)}{S^K}=1limS→∞SKS⋯(S−K+1)=1和limS→∞(1−TS)(S−K)=e−T\lim_{S\to \infty}(1-\frac{T}{S})^{(S-K)}=e^{-T}limS→∞(1−ST)(S−K)=e−T,则概率逼近
P=TKK!e−TP=\frac{T^K}{K!}e^{-T}P=K!TKe−T
用#good和#bad分别表示委员会中诚实和恶意的成员数。假设大多数是诚实的,则满足以下条件。- #good≥1/2⋅Tgood\geq 1/2·Tgood≥1/2⋅T,当诚实委员数达到<1/2时,违反了这个条件。由上面公式可知,正好抽K个诚实委员的概率是(h⋅T)KK!e−h⋅T\frac{(h·T)^K}{K!}e^{-h·T}K!(h⋅T)Ke−h⋅T,其中h(h>1/2)h(h>1/2)h(h>1/2)是系统中诚实的持股比例。因此,违反这条件的概率为;
∑K=0T/2−1(hT)KK!e−hT(1)\sum_{K=0}^{T/2-1}\frac{(hT)^K}{K!}e^{-hT} \qquad \qquad \qquad \qquad \qquad \qquad \qquad(1)K=0∑T/2−1K!(hT)Ke−hT(1) - #bad<1/2⋅Tbad<1/2·Tbad<1/2⋅T。由上可知,我们抽取L个恶意委员会成员的概率为((1−h)T)LL!e−(1−h)T\frac{((1-h)T)^L}{L!}e^{-(1-h)T}L!((1−h)T)Le−(1−h)T。因此,满足条件的概率由公式给出为:
∑L=0T/2−1((1−h)T)LK!e−(1−h)T(2)\sum_{L=0}^{T/2-1}\frac{((1-h)T)^L}{K!}e^{-(1-h)T} \qquad \qquad \qquad \qquad \qquad \qquad \qquad(2)L=0∑T/2−1K!((1−h)T)Le−(1−h)T(2)
FFF是参数,它标志着两种情况的失败概率可以忽略不计,根据经验设置为F=5∗10−9F=5*10^{-9}F=5∗10−9我们目标是最小化TTT,同时保持上面公式(1)或(2)的概率不超过F。如果TTT的某个值以1−F1-F1−F的概率满足这两个条件,那么任何较大的TTT的值也以至少1−F1-F1−F的概率满足。基于上述观察,为了找到最优的TTT,首先令TTT任意大的值,例如10410^4104,然后检查是否满足这两个条件,若满足两个条件则减小T(此处应该不满足则减小T,论文写错了吧),再检查,持续这个过程,直到两个条件都满足。
在本文的系统实现中,我们假设诚实风险的比例为0.65,因此我们选择
最新论文笔记(+15):Redactable Blockchain Protocols with Instant Redaction /IACR Cryptol.ePrint Arch 2021相关推荐
- 最新论文笔记(+14):精选12篇区块链与可搜索加密相结合论文进行汇总与概括
精选12篇区块链与可搜索加密相结合的论文 本篇博文将汇总12篇区块链与可搜索加密相结合的论文,包括之前已经发布的几篇"最新论文笔记"和还未上传的几篇论文笔记(感觉大都差不多就不再详 ...
- 最新论文笔记(+16):K-Time Modifiable and Epoch-Based Redactable Blockchain / TIFS 2021
K-Time Modifiable and Epoch-Based Redactable Blockchain(k次修改和基于epoch的可编辑区块链) 这篇文章是今年发表在TIFS上的一篇区块链相关 ...
- 最新论文笔记(+13):Hardening Distributed and Encrypted Keyword Search via Blockchain / PAC2017
Hardening Distributed and Encrypted Keyword Search via Blockchain(通过区块链进行分布式加密关键字搜索) 鉴于前面好几篇都是可搜索加密与 ...
- 最新论文笔记(+21):Privacy-Preserving Byzantine-Robust Federated Learning via Blockchain Systems/ TIFS2022
Privacy-Preserving Byzantine-Robust Federated Learning via Blockchain Systems 可译为"利用区块链实现隐私保护的拜 ...
- 最新论文笔记(+20):Biscotti_ A Blockchain System for Private and Secure Federated Learning / TPDS21
Biscotti: A Blockchain System for Private and Secure Federated Learning"译为"Biscotti:一个用于隐私 ...
- 最新论文笔记(+1):Towards Secure Industrial IoT: Blockchain System with Credit-Based Consensus Mechanism
Towards Secure Industrial IoT: Blockchain System with Credit-Based Consensus Mechanism(面向安全工业物联网:基于信 ...
- 最新论文笔记(+17):Policy-based Chameleon Hash for Blockchain Rewriting with Black-box Accountability/ACSAC
Policy-based Chameleon Hash for Blockchain Rewriting with Black-box Accountability (基于策略的变色龙哈希和具有黑盒问 ...
- 最新论文笔记(+11):Privacy-Preserving Searchable Encryption Framework for Permissioned Blockchain Networks
Privacy-Preserving Searchable Encryption Framework for Permissioned Blockchain Networks(用于许可区块链网络的隐私 ...
- 【论文笔记15】以太坊智能合约去中心化的链上数据访问
原文作者:Mohd Sameen Chishti , Farhan Sufyan , and Amit Banerjee , Member , IEEE* 原文标题:Decentralized On- ...
最新文章
- 记录值上调10_「阴阳师」10月16日维护更新公告,海国迷踪,迷影重重
- 7 pe系统安装_【软件课程之家】PE系统安装教程
- bnpparibas
- 决策树准确率低原因_智能质检优化实践:召回率和准确率,哪个更重要?
- HTTPS 工作原理和 TCP 握手机制
- 打击诈骗,逻辑回归闪亮登场
- Android 升级到android studio 2.2项目死活run不起来
- nginx配置文件中参数的作用
- 【Flink】Flink 单个任务 多个流的消费同一个topic的时候其中一个流卡死 不消费
- [Web Chart系列之五] 3. 实战draw2d 之图形填充色(纯色 or 渐变)
- react-native 之 redux 与 react-redux
- mysql去除重复的数据
- android 锁屏应用,推荐几款好用的安卓(Android)手机锁屏软件
- php的implode函数的作用是,PHP函数implode介绍
- 建设工程管理系统(二)
- 使用canvas绘制太极
- MySQL优化系列3-Linux查看CPU、内存、磁盘、网络信息
- uniapp和vue实现打开手机前置摄像头和相机的方法
- HelpingKind.org:一个有偿的市场
- matlab与flightGear联合仿真
热门文章
- #good≥1/2⋅Tgood\geq 1/2·Tgood≥1/2⋅T,当诚实委员数达到<1/2时,违反了这个条件。由上面公式可知,正好抽K个诚实委员的概率是(h⋅T)KK!e−h⋅T\frac{(h·T)^K}{K!}e^{-h·T}K!(h⋅T)Ke−h⋅T,其中h(h>1/2)h(h>1/2)h(h>1/2)是系统中诚实的持股比例。因此,违反这条件的概率为;