2019 年的第一次升級,比以往時候來得都要早一些!

十問十答「君士坦丁堡」

在正式開始此次「君士坦丁堡」升級說明之前,先簡明扼要的回答 imToken 用戶或者社區朋友最關心的一些問題:

Q:一句話回答什麼是君士坦丁堡?

A:是以太坊社區一次幾乎沒有爭議的硬分叉升級,以改善以太坊網絡。

Q:什麼時候升級?

A:主網區塊高度 7080000 激活,北京時間大致在 1 月 14 日到 18 日之間。

Q:我是否會得到分叉幣?

A:幾乎不會,因爲是一次幾乎無爭議的升級,和 BCH 分叉不一樣,不一樣!

Q:如果我的 ETH 放在錢包,我需要做什麼以應對這次升級?

A:什麼都不需要做!

Q:如果我是以太坊礦工,我需要做什麼以應對這次升級?

A:升級客戶端,並且確保你在新的鏈上挖礦。

Q:這次升級是否會加入 PoS 共識?

A:不會,傳聞中的 PoW/PoS 混合共識也不會在這次升級之列。

Q:這次升級到底升級了什麼?

A:升級的主要內容都包含在 5 個 EIP (Ethereum Improvement Proposal,即以太坊改進建議的縮寫) 當中,即 EIP145、EIP1014、EIP1052、EIP1234、EIP1283。

Q:爲什麼這次升級有人問我要私鑰?

A:任何時候問你要私鑰的都是騙子!要警惕!

Q:這次升級以太坊的價格會漲嗎?

A:我也不知道,一半一半吧。

Q:這次升級會不會部署 ProgPoW (一種對 ASCII 礦機不友好、對 GPU 挖礦友好)算法?

A:不會,技術開發完成以及部署還沒有確定的時間表。

「君士坦丁堡」升級了什麼

其實,這次升級主要的改進基本都濃縮在上面提到的五個 EIP 裏面,即 EIP145、EIP1014、EIP1052、EIP1234、EIP1283:

  • EIP145:出自以太坊開發人員 Alex Beregszaszi 和 Pawel Bylica;主要引進了一種叫做「按位移動」(bitwise shifting)的運算符。以太坊虛擬機(EVM)之前缺少這種運算符,只支持其他邏輯和算數運算符,「按位移動」運算符只能通過邏輯和算數運算符實現,現在通過原生支持「按位移動」運算符,能大大優化 DApp 開發者智能合約的 Gas 消耗。
  • EIP1014:以太坊創始人 Vitalik Buterin 親自提出;新增了一個合約創建函數 CREATE2,提供了一種可以提前預測合約地址的合約創建方法,該升級能更好的支持基於狀態通道或者鏈下交易的擴容解決方案,即現在主流的 Layer2 方案。
  • EIP1052:出自以太坊核心開發人員 Nick Johnson 和 Pawel Bylica;引入了一個新的操作碼,允許直接返回合約字節碼的 keccak256 哈希值,該升級能有效減少以太坊網絡對於大型智能合約的運算量,尤其是隻需要智能合約的哈希值的時候。
  • EIP1234:該升級主要是將現有的區塊獎勵由 3 ETH 減少到 2 ETH,減產 33%,同時將難度炸彈(difficulty bomb)推遲 12 個月。
  • EIP1283:該升級通過更改 SSTORE 操作碼優化智能合約網絡存儲的定價(Gas),減少和智能合約運行量不匹配的 Gas 消耗。
  • 從上述五個核心的改進 EIP 來看,此次升級包含了從以太坊底層虛擬機到智能合約的一系列內容,提高了整個以太坊網絡的性能。當然普通用戶或者礦工感受最明顯的可能就是難度炸彈延緩一年、區塊獎勵從 3 減少到 2、ETH 減產 33%、Gas 計算方法的調整。

「君士坦丁堡」升級對整個以太坊意味着什麼

對以太坊網絡性能

EIP145 和 EIP 1052 都是從改進以太坊底層虛擬機(EVM)的角度去提升整個網絡的性能,EIP145 通過引入更底層的運算符「按位移動」,從而提供更高效率的數值計算實現,使得某些智能合約的運行速度更快,消耗 Gas 更少。

EIP 1052 則是改進了鏈上智能合約的運行機制,一般情況下,智能合約都需要檢查其他合約的字節碼(bytecode),但在很多情況下,智能合約本身並不需要其他合約的字節碼,所以通過引入新的操作碼,直接返回合約字節碼的 keccak256 哈希值,不需要直接檢查其它合約的字節碼,使得鏈上智能合約的運行更高效,同時也更經濟(消耗的 Gas 更少)。

當然還有 Vitalik Buterin 親自操刀的 EIP 1014,本質上是優化了對狀態通道的支持,使得現在社區裏面一些通過第二層網絡(Layer 2)解決以太坊擴容的方案能夠真正發揮作用(比如 Raiden Network、OmiseGo、Loom Network 等,當然前提是這些項目會主動採用)。在以太坊正式邁向 PoS 之前,通過對狀態通道的支持來緩解拓展性上飽受詬病的以太坊網絡不失爲一個明智的選擇。

對開發者

對於以太坊上的智能合約或者 DApp 開發者來說,EIP145 和 EIP1052 通過提升智能合約的驗證速度,能有效改進某些大型智能合約的運行時間和成本。

EIP1283 則是通過對以太坊網絡數據存儲的變更引入更加公平的定價方式,在一定程度降低開發者開發或者調整智能合約的成本(Gas)。

總之,這次升級能夠降開發者的開發成本,對開發者無疑是友好的。

對礦工

對於礦工來說,EIP1234 應該是對他們影響最大的一個改進,當然這也可能也是此次升級相對而言爭議最大的一項內容,因爲這意味着礦工的區塊獎勵直接減少三分之一,挖礦成本相對增加,至於會不會出現某些人口中的礦機關機潮加劇,礦工轉向其他幣種,這個我不知道,我只知道,對於礦工、開發者、投資者、以太坊價格幾方而言,這是一個典型的博弈論問題。

不過對於以太坊的礦工來說,從以太坊的白皮書 2013 年發佈以來,從他們決定挖以太坊的那一刻開始,心裏應該就會想到會有今天,只是早晚的問題,因爲以太坊的白皮書裏白紙黑字寫着最終整個網絡會實現從 PoW 切換到
PoS,「君士坦丁堡」升級的區塊減產只是爲了抑制 PoS 真正到來前的 ETH 供應量的「通貨膨脹」,同時短期平衡礦工的利益。所以這些應該都是一次預期內的升級,不應該過度反應。

對普通投資者

首先,就像文章開頭的問答裏所說的,對於此次升級,普通的 ETH 持有者(不管是放在錢包還是交易所)不需要進行任何額外操作,原因很簡單,這是一次預期內的、幾乎沒有爭議的、平穩過渡的升級,理論上也不會有所謂的糖果(或分叉幣)產生,imToken
也會及時升級或同步好最新的節點。

當然萬一出現所謂的分叉,我們也會第一時間公告,你同樣幾乎也不需要做什麼。

關於「君士坦丁堡」,你還需要了解什麼

何謂以太坊「君士坦丁堡」升級?

這不是以太坊第一次升級,也不會是最後一次。以太坊不僅僅被設計爲一種貨幣模式,更是一個去中心化的應用平臺。在最終達到這個目標之前,它需要經歷不同的增長階段,在每一個階段,以太坊都會引入不同的特性來使得系統變得更加穩定和強大。根據以太坊網絡的開發路線,總共需要經歷四個階段,以太坊的開發團隊給這四個階段都取了一個聽起來比較浪漫的名字,即:

第一階段,邊境(Frontier,2015 年 7 月):以太坊的第一次版本發佈,允許開發人員對以太坊進行挖礦,並基於以太坊進行 DApp 與工具軟件的開發。

第二階段,家園(Homestead,2016 年 3 月):發佈了第一個生產環境版本,對許多協議進行了優化改進,爲之後的升級奠定了基礎,並且加快了交易速度。

第三階段,大都會(Metropolis,2017 年 10 月):第三階段分爲兩次升級,分別命名爲拜占庭(Byzantium,2017 年 10 月)和君士坦丁堡(Constantinople,2019 年 1 月),將會使得以太坊更輕量、更快速、更安全。

第四階段,寧靜(Serenity,時間待定):這個版本將會使用期待已久的 PoS 共識,其中將會使用 Casper 共識算法。

其中第三階段「大都會」是四個階段裏面最關鍵的一步,因爲其作爲最終 PoS 共識到來前的探路者,它的穩定部署對於最終的「寧靜」階段的平穩過渡至關重要,而此次「君士坦丁堡」升級作爲「大都會」的最後一步,它的改進方向或者佈局同樣令人期待!

PoS vs PoW

如果你對區塊鏈有所瞭解,你應該在很多場合聽到或看到過 PoW 和 PoS,這裏我們再重複一次!

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

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

需要注意的是,以太坊現階段是 PoW,然而在最終第四階段完成前,會切換到 PoS,當然,在完全 PoS 前,會經歷一個 PoW + PoS 混合共識的階段,這也是爲了讓整個切換更平穩,只是並不包含在此次升級的內容裏。

以太坊升級 & 比特幣分叉

衆所周知,以太坊已經經歷過多次升級,事實上每一次升級理論上都有分叉的風險,可現實卻是基本沒有發生過分叉(2017 年的 ETC 分叉除外),其實這和以太坊的升級機制以及社區的意見一致性息息相關,以太坊每次升級都會在代碼裏面加入「難度炸彈」(difficulty bomb),用於阻止礦工拒絕切換至新的以太坊鏈上,因爲難度炸彈將會大大增加礦工們的挖礦難度,進而會打擊礦工們挖礦的積極性。這也對以太坊開發者帶來了很大壓力,因爲他們需要在難度炸彈造成的「冰河世紀」到來之前(隨着難度炸彈向前推進,使得平均挖出區塊的時間越來越長)完成 PoS 的切換,當然「難度炸彈」的部署只是一方面,更重要的原因是每次升級基本都是沒有爭議的,從開發者到礦工,再到錢包和交易所,很少出現不配合的聲音,這一點和現如今的比特幣分叉有本質區別,比特幣社區的分叉有歷史的原因,包括開發者和礦工關於比特幣未來的發展方向的不可調解的分歧,也可能夾雜着利益的關係。

此次升級之後理論上會出現兩條鏈,但舊鏈將很快被棄用。同時,與此前的升級類似,普通用戶將不會注意到任何變化,也不會注意到出現了分叉。

軟分叉和硬分叉

軟分叉和硬分叉最大的區別就是能否支持向後兼容,支持向後兼容的是軟分叉,不能向後兼容的就是硬分叉。什麼意思呢?假設你正在 Windows 操作系統上使用 Word 2003,現在升級至 Word 2016 版本,這時候新版本能完全打開 Word 2003 版本創建的文件,這就說明這次升級能向後兼容,就是一次軟分叉;如果 Word 2016 不能打開 Word 2003 創建的文件,就說明升級是硬分叉。比特幣的硬分叉就意味着新老節點會維護兩條不同的鏈,軟分叉不會導致鏈條分叉。

所以這次以太坊「君士坦丁堡」是一次硬分叉,因爲新客戶端不會兼容老客戶端,但是不會產生真正的分叉幣,因爲礦工或節點對這次升級不存在大的爭議,所以都會盡快更新到最新的客戶端,也就意味着大家都會在新的鏈上生產區塊。

EIP & BIP

EIP,Ethereum Improvement Proposal,即以太坊改進建議的縮寫,這也是以太坊開發者或者社區開發者之間關於網絡改進建議的溝通方式。通常社區開發者在協作時,會先提出一些改進意見,並以 EIP 的方式體現,其它開發者會對這些 EIP 發表意見,如果某個 EIP 獲得比較廣泛的支持,則有可能會加入到某次升級裏。相應的,BIP 就是指比特幣改進建議。

最後,根據 Etherscan 上以太坊主網的區塊高度預計真正的升級時間大概率在北京時間 16 日 ~17 日左右,而我們要做的,就是靜靜的等待那一刻的到來,以太坊雖然充滿爭議和挑戰,但是依然值得期待!