公鏈之爭,以太坊能否突破重圍?

最近有篇文章蠻有意思的,在這裡也推薦給大家一起學習下。

公鏈之爭,以太坊能否突破重圍?

有賴於建立在其上的眾多Dapp和ICO,以太坊的2017可以說風光無限。然而在公鏈爭霸年2018年,以太坊雖然目前還坐在王座之上,可其實已經被“群狼環伺”。

高聲叫囂著要幹掉以太坊取而代之的,不止有EOS,還有黃雀在後的ADA、ZIL/NEO等等。相比這些幣價猛漲、宣傳陣勢驚人的後起之秀,以太坊顯然要低調得多。

但低調不等於沒有作為。事實上,Vitalik和他的團隊一直都非常樂於改變——相比相對保守的比特幣核心開發團隊core來說。很多關於以太坊未來的重大變化早已經在部署實施之中,雖然不見得能夠短時間見到成效。

一旦你瞭解了這些,就相當於看到了未來2-3年甚至更久以太坊的發展線路圖。下面就讓熊小貓一一道來。

一 、Casper FFG 和Casper CBC

2017年10月,以太坊進入了它的第三個發展階段:大都會Metropolis)。當前我們即將迎接的是這一階段的後半段:“君士坦丁堡”,然後就走向最終的“寧靜”(

Serenity)。

你是不是跟我一樣覺得這些詞聽起來真的好文藝呢?不過這不是重點,重點是,按照規劃,在“寧靜”階段,以太坊將的共識機制將徹底轉變為PoS.

而Casper,正是將Ethereum主網共識算法從Proof of Work(POW)轉向Proof of Stake(POS)的項目。

先了解一個問題:POS與POW有什麼區別?為什麼一定要做這種轉移?

從算法上來說,POW是以礦工算力的貢獻比例作為權重給予挖礦收益,POS是以礦工持幣數量乘以持幣時間作為權重給予挖礦收益。

POS對於POW的優勢在於:

  • 安全性:類比POW的語境,POS相當於節點一旦作惡,礦機和硬件設施直接被燒燬。

  • 避免過度中心化:避免POW礦池出現的規模效應和中心化,公平挖礦產出。

  • 節約能源:POW消耗的硬件和電能是巨大的。

當然,POS也有如Nothing at stake等自己的問題,這裡不重點展開(以後再表)。

公鏈之爭,以太坊能否突破重圍?

那麼為什麼又會分成兩種Casper呢?

Casper FFG——又名“Vitalik's Casper”——是一種混合 PoW /PoS 的共識機制,它是以太坊首個通向 PoS 權益證明的候選方法。簡單地說,塊鏈將用熟悉的PoW 算法增加區塊,但是每50個塊有一個 PoS “檢查點”,通過網絡驗證人來評估區塊的最終有效性。

可以看出,Casper FFG還不是一個純粹的PoS協議,它實際上相當於POS的初級階段,目標是使人們逐漸脫離PoW機制。目前它已經在測試中,我們期待它能在晚些時候,作為“君士坦丁堡”階段的一部分主網上線。很可能就是在今年夏季。

如果到時候還沒上線,很可能就要等到更晚的“寧靜”版本——關於這個階段,目前還沒有人給出一個時間表。很有可能是在2018年末,甚至2019年。

Casper CBC也就是我們所知的Vlad版Casper,使用建構修正(correct-by-construction,CBC)協議。要了解它的特點,讓我們來做一個對比。

這是一個普通的協議設計的樣子:

你正式指定協議。

定義該協議必須滿足的屬性。

證明該協議可以滿足給定的屬性。

而CBC協議的樣子是:

你正式但只是部分地指定協議。

定義該協議必須指定的屬性。

從滿足所有它被規定去指明的屬性中推導出該協議。

用大白話來說,你是動態地推導出該協議的。

獲得完整協議的其中一種方式是運行一種Vald稱為“理想對手(ideal adversary)”的預估安全預言機(estimate safety oracle),它運行下列兩者之一:

  • 提出一個合理估計的錯誤的例外情況。

  • 列出所有在未來可能發生的錯誤。

是不是看著就很複雜?總之,這個理想對手要做的事情,就是不斷進行微調、讓這個只是部分建構好的協議更加完美,直到它變成完全版。

正如剛剛提到過的,Vitalik的Casper將被初步運行,以緩衝從PoW到PoS的轉變。而Vlad的Casper,則不只是一個建立在PoS機制上的微調,而是徹底的重新思考共識機制,它未來還有很長的路要走,很可能只能在2019甚至更晚的時間落地。

也有可能最後Casper FFG就運行的很好,因此持續的運作了下去,直到Casper CBC完全準備好。

可以看到的是,以太坊開發者團隊一直在努力地開發這兩個Casper項目。不管這最終版本是什麼,它肯定會受到Vlad的和Vitalik的Casper的深刻影響。

二、擴容

遏住以太坊咽喉的,首當其衝是擴容問題。

以太坊目前日均交易量是500多萬筆,十倍於比特幣網絡。然而與此同時,Ethereum每秒只能處理交易(tps)15筆。在高峰期裡花費的時間甚至更長。而這就意味這極大的堵塞也就是極高的交易成本。

相較之下,Square 和 Visa 等服務的交易是即時確認的。即使不它們相比,EOS、ADA等同為公鏈在測試中表現出的速度,似乎也已經足以革掉以太坊的命。

以太坊為什麼不趕緊擴容?因為擴容沒有那麼簡單。

這是一個可能很多人都知道了的問題,我們再來複習一下~

當前公有鏈的共識協議都存在這樣的限制:網絡中的所有節點(常常就是每一臺電腦)都必須參與處理每一筆交易。

這種去中心化共識機制的關鍵優勢是安全保證、政治中立和抵抗審查等。然而,這是以擴展性為代價換來的,因為它同時限制了區塊鏈裡全節點可處理交易的數量。

實質上這帶來了兩個影響:低吞吐量&緩慢的交易速度。

然而,如果我們隨意擴容區塊大小,那麼隨著區塊鏈不斷擴大,網絡裡各個節點所需的存儲、帶寬和計算能力也會增加。當到達某個時刻,就只有少數節點才能提供足夠資源來處理區塊——也就是說我們普通人的電腦跑不起了——而這會帶來中心化風險。

(為什麼V神和EOS的BM經常互懟,原因之一也是EOS的21個超級節點被認為是犧牲去中心化為代價提升擴展性。)

公鏈之爭,以太坊能否突破重圍?

因此,以太坊等公有鏈需要在低交易吞吐量和高中心化之間做一個權衡。理想的系統是:它既能每秒處理上千筆交易,又能保持一定程度的去中心化——Vitalik在去中心化這件事情上顯然相當堅持。

針對此,以太坊現在在跑的有以下方案,噹噹噹當!

  • 主鏈擴容方案:Sharding(分片)

首先我們又要提到前面說過的Casper。因為某種程度上,Casper可以說是分片的奠基石。

這裡要先引入一個Finality的概念。Finality是指,一個操作或交易在鏈上完成並且被確認不可逆的狀態。

在以太坊目前POW的機制下,finality需要等待多久,並沒有被明確的約定。

舉個栗子,當一筆交易完成,常規做法是等待6個區塊確認。但嚴格來說,6個區塊確認後,交易完成且不可逆的概率雖然非常非常大,但沒法100%肯定。(這涉及到一個最長鏈規則,我們以後再講)

如果要求更高的確認概率,那可以等待12個區塊確認(比如Binance的充值確認),但不管多少個區塊確認,交易失敗的概率總是存在的,只是趨於無窮小。

Casper的設計中,finality等待最大長度被顯示的約定為50。即50個區塊之後,交易被100%的確認完成,如果屆時有兩條長度相同的主鏈,則任何一條鏈上的交易都不會被finalize。

這種設計下,每筆交易在一個確認的時間長度下一定會被確認而不是一個概率值,節點不再需要考慮從創世區塊至今的所有交易。

每個節點需要承擔的工作量更小,需要獲取的信息更少。這對分片擴展方案很重要。

公鏈之爭,以太坊能否突破重圍?

那麼分片擴展方案是怎樣工作的呢?

將每一個block(塊)分為不同的shards(片),每個片獨立、並行的處理不同的一組交易,以此提升全網交易吞吐量的擴展性協議。

簡單地說,每個Shard chain就是一個小區塊鏈世界,因此你不用再擔心全網共識所帶來的擁堵。在shard chain中的block改名叫collation,礦工也就是validator改名叫collator。同一時間數個shard chain並行工作,最後確認的交易彙總到block裡融入主鏈,以此擴展交易吞吐量。

這裡又涉及一個問題,就是安全性怎麼保障?譬如,如果礦工能夠預先得知自己會被分配到哪個shard chain,那他們豈不是可以勾結起來作惡,甚至發動51%攻擊?

這一點Vitalik也想到了。Shard chain中collator的選擇則是通過主鏈上的礦工管理合約(VMC)這個東西來決定,VMC是Shard機制的核心,POS的押金機制與投票機制都會在VMC上完成。

VMC合約中特別關鍵的一點,是需要通過隨機方式,確保每個礦工不能提前預知自己何時會被分配到哪個shard chain上。所以說安全上聽起來也沒有太大的問題。

  • 側鏈擴容方案:Plasma與Raiden(雷電網絡)

之所以把這兩個放在一起,是因為相比於主鏈擴容的分片來說,plasma和雷電網絡都屬於側鏈擴容。

Plasma允許在主鏈上建立子鏈,子鏈可以專門為每個DApp設定,子鏈數量不限,而且每個DApp上的共識機制可以單獨設計。DApp可以在子鏈上完成各類交互行為,而且會比主鏈更快更便宜。

雷電網絡是以太網中的閃電網絡,它允許節點之間相互通信,而不需要在主鏈上確認每筆交易。兩個節點間可開設一個雙向的“通道”,交易由雙方私鑰簽名並確保不可逆。通過在這兩個節點之間,而不是在每個塊上記錄和驗證交易,可以將大量的主鏈流量轉至鏈下。

這些都是很不錯的解決方案,然而這些側鏈解決方案都只適用於部分支付場景,所有這些側鏈最終也都依賴於主鏈獲得“finality”,因此主鏈擴容方案(目前也就是分片)仍不可避免。

同時所有這些新型技術——分片、plasma以及雷電網絡,實在是太新了,很難在短期真正落地。儘管已經有許多試驗在進行當中,但真正的主網上線應用很可能要等到2019年。

三、其他

除此之外以太坊還有一些其他的變化。

首先是隱私。

以太坊上每筆交易都會得到廣播,每筆交易都是透明的,但這並不總是符合人們的需求。這也是零幣、門羅幣等隱私幣所解決的需求。但在以太坊上,事實上已經有相應的技術部署來解決隱私問題。也就是CK snarks和零知識證明。(如果你不太理解,我們也會在後面繼續科普這些名詞。)

其次是安全性。

以太坊經歷了許多的bug事件和黑客攻擊事件,導致鉅額資產流失或者被鎖定,譬如我們曾提到過的Parity錢包代碼誤刪事件,導致許多人資金被鎖定,其中包括鉅額ICO資金。

這個問題的根源和以太坊智能合約現在的編程語言有關。以太坊智能合約現在的編程語言是solidity,它的好處之一是對於初學者簡單易上手,但與此同時也給黑客留下了許多攻擊的可能性,使智能合約變得脆弱。

現在已經有一種新的編程語言被開發出來,叫做VIPRE,提供了solidity之外的一種選擇。VIPRE的特徵之一是安全性能,它限制了使用的方法,從根本上來說,讓程序員們犯錯的可能性降低了。但遺憾的是現在使用它的人還比較少。

除此之外還有一種方法,叫做formal verification(形式化驗證),簡單的來說,是指代碼以數學的方式來證明它的邏輯性是安全的。它也能夠很好的改善智能合約的安全性問題。對這個方案,我們也將在以後為您做出深入介紹。

總的來說,未來幾年,從協議層到主鏈到側鏈甚至編程語言,以太坊將會發生諸多變化。過去的風光無限讓全世界的目光都聚焦在了以太坊的身上,現在是時候考驗它背後的開發者團隊了,是否能夠帶領以太坊披荊斬棘,成功衛冕呢。我們拭目以待。

公鏈之爭,以太坊能否突破重圍?

現在區塊鏈行業內真正優質,有價值的內容非常稀缺,除了我,他們也不錯。

如果大家感興趣,可以掃下面二維碼關注一下,最近也有在送糖果哦 !


分享到:


相關文章: