服务于:区块链、加密货币市场
热点资讯、行情分析,项目解析
如有问题或建议,请公众号留言
请注意:本文观点不构成投资建议
“
eosfo.io,利用了普通用户,对EOS权限机制的认知缺陷。在代码中,对用户账号更新了权限。
”
在Fomo3D的爆发和赚钱效应吸引下,其山寨产品迅速被开发出来。eosfo.io 就是其中部署在EOS网络上的山寨产品。
但是eosfo.io,却利用了普通用户,对EOS权限机制的认知缺陷,在代码中,对用户账号更新了权限。
这不仅仅是授权。 而是更改权限。 用的是“updateAuth”操作 ,前阵子盗号的事情记得么? 有“updateAuth”的时候,代表的你的账号里的币,已经能被别人随便转走了。
有图有真相
本人探索了EOS智能合约开发很久了。对EOS智能合约开发很有经验。知道哪些坑是不能踩的。
为什么买RAM,系统能不经授权扣你账户中的EOS,因为系统账号有特权。
而普通账号,没有特权直接转账你的EOS。所以,需要把权限交给它。
而eosfo.io这个EOS山寨版Fomo,显然对EOS智能合约非常没有经验,偏偏踩了这个最大的坑: “直接把用户权限改了” 犯了“用户资产不可侵犯”之大忌。
完全有更好的解决方案
除了“更新权限”, 完全存在一种更好的解决方案,不需要用户交出权限的解决方案。这个项目,连探索这样解决方案的工作都不愿做,也没有测试盘,就上线了。敢无脑冲进去玩的人,真的都是勇士。
快检查自己账号的权限吧。有被改了,速速请教身边的程序员同学,看看如何改回来。
懂的人自然懂,让不懂的人知道
权限授予代码,即等于账号的EOS转账权,交给了代码。而代码的权利又是被人掌控着。
所以,基本等于,你交出了自己的私钥。
此时别人手里已经有枪。对方会不会对你开一枪。完全看对方心情。
公然说谎
我爆料了eosfo.io代码中的超级大bug后,很多人质疑我,甚至有人要我删帖道歉。
游戏开发方,也发公告,试图 “稳住” 无辜被套者。
但我只想说,红圈部分,是在公然说谎。
一旦授权给code, 整个合约都可以转账,不是某个action而已。dice合约demo也是很早以前了。拿好几个月前issue和bm出来解释有点牵强。 不管怎么样说,改权限不是个好设计。 优雅的解决方案是不需要改权限的。
其实我当时很想拿代码说话。直接用代码做个实验。但当时我正在外出。没法操作。
昨天晚上,社区有大神用代码做实验了。一锤定音,完美验证这游戏确实存在的大问题。
【捭阖命物eos】狼人游戏中需要的code权限真的安全吗,以及被埋在资金盘里的我正在思考什么。文章链接:https://bihu.com/article/992656
除了权限,存在更严重的bug
一个未经测试、没有经过安全审计就上线的智能合约。 如同定时炸弹一样。
既然 “权限” 这种低级错误都犯了。 可想而知,什么整型溢出,循环,重入等等 常见智能合约bug都有可能存在。
只是他们也没开源代码,我们看不到而已。
今天,真的被整形溢出攻击了。智能合约内部数据已经损坏,这游戏怕是凉凉了。这不是传统数据库,叫运维改数据就完了。区块链上,改数据可没那么容易。
收获
通过这个靠拉个大V撑场面,就能吸引一大堆人进场的“游戏”。希望大家醒醒。得到几个教训:
开源的智能合约,才是好的智能合约
经过安全审计的智能合约,才是安全的智能合约
权限上,有一套具备公信力的处理方案,才是去中心化智能合约
Fome3D山寨版,雨后春笋,相继冒出来。
不是说这种游戏不该存在,只是希望大家进场前,心中有个评判标准。别冲动。
后续跟进
狼人团队终于起床了。发现问题大了。赶紧又发了个公告稳住韭菜们:
所谓的解决方案,只能通过写一个临时的合约方法,更新合约,然后再调用这个新写的合约方法,去修复数据。
这种操作不仅很高危,而且已经完全违背去中心化,甚至是在侮辱智能合约和区块链。
不过他们也只能死马当活马医。还能有什么办法。
信仰大厦
我建了一个区块链信仰大厦DAPP,付费盖楼,一层0.2EOS,产权3万年。毕竟币圈时常风雨飘摇、还常常地震。欢迎来写下你的信仰,然后时不时回顾一下,也许信仰就不会轻易动摇了。
领取专属 10元无门槛券
私享最新 技术干货