以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads
首頁 > 幣安幣 > Info

科普 | 什么是共識?(生活篇)_區塊鏈

Author:

Time:1900/1/1 0:00:00

分布式一致性問題本質上可以從兩個維度來認識:一是如何就某一個值達成一致的決策;二是如何就一系列連續的值達成一致的順序決策。很顯然,如果我們能夠找到問題一的解決方案,那么問題二也就迎刃而解了。下面我們就從一個生活中的小問題來入手,看看如何去設計一個合理的算法來解決問題一。

有這樣一個家庭,由6個成員組成,分別是爸爸媽媽、爺爺奶奶、姐姐和一個3歲的弟弟。這一天,大家要線上決定一下明天出游時,弟弟戴什么顏色的帽子。由于此時5位家長分處在不同的地方,因此只能通過微信來交流。我們嘗試通過這樣一個案例來剖析一個最簡單的共識問題。

單點故障

既然目的是要做出一個一致的決策,最簡單的方式就是找出一個公信度最高的人,由他負責給出一個決策,大家都同意即可。比如,我們始終選擇媽媽的決策,因為平時都是媽媽負責弟弟的著裝。可是如果每次決策都需要等待媽媽的提案的話,難免有時候媽媽的手機會不在線,比如在坐飛機的時候手機開了飛行模式。因此,始終選擇一個人來做決定是不行的。這種因為一個參與方就導致整個集群出現阻塞的情況就是典型的單點故障問題。

少數服從多數

既然由一個人來做決策不可靠,最容易想到的一個解決方案就是:少數服從多數。即每次決策都至少得到半數以上人的同意才可以通過。當然,這里我們不考慮有人亂投票,即向不同人發送不一樣的投票。以當前的場景為例,5個人當中需要至少3個人接受同一個提案才能表明該提案值被選定。并且我們需要保證一旦某個提案值被選定了,就不可能在后續出現另外一個提案值也被選定。

徐明星新書《趣說金融史》正式發布 科普金融發展之道:金色財經現場報道,9月23日,歐科云鏈創始人徐明星攜手著名財經作家李霽月、行業觀察者顧澤輝力作《趣說金融史》一書,跨越5000年金融歷史,重讀金錢故事,并預測新的金融時代。該書由中信出版社出版,將于近期正式發售。據了解,本書可以更好地呈現金融的起源與發展,幫助人們理解貨幣、金融與未來經濟。作為區塊鏈行業領軍企業——歐科云鏈的創始人,徐明星深知技術探索對經濟社會的重要推動作用,他曾先后出版過《圖說區塊鏈》、《區塊鏈:重塑經濟與世界》、《通證經濟》、《鏈與未來》等行業權威著作,解讀區塊鏈等新型技術的推動下,金融與社會的升級之道,對經濟社會發展做出了重大貢獻。其中,《區塊鏈:重塑經濟與世界》曾作為新中國70周年重點推薦圖書之一被相關書店推薦。[2021/9/23 17:00:57]

注:這里的選定是全局視角的,而接受是單個人的視角的,即同一個人可能會接受多次提案,但是整個群體最終只能選定一個提案值。

▲場景1

首先依舊給出一個最簡單的方案,為了能夠完成最終的決策,我們規定每個人必須接受他收到的第一個提案,這樣也可以調動起大家的積極心,如果想要自己的提案通過就必須快速想出一種顏色并發出提案。

國務院:推進科普與區塊鏈技術深度融合:為貫徹落實黨中央、國務院關于科普和科學素質建設的重要部署,依據《中華人民共和國科學技術進步法》、《中華人民共和國科學技術普及法》制定《全民科學素質行動規劃綱要(2021-2035年)》,其中要求實施智慧科普建設工程。推進科普與區塊鏈等技術深度融合,強化需求感知、用戶分層、情景應用理念,推動傳播方式、組織動員、運營服務等創新升級,加強“科普中國”建設,強化科普信息落地應用,與智慧教育、智慧城市、智慧社區等深度融合。(新華社)[2021/7/10 0:40:52]

但是,這種方案可能導致一種無法完成決策的困境。如上圖所示,爸爸提出了紅色帽子,覺得比較正能量!并及時將提案私戳給了媽媽,媽媽也欣然接受。幾乎同一時間,爺爺提出了藍色帽子,覺得比較復古!并及時將提案私戳給了奶奶,奶奶也欣然接受。而姐姐認為綠色比較時髦,然而等她將消息發送出去后,發現大家都已經有了自己的選擇。最終形成了2-2-1的局面,沒有哪個提案能夠達到半數以上。因此,我們發現,如果想要最終完成決策,有些人可能要接受多個不同的提案。

▲場景2

既然如此,我們再考慮如下方案,即每個人都接受他收到的所有提案。

IMF今日發布的加密貨幣科普視頻實為兩年前舊聞,且存在諸多疏漏:國際貨幣基金組織IMF今日在推特上發布了一條關于加密貨幣的科普視頻,這段時長兩分鐘的視頻最初發布于2018年6月。該視頻稱加密貨幣是“貨幣進化的下一步”,但沒有特別提到DLT、區塊鏈,甚至是代幣名稱等術語。BTC、XRP和ETH只出現在說明加密交易的圖形中。盡管這段視頻到目前為止已經獲得了超過13.7萬的點擊量和2900個贊,但來自加密社區的許多反應都是批評的,他們指出了信息中的漏洞和似乎具有誤導性的措辭。

Reddit用戶nanooverbtc稱:“他們犯了很多錯誤,比如把私鑰稱為密碼。”該視頻也沒有討論挖礦或加密貨幣供應。Kraken策略師Pierre Rochard等知名人士表示:“可證明的稀缺性是比特幣有趣的原因,你忘了提這一點。”(Cointelegraph)[2020/8/24]

這次,我們只考慮有兩個人發起了提案,分別是爸爸的紅色提案和姐姐的綠色提案。如果爸爸的提案已經獲得了3票的同意達到了選定狀態,隨后姐姐才發起提案,根據每個人都接受所有提案的原則,綠色提案最終也能夠達到選定狀態。顯然,這種方案違背了唯一性的原則,如果一直這樣運轉下去可能最終也沒法選定一個提案值。

此時,我們發現一個問題,即爸爸的紅色提案既然事先已經達到了選定狀態,那么我們可以讓姐姐在提案之前確認下所有人的狀態,如果已經有半數節點對某個提案值達成了共識,那么姐姐就可以停止發出提案,或者再發出一個包含相同提案值的提案來保證唯一性。這樣是否就能夠解決問題了呢?

動態 | 美國演說家Anthony Robbins開始科普什么是比特幣:美國演說家安東尼·羅賓(Anthony Robbins)在自己的網站上發布了一篇比特幣的科普文章,并在推特上向自己的粉絲介紹什么是比特幣,目前他的推特賬戶共有粉絲304萬人。[2019/1/1]

▲場景3

場景2中的問題依然存在,如上圖所示,如果爸爸和姐姐分別事先確認了下所有人的狀態都處在未投票的狀態,并依次發出了各自的提案,由于爸爸是分別私戳的,因此消息有一定的延遲,而姐姐直接拉了一個群聊一次性通知給了爺爺和奶奶,因此姐姐的提案先于爸爸的提案達到選定狀態,稍后等爸爸的提案通知到了媽媽和爺爺的時候,他們又該如何決策呢?

通過上面的問題,我們發現,為了防止整個決策進入到一種無法終止的狀態,我們還需要通過某種方式對提案進行排序,從而拒絕一些舊的、無效的提案,并及時地向提案者反饋自己接受的提案值,避免提案者一直發起相同的提案。也就是說,如果爺爺在收到爸爸的延遲提案時,能夠知道先前已經存在一個更新的提案并拒絕舊提案,同時告知爸爸已經接受了姐姐的綠色提案的話,就可以避免出現多種提案達到選定狀態的困境。

例如,我們可以分別為5個人分配一系列提案號,提案號按如下規則遞增:

中科院自動化研究所將面向大中小學生開展區塊鏈等主題的科普講座:5月21日,新華網訊,今年,中國科學院自動化研究所將舉辦第十四屆“自動化之光”公眾科學開放日活動。屆時,自動化所將面向大中小學生分別開展《腦與智能》、《區塊鏈技術與平行智能》、《大數據時代的視覺智能》、《動畫真奇妙》等4個主題報告,用實例和生動的演示深入淺出地為大家揭示智能技術的原理和奧妙。[2018/5/21]

同時做如下規定:

一條提案由提案值color和提案號seqNo組成,可表示為(color,seqNo)每個人記錄下自己收到的最大提案號,并拒絕提案號比它更小的提案當提案者收到一個已經被接受的提案時,必須無條件接受該提案,否則有可能陷入無限提案的循環每個提案都需要分為兩階段來完成,分別為事先詢問階段與最終確認階段,其中詢問階段用來確定一個序號值seqNo并及時檢測出是否已經存在被接受的提案值,確認階段用來確定一個提案值color。

場景1的解決方案比較簡單,即在一定時間內無法收到大多數人的同意消息之后,嘗試用新的提案號再發起一次提案,直到某次提案消息能夠成功傳達到大多數人后,即可完成決策。

下面我們來看一下如何解決場景2與場景3。

注:下圖中,以Pn表示事先詢問消息,詢問其他節點是否接受提案號n;以R(v,n)表示響應消息,告知提案者當前已經接受的最大提案號和提案值;以A(v,n)表示最終確認消息,告訴其他節點嘗試最終確認一個提案值v,其提案號為n。

場景2解決方案

對于已經達成選定狀態的提案,我們可以保證后續的提案不會覆蓋原先的提案值。

此時提案決策流程如下:

爸爸使用提案號1發起詢問爸爸、媽媽、爺爺都同意提案號1,并且反饋當前未接收任何提案值,提案號默認為0由于收到了大多數人的同意,爸爸發出最終確認消息給到了大多數人,提案號為1,提案值為紅色,此時紅色其實已經達到選定狀態姐姐使用提案號5發起詢問由于提案必須經過至少3人同意,而任選3人必然與此前同意爸爸提案的人群有交集,因此處在交集中的人能夠及時反饋之前已經同意的提案,即1號紅色提案,其余人還是反饋空投票姐姐在等到大多數人的反饋結果之后,發現此前已經有提案被其他人同意了,選擇提案號最高的那個提案值,覆蓋自己的提案值姐姐發出最終確認消息,提案號為5,提案值為紅色最終所有人都接受了紅色提案,雖然提案號可能不盡相同場景3解決方案

對于未達成選定狀態的提案,如果有新的提案提出,最終選定的提案值可能有兩種情況。

第一種情況是新提案者能夠發現舊的提案值,最終會選定舊的提案值。

第二種情況是新提案者不能夠發現舊的提案值,最終會選定新的提案值。

場景3-1解決方案

新提案者能夠發現舊的提案值,最終會選定舊的提案值。

此時提案決策流程如下:

爸爸使用提案號1發起詢問爸爸、媽媽、爺爺都同意提案號1,并且反饋當前未接收任何提案值,提案號默認為0由于收到了大多數人的同意,爸爸發出最終確認消息,但是因為消息延遲的原因,最終確認消息只發送到了爸爸、爺爺。媽媽延遲接受了該消息,因此紅色其實并未達到選定狀態姐姐使用提案號5發起詢問由于提案必須經過至少3人同意,而如果此時選中的3人中恰巧有一人接受過爸爸的最終確認消息,他會立即反饋之前已經同意的提案,即1號紅色提案,其余人還是反饋空投票姐姐在等到大多數人的反饋結果之后,發現此前已經有提案被其他人同意了,選擇提案號最高的那個提案,覆蓋自己的提案值姐姐發出最終確認消息,提案號為5,提案值為紅色媽媽延遲接收到了爸爸的最終確認消息,由于沒有收到提案號更大的提案,因此也接受了紅色提案最終所有人都接受了紅色提案,雖然提案號可能不盡相同場景3-2解決方案

新提案者不能夠發現舊的提案值,最終會選定新的提案值。

此時提案決策流程如下:

爸爸使用提案號1發起詢問爸爸、媽媽、爺爺都同意提案號1,并且反饋當前未接收任何提案值,提案號默認為0由于收到了大多數人的同意,爸爸發出最終確認消息,但是因為消息延遲的原因,最終確認消息只發送到了爸爸、媽媽。爺爺延遲接受了該消息,因此紅色其實并未達到選定狀態姐姐使用提案號5發起詢問由于提案必須經過至少3人同意,而如果此時選中的3人中恰巧都沒有人接受過爸爸的最終確認消息,那么姐姐會收到3個人反饋的空投票由于收到了大多數人的同意,姐姐發出最終確認消息給到了大多數人,提案號為5,提案值為綠色,此時綠色其實已經達到選定狀態媽媽延遲接收到了爸爸的最終確認消息,由于之前已經接受了提案號更大的提案,因此拒接爸爸的舊提案值,并將新提案值及時反饋給爸爸爸爸在收到拒接響應消息后,會嘗試從頭開始重新發起提案,最終選擇綠色提案最終所有人都接受了綠色提案,雖然提案號可能不盡相同總結

總結一下,為了能夠讓決策最終能夠收斂,其實我們已經顯式或者隱式地做了一些約束:

1.每個人的手機需要實時在線并且任意一條微信消息都可以在一定時延內收到,當出現網絡斷開的場景時,可能會導致共識無法達成

2.每個人都需要嚴格按照上述規則進行提案/投票,不能有胡亂提案/投票的動作

上面其實就是運用了經典分布式一致性算法Paxos的原理。然而Paxos解決的僅僅是一個最基本的共識的問題,即在非拜占庭的同步網絡環境下,如何就一個決策值達成一致。如果系統進入了異步網絡環境呢?如果出現了拜占庭節點呢?當我們將這一系列的問題考慮進去之后,整個問題就變得復雜的多了。

好在前人已經給我們提供了非常多的理論基礎,為了應對不同的問題,已經出現了非常多優秀的共識算法。大家感興趣的話,后面會有詳細的共識算法分類介紹,為大家全面地展示不同場景下共識算法的選擇與權衡。添加小助手加入技術交流群,歡迎您和我們共享觀點,共論區塊鏈的無限未來~

作者簡介

端豪

趣鏈科技基礎平臺部共識算法研究小組

Tags:區塊鏈加密貨幣比特幣SEQ區塊鏈可以看著是什么加密貨幣為什么有價值比特幣交易會被判刑嗎SEQ價格

幣安幣
加密朋克:NFT領域的“比特幣”_比特幣

這段時間,在NFT的各個項目中,除了AxieInfinity,恐怕聽到最多的就是和加密朋克相關的新聞了。尤其這兩周,來自機構投資者瘋狂買入加密朋克的新聞已經在海外掀起狂潮.

1900/1/1 0:00:00
Stone Ridge向美國SEC注冊新的比特幣基金_STE

據cointelegraph消息,紐約數字投資集團(NYDIG)的母公司StoneRidge已向美國證券交易委員會(SEC)提交了一份新的招股說明書,將比特幣添加到其開放式共同基金中.

1900/1/1 0:00:00
以太坊12月份網絡升級或僅包括難度炸彈推遲,樂觀情況下為Eth1和Eth2合并升級_以太坊

因為倫敦升級納入的EIP-3554提議將難度炸彈延遲到12月,以太坊開發者TimBeiko發帖討論將于12月份進行的網絡升級.

1900/1/1 0:00:00
數字人民幣領域招標項目大增,蘇州擬舉辦數字人民幣試點創新發展會議_數字人

據證券時報7月20日消息,近期,數字人民幣領域招標項目大幅增加,涉及雄安、張家口、三亞、蘇州等地.

1900/1/1 0:00:00
波卡生態項目Astar Network(原Plasm)宣布獲得Web3開放資助_MANGA

巴比特訊,7月13日,波卡生態項目AstarNetwork發推宣布獲得Web3開放資助,以實施ZkPlonkpallet.

1900/1/1 0:00:00
行業觀察:區塊鏈如何影響審計行業?(上)_區塊鏈

鏈集市?·讓區塊鏈落地更簡單 《區塊鏈行業觀察》專欄·第36?篇作者丨Najoua?Elommal.

1900/1/1 0:00:00
ads