• 微课视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
微课江湖
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 微课视频
  • 安全教程
  • 安全设置
  • 杀毒防毒
  • 病毒查杀
  • 脚本攻防
  • 入侵防御
  • 工具使用
  • 业界动态
  • Exploit
  • 漏洞分析
  • 加密解密
  • 手机安全
  • 区块链
您的位置:首页 > 网络安全 >区块链 > 智能合约及Dapp安全简介

智能合约及Dapp安全简介

作者:猎豹区块链安全 字体:[增加 减小] 来源:互联网 时间:2018-11-03

猎豹区块链安全向大家分享了智能合约及Dapp安全简介,其中包含智能合约,Dapp等知识点,遇到此问题的同学们可以参考下
导读:各个公链上的智能合约和Dapp数量在高速发展的同时,也隐藏着许多致命的风险,本文结合区块链的特性,为广大智能合约和DAPP开发者提供忠实的安全方面建议。

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

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

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

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

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

所有代码都是公开的

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


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

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

Gas 限制

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

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

不可篡改特性

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

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

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

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

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

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

实际案例推荐

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 智能合约是什么及我们需要它们的原因是什么
  • 智能合约攻击:我们都应该从DAO中吸取经验
  • 智能合约并不像你想象的那么智能
  • 以太坊可更新智能合约研究与开发综述
  • 如何通过以太坊智能合约来进行众筹(ICO)
  • 关于区块链技术最重要的三要素
  • 一分钟看懂智能合约是什么鬼
  • 比特币脚本及交易分析-智能合约雏形
  • 浅谈以太坊智能合约的设计模式与升级方法
  • 传统合同和智能合约

相关文章

  • 2018-11-03区块链资产「地址、密码、私钥、助记词、Keystore 」
  • 2018-11-03蚂蚁矿池比特币、比特币现金挖矿指南
  • 2018-11-03以太坊(Ethereum)协议的发展史
  • 2018-11-03你的第一个Truffle分布式app (2)
  • 2018-11-03Solidity Types-动态大小字节数组
  • 2018-11-03什么是BCC(Bitcoin cash)
  • 2018-11-03巨头征战新零售,实体小玩家如何求得生机?
  • 2018-11-03椭圆曲线——保障用户隐私的神奇加密算法
  • 2018-11-03EOS RAM 买卖功能教程 | HaloWallet
  • 2018-11-03比特币行情报价网站大全

文章分类

  • 安全教程
  • 安全设置
  • 杀毒防毒
  • 病毒查杀
  • 脚本攻防
  • 入侵防御
  • 工具使用
  • 业界动态
  • Exploit
  • 漏洞分析
  • 加密解密
  • 手机安全
  • 区块链

最近更新的内容

    • 区块链3.0是什么?
    • BitShares|比特股账户权限和多重签名功能介绍
    • Solidity Types-动态大小字节数组
    • 智能合约与函数式编程语言
    • 区块链共识机制总结
    • 如何在Linux系统建立自己的闪电网络节点和通道
    • 互联网医疗这门生意不好做,在线心理咨询要如何打开局面?
    • 什么是以太坊Casper协议?
    • 区块链是如何做到交易数据防篡改的
    • IBO的金融原理和应用方向分析

关于我们 - 联系我们 - 免责声明 - 网站地图

©2015-2018 All Rights Reserved. 微课江湖 版权所有