當前位置:
首頁 > 最新 > 區塊鏈創新平台:以太坊的直接競爭對手EOS

區塊鏈創新平台:以太坊的直接競爭對手EOS

區塊鏈前哨導語:區塊鏈技術的發展還處於非常早期的階段,未來一段時間,不是區塊鏈應用落地的爆發期。之所以這段時間這麼火熱,更多的是一種市場炒作,是區塊鏈技術大規模應用前的泡沫式營銷。我認為在未來兩三年時間裡,更多的還是區塊鏈基礎設施的完善,基礎設施不完善,想將區塊鏈應用真正的大規模落地是不現實的。

更多乾貨內容請關注微信公眾號「區塊鏈前哨」,(ID:blockchain-666)

在區塊鏈創新這個系列裡,我們會挑選幾個能代表區塊鏈未來的項目解讀。首先出場的是風頭最大也是爭議最多的 EOS(Enterprise Operation System),他的目標是作為企業級去中心化應用(DAPP)平台底層, 他是以太坊的直接競爭對手。

為什麼需要 EOS?

挑戰者的出現必定是因為現行平台不足以滿足目標需求。讓我們先來梳理梳理現行區塊鏈平台的不足:

交易性能低,難以滿足巨量交易。比特幣和以太坊因為共識演算法(PoW)的設計造就了其交易性能不足,雖然以太坊從比特幣的每秒處理 7 筆交易增加到大約 30 筆每秒。但是對照現有的支付寶、VISA 等支付平台,交易性能還是有著數量級的差別。並且隨著交易的增多,勢必造成網路的擁堵,又進一步降低了網路的流暢度;

交易手續費。比特幣和以太坊的交易不是免費的,或多或少都會向礦工支付手續費。且手續費的多少視網路擁堵情況而定,網路越擁堵,礦工只會擇優選擇交易記錄,而不是按照提交時間記錄。這樣就造成手續費激增,不利於商業應用的落地;

升級就是分叉。比特幣與以太坊的升級是以分叉的形式進行,一分為二,如果更新過多,網路會變的非常複雜;

高延時確認。比特幣與以太坊採用的工作量證明(PoW)共識演算法不是一個結果確定性的共識演算法,因此需要多區塊確認才能確保一筆交易成功達成;

正因為有以上這些不足,阻礙了區塊鏈在商業領域的發展,EOS 正是為了解決以上問題而出現的。接下來的篇幅,我將給大家介紹一些 EOS 的殺招。

EOS 的殺招

DPoS(委託權益證明)共識演算法

所謂委託權益證明,通俗的講,我們可以理解為「人民代表大會制」。擁有 EOS 幣的「人民」不直接參与挖礦,而是投票選舉一些「人民代表」去挖礦。相比於比特幣等使用的工作量證明機制(PoW),委託權益證明有什麼優勢呢?

比特幣相比於傳統法幣,其最重要的一個特性就是去中心化,只有當它是去中心化的時候,比特幣才是安全的。但真實的情況是這樣的么?幾年前,任何人都可以使用自己閑置的台式機甚至筆記本來挖礦。後來,隨著比特幣不斷被大眾熟知,價格越來越高,挖礦變得越來越專業,先是顯卡(GPU)挖礦,接著就是專業礦機的問世,催生出了完整的挖礦產業鏈。不僅有礦機生產商,還有大型礦場的問世,比特幣世界的話語權逐漸被這些大型玩家把控,去中心化程度越來越低。之所以還沒有出現大的問題,是因為還沒有出現需要大家一起作假的事件出現。但是一旦出現,對比特幣來說將是致命的打擊。

DPoS 就是在這樣的大背景下產生的共識演算法,由 Dan Larimer 提出,首先被應用在比特股(BitShare),EOS 在其基礎上又做了些許延伸。

見證人(人大代表)選舉

在 EOS 網路中,存在一個不間斷的選舉大會。每位 EOS 鏈的「人民」都可以選舉一名授權代表,代表自己行使產生區塊(挖礦)的權利。當然,不是每個被投票的人大代表都可以被選中,EOS 網路只選取選票最高的前 20 名代表作為這一輪的區塊生產者,還有一名通過得票比例選出。這裡解釋一下,每位選民手裡不止一票,選票數跟 EOS 幣持有量成正比。這樣來看,選中的 21 名區塊生成者其中 20 位代表更多的 EOS 幣資源,而最後 1 名是代表了更多的選民。個人認為這個比例太大了,這也是有人詬病 DPoS 是富人遊戲的原因。為了保證更高的公平、均衡,選出來的 21 個代表隨機打亂順序排列。

區塊生產

按照之前選舉的 21 人隨機排列後,每隔 3 秒時間生成一個區塊,在這個時間段內有且只有一個區塊生產者(1/21)。如果在規定時間內區塊未產生,則會跳過該區塊。當然,區塊生成者的不作為是有懲罰的。如果一個生產者錯過了一個區塊,且在過去 24 小時內沒有生產出任何區塊,那麼他會從 21 人中除名,直到他恢復服務。

DPoS 共識不同於 PoW,EOS 區塊鏈不會產生任何分叉,區塊的結果是確定性的,區塊的生產是通過合作而非比特幣的競爭方式。即便是真的出現分叉,區塊產生的速度是與生產者的多少是成比例的,分叉鏈因為區塊生產者較少,勢必造成等待交易增多,單個區塊生產速度降低,隨之會與正常鏈有高度差異。也就是說,擁有更多生產者的區塊鏈分叉會比擁有較少生產者的分叉鏈增長速度更快,檢測到差異後,隨後 EOS 網路自動完成切換。

交易確認

比特幣的交易確認一般需要 6 個區塊,也就是大約 60 分鐘時間,在商用領域,這完全是不可行的。之所以需要 6 個區塊確認,是因為比特幣網路有分叉,6 個區塊確認是防止交易所在區塊被拋棄從而導致交易無效的妥協。

然而 EOS 網路是防分叉的,因此一般情況下,區塊是確認生產的,所以平均一個交易從廣播開始後 1.5 秒就可以認為是確認了。解釋一下為什麼是 1.5 秒,因為區塊的生產速度是 3 秒一個,區塊生產者會將這 3 秒鐘收到的所有交易都打包成塊,那麼最先和最後被打包的交易相差 3 秒,一平均也就是 1.5 秒。

以上是一般情況下,但是也不能排除特殊情況,諸如軟體 bug,網路擁堵或者惡意分叉。為了確保交易絕對不可逆,節點可以選擇當交易被 21 個區塊生產者中的 15 個確認後才有效,這種情況下需要大概 45 秒時間進行交易確認。而且規定,只要區塊進行了 15 次的確認,那區塊就是歷史鏈的一部分,不可再被替換,即便有分叉發生。

交易證明(TaPoS)

不同於其他區塊鏈的底層數據結構里,後一區塊包含前序區塊哈希依次組成區塊鏈。在 EOS 中不止如此,它要求所有的交易都必須包含前序區塊哈希。這樣做主要有兩個目的:

防止不包含區塊引用的交易在分叉是重放,因為不包含區塊引用,該交易可以被加入到任意區塊,任意分叉鏈;

標識用戶和他們的資產在哪條分叉上。

因為偽造的鏈條不能遷移交易,那麼他就只能追加交易。前面已經提到,追加交易的速度是跟區塊生產者的數量成正比,速度慢,分叉鏈增長慢,最終就會被替換。

賬戶模型

EOS 的賬戶支持人類可讀的名稱,長度在 2-32 個字元之間,由賬戶創建者自己選擇,可以理解為昵稱。賬戶的創建不是免費的,必須用少量的 EOS 幣注資。如果是通過 DAPP 註冊的用戶,一般是應用開發者為新用戶註冊成本買單。在傳統的商業應用中,商家為了吸引新用戶花費了太多精力,比如廣告和免費試用等,和這比起來,在 EOS 中註冊賬戶的花費微不足道。而且,已經註冊過的用戶不需要創建新的賬戶。

命名許可權分組

EOS 的賬戶名稱可以支持命名空間,這是一個非常好的設計,基本可以無限拓展。命名空間與許可權管理結合為 EOS 的賬戶模型創建了無限可能。授權和許可權管理被標準化和脫離應用的邏輯是不可取的,但是過多的耦合也是不恰當的。命名空間與許可權管理結合,一定程度上解耦商業應用邏輯,創建了分層級的權利結構,這與現實生活中的許可權分配方式非常契合。賬戶定義的命名空間許可權級別,每一個都是有更高級別的命名許可權派生而來。比如 @accountname.car 由 @accountname 派生而來。

消息處理群組與許可權映射

EOS 的消息系統也是與命名許可權掛鉤,被稱為命名消息處理群組。其他賬戶如果想要與該賬戶通信,必須擁有訪問賬戶特定的消息處理群組許可權。在 EOS 中,最高級別的消息處理群組是賬戶名稱,最低級別的是某個單獨的消息類型,比如 @accountname.group.subgroup.MessageType。消息處理群組與許可權的綁定被稱為許可權映射,打個比方,一個帳戶所有者可以將自己社交媒體應用(DAPP)與自己的「朋友」許可權群組(@accountname.friend)建立映射。 有了這個映射,任何朋友可以以帳戶的身份在帳戶的社交媒體上發帖。 當然朋友們還是使用他自己的秘鑰對消息簽名,賬戶很容易知道是哪個朋友使用了這一功能。

許可權驗證

當賬戶 A 發送一條「EAT」類型的消息給賬戶 B 時,首先會驗證是否 A 為 @b.group.subgroup.EAT 定義過許可權映射,如果沒有找到,緊接著檢查 @b.group.subgroup 映射,然後是 @b.group,最後是 @b。如果都沒找到,那麼會被映射到默認的許可權群組 @a.active。一旦映射被識別,則開始驗證許可權映射的正確性。如果失敗,則跳至父許可權,直至擁有者許可權 @a.owner。「owner」許可權分組與「active」許可權分組是兩個默認的分組,相當於兩個管理員分組。其他分組都是派生自「active」分組。

因為許可權驗證的過程是只讀的,並且通過交易改變許可權是在區塊結塊之後才生效。也就是說,對所有交易的許可權驗證可以並行執行。我們都知道,在區塊鏈中,對交易的正確性校驗佔據了很大一部分計算量,EOS 通過只讀驗證和並發驗證使得性能得到極大的提升。而且從歷史中重構世界狀態的時候,也不再需要進行重複的許可權驗證,區塊本身沒有問題,包含在其中的交易也就沒有任何問題,這將極大的減少 EOS 網路中新節點同步區塊的速度。

強制性延時消息

EOS 中提供了一個有趣的功能,非常類似於 IM 中的消息撤回功能。EOS 用戶可以在交易被廣播之後,在被加入到區塊之前,可以授權取消交易。這個功能主要是用於兼容時間敏感的應用,比如購買一杯咖啡,我們可能不會後悔,幾秒鐘時間就完成交易不可逆了。但是購買一套房子,可能需要 72 小時的結算周期等。具體的延時選擇有開發者和用戶自己做出決定。

密鑰找回

EOS 的密鑰找回功能也非常的接地氣,而且好像在比特幣或者說以太坊中沒有類似的功能,你被黑客攻擊了都不可能再獲得賬戶的控制權。而 EOS 則不太一樣,提供類似 QQ 密碼找回功能,你只需提供過去 30 天中有過交易的任何一個密鑰與事先指定的關聯賬戶一起重置賬戶密鑰。當然關聯賬戶在沒有所有人的幫忙也是無法單獨重置賬戶的。而且黑客是無法進行賬戶重置的,因為他已經控制了賬戶,而且另一方面,關聯賬戶在恢復過程中也會詢問一些只有當事人知道的信息,因此黑客也無法重置賬戶。

應用程序的確定性並行執行

EOS 號稱可以每秒處理 100 萬筆交易,不僅僅靠的是許可權並發驗證,並且使用並行模型使得 DAPP 可以並行執行。區塊鏈可被看做是一個分散式的狀態機,交易順序一定,就能得到一致的結果。因此在並行模型下,對同一賬戶的交易處理必須放到同一個線程中,否則不能達成一致性。EOS 中由 21 個區塊生產者組織分發交易到不同的線程,並行執行。

基於最簡單的交易模型,即只修改單個賬戶的狀態,在並發模型中是沒有問題的。但是一旦涉及到賬戶間的交互以及互相引用的情況,顯然有些不足。因為在單個線程中,賬戶交易是順序執行的,多個線程之間互不影響。如果涉及到賬戶交互需要被分散到兩個區塊及以上,肯定是不合適的。為此 EOS 設計了嵌套的區塊交易模型,稱之為最小化通信延遲模型,能夠在單獨一個區塊中包含兩個賬戶交換的所有消息。EOS 將每個區塊劃分為多個循環順序執行,每個循環內部劃分為線程,線程當然是並發執行,每個線程包含一系列的交易,交易中包含了待發送的消息集合。

在一個循環中生成的交易可以在後續任意一個循環或者區塊中被發送,區塊生產者會持續不斷的向區塊中添加循環直到全局 3 秒或者沒有更多的交易為止。

Token 與資源

EOS 中將資源分為以下三種:

帶寬和區塊存儲 (磁碟);

計算與計算儲備 (中央處理器);

狀態存儲 (內存)。

帶寬與計算有兩部分,瞬間使用和長期使用。一個區塊鏈維持著所有的歷史交易(區塊)日誌,這些日誌最終由全節點存儲。新加入的節點可以根據歷史重現最新應用狀態,這就是歷史重放,如果交易增長過快,會造成區塊鏈過於臃腫,這時可以通過狀態快照記錄區塊鏈狀態,並丟棄交易歷史。

EOS 有一個有趣的功能就是應用發起的交易不可能造成 EOS 網路的堵塞,這點設計與以太坊不同,以太坊中雖然有 GAS 提高了交易發起的成本,但是擋不住有錢人的「DDOS」,大量手續費高但無效的交易可以充斥整個以太坊網路造成整個網路堵塞,這個設計很不友好。EOS 是怎麼做的呢?EOS 中有 EOS Token,應用能使用多少帶寬、存儲,完全取決於應用開發者持有的 EOS Token 的多少,如果持有 1% 的 Token,則可以使用 EOS 網路中的 1% 的帶寬和存儲。此外,因為 EOS 網路沒有交易手續費,除了首次購買 Token 以外,基本沒有消耗,而且當應用不再需要如此多的資源時,完全可以將 Token 轉手,回收最初的投入。

以上就是 EOS 中比較重要的特點,EOS 主網現在還未上線,可能會有更多更優秀的設計未被披露,可以持續關注。

EOS 的詬病

再美好的事物也做不到十全十美,被所有人喜歡。EOS 也不例外,我總結了大家擔憂比較多的幾個點:

去中心化程度低

EOS 採用的 DPoS 共識演算法,在每一輪中只在全網選出 21 個節點作為區塊生產者,也就是說在這一段時間內,所有的交易都由這 21 個節點說了算。因此被詬病不是去中心化,而是多中心化。個人認為這些擔心者走入了誤區,他們認為比特幣採用的 PoW 才是完全意義上的去中心化。不可否認,多年以前的比特幣是這樣的。但是,正如上文中提到的那樣,隨著比特幣挖礦專業性的提升,挖礦逐漸變成了產業鏈,話語權把握在了礦機生產商和大型礦場手裡。相比於 EOS 的 21 個中心,比特幣網路中能作為區塊生產者的節點可能還不到 21 個,而且權利大小還是不一的。而在 EOS 網路中,這 21 個節點權利是平等的,話語權是一致的。同時聯合 11 個節點作惡是可能的,但是可能性較小。而且即便他們聯合作惡了,他們在 EOS 網路中的公信力也就喪失了,在下一輪的投票中(或者永久),已經無緣作為「人大代表」為人民服務了。而且他們作惡的鏈也會因此被拋棄,被其他正義代表糾正。

ICO 涉嫌暗箱操作

EOS 的 ICO 模式比較奇葩,是一種類似於拍賣的模式。EOS 發行總量是 10 億枚,除了第一次分發 2 億枚以外,剩餘的 8 億留 1 億給團隊,其餘 7 億分為 350 個周期拍賣,每個周期拍賣 200 萬枚代幣,由接收到的 ETH 的數量均等分配。被人詬病的是每個周期的前一段時間接收到的 ETH 比較少,但是到周期快結束時會有大量 ETH 進入,直接拉低投資人獲得的 EOS 數量,被人認為是 EOS 開發團隊暗箱操作,將之前收到的 ETH 轉手又投進當前周期,回收 EOS。個人認為這種模式有些不可取,但也是一種維護 EOS 價格穩定的手段,見仁見智。

尾聲

看好 EOS 的人很多,看衰的人也不少。平台的發展不僅僅是技術就能決定一切,社區建設、推廣也必不可少。在 18 年 6 月份 EOS 主網上線前,一切都是未知。當然,我們還是願意看到 EOS 能夠挑戰以太坊的地位,壟斷總是不利於市場的發展,只有相互競爭,相互學習才能有更健康更完善的區塊鏈未來。

黎明就在這裡,Dawn is here!

參考列表dantheman: 《DPOS Consensus Algorithm - The Missing White Paper》 2017,https://steemit.com/dpos/@dantheman/dpos-consensus-algorithm-this-missing-white-paperblock.io:《EOS.IO Technical White Paper》2017,https://github.com/EOSIO/Documentation/blob/master/TechnicalWhitePaper.md

作者介紹

自游,區塊鏈底層架構師。16 年初接觸區塊鏈並全職投入,現供職於某世界 500 強企業做區塊鏈底層研究及 BAAS 平台搭建。精通區塊鏈底層存儲、共識等技術,職業方向偏重聯盟鏈體系。

今日薦文

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 區塊鏈前哨 的精彩文章:

鏈上中國:以唯鏈為例看如何最好的利用區塊鏈技術
怎麼評價牛津大學開設區塊鏈課程?

TAG:區塊鏈前哨 |