风险提示:理性看待区块链,提高风险意识!
比特币网络最了不起的发明之共识机制
首页 > 币界资讯 > 币种知识 2020-11-16 11:40:43

共识机制被认为产生在人类社会早期,哪时没有中心化的机构或者中心化较弱。那么,它解决什么问题呢?解决人类生存和发展的难题,当时人类的力量较弱,要生存和发展必须依靠集体的力量。

“共识”一词最早起源于生物学和医学,表示人体各器官协调运转,后来才被引入哲学和政治学领域。

辞海对“共识”的解释是共同认可的观念或想法,也就是大家经过讨论后形成的一致性意见。

现实生活中怎样解决没有中心化的前提下,又要达成共识呢?就是通过投票选举,少数服从多数,产生一个中心化的机构,比如美国的总统大选。

image.png

那么,在去中心化的虚拟世界中,遇到共识问题,该怎样解决呢?

比如互联网中一直没有解决的分布式系统问题,什么是分布式系统呢?就是多台相互独立的计算机,在没有中心化的情况下,利用计算机网络实现共同的任务或目标。它面临核心的问题是怎样协调相互独立的计算机,在一定时间内实现某个目标,简称一致性问题。具体可以表述为单个计算机有可能掉线、死机、发送错误信息,也可能是不诚实的节点对网络发起攻击,在没有中心的前提下,如何协调它们实现某个目标。

在分布式一致性问题下,根据是否存在恶意节点,又可以分为拜占庭将军问题和非拜占庭将军问题,什么是拜占庭将军问题呢?简单理解就是多台相互独立的计算为了实现共同目标,在内部有不诚实节点的情况下,怎样达成共识完成任务。拜占庭将军问题历史上并没有出现过,它是由美国著名计算机科学家莱斯利·兰伯特在1982年虚构的,一般描述为:

拜占庭帝国拥有巨大的财富,周围的6个邻邦对此垂诞已久,但拜占庭城墙高耸,固若金汤,一个单独的邻邦是无法入侵成功的,同时有可能自身也会遭到其他5个邻邦的入侵,拜占庭帝国防御之强,至少要一半以上的邻邦同时进攻,才有可能成功。

如果有3个邻邦答应好一起去进攻,但实际过程中出现背叛,那么入侵者有可能全军覆没。于是每一个城堡都小心行事,不敢轻易相信邻邦,这就是拜占庭将军问题。

由于将军们只考虑自己的利益最大化,往往口是心非,并不是大家一起坐下来开个会能解决问题的。如果这6个将军里有叛徒,他们会想法设法去骗其他将军发动进攻,自己可以抢夺他们的财物。

经过计算机专家研究,如果叛徒达到或者超过1/3,拜占庭将军问题便无解。比如只有三个将军,有一个是叛徒,当第一个将军发动进攻命令时,第二个将军是叛徒,他会告诉第三个将军,他收到的是撤退命令,第三个将军收到一个撤退和一个进攻的命令,就会感到很困惑,无所适从。

在中本聪发明比特币之前,拜占庭将军问题解决方案有两个,但都有漏洞,不能让人心悦诚服。首先是口头传信方式,就是将军们派人口头传达信息,好处是每个消息都能被传递出去、信息接受者知道发信人是谁、谁没发信也能被发现,每个时间点同时有5个信息发送出去,6个将军就会有30个信息发送出去。一轮下来,每个将军收到5个信息,最好的结果是:“如果多数说进攻,少数服从多数,进攻就可能成功,有少数叛徒也不影响取胜。”

但这个方案有两个明显的缺陷,首先是信息无法溯源,不知道上一个消息来源是谁,就是无法通过不一致的信息找到叛徒是谁。其次是即使多数人主张进攻,每个将军主张的进攻时间也不一定相同,很难一起行动起来。

其次是书面协议,6个将军每个人都可以向其他5个将军发起进攻信息,比如约定在某一时刻进攻拜占庭,同意就签字盖章,收到信息的将军如果同意就会签字盖章。

比口头协议好的是将军的签名不可伪造,其他将军可以验证签名的真伪,信息是被记录在案,可以溯源,进攻时间也可以同步一致。但书面协议不能解决签字信息由谁来保存的问题,最后还是摆脱不了中心化。最根本的一致性问题也没有解决,就是每个将军随时都可以发起进攻命令,自说自话,容易造成混乱,达不成共识。

有没有更好的方案来解决拜占庭将军共识问题呢?可以先用非对称加密解决签名信息摆脱不了中心化的问题。比如A将军给B将军发送进攻命令,A用B的公钥加密,B收到信息后,如果同意进攻,可以把信息用自己的私钥加密,发送给其他将军,解决了签名信息由中心化保管的问题。

解决最根本的一致性问题

中本聪发明的比特币系统很好的解决了这个问题,就是引入工作量证明共识机制。让发动进攻命令的将军要付出一定的代价,拉开了两个进攻或撤退命令的时间间隔。你要想第一个发动进攻命令,就要寻找一个随机数,使得知道部分信息的哈希值,要小于一个目标值,还要大于等于区块头给定的难度值。先不说这个随机数要大于等于难度值,只说要小于目标值,就要耗费很大的工作量。因为这个目标值前几位都是0,哈希值是由大小写字母和数字组合而成,如果目标值前有一个0,它就有62种可能性,两个0就是62的平方,当零的个数不断增加,难度系数将成指数级增长。比如你掷一个筛子,掷小于6的点数,你可能只需掷一次,如果掷小于2的点数,你可能要掷很多次。

这就让将军们在一定算力的情况下,要找到这个随机数一般需要花10分钟左右的时间。

找到随机数的将军,会把区块头的信息和随机数向全网进行广播,其他矿工收到信息,会立即停下挖矿工作,开始验证收到的信息,一旦验证通过,他们会依据当前信息再次寻找下一个区块的随机数。

这就让在一段时间内只有一个将军发动进攻或撤退命令,其他将军如果收到叛徒发送的错误交易信息,是不会被接受的,因为一笔交易信息的变动会影响Merkle根的哈希,从而影响区块头的哈希,就是会影响上个区块的哈希。

你看工作量共识,让一段时间内只有一个将军发送命令,其他将军收到命令立即验证真伪,一旦验证成功立即执行命令。拜占庭将军问题完美的解决了。

image.png

我们再来看非拜占庭将军问题有没有解决?比如单个节点可能掉线、死机、发送错误的信息。

在工作量证明机制下,节点认可的是最长链,因为最长链代表的是最大的工作量。比如你的电脑死机、掉线或者接收到临近节点发出的错误信息,你只要在重新联网时,向附近节点同步一下拥有最长链的哪个账本就可以了。你看工作量共识很好的解决了分布式系统一致性问题。

上一篇: 发明比特币的是为了提高可靠性吗?
下一篇: 以太坊USDT总量接近比特币网络,比特币矿工收入超150亿美元
推荐专栏
web3首席知识博主
一位相信价值投资的币圈KOL。稳定盈利的缠论野生交易员 #BTC行情分析师 #价值投资 #链上数据分析
爱Web 3,爱生活,爱科技,爱炒币的老韭菜
热门币种
更多
币种
价格
24H涨跌幅
BTC比特币
¥267,333.35
37,456.86 USDT
-0.47%
ETH以太坊
¥14,703.56
2,060.16 USDT
-0.41%
USDT泰达币
¥7.19
1.01 USDT
+0.23%
BNB币安币
¥1,649.16
231.07 USDT
-0.82%
XRP瑞波币
¥4.36
0.61020 USDT
-1.47%
USDC
¥7.13
0.99970 USDT
+0.03%
SOLSolana
¥409.75
57.41 USDT
-1.68%
OKBOK币
¥410.88
57.57 USDT
-0.94%
ADA艾达币
¥2.76
0.38740 USDT
-0.77%
DOGE狗狗币
¥0.55950
0.07840 USDT
+0.44%
热搜币种
更多
币种
价格
24H涨跌幅
Terra Classic
¥0.00
9.784E-5 USDT
+27.68%
FTX Token
¥28.09
3.9605 USDT
-3.48%
Gala
¥0.19
0.026849 USDT
+0.86%
dYdX
¥23.91
3.371 USDT
-4.07%
Conflux
¥1.12
0.158 USDT
-2.59%
PancakeSwap
¥16.45
2.3202 USDT
-3.07%
寿司
¥8.32
1.1733 USDT
-2.31%
Yield Guild Games
¥2.65
0.3738 USDT
-3.46%
Filecoin
¥32.49
4.5814 USDT
-3.27%
Solana
¥407.14
57.4124 USDT
-1.68%
Uniswap
¥43.66
6.1565 USDT
+1.13%
奇亚
¥181.51
25.5951 USDT
-1.52%
最新快讯
更多
近24小时BLUR下跌期间三鲸鱼向交易所存入总计约717万枚BLUR
2023-11-27 10:07:39
Santiment:在行情反弹之前,占总供应量3.54%的USDT和占总供应量0.72%的USDC转移到交易所
2023-11-27 09:48:35
黄立成于20分钟前再次加仓116.5万枚BLUR
2023-11-27 09:40:15
数据:近几天黄立成累计买进2,728,997枚BLUR
2023-11-27 09:38:07
数据:近几天麻吉累计买进2,728,997枚BLUR
2023-11-27 09:38:07
香港立法会议员:证监会在HOUNAX事件中角色被动,未有及时封锁相关公司网页
2023-11-27 09:34:30
慢雾:上周Web3漏洞和RugPull事件总损失超过1.68亿美元
2023-11-27 09:31:09
下载币界网APP