EOS与ETH体系结构比较

作者: rectinajh | 来源:发表于2018-05-16 20:28 被阅读25次

    以太坊理解成为一个在其上可以开发运作各种去中心化的应用(Dapps)的去中心化平台,同时它有一个优势在于,它确保了它的用户在运行这些应用程序(Dapps)时不受任何第三方的约束。

    EOS将是一个区块链操作系统,其上它向所有的应用程序开发者提供了数据库、账目权限设置、执行调度、认证以及网络应用通信等功能。EOS将提供给开发者合适的工具,以使得他们更加专注于他们自身应用的逻辑设计,而不用担心加密算法的实现或者与去中心化的计算机之间的通信;同时,EOS也将尽可能达到高并发,使区块链并发达到百万交易每秒的级别。

    以太坊和EOS这两个系统在技术、性能和设计思想等方面到底有何区别?

    一:数据结构

    EOS 是 non-blocking 的区块链,异步、批量、并行机制最大化整个网络的吞吐。

    区块是由按顺序组织的交易来构成的。区块像是一个容器,它自顶向下依次包含以下这些结构:

    user_input中就是trasaction,一个trasaction对应多个messages/actions


    1.png 2.png

    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计数的区块编号。

    屏幕快照 2018-05-16 下午7.09.50.png

    ETH的区块结构:

    528413-6b31217621f0a665.jpg

    ParentHash:父块的哈希值
    Number:块编号
    Timestamp:块产生的时间戳
    GasUsed:交易消耗的Gas
    GasLimit:Gas限制
    Difficulty:POW的难度值
    Beneficiary:块打包手续费的受益人,也称矿工
    Nonce:一个随机数,使得块头哈希满足POW需求

    StateRoot:状态树的根哈希值
    TransactionsRoot:交易树的根哈希值
    ReceiptsRoot:收据树的根哈希值
    每个矿工在把交易打包成块的时候,会组织三颗树:
    交易树,树叶里是交易
    收据树,树叶里是交易生成的收据
    状态树,树叶里是交易影响到的账户状态

    528413-9081eb0ae6dac4e9.png

    二:存储:

    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确认。

    屏幕快照 2018-05-16 下午6.59.37.png

    六:可扩展性

    以太坊网络受限于CPU单线程性能。早期测试网络已达到每秒实现25次交易(在某种优化条件下),而通过优化可能会提高到50或100tx/s。在真实的应用程序负载下,以太坊网络当前的交易可能会被限制到10tx/s或者更低。这段时间以来,网络已经被交易信息压垮、过载,以至于除了最高费用的交易之外,其他的交易很容易被拒绝。

    屏幕快照 2018-05-16 下午6.36.08.png

    EOS相比以太坊网络而言有两个显著优势,一旦实施,EOS将很可能成为唯一可以真正处理商业级的去中心化应用。首先,EOS依赖已经在压力测试中展现出每秒1万至10万笔交易处理能力的石墨烯技术,虽然目前最近测试版本的只有几千TPS。其次EOS将使用并发技术来扩展网络,或将达到每秒数百万次的交易处理能力。EOS将使用异步通讯并将认证与执行过程分离来实现加速。并且由于没有交易费用,EOS也不需要计数操作。

    七:网络攻击

    以太坊网络中矿工总是优先选择高手续费的交易打包进区块链中。由于网络中的带宽和算力是有限的,这诱使富有玩家以高手续费交易对网络进行阻塞,以便确保他们的交易能够顺利通过。这成为了以太坊网络的一个严重缺陷,因为单一的应用或者智能合约就能有效的阻塞整个网络。比如那个cyptoKitty。

    EOS代币的所有者给予用户按比例的网络带宽、存储空间、运算能力。因此恶意攻击者只能消耗根据其EOS代币占比拥有的相应比例的网络资源。DOS攻击或许可能对某个特定的应用有效,这取决于该应用的设计,但是这些攻击永远不会扰乱中断整个网络。

    八:经济模型

    对以太坊来说,交易中每次的计算、存储操作、带宽使用都需要GAS费用。而且这些必需的费用是波动的,能够设置成非常高的价格,因为矿工总是优先选择处理高手续费的交易。这种经济模式要求开发者们和初创公司们在应用的开发和部署过程中不停的燃烧GAS费用。

    EOS会采用所有权模式,这种模式下持有EOS代币会给予用户分享相应比例的网络带宽,存储和处理能力。这意味着如果用户拥有1%的EOS代币,无论网络其余部分的负载如何,他将始终可以访问1%的网络带宽。需要扩展他们的应用程序的时候只要简单的购买更多的EOS代币即可。由于网络是零交易费用,除了首次购买EOS代币之外,没有其他的网络开发成本。

    相关文章

      网友评论

        本文标题:EOS与ETH体系结构比较

        本文链接:https://www.haomeiwen.com/subject/hyumdftx.html