• 共识算法涉及的概念


    通信复杂度

    在这里插入图片描述
    大家可以发现网络消息数从O(NN)下降到O(N),但因为每个prepareQC包含2f + 1 签名,所以通信量复杂度还是O(NN)。

    密码学的进步:包含2f + 1 签名信息的prepareQC,使用门限签名,使得占用空间降至O(1),整个通信量复杂度下降到O(N)

    通信模型

    通信模型定义了对手延迟消息的权力限制,有三种基本通信模型:同步模型、异步模型和部分同步模型。

    • 同步模型:假定最大的网络延时T,得设置比较大(min级别?)。因为实际情况,网络可以出问题,而解决问题可能几分钟,也可能几小时,甚至几天。

    • 异步模型: 网络时延无保证,网络是无法保证达成共识的,著名的FLP定理
      -半异步模型: partial synchronous model,上面两个模型的折中也叫部分同步,网络可能处于异步状态,但是GST(global stable time)后会进入同步状态
      大部分共识算法都是基于半同步模型,这也符合实际情况,可以参考下文。
      https://decentralizedthoughts.github.io/2019-06-01-2019-5-31-models/

    响应性(Responsiveness)

    一旦网络进入同步状态,好的leader以实际网络延时的速度,达成共识。
    也叫做(Optimistic) Responsiveness乐观响应性,我觉得也比较直观。就是网络达到同步状态(GST)后,即解决了所有网络问题后,真正干完活所需的时间和实际网络延迟一致。类似于要搬1000块砖,现在砖也准备好了,人也吃饱喝足了,那么假定一分钟搬10块砖,100分钟就能搬完。
    (Optimistic) Responsiveness After GST, any correct leader, once designated, needs to wait just for the first (n−f) responses to guarantee that it can create a proposal that will make progress. “As fast as the network propagates, on a good day”

    安全性(safety)

    坏事情永远不发生,即所有的好节点不可能提交(commit)相冲突的数据
    注意区别密码学的security,这个概念其实和共识算法无关,区块链中的security是通过密码学保证。

    活性(liveness)

    只要系统网络进入同步状态,系统最终都能达成新共识。
    区块链中就是链的高度会增长,不断出新块。

    参考链接https://blog.csdn.net/wenyuanhust/article/details/125495449

  • 相关阅读:
    【数据结构】【C语言】【环形链表约瑟夫问题】
    C语言入门课程学习笔记2
    用Python画只三脚猫,不忍直视!
    南大通用GBase8s 常用SQL语句(282)
    Error in render: “TypeError: data.slice is not a function“
    计算机网络复习总结6
    数据结构之队列的实现(附源码)
    Playwright的基本使用
    适用于一切模型的决策曲线分析DCA
    3-D HANet:一种用于目标检测的柔性三维 HeatMap 辅助网络
  • 原文地址:https://blog.csdn.net/weixin_42918559/article/details/126153633