流逝時間證明(PoET)共識算法可以被多個節點利用嗎?
我最近了解了 Hyperledger 區塊鏈項目和具體框架。在 Sawtooth 框架的情況下,共識不是通過 PoW 而是通過 PoET(經過時間證明)達成的。
在熟悉工作量證明 (PoW) 時,您通常會聽說參與者利用是安全的,因為需要計算能力。
關於 PoET,其中達成共識的領導者由等待時間最短的節點選出,我想知道當使用多個節點向網路發送垃圾郵件時是否無法利用該系統,因此更有可能成為領導人。
BR
是的,這裡有一篇文章指出“SgxSpectre Attack Can Extract Data from Intel SGX Enclaves”。
據研究人員稱,SgxSpectre 之所以有效,是因為軟體庫中的特定程式碼模式允許開發人員將 SGX 支持添加到他們的應用程序中。易受攻擊的 SGX 開發套件包括英特爾 SGX SDK、Rust-SGX 和 Graphene-SGX。
學者們表示,攻擊者可以利用這些 SDK 在 SGX 飛地中引入的重複程式碼執行模式,並觀察記憶體大小的微小變化。這是經典的“側通道攻擊”,非常有效。
不過,英特爾表示,添加 SgxSpectre 緩解措施的英特爾 SGX SDK 更新將於 2018 年 3 月 16 日發布。
此外,這是一篇研究論文,對使用 SgX 破壞區塊鍊網路進行了一些理論分析,最後指出“是的,這可能是可能的”。
這篇論文的題目是“ On Security Analysis of Proof-of-Elapsed-Time (PoET) ”。我正在添加論文的相關片段,以確保萬一出現死連結,至少在這篇文章中提供了他們所說的摘要。
這篇論文的摘要指出
“為了填補這一空白,我們開發了一個用於評估基於 PoET 的區塊鏈系統的理論框架,並表明目前的設計是易受攻擊的,因為對手可以通過破壞 Θ(log log n/log n) 來危害區塊鏈系統參與節點的比例,當 n 較大時,該比例非常小。
基於我們的理論分析,我們還提出了減輕這些漏洞的方法"
他們繼續總結說有一些方法可以緩解這些問題。
- 改變 F 的機率分佈。如果機率分佈 F 不依賴於 n,那麼攻擊者必須破壞 a+µ 部分的節點才能破壞系統。
+ 允許誠實挖礦節點生成的區塊被拒絕。我們假設統計測試不會拒絕誠實節點生成的塊,而攻擊者可以模擬系統中最快的誠實節點。如果我們允許統計測試拒絕誠實使用者生成的塊,則有可能超過 Θ(log log n log n) 的門檻值。
然而,重要的是要注意,本文沒有提到破壞在 SGX 飛地中執行的 PoET 算法的安全性的具體方法,而只是指出
“新交所和其他可信計算技術並非 100% 可靠。尤其是,它們可能容易受到擁有必要資源和技能的老練對手的攻擊。”
但鑑於 SGXSpectre 攻擊,這不是一個學術問題,而是一個實際問題……
更新:這是一個名為“34C3 - 可信執行環境的微架構攻擊”的精彩影片,Keegan Ryan 詳細解釋瞭如何執行 TEE 攻擊。對於有興趣防禦安全漏洞的人來說,這是絕對的黃金。
TLDR:是的,確實有可能通過破壞一小部分參與節點來破壞 PoET 算法(SGXSpectre 攻擊)。如果不能解決這個問題,也有一些方法可以緩解(SGX SDK 更新檔,其他方法)。
不,Sawtooth 是一個與 CPU 無關的區塊鏈平台。它包括一個可選的 TEE/SGX 功能,可增強對 PoET 的 BFT 保護。PoET 的設計遵循縱深防禦方法。大約有三種機制在協議的不同方面獨立於 TEE 工作。這包括 PoET 執行的三項測試:
- c-test:一個節點在接納後必須等待 c 個塊,然後它的塊才會被接受 - 這是為了防止嘗試遊戲身份和一些晦澀的角落場景。
- K-test:節點最多可以在其對等節點要求它重新認證自己之前發布 K 個塊。
- z-test:也許最重要的是節點可能不會以大於 z 的頻率發布
最後,如果一個節點執行一個妥協的共識協議,主要的風險特徵將是公平性。它不會影響整個網路的*正確性。*也就是說,它不能發布無效交易。如果是這樣,其他節點只會拒絕這些交易和相關的塊,並且它們不會在網路範圍內送出。