0%

scheme_design

梳理思路,设计方案

模型定义

  • 定义方案需要满足的性质
    • 安全性
      • 链增长
      • 链质量
      • 公共前缀
  • 定义编辑操作的正确性:不被通过的编辑请求是恶意的,即投票通过的编辑是合法的;具体表现包括
    • 不修改金融数据
    • [LMW23]定义的编辑正确性:An honest block modified by the adversary without the approval of the committee is malicious.
  • 腐化模型:t-温和敌手:是指敌手腐化一个节点需要一定的时间来完成. 敌手发布对目标节点的腐化指令, 经过t时间后, 目标节点被腐化, 受到敌手的控制, 成为恶意节点. 在实施腐化的t 时间内, 节点仍然属于诚实节点. 温和敌手是区块链协议分析中经常采用的腐化模型.

  • 敌手模型:$n=2f+1$

    • [JCH22]的方案要求门限值$t>n/4$

    • [LMW23]如何确定委员会大小n,如何选举第一个委员会的成员(pow)

  • 网络模型:同步网络,存在已知的最大时延$\delta$

  • 追责性:

    • 节点$P_i$发起编辑请求,所有节点收到后投票发送给委员会:

      • 投票不通过
        • 不执行,追责发起编辑的人以及投赞成票的人
      • 投票通过
        • 执行编辑之后,其他区块验证编辑不符合格式,追责编辑节点(领导者)
      • 记录发起编辑申请,扣除保证金
    • 惩罚投票阶段发送虚假份额的节点

  • 公平性:

    • 任何节点$P_i$可以通过发起编辑申请,缴纳保证金请求编辑,公平参与性

    • 编辑权由编辑者掌握

      • 编辑者的选择依赖于委员会选择,委员会内可验证随机函数最小值(√)
      • 投票就是密钥份额,超过门限直接执行(√)
      • 恢复密钥阶段
        • 每个节点都有份额(√)
        • 委员会成员有份额
      • 委员会选择的方法:相对简单的Pow
        • 节点为什么要加入委员会,设计激励制度,执行编辑操作,获得手续费
  • 为什么要设计委员会

    • 委员会成员进行变色龙哈希函数的密钥生成(√)
    • 收集编辑请求,同意之后发出编辑的交易(√)
    • 委员会内选举领导者,执行编辑(√)
    • 委员会的大小,先定死
  • 委员会内投票还是所有节点参与投票

    • 委员会内投票:需要考虑委员会成员的安全性
    • 所有节点投票,投票周期长,更加公平,超过门限就可以(√)
      • 门限是否设置为50%,保证安全性但是可能没有这么多节点在线

协议流程

选择委员会

委员会大小$t$

计算PoW $H(ini_ran|PK|IP|nonce)\leq 2^{-D}$,D是困难系数

委员会内领导者选举采用VRF

分布式密钥生成

暂定使用JCH22的方案

image-20230316153823400

收集编辑请求

任何节点$P_i$想要修改区块$B_j$内的第$k$个交易,正常发起交易(上链后才能编辑),支付交易费和保证金

委员会节点打包交易发现有编辑交易后,在委员会内部发送编辑请求$req=(height,last_hash’,addr_{tx},tx,m_root,seq)$

委员会节点向所有全节点广播编辑请求,同意编辑的全节点向委员会返回$(ID(P_i),sig(P_i,seq),seq)$

委员会收集投票总数sum,$sum>0.5n$且$sum>t$则恢复密钥,执行编辑

执行编辑

领导者生成区块$B_j$编辑后的区块$B^\star_j$,头部修改为$(prev_hash,last_hash’,acc)$,acc是更新后RSA累加器的值

节点验证编辑并更新本地链

验证出块者是否在委员会内,是否为领导者

检查是否为合法区块

委员会更新

更新,类似于定期执行$(t,n)\to(t’,n’)$秘密分享

问题

  • (已完成)JCH22在收集编辑请求过程中存在重放攻击,增加序列号
  • [未实现]委员会内的领导者隐藏身份,直到出块时在区块头增加出块者的身份
  • 委员会的epoch设置为敌手腐化委员会成员需要的时间即可
  • 为什么不使用公开可验证的秘密分享:采用公钥加密和零知识证明,导致效率更低;安全性上不参与秘密重构的人理应无权投诉。

论文问题

  • 形式化撰写困难问题

后续可以研究的问题

  • 安全性
    • 保护领导者身份,委员会的环签名,如何追踪领导者作恶
    • 密钥过期问题
      • 如果不更新,存在曾经的密钥份额也可以恢复现在的秘密的情况(需要获得上一轮至少t个份额)
      • 定期更新s,重新进行dkg即可
      • 投票结果是否放在链上
    • 领导者作恶无法生成有效的编辑区块

可参考的架构图

image-20230404102733511

image-20230331115108870

image-20230331115138133