【问链财经-区块链基础知识系列】 第三十九课 EOS与ETH体系结构比较全解析
以太坊理解成為一個在其上可以開發運作各種去中心化的應用(Dapps)的去中心化平臺,同時它有一個優勢在于,它確保了它的用戶在運行這些應用程序(Dapps)時不受任何第三方的約束。
EOS將是一個區塊鏈操作系統,其上它向所有的應用程序開發者提供了數據庫、賬目權限設置、執行調度、認證以及網絡應用通信等功能。EOS將提供給開發者合適的工具,以使得他們更加專注于他們自身應用的邏輯設計,而不用擔心加密算法的實現或者與去中心化的計算機之間的通信;同時,EOS也將盡可能達到高并發,使區塊鏈并發達到百萬交易每秒的級別。
以太坊和EOS這兩個系統在技術、性能和設計思想等方面到底有何區別?
一:數據結構
EOS 是 non-blocking 的區塊鏈,異步、批量、并行機制最大化整個網絡的吞吐。
區塊是由按順序組織的交易來構成的。區塊像是一個容器,它自頂向下依次包含以下這些結構:
user_input中就是trasaction,一個trasaction對應多個messages/actions
previous previous 為指向前一個區塊的hash 值,EOS采用的hash 算法是SHA。
timestamp timestamp 為時間戳,該區塊的生成時間。 transaction_merkle_root 為該區塊內所有交易的merkle 根,用于快速驗證交 易的完整性。
producer producer 為該區塊的生成者。任何時刻,只有一個生成者被授權生成區塊。 EOS架構中區塊的產生是以21 個區塊為一個周期,在每個出塊周期開始前, 21 個區塊生成者會被投票選出。
producer_change 就記錄了未來的21 producer_signature 是該區塊的生成者對該區塊的簽名。EOS采用的是ECDSA 簽名算法,使用的橢圓曲線參數是secp256k1。
cycles EOS設計的目標之一是**使得兩個賬戶(合約)能夠在單個區塊內來回交換消 息(交易),而不必在每個消息之間等待 消息分成了cycle來順序處理。
scop可以理解為權限,也就是規定當前這個操作所要求的授權列表,scope可以包含零個,一個,或者多個授權要求。
block_id vs block_num
很多人把區塊id和區塊序號混為一談,其實它們是不一樣的概念,區塊id是一個與區塊內容有關的標識,而區塊序號僅僅是從0計數的區塊編號。
ETH的區塊結構:
ParentHash:父塊的哈希值
Number:塊編號
Timestamp:塊產生的時間戳
GasUsed:交易消耗的Gas
GasLimit:Gas限制
Difficulty:POW的難度值
Beneficiary:塊打包手續費的受益人,也稱礦工
Nonce:一個隨機數,使得塊頭哈希滿足POW需求
StateRoot:狀態樹的根哈希值
TransactionsRoot:交易樹的根哈希值
ReceiptsRoot:收據樹的根哈希值
每個礦工在把交易打包成塊的時候,會組織三顆樹:
交易樹,樹葉里是交易
收據樹,樹葉里是交易生成的收據
狀態樹,樹葉里是交易影響到的賬戶狀態
二:存儲:
EOS存儲基于IPFS(星際文件系統)之上設計的。
目前eos中,mongodb用來存儲block/trasaction,主要用于查詢(如eostracker)
chainbase 支持無限undo的高性能內存數據庫,存儲合約狀態數據等
ipfs 存儲文件。
以太坊區塊和交易等數據最終都是存儲在leveldb數據庫中的。
leveldb是一個key-value數據庫,所有數據都是以鍵-值對的形式存儲。key一般與hash相關,value一般是要存儲的數據結構的RLP編碼。區塊存儲時將區塊頭和區塊體分開存儲。
根據交易hash從數據庫中讀取交易,它返回對應的交易、交易所在區塊的區塊hash、交易所在區塊的區塊號、交易在區塊中的索引。
三:智能合約
智能合約可用于解決在沒有第三方介入的情況下,財富和資產的交換與轉移。與傳統的合同類似,智能合約也定義了交易雙方的權利責任和違約賠償,但不同之處在于,在智能合約平臺上會自動去執行這些條款。以太坊是目前最大也是最成功的智能合約平臺,在其上成功運行了不少去中心化的應用,而EOS也將致力于解決目前以太坊上所存在的問題。區別是以太坊開發主流是solidity,EOS的智能合約是C++。
四:設計理念
以太坊網絡如它的白皮書上的設計原理文檔中所述:以太坊“沒有特性”,“拒絕內置”。這樣的原理減少了應用程序的臃腫,但依然要求許多不同的應用程序來進行代碼重用。
而EOS則不同,它意識到許多不同的應用其實是需要部分相同類型的功能的,EOS將廣泛引入如下特性:基于角色的權限管理、用于界面開發的WEB工具包、自描述接口、自描述數據庫體系、還有一個聲明式許可方案。按我的理解,EOS提供這些功能對于簡化用戶賬戶生成和管理以及安全問題(類似聲明權限和賬戶恢復)將特別有效。
五:共識機制
以太坊使用工作證明POW模式(很快將轉換為POW/POS混合模式),而EOS將會使用采取股份授權證明(DPOS)機制的石墨烯技術,eos這種選擇對商業可擴展性具有顯著價值。
以太坊的POW共識機制,每次的硬分叉也能引起產生多個競爭鏈的風險,如同以太坊經典ETC在DAO事故之后分裂出來。但為了處理一個已毀壞的應用,一個擾亂了整個以太坊網絡分裂性的硬分叉又是必須的。
EOS目前最新的dpos+bft,包含一個凍結和處理破壞性或凍結類應用程序的機制。舉例來說,假如DAO在EOS上發生了,它可以被凍結、處理或更新而不會干擾其他應用程序。此外,EOS的DPOS共識機制使得在硬分叉時沒有伴生出多重競爭鏈的潛在可能性。EOS將包含一個有法律約束力的“憲法”,確立共同管轄權用于解決用戶爭端,它還包括一個基于股權權重投票產生的自治的社區。
每個塊由21個Block Producer異步并行的進行BFT投票,大約1.5秒后,就可以被2/3個BP確認。
六:可擴展性
以太坊網絡受限于CPU單線程性能。早期測試網絡已達到每秒實現25次交易(在某種優化條件下),而通過優化可能會提高到50或100tx/s。在真實的應用程序負載下,以太坊網絡當前的交易可能會被限制到10tx/s或者更低。這段時間以來,網絡已經被交易信息壓垮、過載,以至于除了最高費用的交易之外,其他的交易很容易被拒絕。
EOS相比以太坊網絡而言有兩個顯著優勢,一旦實施,EOS將很可能成為唯一可以真正處理商業級的去中心化應用。首先,EOS依賴已經在壓力測試中展現出每秒1萬至10萬筆交易處理能力的石墨烯技術,雖然目前最近測試版本的只有幾千TPS。其次EOS將使用并發技術來擴展網絡,或將達到每秒數百萬次的交易處理能力。EOS將使用異步通訊并將認證與執行過程分離來實現加速。并且由于沒有交易費用,EOS也不需要計數操作。
七:網絡攻擊
以太坊網絡中礦工總是優先選擇高手續費的交易打包進區塊鏈中。由于網絡中的帶寬和算力是有限的,這誘使富有玩家以高手續費交易對網絡進行阻塞,以便確保他們的交易能夠順利通過。這成為了以太坊網絡的一個嚴重缺陷,因為單一的應用或者智能合約就能有效的阻塞整個網絡。比如那個cyptoKitty。
EOS代幣的所有者給予用戶按比例的網絡帶寬、存儲空間、運算能力。因此惡意攻擊者只能消耗根據其EOS代幣占比擁有的相應比例的網絡資源。DOS攻擊或許可能對某個特定的應用有效,這取決于該應用的設計,但是這些攻擊永遠不會擾亂中斷整個網絡。
八:經濟模型
對以太坊來說,交易中每次的計算、存儲操作、帶寬使用都需要GAS費用。而且這些必需的費用是波動的,能夠設置成非常高的價格,因為礦工總是優先選擇處理高手續費的交易。這種經濟模式要求開發者們和初創公司們在應用的開發和部署過程中不停的燃燒GAS費用。
EOS會采用所有權模式,這種模式下持有EOS代幣會給予用戶分享相應比例的網絡帶寬,存儲和處理能力。這意味著如果用戶擁有1%的EOS代幣,無論網絡其余部分的負載如何,他將始終可以訪問1%的網絡帶寬。需要擴展他們的應用程序的時候只要簡單的購買更多的EOS代幣即可。由于網絡是零交易費用,除了首次購買EOS代幣之外,沒有其他的網絡開發成本。
本文轉載鏈接:https://www.jianshu.com/p/928e219f28c2
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的【问链财经-区块链基础知识系列】 第三十九课 EOS与ETH体系结构比较全解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【问链财经-区块链基础知识系列】 第三十
- 下一篇: 【问链财经-区块链基础知识系列】 第四十