三生区块链 三生区块链
首页
  • 🔗 浅说区块链

    • 什么是区块链
    • 区块链运行机制
    • 共识机制解析
    • 区块链应用类型
    • 区块链与数字货币
    • 体验数字货币
    • 区块链的误区
    • 主流区块链项目
  • 💰 数字货币与资产

    • 比特币专题(一)
    • 比特币专题(二)
    • 数字货币与资产
    • 数字货币交易平台(一)
    • 数字货币交易平台(二)
  • 🌐 区块链与互联网

    • 互联网与区块链身份
    • 区块链即服务BaaS
    • 数字货币钱包服务
    • 区块链与供应链(一)
    • 区块链与供应链(二)
  • 🚀 如何从业

    • 区块链从业指南
    • 搭建迷你区块链(设计篇)
应用
  • 🛠 基础概念

    • 技术基础
    • 哈希与加密算法
    • UTXO与普通账户模型
    • 去中心化与区块链交易性能
  • 🔗 区块链类型与项目

    • 区块链项目详解:比特股BTS
    • 引人瞩目的区块链项目:EOS、IOTA、Cardano
    • 国内区块链项目技术一览
  • 🔐 加密与安全

    • P2P网络
    • 共识算法与分布式一致性算法
    • PoW共识
    • PoS
    • DPos
  • 💻 开发与实践

    • 智能合约与以太坊
    • 搭建一条属于自己的智能合约
  • 🔄 联盟链

    • 联盟链和它的困境
行业动态
  • 摘抄收录

    • ☆ 励志鸡汤
    • ❀ 人间烟火
    • ☣ 万物沦丧
    • ✌ 关掉烦恼
    • ✲ 小酒馆
  • 读书笔记

    • 《小狗钱钱》
    • 《穷爸爸富爸爸》
    • 《聪明人使用方格笔记本》
  • 📚 学习
  • 💡 心情杂货
  • 🔗 友情链接
关于
  • 🌐 网站
  • 📦 资源
  • 📂 分类
  • 🏷 标签
  • 📅 归档

三生

区块链小菜鸟(✪ω✪)
首页
  • 🔗 浅说区块链

    • 什么是区块链
    • 区块链运行机制
    • 共识机制解析
    • 区块链应用类型
    • 区块链与数字货币
    • 体验数字货币
    • 区块链的误区
    • 主流区块链项目
  • 💰 数字货币与资产

    • 比特币专题(一)
    • 比特币专题(二)
    • 数字货币与资产
    • 数字货币交易平台(一)
    • 数字货币交易平台(二)
  • 🌐 区块链与互联网

    • 互联网与区块链身份
    • 区块链即服务BaaS
    • 数字货币钱包服务
    • 区块链与供应链(一)
    • 区块链与供应链(二)
  • 🚀 如何从业

    • 区块链从业指南
    • 搭建迷你区块链(设计篇)
应用
  • 🛠 基础概念

    • 技术基础
    • 哈希与加密算法
    • UTXO与普通账户模型
    • 去中心化与区块链交易性能
  • 🔗 区块链类型与项目

    • 区块链项目详解:比特股BTS
    • 引人瞩目的区块链项目:EOS、IOTA、Cardano
    • 国内区块链项目技术一览
  • 🔐 加密与安全

    • P2P网络
    • 共识算法与分布式一致性算法
    • PoW共识
    • PoS
    • DPos
  • 💻 开发与实践

    • 智能合约与以太坊
    • 搭建一条属于自己的智能合约
  • 🔄 联盟链

    • 联盟链和它的困境
行业动态
  • 摘抄收录

    • ☆ 励志鸡汤
    • ❀ 人间烟火
    • ☣ 万物沦丧
    • ✌ 关掉烦恼
    • ✲ 小酒馆
  • 读书笔记

    • 《小狗钱钱》
    • 《穷爸爸富爸爸》
    • 《聪明人使用方格笔记本》
  • 📚 学习
  • 💡 心情杂货
  • 🔗 友情链接
关于
  • 🌐 网站
  • 📦 资源
  • 📂 分类
  • 🏷 标签
  • 📅 归档
  • 深入区块链技术

    • 深入区块链技术(一):技术基础
    • 深入区块链技术(二):P2P 网络
    • 深入区块链技术(三):共识算法与分布式一致性算法
      • 🎉相亲大会与分布式系统的奇妙之旅
        • 💌从相亲大会说起:分布式系统的模型
        • 🤔分布式系统面临的问题
        • 🚀共识机制的实现
        • 🎉结语
    • 深入区块链技术(四):PoW 共识
    • 深入区块链技术(五):PoS 共识机制
    • 深入区块链技术(六):DPoS 共识机制
    • 深入区块链技术(七):哈希与加密算法
    • 深入区块链技术(八): UTXO 与普通账户模型
    • 去中心化与区块链交易性能
    • 智能合约与以太坊
    • 上手搭建一条自己的智能合约
    • 区块链项目详解:比特股 BTS
    • 引人瞩目的区块链项目:EOS、IOTA、Cardano
    • 国内区块链项目技术一览
    • 联盟链和它的困境
  • 技术
  • 深入区块链技术
三生
2023-09-27

深入区块链技术(三):共识算法与分布式一致性算法

# 探长三生的区块链奇遇记 🕵️‍♂️🚀

嗨,亲爱的区块链探险家们,我是你们的老朋友——探长三生!今天,我们将一起探讨一个看似晦涩却又扣人心弦的话题——共识机制!🚀🧠

# 🎉相亲大会与分布式系统的奇妙之旅

在我们之前的篇章“浅说区块链共识机制”中,我们已经探讨了共识机制的一些基础概念。但这个话题实在是个大宝藏,一篇文章怎么可能挖掘得完呢?

今天,我们将把焦点放在技术的脉络上,详细分析的部分会稍微少一些。如果你对共识算法的奥秘感兴趣,欢迎自行探索更多内容,或者与其他的资料进行相互补充的阅读。

# 💌从相亲大会说起:分布式系统的模型

区块链,这个我们熟悉的分布式系统,我们将从这个概念开始探讨。为了让你更轻松地理解分布式系统,我们先来构建一个模型。

记得我们在“浅说区块链共识机制”中提到的那个村庄举办相亲大会的例子吗?让我们再回顾一下。

  • 大村子分成了11个小村落,散布在地图的各个角落;
  • 一只信鸽可能无法完全覆盖所有村落,需要中继村落来传输消息;
  • 相亲大会的举办权会为村子带来巨大收益,为了产生合理的举办者,人们约定了几条规则:
    • 大会举办权从A和B两个村子中产生,他们每一届都是候选村;
    • 所有村子会为了举办权都会使出浑身解数,比如延迟发送投票结果、篡改别人的投票结果、假装没有接收到通知等等。

这其实是一个典型的分布式系统,可以看作是我们简化版的区块链网络环境。那么,在这个分布式系统中,我们会遇到哪些问题呢?

# 🤔分布式系统面临的问题

分布式系统面临了几个核心问题:一致性问题、可终止性问题、合法性问题。

  • 可终止性:系统必须在有限的时间内给出一致性结果;
  • 合法性:提案必须是系统内的节点提出;
  • 一致性:在分布式系统中,任意节点的提案能够在约定的协议下被其他所有节点所认可。

这里的“认可”表示所有节点对外呈现的信息一致,而不是对信息的内容认可。一致性也分为严格一致性和最终一致性,这些我们稍后会谈到。

我们回到上面的例子,我们提到了所有的村子只能投A或B,这个投票的动作可以理解为提案。在“投票过程被大家所认可”这个语境下,“被大家所认可”表示某个村落投票的结果已经被记录,用于最后统计结果,而不是认可投给A或者投给B。

那我们这里所说的一致性到底体现在哪里呢?

主要体现在下面两种类型的问题上:

  1. 非人为恶意的意外投票过程:例如信鸽半路挂掉、信鸽迷路、信鸽送错目的地、信鸽送信途中下雨导致信件内容模糊、接收信件的人不在家、天气变化信鸽延迟送达等等。这些对应到分布式系统面临的问题就是:消息丢包、网络拥堵、消息延迟、消息内容校验失败、节点宕机等。

  2. 人为恶意篡改投票过程:例如“精神分裂式投票”、中继篡改上一个村落的投票信息。对应到分布式系统面临的问题就是:消息被伪造、系统安全攻击等等。发生的人为恶意篡改的过程就可以称之为系统发生了拜占庭错误(Byzantine Fault)。如果系统可以容忍拜占庭错误而不至于崩溃,也就是在发生系统被恶意篡改的情况下仍然可以达成一致,我们将这样系统称作为做拜占庭容错系统。

问题1我们已经有较成熟的方案了。分布式系统本质上是一种并行异步操作,如果通过中心化的手段将系统中的“并行不确定”操作变更为“同步串行”操作就能解决上述的问题。

比如让第三方机构介入托管所有人的投票;或者构造一个不可伪造令牌,大家轮流投票,每个人投票的时候都要带上这个令牌。这样就能保证投票的过程是同步串行的,也就是说,每个人投票的时候都是在上一个人投票完成之后。

问题2我们可以通过引入拜占庭容错算法来解决。这个算法的核心思想是:在系统中引入一种“投票的投票”机制,也就是说,每个节点在投票的时候,要先看看其他节点的投票情况,然后再决定自己的投票。这样就能保证即便有人恶意篡改投票,也不会影响到最终的投票结果。

# 🚀共识机制的实现

在区块链中,我们采用了多种共识机制来解决上述问题,包括PoW、PoS、DPoS、PBFT等。这些算法在实现上各有千秋,但它们的核心目标都是一样的:在分布式系统中达成一致。

  • PoW(Proof of Work):通过解决数学难题来获取记账权;
  • PoS(Proof of Stake):通过持有货币的多少或者时间来获取记账权;
  • DPoS(Delegated Proof of Stake):通过社区投票来选择记账节点;
  • PBFT(Practical Byzantine Fault Tolerance):通过节点间的投票和验证来达成一致。

这些算法在实现上各有千秋,但它们的核心目标都是一样的:在分布式系统中达成一致。

# 🎉结语

探险家们,我们今天的探险就到这里吧!希望你们在这次的奇遇中找到了乐趣和收获。我们下次再见!🚀🕵️‍♂️

上次更新: 2023/10/09, 1:10:00
深入区块链技术(二):P2P 网络
深入区块链技术(四):PoW 共识

← 深入区块链技术(二):P2P 网络 深入区块链技术(四):PoW 共识 →

最近更新
01
到底什么才是区块链?
10-08
02
区块链的运行机制
10-08
03
费曼学习法
10-08
更多文章>
Theme by Vdoing | Copyright © 2023-2025 三生区块链 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式