文章前言 随着区块链技术的不断发展,人们对于它的认识也越来越深刻,而区块链交易机制作为区块链技术的重要组成部分其对于区块链技术的应用和发展具有重要意义,本文将详细介绍区块链交易机制的概念、特点以及其在实际应用中的作用,同时将用以太坊的交易机制为例对区块链交易机制进行刨析,希望能够为读者深入了解区块链技术提供帮助。 基本介绍 交易的本质是数据结构,这些数据结构中含有交易参与者价值转移的相关信息,区块
文章前言 本篇文章主要围绕上篇文章《区块链共识机制深入刨析》中的共识机制内容继续进行分析介绍,上篇我们对ethash下的共识算法进行了介绍,下面我们对clique共识算法进行刨析,同时将介绍几个关于区块链共识算法的共识安全漏洞 源码分析 clique目录结构如下所示: ├─clique │ api.go // RPC方法 │ clique.go
文章前言 区块链是一种分布式数据库技术,已经在金融、物流、医疗等领域得到广泛应用,其中共识机制是确保区块链安全性和可靠性的关键机制之一,共识机制可以确保所有节点对于区块链上的数据和交易的一致性,从而防止双重支付和其他恶意行为,本文将详细介绍区块链共识机制的原理、分类和应用并探讨当前共识机制面临的挑战和未来的发展方向。 基本介绍 区块链共识机制是确保区块链安全性和可靠性的重要机制之一,它通过算法和网
文章前言 朋友在做合约审计时遇到一个有趣的函数safeSendLp,之所以说该函数有趣是因为感觉该函数存在问题,却又觉得该函数业务逻辑正常,主要纠结于调用者身份问题,我们还是遵循前辈们说的"眼里过千遍,不如手里过一遍",在本地对其进行简单调试分析~ 当前场景 safeSendLp函数代码如下所示,该函数使用public修饰,任意用户都可以调用,一共有三个参数,第一个参数为LPToken合约的地址,
重入漏洞 智能合约存在特殊的fallback函数,fallback函数可以处理一些函数调用转账时的异常情况(函数签名不匹配、没有提供数据、没有声明转账函数等)[1]。当一个合约使用call方法转账且代码逻辑顺序是先转账后改变账户状态时,攻击者可以构造恶意的fallback函数展开重入攻击。 重入漏洞的类型有:单函数重入、跨函数重入、跨合约重入。单函数和跨函数重入都发生在同一合约中,区别在于fall
漏洞描述 burnFrom函数的作用是供被授权用户操作授权用户的资产,而在操作授权用户授权的资产时需要同步更新授权用户的资产数量,即销毁授权用户特定数量的资产,同时需要更新代币总量以及授权转账的额度,同时burnFrom函数应该具备溢出检查逻辑设计或者使用SafeMath函数进行溢出防御,而不少合约中缺乏allowance更新操作,甚至存在下溢问题、特权后门等。 漏洞示例 下图所示burnfrom
文章前言 本篇文章将通过对LightXXX合约内transfeFrom授权转账函数中的allowance不一致性检查问题和CountryXXX合约内transfeFrom授权转账函数中的balance不一致性问题对智能合约中的"不一致性检查"问题进行深入分析介绍,并以此来探究智能合约中值得关注的业务逻辑设计安全问题 漏洞原理 allowed不一致 漏洞介绍:如下面代码所示,用于检查授权额度的条件语
0x01 前言 智能合约的重入漏洞是一个非常经典的漏洞,其产生了非常严重的后果,诸如以太坊分叉等。本文将深入分析其产生的原因和预防机制。 0x02 预备知识 合约地址与外部地址的异同 外部账户 EOA 由私钥控制 拥有 ether 余额 可以直接发送交易 不包含相关执行代码 可以与合约进行交互,使其执行其上存储的代码 合约账户 无法使用私钥控制 拥有 ether 余额 通过代码发送交易 含
0x01 漏洞简述 漏洞名称:evilReflex漏洞(call注入攻击) 漏洞危害:攻击者可以通过该漏洞将存在存在evilReflex漏洞的合约中的任意数量的token转移到任意地址 影响范围:多个ERC233标准智能合约 0x02 预备知识 智能合约的外部调用方式-call //使用方式 <address>.call(bytes) //Call消息传递 <address&
0x01 前言 拒绝服务漏洞,简称DOS,是一种旨在破坏正常的服务,使得服务中断或者暂停,导致用户无法访问或者使用服务 同时在智能合约中也可能存在拒绝服务漏洞,使得发生锁币,无法正常竞拍等等现象发生,从而带来恶劣的影响。 0x02 预备知识 本部分简略介绍应该掌握的知识点 Send,Transfer Call,Delegatecall,Callcode 函数修饰关键词 Require,Re
0x01 前言 最近在研究以太坊存储机制,写一篇文章总结一下 0x02 存储机制 每个在以太坊虚拟机(EVM)中运行的智能合约的状态都在链上永久地存储着。这些值存储在一个巨大的数组中,数组的长度为2^256,下标从零开始且每一个数组能够储存32字节(256个比特)长度的值。并且存储是稀疏的,并没有那么密集。 0x03 变量类型 Solidity的数据变量类型分为两类 值类型-value type
事件背景 Cream Finance是建立在智能合约基础上的开放普惠的金融体系。通过以方便快捷的方式在线提供消费贷款,是一个利用流动性挖矿的去中心化借贷和交易平台。 北京时间2020年2月13日,Cream Finance官方推特称出现黑客盗币事件,并表示随后会披露漏洞细节。 随后零时科技安全团队立刻对该安全事件进行复盘分析。 事件分析 通过分析此事件,该次攻击由0x905315602ed9a8
前言 近年来,各个大型CTF(Capture The Flag,中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式)比赛中都有了区块链攻防的身影,而且出现的题目绝大多数都是区块链智能合约攻防。此系列文章我们主要以智能合约攻防为中心,来剖析智能合约攻防的要点,前两篇我们分享了合约反编译,反汇编的基础内容。后续的文章中,我们会继续分享CTF比赛中智能合约常见题型(
前言 近年来,各个大型CTF(Capture The Flag,中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式)比赛中都有了区块链攻防的身影,而且出现的题目绝大多数都是区块链智能合约攻防。此系列文章我们主要以智能合约攻防为中心,来剖析智能合约攻防的要点,前两篇我们分享了合约反编译,反汇编的基础内容。后续的文章中,我们会继续分享CTF比赛中智能合约常见题型(