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

智能合约及Dapp安全简介

作者:猎豹区块链安全 字体:[增加 减小] 来源:互联网

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

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

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

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

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

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

所有代码都是公开的

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


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

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

Gas 限制

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

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

不可篡改特性

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

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

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

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

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

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

实际案例推荐

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

  • 如何在IoT Chain(万物链)部署智能合约
  • 智能合约的攻与防
  • 智能合约及Dapp安全简介
  • 如何审核智能合约
  • 如何编写以太坊ERC-20智能合约的单元测试
  • 升级您的以太坊智能合约的最佳实践
  • 构建智能合约时需要考虑的9个因素
  • 如何实现可升级的智能合约?
  • 智能合约是什么及我们需要它们的原因是什么
  • 智能合约攻击:我们都应该从DAO中吸取经验

相关文章

  • 数字货币实际上是如何工作的?
  • IOTA:缠结、数据市场以及用例
  • Solidity Types-动态大小字节数组
  • 区块链性能测评实战案例
  • Catapult是什么?
  • 卡尔达诺(Cardano)的 Ouroboros协议是什么
  • 区块链记账原理
  • 安全代币2.0技术堆栈
  • 解析区块链本质及应用!
  • 如果点开数字货币的垃圾广告会怎样?

文章分类

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

最近更新的内容

    • 胖协议 vs 胖 dApp vs 胖钱包
    • BCH是什么?未来会好吗?
    • 比特币现金(BCC)缺点、优势、如何获得、特性、挖矿
    • 如何以简单的方式创建ERC20代币
    • 如何应对比特币泡沫或加密货币的崩溃
    • 走近比特币:一个故事看懂区块链原理
    • 区块链如何实现共识机制
    • 区块链(Blockchain)深入介绍
    • 什么是代币(token)
    • 跨链技术之ILP(InterLedger Protocal)详解及应用

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

©2020-2025 All Rights Reserved. linkedu.com 版权所有