【以太坊基础系列-005】数据保存levelDB

LevelDb日知录之一:LevelDb 101   说起LevelDb也许您不清楚,但是如果作为IT工程师,不知道下面两位大神级别的工程师,那您的领导估计会Hold不住了:Jeff Dean和Sanjay Ghemawat。这两位是Google公司重量级的工程师,为数甚少的Google Fel...

2019-01-12 16:08:07

阅读数:13

评论数:0

【以太坊基础系列-004】深入浅出以太坊MPT(Merkle Patricia Tree)

1 Trie树 Trie树,又称前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符串。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下,不是所有的节点都有对应的值,...

2019-01-12 16:05:28

阅读数:9

评论数:0

【以太坊代码分析系列001-获取合约pure,view数据的流程】

简单说明 本文基于geth 1.8.19的代码 测试合约代码 pragma solidity ^0.4.20;contract Counter {     uint count;         function Counter() public   ...

2019-01-08 14:55:55

阅读数:34

评论数:0

【智能合约系列010-solidity编译器修改(增加指令以及扩展函数)】

todo

2019-01-08 14:53:12

阅读数:22

评论数:0

【智能合约系列009-如何做智能合约审计?】

研究报告【Finding The Greedy, Prodigal, and Suicidal Contracts at Scale】)指出,目前在以太坊中,有89%的智能合约代码都或多或少存在安全漏洞/隐患,这显然是一个非常惊人的调查结果,对社区而言也是一个巨大的风险因素。而随着智能合约的增多乃...

2019-01-08 14:51:50

阅读数:30

评论数:7

【智能合约系列008-solidity事件】

在介绍事件前,我们先明确事件,日志这两个概念。事件发生后被记录到区块链上成为了日志。总的来说,事件强调功能,一种行为;日志强调存储,内容。 事件是以太坊EVM提供的一种日志基础设施。事件可以用来做操作记录,存储为日志。也可以用来实现一些交互功能,比如通知UI,返回函数调用结果等1。 事件 当...

2019-01-08 14:51:06

阅读数:19

评论数:0

【智能合约系列007-我们来教你如何跳过以太坊的坑】

2018年4月25日上午,火币Pro发布公告,虚拟币SMT项目方反馈25日凌晨发现其交易存在异常问题,经初步排查,SMT的以太坊智能合约存在漏洞。火币Pro也同期检测到TXID为0x0775e55c402281e8ff24cf37d6f2079bf2a768cf7254593287b5f8a0f6...

2019-01-08 14:50:38

阅读数:33

评论数:0

【智能合约系列006-重入攻击(Reentrancy attack)】

solidity漏洞类型学习笔记(一) 以下代码内容皆参考于RICKGRAY师傅之前的文章《以太坊智能合约安全入门了解一下》,在此记录我在复现中发现的一些问题和学习记录。 Reentrancy - 重入 首先我们先参考代码实现一个类似公共钱包的代码, 1 2 3 ...

2019-01-08 14:40:15

阅读数:25

评论数:0

【智能合约系列005-以太坊短地址攻击】

0x00 基础知识 EVM虚拟机在解析合约的字节码时,依赖的是ABI的定义,从而去识别各个字段位于字节码的什么地方。关于ABI,可以阅读这个文档: https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI 一般ERC-20 TOKEN标...

2019-01-08 14:39:41

阅读数:16

评论数:0

【智能合约系列004-以太坊安全之 Parity 第二次安全事件漏洞分析】

Parity 多签钱包的第二次漏洞发生于 2017年11月07日,不同于 17年7月19日那次,本次不是资产被黑客盗走,而是合约底层被破坏,导致资产就在那,但却永远也取不出,就像驾船到太平洋最深处,投下一枚硬币,硬币就在那,但你可能再也无法找到它。        本次漏洞导致约 50万枚以太币被...

2019-01-08 14:38:32

阅读数:19

评论数:0

【智能合约系列003-以太坊安全之 Parity 第一次安全事件漏洞分析】

截止目前,Parity 多重签名钱包共发生过两次安全事件,第一次发生在 2017年07月19日,涉及 Parity 1.5 及以上版本,造成 15万以太币约 3000万美元被盗,第二次发生在 2017年11月07日,致使约 50万枚以太币被锁在合约中无法取出,当时价值大约 1.5亿美元,本篇先对发...

2019-01-08 14:38:03

阅读数:26

评论数:0

【智能合约系列002-TheDAO悲剧重演,SpankChain重入漏洞分析】

前言 在10月8日,区块链项目方SpankChain在medium上发表了一篇文章, 并表明其受到了攻击,导致损失了160多个ETH和一些Token,这次攻击事件,相对来说损失金额是较小的,约4万美元,不过值得一提的是:这次攻击事件的起因与2016年闹得沸沸扬扬的TheDAO事件如出一辙!一共被...

2019-01-08 14:21:26

阅读数:51

评论数:0

【智能合约系列001-美链BeautyChain (BEC) 溢出漏洞分析】

一、Token地址: https://etherscan.io/address/0xc5d105e63711398af9bbff092d4b6769c82f793d 二、BEC智能合约源码 我们不需要看完以下所有代码,重点关注第三节要分析的内容。 pragma solidity ^0.4...

2019-01-08 14:21:16

阅读数:21

评论数:0

【以太坊系列-010】通过truffle以及ganache进行代币功能调试

说明:     环境使用ubuntu1804-desktop版本。 1 truffle以及ganache 1) Truffle   Truffle 是最流行的开发框架,能够在本地编译、部署智能合约,使命是让开发更容易。   Truffle 需要以太坊客户端支持,需要支持标准的JSON R...

2019-01-08 14:20:54

阅读数:27

评论数:0

【以太坊系列-009】在ethereum private chain上进行oraclize的调用操作

说明:      本人使用的是 ubuntu1804-server版本(不要使用live-server,存在缺少部分包。)      在私链中容易遇到问题,本人第一次成功是通过truffle+ethereumjs-testrpc。      私链上不熟悉的人,操作会比较麻烦,容易出问题,并且文档...

2018-11-27 19:04:48

阅读数:112

评论数:0

【以太坊系列-008】oraclize介绍

Introduction Oracle service builds the bridge between blockchain and the real world, and we are going to introduce an oracle service called Oraclize...

2018-11-27 18:54:16

阅读数:98

评论数:0

【以太坊系列-007】solidity一些函数修饰说明

solidity一些函数修饰说明 一、函数可见性分析 public - 任意访问 private - 仅当前合约内 internal - 仅当前合约及所继承的合约 external - 仅外部访问(在内部也只能用外部访问方式访问) 二、函数的限制访问 在Solidity中constant、...

2018-11-27 17:18:59

阅读数:21

评论数:0

【以太坊系列-006】ethereum solidity智能合约在geth控制台上的操作(mapping实践)

   说明,本文基于已经部署好的etherum环境,在geth控制台上操作以下命令。文中用到的命令,可以参考该系列的其他文档。 1、解锁账号 > personal.unlockAccount(eth.accounts[0], "lyh001&q...

2018-11-27 17:17:13

阅读数:68

评论数:0

【以太坊系列-005】使用solc编译solidity智能合约,并生产web3deploy格式的代码

说明 本文主要介绍,只通过solc来进行智能合约的部署,更简单的方式是通过remix直接生成。 该场景是用于用户自己修改了solc编译器,remix无法使用的情况。 1、 代码结构 # cat counter.sol pragma solidity ^0.4.20; contract C...

2018-11-17 14:42:55

阅读数:19

评论数:0

【以太坊系列-004】从源码搭建etherum,solidity编译环境

使用ubuntu1804(由ubuntu-18.04.1-server-amd64.iso安装)环境 说明:  本文主要介绍基于ubuntu1804的环境,由源码构建etherum,以及solidity的编译环境。 1, 安装go mkdir -p /home/001_code/001_g...

2018-11-16 17:53:12

阅读数:109

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭