网易科技讯6月2日消息,EOS主网今天上线。昨晚,网易科技总监杨霞清就“是否认可EOS的DPOS共识机制”为线点霞客行&EOS踢馆护馆群”中,对话麦当劳中国首席数据智能官蔡栋。蔡栋认为,360发布的EOS漏洞,号称史诗级有些夸张,但是主网上线前,EOS还有这么低级的错误,是不可原谅的。而且他认为这显然不会是EOS最后一个大bug。
、大数据,深见ABC实验室联合创始人兼总裁,Altius One基金会AIX人工智能+区块链项目联合创始人,前工信部区块链产业和发展论坛副理事长,超级账本董事会成员,中国电子学会区块链专家委员会专家,前万达网络科技集团总裁助理兼首席数据官/首席架构师。
您在之前的采访里提到电盾clash,不认可DPOS治理模式,并表示其他更好的算法已经有。通过数学、加密学来保证治理模式的公平,同时用数学证明它的可信的互联网架构。问题来了:为什么不认可DPOS模式?DPOS和Pow有哪些优劣?
EOS从101个备份节点中选出21个超级节点(BP, Block Producer,即出块节点)的中心化共识设计,会导致黑客攻击面大大缩小。前几天360发现的bug本身从代码上修复很简单,但是不应该到要上线了还有这么大问题,显然这不会是最后一个大bug。出问题的源程序中检查边界溢出的代码是有的,但是只是debug编译时候才有。release编译出来的代码里面会自动过滤掉这检测,造成漏洞。BM他原来已经注意到了,但是一直没修复,这次立刻修复了。虽然这个修复,还存在有32位的溢出问题clash节点全没。,但这次是不是360所称的EPIC(史诗级)漏洞呢?其实这种说法是可商妥的。因为如果你上线了,这个bug真的很严重;但要做到偷币,所要做的工程上的准备和timing(在21个节点的PBFT-DPOS共识p2p算法之间)掐准,并不容易。但是作为一个几十亿美金的项目,仍然有这种低级错误是不可原谅的。
他的SDLC代码扫描没有做好,既然有覆盖debug/release的宏,就应该检查所有的只针对debug、而漏了release检查溢出逻辑代码的宏。所以作为技术人员,我们不喜欢“人治”,我们只看code,数学、加密学、分布式计算能不能解决“去中心化”的三个要求之一。这里面最完整的数学证明就是Algorand的VRF (verifiable random functions),按算法随机选取出块节点。话说回来,这个共识如果靠数据证明,都不需要矿工了 – 哪激励机制怎么来?这也是个大问题还没想清楚。
@深海@区块链公链应用生态3.0:EOS目前爆出的漏洞,的确说明上线时机不成熟。没有完整的BUG检查和较长时间的重新架构,以后出问题是必然的。
对Algorand我们不满意的是智能合约的一致性需要发起方参与,这个不好。
eos是可以在无需改变比特币脚本事物处理的基础上,增加一个外部的、插件式的解决方案。该解决方案,是以插件模式,运行在区块链节点上的可执行语言,为脚本事务处理提供了逻辑补充。这样,EOS也能做到完全去中心化,而效率还能与它现在一样。您觉得他是为什么没有这样做?
@深海@区块链公链应用生态3.0顺着你的上线时机不成熟这点。EOS中对于上线与否或时间的决策机制是什么?一对三:@蔡栋基于随机选择函数的拜占庭协商(BA-VRF)共识机制和基础DAG共识机制,这个怎么样。
很多VRF变种。但是对于DAG的易分叉问题我的团队没有找到靠谱的项目,已经看了所有有关DAG的白皮书。
@深海@区块链公链应用生态3.0明知不成熟还是楞上,而且还是BM或者项目团队说了算,那是不是可以说EOS的决策机制有问题?这样的决策,超级节点有发言权吗?
@徐栋现在就是尽快上主网,才有投票。权利才能下放到选出的超级节点。现在根本没有超级节点。
先说一下历史:首先感谢BM的石墨烯引擎(BitShares/Steem),BitShares至今仍然是最好的去中心化交易所引擎,支持大吞吐量和各种数字货币/数字资产交易,但是以前BM也是在他自己创建的BitShares比特股理事会中,选了很多他自己的人,但最后还是被赶走了,这你们总知道吧?历史往往是重复的,更不要说已经发生两次了。而且他出了问题的时候,栽赃了好几次中国的BTS运营者。这些历史不管到底真相如何,说明BM不是个圣人啊。
Ocean廖洋阳刚才提到, dpos适合性能要求更高,迭代更快的应用;pow目前适合支付和结算类应用。您怎么看这个应用场景的阐述呀?
先说一下我对BM/EOS的态度就是我们技术人员主要看技术层面,就是代码,对不同流派都是很开放和包容的。EOS里面有很多好东西,比如WebAssembly,一方面这也是以后浏览器的加速跨平台安全运行容器,另一方面LLVM加C++速度可以最大化的优化CPU。但EOS这次用在智能合约,首先只能用C++,不能用其他更高级语言或者DSL会导致编程复杂,更引来更多的潜在安全隐患。上面提到PoW/DPOS,正好谈一下。PoW = 本身的work 可以做AI 计算(这个我们有项目会在近期公布),安全性最高,但是没法提高tps;DPoS不是唯一能解决速度的问题,要注意的是EOS的共识机制是PBFT+DPOS共识,只要用了PBFT算法,复杂度就是O(N^2),不可能快到哪里;其他的基于PBF算法如RBFT/SBFT和并行BFT可能更快,但是我们因为没有看到开源的代码,即是有论文也没办法实测)。
VRF:既然DPOS可以达到高TPS,VRF也能啊,但是不是超级节点,是分布式系统随机选出的节点,不仅保证了安全性,也做到了去中心化,其实就像陪审团结构。美国那个电影你们应该看过,为了影响/贿赂陪审团,要花多大的劲啊,因为他们是系统随机选出来的!
继续讲EOS好的地方和不好的地方,EOS中很多地方显然还没有打磨好,包括存储和智能合约。
存储用了Segwit隔离见证,好处是交易的签名在交易确认后可以丢了,节省空间。但是如果真有无数DApp应用上了主网,一样没法处理海量数据,所以它也没有解决分片存储的中长期问题
真正承载大规模DAPP和用户应用,不做分片和分类账本,是解决不了问题的。 EOS目前我感觉没有根本上解决大量DAPP承载问题clash节点全没,加上仓促上线的漏洞百出,很可能在不经意的时候,就来个the dao事件。
EOS还有一个好的地方是免费(免交易费)- 看上去很好,但是意味着智能合约里面产生的状态数据在智能合约完后要么自己删除,要么自动就没了。如果不是这样设计,一样回到了存储问题,大家都免费存储谁替你买单?为什么以太坊要收你GAS,且根据你智能合约生成的数据留在链上的大小酌情收费?所以有这个激励机制是必须的。另外,项目本身采用C++(包括目前智能合约智能也用C++)。从软件工程角度,尽管它有最高的性能,但是它的维护高效率、高质量比高级语言Go、Rust要难多了。很长一段时间我只能在Linux Docker上编译,我的Mac OSX鼓捣了很久才能编译。再有一点,@Ocean廖洋阳(号满加:) 刚才说“不是你改个源码就能变成eos2.0的”。
恰恰相反,正因为EOS靠几个节点就能运行,且是全部开源(这点赞),已经有类似ENO的那个项目啊,大家抢到ENO糖果吗?这是个复制EOS的项目,且修复问题似乎还更快一点(这方面我们确实要怀疑EOS众筹了这么多钱还有动力开发吗,哈哈)。曹辉宁:讲的有水准。algorand作者是VRF的原创,图灵奖获得者。这才像计算机系毕业的人说的话。
是的,MIT教授只众筹了4百万美金。回到EOS山寨问题,刚才那个ENO还是好的例子,衍生版。但是大家想过没有,如果恶意的复制EOS,连超级节点都不选,只要21个服务器就能设个局让大家入座了,哈哈,你们懂的。
所以DPOS说穿了就真的有问题。不过同样DPOS,我们团队仔细看过目前的BitShares代码和治理,考虑到技术的稳定性和治理委员会的多背景,由于生态的庞大,仍然是去中心化交易所和跨境支付、以及数字资产交易的平台。过一阵子跟大家汇报Stellar的调研和P o C。
21个节点 PBFT不可能快啊,当时超级账本0.6版本的10-16个节点PBFT只做到1500-2000 TPS,我们实在在目前代码里面看出EOS怎么支持它号称的百万TPS
我们实在在目前代码里面看出EOS怎么支持它号称的百万TPS。是“看出”,还是“看不出”?
21个节点本身即是有大BUG,并不是360所称的那样吓人(但是确实是不应该的),因为毕竟就如我上面说做的,利用溢出bug的恶意代码要精确参与PBFT的p2p通信等等才能达到偷币的目的。但是足以DDOS让系统变慢,甚至干倒超级节点。
没有jepsen测试的分布式系统都是耍流氓,我们自己的开源Elasticell就是国内第一个通过jepsen测试的分布式强一致性KV store。
蔡老师,eos的安全性未来还会在哪些方面或者方向有可能会有问题?如果有了问题,社区目前的治理机制是否能够快速修复等,期待分享~
安全性是整体的,在没有看到它自己的完整测试和code audit之前,有太多的问题。不过,区块链的好处是你可以回滚,或者硬分叉,同时保证交易所打好招呼,不然变现,所以大规模丢失EOS token造成的财务损失一开始是可控的,但是dApp多了以后会很乱,真发生了就不是可值得信赖的dAppStore平台。
需要强调的是,即使我们对EOS的众筹款项、BM的Next Big Thing历史、DPOS共识、超级节点竞选都有顾虑,但是毕竟BM和他爸(比特股教父)对区块链的技术和治理模式做出了大量的贡献。
超级账本亚太副总裁、Stan Larimer和我(我在万达的时候我们是亚洲第一个超级账本项目的董事会成员),猜猜我跟他约见说啥?我说不管以前BM和中国BTS社区什么问题,这次EOS这里有这么多大佬支持,但是居然官方推特账号居然重来没有跟任何中国EOS社区互动(官方和所有社区都互动过)。这不是inclusive啊,为什么不来face to face沟通一次呢?结果Stan给我介绍另外的大佬来。哈哈,我还要找他,我希望这里这么大的EOS社区支持,BM应该来一次,或者说出不来的理由。
免费,但是状态不能留在系统,除了交易。速度快,也就快到2000,而且还不是21个全节点+其他节点下测试的,也没有测试DDOS和大规模故障甚至恶意节点的情况。不过即使2000 tps,存储会有问题,每个节点的存储一会儿就会大到不好处理的状态。
@靳岩极客学院 PBFT共识可以支持最多1/3个恶意节点或者下线个节点继续做主要工作,当然前提是重大故障不至于造成整个网络瘫痪。