小白系列 | 浅析EOS共识过程1、什么是EOS2、什么是共识机制3、浅识EOS的共识机制4、优势和争议5、结论

图片来自简书App

文 | 叶先生的鱼

本文由【区块链研习社】优质内容计划支持

本文试图用最一个小故事来初步介绍什么是EOS、什么是共识机制、 以及EOS共识机制的优缺点。仅适合小白入门阅读,大神可以选择关闭了。

1、什么是EOS

这里的EOS不是单反相机,是一个与比特币BTC,以太坊ETH齐名的区块链项目,这么说吧,你可以把它理解成区块链网络世界里的安卓或IOS操作系统,如果EOS未来开发成功,则世界各地的开发者们都可以基于EOS系统来开发各种APP。

目前,比特币网络每秒只能处理7笔交易订单;以太坊网络每秒只能处理25笔;EOS号称每秒可以处理百万笔。为什么各自会有这么大的差别呢?这都是因为采用的共识机制不同所导致的。

2、什么是共识机制

lucy一家全球快消品公司的销售总监,由于市场扩张,今年公司一口气新招了1000多位应届大学毕业生,通过培训考核之后要分派到全球不同的分公司和办事处,lucy为了更好的管理这些新人,决定将这批新人分成21个小组,在每个小组内通过竞选的方式选出一个人担任组长。

那么,如何选出最让人服气的组长呢?如何确保被选出来的组长是最有能力的这个人呢?为了设计好这个竞选规则,lucy绞尽了脑汁,最后制定了一套规则,组里的每一个人必须给候选人分别在沟通能力、管理能力、业务能力、亲和力、团队精神、组织能力等十多项分别进行打分,总分数最高的即可当选。

lucy将制定的这个竞选规则公布给大家征求修改意见,没想到得到了所有员工的支持,而这个竞选规则就是共识机制。顾名思义,共识机制,其实就是一套让所有人或绝大部分人在某一个事物上达成一致意见的规则。

3、浅识EOS的共识机制

lucy后来发现,每个月底做业绩报表的时候,21个组长交上来21份报表,汇总起来很耗费精力,效率也不高,于是采用同样的机制,每个月由21名组长选出一名临时主管来进行报表汇总,这样一来lucy感觉轻松多了。这整个自下而上的选举过程,其实就是类似于EOS网络达成共识的过程,先把所有节点分成若干个组,目前EOS是21个主节点+100个备用节点,也就是说分成了121个组,其中有100个组是备用的,然后在交易过程中,由21个组长来投票挑选出一个临时主管来进行记账(汇总业绩报表)。

4、优势和争议

EOS随着主网临近上线,因为共识机制饱受争议,隔三差五的被推上风口浪尖,其中争议最大的有以下两点——

4.1、过于中心化,21名组长选举产生的临时主管,并不能代表全体成员的民意,不够民主;

4.2、不安全,21名组长中,只要有11名组长串通起来恶意选举临时主管就有作恶(比如记假账)的可能;

尽管如此,EOS依然有迷人之处,因为只需要21位组长投票,从而能快速达成共识选出记账的人,让EOS的交易速度极快,号称可以达到百万级每笔交易,这在目前整个区块链领域都是标杆。

5、结论

5.1、没有一种技术是万能的,也不存在某种技术可以搞定一切问题,所以我们要理性看待区块链、看待区块链相关的一些新事物;

5.2、在众多的共识机制中,中心化、高效、安全是一个铁三角,永远最多只能最大化满足其中的两个,所以没有最好的共识机制,只有特定应用场景下的最佳共识方案。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏吴伟祥

Java Calendar 类的时间操作 原

Calendar 的 month 从 0 开始,也就是全年 12 个月由 0 ~ 11 进行表示。

783
来自专栏Pulsar-V

C#下各种获取时间的姿势

直接贴代码吧 DateTime dt = DateTime.Now; Label1.Text = dt.ToString();//2005-11-5 13:21...

3236
来自专栏菩提树下的杨过

MSDN官方的ASP.Net异步页面的经典示例代码

示例1.演示异步获取一个网址的内容,处理后显示在OutPut这一Label上 using System; using System.Web; using S...

1995
来自专栏互联网开发者交流社区

WinForm之窗体应用程序

1863
来自专栏c#开发者

C# : row-clickable GridView and get and set gridview rows using JavaScript

Complete C# code: ---------------- using System; using System.ComponentModel; ...

2996
来自专栏跟着阿笨一起玩NET

GB2312转换成UTF-8与utf_8转换成GB2312

1911
来自专栏海说

Java应用中常见的JDBC连接字符串(SQLite、MySQL、Oracle、Sybase、SQLServer、DB2)

Java应用中常见的JDBC连接字符串 Java应用中连接数据库是不可或缺的,于是便整理一些可能用到的JDBC的jar包及其相匹配的URL,以备日后查阅。 1)...

2730
来自专栏xingoo, 一个梦想做发明家的程序员

windows程序设计-第四章 system1.c

/*---------------------------------------------------- SYSMETS1.C -- System M...

23710
来自专栏积累沉淀

Hive2.0.0操作HBase 1.2.1报错解决

首先看错  org.apache.hive.service.cli.HiveSQLException: Failed to open new session: ...

2369
来自专栏听雨堂

想修改CSS

      下载了一个“通用”的CSS文件,本来想偷懒的,结果发现有问题,就是它用的颜色是变量定义的,无法识别。我又找不到在哪里可以定义。 BODY{     ...

20410

扫码关注云+社区