[转]https://www.jianshu.com/p/06443248f4d8
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的更多相关文章
- Zabbix调优不完全指南(https://www.jianshu.com/p/2d911d55448f)
从学习搭建zabbix到完成各类监控.调优.二次开发已经过去了两年,期间通过QQ学习群.zabbix官方社区.各个技术博客整理学习了不少关于各种报错的处理方法,现在将常见的一些报错处理方法整理出来分享 ...
- 接口测试之——Charles抓包及常见问题解决(转载自https://www.jianshu.com/p/831c0114179f)
简介 Charles其实是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的.该软件是用Java写的,能够在Windows,Mac,Linux上使用,安装Charl ...
- jar与war包区别,转自https://www.jianshu.com/p/3b5c45e8e5bd
https://www.jianshu.com/p/3b5c45e8e5bd
- fastdfs(https://www.jianshu.com/p/1c71ae024e5e)
参考 官方网站:https://github.com/happyfish100/ 配置文档:https://github.com/happyfish100/fastdfs/wiki/ 参考资料:htt ...
- https://www.jianshu.com/p/1038c6170775
import os # 方法一: os.walk实现 def items_dir(rootname): l = [] for main_dir, dirs, file_name_list in os. ...
- Redis 单线程却能支撑高并发 - 简书 https://www.jianshu.com/p/2d293482f272
小结: 1.在 I/O 多路复用模型中,最重要的函数调用就是 select,该方法的能够同时监控多个文件描述符的可读可写情况:2.Redis 服务采用 Reactor 的方式来实现文件事件处理器(每一 ...
- 当我写下Map<String,Object> map = new HashMap<>() https://www.jianshu.com/p/6b2e350e99be
当我写下Map<String,Object> map = new HashMap<>();我到底在写什么? 我什么时候会写HashMap? 一个函数同时需要返回 多种 状态的情 ...
- Asp.Net Core 第01局:项目创建和部署 转载https://www.jianshu.com/p/9c9750e23b3e
总目录 一.前言 本文通过从项目创建到部署,简单介绍Asp.Net Core. 二.环境 1.Visual Studio 2017 2.Asp.Net Core 2.2 三.开局 第一手:创建项目 ...
- 分布式--ActiveMQ 消息中间件(一) https://www.jianshu.com/p/8b9bfe865e38
1. ActiveMQ 1). ActiveMQ ActiveMQ是Apache所提供的一个开源的消息系统,完全采用Java来实现,因此,它能很好地支持J2EE提出的JMS(Java Message ...
随机推荐
- exe所在路径
procedure TForm1.btn1Click(Sender: TObject); begin //完整路径 E:\UsrSoft\Desktop\FileNameDemo\Project1.e ...
- 记MySQL的一次查询经历
今天在MySQL查数据,sql语句如下: SELECT * FROM `admins` where dep_ids = 24;
- mysql5.7 for windows二进制安装及配置
1)mysql5.7二进制软件下载 下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads 下载软件:mysql-5.7.25-wi ...
- PL/SQL Developer如何导出数据成sql的insert语句
1.选择菜单 , [工具]-[导出表] 2.选择tab标签页的,[SQL插入] 注意where条件语句,注意要选择相应的表 3.选择输出
- ubuntu安装smartGit
1.首先安装jdk:(http://www.cnblogs.com/xiaochou/p/install_mint.html 评论区) 2.下载和安装smartGit: http://www.synt ...
- asp.net IHttpHandler浅析
在asp.net程序中,我们可以通过配置url的path路径的方式,将某个path路径下的请求交给指定的IHttpHandler去处理,这便是对request请求进行编程. 一.新建一个framewo ...
- 大数据面试题——如何找出访问最多的IP
问题描述: 现有海量日志数据保存在一个超大的文件中,该文件无法直接存入内存,要求从 中提取某天访问BD次数最多的IP 分析解读: 由于这个题目只关心某一天访问次数最多的IP,因此可以首先对文件进行一次 ...
- vue-cli项目多页面配置
参考 : https://www.jianshu.com/p/0a30aca71b16
- iis设置http重置到https
http://www.cnblogs.com/tangge/p/4259749.html 1.购买SSL证书,参考:http://www.cnblogs.com/yipu/p/3722135.html ...
- CXF 简单创建Webserver 例子
最近在弄webserver,因为公司需要用到,来说说,webserver的常用方式吧 1.什么是webservice 1.1 什么是远程调用技术 远程调用数据定义:是系统和系统之间的调用 先说一说 ...