从区块链的基础知识出发,研究ETH和EOS的区别
免责声明:EOS目前还在开发中,我们对此项目的一些理解可能会改变。而且,我并不是以太坊开发者,而只是一个喜欢区块链的爱好者。请牢记这两点,请把下面的内容当作我个人基于在区块链认知对这两个项目的理解所作出的推测,文章内容仅作为区块链知识的学习。
EOS VS 以太坊,到底EOS 是不是以太坊的仿冒者?
比特币发布之后不久,很多有远见的人就意识到,比特币背后的技术会有更大的潜能,而不只是作为电子货币的基石。事实上,仅仅比特币发展的几年之内,人们就创建了不少的去中心化应用,它们都是基于公开账本的区块链技术的,而这也正式比特币采用的技术。这些去中心化应用包括了:加密通信(Bitmessage),去中心交易所(Bitshares),无信任赌博(Peerplays),云计算(Golem),以及社交媒体(Steem/Steemit).在这个新的区块链经济系统中,投资者和开发者面临的一个挑战是他们需要从零开始建立一个新的区块链应用,这项工作十分困难复杂。而这当中最困难的部分----采用传统的工作量证明(POW)和权益证明(POS)共识机制的话---是网络的安全性以及应用依赖于大量的哈希算力以及网络代币的广泛的分发。对于小企业主或者创业公司来说,这形成了比较高的门槛。对于一家小的创业公司来说,它不可能独立的建立一个广泛分发且算力强大的计算机网络来确保它应用的安全。
当然,其他的共识机制比如授权股权证明机制(DPOS)可以用于相对较少的处理器的情况,而不必担心网络安全的问题,但是他们的开发者还是需要担心其他的事情,比如广泛地分发网络代币,开发加密技术与区块链技术来与他们的应用交互。这就好比如果每个电脑游戏设计师为了运行一款游戏,不仅需要从零开始制作一台电脑,同时还需要为这款游戏量身打造一个操作系统。如果是这样的话,现在就不可能会有这么多的游戏。
为了解决这个问题,智能合约平台应运而生,目前最成功的就是以太坊了。可以把以太坊当作是一个用于开发和运行去中心化应用(DAPPs)的去中心化平台,用户可以在上面安心地运行他们的DAPP(去中心化应用)。目前,以太坊的市值接近300多亿美金,这证明了智能合约平台的价值,但智能合约是由代码构成,肯定会有漏洞,这导致以太坊的功能不够完善。
最近,Dan Larimer(Bitshares, 石墨烯和Steem/Steemit的发明者)和EOS.io团队宣布了EOS的开发计划,EOS是一个区块链操作系统,它为应用开发者提供了数据库,账号许可,进程调度,验证以及互联网应用通信等功能。因此,EOS为开发者提供了必要的工具,使得开发者可以专注于他们应用的业务逻辑,而不需要关心类似加密实现或者是与去中心化计算机通信的问题。而且,EOS将使用并行技术,这使得区块链的拓展性有可能达到每秒百万级的通信量。
在这篇文章中,我将就EOS 和以太坊在技术能力与限制方面进行阐述,以及它们设计哲学的差异。
这篇文章的内容包括:
第一章:什么是智能合约
第二章:设计哲学
第三章:共识机制与治理
第四章:扩展性
第五章:DoS攻击
第六章:网络经济:GAS燃烧费用制 vs 股权拥有制
第一章:什么是智能合约
对于那些刚刚接触加密货币和区块链技术的新人来说,最重要的事情就是理解到底什么是区块链。一个区块链本质上就是一个去中心的系统,它的核心是一个公共账本。账本记录着这个系统当前状态(比如每个账号中有多少加密货币)。除了公共账本,区块链技术还包括一个共识机制,共识机制描述了这个去中心化的计算机(运行着这个区块链的计算机网络)如何更新该公共账本的当前状态。
有趣的是,1994年,一位名叫Nick Szabo的密码破译家发现一个去中心化的账本系统可以用来执行智能合约(也叫自执行合约).Szabo先生创造了“智能合约“这个词,他希望能把合约法律实践合并到运行与互联网上的陌生人之间的电子商业协议之中去。
智能合约能够使用一种透明的方式来转移和交换资金或财产,而不需要通过中间人。
与传统的合同一样,智能合约也定义了此协议中的所有义务和潜在惩罚,但是智能合约平台能够自动强制执行所有的这些义务与惩罚。这些智能合约平台允许这些去中心化的应用在它的网络上运行。以太坊是目前最大的也是最成功的智能合约平台,但是新平台EOS将寻求解决以太坊面临的若干问题。
第二章:设计哲学
EOS 和以太坊网络之间最关键的区别是它们背后的设计哲学。可以说以太坊是一个应用不可知论者,也就是说它被设计为一个对于所有潜在的应用中立的平台。以太坊在github上的设计原理文档中如此说道:以太坊“没有特性”,拒绝在协议中加入即使是常用的高级别的用例。这使得应用没那么臃肿,但是它依然要求不同的应用重用代码。但是如果平台本身提供了那些常用的功能,将能提高应用开发者的效率。
于此相反,EOS意识到不同的应用都需要一些相同的功能,EOS就提供了这些功能,比如加密的实现,区块链通信工具的应用。基于这种哲学,EOS将包含以下特性:基于角色的许可功能,用于开发界面的一套web工具,自描述接口,自描述数据库,声明式许可scheme。
就我的理解,EOS提供的这些功能将大大简化用户账号的生成与管理,以及像账号恢复这些安全问题。
第三章:共识机制与治理
EOS和以太坊之间的另一个显著区别是区块链共识机制,以及区块链的治理方法。以太坊使用的是工作量证明机制(不久会转换为POW和POS混合的机制),而EOS将使用石墨烯技术,石墨烯使用的是授权股权证明机制。这两种选择对于商业扩展性非常重要,这个问题将在下一章讨论。
目前POW机制的一个问题在于如何修复出了有问题且坏掉的应用。举例来说,最近DAO出了一个严重的bug,或是被黑客攻击了。那些心怀“代码即法律”理想的人认为DAO被黑是一个“特性”,而不是一次失败。无论如何,这次DAO的失败导致了两个问题:运行在以太坊上的坏掉的应用导致投资人遭遇重大损失,慌乱的硬分叉。基于以太坊目前的POW共识机制,每次硬分叉都可能大量出现竞争链,正如此次DAO事件之后的以太坊和以太坊经典。更重要的,为了修复一个坏掉的应用而慌乱地进行硬分叉都会打乱整个以太坊网络。
相反,EOS包含一套冻结并修复坏掉的应用的机制。比如,如果此次DAO事件发生在EOS上,那么它会被冻结,修复,然后更新,而不会干扰到其他的EOS应用。而且,基于DPOS共识机制的EOS,即使硬分叉也不会大量产生竞争链。这已经被进行过18次硬分叉的Steem网络所证明,steem也是基于石墨烯技术的。而且,EOS将包含一个合法绑定宪法,用于解决争端,它同样包含一个基于股权权重投票产生的社区。
第四章:扩展性
一个平台想在商业上可行,那么扩展性就极为重要。在这一点上EOS与以太坊有着天渊之别。目前以太坊网络受限于CPU的单线程性能。早期的测试网络达到每秒25次交易(还是在优化了的情况下),经过优化,可以增加到50次 或 100 次交易/秒。然而,在实际应用中,以太坊网络的交易差不多是10次交易/秒,甚至更少。之前,网络甚至被淹没堵塞,使得只有那些交易费最高的交易能够执行,其他的都被拒绝。这一点在最近的ICO中尤为明显,比如Status 的ICO,在这次ICO中,以太网络完全被堵塞,eth出现了大面积崩溃。Vitalik Buterin已经拿出了实现“无限扩展”的路线图,但是这严重依赖于分数据库分片的概念(sharding)。就我的理解(不一定对),数据库分片的技术无疑会增加网络的复杂性,同时可能会降低网络的安全性。我不认为数据库分片的技术能拓展以太坊网络,这反而会加重数据库的分担而再次整合的进程。
在扩展性方法,EOS相对与以太坊有两个显著优势,一旦实现,EOS将成为能处理真正商业级去中心应用的唯一平台。第一,EOS将依赖于石墨烯技术,在压力测试中,石墨烯技术已能达到每秒10,000-100,000笔交易。第二,EOS将使用并行技术来拓展网络,处理能力将到达每秒百万笔交易。如果这些都能实现,EOS将能支持上千个商业级DAPPs。EOS将使用匿名通信技术,同时把验证与执行分开来提高速度,而且,由于它没有交易费用,EOS也就不需要计数操作。
第五章:DoS攻击
同扩展性一样,攻击问题同样很重要。在这章中,我将简单讨论潜在的DoS类型攻击。DoS
攻击指的是恶意攻击者堵住网络,使网络瘫痪从而不能处理合法正规的请求。我的理解是以太坊网络已经被证明了非常容易受DOS攻击,而EOS不易受DOS攻击。
在以太坊网络中,矿工倾向于优先处理那些高费用的交易。由于带宽和算力是有限的,可以预见出如果网络中被塞入大量高费用的交易,这将会把低费用的合法交易踢掉。你可能会觉得在网络上实施这样的攻击成本会很高,但是这么做的回报更大。举例来说,最近的Status ICO,这其实就是一场竞赛,如果你能发送资金到ICO智能合约地址,那你就能以极低的价格获得ICO代币。这就会诱使有钱的玩家用高费用的交易堵塞网络,以保证他们的交易能被执行。这成为了以太坊网络的一个严重缺陷,一个应用或智能合约就能把整个网络冻结。
相反,EOS不易受DOS攻击。EOS代币的持有者会在网络带宽,存储和算力方面给予用户一定比例的股权。因此,恶意攻击者只会消耗掉他们的EOS代币赋予他们的那部分网络。某个应用或许会遭到DOS攻击,但是这些攻击不会干扰整个网络。只拥有很小股权的创业公司也能拥有可靠的带宽和算力,即使其他恶意攻击者试图攻击那些大型的网络应用。
第六章:网络经济:GAS燃烧费用制 vs 股权拥有制
最后,我想简单讨论一下EOS和以太坊的经济模型。实际上,它们之间的区别就是所有权模式和租赁模式的区别。在以太坊中,交易,存储,操作,带宽使用的每次计算都需要gas费用。而且,gas费用是波动的,能设成非常高的值,因为矿工倾向于选择那些高费用的交易来处理。这在最近的Status的ico中表现的非常明显,在这次ico中,即使是没什么价值的交易,$100的gas费用仍然是低的。在前面几章中,这种经济模式会出现一种情况:富有的玩家可以向网络中发送大量高费用的交易从而导致网络瘫痪。而且,这种模式要求开发者和创业公司在他们应用的开发和部署期间持续的gas燃烧费用。
相反,EOS将使用所有权模式,在这种模式中,持有EOS代币将在网络带宽,存储,处理能力方面给予用于一定的份额。这意味着如果某人拥有1%的EOS代币,那么他就永远只能获得1%的网络带宽,而不论网络剩余部分的负载情况。通过这种方法,小的创业公司和开发者都能购买相对较小的网络的份额,从而能够得到稳定可靠的可预期的网络带宽和算力,如果他们需要扩大他们的应用只需要购买更多的EOS代币即可。而且,由于EOS网络没有交易费用,因此就不存在网络开发成本,除了开始时购买EOS代币的成本。当然,如果愿意的话也可以把代币卖掉,收回投资。
总结
当然,我是石墨烯技术的拥趸,主要是因为它的扩展性和低交易费用。我承认这篇文章明显的偏向EOS。但是记住以太坊目前市值差不多$300亿,而EOS目前仍在开发中,市值为$0。如果你想让我说实话,我同时看好EOS和以太坊,而且我认为,即使EOS发布了,两个平台仍然有巨大的成长空间。但当投资项目之前,我始终建议我们应该详细了解项目背后的缘由,机制以及优势劣势之后再选择,而不是随意跟风。
- 听说你买了 EOS ,连代码什么样都不知道?
最近发现很多人投资了 EOS,却并不关心 EOS 目前的开发进度和技术细节,如果你投资了 EOS, 还有一定的技术基础,那就更应该关心 EOS 的开发情况了,下面我们就从 EOS 的源代码说起: ...
- coinmarketcap前20之cardano卡尔达诺(ADA艾达币)
1. 在开始讲述cardano前,我先说说自己在coinmarketcap前20系列的"学习方法". 最初,我把前20做了一个简单表格,不做任何功课的基础上,记录自己对它们的简要认 ...
- 囤币一族,被中国市场遗忘的价值币ADA
囤币一族,被中国市场遗忘的价值币ADA ==========================长期囤币目标:trx十万个,ada一万个,eos五千个,nas一千个,ont一千个,eth一百个,比特币十个 ...
- 支持Touch ID!EOS 项目进展速报
Daniel Larimer 周六在 Steemit 上向大家介绍了 EOS 项目的最新进展,惊喜不少. 原文链接 : https://steemit.com/eosio/@dan/eos-io-de ...
- [转]EOS智能合约 & 私链激活 & 基本操作
链接:https://www.jianshu.com/p/90dea623ffdf 简介 本篇文章,将跟大家介绍eos私链的激活.基础智能合约的安装,以及为大家演示转账等基础操作.还没有安装eos私链 ...
- EOS搭建
http://mp.weixin.qq.com/s/RcDFCFCWpMIIAshJMqkxxw ,地址实效,请关注公众号 一下引用,只是技术记录交流 目前来讲,学习任何EOS相关技术的资料都来自ht ...
- 学了3天EOS, 其它没学会,就学会了发私人数字币
关于 EOS的 铸币及发币(以下是精华) 张永@CoinXP 以下 ...
- EOS基础全家桶(五)钱包管理
简介 本篇我们将会学习EOS自带的命令行钱包的使用方法,我们将会使用cleos来控制keosd服务对本地钱包进行管理. 虽然现在市面上已经有很多支持EOS的钱包了,有Web钱包,有app钱包,还有浏览 ...
- EOS基础全家桶(六)账号管理
简介 本篇我们会学习最基本的账号相关的操作,包括了创建账号和查询,关于账号资源的操作因为必须先部署系统合约,所以我们会留到后面单独写一篇来讲解. 6-EOS基础全家桶(六)账号管理 简介 账号介绍 账 ...
随机推荐
- POJ 1014 Dividing(多重背包, 倍增优化)
Q: 倍增优化后, 还是有重复的元素, 怎么办 A: 假定重复的元素比较少, 不用考虑 Description Marsha and Bill own a collection of marbles. ...
- VMware 12安装虚拟机Mac OS X 10.10(VMware12安装/共享文件夹)
推荐电脑配置 1:Inter I5及以上 (A卡请自行百度大神解决方案) 必须开启CPU虚拟化:开机进入BIOS--->Intel Virtualization Technology---> ...
- 服务端用例设计的思(tao)路!
服务端的测试简单来说就是除了前端以外的的测试. 总的来说可以分为以下两类: 1. WEB或者APP的提供业务逻辑的服务端接口测试 2. 数据库.缓存系统.中间件..jar包依赖.输入输 ...
- shell基础篇(十)shell脚本的包含
前记 写到这里:shell中基础差不多已经讲完了.希望你已经对shell有了一个基本了解.你可能跃跃欲试,要写一些程序练习一下.这会对你很有好处.建议大家去chinaunix去学习:我是li0924. ...
- Linux 虚拟终端:screen
screen 是一个虚拟终端,我们可以把执行时间很长的命令放在虚拟终端中执行,即使终端断开,这个虚拟终端也会在后台执行 [root@localhost ~]$ yum install -y scree ...
- docker images 详解
docker images 用于查看本地已下载的镜像 [root@localhost ~]$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE ce ...
- php学习十四:抽象,接口和多态
多态为面向对象编程的精华所在,js等面向过程的语言虽然可以模拟面向对象,但是毕竟模仿的永远比不上真的,所以了解而且会使用面向对象的多态是必不可少的 在了解多态之前,我们必须要了解接口,但是接口又是在抽 ...
- JS面向对象编程学习
学习目标:1.掌握JS中的类(原型对象)和对象.2.什么是成员变量和成员方法.3.掌握构造方法的使用.补充:关于双等号(==):1.如果等号两边都是字符串时,则比较内容是否相等2.如果等号两边是数字时 ...
- 关于IIS Express,集成管道
一直没了解IIS Express是什么,现在也一样 暂时先做个记录 有关IIS Express的config http://www.cnblogs.com/IPrograming/archive/20 ...
- 【Laravel】Mac下玩转Laravel
1 apache 首先Mac系统是自带了Apache,只需要执行 sudo apachectl start 就可以打开Apache服务,然后访问 http://localhost 就可以访问到,it' ...