EOS原力孤矢:DPOS共識的進化與應用

買賣虛擬貨幣
21個超級節點、一票30投的情形,導致一個節點,即那個最大的節點說了算。我說了不算,其他節點說了不算,這些公投系統、ECAFE說了都不算,那個控制著最大票倉的人說了才算。誰也不敢得罪他,否則他下次不投你,把其他人投上去。而現在,40%的投票都來自於這些大交易所大戶的抵押。這就是最大的問題。
演講者:EOS原力創始人孤矢文字整理:Cinderella、Diana大家好,我是EOS原力孤矢。我是一個很彆扭的角色,因為我從EOS主網沒啟動就開始罵EOS,罵到今天已經快一年了,但同時我們又邊罵邊學習,反而發現EOSIO是一個很偉大的協議,而Block.one也是一家很偉大的公司。 其實今年很多主網都在近期上線,雖然他們說自己是純PoS,其實很多都用了EOSIO的DpoS。最早的DPoS像BTS現在其實也還在活躍著,然後EOSIO裡面其實有一系列的這種姊妹鏈,大概有十幾個裡面都用的是EOSIO這套東西。而我們國內像NAS 、TRX 、NEO 其實都用的是DPoS,甚至很多其實直接用的EOSIO,只是說改了一下名字。比如說它把RAM改成能量什麼之類的東西,其實都差不多,程式碼都是一模一樣,很多地方都沒改。 
有些專案可能總共有七八個節點全是自己官方在運營的,其實是一個網際網路的服務,不是一個區塊鏈,是誰大家也知道,對吧?但因為我們社羣說我出來不能罵人,所以我現在就提這個現象不提人名。1. 對DPOS演繹最廣泛的EOSIO

然後我們就講講對於DPoS演繹最廣泛的EOSIO。首先我們區分一下概念:EOSIO其實是block ONE 團隊寫的程式碼,它不是一個軟體,也不是一個系統,它只是程式碼。 

Block.one是開源專案的開發團隊,我們去年6月3號持有EOS的時候,它還叫ERC20,其實是在以太坊上發行了一個通證權益。你可以理解為,就是你給他專案捐錢了,然後人家給你一個積分。至於現有的大家用的EOS,是有一個叫EMLG團隊啟動的平行主網,它的代幣符號就是EOS,也是現在最活躍的EOS主網。然後我們原力也是改進了以後也啟動了EOS平行主網,我們用的也是6月3號的創始餘額,其實像ENU起步更早,它比EOS還早一點,它是用EOSIO的程式碼啟動的,但是它沒有用它的代幣規則,因為它啟動的時候是為了解決它另外一個問題,就是所謂的人均基本收入的問題,然後它覺得說我做一個DAPP寫一個合約解決不了問題,那條鏈太貴了,所以它啟動了一個自己的主鏈。 

後面Telos對 EOSIO進行了改進,改了一些在選舉上的問題,比如一票30投用了不同的權重來計算。EOSIO每天都有新的策略在啟動,它其實賣的都不是一條鏈,而是一套協議。在他推出這套協議後馬上會有無數條鏈在做。 

2. 關於ESIO的一些誤解

我要澄清一下對EOSIO的一些誤解——其實我最早也是這麼罵過來的。一開始大家會說EOSIO不是區塊鏈,覺得你這二十一個超級節點許可權過大,想怎麼玩就怎麼玩。這就涉及到你怎麼看待什麼是區塊鏈的問題。就我個人的理解,我認為區塊鏈它是個不可篡改的公共賬本,而去中心化只是一個手段,需要去中心化到什麼程度,還得看你實際應用的需求。有人攻擊EOS說它只有21個超級節點,不安全。但其實如果有51%的算力控制了比特幣和以太坊,它們的賬本要改也是可以的。 

另外還是有人說EOS它不夠去中心化。那好,比特幣社羣裡誰說了算?總得有人說了算吧。至於誰說了算,誰就會變成某種意義上的中心,這是最去中心化的標準。然後有人說EOS沒有固定上限,其實這只是激勵模型的問題。沒有固定上限這件事實際上是說給誰聽的呢?給那些持有比特幣,指望比特幣能漲到一千萬美金的那些人聽的。他們思維很懶惰,就覺得我什麼都不用改,比特幣就能漲到1000萬美金。

就發行方式來說,其實EOSIO的發行已經夠公平了,它其實就是每天公開釋放出來一定數量的幣,你願意花多少錢買,買它就好。它的發行方式比以太坊還要公平,沒有什麼私募機構這些亂七八糟的東西。有人說EOS不能自由加入和退出,這個確實是有限制的。但是你去做節點,你買臺伺服器,這個沒人限制你吧?你不想做節點又退出來,這個也沒問題吧? 

然後說代幣沒有礦機挖礦來得靠譜。其實,你用礦機挖幣,最後計算的也是錢,最後表現出來的效果還不是鎖定六個月資金?但是,在EOS裡我們不僅可以鎖定六個月,還可以鎖3天,也可以鎖12個月。另外來說政府審查,這件事情我覺得還是好事,EOS迎合監管,這很好。很多人說比特幣不要監管,那我就問你,假設你家小孩被人偷了被賣掉了,人家用你家的小孩交易了一筆錢,這筆錢又沒法追查,你是什麼想法?我不是說要刻意迎合政府的審查;但是,針對那些在商業場景或者經濟活動中一些違約的東西,我們確實需要一些治理。 

另外,即使節點聯合分叉,你的區塊鏈會留下證據,所以說這件事其實很難被操縱。你看EOS到現在為止也沒有分叉,包括我們原力啟動的時候,大家會因為要罵我們,所以才說我們是一個分叉,但其實在我們啟動之前是沒有賬本。再說短程和長程攻擊,其實現在來說代幣抵押裡面有很多邏輯是可以重新設計的。以往我們對DPoS的理解或者PoS有很多理解,它都是一篇論文在或者說是一個很小的網路在執行的,沒有大規模的實踐,所以我們認為它會存在這樣或者那樣的問題。但實際上很多東西是可以改的,這些問題在實際過程中都有解決的方案。

3. EOSIO對DPOS共識的演繹

實際上EOSIO它對DPoS共識的演繹還是很好的,我剛才講它是有區塊雜湊的,你就算做到了節點聯合做惡,你也不能說你做到了不被發現。另外就是說區塊間隔這個事情其實要比別的要好,當然它的詬病也是說你指定這個節點出塊,如果這個節點連續出六個塊,這個節點作惡了就麻煩了,但是這個事情可以節省頻寬,可以降低延遲。 

而且它借鑑了傳統處理器以及流水線架構,它其實是理解成很多的計算資源,而且它給併發留了一個口子。當然你看最近BOS它把不可抵抗的時間直接降低到了三秒鐘,這個問題就是頻寬成本技術上升,就可能節點根本就支撐不起,是感覺確實速度快,但其實節點是撐不起的。本來EOS就已經很貴了,一個節點大概一年要12萬美金左右。21個節點算一下還是很貴,我這裡面要說一下,就是說楊光博士說比特幣能耗高,浪費資源不環保,我覺得是環保,我並不覺得PoW有問題,因為如果你自己跑到礦場那邊去看看,礦工如果用我們城市裡正常的用電,它根本就不盈利了,它一定是在那些比如說豐水期的水電,有很多電本來要被白白浪費的,它用這些電建立起了比特幣的整個的體系,所以我覺得比特幣是它是消耗電比較大,但是它不浪費。 

這是我的看法,而且再說了我們區塊鏈系統哪個不浪費,你要跟人家一臺節點記賬,你21臺,別人幾千個幾百萬個大家都浪費。你如果要跟那個比的話大家都浪費,但是你要做到的是說你付出這麼高的代價要幹嘛。你看現在EOS很多開發者也很傻逼,就是說我啥都往鏈上傳,但是EOS沒有這一塊的激勵,不是說你最佳化合約,你往鏈上傳的東西少一點,它就給你激勵。沒有,所以開發者就說大家一起堵,因為沒有激勵,所以這是它遇到的一些問題。 

它的不可逆塊,其實可以縮短到一秒。另外我們來說說它最牛逼的一點,就是它做出來了。你會發現,商用的時候我們不說你論文寫的怎麼樣,或者你理論怎麼分析。商用的時候,大家第一個想到的就是tps。其實我們團隊是最早開始攻擊EOS網路的,但是我們失敗了,我們研究了很久,我們抵押了10萬個EOS,這個賬戶到今天還是很知名的,但是我們失敗了。EOS說的是說你有多少幣你就有多少整個網路的資源,但節點不可能按照你規定的最高配置來。在早期啟動的時候,很多節點它的配置是沒有達到官方的配置要求的,所以說這個時候你可以抵押大量的EOS,然後整個網路就只能給你一個人用。接著節點就去升級,然後節點會針對我們這種垃圾賬號做一個制裁,但其實本質上是合法交易,不算是作惡,我是用合法的交易來測試網路的極限的。EOS到今天說實現4000TPS這個極限記錄,這是我們保持的,到今天也沒有人破過。

另外,既然這個系統是需要治理的,其實超級許可權的存在我覺得是OK的,我以前其實最詬病這個。以前在一票30投的情況下,一個節點或者一個持幣大戶是可以控制整個網路,但是你如果是一票多投或者說一票三投一票五投,最後實際上還是分散在幾個人的權力在手中的,那EOS裡面即使沒有超級許可權,大於2/3節點共識啥都能改,我剛才說區塊鏈不可篡改,但沒有說不能修改,你達成共識就可以修改。所以說他的超許可權其實是給了一個多籤,它是一個狀態,你選上節點,2/3的節點,在這過程中你透過了才行,並不是我們傳統的理解的有一個人在BM拿了一個章,這章啥都能蓋,不是這樣的。

王立新之前給了我一個標題:EOS會不會涼?我覺得不會。EOS社羣目前為止還是很強大的,至少在用DpoS機制的鏈裡還是最強大的。他們開發了什麼,其他DpoS幣種就抄什麼。這沒的說。

4. EOSIO的發展狀況

從去年6月3號開始,EOISIO就一直在執行。其實如果沒有我們團隊採取這樣的行動的話,EOSIO啟動可能會晚一點,因為我們要啟動主網,所以整個社羣就用不成熟的程式碼行動,而且居然能活到今天,這確實是一件很厲害的事情。

而且EOS重新定義了很多事情,以前大家會覺得說EOS不是區塊鏈,BM也沒有學術背景,然後他之前乾的專案都幹得不好,然後或者說他21個節點怎麼樣,但是今天大家會覺得說EOS好像也是區塊鏈。最簡單的就是我跟“EOS奶王”玩,我們倆天天罵架,但是我們倆私底下見面的時候,我說其實你看我們原力這些實踐在EOS上是可以去改進的,奶王說社羣裡現在誰都說了不算,你讓我去幹嘛。其實EOS有時候會像POW一樣讓你無奈,就是你有些好東西你改不上去。不過好在現在有七八條側鏈已經部署上了,正在部署還有幾十條側鏈,這套東西開發者很喜歡。 

現在我們來談談EOS待解決的問題。一個是說EOS現在的不可逆塊時間還是太長了,但是這個設計其實是合理的——你當然可以降低不可逆塊時間,但是你頻寬成本很高,你可以先降到一秒鐘,但你的成本太高了,所以它現在這個東西他不是說不給降,而是說在想更好的方案。另外就是併發,白皮書裡面所謂的百萬tps,其實在沒有解決併發問題的情況下,是沒有辦法達到的。不過這個問題也已經在解決之中了。這個東西解決了以後,大部分商用的東西就可以用EOSIO來做共識。

EOS還有一些其他的問題。例如經濟模型有問題,以及獎懲機制不得當。去年市場開始下行,根據DPoS或者說EOSIO裡的設計,隨著幣價降低,節點的收益也會逐漸降低,最後甚至會到一個入不敷出的狀態。但如果你看PoW,它就不存在這個問題。這個時候比如說幣價跌到這個份上,電價便宜了你還能挖一挖,電價貴你肯定就不挖了。然而,在現實世界中,總是有人會找到更便宜的電和機器去挖比特幣,這是比特幣比較好的地方,而EOSIO它就沒有這種機制,只有一個個超級節點。 如果光靠節點收益的話,就在這個點其實還是賠錢的。

好在EOS社羣比較強,就是它的社羣都願意賠錢。但你不得不承認這一點——其實BM也無奈,本質上我們不應該只靠社羣,而是應該改善經濟模型來平衡節點收益。有些節點他可能也不願意這樣做,因為他本來可以利用它的資源服務其他客戶,賺到更多的錢。

另外大的詬病的就是它的資源模型。誇張一點說(高峰期的時候),我要轉0.7個EOS,我還要抵押1萬的EOS,這是不是很好笑?所以說這是個很嚴重的問題,我們原力是在這個上面加了個工程手續費,CPU和NET手續費,RAM是從你投票分紅裡面去分配。當然其實抵押依然是最終能保護系統RAM的一個機制,最近他們在上線一個叫REX的模型,其實可以緩解這個問題。

最後我們來聊一聊懲罰機制。這兩天大家都在討論一件事,就是由於一個駭客襲擊,有人丟了很多幣。而那個記賬的節點作出的判決就是繼續交易,但節點本身不會因為自己的錯誤受到懲罰。懲罰機制在EOSIO裡非常少見,這是需要改進的一點。

5. EOSForce對EOSIO的改進

EOSIO如果在下個月啟動的話,或者在下下月啟動的話,遠比今天就是去年六月份啟動到現在要好的多,因為當時啟動的時候整個系統其實都不夠完善;不過話說回來,6月3號啟動並不是一件壞事,畢竟我們可以在執行中暴露問題解決問題。

不過,我覺得如果要徹底解決原有的那些問題,BM需要在新開發的這些版本上做一個硬分叉。我覺得BM是有膽子去做這件事的。為什麼我會有這樣的一個預測呢?因為一票30投,導致某個大交易所控制了整個EOS,這很噁心。 

我之前做過推演。但是我沒想到現實社會里會發生這樣的事情,就是說一個大交易所拿著使用者的幣然後控制所有節點,以至於其他人沒有辦法對網路進行改進,整個網路都是朝著對該交易所有利的方向走。如果EOS要發展壯大,所以說我覺得修改資源模型、節點和DAPP獎勵機制,這些功能還是要加一下的。一票30 投也必須廢除。

EOS必須要硬分叉一次,我覺得半年之內必須要分叉。

6. EOSForce對EOSIO的改進

現有EOS社羣它更多的是透過治理來解決大家技術上的一些難題,比如說EOS裡有個ECAFE,然後還有一個公投系統,還有21個超級節點的節點議會。但本質上,EOS現在鏈上最大的權力來源就是這2/3的節點。 

我們也沒說比人家好多少,但是我們很簡單,沒有憲法也沒有那麼多組織,鏈上規則是啥就是啥。鏈上規則就是2/3節點說了算,然後2/3節點就一票一投的投票人選出來。如果你這個節點不作為,我把你撤掉就好了,然後我投別的節點上來去幹活。我們的系統也加了一些東西,我們有一個新的協議會去檢測這些不線上的殭屍節點,比如說有些備選節點,它其實有收益的,但是他可以選擇不線上,我們大概每30分鐘會檢查一次,系統會自動檢查它一次。你檢查它如果線上的話就給他有獎勵,不線上時沒有獎勵。

對於交易堵塞的攻擊,我們加了API去查它離那個區塊高度有多遠,如果太遠的話它就可以回來。交易堵塞攻擊實際上是鏈上的問題,不是開發者的問題,大部分EOSIO上面合約的漏洞是開發者自己不小心造成的。其實鏈上一個普通使用者去買資金盤,然後把幣打到它的地址裡去,然後你讓超級節點把幣給他要回來,這就好比你充話費充給別人了,你根本就要不回來了,這不是鏈的漏洞,這是你個人傻逼對不對?很多問題大家覺得是鏈的漏洞,其實不是。你說以太坊DAO的危機,是鏈的問題嗎?回頭你說為什麼ETC能活到今天,從鏈的邏輯來講沒有人作惡,就你自己合約寫垃圾被盜了,所以很多社羣的人會覺得說V神牛逼他也拯救了大家。什麼叫作惡?不是說你做資金盤在鏈上,那不叫做惡,做惡是說你沒有按照協議的規則或者利用協議的漏洞在攻擊整個系統。只要是協議允許的範圍內,你都不是作惡。 

EOS治理自然也存在很多問題,一票30投就是一個很傻逼的行為。2/3的節點其實可以把整個工作系統否決掉。請記住,現在是一票30投。而投票不分紅,這又導致本來就參與投票的人就不多,怎麼辦?不分紅誰來投票?而1票30投又導致一個節點,即那個最大的節點說了算。我說了不算,其他節點說了不算,這些公投系統、ECAFE說了都不算,那個控制著最大票倉的人說了才算。誰也不敢得罪他,否則他下次不投你,把其他人投上去。而現在,40%的投票都來自於這些大交易所大戶的抵押。這就是最大的問題。

針對現有RAM的問題,其實我們不認為抵押租賃、抵押操作這一步有什麼問題,我覺得這個設計很好,但是現階段資源問題沒有解決。所以我們暫時用CPU、NET收動態手續費,而RAM是透過投票分紅來租賃RAM解決的。BM可能覺得說這就是房地產,大家去買賣,價格由市場決定。我們認為是行不通的,因為在中國就是這樣,結果那麼多房子大家住不起。不如把整個RAM改為歸全民所有,然後租賃賺的歸也是歸全民所有,大家都同意,大家租出去去用。這裡還是由市場機制來解決它。 

7. 原力在做什麼

我們社羣現在不論成立秘書處來幫大家去提交各種提案也好,或者說改進一些東西也好,其實都是社羣自己在搞,1票1投,說實話我們在裡面真的是沒什麼話語權。我們把自己定義為打工仔,在開始的時候設計了這個系統,但是從這個系統啟動以後,整個社羣它透過它1票1投選出來節點,然後去替投票人們發言。如果它的節點不作為,投票者也可以換。

我們也在持續改進投票系統,比如說以往是我投給了A節點,我要撤銷要投給B節點,我可能是需要三天時間,因為投票有分紅的情況,他不願意撤銷,我會損失我三天的分紅。我們把它改了,你投票抵押以後你投給A節點,你也可以隨時換到B節點,也可以隨時放到C節點,但是你如果要撤票,你要撤銷這一筆的話,你還是需要三天時間,讓它換選更高效,我們也看了一下對系統沒什麼大的影響,所以我們就這樣做了。 

我覺得在EOS上更多的不是理論,大家都是邊幹邊看邊改,包括說啟動主網的時候也時間很趕。EOS啟動主網可能跟BCH一樣,它的啟動的時候並沒有經過反覆設計和除錯。我講一下啟動的時候是怎樣,我們從17年年底就在想EOS主網啟動好像沒人幹,然後到了二三月份的時候還是沒人幹,然後我問很多在競選節點的人,我說你們知道主網怎麼啟動嗎? 

其實到5月27號的時候都沒人知道,但我們那個時候我們做出來了,因為我們終於跑順了,我們說我們要啟動。那時候我們看到了DPoS的高效,一票30投在那個時間點發揮了巨大的作用,所有的節點聯合起來說,不能被原力搶了這個主網,然後大概用了14天就把主網啟動了。其實我們提前準備了大概半年多,結果還比人家遲了,所以它還是很好的,DPOS很高效,你想想代議制民主,我下面的人,你下面的人,那麼一號召就做起來了,但是一票30投確實是不好,在我們執行的過程中是不好。 

我們基於先改進後啟動的理念,在6月17號啟動EOSForce,執行到了今天。我們沒有白皮書,我們當時提出了改進方案,然後就上線了。所以大家就很懵逼,因為以前的團隊的話可能先發個白皮書,做完私募做完ICO,可能兩三年東西出不來,我們是先上線,我們到現在都沒有白皮書,因為我們團隊出生的時候我們的鏈就出生了。我們未來會支援程式化啟動多種公有鏈,就我們現在做到的是說你可以用我們的程式啟動一個EOSIO,也可以啟動一個基於手續費模型的EOS原力,這都是開源的,然後你還可以基於EOSIO啟動一個免資源模型的鏈。其實EOSIO它在商業上為啥這麼受歡迎,因為它稍微改動下就是聯盟鏈。

我們接下來會上線一箇中繼鏈,滿足基於EOSIO啟動一些公鏈之間的互操作的需求。同時我們還會探索DPoS如何100%公平發行的問題。這件事其實挺難的,因為既然是一個DPoS了,網路啟動的時候沒有幣怎麼做節點,沒有節點怎麼去分發代幣,這個真的是一個先有雞還是先有蛋的問題。 

更多區塊鏈資訊:www.qukuaiwang.com.cn/news

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;