eos是什么?

原文 https://www.jianshu.com/p/06443248f4d8

简介

用一句话来定义eos,即:区块链操作系统,支持在它之上构建dapp,支持智能合约、帐户、身份验证、数据库、异步通信和跨越数百个 CPU 内核或集群的应用程序调度。简单来说,eos是类似于windows、linux、安卓、ios这样的底层操作系统,为区块链的去中心化应用(dapp)提供更加方便、安全的开发运行环境。

eos的诞生背景

众所周知,区块链技术发展到现在,已经步入了区块链3.0时代。

1.0时代开始于2009年,以比特币(btc)为代表的数字货币横空出世,其去中心化、不可篡改的特性,给急需“信用”背书的金融市场带来了新的生机。然而,单一的数字货币功能,并不能满足金融机构复杂的交易场景。全球复杂的政治经济格局,也让数字货币的应用落地举步维艰。

1.0时代的困局,也为区块链2.0时代带来了新的机遇与挑战。2014年,以以太坊(eth)为标志的、主打智能合约的区块链2.0公链如雨后春笋般出现。智能合约,顾名思义,就是将我们普通的纸质合约功能,以代码的形式实现和执行,并发布到区块链上。有了智能合约功能,我们可以很方便的为一些交易场景定制特定的合约,满足一定的条件时,合约会自动执行;区块链不可篡改、去中心化的特质,让我们完全不用担心违约的问题出现。

既然2.0时代已经完美的解决了金融市场的定制化解决方案的需求,那要3.0时代干嘛?原因很简单:性能问题。因为要兼顾去中心化的特性,区块链的系统设计使得每秒确认的交易数非常有限。btc每秒只能确认7笔交易,eth每秒也只能确认20~30笔交易。对于金融结算场景,比如天猫双十一的消费场景,需要每秒百万的交易确认数,1.0和2.0区块链系统是远远达不到需求的。

所以,eos就顺理成章的诞生了。这个主打百万tps的区块链操作系统,作为区块链3.0时代的杰出代表,致力于让区块链系统真正的落地商业化。截止目前,eos的第一阶段的开发已经结束,主网顺利上线。按照社区之前的测试结果,eos单线程的性能达到每秒1000笔交易,比目前市面上的区块链系统提升了几十倍。多线程的开发会在下半年持续进行,能不能达到承诺的性能,让我们拭目以待。

eos的特性

共识机制

稍微接触过区块链,应该都对共识机制有个大致的了解。区块链系统,是一个分布式的网络,让分散在不同国家、不同网络环境、不同主机的人,能对一个结果的产生达成一致认可,共识机制功不可没。

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的应用前景

区块链行业,截止目前为止,最被人诟病的就是没有一个商用的解决方案,被古典互联网从业者认为是割韭菜的利器。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的信息。更多的信息,推荐几个网站,大家可以自取,毕竟知识的增长是一个主动学习的过程。

- eos github:eosio

- eos技术文档:EOSIO Developer Portal

- 最早的eos论坛,有不少关于eos治理、开发、选举的内容,block.one的核心成员经常会发布新观点:eos go

- 公众号,国内eos节点收集的社区信息:EOS引力区、HelloEOS社区、IMEOS

- 区块浏览器:myeoskit、eoseco、eosmonitor

[转]https://www.jianshu.com/p/06443248f4d8相关推荐

  1. 分布式--ActiveMQ 消息中间件(一) https://www.jianshu.com/p/8b9bfe865e38

    1. ActiveMQ 1). ActiveMQ ActiveMQ是Apache所提供的一个开源的消息系统,完全采用Java来实现,因此,它能很好地支持J2EE提出的JMS(Java Message ...

  2. 音视频开发---M3U8 https://www.jianshu.com/p/e97f6555a070

    M3U8 是一种常见的流媒体格式,主要以文件列表的形式存在,既支持直播又支持点播,尤其在 Android . iOS 等平台最为常用 M3U8 是 Unicode 版本的 M3U,用 UTF-8 编码 ...

  3. 博客已迁移至简书:https://www.jianshu.com/u/68409598ede7

    博客部分文章已迁移至简书:https://www.jianshu.com/u/68409598ede7

  4. https://www.jianshu.com/p/444edecc556f(公众号本地调试)

    2019独角兽企业重金招聘Python工程师标准>>> https://www.jianshu.com/p/444edecc556f 转载于:https://my.oschina.n ...

  5. https://www.jianshu.com/p/15c85b1901f7

    https://www.jianshu.com/p/15c85b1901f7 https://www.zhangshengrong.com/p/281oD6Yawz/ 这是另外一个思路,直接包含表字段 ...

  6. Python GUI编程 --转发:https://www.jianshu.com/p/91844c5bca78?tdsourcetag=s_pcqq_aiomsg

    转发:https://www.jianshu.com/p/91844c5bca78?tdsourcetag=s_pcqq_aiomsg 这个大佬写的非常好,感谢辛勤付出

  7. nodeJs npm和 homebrew https://www.jianshu.com/p/131dda5e51fe

    node npm 是安装模块 https://www.cnblogs.com/libin-1/p/5907175.html https://blog.csdn.net/joyce198800/arti ...

  8. 苹果开发者账号申请流程完整版 https://www.jianshu.com/p/655380201685

    https://www.jianshu.com/p/655380201685 转载于:https://www.cnblogs.com/zc290987034/p/11195955.html

  9. torch读图 原作者:侠之大者_7d3f 链接:https://www.jianshu.com/p/cfca9c4338e7

    图像加载问题 使用pytorch制作图像数据集时,需要将存储在磁盘.硬盘的图像读取到内存中,涉及到图像I/O问题. 在python中,图像处理主要采用的库:skimage, opencv-python ...

最新文章

  1. arcpy实现空间查询_布隆过滤!Python实现亿级数据集中元素快速查找
  2. opencv 仪表数字切割
  3. iphone同步助手_iPhone怎么批量删除联系人?
  4. 【知识便利贴】ImageNet得的比Best Paper还牛的Longuet-Higgins奖是什么?
  5. 22行代码AC_试题 历届试题 油漆面积【解题报告】
  6. centos默认安装mysql_centos6.x默认安装mysql5.7
  7. 携反省一起上路的FreeEIM
  8. 【CloudXNS教您几招】如何让多ip域名配置游刃有余?(2)
  9. 如何判断stdin的数据类型
  10. 简单的高可用集群实验
  11. Java大厂面试100题,你面试时总会用到的!
  12. python爬高德地图_爬取高德地图poi数据
  13. oracle宿舍管理系统实训报告,学生宿舍管理系统_开题报告
  14. 4.4 输入法图片 android,支持安卓4.4!搜狗输入法5.1新版发布
  15. 庄辰超的势能,梁建章的心力
  16. 分布式系统——MapReduce:Simplified Data Processing on Large Clusters论文
  17. Arduino与FreeRTOS-守护任务(Gatekeeper Task)
  18. Linux应用:安装Nginx
  19. SuperSocket 入门,实现客户端和服务端消息互发
  20. JS控制网页中Flash影片的播放(附带各参数)

热门文章

  1. 知识表示学习【知识图谱专栏】
  2. 这是一条真程序员看了会沉默的裙子......
  3. 独家 | 手把手教数据可视化工具Tableau
  4. 基于FPGA的HDMI图片显示
  5. 贾跃亭旗下FF年亏5.2亿美元:恒大持股20.5% 退市危机解除
  6. 深信服连接openldap_完整版的OpenLDAP搭建全过程
  7. 2023年英语六级作文模板
  8. 1575-我想满手鲜血(思路+LIS)
  9. 如何开发一个像Instagram的app?
  10. KCF -目标检测算法总结