首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
3分钟Solidity--智能合约--Web3区块链技术必学
Rockbean
创建于2025-12-01
订阅专栏
3分钟学习Solidity,智能合约,积跬步以至千里。 JS新职业方向
等 4 人订阅
共133篇文章
创建于2025-12-01
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
3分钟Solidity: 11.15 在同一地址部署不同的合约
`sender`是部署者的地址,`nonce`是 `sender`发送的交易数量。如果我们能以某种方式重置 `nonce`,就可以在同一个地址部署不同的合约。
3分钟Solidity: 11.14 绕过合约规模检查
如果一个地址是合约,那么该地址存储的代码大小应该大于0,对吧? 让我们看看如何创建一个`extcodesize`返回代码大小为0的合约。
3分钟Solidity: 11.13 签名重放
在链下签署消息,并通过合约在执行函数前要求该签名是一种实用的技术。同一个签名可被多次用于执行某个函数。如果签名者的本意是仅批准一次交易,这可能会造成危害。
3分钟Solidity: 11.12 区块时间戳
`block.timestamp`可能会被矿工操纵,但有以下限制: - 它不能比其父区块的时间戳更早 - 它不能设定为太远的未来时间
3分钟Solidity: 11.11 抢先交易Front Running
交易在被挖出之前需要一定时间。攻击者可以监视交易池并发送一笔交易,使其在原始交易之前被打包进区块。这种机制可能被滥用,从而按照攻击者的利益重新排序交易。
3分钟Solidity: 11.10 蜜罐
蜜罐是一种用于诱捕黑客的陷阱。通过结合重入攻击和隐藏恶意代码这两种漏洞利用方式,我们可以构建一个能捕获恶意用户的合约。
3分钟Solidity: 11.9 用外部合约隐藏恶意代码
在Solidity中,任何地址都可以被强制转换为特定合约类型,即使该地址上的合约并非目标合约。 这一特性可被利用来隐藏恶意代码。
3分钟Solidity: 11.8 Phishing with tx.origin
如果合约 A 调用 B,B 又调用 C,那么在 C 中 `msg.sender`是 B,而 `tx.origin`是 A。恶意合约可以欺骗合约所有者调用本应仅限所有者调用的函数。
3分钟Solidity: 11.7 拒绝服务
攻击智能合约使其无法使用的方法有很多种。 我们在此介绍的一种攻击方式是通过使发送以太币的功能失败来实现拒绝服务。
3分钟Solidity: 11.6 随机性的来源
`blockhash`和 `block.timestamp`并非可靠的随机性来源。不要使用 `blockhash`和 `block.timestamp`作为随机性的来源
3分钟Solidity: 11.5 Delegatecall
1. `delegatecall`会保留上下文(存储、调用者等)。 2. 调用 `delegatecall`的合约与被调用的合约必须保持相同的存储布局。
3分钟Solidity: 11.4 访问私人数据
智能合约上的所有数据都可以被读取。注意:无法在JVM上使用web3,因此请使用部署在Goerli上的合约
3分钟Solidity: 11.1 重入攻击
假设合约 `A`调用了合约 `B`。重入攻击允许 `B`在 `A`完成执行之前回调 `A`。预防技术 - 确保所有状态变更在调用外部合约之前完成 - 使用防止重入的函数修饰符
3分钟Solidity: 11.3 自毁selfdestruct
合约可以通过调用`selfdestruct`从区块链上删除。 `selfdestruct`会将合约中存储的所有剩余以太币发送到指定地址。恶意合约可以利用 `selfdestruct`强制向任何合约发送
3分钟Solidity: 11.2 算术溢出与下溢
Solidity 中的整数会无提示地发生上溢/下溢,Solidity 0.8 对于溢出/下溢的默认行为是抛出错误。
3分钟Solidity: 10.8 默克尔空投
**Merkle Airdrop 是一种利用 Merkle 树密码学原理,将验证成本转移到链上、将数据存储成本转移到链下的高效空投方案。** 它已成为以太坊上标准、主流的空投方式。
3分钟Solidity: 10.7 汇编二进制幂运算
在 Solidity 中,普通的幂运算可以直接用 ** 运算符,例如 x ** y,但在 内联汇编(Yul)里,需要使用内置的 exp(base, exponent) 指令来实现。
3分钟Solidity: 10.6 时间锁定
`TimeLock`是一种合约,用于发布将在未来执行的交易。 经过最短等待期后,该交易即可执行。 `TimeLock`在DAO中经常被使用。
3分钟Solidity: 10.5 多重委托调用
一个合约对目标智能合约进行 delegatecall 时,会在自己的环境中执行目标合约的逻辑。使用 `delegatecall`通过单笔交易调用多个函数。
3分钟Solidity: 10.4 多重调用
在Solidity中,**多重调用(Multicall)** 允许在一次交易中执行多个合约函数,以提高效率并节省Gas费用。 其主要应用场景包括:批量读取数据, 批量执行操作,节省Gas。
下一页