我对EOS安全的看法,恐慌个啥?

深度 Byzantium 2342 浏览

开源是区块链与传统软件的重要区别,通过开放的思想和开源的代码,区块链技术的发展速度会远远超过互联网时代,这是区块链精神。

继昨日360公告发现EOS的“史诗级”的漏洞一事,今天(5月30日)中午火星三点钟群里王峰十问红衣教主周鸿祎,再次上演“史诗级”高手对决。穿透“史诗”的表象,王峰约稿命题作文,叫我讲讲关于 EOS 安全漏洞的看法。

关于EOS安全漏洞的几点看法

360这次披露的EOS漏洞的确是高危级别的,在临近6月1日EOS主网上线前发现这样的高危漏洞,令人担忧的是当前EOS市值已经过百亿美金,对于承载这么高价值资产的平台,不禁担忧EOS安全评估与测试,针对区块链智能合约引擎的设计从考虑安全的角度谈几点看法:

1、智能合约运行环境要容器化、沙盒化,尽量与操作系统隔离。由于区块链运行机制的原因,智能合约会在所有区块链节点上独立重复运行,如果不对智能合约的运行环境进行容器化或沙盒化处理,智能合约代码或智能合约引擎的漏洞就很可能泄露进节点的操作系统中,就像此次EOS漏洞一样,攻击者就可以掌握操作系统的控制权。比特币没有采取这些机制,是因为比特币智能合约不是图灵完备的,其功能非常简单,无法实现攻击者所需要的恶意功能。以太坊的EVM是以沙盒形式运行的,且经过了时间的检验日趋成熟,Hyperledger Fabric采用独立的Docker容器来运行智能合约,都在很大程度上与操作系统进行了隔离。EOS自己写的WASM引擎,因为不够成熟才会出这么大的BUG,还需要更长时间的实践检验,现在匆匆上线主网有点操之过急,当初比特币和以太坊的总市值不高,可以通过主网进行试验,但EOS不能这么做。

2、智能合约语言要采用DSL,不要用通用语言。有条件的可以采用函数式语言。智能合约是需要程序员编写代码来完成业务功能的,选用什么样的编程语言非常重要,好的编程语言可以自动处理安全问题,让程序员专注于业务逻辑,不好的编程语言如C++,需要程序员花费相当大的精力处理各种安全问题,非常容易引入BUG。像比特币和以太坊那样,采用专门的领域特定语言(DSL)来编写智能合约,是一种良好的实践。智能合约DSL设计的首要目标应该是让程序员尽可能地少犯错误、不出现安全漏洞,函数式语言非常适用于这一目标,相信今后会有越来越多的区块链采用函数式语言来编写智能合约。现在以太坊和EOS的智能合约都是用的通用语言,而DSL是更高级的语言,功能受限但更加简洁、安全,也对程序员更加友好,好比SQL与C++用在数据库领域孰优孰劣的差别。

3、智能合约虚拟机设计要简洁明了,避免引入复杂繁琐的功能。复杂性是安全的大敌,功能越多代码就越复杂,就越容易引入BUG,这是软件工程的基本原理。智能合约仅用于实现区块链共识部分的功能,并不需要太过复杂的功能,因此在设计智能合约虚拟机时要简化指令集、舍去不必要的功能,要学习中本聪设计比特币操作码时那样多做减法。

4、对智能合约的复杂度要有限制,递归调用、多重嵌套循环等过于复杂的合约应拒绝执行。以太坊采用gas机制来解决这一问题EOS采用质押代币换取使用权的机制,都无法抵抗恶意攻击者支付足够多的代币来进行DOS攻击。如果在智能合约引擎的设计中就做好防范,在语言层面禁止递归调用、多重嵌套循环等过于复杂的代码在区块链上发布,就可以实现更进一步的安全性。这纯粹是设计理念上的区别,经济机制是一种手段,语言层面的限制是另一种手段,不需要贬低任何一个,可以双管齐下。

EOS是不错的区块链实践,但又是“伪区块链”。EOS应该说是全球继以太坊之后不错的区块链实践,提出了很多优秀的想法,推动了区块链行业的进步,甚至之前带动了一轮小牛市,这是对全球区块链行业的贡献。给公链启发的思考是,在当前的区块链3.0的项目几乎都在拼TPS性能,号称要做百万TPS公链,却忽视了最重要的安全问题,很可能主网上线之日就是系统崩溃、代币归零之时。对做底层公链的团队来说,功能和性能固然是卖点,但安全性是第一位的。说他是伪区块链,更多的还是觉得EOS背离区块链精神,这种架构就是全球招募些亿万富豪开一盘局。那么什么是区块链精神?

关于区块链项目的估值 

区块链精神的精髓是开放、共享和共识。

开源是区块链与传统软件的重要区别,通过开放的思想和开源的代码,区块链技术的发展速度会远远超过互联网时代,这是区块链精神。

区块链技术不应该也不可能是商业软件,PC时代的微软、IBM 和甲骨文的商业软件估值方法不适用于区块链。一些区块链公司乐于去申请专利的,这还搞什么区块链?比特币申请过专利么?中本冲收过专利费么?建立共识币值钱了,还在乎这些专利费?还是拿着卖光盘的思维在玩区块链。还有一个误区是,继续沿用移动互联网时代的生态用户估值体系。很多自称是区块链的投资人鄙视古典投资人,但是他们的方法论还是要构建闭环排他的生态,多少社区基础,未来多少Dapp,圈多少用户数和未来可能赚多少利润来估值区块链,还是停留烧钱共享单车圈流量的古典互联网思维,是伪区块链,有悖区块链开放共享共识的思想。区块链的估值应该是看对区块链技术和区块链世界的贡献,对行业有贡献就有价值。这就是很多时候,人们喜欢追捧那些曾经有过突出贡献大神的项目,BM也算其中之一吧,虽然颇有争议,不看人品看技术贡献。如果中本聪真人露面,再做一个“BTD”,估计还是超高人气超高估值吧。

因此从这方面讲,EOS对区块链世界有贡献有价值,但值多少没法量化,取决于社区的共识和韭菜们的智商。也有其他项目也提出了一些新的想法,比如Penta公链提出的基于散列抽签函数RSA 实现的DSC共识算法和PSG分片技术,在兼顾公平前提下实现了性能的提升,通过分片提升性能,PSG应该说从披露的信息看比以太坊考虑更完善。未来实现了、开源了,后续其他项目可以继承和发展,那么这也是有价值的。

我认知区块链发展路线是:中本聪比特币区块链1.0实现了可信的价值;2.0的以太坊智能合约实现可信的代码,为去信任的智能经济打开通道;数据上链不能篡改,谁来保证数据上链前真实,区块链3.0或许是要实现可信的设备(受了笑来老师的启发,再次致谢,认知也是不断碰撞迭代),或者是可信的数据。目前应该都在2.0阶段,智能合约不断出现漏洞,说明还没有实现可信的代码。所以项目在这条路线上,做出尝试并有进展和突破的项目都应该有价值有估值的。

关于EOS 超级节点选举和社区运营

EOS超级节点精选可能是全世界搞得最火热的活动,可以说很成功。

我一共听过两此,一次是在某区块链会议上偶遇国内某知名EOS社区创始人演讲,还有就是昨晚在新天地裸心社加拿大EOS Nation搞的活动。一帮老外坐台上,其中一个老外说,Please vote for us, if you do not vote, we are nothing. we need you guys!这个说法很humble啊,很直接,很有激情,很温暖!我在台下想问他,谁赋予你被选举的权利?口口声声社区,我凭什么把票投给你,而我没有机会?是因为你有40亿EOS?我选了你如何保证你能为社区服务? 如何证明你qualified 为社区服务,难道是因为开场就吹你在加拿大6岁上机7岁编程?你本来就是nothing,如何站在台上像政客精英一样制高点俯视?这个老外说的话,我听听就想笑,西方式民主都是这样。

看透本质,Eos选举就是一帮有钱人的游戏,拉票选总统,然后选上之后还是为了什么?

大众很多是盲从,表面上有选举的权利,其实羊群哪看什么民主只是想着to the moon。

本文来源:左鹏  区势传媒责任编辑:Byzantium
声明:本文观点仅代表作者本人,绝不代表区势传媒赞同其观点或证实其描述。

声明:本文为文章作者或转发者向区势传媒的投稿,观点绝不代表区势传媒立场,亦不构成任何投资意见或建议。

下一篇文章

评论(0)

最新评论