现实世界中的网络都是有带宽限制的,想象一下,一个访问量稳定的网站,突然有人利用某种方式爆发式的将网站的访问量提升,这个时候系统会作何反应?如果系统没有合理的防DOS攻击的方式,这种时候往往会造成服务器瘫痪/崩溃. DOS,即Denial of Service,拒绝服务.造成服务器拒绝服务的攻击被称为DOS攻击.早在区块链之前,互联网世界就存在的一种攻击方式.在智能合约中,往往有一部分函数的执行是依赖于外部调用的结果,这种情况下又没有对外部返回的结果做严格控制,比如外部长期不返回或者返回结果非预期…
首先需要说明的一点是,这个世界上没有绝对安全的技术.在区块链发展的十年里,各种基于区块链的数字货币引发的安全事故层出不穷,这些安全威胁主要来源有三个方面: 自身安全机制的问题,类似智能合约. 生态安全问题,交易所,矿池,网站等等. 使用者安全问题,包括个人账号密码的泄露,被钓鱼等. 作为普通的开发人员或者有一定编程知识的从业人员,我们首先应该确保的是自身安全机制没有问题,当然这个“没有问题”是一个相对的概念.智能合约的安全为什么这么重要,这很大原因在于智能合约编程和传统编程的巨大区别: 智能合约…
讲溢出攻击之前,先给大家讲个故事:2014年的时候,美国的宾夕法尼亚州的某个小镇上发生了一个乌龙事件,征兵系统对一万多名1893年到1897出生的男子发去信函,要求他们注册参军,否则面临罚款和监禁.收到信函的人啼笑皆非,因为这些信函指明的人都是大部分都是他们已故的祖父外祖父.导致这个事件的原因就是“千年虫”. 严格的说“千年虫”属于程序的一个BUG.因为在上个世纪,计算机的存储空间很小,使用人员为了最大化利用计算机的存储空间,规定了在计算机中存储年份的时候使用两位数字来表示,如“1998”年,那…
论文简介 论文标题:ContractFuzzer: Fuzzing Smart Contracts for Vulnerability Detection 论文链接:ContractFuzzer: Fuzzing Smart Contracts for Vulnerability Detection 开源地址:gongbell/ContractFuzzer: The Ethereum Smart Contract Fuzzer for Security Vulnerability Detecti…
合约交易是指买方和卖方根据约定,在未来某一时刻,以指定价格接受某一资产的协议. 合约是买卖双方之间权利义务的表现形式.合约交易是一种金融衍生工具,与现货市场相比,用户通过判断期货合约交易的涨跌,选择买进做多还是卖出做空合约,就能在期货合约交易中获得升跌差收益. NGK即将推出呼叫河马,此项交易通过去中心化合约运行,您可以通过[呼叫河马]转账给合约账户,合约账户将5分钟内将您交易的NGK返还,每一笔能得到官方0.02NGK的返还. 呼叫河马首先不在以太坊上运行,极大避免了市面上的同类攻击,NGK的…
截取两篇文章:第一遍文章说的是智能合约能不能修改的问题: ETC转到ETH地址以及转币进ETH智能合约账户能不能转出来? 第0章 引言 如果ETC充值到了ETH地址上,能找回来吗?答案是不一定. ETH转到别的ETH地址上,也是有可能再也弄不出来的. 第1章 以太坊的两类账户 以太坊有两类账户,外部账户和合约账户. 外部账户是由公钥和私钥组成的.我们绝大多数用户生产的以太坊钱包都属于这一类账户,私钥可以决定这个账户里的币,包括以太坊和ERC20币. 合约账户是由一个地址和对应存储的一些代码组成的…
智能合约开发用solidity编程语言部署在以太坊这个区块链平台,本文提供一个官方实战示例快速入门,用例子深入浅出智能合约开发,体会以太坊构建去中心化可信交易技术魅力.智能合约其实是"执行合约条款的计算机交易协议".区块链上的所有用户都可以看到基于区块链的智能合约. 维基上说智能合约(英语:Smart contract )是一种旨在以信息化方式传播.验证或执行合同的计算机协议.智能合约允许在没有第三方的情况下进行可信交易.这些交易可追踪且不可逆转.智能合约概念于1994年由Nick S…
传送门: 柏链项目学院 第三课 智能合约自动化测试 之前课程回顾 我们之前介绍了go语言调用exec处理命令行,介绍了toml配置文件的处理,以及awk处理文本文件获得ABI信息.我们的代码算是完成了从智能合约到go语言的自动编译,同时也可以自动提取到ABI信息. 具体可以参考: 第一课 go语言与智能合约调用的来龙去脉 第二课 智能合约自动化编译 本节主要工作 go语言模版编程 目标代码生成 目标代码的调用代码生成 配置文件的自动化生成 原有代码优化 想要自动化生成测试代码,首先你要知道目标代…
传送门: 柏链项目学院 第二课 智能合约自动化编译 前期内容回顾 之前我们的介绍的是如何通过solc编译智能合约,并且调用智能合约,本节我们继续实践,将智能合约的代码自动化编译以及abi文件生成搞定. 我们需要掌握什么技能呢? go语言调用命令行 toml配置文件处理 awk工具的使用 go调用命令行 go调用命令行,我们使用exec包 LookPath 可以判断一个可执行程序是否存在 Command 创建一个命令行 cmd.Run() 运行命令行,也可以使用Start()模式,可以去接收管道信…
链接:https://www.jianshu.com/p/90dea623ffdf 简介 本篇文章,将跟大家介绍eos私链的激活.基础智能合约的安装,以及为大家演示转账等基础操作.还没有安装eos私链的同学,可以参考我上篇文章,先搭建好私链. 智能合约 承接上篇文章,我们启动私链 —> 创建公私钥对 —> 创建钱包 —> 将公私钥对导入钱包 —> 创建user账户.有同学会问,我们什么时候能发交易.做一些转账等基本操作?那我们就不得不提出一个新概念—智能合约.简单来说,智能合约是条…