对 ETH 与 EOS 未来发展的思考浅述(技术篇)
引言
身为币圈一员,又是学计算机专业的,对目前打得火热的两大开源区块链项目 ETH 与 EOS 自然是会比较上心。二者的技术、理念、演化模式、未来前景,都应当是需要关注与思考的话题。
本文将尝试从技术层面对这两个项目进行综合对比分析。一家之言,仅供参考。
Github 项目生态分析
Ethereum 项目主页:https://github.com/ethereum
EOS 项目主页:https://github.com/EOSIO
下面列表分析 ETH 和 EOS 两者的项目生态数据(截至 2018.05.01),同时引入币圈最成功的开源项目 Bitcoin 的数据作为对照。
- 表 1:项目数据总览
项目名称 | 关联的代码仓库数量 | 项目公共成员 | 协议实现核心分支数 |
---|---|---|---|
Ethereum(以太坊) | 3663 | 38 | 2 (Go & C++ 实现) |
EOS(柚子) | 71 | 0 | 1 (C++ 实现) |
Bitcoin(比特币) | 2840 | 25 | 1 (C++ 实现) |
- 表 2:核心仓库数据统计
仓库名称 | 实现语言 | 开源协议 | 星标 | Watch | Fork | 贡献者 | 发布版本 | 社区计划项目数 |
---|---|---|---|---|---|---|---|---|
ethereum/go-ethereum | Go | LGPL-3.0 | 17118 | 1753 | 5429 | 259 | 130 | 9 |
ethereum/cpp-ethereum | C++ | GPL-3.0 | 3008 | 525 | 1893 | 125 | 228 | 0 |
EOSIO/eos | C++ | MIT | 6461 | 1069 | 1517 | 101 | 43 | 0 |
bitcoin/bitcoin | C++ | MIT | 31059 | 3236 | 18597 | 537 | 192 | 8 |
- 注:GPL、LGPL 协议属于非商业化的强制开源协议,MIT 协议是允许项目后续向闭源、商业化发展的。详见这篇文章:如何选择开源许可证?- 阮一峰的网络日志
- 表 3:最近一个月项目开发活跃度
仓库名称 | 活跃的 Pull 请求 | 提交的更改数 | 参与的开发者数 |
---|---|---|---|
ethereum/go-ethereum | 82 | 61 | 32 |
ethereum/cpp-ethereum | 48 | 115 | 7 |
EOSIO/eos | 233 | 760 | 40 |
bitcoin/bitcoin | 236 | 252 | 43 |
注:这个指标可以直接到 Github 的仓库统计页面上去查看,有详尽的图表与数据展示。结论是,近一个月内,由于主网上线日期临近,EOS 项目开发的活跃程度明显高于 ETH 的两个核心项目。
-
go-ethereum 近一个月仓库活动数据查看地址:
https://github.com/ethereum/go-ethereum/pulse/monthly -
cpp-ethereum 近一个月仓库活动数据查看地址:
https://github.com/ethereum/cpp-ethereum/pulse/monthly -
EOSIO/eos 近一个月仓库活动数据查看地址:
https://github.com/ethereum/cpp-ethereum/pulse/monthly -
bitcoin/bitcoin 近一个月仓库活动数据查看地址:
https://github.com/bitcoin/bitcoin/pulse/monthly
总结:无需对上述数据做过分解读,但从宏观事实出发,ETH 项目的开源生态建设显然优于 EOS。换句话说,没有了中本聪的 Bitcoin 还是 BTC,没有 V 神的 ETH 也还会是 ETH,但没有 BM 的 EOS,可能就不再是 EOS 了。
共识算法优劣对比
BTC 使用的共识算法是 POW(Proof of work,工作量证明);
ETH 目前使用的共识算法是 POW + POS(Proof of Stake,股权证明)混合模式;
EOS 使用的共识算法是 DPOS(Delegated Proof of Stake,委任权益证明)。
这三种算法各有优劣,POW 模式稳定、游戏规则明确、潜在的人为影响风险最小,为人所诟病的缺陷就是矿场矿池对算力的垄断。POS 是软件模拟挖矿的方案,相对而言整个区块链就更容易被算法漏洞所影响,且账本分叉成本低廉,曾经闹得沸沸扬扬的 ETH 与 ETC 之争就是明证。DPOS 机制是 BM 对 POS 的“技术改进”,其本质上是将 ETH 面临的复杂动态多节点网络问题简化成了固定节点(21 + 100)的简单类静态分布式网络问题。对于程序开发而言,这种简化确实大大降低了开发难度,同时还能有效提高主链的处理能力(即取得较高的 TPS 值)。但区块链项目本来就存在一个“蒙代尔三角”难题:“高效率、去中心、安全性”三者形成一个不可能三角关系:任意系统无法同时满足此三种特性。比特币和以太坊是通过舍弃“高效率”来获得去中心和安全性,而 EOS 则通过 DPOS 机制选举 21 个超级节点,舍弃“去中心”与“安全性”,以“弱中心”方式追求“高效率”。
下表列出的是“按照区块链网络内置协议运作的话,三种算法各自可能面临的安全问题”:
- 表 4,PoW、PoS、DPoS 安全性对比
攻击方法 | POW | POS | DPOS |
---|---|---|---|
短距离攻击(如贿赂攻击) | / | x | / |
长距离攻击 | / | x | x |
币龄累计攻击 | / | x | x |
预计算攻击 | / | x | / |
分布式拒绝服务(DDos) | / | 可能 | x |
女巫攻击(Sybil Attack) | x | x | x |
注:详情参见这篇文章:PoW,PoS,DPoS 综述
结论:从现有技术角度看,ETH 目前的 POW+POS 混合模式无疑是最佳选择。接下来,阐述得出该结论的原因。
对共识算法机制的引申思考
由上表可知,技术上,POW 算法可以免疫绝大多数的攻击手法,而 POS 算法最易遭受攻击。然而,这里有一个大前提,就是攻击者是遵守“游戏规则”的,会在区块链自身设定的协议体系中找出漏洞并且尝试攻击。但实际上,没有这么傻的攻击者。打个比方,我知道小偷可能会撬门而入,所以安全防范措施就是换好的防盗门,加坚固的锁。殊不知,真正要来偷的都是走窗户和阳台,或者假扮外卖小哥入室抢劫,根本不会按套路出牌。在一个点对点的网络系统中,有效节点的数量决定了整个系统的健壮性。BTC、ETH 都是不限全节点数量的,主链网络安全又受到矿工们巨大算力的保护,所以可以长期稳定运行。但 EOS 的架构设计,不具备这个条件。
我们知道,EOS 的架构是 21 个超级节点负责提供整个主链所需的运算、存储、网络等硬件资源,而 100 个见证节点是“预备队”,平时只负责验证超级节点是否正常、有效的工作,只有当某个超级节点出现问题时,才有机会被选上成为新的超级节点。原本这是一个很优秀的主从备份设计,可以确保整个网络的稳定运行。可惜,当 EOS 的分红机制将超级节点设计成“会下金蛋的鸡”之后,事情就变质了。设想这样一个场景,我是某个见证节点的主人,每个月都花费不菲的成本去运行这个备份节点,眼见着超级节点躺着赚钱,自己这却只能跟着喝口汤。明明是一样的硬件配置,一样的设备开销,一样的运维费用,只因为你当初主网上线时选票拉的好了那么一点点,坐上了超级节点的宝座,从此就吃香的喝辣的,凭什么?按照游戏规则,见证节点作为备份,只有当某个超级节点宕机死掉之后,才有机会被选上代替这个超级节点的位置。100 个见证节点,如果大部分都对超级节点抱着“你赶紧死掉我好上位”的心态的话,我不知道有什么理由阻挡超级节点被恶意攻击。事实上,只要对某个超级节点暴露在外网、对主链提供服务的端口发动 TCP/IP 层的大流量 DDoS 攻击,这个超级节点的网络服务能力就一定会被瘫痪掉。几分钟后,这个一直处于无法响应通信状态的超级节点就会被票死,失去超级节点的资格。要是所有节点持有人都这么干,EOS 网络就没法工作了。
当然,出钱的资本方都不傻,这样自己玩死自己的蠢事不会去做。那这 100 个见证节点真的就会遵守规则,面对潜在的巨额利润毫不动心,乖乖排队等待不知何时才会落到自己头上的超级节点资格吗?主网还没上线,超级节点贿选的事情就已经发酵了,ETH 的 创始人 V 神还专门为此事写了一篇檄文:V神谈EOS节点投票:我们必须绕开的阴影之地。主网上线之后,121 个节点实际上就形成了一个利益共同体。当所有参与方都意识到自己既有毁灭对手的能力,又随时可能被对手所毁灭的时候,博弈的结果只能是联合起来,一起赚钱,一起割韭菜。但事情若走到这一步,EOS 这个区块链项目和某个大互联网公司的云计算平台还有什么区别呢?以后这 121 个节点中的大部分肯定都是跑在亚马逊 AWS 云服务器上的,我作为一个开发者,与其在各方利益纠葛不清的 EOS 系统内去费时费力的开发 DAPP,还不如直接用成熟的 AWS 系统,快速开发快速上线呢。
此外,有攻击超级节点动机的可不止那 100 个见证节点持有人。EOS 代币已经被炒到了一个高位,就是普通黑产,也有强烈的通过威胁攻击超级节点,来向超级节点持有人敲诈勒索大量加密货币的动机。目前全球各地天天专研 ETH 系统漏洞,指望盗币发财的黑客一大堆,攻防战早已打响,ETH 也在开源社区自身力量的驱动下不断的优化协议逻辑,修改代码 BUG。而 EOS 呢,主网都没上线,未知的考验还不知有多少。欲带皇冠,必承其重,EOS 这种先把泡泡吹起来,再去试探真假,把赌注压在六月主网上线之后一切顺利的做法,风险极高!
一点补充分析
实际上,EOS 的预期已经被过度消耗了。项目八字还没一撇,就这样去爆炒,完全是资金盘操纵的手法。到时候主网上线,随便出点什么差错(这是大概率事件,一个新系统上线,其表现是几乎不可能完全符合预期的),就都是做空的动力。
我比较赞同这篇文章所提出的理论:
区块链是什么?
区块链是比特币;
区块链是点对点的分布式的账本;
区块链是带智能合约的点对点的分布式账本;
区块链是生产关系;
区块链是一种社会思潮;
区块链是一种基因(X-gen)
不错,区块链就像细胞中的 DNA。其核心价值,不在于主链有多么强大的而丰富的功能,而在于其像基因一样,去中心化,稳定,传承价值,同时具备一定的合约功能。而更为复杂的功能,就应该交给侧链、分支去实现,就像自然界发生的那样:基因转录出 RNA,RNA 表达出蛋白质,再由蛋白质去承担生命活动。我相信自然的选择,这才是区块链技术正确的进化方向。