買以太坊 買以太坊
Ctrl+D 買以太坊
ads
首頁 > Gateio > Info

LET:一文了解極簡區塊鏈共識協議Streamlet_REA

Author:

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

導讀

區塊鏈作為典型的分布式系統,其共識核心的設計和實現一直困擾著開發者。如何設計一種簡單而高效的共識協議一直是學術界和工業界追求的目標。比特幣的設計雖然簡單,但性能低下且共識結果具有一定隨機性,因此不適用于企業之間業務量巨大的場景。近年來大家非常關注的聯盟鏈中應用的共識算法雖然性能接近傳統的共識算法,但協議設計相對比較復雜,實現難度較高。本文著眼于一種針對聯盟鏈設計的極簡區塊鏈協議Streamlet。具有一定區塊鏈知識背景的人只需要不到10分鐘就能理解整個共識流程,因此Streamlet不僅適用于工程化實現,而且具有非常現實的教學意義。

背景

Streamlet由Cornell大學的ElaineShi教授團隊在2020年2月的斯坦福區塊鏈大會提出,其前身是Pala。Streamlet可以算作是近五年來區塊鏈領域與傳統拜占庭共識領域的集大成之作,在包括經典PBFT,Cosmos在用的Tendermint,以太坊2.0將要用的Casper,以及Facebook推出的數字貨幣Libra所基于的HotStuff等協議中都能感受到對Streamlet的影響。盡管如同一個大雜燴,但Streamlet的目標是一種堪比比特幣的極簡區塊鏈協議。

盡管將加密貨幣指定為金融產品,南非仍被列入FATF灰名單:2月26日消息,國際金融監管機構金融行動特別工作組于2月24日宣布,已將南非列入“灰名單”,被金融監管機構列入灰名單可能會使南非難以從外國銀行獲得貸款。據悉,在FATF表達了對加密資產缺乏監管的擔憂后,南非金融業監管機構將加密貨幣指定為金融產品。當時,一些評論員表示,此舉將有助于南非避免被列入灰名單。

然而,在其2月24日的聲明中,南非儲備銀行 (SARB) 似乎承認該國在避免被列入灰名單方面做得不夠。盡管如此,該行仍誓言要“加強監管,進一步增強行政處罰的勸誡性和相稱性”。[2023/2/26 12:30:31]

Streamlet遵循傳統BFT協議的容錯規則,即在節點數目為n的網絡中,可以容忍最多f個拜占庭節點,需要滿足n>3f。Streamlet依賴于半同步網絡假設,即網絡在大部分情況都是好的,消息可以在一個能夠預測的延遲內傳播,但在某些情況下網絡可能會經歷一段波動期,并最終會恢復。在GST期間,網絡延遲無法預測。Streamlet和大多數協議一樣,保證協議在異步網絡下的安全性,當網絡回歸同步時可以進一步保證活性。

Streamlet

在Streamlet中,協議的運行被劃分為一個個同步的epoch,每個epoch都由哈希算法隨機分配一個leader進行“隨機選主”。每個leader在屬于自己的epoch中發布一個區塊給其它replica節點投票。投票可以被看作是投票者用自己的私鑰對區塊哈希值的簽名,并將其廣播給其它所有節點。如果一個區塊收到了來自超過2/3不同節點的投票,則被認為是“已證區塊”。由已證區塊組成的鏈被稱為“已證鏈”。接下來介紹整個propose-vote的流程中的一些細節。

Jack Dorsey旗下Block比特幣硬件錢包產品原型圖流出:1月7日消息,Jack Dorsey旗下比特幣公司Block透露會在“今年晚些時候”發布BTC硬件錢包,目前石頭形狀的產品原型圖已經流出。根據Block硬件負責人Jesse Dorogusker透露,這些“石頭”中會嵌入USB端口和指紋讀取器,而且還會配套一款移動APP,讓用戶“安全地擁有和管理他們的比特幣”。

Jack Dorsey此前在其社交媒體上暗示,這款硬件錢包的名稱可能會叫“Rocky”,與史泰龍主演電影《洛奇》同名。[2023/1/7 10:59:40]

發布規則。每個leader都在本地最長的已證鏈的基礎上發布新的區塊,即新區塊的prevHash指向本地最長的已證鏈末尾的區塊。投票規則。每個replica只對來自當前leader發布的第一個區塊投票,并且該區塊必須擴展自本地最長已證鏈,即該區塊的prevHash必須指向投票者本地最長的已證鏈末尾的區塊。確認規則。一個區塊在區塊鏈中被確認意味著網絡中所有誠實節點對這個區塊已經達成了共識,不會再對共識結果修改。已證區塊并不一定最終會被確認。在一個已證鏈中,當存在三個連續的已證區塊時,其中前兩個區塊以及同一鏈上之前的所有區塊都被確認。在這里,連續區塊的意思是連續的epoch。例如,在圖1中,epoch5、6、7連續產生了三個已證區塊,因此當區塊7成為已證區塊時,區塊5和6以及之前的區塊2都被確認。

SBF證實曾與馬斯克就加入對Twitter的收購進行磋商:11月4日消息,據外媒報道,FTX創始人Sam Bankman-Fried(SBF)證實了其曾與馬斯克就加入對Twitter的收購進行磋商,但并未進行實際投資。SBF表示,對Twitter公司目前做出的改變持樂觀態度,希望馬斯克“真正振興Twitter”。(福布斯)[2022/11/4 12:16:19]

圖1.Streamlet安全性舉例

Streamlet協議的整個流程到這里就全部介紹完了,是不是堪比比特幣中的PoW一樣簡單?其中的發布規則和投票規則類似于比特幣中的最長鏈原則,而確認規則類似于比特幣中一般需要末尾6個區塊確認的規則。兩者看起來有很多相似之處,但算法本質卻大有徑庭。從這點看來,Streamlet吸收了區塊鏈的設計精髓并將其與傳統的BFT協議融合在一起,得到了新一代的BFT協議。那么有些讀者可能想問了,如此簡單的協議安全性如何呢?

安全性

在區塊鏈中,協議的安全性可以簡單表述為不存在兩個同樣高度的不同區塊被確認。在這里我們簡單通過圖示來展示在異步網絡以及拜占庭攻擊的情況下Streamlet是如何保證安全性的。如上面的圖1所示,由于epochX的區塊與區塊6在同一高度,那么問題可以轉化為:是否存在區塊X且X是已證區塊?

FTT DAO獲得約700萬美元的FTT捐款,將用于支持生態項目:6月27日消息,由社區主導的生態系統DAO FTT DAO已收到社區捐贈的250000枚FTT(價值約700萬美元),以幫助啟動其活動。

這筆捐款將用作生態系統基金,FTT DAO計劃利用資金支持社區主導的項目,涉及加密教育、DeFi等領域。捐款還專門用于FTT相關的NFT項目,并進一步構建FTT全球社區和用例。(Asiaone)[2022/6/27 1:34:10]

為了證明上面的問題不存在,我們采用反證法。首先,假設存在已證區塊X,那么只存在兩種可能性,即X=4或者X≥8,這是由于同一個epoch不可能產生兩個已證區塊。下面分情況討論。

X=4。由于區塊X是已證區塊,意味著有超過2/3的節點給區塊X投票,那么可以進一步推論出超過2/3的節點在給X投票的時候已經在本地有了已證區塊3。因此,當協議運行到epoch5的時候,不可能有足夠多的節點給區塊5投票。這是由于投票規則的限制,誠實節點只給最長已證鏈上的區塊投票。這與區塊5是已證區塊的假設違背。X≥8。由于區塊7是已證區塊,意味著有超過2/3的節點給區塊7投票,那么進一步可以推測超過2/3的節點在給區塊7投票的時候已經在本地有了已證區塊6。因此,當協議運行到epochX的時候,同樣由于投票規則的限制,區塊X不可能成為已證區塊,這與假設違背。上面兩種情況已經包含了可能出現的所有情況,因此安全性得證。雖然圖1所示的情況是一個個例,但很容易對結論進行一般化證明。詳細證明可以參考原論文。

硬件錢包制造商Ballet完成1300萬美元A輪融資:金色財經報道,加密硬件錢包制造商 Ballet 宣布在 A 輪融資中籌集了 1300 萬美元,本輪融資由Lightspeed China Partners和Draper Dragon領投,Ribbit Capital、ACTAI Ventures、Digital Currency Group和Sky9 Capital參投。[2022/6/10 4:16:18]

活性

活性的含義是客戶端發送的交易最終會在區塊鏈上被確認。在傳統BFT協議中,活性的保證的其中一個前提是足夠多的誠實節點在同一epoch的時間足夠長。Streamlet為了使得協議足夠簡單,采用了同步時鐘來保證活性。例如,每個epoch被預設成固定的1秒鐘。在實際的使用中可以將每個epoch的時長根據網絡最大延遲來設置。由于以上的限制,Streamlet一般只會被部署在網絡條件較好的數據中心網絡中,否則很難找到一個合適的epoch長度,進而影響協議性能。

在Streamlet中,活性的證明被表述為在GST之后如果連續5個epoch都是誠實的leader,那么一定會有區塊被確認。由于在長時間運行中,總會出現至少一次聯系5個leader都是誠實的情況,因此活性可以得到保證。那么問題是,為什么需要5個連續的而不是3個?這里可以簡單理解為前2個epoch用來解決由于GST所造成的潛在的不一致,之后連續3個epoch則是確認規則所要求的,為了保證最終能有區塊被確認。完整的活性證明可以參考原論文。

協議對比

接下來通過對比討論目前常見的幾種BFT協議之間的差異。其中,Streamlet和HotStuff/LibraBFT都是新型的鏈式BFT,即節點的每次投票不僅是對當前區塊的投票,同時也是對這個區塊之前所有區塊的投票,因此相比于Tendermint和PBFT來說,消息的種類較少,實現起來也更簡單,也更容易優化性能。由于鏈式BFT的特性,接收到一輪2/3投票的區塊并不會被commit,因此當區塊不連續的時候會有分叉產生。

在協議同步方面,只有Streamlet采用了同步時鐘的方式。由于很難保證不同節點之間的時鐘嚴格同步,所以一般情況下每個epoch的時間會略長與網絡最高延遲,從而提高了協議的延遲。其它三種協議采用傳統的超時加倍模式,即每當一段等待時間之后沒有收到區塊,那么則將下一輪的等待時間加倍。雖然這種方式沒有額外的網絡開銷,但在某些極端情況下會使得協議長時間停滯。LibraBFT使用了消息傳遞的模式進行同步。雖然這種方式能夠快速實現同步,但也使得view-change時的消息復雜度提高到O(n^2)。

Best-case延遲是指在最好的情況下協議經過多少輪投票可以確認一個區塊。雖然Streamlet和HotStuff/LibraBFT都要求3個連續的區塊才觸發確認事件。但Streamlet可以一次確認兩個區塊,而HotStuff/LibraBFT只能一次確認一個區塊。

從消息復雜度來看,HotStuff/LibraBFT和Tendermint采用聚合簽名或者閾值簽名的技術由一個節點將來自replica的簽名聚合成一個單一簽名后再廣播給所有replica,因此消息復雜度可以達到O(n)。而Streamlet和PBFT則在投票階段使用了廣播,使得消息復雜度較高。

另外一個值得被提到的特性是view-change時的響應性。響應性指的是當view-change發生時,下一個leader是否能快速推進協議。例如,Tendermint沒有響應性,在發生view-change的時候節點需要等待一個timeout,以確保在timeout之內收到所有的有效消息。如果沒有timeout的假設,則可能會由于節點鎖在不同的階段而導致活性出現問題。HotStuff/LibraBFT和PBFT都有響應性,但代價分別是多一輪的投票以及更高的復雜度。

從上面的對比可以看出,即使共識算法經過了這么多年的發展,也沒有出現哪個協議是全能將軍。協議的設計本質就是在取舍,不僅體現在安全性和活性之爭,也包括性能、復雜度、容錯性、響應性等多種性質。某些協議的特性只有遇到合適的應用場景才能發揮價值。例如,在一些網絡環境較好的數據中心當中,選擇Streamlet可能在工程實現以及延遲上更有優勢,而在一些廣域網環境中可能選擇消息復雜度更低且具有響應性的HotStuff更好。

總結

Streamlet作為新一代BFT共識協議,很好地將區塊鏈中的鏈式結構與傳統BFT相結合,極大簡化了協議設計,不僅降低了開發者學習區塊鏈和BFT協議的門檻,也為工程師們開發區塊鏈系統提供了很好的模板。

作者簡介

蓋方宇

來自趣鏈科技基礎平臺部,區塊鏈共識算法研究小組

Tags:LETSTRSTREAMREApolkawallet挖礦教程MONSTR價格OpenStream Worldcream幣有前景沒

Gateio
元宇宙:中南財經政法大學盤和林:比特幣上漲是一種泡沫_區塊鏈的幾個大騙局

據時代財經消息,1月4日,中南財經政法大學數字經濟研究院執行院長、教授盤和林在接受采訪時表示,比特幣是一種資產而非貨幣,比特幣上漲是一種泡沫.

1900/1/1 0:00:00
CRYPTO:游戲玩家如何通過以太坊致富?收藏品或是未來趨勢_區塊鏈的核心是什么

如果你還沒有意識到這一點,那么你最好現在就內化它。區塊鏈很有可能通過使用非同質化代幣(NFT)徹底改變游戲行業.

1900/1/1 0:00:00
CEB:彭博社:不能低估扎克伯格推出Diem的決心_ICEBT價格

12月22日,彭博社發表評論文章稱,Facebook的數字貨幣項目更改名稱,并不再創建單一的全球貨幣,其甚至建議中央銀行有一天使用Diem區塊鏈發行數字貨幣,類似于中國對數字人民幣的測試.

1900/1/1 0:00:00
XRP:“法定數字貨幣試點步伐不斷加快”入選《中國金融》2020年中國金融十件大事_DEA

《中國金融》評選出2020年中國金融十件大事,其中包括法定數字貨幣試點步伐不斷加快。2020年,中國人民銀行數字貨幣的試點步伐不斷加快,先后在深圳、蘇州、雄安、成都四地啟動內部封閉試點測試.

1900/1/1 0:00:00
數字貨幣:數字人民幣入選“2020年度中國媒體十大新詞語”_數字人民幣消費紅包怎么點外賣

據中華人民共和國教育部官方網站消息,作為“漢語盤點2020”活動重要組成部分,12月16日,國家語言資源監測與研究中心發布“2020年度中國媒體十大新詞語”.

1900/1/1 0:00:00
區塊鏈:重慶市南岸區人民檢察院胡勇:應用區塊鏈破解網絡金融犯罪治理難題_區塊鏈

重慶市南岸區人民檢察院胡勇發文《應用區塊鏈破解網絡金融犯罪治理難題》表示,將網絡金融機構主要業務上鏈,通過區塊鏈可信存儲的特點實現對鏈上金融服務的監管,幫助金融機構優化基礎結構.

1900/1/1 0:00:00
ads