當前位置:
首頁 > 知識 > 想挖礦?不如先學習一下以太坊

想挖礦?不如先學習一下以太坊

本文為AI研習社編譯的技術博客,原標題 A Primer on Ethereum Blockchain Light Clients,作者為 zk Capital 。

翻譯 | 高敏 校對 | 餘杭 整理 | MY

許多使用點對點協議且基於區塊鏈的項目在性能和吞吐量上誇大其辭。在研發階段,這些項目已經出現了一些創新,但是一旦這些協議運行時,它們大多對經常遇到的挑戰難以作出解釋。

網路拓撲結構

假設大多數人在延遲和計算量之間的某個置信區間上網是很容易的,但是他們忽略了必須藉助於區塊鏈上的節點進行交互。對大多數用戶而言,不幸的是,運行一個全節點不僅速度慢,而且價格昂貴讓人望而卻步,因此大多數用戶選擇輕節點,因為它們不僅背負著全節點所擁有的安全性使命,對資源沒有額外的需求。

以太坊輕客戶端模式允許像樹莓派一樣的輕量型設備加入網路,當區塊頭顯示時可以將它們下載,並且如用戶所要求的那樣按需驗證某幾種狀態。在以太坊中,這些檔案性的全節點擁有的客戶端很容易使得網路飽和。與所謂的 Merkle Tree 相比,樹莓派可以更快地鎖定這些節點。

你可以在樹莓派上安裝一個輕型客戶端!?

密碼經濟作為運行全節點的動機已遠遠不夠,這是因為資源成本效益在平衡分散式網路過程中遇到了瓶頸。對於輕型節點,網路將擁有怎樣的完全平衡是難以預測的。關於怎樣平衡這些動機以及如何使得用戶更容易證明運行全節點是正確的這些話題,早已被討論過多次。

對輕客戶端的介紹:以太坊中的關鍵角色

輕型客戶端背後的核心思想是它能夠獲取用戶所關切的狀態部分。它假設有一個誠信模型,在這個模型中,礦工們都正確遵循以太坊的規則,並且系統中至少有一個完全節點是完全誠實的。

將同步模式標誌設置為輕型模式

他們的基本功能是當塊標題顯示在網路中時可以將它們下載,而且對於正在被客戶端使用的狀態部分的 Merkle 證明而言,按需變化的問題需求也可以被下載。以太坊上的輕客戶端採用分布哈希表而不是本地存儲來記錄字典樹的節點。

考慮到 Ethereum 狀態通過大些的 Merkle 樹來顯示,從 Merkle 的樹根出發,沿著樹中一個分支的一條節點路徑,可以很輕易地將驗證信息的完整性作為輕量級的證明。這最終依賴於對所提供的 Merkle 樹根正確性的信任。

輕客戶端信息包括但不局限於查詢賬戶餘額、驗證確認事務、檢查部署在網路上的某份合同的事件日誌等其他信息。

通過 Merkle 樹的證明和驗證,所有的這些可以被歸結為次線性複雜度。當無法獲取來自區塊鏈的數據時,或無法檢查出何時驗證狀態交易指數時,客戶端可以在點對點網路中向其他參與者發出警告。

當處於輕客戶端模式下時,以太坊客戶端會將基本上不同的配置和協議經理具體化。當以太坊啟動一個輕客戶端時究竟發生了什麼,對此感興趣的用戶可以參考我下面的問題。


潛在的共識機制

目前的輕客戶端協議假定通過全節點在主鏈上開展工作共識證明。在工作量證明過程中,我們可以藉助於一個數學函數來驗證區塊頭部的有效性。也就是說,這個演算法很難計算區塊頭部並輸出,但是卻很容易對其進行驗證。

當輕客戶端啟動時,他們會尋找區塊頭部最長的鏈,而且對於攻擊者而言,通過製造有錯誤的頭部來偽裝成這條鏈的費用幾乎是無法想像的。

以電力為基礎的物理工作到通過工作證明而致力於鏈的安全性的轉變是一個潛在的過程,儘管對製造出的區塊頭部的驗證尤為有效。

在工作量證明環境中,輕客戶端十分常用的,因為區塊頭部可以立刻得到驗證,但是我們卻無法保證在證明環境中也可以做到這樣。


權益證明中的輕客戶端:工作證明是不可或缺的嗎?

在工作量證明中,輕客戶端被簡化的問題相當於區塊頭部並未與一定量的真正的工作實現綁定,而參與者需要投入這些工作中並製造他們。這種共識機制所帶來的強度實質上是對拜占庭參與者的威懾性懲罰而不是對耗電計算 NP 難題的獎賞。在權益證明中,如果參與者想嘗試發展錯誤鏈,那麼他們將會受到懲罰,然而,在工作量證明機制中,在錯誤鏈上挖礦的參與者將會建立分支,而且不會得到在一條規範鏈上挖礦的獎勵。

權益證明提供協議內的機制來最終確定區塊頭部。一旦這些頭部被信任,獲得它們所包含的數據複雜度為對數級別,即從 Merkle 樹上獲取一個節點。儘管如此,區塊頭部並不包含我們可以用來驗證工作證明方法的標量值,這使得驗證最起碼為對數級別的而不是具有時效性的常量級的直接實現。然而,我們最起碼可以在輕客戶端的同步率上做得更好。

正如 Vitalik 在工作崗位上的對該問題的建議所言,憑藉 checkpoint 系統可以建造一個更為輕量的客戶端友好型權益機制。一個 checkpoint 可以被定義為一組固定數字的區塊。

在這些區塊內,三分之二的參與者必須同意通過密碼簽名,而且 checkpoint 必須包含其以前 checkpoint 的哈希值。在這種新的輕客戶端同步機制中,只能下載 checkpoint,而且客戶可以驗證參與者的簽名。如此,在目前的工作證明輕客戶端模式下,下載每個單一區塊頭部所需的開支就降了下來。

然而這種方法並不能解決驗證區塊頭部這一問題,因此權益證明還是很有可能將一小部分作用在塊標題上的為了創造輕客戶端的工作證明包含在內。


工作證明和股權證明的混合有助於輕客戶端嗎?

為了在權益證明系統中驗證輕客戶端,在區塊頭部的形成過程中無疑會有一個使用計算能力的角色存在,只要能夠按要求驗證這些區塊頭部充分小即可。

如果你想對有關內容有更多了解,檢查以太坊社區正在分片上進行的工作,包括我的團隊:Prysmatic 實驗室!在分片模型中,輕客戶端是極為有用的,因為分片的目的之一是降低節點對計算的要求。大多數分片的最新進展都公布在以太坊搜索,你可以從這裡開始。

如果你喜歡這篇文章或者你有任何疑問,請在推特上聯繫我們。

https://hackernoon.com/a-primer-on-ethereum-blockchain-light-clients-20d715255ff0

想知道關於區塊鏈更多知識?


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI研習社 的精彩文章:

葉志豪:介紹強化學習及其在 NLP 上的應用
Facebook 密集人體姿態估計工具 DensePose

TAG:AI研習社 |