關於 PoW 和 PoS 的誤解太多,想要在一篇文章中講個明白實在是一個極高難度的任務,因此這裏只簡單討論兩點,一個是從經濟學上思考 PoS 給出的美好承諾是否可靠,另外一個是 PoS 本質上是一種許可機制。之因此拿這兩點出來是由於不少討論很是糾結一些技術性的細節,忽視了這兩個根本性的問題。算法
做者:Jan安全
區塊鏈技術提供的價值是去中心化的安全,而安全是能夠用攻擊成原本衡量的。一條鏈的攻擊成本有多高,它就有多安全。網絡
區塊鏈的共識節點提供的產品是安全,共識節點是網絡服務的生產者。咱們也知道,經濟學裏面有一個基本定律,在徹底競爭市場中,生產者在均衡狀態下的邊際收益等於邊際成本。也就是說,若是區塊鏈的共識算法創造了一個徹底競爭市場,提供多少安全,就須要多少生產成本:less
攻擊成本 = 安全程度 = 生產成本
想要提供多少邊際安全,就須要付出多少邊際成本。如今 PoS 告訴咱們,咱們能夠提供等量的安全,可是隻須要 10% 甚至 1% 的成本,你不會以爲很奇怪嗎?爲何 PoS 這麼容易就打破了經濟規律?區塊鏈
一種狀況是,同等安全程度的PoS須要的實際成本是同樣的,只是一部分被隱藏起來了。以 DPOS 爲例,若是你想要作 Validator,就須要經過某些方法蒐集足夠多的票投給本身,進入前 X 個 Validator 的列表才行。蒐集足夠多的票的成本是多少呢?這個成本對於不一樣的人/機構是同樣的嗎?若是不同,這是一件好事仍是壞事呢?這個成本是一個公開信息嗎?若是不是一個公開信息,這是一件好事仍是壞事呢?加密
我很喜歡一句話:設計
Financial institutions make people feel safe by hiding risk behind layers of complexity. Crypto brings risk front and center and brags about it on the internet.
而把成本以最清楚的方式公開在全部人面前,正是 PoW 的特色。ci
還有一種狀況是,PoS 沒有創造一個徹底競爭市場。資源
在 PoS 中,將來的共識羣體是由今天的共識羣體決定的。任何新的節點想要參與共識都須要經過至少一個交易來實現(e.g. 抵押,投票,etc.),而這個交易是否被處理是由今天的共識羣體決定,他們能夠處理這個交易,也能夠不處理這個交易,若是不處理這個交易,新的節點永遠都沒法參與共識。同時,「不處理交易」是容易假裝而難於懲罰的行爲,我尚未看到能在共識協議中解決這個問題的方案。PoS 每每是根據 Stake 的權重來分配出塊比例(和節點數量不要緊),考慮到大部分系統中 stake 的集中程度,這是一個很是實際的問題。get
PoW 是完全的 Permissionless。不管何時,只要你願意,均可以買礦機和電力加入出塊者的行列,不須要今天的礦工給你任何形式的許可。你也許會說,我仍是須要購買礦機和電力呀,這是否是一種形式的許可呢?是的,從更低一層來講,這也是一種許可。但遺憾的是,在全部的 Proof of XXX 中,這已是最去中心化的許可形式了,畢竟礦機生產和電力資源的去中心化程度遠高於各類 Tokens。咱們老是應該追求儘量的去中心化,不然用回中心化系統就行了。
或許又有人問:若是設計一種不須要向鏈上發送任何交易,只要 Token 放在那裏就能夠參與共識的 PoS,不是就解決了你說的問題嗎?
這會帶來兩個問題:
一、若是 Token 放在那兒就能參與共識,意味着用戶對參與共識沒有任何承諾,不參與共識也沒有任何成本和懲罰(用戶可能根本都沒上線),這樣的共識是很難設計的;
二、會有 Nothing at Stake 的問題,這裏再也不多言。
Layer 1 是加密經濟的基礎,承擔 Layer 1 角色的區塊鏈必須是一個無需許可的網絡,由於 Layer 1 必須是全球共享的、中立的設施,就像互聯網,而"須要許可「則意味着它是受到某一羣人控制的,與這個目標是根本衝突的。從上面的分析咱們能夠得出一個結論,若是咱們但願 Layer 1 儘量的去中心化和安全,Layer 1 就只有PoW 一個選項。PoS 不是不能用,只是不適合 Layer 1。
關於 PoW vs. PoS,討論仍在繼續:https://talk.nervos.org/t/pow...