虚拟币钱包开发

新闻资讯

产品分类

热门产品

掌握钱包私钥掌握一切吗?
掌握钱包私钥掌握一切吗?
一般而言,如果一笔区块链交易的交易费设置的很低,它是不会被网络纳入的,但在某些情况下,零

杭州软件开发公司
杭州软件开发公司
杭州区块链软件开发公司哪里比较靠谱,区块链软件开发钱包,区块链商城系统开发,区块

GO开发者:如何成为区块链开发者?
GO开发者:如何成为区块链开发者?
可以这样说,2018年是区块链应用元年,区块链相关概念被炒得沸沸扬扬,作为一项新生技术,虽

稳定币之争
稳定币之争
毫无疑问,在加密货币市场有一个占主导地位的稳定币。 从理论上来说,Tether的代币USDT价

河南省首家区块链技术研究院成立
河南省首家区块链技术研究院成立
10 月 30 日消息据凤凰网商业消息,10 月 10 日,河南省未来区块链技术研究院在中国郑州正

软件开发-钱包开发
软件开发-钱包开发
沧州区块链软件开发钱包,区块链商城系统开发,区块链应用技术开发,区块链钱包开发,区块

宜昌软件开发钱包
宜昌软件开发钱包
宜昌区块链软件开发钱包,区块链商城系统开发,区块链应用技术开发,区块链钱包开发,区

临沂区块链钱包开发
临沂区块链钱包开发
临沂区块链软件开发钱包,区块链商城系统开发,区块链应用技术开发,区块链钱包开发,区

您的当前位置:首页 > 区块链技术开发

智能合约及Dapp安全简介


时间:2018-11-04 19:10:46  来源:原创  作者:admin  点击次数:


  智能合约和dapp的开发属于新的范式,开发的方式与以前会有所不同。

“敏捷开发”的格言在这个新范式中好像不起任何作用了,这类项目的开发会有一定的风险,这要求我们采用缓慢而有条理的方法来开发我们的应用程序,在设计和编码时尽量谨慎和考虑周全。

  开发时也不能让自己承受过多的压力,比如制定严格的期限等。

  如果把大多数传统的apps类比于社区诊所,那么区块链可以说是急诊室。有些很小的问题,一旦上链的话,就会变得很难解决,你必须考虑到所有可能的负面结果,如果没有这么做,你可能会面临非常可怕的后果。

  所以在我开始具体的内容之前,我必须要重申一下区块链开发方面的特点,这些迫使我们开发时要非常小心。

所有代码都是公开的

首先,区块链的代码是开源的,任何人都可以看到你写的代码,所以很明显,智能合约中不应记录敏感的个人信息。不然,你就可以进行用户的链上行为分析,这对于小白用户来说可能听起来不太好,因为他的历史行为暴露在了全世界面前。

智能合约及Dapp安全简介

  这就导致智能合约及其相关存储功能只能存储合同正常运行所必需的信息。

  其次,最最重要的是,所有源代码都公开可见,这意味着在地下工作的明星黑客有充足的时间和自由,来梳理你的每一行代码,寻找其中的漏洞,代码将无处可藏。

Gas 限制

我相信大多数人都知道,以太坊的是有Gas费的,Gas费些许的昂贵,并且还有一定的限制!如果智能合约中的逻辑可以导致大量Gas消耗,则会出现严重的问题。循环调用是这种情况的常见原因。

  最后也是最重要的一点是:

不可篡改特性

  智能合约代码都是完全根据最初的逻辑执行,都不想重蹈The DAO级别的硬分叉悲剧。

  区块链开发的特点是,合约一旦部署,一切都将不可篡改。不可篡改的优点是让我们可以高枕无忧地相信智能合约。我们首次将信任编程到代码中。陌生人之间可以信任代码,而不是彼此建立信任。我们慢慢的开始相信智能合约,它不会骗人,也不会在任何时候做出格的事情。

  对我来说,我会以非常开放的心态拥抱全球的区块链霸主。并且作为工程师,我也会努力去实现这个信任社会,但是这个信任社会也有致命的问题。

  设想一下,如果我们家的技术文盲奶奶不小心把她的google搜索痔疮膏的信息发布到了Facebook上,这不会是大问题,可以删掉。但如果她在某个有漏洞的智能合约上暴露了自己的私钥,那我们就无能为力了,她精通技术的侄子也没有任何办法,区块链浏览器中历史记录将无法删除!

  在写代码的时候,我们必须假设每个用户都是技术文盲,并百分百地确保函数的正确调用,执行能够操作无误,你永远都不会知道,有多少人盯着你钱包地址上的数百万美金。

  接下来我将介绍一些准备好的漏洞示例,并且进行一些练习,让每个人都参与进来。以便我们在今后在写代码时能够避免Dapp和智能合约的漏洞。

实际案例推荐

智能合约及Dapp安全简介

  我们来看第一个案例,让我们从一些背景开始。

  · 这是一个去中心化的游戏平台

  · 它的应用程序都是基于浏览器的

  · 游戏开发者可以公开发布他们的游戏(在以太坊网络上运行的dapps)

  · 玩家可以注册dapp并从选择各种游戏(用ETH购买虚拟商品)

  · 注册时会帮你创建新的钱包(这个案例不需要Mist 或Metamask)

  · 钱包密钥存储在玩家的浏览器中,用于验证和支付。

  是的,这似乎是开发人员通过平台进行发布,并有效连接玩家的好地方。

  不幸的是,有一款叫HODL QUEST的游戏在发布后,用户下载它时,他们钱包中的以太币数量就开始减少。

  玩家的以太币去哪了呢?让我们先来看一下平台的一些情况:

  · 这个问题是几小时前发布的新游戏HODL QUEST引起的

  · 首次打开游戏后,钱包的资金几秒钟就消失了

  · 在游戏注册期间,开发人员在平台内的表单中输入dapp的名称,智能合约地址和URL

  · 该平台将游戏iframe嵌入到dapp中,同时在页面顶部显示游戏名称

  · 你可以开始看看它的发展方向......经过进一步的检查,我们发现HODL QUEST游戏的开发者在注册过程中为游戏标题注入了一个内联脚本。仔细观察游戏html代码,我们发现了这样的事情:


本文来自区块链开发官网 转载请注明

上一篇 下一篇


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
网站首页| 关于沙僧科技| 区块链开发| 产品案例| 新闻中心| 售后服务| 联系我们