【TokenGazer深度研究】Tezos:先發優勢趨弱,無法從根本上解決硬分叉問題 (1)
特別說明:本報告完成後,Tezos官方Twitter於9月14日釋出推文稱,主網將於週一上線(9月17日)。截止報告發布時,Tezos官方網站未見與主網有關的資訊更新,投資者應密切關注主網上線後的執行狀況。
- Tezos最早於2014年提出,在當時改進的PoS共識、自我修正(鏈上治理)、形式驗證等思想具有先進性,但在當下提出這些思想的專案已經比較普遍;
- Tezos官方的資訊披露極其有限、陳舊,甚至像團隊資訊這些最基本的資訊都無從查證,諸多資訊只能從非官方社群獲取,但社群有一批忠實粉絲;
- Tezos最重要的特點是自我修正(鏈上治理)和形式驗證,但其開發語言Ocaml和智慧合約語言Michelson均比較小眾。目前情況是,自我修正和形式驗證都還沒有真正開始施行;
- Tezos曾經是明星專案,並且募集到大量資金。鑑於目前區塊鏈專案還都未落地,如果後期開發能實現當初的設計構想,那麼Tezos專案還有機會。
TokenGazer觀點:
Tezos專案的自我修正(鏈上治理)和形式驗證等思想在專案提出之初具有先進性,對於區塊鏈技術的發展也起到一定的推動作用,但是專案成果遲遲沒有落地,目前競爭對手日益增多,當初的先進性日漸變得普通。其團隊資訊在官方網站和白皮書上均未提及,且團隊內部之間多次發生激烈矛盾,管理非常混亂。建議投資者謹慎投資。
1.專案背景
Tezos專案最初的設計構想是在2014年提出的,允許持幣者通過投票的方式來進行技術升級與迭代。專案中的絕大多數程式碼與演算法都可以進行自我修正,從而很大程度上避免了傳統區塊鏈升級系統時出現的硬分叉問題。Tezos專案使用形式驗證技術,在很大程度上減少了智慧合約編寫過程中可能出現的漏洞。Tezos專案採用改進的PoS共識演算法允許持幣者通過委託或自我執行節點的方式來維護區塊鏈安全並獲得獎勵。[1]
1.1 Tezos起源及設計思路
Tezos是一個智慧合約平臺,其設計思路起源於2014年。當時,Vitalik剛剛釋出以太坊白皮書,整個以太坊的架構還尚未成形。Tezos專案創始人Arthur認為以太坊的功能已經非常強大,但是仍然缺失一部分的可參與治理的機制。
以太坊的開發和升級完全依託於核心開發團隊,如果使用者對以太坊的升級不滿意,只能選擇接受或發生硬分叉離開社群。Arthur決心建立一個比以太坊更加完善的平臺,平臺的權利和控制分佈給所有代幣持有者和關心社群的人,實現分權管理,並且避免發生硬分叉。
儘管現在看來,在區塊鏈設計當中考慮治理機制並不稀奇,但在當時Tezos的設計思路是非常前衛的,並且Tezos預見到了區塊鏈會面臨的治理機制及可擴充套件性問題。Tezos專案方重新設計了整個區塊鏈架構,可為使用者提供更快交易,更好的治理機制以及更安全的智慧合約。
① 交易吞吐量
鑑於比特幣和以太坊的交易吞吐量過低,絕大部分公鏈專案都以提高效能為目標,想要實現快速交易。Tezos使用改進的PoS共識機制,從而提高出塊速度,提高區塊鏈效能。
② 治理機制
鏈上自我治理機制[2]是Tezos專案的設計亮點。在Tezos系統內,通過鏈上治理機制使利益相關各方在升級問題上相互協調,從而讓協議可以自我進化升級。治理機制可以自我修正,但升級過程將基於兩輪民主投票。Tezos提出的這個基於持幣的民主程序將更好地避免發生爭議致使協議分裂,從而保證協議的完整,同時允許協議進行升級,跟上創新的步伐。
③ 智慧合約語言
Tezos建立了程式語言Michelson,使用這個智慧合約語言可以大幅提高安全性。
Michelson專門為促進鏈上程式碼的形式驗證而設計。Michelson可以提供一個程式設計環境,使開發人員開發比Solidity更安全的智慧合約。不過,大多數程式員並不熟悉Michelson,對開發人員來說需要一個適應過程。
1.2 Tezos專案大事件
Tezos是一個爭議非常大的專案。Tezos曾經出人意料地在當時成為了史上籌款最多的專案,也曾經因為團隊內訌使這專案陷入了訴訟泥潭,淪為加密貨幣領域笑料,至今也未能達到專案的預期目標。
TokenGazer團隊以時間線順序將Tezos專案發展過程中的大事件整理如下表所示。其中,Arthur Breitman與Kathleen McCaffrey是Tezos專案創始人,並且這兩人是夫妻關係;Johann Gevers是前Tezos基金會主席。
作為一個曾經將以太坊視為競爭目標的明星專案,當時的Tezos團隊中既有技術專家又有曾經幫助以太坊進行募資的運營達人,但是,至少目前來看,Tezos專案遠遠沒有達到預期的目標,更不能跟以太坊同日而語。
從上表來看,Tezos專案“由盛轉衰”的標識事件就是專案眾籌的巨大成功。雖然這看起來有點諷刺也不合邏輯,但TokenGazer團隊認為,Tezos專案能成功募集到價值這麼高的資金不僅出乎大眾的預料,也遠超出了Tezos專案方的預期。
Arthur曾經表示如果能夠籌集到2000萬美元,那麼他就可以開展專案,哪怕不會掀起全世界的革命也至少能對當前的加密貨幣領域有所影響。最終,他們籌集到了2.3億美元。這筆鉅款將Tezos專案推向神壇,也讓這個專案從內部瓦解,迅速墜落。
1.3 鏈上治理與鏈下治理
在2014年釋出原始Tezos白皮書的時候,還沒有人關注治理的重要性,但現在治理已經成為區塊鏈行業的一個共識。區塊鏈的治理機制主要分為鏈上治理和鏈下治理兩種。
鏈上治理:當鏈上治理流程決定進行一個升級時,區塊鏈節點自動升級,不需要硬分叉。鏈下治理模式中,節點運營商必須有意識地決定是否選擇啟動硬分叉,以使其節點與決定啟動該分叉的運營商節點達成共識[3]。
鏈上治理協議使參與方可以決定區塊鏈本身的發展方向。這裡的參與方包括代幣持有者、開發者、礦工等。在鏈上治理協議中,參與者需要採取行動才能參與治理過程。而鏈下治理中,大部分人可能並不知道也無法影響治理過程。需要注意的是,在目前這個階段,無論是鏈上治理還是鏈下治理,使用者的參與度都非常低。這是因為參與治理的投票便利性不高,操作比較複雜,很多使用者並不願意參與其中。下面簡單介紹幾個加密貨幣的治理機制:
① 比特幣
在比特幣的設計中,並沒有正式的治理機制,社群中任何人都可以貢獻自己的想法。但是,鬆散的溝通反饋渠道需要核心開發者協調和討論各種實現。比特幣治理機制的激勵措施包括現有持幣的潛在價值增長以及社群的聲譽和尊重。他們可以獲得私人資金和希望資助開源專案的人的捐款。然而,比特幣協議中沒有獎勵發展的本地獎勵機制。
TokenGazer團隊認為:目前比特幣社群的專案文化決定了其現行的治理機制。比特幣的核心開發者是一群相對保守的人,他們遵循比特幣設計的初衷,並不熱衷於系統的升級和迭代,因此他們對治理機制也不會特別用心。
② 以太坊
以太坊創始人Vitalik Buterin曾經明確表示反對鏈上治理的做法,認為鏈上治理並不能解決根本問題。以太坊核心開發團隊並不排斥硬分叉的發生。從建立至今,以太坊一直按照路線圖多版本迭代開發,進行分散式的嘗試和中心化的升級。也就是說,在以太坊系統中,核心開發人員控制治理決策並進行程式開發,維持程式的一致性和連續性。
③ Tezos
Tezos旨在促進安全的智慧合約並通過正式治理進化[4]。節點將通過代理民主模式決定升級協議,直接實施所選擇的協議修訂,避免發生硬分叉。Tezos的目標是通過正式證明加強良好的決策。通過設計其智慧合約語言Michelson,這些決策證明將變得更容易。隨著時間的推移,這也可能鼓勵精英管理、多元化社群文化,並減少對傳統守門人的依賴。Tezos的程式碼是開源的,任何人都可以提議升級。
Tezos旨在促進安全的智慧合約並通過正式治理進化[4]。節點將通過代理民主模式決定升級協議,直接實施所選擇的協議修訂,避免發生硬分叉。Tezos的目標是通過正式證明加強良好的決策。通過設計其智慧合約語言Michelson,這些決策證明將變得更容易。隨著時間的推移,這也可能鼓勵精英管理、多元化社群文化,並減少對傳統守門人的依賴。Tezos的程式碼是開源的,任何人都可以提議升級。
2.技術分析
Tezos是一個可以自我修正的區塊鏈,代幣持有者可以對協議的更改進行投票(包括對投票程式本身的更改進行投票),就提案達成共識。Tezos支援智慧合約,並提供一個平臺來搭建DAPP。Tezos本身用Ocaml語言編寫。由於官方白皮書十分陳舊(釋出於2014年),諸多資訊已經與官方網站及Medium主頁上的描述不一致,2017年募集資金時的網頁也已經被刪除,本報告的技術部分主要參考依據是官方網站、Medium主頁及開發者文件,直接由官方渠道披露的資訊極少。Tezos的Beta(實驗)網路已經於2018年6月上線。
經濟協議用來解釋交易和其他管理操作,也負責偵測錯誤區塊。Tezos開發者文件引入了“經濟協議”這個概念,但沒有給出解釋,但經推測“經濟協議”並沒有特殊含義,理解為Tezos中可以更新的協議(Protocol)即可。
Shell是節點的一部分,包含驗證器、點對點層、區塊的儲存、允許節點將鏈資料傳輸到新節點的操作以及賬本的版本化狀態,充當經濟協議的外殼。
RPC(遠端過程呼叫協議)層規定了客戶端、第三方APP、守護程序如何與節點互動並進行狀態自查的方式。
2.1 生態
Tezos網路裡主要參與者有持幣人、麵包師(baker)、背書人(endorser)、代表(delegate)等。
麵包師(baker),是指建立區塊的節點。必須持有大於等於10000個代幣,並滿足一定硬體要求。麵包師執行節點時需要下載和同步全部區塊資料。
背書人(endorser),是指見證區塊,檢查區塊是否合法的節點,每個區塊有許多隨機選擇的背書人。背書人也需要提供安全保證金,也可以獲得獎勵。麵包師也參與背書,反之亦然。每個區塊有一個隨機節點產生,並由其他32個隨機節點驗證。
代表(delegate)是指代幣的受託人,專業實施烘焙。
2.2 不可能三角
任何一個公鏈專案都需要考慮三個要素之間的妥協:安全性、可擴充套件性、去中心化程度(DBP,可以理解為區塊生產者數量),這三個效能無法同時提高。同時,區塊是否能夠快速達到最終性也是衡量公鏈效能的一個重要指標。
Tezos採用PoS共識機制。持幣數量大於或等於10,000的使用者可以執行節點創造區塊(稱為烘焙),如果使用者持有的代幣數少於10000,則可以將代幣委託給他人進行區塊烘焙。需要注意的是,有很多其他資料把Tezos的共識機制理解為DPoS(委託股權證明),儘管Tezos的PoS機制中包含了委託(Delegation)這個概念,但這裡的委託與DPoS中的委託不完全相同,Tezos中的“委託”是指將代幣“委託”給其他人挖礦,自己可以獲得獎勵分成,這個“委託”過程是自願的;而DPoS中的“委託”是指固定數量的超級節點出現後,所有人將建立和驗證區塊的權利“委託(被迫交出)”給超級節點,普通人並不能因此獲得挖礦獎勵分成。因此將Tezos的共識機制理解為DPoS並不合適。
對於安全性,Tezos節點數量可以很多,相比於DPoS共識安全性較高。Tezos的PoS機制中,授權進行區塊簽名的祕鑰與授權進行代幣轉移的祕鑰不同,這種安全措施使得代幣持有者可以將對區塊的驗證權利轉移給其他持有者,而不需轉移所有權。
2.2.1 Nothing at stake(無利害挖礦)問題
Tezos使用懲罰機制來避免“Nothing at stake”問題。參與挖礦需要保證金,保證金用來保證麵包師的誠實行為,如果麵包師試圖在兩個分支上廣播區塊,那麼他的保證金將被沒收。如果麵包師成功建立和廣播了合法區塊,他將獲得區塊獎勵和包含在塊中的交易手續費。這種機制下,用金錢獎懲來避免雙挖礦問題,節點的安全由麵包師自行維護。
2.2.2 初始分配問題
在網路初期,少量資金就可以控制大量的代幣,從而獲得更多的挖礦機會,因此早期持有者向第三方釋放代幣的動力不強。這與PoW共識不同,PoW共識中任何人只要升級硬體就可以獲得更多的挖礦獎勵,持有大量代幣並不能直接帶來更多挖礦機會;而在PoS中,只要早期持有者持有大量代幣,就很可能在獲取挖礦機會上一直保持領先優勢。關於初始分配問題,Tezos沒有給出詳細解決方案。
2.2.3 遠端攻擊
Tezos採用提前隨機指定挖礦節點的方式避免遠端攻擊,區塊建立後可以很快確認。
對於去中心化,Tezos的區塊生產有一定的准入門檻,但目前對持幣數量和硬體的要求不高(穩定的網路 少量RAM,普通使用者也有機會參與區塊生產,理論上去中心化程度介於PoW和DPoS之間,更接近PoW)。
對於可擴充套件性,Tezos的區塊生產有一定的准入門檻,相比純粹的PoW和PoS具有較高的效能,但由於沒有超級節點的存在,效能會小於DPoS。當前Tezos測試網的區塊大小為500KB,區塊間隔為1分鐘,TPS在30-40之間,但後期可能採用SNARKs或STARKs技術擴容[6]。預計後期TPS會緩慢提升,但去中心化程度下降(理由見2.6.1章節)。
對於最終性。目前Tezos出塊時間為1分鐘,產生區塊後需要其他32個隨機節點進行驗證簽名,驗證同時進行,區塊可以很快得到確認。
綜上所述,在“安全-效能-去中心化”的不可能三角中,Tezos所處位置如圖所示,在去中心化和安全性方面有更多的考慮,但犧牲了部分可擴充套件性
2.3 虛擬機器
官方白皮書沒有提及Tezos虛擬機器問題,也沒有提到智慧合約語言,但是從官方Medium文章及社群討論可以推斷Tezos中沒有虛擬機器的概念。
根據Tezos開發者文件描述[7],Tezos採用的智慧合約語言是Michelson。該語言基於堆疊,具有高階資料型別和嚴格的靜態型別檢查,易於實現形式驗證,減少程式碼錯誤。在以太坊中有一個明確的編譯生成位元組碼的步驟,然後位元組碼被虛擬機器解釋執行。在Tezos中,沒有編譯生成位元組碼的步驟,Michelson編寫的程式本身就類似於高水平的位元組碼,它可以直接被Tezos執行。Michelson被設計成可讀的彙編物件,可以手動編寫[8],但是Michelson的執行環境沒有找到描述。
一種為Tezos設計的名為Liquidity的智慧合約程式語言正在開發中(但是Tezos官方網站及開發者文件沒有提及),Liquidity是一種完全型別化的函式式語言,它使用OCaml的語法,並嚴格遵守Michelson的安全限制。Liquidity的形式框架正在制定中,用以證明Liquidity中智慧合約的正確性。Liquidity包含Michelson的全部特點[9],Liquidity程式碼可以編譯成Michelson程式碼。
2.4 特徵
2.4.1 自我修正
Tezos中節點通過委託民主模型決定協議更新,直接實施選定的協議修正方案。為了激勵創新,Tezos使用通貨膨脹資金來明確獎勵協議中的升級提議。根據Tezos官方Medium文章描述[10],Tezos的投票機制並不是引入低效的類似於國家決策的投票過程,但沒有詳細解釋如何避免低效決策。
當Tezos需要更新協議時,可以在區塊鏈上發起投票,參與者投票決定要不要實行協議的更新。如果大部分人同意,那麼協議將會自動的被編譯部署到Tezos的測試網路上進行試執行。如果試執行順利,將會發起另一個請求,如果大部分人同意,那麼這次協議將會生效,協議的更新將會自動部署到主網上,並強制網路每一個節點更新成最新的協議。通過鏈上治理可以避免硬分叉並促進Tezos進化。
TpkenGazer與專案官方團隊成員難以取得聯絡,但Tezos的Riot社群的一位管理員(並非官方成員)解釋,有關投票和協議升級的程式碼已經準備完畢,尚需公測,但目前沒有相關文件。目前沒有任何經過投票的修正方案。
2.4.2 形式驗證
白皮書中幾乎沒有實質性提到有關形式驗證的內容,僅在官方網站及創始人的文章中找到了一些簡要描述[11]。形式驗證相當於使用數學證明的方法證明智慧合約的有效性,如果形式驗證使用恰當,可以幫助避免程式中的bug。Tezos智慧合約採用的語言Michelson有助於實現形式驗證。
Tezos的Riot社群的一位管理員(並非官方成員)解釋,目前他沒有聽說在Tezos上進行過任何形式驗證。
2.4.3 優化的PoS機制
如2.1章節所述,Tezos中持幣數量大於或等於10,000的使用者可以執行節點創造區塊,如果使用者持有的代幣數少於10,000,則可以將代幣委託給他人(稱為代表)進行區塊烘焙,如果代表烘焙出區塊得到了區塊獎勵,則委託人也能得到獎勵分成。好處是,普通人可以通過委託他人烘焙來避免代幣通貨膨脹帶來的損失。舉例來說,EOS的超級節點每年會得到一定比例的代幣增發獎勵,這間接上稀釋了普通使用者手中的代幣價值,有不公平的嫌疑。另外Tezos的挖礦(烘焙)門檻較低,有利於鼓勵更多人蔘與。
Tezos的烘焙節點通過隨機方式產生,有利於避免產生過多分支。
2.5 代幣經濟
麵包師(baker)需要自己持有一定數量的代幣才能進行烘焙,背書人(endorsers)也需要一定的保證金才能進行驗證。麵包師提前幾周就獲知自己將獲得烘焙的權利,這時他便有幾周的時間來準備安全保證金。保證金根據要建立的區塊數量動態變化;
麵包師通過烘焙可以得到區塊獎勵以及區塊中包含的交易手續費,背書人通過簽名驗證可以獲得獎勵,Tezos代幣每年增發5.5%。為鼓勵麵包師參與,在前六個月保證金的比例從0%到8.25%線性增加;
普通使用者可以將自己的代幣委託給其他人進行烘焙,自己可以獲得獎勵分成;
持有代幣可以獲得鏈上治理的投票權;
如果Tezos未來承載了DAPP,那麼代幣可以充當流通媒介;
儲存和執行智慧合約需要消耗代幣。
2.6 遺留問題
2.6.1 中心化風險
Tezos初期參與烘焙的准入門檻不高,普通使用者也有機會參與其中,但是隨著資料量日益增加,節點需要同步和儲存的資料量也會日益增加,這需要越來越高的儲存和維護成本,實際上相當於提高了准入門檻,與比特幣類似,經過一段較長時間後,Tezos可能會向比特幣的礦池模式演化,普通使用者因無法達到挖礦的准入門檻而不得不將手中的代幣委託給實力較強的節點進行挖礦。這樣,實際執行的節點將會減少,造成利益分配上的中心化。
2.6.2 治理難題
Tezos的思想是持幣人投票決定區塊鏈走向,但是這樣可能造成的結果是:大家一起投票公平的選出了平庸的方案。Tezos的本意是鼓勵創新,但是投票的結果很可能是最受多數人喜愛的方案受到了認可,而不是最優的方案。同時投票權重與持幣數量正相關,也就是說少部分人的影響力大於其他人,在公平性上有爭議。
2.6.3 硬分叉難題
Tezos因為有投票達成共識的過程,因此可以避免大部分情況的硬分叉。但這並不意味著Tezos不會出現硬分叉,Tezos出現硬分叉的可能場景是:通過治理模型改變賬本不切實際或者相比硬分叉沒有表現出優勢時。由於投票過程相對緩慢,極端情況下,比如說程式碼突然發現重大bug,通過這個bug可以憑空創造大量代幣,這時投票解決不切實際,硬分叉難以避免。諸如此類場景,最終決定權的歸屬問題尚需思考。
2.6.4 競爭對手
由於Tezos專案最初在2014年提出,改進的PoS共識、自我修正(鏈上治理)、形式驗證的思想在當時具有先進性,但在當下提出這些思想的專案已經比較普遍,如DFINITY、Cosmos也計劃實施鏈上治理,CertiK、Ekiden也準備實施形式驗證,不過鏈上治理和形式驗證還沒有成熟的應用案例。事實上,DPoS共識中的超級節點也是由持幣人投票選出,一定程度上相當於鏈上治理,只是投票的針對範圍較小,而Tezos將投票的針對範圍幾乎無限擴大。另外,由於區塊鏈的匿名特徵,有不少人反對鏈上治理。
注:由於本篇報告篇幅較長,故分2部分更新上傳至平臺,供大家閱覽,後續內容見下篇。