首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Ethereum

    《纸上谈兵·solidity》第 41 课:DeFi 实战(5) -- 协议费与治理

    排队(Queue / Timelock):提案通过投票后进入 timelock 阶段(防止闪电升级),在 timelock 到期后可执行。 C. Timelock 被滥用 Timelock 延迟太短或者被治理合约本身控制。缓解:增加多签/分权、设定 guardian、治理代币锁仓、独立 timelock合约。 重点验证 费用流 & Timelock 执行。 operations */ constructor(address _timelock, address _guardian) { timelock = _timelock = guardian || msg.sender == timelock, "not allowed"); timelock = _timelock; }}说明:collect:协议把已批准的

    45210编辑于 2025-09-30
  • 来自专栏Ethereum

    《纸上谈兵·solidity》第 27 课:DAO 治理合约(去中心化自治组织)

    的核心理念:由代币持有人共同治理学习实现 提案(Proposal)+ 投票(Voting)+ 执行(Execution) 流程引入 治理代币(Governance Token),绑定投票权学习 时间锁 Timelock 每个代币 = 1 票提案 Proposal:由用户提交,包含目标地址 + 执行数据投票 Voting:代币持有人按比例投票,投票期内可投执行 Execution:提案通过后,由合约调用目标合约时间锁 Timelock = true; emit Voted(proposalId, msg.sender, support, weight); } /// @notice 投票结果检查,并进入 Timelock 队列 dao.queue(1); // 立即执行应失败(需要 timelock) vm.expectRevert(); dao.execute( CPU time): 1 tests passed, 0 failed, 0 skipped (1 total tests)5、本课总结DAO 合约的基本三步:提案 → 投票 → 执行引入 时间锁(Timelock

    40010编辑于 2025-09-05
  • 来自专栏nft市场

    智能合约安全——溢出漏洞

    首先部署 TimeLock 合约;2. 再部署 Attack 合约并在构造函数中传入 TimeLock 合约的地址;3. 调用 Attack.attack 函数,Attack.attack 又调用 TimeLock.deposit 函数向 TimeLock 合约中存入一个以太(此时这枚以太将被 TimeLock 锁定一周的时间 ),之后 Attack.attack 又调用 TimeLock.increaseLockTime 函数并传入 uint 类型可表示的最大值(2^256 - 1)加 1 再减去当前 TimeLock 合约中记录的锁定时间 = 0 此时我们刚刚存入 TimeLock 合约中的一个以太的锁定时间就变为 0 ;4. TimeLock 合约中存入并锁定的那个以太。

    85530编辑于 2022-07-28
  • 来自专栏luzhiyao

    哈希时间锁(HTLC)

    概述 哈希时间锁(Hashed TimeLock Contract HTLC)是指可以创建特定智能合约的功能,该合约可以修改付款通道。 技术来说 HTLC功能实现了两个用户之间的限时交易。 TimeLock(时间锁):限制资金直到未来的指定时间才能进行支出的功能;在bitcoin中有实现,例如:CheckLockTimeVerify或者CheckSequenceVerify. HTLC可以让Alice通过网络中的其它参与者给Carol转移资金,并且由于转账使用了HashLock与TimeLock功能,所以Bob无法窃取这笔转账资金。

    1.8K10编辑于 2022-09-26
  • 来自专栏网络安全攻防

    SushiSwap协议分析

    :来自Compound的治理功能 UniswapV2:UniswapV2合约,进行了少量修改以迁移合约 Timelock Timelock合约会对智能合约执行的任何更新都有48小时的时间锁定,在函数退出 timelock之后,可以用5个团队多重签名中的3个来执行,下图是SushiSwap合约中timelock的记录信息: https://app.sushi.com/governance ? ::constructor: Delay must exceed minimum delay."); require(delay_ <= MAXIMUM_DELAY, "Timelock ::setDelay: Call must come from Timelock."); require(delay_ >= MINIMUM_DELAY, "Timelock::setDelay ::setDelay: Call must come from Timelock."); require(delay_ >= MINIMUM_DELAY, "Timelock::setDelay

    2.5K41发布于 2021-07-21
  • 来自专栏深入浅出区块链技术

    详解Compound治理

    Compound Votes Timelock App[12] ? Compound Timelock 在 Etherscan 上的合约: COMP token[13] Core Governance Contract[14] Timelock Contract[15] 治理智能合约一瞥 现在让我们详细研究一下治理合约,包括: 核心治理合约(GovernorAlpha.sol) 时间锁合约(Timelock.sol)。

    93140发布于 2021-08-06
  • 来自专栏Linyb极客之路

    并发编程之ReentrantLock

    public class TimeLock implements Runnable{ public static ReentrantLock lock = new ReentrantLock() */ public static void main(String[] args) { TimeLock timeLock = new TimeLock(); Thread t1 = new Thread(timeLock, "线程1"); Thread t2 = new Thread(timeLock, "线程2"); t1.start(

    96270发布于 2018-03-27
  • 来自专栏Ethereum

    《纸上谈兵·solidity》第 34 课:多签钱包(Multisig Wallet)-- 上线

    (审核)是否有 timelock / delay 可选?(建议对大额或 owner 变动加入 timelock)是否有合理的报警/通知机制(邮件/Slack/ops)当有高额提案时? 练习 B(进阶)为合约增加 timelock:当提交某类敏感交易(例如 addOwner、removeOwner、changeRequirement)并达到 confirmations,加入一个延迟(比如

    44110编辑于 2025-09-16
  • 来自专栏深入浅出区块链技术

    如何审查一项治理动作

    治理技术 在 Yield,我们建立了自己的 Timelock,从 Compound 获得灵感,但做了一个关键的改变。 原来的 Timelock 可以存储和延迟单个调用,而我们的 Timelock 可以存储一批(任何数量)调用。 其他协议可能使用不同的合约,但基本过程是相同的:一批函数调用被记录、授权,然后执行。 在我们的 Timelock 中,一个调用是一个目标和代表目标上的调用的调用数据。 实现的代码,以一批函数调用的形式,用propose送入 Timelock。 下一步是由负责的高层职员、多签或 DAO 来审查这个变化,并决定是否授权它,调用approve。 这一步往往是困难的一步,因为从 Timelock 中理解提议的变化是困难的。我们可以通过使用现有的开发工具,为他们提供关于变更性质的详细信息,使这个过程变得更容易。

    64220编辑于 2023-01-09
  • 来自专栏Ethereum

    《纸上谈兵·solidity》第 47 课:DeFi 实战(11) -- 治理代币 & 激励机制(Tokenomics & Governance)

    1、学习目标通过本课你将掌握:治理代币(Governance Token)的设计目标与现实角色;去中心化治理结构(Governor + Timelock + Proposal);流动性激励与收益分配机制 治理执行机制Proposal → Voting → Timelock → Execution;投票通过的提案在延时后由执行合约(TimelockController)调用协议函数;防止紧急攻击或治理闪电贷 Aave/Compound 为例)提案(Proposal):由满足条件(持有一定代币)的用户发起;投票(Voting):代币持有人按持币比例投票;通过阈值(Quorum):达到最低票数或通过率;延时执行(Timelock ):通过后等待 N 天执行;执行(Execution):由 Timelock 合约调用协议合约的修改函数。 + off-chain signal 6、总结通过本课,你可以理解并掌握:治理代币的意义、作用与设计方法;去中心化治理的完整链路(Proposal → Vote → Timelock → Execute

    45910编辑于 2025-10-18
  • 来自专栏亨利笔记

    以太坊智能合约安全漏洞(2):溢出 | 赠书活动

    (请关注公众号:亨利笔记) TimeLock.sol: 该合约旨在像时间保险库一样,用户可以将以太币存入合约,并且锁定至少一周。如果他们选择,用户可以将等待时间延长到1周以上。 为了演示如何在 Solidity 中使用这些库,让我们使用 Open Zepplin 的 SafeMath 库来更正 TimeLock 合约。 TimeLock合约不再执行任何能够执行上溢/下溢的操作。 参考文献: 1. 英文原文: https://blog.sigmaprime.io/solidity-security.html

    1.6K10发布于 2019-04-12
  • 来自专栏深入浅出区块链技术

    每周以太坊进展 2022/10/22

    Cookbook[22]: 探索无代码部署合约 subway-rs[23]: Uniswap v2 夹子机器人,用 Rust 和 Huff 实现 BN254 中的快速 G2 子群检查[24] zk-timelock readme [24] 快速 G2 子群检查: https://ethresear.ch/t/fast-mathbb-g-2-subgroup-check-in-bn254/13974 [25] zk-timelock : https://github.com/timoth-y/zk-timelock#readme [26] 29.2万美元被利用了: https://twitter.com/peckshield/status

    45730编辑于 2022-11-07
  • 日志系统:隐藏在业务代码中的性能刺客

    Windows环境下存在隐性锁,当多个线程频繁调用时,会出现: // 伪代码揭示本质问题void GetSystemTimeWithLock() { EnterCriticalSection(&timeLock ); // 隐藏的全局锁 // 获取时间操作 LeaveCriticalSection(&timeLock);}实测数据显示,在32核服务器上,频繁调用该函数会导致时间获取操作耗时从0.01ms

    37900编辑于 2025-03-30
  • 来自专栏小勇DW3

    通过一个故事理解可重入锁的机制

    public class TimeLock implements Runnable{ public static ReentrantLock lock = new ReentrantLock() */ public static void main(String[] args) { TimeLock timeLock = new TimeLock(); Thread t1 = new Thread(timeLock, "线程1"); Thread t2 = new Thread(timeLock, "线程2"); t1.start(

    1.1K30发布于 2018-08-30
  • 来自专栏云头条

    因 bug 误将 9000 万美元发给用户:现要求如数退还!

    Compound的创始人Robert Leshner敦促误收到这些Compound代币的用户将资产如数归还给该平台的Timelock合约。 如果你因Compound协议错误收到了一大笔数额不正确的COMP,请归还给Compound Timelock(0x6d903f6003cca6255D85CcA4D3B5E5146dC33925)。

    30020编辑于 2022-03-18
  • 来自专栏Python项目实战

    还靠人投票?哥们,链上治理早就可以“无需信任”了!

    权限与合约升级控制推荐结合 OpenZeppelin AccessControl 和 Timelock:任何合约升级、关键操作都需先通过治理投票;配合延时机制(TimeLockController),给社区预留反应时间 举个例子我们以著名的 Uniswap 治理系统 为例:所有投票由 \$UNI 持币人完成,权重按链上余额计算;每个提案会被写入“Governor 合约”;一旦通过,合约会自动调用“Timelock 合约

    22710编辑于 2025-07-30
  • 来自专栏简栈文化

    Java并发编程系列:ReentrantLock

    public class TimeLock implements Runnable { public static ReentrantLock lock = new ReentrantLock( lock.unlock(); } } public static void main(String args[]) { TimeLock t = new TimeLock(); Thread thread1 = new Thread(t,"thread1"); Thread thread2 = new Thread

    38030发布于 2021-11-04
  • 来自专栏陈冠男的游戏人生

    智能合约:Ethernaut题解(五)

    NaughtCoin'; string public constant symbol = '0x0'; uint public constant decimals = 18; uint public timeLock super.transfer(_to, _value); } modifier lockTokens() { if (msg.sender == player) { require(now > timeLock

    95541发布于 2020-05-25
  • 来自专栏Ethereum

    《纸上谈兵·solidity》第 14 课:Solidity 中的可升级合约模式 —— 从代理合约到透明代理、UUPS 与安全陷阱

    严格控制升级权限,禁止不可信代码执行 delegatecall 权限丢失 升级过程中可能被替换成恶意逻辑 使用多签或 Timelock 升级权限保护:多签 + Timelock 防止管理员私自升级。充分测试:用 Foundry 编写升级前后数据一致性测试。

    64910编辑于 2025-08-16
  • 来自专栏Ethereum

    《纸上谈兵·solidity》第 36 课:去中心化交易所(DEX)实战 — 上线

    权限与升级:生产环境中 router/factory/feeTo 等应当由治理(多签)管理;升级合约必须受多签或 timelock 控制。

    31010编辑于 2025-09-20
领券