
《我学区块链》
文章平均质量分 92
探路人
这个作者很懒,什么都没留下…
展开
-
《我学区块链》—— 一、什么是区块链
一、什么是区块链 & 为什么区块链       在比特币如火如荼的席卷全世界以后,笔者本着拓宽知识,拥抱变更的思想也加入了比特币的底层-区块链技术这一体系中,此系列文章就是笔者对这项充满魅力的技术的一些学习记录,及所悟所感,同时也希望能帮助到后来的小伙伴们,让大家少走弯路。 &nbs原创 2018-05-14 12:59:57 · 1390 阅读 · 0 评论 -
《我学区块链》—— 二十三、以太坊安全之短地址漏洞
二十三、以太坊安全之 短地址漏洞1、预备知识 EVM 虚拟机在解析合约的字节码时,依赖的是ABI的定义,从而去识别各个字段位于字节码的什么地方。关于ABI,可以阅读这个文档:https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI 这里以 transfer 方法为例,一般 ERC-20 token 标准的代币都会实现...原创 2018-08-06 16:15:30 · 1149 阅读 · 3 评论 -
《我学区块链》—— 二十四、以太坊安全之 Geth 客户端 DoS 漏洞
二十四、以太坊安全之 Geth客户端DoS漏洞 在 Geth 客户端导致节点崩溃的高危漏洞后,以太坊又因为 EXTCODESIZE 操作码问题,而受到 DDoS 攻击。 这次攻击的现象是,矿工和节点需要花费很长的时间(20~60秒)来处理一些区块。造成攻击的原因是一个 EXTCODESIZE 操作码,它具有相当低的 gas 价格,需要节点从磁盘中读取状态信息。攻击交易调用此操作码的...原创 2018-08-07 14:54:10 · 943 阅读 · 0 评论 -
《我学区块链》—— 二十、以太坊安全之 区块节点漏洞
二十、以太坊安全之 区块节点漏洞 – 以太坊边召开开发者大会边修复       2016年9月18日,以太坊 Devcon2 全球开发者大会召开前的几个小时,以太坊在其博客上发布了一份关于 DoS 安全警报。这次安全警报产生的根源,很大程度上来自于以太坊区块链上 228原创 2018-08-03 15:59:07 · 562 阅读 · 0 评论 -
《我学区块链》—— 二十一、以太坊安全之 日食攻击 1、概念讲解
二十一、以太坊安全之 日食攻击 1、概念讲解1、什么是日食攻击(Eclipse attack) 日食攻击是通过其他节点实施的网络层面攻击,这种攻击目的是阻止最新的区块信息进入到被攻击的节点,从而隔离节点。2、日食攻击是怎么产生的 其攻击手段为:囤积和霸占受害者的点对点连接时隙(slot,类似时间间隔的意思),将该节点保留在一个隔离的网络中,达到隔离节点的目的。...转载 2018-08-03 16:00:14 · 2395 阅读 · 0 评论 -
《我学区块链》—— 二十二、以太坊安全之 日食攻击 2、重现日食攻击(暂空、占位)
二十二、以太坊安全之 日食攻击 2、攻击重现(暂空、占位) 并非标题党,标题中已指明是 “占位”,因若不这样,以后在阅读文章时点击上一篇、下一篇会连接不上,致使整体顺序变得混乱,为避免耽误大家时间,题目中已标明 “暂空”、“占位”。 鉴于日食攻击所涉及的以太坊底层工作原较全面,所以弄懂、或重现日食攻击,对于理解以太坊整体架构,运行原理有重要意义。例如,假如事件再次发生,可以问问我们的内...原创 2018-08-03 16:01:08 · 633 阅读 · 0 评论 -
《我学区块链》—— 二十五、以太坊安全之 浪子合约漏洞
二十五、以太坊安全之 浪子合约漏洞浪子合约:交易资金因为漏洞返还给所有者、交易者过去发送给以太网的地址,以及特定地址。这种漏洞就像是空手套白狼,买家得到商品,而卖家无法得到加密货币。...原创 2018-10-26 16:04:35 · 871 阅读 · 0 评论 -
《我学区块链》—— 二十六、以太坊安全之 自杀合约漏洞
二十六、以太坊安全之 自杀合约漏洞自杀合约:智能合约的拥有者可以在以太坊发生故障时选择退回,类似于微信中的撤回选项。但是这个指令也可以被其他人执行,使得交易失败。...原创 2018-10-26 16:05:09 · 880 阅读 · 0 评论 -
《我学区块链》—— 二十七、以太坊安全之 贪婪合约漏洞
二十七、以太坊安全之 贪婪合约漏洞贪婪合约:是指那些永远停留在以太坊的智能合约,如 Parity 漏洞正是一种贪婪合约,它会把智能合约所涉及的商品以及加密货币锁定在以太坊中,交易双方均无法得到,也不能取消。...原创 2018-10-26 16:05:44 · 851 阅读 · 0 评论 -
《我学区块链》—— 二十八、以太坊安全之 遗嘱合约漏洞
二十八、以太坊安全之 遗嘱合约漏洞遗嘱合约:在那些已完成或者被关闭的智能合约中,虽然他们的代码和全局变量被清除了,但是其中一部分仍然在继续执行。遗嘱合约和贪婪合约一样,均是由以太坊的错误引起,目前并不能被黑客利用。...原创 2018-10-26 16:06:12 · 888 阅读 · 0 评论 -
《我学区块链》—— 二十九、以太坊安全之 交易顺序依赖漏洞
二十九、以太坊安全之 交易顺序依赖漏洞交易进入未确认的交易池,并可能被矿工无序地包含在区块中,这取决于矿工的交易选择标准,有可能是一些旨在从交易费中获取最大收益的算法,但也可以是其它任何标准。因此,打包在区块中的交易顺序与交易生成的顺序完全不同。因此,合约代码无法对交易顺序作出任何假设。因为交易在记忆池(Mempool)是可见的,其执行是可预测的,所以除了合约执行出现意外结果的情况,还有一个可...原创 2018-10-26 16:06:50 · 2119 阅读 · 1 评论 -
《我学区块链》—— 三十、以太坊安全之 时间戳依赖漏洞
三十、以太坊安全之 时间戳依赖漏洞时间戳(Timestamps)是由矿工生成。因此,合约不应该让关键操作依赖于区块时间戳,例如把时间戳用作一个生成随机数的种子。Consensys 在他们的指导手册中给出了“12分钟规定”,表明如果你依赖时间戳的代码能够处理 12 分钟的误差,那么使用block.timestamp 是安全的。...原创 2018-10-26 16:07:24 · 2514 阅读 · 0 评论 -
《我学区块链》—— 三十一、以太坊安全之 可重入漏洞
三十一、以太坊安全之 可重入漏洞如果一个函数在执行完成前被调用了数次,发生意料不到的行为时,可重入漏洞就可能出现。我们看看下面这个函数,它可以用于从合约中提取调用者的总余额:mapping (address => uint) private balances;function payOut () { require(msg.sender.call.value(balances...原创 2018-10-26 16:08:02 · 1189 阅读 · 0 评论 -
《我学区块链》—— 三十二、以太坊安全之 探矿中心化漏洞
三十二、以太坊安全之 挖矿中心化漏洞下文为翻译自 Jimmy Song 个人博客。1、什么是「挖矿中心化」首先,需要定义一下大家口中的「挖矿中心化」是什么意思。事实上,挖矿中心化有两种不同的解释:矿机的生产大部分都掌握在一家公司手中大部分的哈希算力都被一家公司掌握上述这两种情况是完全不同的。当人们说起挖矿中心化的时候,实际上并没有说清楚到底是指上述哪种情况。所以,分析会分别从上...原创 2018-10-26 16:09:12 · 369 阅读 · 0 评论 -
《我学区块链》—— 三十三、以太坊开发者资源工具集
三十三、以太坊安全之 以太坊开发者资源工具 来源于简书的 Ashton:https://www.jianshu.com/p/3d181c98d8df。 汇集的以太坊开发相关的各种工具、组件、平台与学习资源。大部分内容来自于:https://github.com/ConsenSysLabs/ethereum-deve...原创 2018-10-29 18:32:04 · 804 阅读 · 1 评论 -
《我学区块链》—— 三十四、以太坊智能合约静态安全分析
三十四、以太坊智能合约静态安全分析       以太坊的智能合约代码审计,笔者找到两种方式:一是 CertiK,一个提供智能合约安全服务的区块链平台,是一条公链系统,采用 PoP(proof-of-proof)共识机制,用来分析合约需要消耗该区块链平台的原生数字币;二是使用本地化的静态安全分析工具。本篇将主要介绍本地化的静态安原创 2018-10-29 19:25:40 · 950 阅读 · 0 评论 -
《我学区块链》—— 三十五、智能合约收发 ETH 详解
三十五、智能合约收发 ETH 详解一、合约接收 ETH使用合约接收 ETH,需要在智能合约中定义这个函数 function () payable public {},之后就可以接收ETH了。并在最终需要时调用selfdestruct(owner);杀死合约,取出合约中的所有 ETH 到 owner。pragma solidity ^0.4.24;contract NetkillerCash...原创 2018-10-30 11:15:33 · 1692 阅读 · 0 评论 -
《我学区块链》—— 十九、以太坊安全之 以太坊浏览器Mist漏洞
十九、合约安全之 以太坊浏览器Mist漏洞       2017年12月15日,以太坊基金会发布消息显示,以太坊浏览器 Mist 有可能导致私钥被盗的风险,这一漏洞被定义为非常严重,所有版本的 Mist 都会受到影响,不过其他以太坊钱包并未受到影响。  &原创 2018-08-01 15:25:48 · 373 阅读 · 0 评论 -
《我学区块链》—— 十八、以太坊安全之 call depth 调用深度限制
十八、合约安全之 call depth(调用深度限制)       调用深度(call depth)被限制为 1024。EVM 中一个智能合约可以通过 message call 调用其它智能合约,被调用的智能合约可以继续通过 message call 再调用其它合约,甚至是再调用回来(recursive)。嵌套调用的深度被限原创 2018-08-01 14:07:40 · 882 阅读 · 0 评论 -
《我学区块链》—— 二、一些概念和工具
二、一些概念和工具1、一些概念区块链       区块链是目前大火的比特币的一种底层技术,是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计原创 2018-05-14 13:00:47 · 1833 阅读 · 1 评论 -
《我学区块链》—— 三、以太坊私有网络搭建
三、以太坊私有网络搭建       此次搭建以太坊私链的环境为 Ubuntu 16.04.4,CentOS 上大体相同,需要注意的注意的一点是,由于区块链生态中的相关软件都较新,所以这里推荐操作系统方面也尽可能使用较新的稳定版本。1、安装以太坊客户端sudo add-apt-repository -y ppa:e原创 2018-05-14 13:05:07 · 1140 阅读 · 2 评论 -
《我学区块链》—— 四、Geth客户端的一些命令
四、Geth客户端的一些命令1、进入 Geth 控制台       在前一篇中我们提到,可以用下面的命令来建立一个新的私有链,现在来对其做一些解释:geth --datadir "./" --nodiscover console 2>&原创 2018-05-14 13:07:21 · 1898 阅读 · 0 评论 -
《我学区块链》—— 五、Remix简单使用
五、Remix简单使用       目前以太坊智能合约的编辑器主要有在线的 http://remix.原创 2018-05-14 13:08:42 · 3260 阅读 · 0 评论 -
《我学区块链》—— 六、Mist、Ethereum-Wallet 安装和交易
6、Mist、Ethereum-Wallet安装和交易1、安装 Ethereum-Wallet       Mist 是以太坊官方提供的以太坊浏览器,是因为其除了可以用于账户及以太币操作之外,还可浏览当前以太坊网络算力,已挖掘区块数,账户数,还可输入地址,访问 web 页面。Mist 与 Ethereum-Walle原创 2018-05-14 13:10:00 · 3399 阅读 · 0 评论 -
《我学区块链》—— 七、Ethereum-Wallet 合约部署
7、Ethereum-Wallet合约部署1、Ethereum-Wallet 部署合约       在 Ethereum-Wallet 主界面中点击 Contracts,可以进入到合约管理界面,点击 Deploy New Contract 可以部署一个新合约。原创 2018-05-14 13:11:12 · 1631 阅读 · 1 评论 -
《我学区块链》—— 八、用区块链投票
八、用区块链投票       在该系列文章的最开始部分我们说过,区块链是一种去中心化的数据库。数据库大家都理解,就是用来存数据,而基本上不需要关注存的是什么。即然如此,它的作用就不仅仅是发行代币这一种用法。这次,我们就来做一个用区块链投票的应用。我们会编写一个智能合约,转载 2018-05-14 13:12:34 · 2031 阅读 · 5 评论 -
《我学区块链》—— 九、ERC20智能合约
九、ERC20标准1、什么是ERC20       ERC20是以太坊上的一种代币标准,遵循该标准的代币合约,匀可以由一套以太坊代币钱包代码来调用,其带来了良好的兼容性。 &amp原创 2018-05-20 20:43:07 · 999 阅读 · 1 评论 -
《我学区块链》—— 十、以太坊安全之 漏洞清单
十、以太坊合约安全       遵循 ERC2原创 2018-06-15 16:31:49 · 1918 阅读 · 0 评论 -
《我学区块链》—— 十一、以太坊安全之 The DAO 漏洞分析
十一、合约安全之 DAO 漏洞分析       首先,再罗嗦几句 DAO 是什么,DAO 本质上是一个风险投资基金,是一个基于以太坊区块链平台的迄今为止世界上最大的众筹项目。可理解为完全由计算机代码控制运作的类似公司的实体,通过以太坊筹集到的资金会锁定在智能合约中,每个原创 2018-06-15 16:41:35 · 5359 阅读 · 2 评论 -
《我学区块链》—— 十二、以太坊安全之 Parity 第一次安全事件漏洞分析
十二、合约安全之 Parity 第一次漏洞分析       截止目前,Parity 多重签名钱包共发生过两次安全事件,第一次发生在 2017年07月19日,涉原创 2018-06-23 20:22:28 · 1605 阅读 · 4 评论 -
《我学区块链》—— 十三、以太坊安全之 Parity 第二次安全事件漏洞分析
十三、合约安全之 Parity 第二次漏洞分析       Parity 多签钱包的第二次漏洞发生于 2017年11月07日,不同于 17年7月19日那次,本次不是资产被黑客盗走,而是合约底层被破坏,导致资产就在那,但却永远也取不出,就像驾船到太平洋最深处,投下一枚硬币原创 2018-07-16 19:22:14 · 926 阅读 · 0 评论 -
《我学区块链》—— 十四、以太坊安全之 太阳风暴
十四、合约安全之 太阳风暴       2016年6月20日,以太坊用于开发智能合约的静态语言 Solidity,被发现了一个安全漏洞,它可以影响整个以太坊,而不仅仅是 DAO。回顾DAO漏洞    &原创 2018-07-31 11:24:14 · 438 阅读 · 0 评论 -
《我学区块链》—— 十五、以太坊安全之 Solidity 类型漏洞
十五、合约安全之 Solidity 类型漏洞漏洞描述       2016年10月30日,以太坊的智能合约开发语言 Solidity 本身,被发现存在安全漏洞。     &am原创 2018-07-31 14:40:50 · 432 阅读 · 0 评论 -
《我学区块链》—— 十六、以太坊安全之 fallback 函数
十六、合约安全之 fallback 函数       当我们调用某个智能合约时,如果指定的函数找不到,或者根本就没指定调用哪个函数(如向合约发送 ether)时,fallback 函数就会被调用。    &am原创 2018-08-01 14:05:11 · 1469 阅读 · 0 评论 -
《我学区块链》—— 十七、以太坊安全之 recursive 递归调用
十七、合约安全之 recursive(递归调用)       先看下面一段代码:function withdrawBalance() { amountToWithdraw = userBalances[msg.sender]; if (amountToWithdraw > 0)原创 2018-08-01 14:06:27 · 457 阅读 · 0 评论 -
《我学区块链》—— 三十六、以太坊批量转账(空投)节省费用
三十五、智能合约收发 ETH 详解前段时间 fcoin 的空投把 eth 堵得不成样,看见好几个空投竟然是一个个地 transfer转账,但是实际上如果用合约实现批量转账,不管是成功率还是效率都会高很多,还省 gas。整个过程的模型如下:![airdrop-construct](https://img-blog.csdnimg.cn/20181030143518379.png?x-oss-p...原创 2018-10-30 14:36:47 · 4665 阅读 · 2 评论