文/TLABResearch,轉載自小蔥區塊鏈
摘要
萬眾矚目的以太坊“君士坦丁堡”硬分叉計劃於以太坊區塊高度7,280,000上進行,預計北京時間3月1日。本次以太坊的技術升級,採用的是硬分叉方式。所謂硬分叉是指透過修訂協議引入新的特性,可能會使前一版本的協議失效。因此,硬分叉造成的規則改變無法向前相容,舊節點無法確認新節點產生的區塊,於是新舊節點會開始在不同的鏈上執行。
在設計之初,以太坊的目標就不僅僅是作為一個類似比特幣的數字貨幣,而是一個去中心化的應用平臺。在達到最終目標之前,它需要經歷不同的升級階段,在每一個階段以太坊都會引入新的特性來使得系統變得更加穩定和強大。為此,以太坊的創始團隊為其設定了四個發展階段:前沿(Frontier),家園(Homestead),大都會(Metropolis),寧靜(Serenity),而不同階段之間的轉換都透過硬分叉的方式來實現。
本次的“君士坦丁堡”硬分叉屬於以太坊大都會的第二個階段,主要包含了EIP-145、EIP-1052、EIP-1283、EIP-1014和EIP-1234共5項更新方案。這些提案主要用於改善在以太坊上部署智慧合約的成本和效率;其中最受關注的兩個提案是EIP-1014和EIP-1234。其中EIP-1014主要是引入狀態通道,用於交易結算的鏈下進行,以此提高以太坊網路的吞吐量;另一個EIP-1234提案則是減少區塊獎勵,延遲難度炸彈,這直接減少了礦工的收益。
以太坊本次的升級主要為之後的革命性變革打下基礎。開發體驗以及效率均會得到一定的改善,開發者以及使用者均會受益。而推遲難度炸彈以及出塊獎勵的降低,正是為下次的升級最好準備。在市場影響方面,由於本次硬分叉計劃一再推遲,早已耗盡了市場的耐心,同時本次升級也沒有給以太坊帶來實質性的變革,因此預測對ETH價格的影響不大。
風險提示:數字貨幣市場具有高投機性與高風險性,監管部門對數字貨幣市場的監管態度尚不明確
正文
1.背景介紹
君士坦丁堡硬分叉作為以太坊Metropolis(大都會)的第二階段,目的是透過降低費用、提升區塊鏈效率等方式,為以太坊最終過渡至第四階段的PoS機制打下基礎。君士坦丁堡硬分叉名字的起源來自於東羅馬帝國首都君士坦丁堡,由於以太坊創始人Vitalik是俄羅斯人,而俄羅斯在歷史上繼承了東羅馬帝國東正教的傳統,因此以此命名。
日前,以太坊基金會的發言人表示以太坊“君士坦丁堡”分叉將於3月1日啟用;屆時,本輪硬分叉的相關改進方案將在以太坊主網上正式部署。市場普遍認為,透過本次硬分叉,以太坊在交易處理速度上將大幅上升,而ETH產量的縮減有助於其價格的上漲。現在就讓我們來認真研究一下此次的“君士坦丁堡”硬分叉以及對以太坊的未來影響。
1.1. 硬分叉和軟分叉
眾所周知,區塊鏈是一個分散式的共識系統。對於一個分散式的系統,想要引入一些新的特性必須協調好系統中的各參與者。因為在每次系統的升級時,並不是所有的節點都會及時更新版本,這樣就導致升級了軟體的節點和未升級軟體的節點執行在不同的規則之下,於是就產生了分叉。舉一個簡單的例子,我們在使用Microsoft的Word 2003 與Word 2016時會發現很多格式不相容,而區塊鏈網路的分叉也與此類似。而在介紹“君士坦丁堡”之前,我們還需要理解什麼是硬分叉和軟分叉。
所謂硬分叉,是指透過修訂協議引入新的特性,可能會使前一版本的協議失效。即執行新版本協議的節點認定為有效的區塊,會被執行舊版本協議的節點認定為無效。老節點會認為其他分支才是區塊鏈最長、有效的分支,並一直拓展這個分支,直到全部舊節點都升級版本後分叉才會結束;而軟分叉則是對協議加入了新的特性,讓現有的驗證規則更加嚴格。此時老節點依然會接收所有的區塊,而新區塊會拒絕一些,此時老節點可能會挖到一些無效的區塊,因此會激勵老節點去更新協議。這樣可避免硬分叉造成的永久分裂,只會產生一些臨時的小型分叉。
簡而言之,硬分叉造成的規則改變無法向前相容,舊節點無法認可新節點產生的區塊,於是新舊節點會開始在不同的鏈上執行;而軟分叉造成的規則改變是可以向前相容的,舊節點可以相容新節點產生的區塊。
1.2.以太坊的發展路線
在設計之初,以太坊的目標就不僅僅是作為一個類似比特幣的數字貨幣,而是一個去中心化的應用平臺。在達到最終目標之前,它需要經歷不同的升級階段,在每一個階段以太坊都會引入新的特性來使得系統變得更加穩定和強大。為此,以太坊的創始團隊為其設定了四個發展階段:前沿(Frontier),家園(Homestead),大都會(Metropolis),寧靜(Serenity),而不同階段之間的轉換都透過硬分叉的方式來實現。
1.2.1前沿(Frontier)
Frontier是2015年7月以太坊發行初期的試驗階段,作為以太坊的最初版本,其採用了一個類似Bitcoiners的模型。該階段的軟體還不太成熟,相當於一個空白版的以太坊網路,只有命令型介面,沒有圖形介面,但是可以進行基本的挖礦、學習、測試分散式應用(DApps)。此版本主要針對專業的開發人員,技術開發門檻較高。
1.2.2.家園(Homestead)
Homestead是以太坊第一個正式的產品發行版本,於2016年3月釋出。“家園”階段與“前沿”階段相比,沒有明顯的技術性里程碑,只是表明以太坊網路可以正常平穩地執行。以太坊團隊計劃在前期使用PoW機制,後期逐步轉向PoS機制。PoS機制的運用將會降低挖礦的門檻,因為在該機制下不需要再去購買價格高昂的硬體礦機,對礦工來說他們花高價購買的礦機將無用武之地,這勢必會引起礦工的不滿。為了防止PoW機制轉PoS機制的過程中礦工聯合起來抵制,從而分叉產生兩條公鏈,以太坊團隊在“家園”階段引入了難度炸彈。
所謂難度炸彈,是指計算難度時除了根據出塊時間和上一個區塊難度進行調整外,加上了一個每十萬個區塊呈指數型增長的難度因子。隨著區塊高度的增加,呈指數增長的難度因子比重將會顯著提高,使得出塊難度大大增加,礦工將難以挖出新的區塊。由於出塊越來越艱難,最後區塊將被完全凍結無法產生,這個過程又被稱作“冰川時代”(Ice Age)。有了這個預期,那麼轉PoS引起的硬分叉就不會是一個困難的選擇.。
難度炸彈的設計初衷是好的,然而由於各方面原因,以太坊轉PoS機制的計劃被不斷延遲,這也推遲了從PoW機制到PoS機制的轉換時間,為了維持以太坊網路的正常運轉,難度炸彈程式碼被多次修改以延遲“冰川時代”的到來,因此其激勵效果已經不比從前。
1.2.3.大都會(Metropolis)
“大都會”是以太坊發展的第三個階段,該階段將又分為兩個部分:分別是“拜占庭”和“君士坦丁堡”。我們現在正處於大都會的拜占庭階段,而在2019年的3月1日,以太坊將迎來“君士坦丁堡”分叉。
“拜占庭”分叉開始於2017年的10月,以太坊網路在第 4370000 區塊左右順利實現硬分叉。在該階段,以太坊仍然100%地採用PoW機制,但是以太坊引入了一個圖形介面,讓非技術使用者也能便捷使用,這就是Mist瀏覽器。此外,由於PoS機制的開發受阻,為了防止難度炸彈影響網路的效能,以太坊還將挖礦難度按照回退300萬個區塊的高度去計算,因此出塊的時間又回到15秒左右,但為防止通貨膨脹,區塊的獎勵也從5ETH減少為3ETH。
1.2.4.寧靜(Serenity)
“寧靜”是以太坊的第四個階段,具體進行時間待定。在該階段以太坊將完全使用PoS機制,此後以太坊網路將不再需要礦工挖礦。在Devcon 4大會中,以太坊創始人Vitalik詳細講述了寧靜階段以太坊將會發生的重大變化。
在“寧靜”規劃中,以太坊除了PoW鏈之外會新增一條PoS鏈—Beacon Chain。在這一條鏈上會有兩種角色—區塊生產者和驗證者。在鏈上存入32個ETH,即可成為確認人,確認人有權利產生區塊,也會有機會被選為驗證者。而在鏈上最終的確認方式也會由PoW的6區塊確認更改為Casper FFG finality確認。此外,由於PoS機制開發團隊與Sharding開發團隊合併,Shard Chain會在寧靜階段正式上線,用於真正處理資料,獨立運作,以提升以太坊的效率和安全性。
目前,寧靜階段將會分為四個階段完成,在Github上已經更新了前兩階段的標準,具體四階段安排如下:
第一階段:Beacon 鏈上線
第二階段:Shard 鏈上線
第三階段:EVM2.0 上線
第四階段:其餘改進完成
2.一波三折的“君士坦丁堡”硬分叉
2.1.“君士坦丁堡”的主要升級議案
在即將到來的“君士坦丁堡”硬分叉中,主要包含了EIP-145、EIP-1052、EIP-1283、EIP-1014和EIP-1234共5項更新方案,具體如下:
(1)EIP-145:逐位移動(bitwise shifting)
EIP-145主要由Alex Beregszaszi 和 Pawel Bylica兩位技術人員來編寫。當前以太坊虛擬機器缺少按位轉移的運算子,儘管位移操作可以透過算術運算子來實現,但成本比較高,處理的時間也比較長。例如,透過使用算術來實現左移和右移都需要消耗35 gas,而使用EIP-145方案後只需要消耗3 gas,因此採用EIP-145後執行某些智慧合約的成本將顯著減少。
(2)EIP-1052: EXTCODEHASH 操作碼
智慧合約通常都需要檢查其他合約的位元組碼(bytecode),但在很多情況下,智慧合約本身並不需要其他合約的位元組碼。檢查其他合約的位元組碼主要是透過 EXTCODECOPY 運算子來執行,因此如果需要檢查很多智慧合約,則將會很昂貴。因此,EIP-1052提議使用一種新的運算子—EXTCODEHASH,該運算子將返回合約位元組碼的keccak256雜湊,從而更具效率和成本效益。
(3)EIP-1283:調整SSTORE操作碼的淨gas計量
EIP-1283由Johnson編寫,其基於EIP 1087,該提議主要了引入了一種針對資料儲存更改更公平的定價方法,這可以讓智慧合約開發者受益。
(4)EIP-1014:Skinny CREATE2
EIP-1014由以太坊創始人Vitalik Buterin親自建立,該提案將狀態通道(state channels)的概念引入到了以太坊網路。這將允許交易的結算在鏈下進行,類似於比特幣的閃電網路。EIP 1014本身將對以太坊網路的吞吐量帶來巨大的提升,因此以太坊網路每秒將能夠處理更多的交易。
(5)EIP-1234:減少區塊獎勵&延遲難度炸彈
因為當前Casper機制還無法確保100%的安全,所以本次以太坊採用EIP-1234,主要引入了兩個提議:一是將難度炸彈延遲12個月,二是將區塊鏈獎勵從3 ETH減少至2ETH,防止因延遲難度炸彈帶來的通貨膨脹。
經過本次分叉後的以太坊,其網路將會更輕量、快速與安全。但在上述議案中,爭議最大的是EIP-1234,因為其將出塊獎勵從3 ETH減少到2ETH,直接減少了礦工的收益。
2.2.“聖彼得堡”方案
“君士坦丁堡”於去年10月中旬首次在以太坊公共測試網路Ropsten上進行測試,原計劃於去年10月中旬開始進行硬分叉,但是在分叉前開發者團隊宣稱在測試網路上遇到了“共識問題”,目前已經導致一個測試網路“無法使用”。因此,硬分叉推遲至7,080,000區塊實施,即今年1月下旬。然而,在1月15日在分叉前夕,智慧合約審計公司ChainSecurity發現EIP-1283存在被攻擊的漏洞。為此,“君士坦丁堡”分叉不得不再次推遲。
“君士坦丁堡”分叉的一再延遲打擊了市場對以太坊的信心,以太坊團隊考慮到修復EIP -1283漏洞將進一步延遲以太坊分叉的時間,另一方面包括Ropsten在內的幾個以太坊測試網路上已經升級了含有漏洞EIP的所有五個議案。為此,以太坊核心開發者團隊提出了“聖彼得堡”方案,即在第7,280,000區塊上執行“君士坦丁堡”中五個原EIP之後,啟用“聖彼得堡”方案,將EIP-1283安全地移除。
3.硬分叉帶來的實際影響
3.1.公鏈之戰,以太坊打響奠基之戰
以太坊作為傳統的公鏈之王,在區塊鏈發展的各個階段都發揮了重要的作用。可以說,以太坊是除比特幣之外發展最成功的公鏈平臺。以太坊無論是在專案募資、去中心化應用以及遊戲等方面,均佔據了半壁江山。無論是2016年-2018年專案募資狂潮,還是2017年加密貓的火爆,以太坊均作為一個未來區塊鏈航程的領航者,為區塊鏈世界帶來比特幣無法比擬的想象力。
誠然,在2018年,伴隨著DPoS機制的興起,EOS、TRON等公鏈在區塊鏈落地方面做出了不同的嘗試,也逐步蠶食著以太坊的優勢。特別是相比於DPoS的高處理速度,以太坊在應用方面顯得捉襟見肘,也讓開發者在2018年下半年開始的遊戲浪潮,更多的選擇了EOS及TRON所代表的新一代區塊鏈平臺。但是,以太坊的先發優勢依舊存在。根據DApp Radar統計,截止到2019年2月27日,在以太坊、EOS、TRON三大主要公鏈上,Dapp的總數分別是1403、329、167。以太坊的去中心化應用總數比另外兩條主要公鏈Dapp數量加起來的4倍還多,開發者數量巨大。這都是以太坊對其他公鏈所佔據的優勢。
以太坊現階段為人詬病的主要在兩個方面,開發體驗以及PoW所帶來的低效率。就開發體驗而言,本次分叉在一定程度上也解決了這一問題,為之後的革命性升級打下基礎。具體而言,EIP145提案中,以太坊透過“按位移位”的方法,提升了其處理資訊的能力。而EIP1052中,以太坊將會改善其底層虛擬機器,從而提升智慧合約的體驗。本次硬分叉之後,以太坊開發者的gas使用以及操作體驗均會有所提升。
而以太坊的PoW機制所帶來的問題,其實也是以太坊發展的必然結果,這也與以太坊發展的戰略相關。其PoW過度至PoS的戰略核心在於早期透過消耗建立可以信賴的數字加密貨幣體系,在體系構建完成之後,採用更具效率的PoS機制來保證主網執行效率。現階段來講,還處於構建貨幣體系的時期,因此,此次不會對PoW機制進行根本性的修改。但是,EIP1014所提出的狀態通道和離線解決方案,會使得某些第二層解決方案開始起作用。預計本次硬分叉之後,以太坊的TPS會提升5%-10%,在一定程度上提升了以太坊的效率,而狀態通道的提出也讓以太坊從結構上得以改進。
以太坊本次的升級主要為之後的革命性變革打下基礎。開發體驗以及效率均會得到一定的改善,開發者以及使用者均會受益。而推遲難度炸彈以及出塊獎勵的降低,正是為下次的升級最好準備。以太坊創始人Vitalik也宣佈,以太坊下次硬分叉將命名為“伊斯坦布林”,將會在以太坊主網部署租賃技術,開始對以太坊的龐大儲存成本問題進行改進。可以說,以太坊的優勢正是開發者對於以太坊的不斷改進和提升。本次硬分叉雖然一波三折,且主要是微小改進,但是對於以太坊而言,正是為未來的變革打下堅實的基礎。近半年來,以太坊雖然難度逐步下跌,但是以太坊的鏈上轉賬以及Gas消耗並沒有明顯減少,正是體現了其主網構建的穩定,未來可期。
3.2.硬分叉引發的價格預期可否持續
在歷史上,以太坊前前後後共經過七次硬分叉,其中與本次“君士坦丁堡”類似的還有“家園”階段和“拜占庭”階段的硬分叉,而其他的硬分或是是為了突發事件,或是在宣傳和規模上較小,與本次硬分叉沒有可比性。以太坊每次因技術升級帶來的硬分叉都會給ETH帶來巨大的行情波動。基於這一現象,我們選取上述兩次歷史上的硬分叉進行分析。
根據C的資料顯示,以太坊“家園”階段的硬分叉發生與2016年3月14日,ETH在分叉前的七天上漲了22.74%,在分叉前的三十天上漲了136.45%,但在分叉後ETH的價格在七天裡下跌了18.68%,三十天下跌了46.17%。同樣地,發生在2017年10月16日的“拜占庭”硬分叉,在分叉前的前七天上漲了11.76%,前三十天裡上漲了40%,但在分叉後的七天裡下跌了16.76%,三十天時間下跌了1.34%。
從實際情況看,在“家園”硬分叉階段,由於2015年下半年以太坊Frontier版本的釋出,讓人們看到了以太坊的技術實力和智慧合約的潛力,為此市場對即將到來的“家園”版本普遍持樂觀態度,因此以太坊在分叉前的幾個月處於上漲通道,此過程中必然有泡沫的累積,在硬分叉結束後市場的樂觀預期也隨之結束,因此硬分叉後ETH價格的下跌成為必然。
而在“拜占庭”硬分叉階段,儘管當時以太坊團隊公佈了“大都會”時代引入的新特性,但從“拜占庭”分叉的提案看並沒有給以太坊帶來質上的變化,因此儘管ETH價格在分叉前幾天有小幅上漲,但市場對“拜占庭”分叉的反應不大。
就本次“君士坦丁堡”硬分叉而言,由於硬分叉計劃一再推遲,早已耗盡了市場的耐心;從升級議案看,也沒有給以太坊帶來實質性的變革;而數字貨幣市場的寒冬還遠未結束,因此我們預計本次硬分叉不會給ETH的價格變化帶來太大變化,但小幅波動仍有可能發生,畢竟在區塊鏈行業寒冬之中,以太坊的硬分叉仍然是市場關注的重點。