當前位置:
首頁 > 新聞 > 深度 | 以太坊「大都會」終極指南:現在正在發生什麼?!

深度 | 以太坊「大都會」終極指南:現在正在發生什麼?!

深度 | 以太坊「大都會」終極指南:現在正在發生什麼?!

雷鋒網AI金融評論按:本文轉載自token.im,譯者為imToken 郭輝。


譯者註:隨著以太坊第三階段 Metropolis ("大都會")臨近(區塊高度 4370000),imToken 用戶非常關注此次硬分叉將帶來的影響。簡短說明一下:imToken 會處理好所有節點升級和硬分叉帶來的變化,用戶無需任何操作,本次分叉也沒有預期會產生新的幣種。為讓大家更好理解 Metropolis 技術升級的細節,翻譯此文,歡迎指正。

作為以太坊的里程碑事件,大都會終於要來到我們身邊了。以太坊開發團隊計劃於9月18日在測試網路上測試"大都會"(Metropolis),測試至少3周時間。如果測試正常,"大都會"將被部署在主網路。所以,升級到"大都會"階段的最早時間是10月9日(譯者註:實際部署時間已經推遲)。所以,問題來了:

  • 什麼是"大都會"?

  • "大都會"會給乙太網絡帶來什麼新的特性?

  • "大都會"後會分叉產生新的 Ethereum?

  • 以太幣的價格會上漲嗎?

這些問題在本指南都可以找到答案。

(一)何謂「大都會」之以太坊的四大階段

這不是以太坊第一次升級,也不會是最後一次。以太坊不僅僅被設計為一種貨幣模式,更是一個去中心化的應用平台。在最終達到這個目標之前,它需要經歷不同的增長階段,在每一個階段,以太坊都會引入不同的特性來使得系統變得更加穩定和強大。 以太坊的完整發展路線分為四個階段,即"前沿"(Frontier)、"家園"(Homestead)、"大都會"(Metropolis)和"寧靜"(Serenity)。"大都會"是以太坊發展的四個階段裡面的第三個,隨著它的到來,以太坊將會增加許多有趣的特性,下面介紹一些會對以太坊造成重大影響的特性,即:

  • zk-Snarks

  • PoS(Proof of Stake , 即權益證明)早期實施

  • 智能合約的靈活性和穩定性

  • 抽象賬戶

(二)"大都會"之四大特性特性1:zk-Snarks

"大都會"最大和最重要的特性就是執行 zk-Snarks,zk-Snarks 全稱 Zero-Knowledge Succinct Non-Interactive Argument of Knowledge,即"簡明非交互零知識證明"。zk-Snarks基於"零知識證明"(zero knowledge proof,即ZKP)。

何謂"零知識證明"?

"零知識證明"是由 S.Goldwasser、S.Micali 及 C.Rackoff 在 20 世紀 80 年代初提出的。它指的是證明者能夠在不向驗證者提供任何有用的信息的情況下,使驗證者相信某個論斷是正確的。"零知識證明"實質上是一種涉及兩方或更多方的協議,即兩方或更多方完成一項任務所需採取的一系列步驟。證明者向驗證者證明並使其相信自己知道或擁有某一消息,但證明過程不能向驗證者泄漏任何關於被證明消息的信息。大量事實證明,"零知識證明"在密碼學中非常有用。如果能夠將"零知識證明"用於驗證,將可以有效解決許多問題。 "零知識證明"能夠成立必須具備以下三個要素:

  • 完整性:如果聲明為真,那麼一個誠實的驗證者可以被誠實的證明者相信;

  • 可靠性:如果聲明為假,不排除有一定概率欺騙者可以說服誠實的驗證者它是真的;

  • 零知識:如果聲明為真,那麼驗證者在證明過程中並不知道任何關於聲明的消息;

"零知識證明"並不是數學意義上的證明,因為它存在小概率的誤差,欺騙者有可能通過虛假陳述騙過證明者。換句話來說,"零知識證明"是概率證明而不是確定性證明。但是也存在有技術能將誤差降低到可以忽略的值。 零知識的形式定義必須使用一些計算模型,最常見的是圖靈機的計算模型。

下面舉兩個例子說明零知識證明:

1)假設有一個房間只能用鑰匙打開鎖,其他任何方法都打不開。Alice 要向 Bob 證明自己擁有這個房間的鑰匙,這時有2個方法: ① Alice 把鑰匙出示給 Bob,Bob 用這把鑰匙打開該房間的鎖,從而證明 Alice 擁有該房間的正確的鑰匙。 ② Bob 確定該房間內有某一物體,Alice 用自己擁有的鑰匙打開該房間的門,然後把物體拿出來出示給 Bob,從而證明自己確實擁有該房間的鑰匙。

後面的 ② 方法屬於零知識證明。好處在於在整個證明的過程中,Bob 始終不能看到鑰匙的樣子,從而避免了鑰匙的泄露。

2)這是一個很經典的例子:有一個缺口的環形長廊 ,出口和入口距離非常近(在目距之內),但走廊中間某處有一道只能用鑰匙打開的門,Alice 要向 Bob 證明自己擁有該門的鑰匙。採用零知識證明,則 Bob 看著 Alice 從入口進入走廊,然後又從出口走出走廊,這時Bob沒有得到任何關於這個鑰匙的信息,但是完全可以證明Alice擁有鑰匙。 file 上面這兩個例子都是零知識證明在現實世界的"運作",那麼我們如何通過 ZK-Snarks 實現零知識證明在區塊鏈中的應用呢?

深度 | 以太坊「大都會」終極指南:現在正在發生什麼?!

zk-Snarks如何工作?

zk-Snarks由3種演算法組成:G、P、V。

G是一個密鑰生成器,需要通過生成隨機變數 L(必須保證任何情況下不能泄露)和程序C。然後生成兩個公鑰——證明公鑰 Pk 和驗證公鑰 Vk ,這兩個公鑰都是公開的,任何人都可以查 看。

P是證明者,需要輸入三個參數,即證明公鑰 Pk、公開的隨機輸入散列值 x 以及需要證明的隱私聲明 w 。P 演算法生成證明 prf ,函數表達為:prf = P ( Pk , x , w )

V 作為驗證者將會返回一個布爾類型的結果,即 true 或者 false 。V 將驗證公鑰 Vk 、P 中的隨機輸入散列值 x 以及證明 prf 作為輸入參數進行驗證,即 V (Vk , x , prf)。如果證明者正確,返回 true ,否則返回 false 。

由以上G、P、V三者的關係可以看出,隨機變數 L 至關重要,必須保密。因為任何人都可以用它來生成假的證明,這些假的證明也能返回 true ,而不管證明者是否擁有隱私聲明 w 的知識。 下面讓我們繼續回到我們的老朋友 Alice 和 Bob 的身上,Alice 是證明者,Bob 是驗證者。

Bob 作為驗證者第一件事就是要使用 G 生成證明公鑰 Pk 和驗證公鑰 Vk ,為此他需要生成隨機變數 L,正如上面提到的,Bob對 L 必須非常小心,他不能讓 Alice 知道 L 的價值以防 Alice製造假的證明。

既然Bob生成了兩個公鑰,Alice 需要生成證明 prf 來證明聲明的有效性。她將使用證明演算法P生成證明,來證明她知道隱私聲明 w 的哈希值為 x 。接下來 Alice 將把這些證明參數交給最終運行ZK-Snarks驗證演算法的 Bob 。Bob 將會使用驗證演算法 V (Vk , x , prf)來驗證結果,如果返回 true ,則 Alice 很真誠,確實知道隱私聲明 w 是什麼。如果返回 false ,則 Alice 在說謊她知道 w 是什麼。

以太坊 & zk-Snarks

以太坊和 Zcash (Zero Cash,完全基於 zk-Snarks 的一種加密貨幣)正在緊密合作,如果你問我把 zk-Snarks 和區塊鏈結合最緊密的是誰,那毫無疑問是 Zcash 。就個人而言,我已經迫不及待的想看到大都會和 zk-Snarks 的結合了。

特性2:PoS(Proof of Stake,即權益證明)早期實施

這一部分我們將會詳細闡述吵得沸沸揚揚的 PoS 協議,並和 PoW (Proof of Work,工作量證明)作比較。

PoS vs PoW

PoW:包括 ETH 和 BTC 在內的絕大多數主流加密貨幣採用的就是這種協議,PoW 需要礦工(或者節點)不斷消耗算力進行哈希計算,以找到期望的隨機數,這就意味著系統需要消耗大量的算力和電力。

PoS:在這個系統里,我們有驗證者而不是礦工,它的原理是,作為驗證節點,首先你必須擁有一定數量的以太幣,根據以太幣的數量和時間會產生用於下注驗證區塊的權益。只有擁有權益的節點才能有效驗證區塊,當你驗證的區塊被打包進鏈,你將獲得和你權益成正比的區塊獎勵。如果你驗證惡意或錯誤的區塊,那麼你所下注的權益將被扣除。

為了實施 PoS,以太坊將採用 Casper 的共識演算法,一開始,它將是一個 PoW 和 PoS 共存的系統,區塊的絕大多數交易還是採用 PoW 協議,每100個區塊有一個採用 PoS 協議挖出,這樣做的目的就是為在以太坊平台上創建了一個真實的測試環境,但是這種協議究竟能給以太坊帶來什麼好處呢?讓我們慢慢道來:

  • 降低系統的整體能源成本:全世界的比特幣礦工每小時耗資約5萬美元,一年耗資約4.5億美元!通過使用 PoS 協議,你可以將整個過程虛擬化,大幅減少成本;

  • 無 ASIC 優勢:由於整個過程是虛擬的,它將不再依賴誰有更好的設備或者 ASICs 。

  • 51%攻擊變得更困難:PoW 協議存在算力集中問題,51%攻擊風險很大,PoS 則讓這一攻擊變得更加困難;

  • 無惡意驗證者:任何驗證者都需要將其權益鎖定在區塊鏈中,將確保他們不會向鏈中添加任何惡意或錯誤的塊,因為這意味著所有權益將被扣除;

  • 創建區塊:出塊和整個進程都會更快(後面會詳細介紹);

  • 可拓展性:通過引入「分片」概念,讓區塊鏈變得可拓展;

雖然之前有過各種各樣的簡單的 PoS 協議部署過,但是真正讓 Casper 共識演算法從中脫穎而出的是它能激勵誠實的礦工並且懲罰不誠實的礦工,如果你試圖去驗證惡意的區塊,那不好意思,你所有的權益將被扣除,它會狠狠地懲罰任何不遵守遊戲規則的人。

Vitalik 是這樣解釋的:

想像現在有 100 個人圍著圓桌,其中有一個人拿著很多張紙,每張紙記錄著很多筆歷史交易信息。第一個人拿起筆簽完後遞給第二個人,第二個人也做出了相同的選擇,如果大多數人做出了相同的選擇,即都簽署了同一張紙那麼每一個參與者會獲得1美元,當你做出和絕大多數人不同的選擇時,那麼你的房子就會著火!

然後他補充道,這可能是一個比較正確的激勵措施去保證大家都能簽署正確的紙張!那麼:

  • 什麼是時間 "難度炸彈"?
  • 如何激勵礦工從 PoW 轉向 PoS?

礦工花費了大量的金錢購買設備用於挖礦,然而隨著 PoS 的到來,大量的設備變得一文不值;想像一下,花費大量金錢搭建的超級複雜的礦池突然變得毫無用處!

如果真的不能阻止礦工停留在 PoW 上繼續挖礦,那將會創建三種以太坊幣:ETC、ETH-PoW、ETH-PoS,這對以太坊絕對是個噩夢!因為那不僅會降低以太坊的可信度和經濟價值,還會稀釋整個系統的哈希值比例,使得它更容易被黑客攻擊!

為了確保以太坊的礦工能加入到新鏈條中來,開發團隊引入了"難度炸彈"機制。"難度炸彈" 是在2015年9月7日推出的,想要了解"難度炸彈"是如何工作的,首先我們需要了解什麼是 "難度" 和挖礦。

什麼是 "難度" 以及它是如何工作的?

"難度" 這一概念起源於比特幣,比特幣在最初的時候,由於挖礦的人比較少,挖礦顯得比較簡單,任何人只要使用他們的電腦都可以從事挖礦活動。隨著比特幣越來越受歡迎,礦工的數量也越來越多,為了防止過早的把所有的比特幣都挖完,中本聰在比特幣中一開始就引入了難度系統。

難度系統的工作原理大致如下:礦工們使用他們的電腦算力進行解密,解密的過程就是隨機地往已經進行過哈希運算的區塊上添加一個隨機字元串(也叫隨機數),然後對整個字元串再進行一次哈希運算。如果結果數小於某個特定的數值,則認為解密正確,並且會將這個新的區塊添加到鏈上。然而找到這個隨機數通常是及其困難和隨機的,這正是挖礦的核心所在。

這一過程也可以簡明扼要的總結如下:

  • 獲取新塊內容的哈希值

  • 將隨機字元串添加到區塊上

  • 對新的字元串再次哈希運算

  • 然後將最終的哈希與難度係數進行比較,是否小於等於難度係數。

  • 如果不是,則改變隨機數重新進行運算

  • 如果是,則將新的區塊添加到鏈上並對全網進行廣播

  • 相應的礦工將獲得新區塊的獎勵

比特幣的難度每 2016 個區塊調整一次,難度係數與出塊的速度成正比,比特幣每 10 分鐘產生一個新的區塊。如果出塊時間低於 10 分鐘,則難度係數增加;否則難度係數減少,比特幣就是通過調整難度係數來保證出塊的時間能始終保持在10分鐘左右。

以上就是比特幣挖礦的工作機制,以太坊也採用了相同的協議。

那麼以太坊的"難度炸彈"又將如何呢?

難度炸彈將會使難度係數呈指數增加以至於讓挖礦變得幾乎不可能。就像我們之前說的,難度係數會根據出塊的速度進行調整,以太坊的難度調整演算法如下:

block_diff = parent_diff + parent_diff // 2048 * max(1 – (block_timestamp – parent_timestamp) // 10, -99) + int(2**((block.number // 100000) – 2))

(In here 「//」 is the division operator such that 6//2 = 3 and 9//2 = 4.)

下面讓我們用更直白的方式來講清楚上面兩行代碼的意思:

block_timestamp: 最新一個區塊出塊時刻;

parent_timestamp:上一個區塊出塊時刻;

如果 (block_timestamp - parent_timestamp)

如果 (block_timestamp - parent_timestamp)在10-19秒之間,則難度係數保持不變。

如果 (block_timestamp - parent_timestamp)> 20 秒,則將parent_diff // 2048 * -1的難度降低到最大值parent_diff // 2048 * -99。

這就是以太坊在"家園"(Homestead)階段的難度調整演算法,它最終的結果就是使出塊時間始終穩定在15秒。而"難度炸彈"在於它會使難度係數呈指數增加,從而出塊的時間也會顯著增加,直到最後幾乎挖不出區塊,我們把這一狀態稱為「以太坊冰河期」(Ethereum Ice Age),到那時,礦工除了轉向新的PoS協議將別無選擇。

難度炸彈會在「大都會」時期引爆嗎?

難度炸彈原本計劃在2017年年底引爆,現在看來似乎比原計劃推遲了一年半,然而,隨著大都會的到來,開發團隊將通過其它兩個措施使其平穩過渡到 PoS。即:

部署之前提到的 Casper 演算法,每 100 個區塊將有一個採用 PoS 協議挖出

每個區塊的獎勵由之前的 5 個 ETH 減少為3個

所有的這些措施都是為了在以太坊的最後一個階段"寧靜"(Serenity)到來之前所有的節點都能部署好 PoS 協議並且消除之前遇到的問題。

特性3:智能合約的靈活性和穩定性

可以毫不誇張地說,智能合約就是以太坊的命脈。 智能合約是如何在以太坊中被執行的呢?可以用一個簡單的例子來說明,假設 Alice 和 Bob 在沒有任何第三方干預的情況下完成某個交易或功能,Alice 要 Bob 完成一個任務,Bob 收取一個 ETH ,Alice 將一個 ETH 放在盒子里,如果Bob 執行任務,那麼盒子里的 1 個 ETH 會自動到 Bob 的賬戶,否則,那 1 個 ETH 自動返回到Alice的賬戶。在這個例子中,盒子就像智能合約,雖然這個例子比較粗略,但它仍然能幫你了解智能合約是如何工作的。 那麼以太坊給智能合約帶來了什麼創新能使它變得更好呢?

智能合約如何在以太坊中發揮作用?

假設 Alice 讓 Bob 執行一個智能合約,該合約中的每個功能需要 Bob 使用某些計算能力。這種計算能力被稱為 gas ,支付這種算力的錢叫做 ETH 。通常比特幣中為所有的交易支付相同的費用,但以太坊能為每個智能合約設置所花費的算力(即 gas )。每個智能合約都有自己 gas 的限制值,這個限制值由合約創建者設置,顯然,這會導致兩種情況發生:

所需要的 gas 大於限制值:如果是這種情況,合約執行狀態將會回滾到之前的狀態,同時 gas 將會全部消耗掉。

所需要的 gas 小於限制值:如果是這種情況,合約成功執行,同時剩餘 gas 將會返回給合約創建者。

如果有人想在合約執行期間返回到較早的狀態,需要手動觸發異常。例如,如果有人想阻止某筆交易,那麼他為此不得不付出雙倍代價。為了將合約回滾到之前的狀態,開發人員可以使用 "throw" 功能,雖然 "throw" 功能確實有助於合約狀態回滾,但同時也會耗盡合約中所有的 gas 。 為了解決這個問題,"大都會" 正在加強 "revert" 功能,它能使合約恢復到之前的狀態而不用耗光所有的 gas ,合約中未使用的 gas 將會退還給合約創建者。伴隨著 "revert" 功能,"大都會" 正在通過引入 "returndata" 指令讓合約能恢復到一個任意可變大小 gas 的狀態。

特性4:抽象賬戶

在我們正式了解什麼是抽象賬戶之前,讓我們首先來了解一下什麼是"抽象"。"抽象"的意思是任何人都可以使用某個系統或者協議而不必完全了解它內部或外部的技術細節。例如當你使用你的 iPhone 時,你不需要是一名程序員或者工程師,你只需要按壓或者滑動屏幕就能使用 APP 或者打電話。你也不需要知道這些 APP 是如何激活 iPhone 內部的電路的。總而言之,"抽象"能夠極大降低普通民眾使用複雜技術的門檻。正因為如此,"抽象"才成為以太坊未來要實現的一部分,想像一下,在一個去中心化的未來,每一個人都在使用 DApps,他們甚至察覺不到這些 DApps 是基於以太坊的,"大都會" 正在通過引入 "抽象賬戶" 向實現這一宏偉目標邁出了重要的一步。

眾所周知,現在的以太坊有兩類賬戶,即外部賬戶和合約賬戶。外部賬戶由私鑰控制,合約賬戶由創建者編寫的代碼控制。以太坊正在試圖模糊二者的界限,即你可以同時擁有合約賬戶和外部賬戶,這種做法本質上就是讓用戶按照合約賬戶的格式來定義外部賬戶。一旦這樣做,代碼支持密鑰將用戶特殊的標識加入到交易中,可是這又有什麼用呢?因為你可能會說隨著量子計算機的發展,它會讓加密貨幣變得不那麼安全,假設你想保存一筆被量子計算機攻擊過的交易,那又該怎麼辦呢?隨著"抽象賬戶"的實施,你可以使用簽名機制就像哈希梯子一樣來定義你的賬戶,這樣你的賬戶就會具備量子級別的安全性,同時你的賬戶也會完全變成可定製化, 就像智能合約一樣。

(三)"大都會"之番外篇什麼是"拜占庭"和"君士坦丁堡"?

熟悉以太坊的朋友對"拜占庭"和"君士坦丁堡"應該都不會陌生,那麼這兩個術語究竟是什麼意思呢?"大都會"為以太坊帶來了大量重要的特性,不可能一次性引入這麼多特性,畢竟開發人員精力也有限,這就是為什麼以太坊要通過兩個階段發布"大都會"並且這兩個階段都會硬分叉,而這兩個階段就是"拜占庭"和"君士坦丁堡"。 經過幾次推遲以後,"拜占庭"將在第4370000區塊左右硬分叉。 "拜占庭"將會引入大量新特性,主要包括前面講的:

  • zk-Snarks

  • "revert"功能和"returndata"指令

  • 抽象賬戶

"君士坦丁堡"具體什麼時候部署還不太清楚,但是應該會在 2018 年部署。它主要的特性就是平滑處理掉所有由於"拜占庭"所引發的問題,並引入 PoW 和 PoS 的混合鏈模式。

以太坊將會再次硬分叉?會產生第三種以太幣嗎?

由於之前發生的 ETH-ETC、BTC-BCC 硬分叉,人們開始想當然的認為所有的硬分叉都必然會導致鏈條分裂,事實上根本不是這樣。 之前硬分叉導致鏈條分裂的主要原因是提出的修改方案在社區有很大的爭議,不是所有人都同意。然而,"大都會"的這次升級已經在社區一致同意過了,大家都知道這終將到來,這次硬分叉是升級的結果,不是緊急情況下的臨時處理辦法。這就是為什麼不會有任何社區分裂,不會有新的以太幣。可能存在的爭論焦點就是 PoS 的實施,當然,爭論也沒用,礦工不會因為留在舊鏈上而獲得更多的收益,相反,就像前面所說的那樣,"難度炸彈"的引爆將會使挖礦變得幾乎不太可能。

以太坊"大都會"結論:現在正在發生什麼?

那麼以太幣的價格會上漲嗎?我們不知道,我們不是投資顧問,投資任何一個虛擬貨幣之前,你都需要自己去做一定的研究。拜占庭給以太坊帶來如此多的改變,很興奮它最終會變成怎樣。zk-Snarks 的執行也是一項勇敢的改變。當然,"君士坦丁堡"和它的 PoS 將會成為密碼世界裡每個人都會關注的事情。即將到來的一年在以太坊去中心化的道路上絕對是革命性的!

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

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


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

世界最大黃網要用 AI 「鑒黃」,還號稱要讓鑒黃師下崗
中國旅遊研究院院長:攜程搭售無可厚非,最重要的是打破行政、資本的共同壟斷
高通尋求在華禁售禁產iPhone,蘋果反擊;中國旅遊研究院院長:搭售、包價再正常不過了
亞馬遜擬進軍運動服飾領域,將與台灣兩家代工商合作
Santa Cruz 二代原型機上手體驗:最大的進步是鏡片和顯示器

TAG:雷鋒網 |