來源:stonecoldpat.substack.com
作者:PatrickMcCorry
使用權益證明的以太坊的獨特性在于參與者數量的最大化設計。它允許成百上千和成千上萬的驗證者活躍地參與決策過程。在筆者撰文時已經有大約50萬的驗證者實體在活躍地參與這個過程。
事實上,在約384秒內,所有活躍中的驗證者將有機會投下一票或提議一個區塊。在約384秒內至少有50萬條信息廣播,而且所有信息必須在嚴格的時間范圍內傳遞。據我所知,沒有其他共識協議被設計來處理如此活躍和龐大的共識參與者集。
至于通信模型方面,共識協議是為以下三種情況之一設計的:
同步通信一個普遍同意和已知的信息傳遞超時時間。
異步通信?信息傳遞所需時間沒有上限,但它最終會被發送。
部分同步通信在大多數情況下,都有一個已知的超時時間,但零星的事件可能會破壞信息傳遞,時間長短不一。
大多數現代共識協議都是為部分同步通信而設計的,因為它假設大部分時間條件良好,但由于事件可能會在短時間內中斷通信,所以存在不可預測的時期。另一方面,值得注意的是,權益證明的以太坊是為同步通信設計的。
題外話--CasperFFG是為部分同步通信而設計的,但LMD-GHOST的嚴格計時條件迫使整個系統必須同步。我們將在今后的文章中解釋什么是Casper和LMD-GHOST。
它假定在絕大多數的驗證者中幾乎沒有中斷,而且所有的信息必須在固定的最后期限前被記錄在信標區塊鏈上,這些信息才能被計入/使用。如果出現中斷,導致信息延遲傳遞,那么發送者將根據其延遲程度而招致懲罰。在最壞的情況下,如果錯過了最后期限,那么消息將被忽略,信息發送者將受到不活躍的最大懲罰。懲罰政策將在未來的文章中介紹。
BM談STEEM事件:DPOS鏈的好壞取決于其所有者以及委托投票的代幣持有者:BM今日發推談Steem上周發起的軟分叉,主要內容如下:1. 在DPOS系統中,權力可以流動。這證明了Steem是一個去中心化和反脆弱的體系。2. 因為Steem無法編程,所以需要進行分叉。該分叉需要所有完整的節點升級。社區可以為該分叉提供不同的含義/代碼。3. 一條DPOS鏈的好壞取決于其所有者以及委托投票的代幣持有者。對權力的偏見會使人看不見某些可能性。去中心化需要競爭和合作,這兩者都在Steem得到了很好的體現。(MEET.ONE)[2020/3/3]
為了更好地理解同步通信模型,我們涵蓋了Epochs&Slots的主題。它定義了驗證者被允許參與的時間,以及圍繞消息傳遞的嚴格時間窗口。如果違反了時間窗口,不管是什么原因,那么就不能保證其他驗證者會就遲到的消息到達時采取行動。最后,我們將介紹驗證者如何被分配到一個時間槽,以及消息如何被記錄在信標區塊鏈中。
如果你想深入了解各種通信設置,那么我建議閱讀這篇文章。這里也有關于ETH2是部分同步通信還是同步通信的精彩討論。
Epoch和Slot
每個epoch有32個slot,每個驗證者在每個epoch正好被分配到一個槽位。一個slot是一個12秒的時間窗口,期間驗證者可以參與權益證明協議,對新的信標區塊進行提議或投票。
slot按epoch分組,epoch和slot為驗證者參與權益證明協議扮演一個時間表的角色:
聲音 | 孫宇晨:愿在智能合約中支持TRC-10/20代幣及DPOS機制:孫宇晨發布推特稱,波場愿意為zk-SNARK做出努力,并在智能合約中支持TRC-10、TRC-20代幣和DPOS機制。12月17日消息,波場宣布即將進行匿名交易公測。[2019/12/18]
Epoch一個包括32個slot的周期。
Slot一個驗證者委員會在為期12秒的時間里完成任務的窗口期。
一個epoch代表了權益證明協議的一個完整的回合,slot為驗證者提供了一個參與該回合的機會。在一個epoch結束時,所有活躍的驗證者都有機會參與。
Slot委員會?一個驗證者在一個epoch中正好被分配到一個slot,所有驗證者被平均分配到各個slot,組成委員會。
一個slot里有兩種角色:
區塊提議者一個驗證者有機會向委員會成員提議一個區塊。
見證者所有剩余的委員會成員會為一個區塊投票,他們相信那個區塊應該會成為新的區塊鏈頭。
每個epoch有32個區塊提議者,所有驗證者都有機會參與權益證明協議,向他們認為應該是規范信標鏈的鏈頭投出一票。
一個slot代表了一個嚴格的時間窗口,供一個驗證者提議一個區塊,委員會成員對一個區塊進行投票,最后將所有該slot的活動廣播給下一個slot的區塊提議者。
Slot和時間條件?所有slot都是按照時間順序一個接一個地產生的。每一個slot都準確地按照12秒一個被分配出來,并被分成三個階段:
動態 | POSCMS交易所系統存在多個高危漏洞 平臺資金存在被竊風險:據DVP安全團隊,一款基于POSCMS二次開發的交易所系統存在多個高危漏洞,攻擊者可利用漏洞直接獲取網站權限,平臺資金、用戶資料,存在被竊風險,因漏洞的嚴重性已提交至CNVD(國家信息安全漏洞共享平臺)。DVP安全團隊提示,已發現有相關媒體多次報道此款交易所系統存在漏洞,但未能引起相關廠商重視。因本次發現的漏洞更加嚴重,存在直接獲取網站權限,平臺資金、用戶資料存在被竊風險,請使用到相關程序開發的交易所及時排查、盡快修復,避免漏洞造成平臺資產損失。[2019/1/25]
提議區塊指定一個驗證者提議一個區塊,并在前4秒內將其廣播給所有委員會成員。
投票周期所有其他委員會的成員都為一個區塊投票,他們相信,接下來的四秒內他們的投票就要被這個區塊接受。
廣播投票在最后的四秒里所有委員會成員的投票應該被聚合起來并發送給下個slot的區塊提議者。
所有的區塊和投票都是在一個slot的委員會內進行廣播。在委員會中有一個額外的角色,叫做聚合者,他們會在將證明傳遞給下一個slot的區塊提議者之前將其聚合。他們是自選的,這是一個自愿的角色,以減少通信的成本。我們將暫時跳過具體細節--因為這將在未來的文章中涉及。
如果一個提議的區塊或見證是在截止日期之后發布的,那么就不能保證該活動會被其他驗證者認可。例如,一個遲到的區塊可能會被跳過,因為這個slot的見證者可能已經為其父塊投了票。一個遲到的見證將被其他見證者在一個epoch中處理,最多遲到32個slot,并有不同程度的懲罰。如果它在32個slot之后被發布,那么它將不會被任何驗證者處理。
聲音 | BM:ECAF 并不是 DPoS 的特征:據 IMEOS 報道, EOS 電報群的管理員 Luka 提出:DPoS 機制是否會因 ECAF 而遭受攻擊?
BM 回復說,除非 BP 和投票者給予,否則 ECAF 是沒有權利的。ECAF 也并不是 DPoS 的特征。對于 URI,BM 提到它并沒有停滯,它是更廣泛的解決方案的一部分。[2018/12/11]
最后提醒一下,這個嚴格的時間窗口保證了運行驗證者所需的帶寬和計算能力的下限,因為他們必須要有準時接收、處理、發送見證/區塊的能力。
驗證者委員會的分配
我們在一個epoch里考慮分配驗證者到slot里的過程。所有的slot委員會的規模大致相同。他們根據一個隨機信標的輸出完成分配,并且提前兩個epoch進行。這要求使用一個混洗協議和一個同帶信號傳輸隨機性的源。
混洗協議?所有驗證者都根據一個叫swap-or-not的混洗協議被分配到一個slot里去。我們不會去探討這個混洗協議的細節,而是會把注意力集中到隨機信標的計算方法上,這個方法奠定了混洗協議執行方式的基礎。
隨機信標?所有驗證者通過一個隨機信標被分配,這個隨機信標使用了一個叫RANDAO的協議。其目的是在新的區塊被添加到規范鏈上時通過聚合隨機性來形成隨機信標。
對于每一個新的區塊而言,有兩個階段:
提議產生的隨機性?一個新的信標區塊包括了一個叫randao_reveal的特殊值。它是一個區塊提議者的BLS簽名,用以充當區塊的隨機信標。它是確定的以防止被驗證者篡改,但是不可預測。
V神推特懟BM:DPOS的21個節點存在共謀可能:據金色財經合作媒體IMEOS報道,今天BM發推展示DPOS和比特幣以太坊對比下更具去中心化優勢。但隨即遭到V神回懟,V神認為21個超級節點并不是21個不同實體,節點之間可能存在內在聯系的共謀。[2018/5/8]
混合隨機性所有驗證者從新的區塊里取出隨機信標并把它和之前所有聚合起來的區塊的隨機性混合。它形成了一個新值mix,有可能作為混洗協議的候選。
正如我們所能看到的,每一個信標區塊都包括了一個隨機信標,添加并匯聚了所有之前的區塊的隨機性。
驗證者們通過第N個Epoch最后的隨機信標被分配到第N+2個Epoch的slot里
分配會提前2個epoch發生?所有驗證者都會使用最后那個被接受的區塊匯聚起來的mix值作為隨機信標,并在混洗算法中使用它。它會計算得出未來兩個epoch的驗證者委員會。
所以,如果我們考慮目前的epoch為第N個,那么這個epoch里的最后那個信標區塊會作為隨機信標決定第N+2個epoch的委員會分配。
驗證者們有充足的時間查找它們被分配到的slot,因為它們提前兩個epoch就知道了。換句話說,未來64個slot的驗證者的分配是早就公之于眾了的(約2個epoch)。
隨機信標的可偏倚性(bias-ability)?只有一個mix能被混洗協議使用,那就是一個epoch中最后一個被接受的區塊的mix值。
最后一個被接受的區塊不會總是那個在第32個slot被提議的區塊。而是最后一個slot的區塊,也就是被所有驗證者認可為區塊鏈鏈頭的那個區塊。舉個例子,如果第32個slot沒有區塊被提議產生,那么第32個slot的驗證者委員會就會為之前在第31個slot被提議產生的前一個區塊投票。
攻擊者可以利用這點來使隨機信標出現偏差。讓我們假設攻擊者是第32個slot的區塊提議者。他可以決定這么干:
準時釋放區塊攻擊者的隨機性被混合在信標里
暫緩區塊強迫所有驗證者為上一個區塊投票,則攻擊者的隨機性不會被混合在信標里。
這種決定權使得攻擊者可以使隨機信標出現1個字節的偏倚,并最終決定到底兩個驗證者分配組合里中的哪一個會在未來的一個epoch里被使用。實際上如果攻擊者控制了一個epoch里最后N個區塊的區塊提議者們,那么它們可以利用這個機會釋放或暫緩釋放一個N個區塊的組合。目前還缺乏一項嚴格的研究,來了解針對最后N個slot的偏倚能力的全部范圍及其影響。
檢查一個信標區塊
一個信標區塊的數據結構
一個單獨的信標區塊包含了它在信標區塊鏈里所處位置的元數據、執行鏈的數據、以及權益證明協議的一份副本。我們會在下文探討更多細節。
一個slot的區塊提議者會嘗試擴展規范鏈,并且只能選擇一個父塊。
信標父塊?一個區塊的提議者的目標是提議并添加一個新的信標區塊到一個規范鏈的頭。若要這么做的話,它們只能選擇一個父塊來進行擴展。父塊應該是當前的鏈頭,它在元數據中的代表是parent_root。
Epoch和slot組織驗證者產生唯一一條規范信標區塊鏈。
Slot≠信標區塊?一個信標區塊記錄了它的slot號碼的元數據。它允許其他驗證者檢查區塊提議者是否確實被指定為這個slot提議一個區塊,這個區塊是否就是被提議的那個區塊。如果slot的號碼錯誤,那么區塊會被拒絕。
重點在于,一個區塊在區塊鏈里的位置不會與它在其中被提議的slot號碼相對應。舉個例子,如果我們檢查第5184157個slot,那么我們會看到第16015362個區塊,這種不匹配是無法避免的,因為無法保證一個被分配的slot里被提議的區塊會被所有其他驗證者投票通過,而且以太坊從開始到現在運行了超過7年了。
執行鏈數據?區塊提議者會提議兩個區塊,它們提議一個執行區塊,給用戶的交易排序,并把它附加到新產生的信標區塊上。這并不奇怪,因為共識層的最終目的就在于為執行層決定規范鏈。
區塊提議者同樣負責從執行層轉移信息到信標層上,并使其準備好為權益證明協議所用。這包括:
ETH1數據一個來自執行層的附加區塊的區塊哈希碼。
存款存款合約地址和一連串未記錄的存款。
這要求所有的驗證者運行一個信標客戶端和一個執行客戶端。這是必要的,因為驗證者們必須檢查對應的ETH1區塊并根據執行層規則驗證其有效性。同樣地,正如我們在關于注冊過程的文章里討論的一樣,存款必須在一個特定的區塊間隔期內從執行層上被轉移到一個信標區塊上,否則信標區塊會被拒絕。
元數據slot號碼、epoch號碼、隨機信標和區塊提議者
罰沒事件包括其他驗證者的惡意行為證據,這些證據可用于懲罰它們
投票歷史記錄一連串在這個區塊鏈分叉上針對之前提議的信標區塊的未被記錄的的投票
區塊鏈分叉它挑選了一個父塊,并反過來定義了這個區塊所延伸的規范鏈。
驗證者退出一連串已注冊驗證者的退出請求。
通過記錄下副本,每一個人都可以獨立地回顧整個協議,并且絕對相信目前信標鏈的狀態是正確的。比如說,惡意的驗證者會被及時罰沒,slot和epoch的時間表受到全體驗證者的認可,絕大多數驗證者都會以這種方式投票并產生單獨一條規范鏈。
題外話,由于弱主觀性的緣故,雖然權益證明的記錄可以使我們信服所有歷史活動都是按照規則進行的,但是尚不足以向一個外部群體說明這確實是那條真實的信標區塊鏈。簡單來說就是它提供了一個檢查歷史活動完整性的方法。
Tags:SLOTLOTPOCPOSSlothi TokenDELOT.IOpoco幣案件在徐州判了嗎cpos幣最新價格
1.金色觀察|Nansen:看透加密世界的終極工具區塊鏈分析區塊鏈在現實世界中的使用越來越廣泛,區塊鏈分析的重要性也隨之增加.
1900/1/1 0:00:00每秒就有2張卡牌售出,一套寶可夢卡牌拍賣出近40萬美元高價……當前,國內卡牌市場異常火爆,并被長期看好。有分析稱,中國的卡牌市場在未來3年,有望超過300億元人民幣,其滲透率尚有巨大的提升空間.
1900/1/1 0:00:003月23日消息,美聯儲主席鮑威爾表示,在硅谷銀行(SVB)倒閉后,美聯儲大幅逆轉縮減資產負債表規模的努力,并不意味著正在利用所持資產為經濟提供新的刺激.
1900/1/1 0:00:00編譯:Dali@Web3CN.Pro2023年,圍繞“加密技術與人工智能”的爭論越來越多,但我認為我們不應該以消極的態度去看待這兩者的關系。對于所有的新興技術來說,這樣的爭論是不可避免的.
1900/1/1 0:00:00前兩天Arbitrum剛剛官宣了137家獲得TokenAirdrop的DAO,幾乎包含了顯露出了苗頭的各賽道用例伴隨著3月23日晚擠爆Arbitrum基金會官網的ARB申領盛況.
1900/1/1 0:00:00zkSyncEra主網于2023年3月24日正式向公眾開放,?3天內單一地址數便突破10萬個,?1.8萬枚ETH跨鏈進入zkSyncEra.
1900/1/1 0:00:00