用一句话来定义eos,即:区块链操做系统,支持在它之上构建dapp,支持智能合约、账户、身份验证、数据库、异步通讯和跨越数百个 CPU 内核或集群的应用程序调度。简单来讲,eos是相似于windows、linux、安卓、ios这样的底层操做系统,为区块链的去中心化应用(dapp)提供更加方便、安全的开发运行环境。linux
众所周知,区块链技术发展到如今,已经步入了区块链3.0时代。ios
1.0时代开始于2009年,以比特币(btc)为表明的数字货币横空出世,其去中心化、不可篡改的特性,给急需“信用”背书的金融市场带来了新的生机。然而,单一的数字货币功能,并不能知足金融机构复杂的交易场景。全球复杂的政治经济格局,也让数字货币的应用落地举步维艰。git
1.0时代的困局,也为区块链2.0时代带来了新的机遇与挑战。2014年,以以太坊(eth)为标志的、主打智能合约的区块链2.0公链如雨后春笋般出现。智能合约,顾名思义,就是将咱们普通的纸质合约功能,以代码的形式实现和执行,并发布到区块链上。有了智能合约功能,咱们能够很方便的为一些交易场景定制特定的合约,知足必定的条件时,合约会自动执行;区块链不可篡改、去中心化的特质,让咱们彻底不用担忧违约的问题出现。github
既然2.0时代已经完美的解决了金融市场的定制化解决方案的需求,那要3.0时代干吗?缘由很简单:性能问题。由于要兼顾去中心化的特性,区块链的系统设计使得每秒确认的交易数很是有限。btc每秒只能确认7笔交易,eth每秒也只能确认20~30笔交易。对于金融结算场景,好比天猫双十一的消费场景,须要每秒百万的交易确认数,1.0和2.0区块链系统是远远达不到需求的。算法
因此,eos就瓜熟蒂落的诞生了。这个主打百万tps的区块链操做系统,做为区块链3.0时代的杰出表明,致力于让区块链系统真正的落地商业化。截止目前,eos的第一阶段的开发已经结束,主网顺利上线。按照社区以前的测试结果,eos单线程的性能达到每秒1000笔交易,比目前市面上的区块链系统提高了几十倍。多线程的开发会在下半年持续进行,能不能达到承诺的性能,让咱们拭目以待。数据库
稍微接触过区块链,应该都对共识机制有个大体的了解。区块链系统,是一个分布式的网络,让分散在不一样国家、不一样网络环境、不一样主机的人,能对一个结果的产生达成一致承认,共识机制功不可没。windows
btc用的共识机制是pow算法,简单的说,咱们会把交易广播到网络上,btc网络出一道题,全部运行btc网络的计算机,都在不停地作运算,谁先给出答案,谁就能产生一个区块,区块中打包了交易,一个一个区块首尾相连,就造成了惟一一条区块链。eth也用的是pow算法,大同小异。这个算法的优势暂时不说了,缺点也很明显,计算资源的严重浪费、每秒能确认的交易数不多等等。浏览器
而eos的共识机制是dpos算法,简单的说,就是区块链版人民表明大会制度。规则以下:eos打包交易和出块的节点总共只有21个,将他们称之为超级节点,这里的超级节点能够是1台计算机,也能够是多台计算机组成的集群,集群模式目前还在开发中。有一堆节点都想竞选超级节点,每一个持有eos的人,均可以投票选本身心仪的节点。一个eos能够投30个节点、每一个节点只能投1票。eos的共识机制,牺牲了部分去中心化的特色,换来了性能的大幅度提高。安全
eos共识机制详细的参数:网络
- 选举21个超级节点做为生产者,49个节点做为备选,每一个生产者按顺序轮流打包区块。
- 打包126个块(21个生产者,每人6个块)算一轮,每轮选举一次超级节点。生产者打包的顺序,由15/21个生产者投票产生。平均出块速度0.5s。一个交易从广播到99%确认大约须要花0.25s,大约1s后可确认不可更改。
- BFT算法:容许生产者给区块签名,同一时间同一高度一个生产者不能给两个区块签名,一旦一个区块被15个以上的生产者签名,即被认为是不可逆的
宪法:为了不超级节点做恶,以及其余用户做恶的行为,eos建立了一个点对点的服务条款协议或者绑定用户到一个合约,简称“宪法”。 宪法的内容定义了仅仅依靠代码没法在用户间履行的义务,同时经过创建管辖权和可选的法律来解决相互间的争端。“宪法”是采用李嘉图合约编写上链的,每一个用户发交易都须要承认“宪法”内容并使用私钥签名确认。宪法的设计原则可参考block.one的副总裁thomas发布的宪法设计原则,“宪法”内容比较多,能够搜索thomas的发言记录查看。
ECAF:为了更大程度的履行“宪法”,防止做恶行为。eos社区创建了ecaf仲裁机构,做用是选举仲裁人,处理链上的交易纠纷、恶意盗币、违宪等行为。ecaf目前权力很大,社区对这个仲裁方式也颇有争议,将来可能会使用智能合约取代ecaf的人为治理方式。
讲分成机制以前,先明确eos上的几个角色:
- 超级节点:21个,由全部持有eos的人选举产生,负责打包eos区块
- 备选节点:49个,由全部持有eos的人选举产生,做为备用节点,一旦超级节点不可用,随时替换21个节点做为区块打包者
- 查询节点:不参与打包区块,只同步eos区块,做为交易查询使用
分成机制的详细阐述:
- 超级节点打包区块得到EOS,EOS每一年增发5%,1%归超级节点和备选节点全部,4%归基金会全部。1%的收益,其中25%分给超级节点,75%按照每一个节点得到的投票数进行分配。4%收入基金会的收益,可能会用于资助dapp的孵化,也可能被销毁,目前还在讨论中。
- 超级节点对外发布他们的可用的带宽(net) 、计算能力 (cpu)、内存 (ram)。
- 其中,对于cpu和net资源,持有者能够经过抵押EOS得到,好比抵押发行量1%的EOS,便可使用1%的net和cpu资源。抵押cpu和net的EOS能够赎回,cpu和net若是用尽了,会在一天后恢复,关于具体的资源使用状况,比较复杂,我会单写一篇文章详细阐述。
- 对于ram资源,则须要经过使用EOS买卖获取,每次买卖都要收取1%的手续费。ram是不可恢复资源,用完了须要从新购买。
区块链行业,截止目前为止,最被人诟病的就是没有一个商用的解决方案,被古典互联网从业者认为是割韭菜的利器。eos的出现,就是试图打造一个通用化、高性能的公链,完全解决区块链的商用落地问题。
笔者由于工做关系,接触了很多区块链项目,总结了一下目前区块链可能的商用场景,以下:
- 跨境结算。目前的金融系统,因为不一样银行之间没有相互打通系统,跨境结算一笔交易,大概须要几天的时间。基于区块链打造的金融系统,可以保证交易的共识与不可篡改,能够为不一样金融机构提供通用的结算解决方案。目前,致力于解决此场景的区块链项目有:xrp、stellar、fabric超级帐本、zipper等。
- 资产上链。在这个信任缺失的社会,要证实你是你,都须要去派出所开证实。一旦涉及房产、资产纠纷,就须要法律流程介入、打官司,耗费很是多的财力物力。区块链技术的信用机制、智能合约机制,能保证链上资产的归属公开透明、交易公开透明,大大减小资产纠纷。目前,致力于解决资产上链的项目有:btm等。
- 社交网络。目前的互联网社交产品,社交平台的话语权很是大,内容的发布、审核、删减都是平台说了算。大部分收入也归平台全部,对优质内容的贡献者,激励也很是有限。针对这些问题,区块链采用token经济激励,持有token的人能够投票支持优质内容、发布优质内容的做者也能够得到token奖励。因为区块链去中心化的特质,任何内容上链了都不可篡改,能够避免平台做恶、以及由于政府政策致使内容被屏蔽。目前,致力于解决社交问题的项目有:everipedia、steemit、币乎、ono等
- 预言机。区块链的不可篡改的特性,可以极大的保证交易数据的真实性,为预测提供了强大的数据基础。区块链的智能合约功能,能经过代码实现自动化的交易,为预测场景的智能结算提供了重要保证。主要应用场景,好比对赌合约、基于预测的自动化交易、保险投顾等。目前基于此场景的项目有:oraclechain、FInsur等。
- 自治系统。总有理想主义者但愿创建一个相似于蜂群、蚁群同样的自治化社会,没有中央集权,你们经过群体意志决策,这样的社会能保证最大程度的公平性,避免寡头做恶,剥削民众。目前,有不少区块链项目在尝试去中心化系统,例如:eosdac,fcoin、bitfinex等也在尝试开发去中心化交易所。
eos因为其优良的性能,单线程交易成交可达到1000tps/s,采用侧链将来能够达到百万tps,以上的场景,都能在eos上获得实现。将来,咱们能够期待基于eos的dapp百花齐放。
由于篇幅有限,我只能介绍这么多关于eos的信息。更多的信息,推荐几个网站,你们能够自取,毕竟知识的增加是一个主动学习的过程。
- eos github:eosio
- eos技术文档:EOSIO Developer Portal
- 最先的eos论坛,有很多关于eos治理、开发、选举的内容,block.one的核心成员常常会发布新观点:eos go
- 公众号,国内eos节点收集的社区信息:EOS引力区、HelloEOS社区、IMEOS
- 区块浏览器:myeoskit、eoseco、eosmonitor