
智能合约
浪里个浪の
要得到有价值的东西,你就得做出牺牲。你知不知道,难做的事和应该做的事,往往是同一件事。凡是有意义的事都不会容易,成年人的生活里没有容易二字
展开
-
智能合约之可重入攻击
以太坊智能合约到现在,出现了不少由于合约代码不严谨,导致黑客利用合约代码漏洞进行攻击来获取暴利。接下来我为大家来介绍一下常见的合约漏洞类型,包含重入攻击,短地址攻击,数据溢出攻击,可预测随机数攻击,篡改实践攻击等。下面大家介绍一下重入攻击。...原创 2019-04-04 22:41:40 · 3023 阅读 · 0 评论 -
智能合约的升级
做软件开发的都知道,没有完美的代码,在当前设计的时候由于考虑不完备或者后续需要增加一些新功能,需要对软件进行迭代升级。在以太坊的智能合约中也存在这种情况,由于功能的完善可能会"升级"智能合约。大家都知道,部署到链上的合约代码是不可修改的,怎么实现合约代码的"升级"呢?其实智能合约的"升级"并不是真正意义上的在原合约上的代码调整,在以太坊中上链的数据是无法修改的,而是通过合约架构去实现类似合约"升...原创 2019-04-19 11:48:27 · 592 阅读 · 0 评论 -
以太猫合约关系梳理(七)
这段时间分析以太猫的合约源码,其代码基本都是通过合约继承来实现后续的功能。对于各个合约间的关联,我画了一张图,仅供大家参考,如有表述不正确的地方烦请指出,谢谢。...原创 2019-04-28 16:08:39 · 317 阅读 · 0 评论 -
以太猫游戏主合约(六)
通过前述5篇博文的分析,分别介绍了以太猫的基础数据,权限控制,生产,拍卖,交易等相关合约代码分析,今天将介绍一下,以太猫游戏开始,宣传猫和一代猫的生成过程以及该休息的主合约。宣传猫&一代猫// 游戏刚开始时,有宣传猫和初代猫两种,宣传猫直接给账号,初代猫放大市场拍卖contract KittyMinting is KittyAuction { uint256 public c...原创 2019-04-28 14:27:35 · 362 阅读 · 0 评论 -
以太猫合约之拍卖(四)
由于以太猫合约遵循的是ERC721标准的合约协议,所以每只猫的价值都不一样。在以太猫的游戏中,每只猫的价值是通过拍卖来体现的。在日常生活中,拍卖都是从从低价到最高价拍卖的,而在以太猫的游戏 合约中,拍卖限定了最高价、最低价和拍卖时间,竞拍者是从高价到低价进行竞拍的,这样节约了由于大量低价竞拍最后没有成交造成gas浪费和网络堵塞。接下来就重点来分析相关代码。拍卖合约(基础接口)// 拍卖合约,包...原创 2019-04-28 11:37:43 · 421 阅读 · 0 评论 -
以太猫合约之生产(三)
在以太猫游戏中,以太猫除了宣传的5000只猫和第一代45000只猫,后续代猫的产生,需要猫进行交配,怀孕,生产来生成更多的猫。接下来就来分析这部分的合约代码。猫的交配、怀孕、生产合约contract KittyBreeding is KittyOwnership { // 当猫怀孕时,触发事件 event Pregnant(address owner, uint256 matr...原创 2019-04-28 10:31:03 · 524 阅读 · 0 评论 -
以太猫合约之数据合约分析(二)
上一篇讲解以太猫的一些基础合约,包含权限控制和ERC721函数定义合约。本篇将重点介绍以太猫的基础数据合约和ERC721代币实现合约。我们先看以太猫基础数据合约。以太猫基础数据合约contract KittyBase is KittyAccessControl { // 事件 event Birth(address owner, uint256 kittyId, uint256...原创 2019-04-26 18:36:29 · 482 阅读 · 0 评论 -
以太猫合约之基础合约分析(一)
通过https://etherscan.io/查看部署在以太坊主链上的ERC721合约,排在第一位是代币名为CryptoKitties (CK)的合约,其合约地址为:0x06012c8cf97bead5deae237070f9587f8e7a266d。经查询它就是大名鼎鼎的以太猫游戏的合约地址,接下来我们就来撸撸以太猫的源码。...原创 2019-04-26 17:45:40 · 817 阅读 · 0 评论 -
智能合约之数据溢出攻击
在介绍数据溢出攻击之前,先简单介绍一些什么是数据溢出。数据溢出在计算机中,当要表示的数据超出计算机所使用的数据的表示范围时,则产生数据的溢出。数据溢出原因是数据类型超过了计算机字长的界限就会出现数据溢出的情况。在编程语言里算数问题导致的漏洞最多的就是整数溢出了,整数溢出又分为上溢和下溢。整数溢出的原理其实很简单,这里以 8 位无符整型为例,8 位整型可表示的范围为 [0, 255],255 在内...原创 2019-04-08 21:17:34 · 1501 阅读 · 0 评论 -
智能合约之短地址攻击
在了解以太坊智能合约短地址攻击之前,先要简单了解一下以太坊代币ERC-20 TOKEN 的一些基础知识。ERC(EthereumRequest for Comment)即以太坊通用征求意见协议,开发者可以通过提交EIP(Ethereum Improvement Proposal以太坊改进建议),向以太坊社区提交新的ERC标准提案。ERC-20是整个加密社区中的所有标准中名气最大的,而且大多数基于以...原创 2019-04-08 17:53:18 · 1092 阅读 · 0 评论 -
智能合约之其他类型攻击
本篇将为大家介绍一下以太坊智能合约的 拒绝服务、可预测随机数、不安全函数返回值、构造函数拼写错误等引起的漏洞,接下来依据漏洞的类型分别为大家做介绍。1. 拒绝服务攻击拒绝服务顾名思义就是通过制造错误返回来拒绝为其他人提供服务,那么在以太坊的智能合约是怎么做到的呢?下面先来看一份智能合约代码:pragma solidity ^0.4.10;contract PresidentOfCount...原创 2019-04-10 11:51:04 · 576 阅读 · 0 评论 -
Ubuntu下Truffle框架的搭建
Truffle是一个世界级的开发环境,测试框架,以太坊的资源管理通道,致力于让以太坊上的开发变得简单,Truffle有以下: 内置的智能合约编译,链接,部署和二进制文件的管理 快速开发下的自动合约测试 脚本化的,可扩展的部署与发布框架 部署到不管多少的公网或私网的网络环境管理功能 使用EthPM&NPM提供的包管理,使用ERC190标准 可配的构建流程,支持紧密集成 Tru...原创 2019-05-06 17:20:09 · 2552 阅读 · 2 评论