最近EOS版的Fomo 3D狼人杀游戏骗局引发了大家对EOS智能合约的安全性的大讨论。

和以太坊智能合约的不可升级不同,EOS智能合约可升级,因而保存在智能合约中的数据称不上去中心化,因为智能合约的管理员可偷偷的升级智能合约来修改合约里的任何数据。最直接的示例是EOS代币,代币分发给用户后,用户的代币持有量仍旧可以被管理员修改,那这个持有量是不安全的。由于智能合约可升级,开发者往往也没有了开源的动力,因为反正可以升级,开源又有什么意义呢?你此时看到的源码下一刻就可能被修改掉了。所以说目前所有涉及到资金的EOS代币及智能合约大家都要小心。

干掉升级

那智能合约的中心化如何来解决呢?难道EOS的智能合约只是个玩偶?显然不是,解决的方法只有一个,就是“自宫”,开发人员自己禁用掉合约的升级功能,核心就是是更改智能合约账号的权限,就像EOS启动阶段eosio.system智能合约的权限变更一样(具体可看我的文章)将智能合约权限更改为权威多签权限(eosio, eosio.prods)或者未知私钥对应的公钥。所以说其实官方已经给出了示例的,只是开发人员没跟上。

权威多签权限eosio.prods

未知私钥

比如EOS1111111111111111111111111111111114T1Anm这个公钥,它的公钥是0值加检验数据生成的,任何人都不知道它的私钥。这个公钥在超级节点竞选时临时用过,当时只有genisisblock生产区块,eosio.system智能合约处于临时冻结状态。

组建第三方权威认证机构(DAppStore)

智能合约将权限转交给第三方权威认证机构DAppStore,该机构由顶尖技术和生态大佬组成,采取投票方式是否同意某一智能合约升级。

比如该权限,智能合约拥有者账号拥有100张投票权,第三方权威机构有100张投票权(100个成员),所以必须得到智能合约拥有者同意且50%第三方权威认证机构票数认可(即150张票)才可以升级

代码开源

自宫之后,才能谈开源,目前eospark已经支持智能合约源码验证,开发者可以将源码发布到eospark验证。这样用户能看到合约的代码,且永远是这个代码。

升级功能什么时候用

既然智能合约都要去掉升级功能,那还要升级功能干嘛?其实可以这样用

1)只服务不涉及到资金的智能合约可以使用

2)测试阶段使用。测试阶段收集反馈,发现有问题通过升级解决。运行一段时间后,固化智能合约。

头脑风暴

以后“区块链斜杠青年”都会不定时推出头脑风暴,欢迎大家留言参与讨论。

考虑到发币成本高企,EETH刚发行的时候,我就想过初期EETH提供免费发币,但是后来考虑会给EETH品牌造成混乱于是放弃了。最近有一些代发币的合约出来,考虑到今天的话题,可升级的代发币合约发的币都是假币。你通过合约发币后,发的币的所有权不是你,而是发币智能合约的拥有者,因为他有更改你币的数据的权限。因而想要实现真正的币工厂智能合约,必须按照上面的方法,去掉升级及开源,这会是一个大生意。但是在和朋友讨论后,发现这个生意其实也有一些问题,币工厂发币,它间接为所有代币背书,一旦其中有一个代币涉及到欺诈,就会影响到这个币工厂发行的所有代币的信誉,所以这个想法必须等到用户成熟到能够清楚这种模式,区分账号和币的关系后才能有所所为。大家有想法的可以留言参与讨论。

|**************************************************
* 本文来自CSDN博主"爱踢门",喜欢请点关注
* 转载请标明出处:http://blog.csdn.net/itleaks
***************************************************|

固化EOS智能合约,监管升级权限,净化EOS DAPP生态相关推荐

  1. c++ eos智能合约开发_[EOS智能合约]第二节:用EOS开发一个To-do List小应用

    EOS Asia 本教程原文作者为EOS Asia,亚洲最具技术实力和最国际化的EOS超级节点竞选者.EOS Asia 同时也是EOS Gems和Traffic Exchange Token这两个项目 ...

  2. EOS智能合约开发(四)EOS智能合约部署及调试(附编程示例)

    EOS的智能合约里面有一个action(动作)和transaction(交易)的概念. 对于我们开发以太坊开发者来说,基本上只有transaction的概念.如果我只要执行一种操作,而且是只读操作,就 ...

  3. c++ eos智能合约开发_干货|EOS智能合约开发(一)EOS环境搭建和启动节点

    引言 EOS的智能合约采用C++ 编写,因为C++ 的高效性,没有C++ 编程基础的同学可以先学习<Efficient&Elegant:Java程序员入门Cpp>.EOS中用户开发 ...

  4. EOS智能合约开发(三)EOS创建和管理账户

    创建好钱包和密钥后,我们就需要创建账户.为什么创建账户,为了方便人与区块链交互.以太坊40位地址,让我们非常难以记忆.EOS有账户概念,我们就可以定义账户权限. 在区块链上执行操作,需要使用到账号.我 ...

  5. EOS智能合约开发(十一)EOS的RAM市场与Bancor算法

    北京时间 7 月 5 日 0 时,BM 在 Medium 上发表一篇名为<EOSIO RAM Market & Bancor Algorithm>谈论 RAM 市场和 Bancor ...

  6. EOS智能合约开发(十)EOS中eosio.token合约分析

    前面文章里,我们部署过eosio.token合约,今天我们就分析一下这个合约. 首先,我们部署eoiso.token合约,通过这个合约,可以创建不同的token,可以由不同的账户部署管理这个合约.所有 ...

  7. eos源码赏析(十二):EOS之从“狼人游戏”看智能合约调用及权限分配(下)

    接上篇,本篇从智能合约内部权限使用出发,结合"狼人游戏"源码,谈谈eosio中权限的分配及使用,本文主要分为以下三部分: 狼人团队的声明探析 多签名账户 权限eosio.code的 ...

  8. c++ eos智能合约开发_十分钟教你开发EOS智能合约

    EOS环境搭建和启动节点 下面从EOS入门的环境搭建.编译运行一个智能合约.发送一些Aigsen,给大家做一些展示,希望能让非技术人员也有一些收获. 首先下载EOS环境搭建和启动节点.这一步其实还是比 ...

  9. 十分钟教你开发EOS智能合约

    十分钟教你开发EOS智能合约 在CSDN.柏链道捷(PDJ Education).HelloEOS.中关村区块链产业联盟主办的「EOS入门及最新技术解读」专场沙龙上,柏链道捷(PDJ Educatio ...

最新文章

  1. 最全面的Linux指令大全
  2. WebDriver元素等待机制
  3. 《苹果往事:开发麦金托什的非凡岁月》撷英
  4. Sun为何一掷千金拿下MySQL?
  5. 关于PyTorch中的register_forward_hook()函数未能执行其中hook函数的问题
  6. 计算机发展初期 承载信息的媒体,兰州大学《多媒体技术基础》18秋平时作业3(含答案)...
  7. Linux常用命令集锦(一)
  8. Oracle 10g Create Database
  9. TechEd2011分享
  10. 用php打印出日历_PHP完成一个日历
  11. 苹果iphone公交卡支持哪些城市(详细)
  12. 计算机系固态硬盘机械硬盘,固态硬盘和机械硬盘可以在一起使用吗?
  13. Selenium系列教程 - AutoIt命令行参数
  14. 酶促反应动力学_酶促反应动力学讲解.ppt
  15. Grafana 汉化
  16. oracle表空间配额(quota)与UNLIMITED TABLESPACE系统权限
  17. docker中的volumes
  18. 记一次天地图https无法访问
  19. Leetcode_191_Number of 1 Bits
  20. html scr 拼接,浅谈html中scr与href是什么?scr与href有什么区别?

热门文章

  1. 北京格林深瞳算法实习生面试
  2. 线程池ThreadPoolExecutor使用简介
  3. 如何把灰色的图片背景换成白底图?
  4. Java集合(二二): LinkedList源码剖析
  5. 小程序权限设置:小程序下载图片保存到相册拒绝权限后,再次打开权限的解决方案
  6. android多级列表
  7. 关于Visual studio 2015 未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”包的解决方案
  8. 目前我依旧没找到目标
  9. 大学期间能考的计算机证书,大学期间可以考哪些证书?过来人告诉你这3大类最有用!...
  10. 计算机休眠查询,可不可以查询电脑待机记录