区块链中的共识问题

199 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第2天,点击查看活动详情

前言

我们知道区块链是分布式的,存在着很多节点,因为是去中心化,怎么去解决问题,怎么出块,怎么保持每个节点数据都是一样的,那么就涉及到共识问题。

为什么要用共识

首先区块链是运行在一个网络上,这个网络被多个独立节点运行的,每个人都可以加入网络,只要有一个节点在,区块链就能继续运行,节点间可以互相检查。为了要保证区块链的一致性,就得考虑每个节点怎么记账的问题,解决不同节点间,如何交换信息、达成共识的问题。

共识的理解

从大层面上来讲共识机制是为了解决拜占庭将军问题提出的,它是区块链的核心。也就是就某件事或某个交易,在分布式,互不信任的环境中,各参与者之间达成一致的过程。

区块链中的共识机制主要解决的就是分布式账本中,每个节点怎么记账的问题,还有就是不同节点间,如何交换信息、达成共识的问题,即区块链可以在状态和数值上达成一致。

共识的分类

区块链目前主要的共识机制有:

  • POW(Proof of Work)工作量证明
  • POS (Proof of Stake) 权益证明机制;
  • DPoS (Delegated Proof of Stake) 委托权益证明机制;
  • PBFT (Practical Byzantine Fault Tolerance) 实用拜占庭容错;
  • DBFT (Delegated BFT) 授权拜占庭容错算法。

我们前面说的挖矿其实就是一个工作量证明,也可称作挖矿:定义了一种方法,来找到是谁挖出了区块,哪一个节点才是做了运算,然后挖出区块的节点,别的所有节点都可以准确的验证它。

以太坊前三个阶段采用的是POW共识机制,第四个阶段将采用自己创建的POS机制,因为POS只需要一个节点验证,可以提高效率。 还有其他的一些共识,都有不同的复杂性,要想真的理解透,还需要很多时间。

共识算法

共识可以分为工作量证明(pow)、权益证明(pos),

共识协议分为:链的选择算法和抗女巫攻击机制(挖矿即工作量证明)

抗女巫攻击机制是区块链的一种能力,来防止用户使用大量的假身份,在整个系统,来获取超出应有比例的权益和影响力

出块时间是每个区块被发布之间的时间,它和这些算法的难度相关,难题的难度可以被调整,取决于系统想要多长的出块时间。

去中心化网络约定,哪条链有最长,有最多的区块,就用哪条链,这很合理,因为一个链落后的区块越多,就需要越多的计算量来赶上其他链。

其他一些概念

  • 女巫攻击,用户会创建很多的匿名账户,来影响区块链。
  • 51%攻击:如果你有最长的链和51%的网络,那么你就可以分叉区块链,让整个网络使用你的链。
  • 分片:可扩展性问题,指的是多个区块链的区块链,有一个主链会协调一些不同的链,将他们连接在一起,人们可以在多个链上发送交易,很有效率的提高了区块链的空间,分片可以极大的增加在layer1上发送的交易数量。
  • layer1 是区块链实现的基础层,比特币以太坊、avalanche等都是
  • layer2 是加在layer1和区块链上的任何应用,chainlink、arbitrum、 optimism等。layer2和侧链不同,因为侧链的安全性来自于自身协议,roollup的安全性来自于基础层
  • rollup 作为一条链 人们在它上面发交易就相当于在以太坊上发交易。

总结

区块链中的共识模块是很重要的,也相对难度较大,要想真正理解,得花更多的时间去琢磨,但是如果做一些合约开发的话,我们不用真的理解很深,要知道其中的机制就差不多了,要深入底层,还是得摸透这个共识问题。