﻿---
title: "時間鎖：延遲交易與治理操作"
description: "時間鎖要求交易或合約操作等待到指定區塊、時間戳或間隔後才能生效。了解延遲由誰強制、到期後會發生什麼，以及哪些繞過路徑會讓它失效。"
image: "https://wiki.fcontext.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://wiki.fcontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 時間鎖：延遲交易與治理操作

> 僅供教育參考，不構成投資建議；投資可能產生損失。

<a id="answer"></a>

## 直接答案

時間鎖是由區塊鏈或智慧合約強制執行的規則：在指定區塊高度、時間戳或經過的時間間隔尚未達到之前，交易、資金支出或管理操作不能成為有效或可執行狀態。它改變的是操作**何時**可以發生，本身並不判斷操作是否正確。

這個術語涵蓋不同機制。交易層時間鎖可以讓代幣在滿足鏈上條件前無法花費，或讓交易保持非最終狀態。治理時間鎖則把已經授權的合約呼叫排入佇列，並要求執行者至少等待一段時間後才能提交。兩者使用的時鐘、狀態變化和故障模式並不相同。

安全價值來自可強制的延遲。在治理中，這段時間可以讓監控者和使用者檢查排隊的呼叫資料、發出警報、透過已授權路徑取消或暫停，或在確有退出管道時離場。如果存在不經過時間鎖就能改變同一系統的特權路徑，這項保護就會失效。

<a id="mechanism"></a>

## 運作原理

1. **機制先定義時鐘。** 門檻可以採用區塊高度、鏈上導出的時間戳，或從先前鏈上事件起計算的時間。這些是協議值，並非對準確現實時間的承諾。
2. **被鎖定的操作綁定到條件。** 絕對時間鎖指定未來的高度或時間；相對時間鎖從某個事件開始計算間隔，例如待花費輸出的確認。治理控制器則記錄已排程操作及其就緒時間。
3. **相應層級強制等待。** 共識規則可以拒絕過早的交易或腳本支出，智慧合約可以拒絕提前的函式呼叫。僅有網頁倒數並不構成時間鎖，因為使用者可以繞過介面。
4. **到期只改變資格，不改變意圖。** 條件滿足後，操作可能變為有效或就緒，但不一定自動廣播或執行。仍需有人提交，而且其他授權與有效性檢查仍然適用。
5. **覆蓋範圍取決於權限。** 在治理場景中，時間鎖必須持有目標合約的所有權或必要角色，所有效果相同的特權路徑也必須延遲。提議者、取消者、執行者和管理員權限決定誰能排程、阻止、執行或重新設定操作。

比特幣體現了交易層的區別。BIP 65 規定 CHECKLOCKTIMEVERIFY，可讓某項輸出在達到絕對區塊高度或時間條件前無法花費。BIP 68 則為符合條件的輸入序列號賦予共識強制的相對時間鎖含義，從待花費輸出的年齡開始計算。這些規則不同於治理合約的操作佇列。

OpenZeppelin 的 TimelockController 展示了治理延遲。提議者以不低於最短延遲的時間排程一個可識別操作；計時結束後，操作從等待變為就緒，隨後仍須由執行者執行。取消和角色管理遵循合約規則，修改最短延遲本身也必須經過時間鎖。

<a id="example"></a>

## 範例

### 排隊的協議升級

DAO 批准升級後，其治理合約把準確的目標位址、轉帳值、呼叫資料、依賴項和鹽值排入時間鎖。監控工具可以在延遲期間比對排隊載荷與提案，並模擬其影響。操作就緒後，由獲授權的執行者提交。

只有時間鎖實際控制升級權限，這項保護才成立。如果另一個所有者、代理管理員、安全委員會或模組能立即安裝同一升級，使用者必須單獨評估該繞過路徑。同樣，只有監控足夠及時，而且提款或遷移能在執行前完成，延遲視窗才有實際價值。

### 延遲交易路徑

腳本可以提供截止時間前的一條支出路徑，以及截止時間後的退款路徑。鏈在驗證支出時強制執行相應條件。達到門檻不會自動移動資金：有資格的一方仍須建構並廣播有效交易，確認也仍取決於費用和區塊打包。

<a id="risks"></a>

## 風險與審查清單

- **權限繞過：** 其他所有者、角色、模組、升級金鑰或緊急路徑可以不等待就執行受保護操作。
- **時鐘或邊界錯誤：** 區塊高度、鏈上時間和經過時間不能互換；差一個單位的假設可能讓支出比預期更早或更晚生效。
- **延遲不足：** 等待期可能短於發現、分析、溝通和回應操作所需的時間。
- **缺少可行退出：** 暫停提款、跨鏈延遲、流動性不足、解除質押或壅塞，可能讓使用者無法在名義視窗內行動。
- **角色失陷或死鎖：** 惡意提議者或管理員可以排入有害呼叫；執行者金鑰遺失或過寬的取消權也會阻塞正當操作。
- **載荷不一致：** 易懂的提案標題不能證明排程中的目標、轉帳值、呼叫資料、依賴項和鹽值實現了投票批准的內容。
- **實作差異：** 到期、取消、批次處理、依賴、開放執行和延遲修改規則會隨合約及版本而不同。
- **鎖定錯誤：** 錯誤的時間戳、高度、序列值、腳本分支或不可用金鑰，可能讓資產無法存取的時間超出預期。

<a id="misconceptions"></a>

## 常見迷思

### 時間鎖到期後會自動執行嗎？

通常不會。到期一般只是讓操作取得執行資格。交易仍需廣播，或由執行者呼叫治理合約。

### 時間鎖能讓治理變得安全嗎？

不能。它提供反應時間，但不會驗證載荷、保護特權金鑰、保證能夠取消，也不確保使用者可以退出。未延遲的平行權限可能使這項控制失效。

### 所有時間鎖都按現實時間計算嗎？

不是。有的使用區塊高度，有的使用鏈上時間戳，還有的計算相對年齡。預期出塊間隔和時間戳都不是準確的交付時間表。

### 交易時間鎖與治理時間鎖可以互換嗎？

不可以。兩者都體現「延遲取得資格」，但共識交易規則、腳本條件與應用層治理佇列保護的是不同操作，必須分別按照各自規範審查。

<a id="related"></a>

## 相關主題

- [治理時間鎖操作](/zh-tw/crypto/governance-timelock-operation/)
- [雜湊時間鎖合約](/zh-tw/crypto/htlc/)
- [智慧合約](/zh-tw/crypto/smart-contract/)
- [DAO](/zh-tw/crypto/dao/)
- [協議緊急暫停](/zh-tw/crypto/protocol-emergency-pause/)

<a id="sources"></a>

## 來源

- [治理 API：TimelockController](https://docs.openzeppelin.com/contracts/5.x/api/governance#TimelockController) - OpenZeppelin 文件（查閱日期：2026-08-21）
- [BIP 65：OP_CHECKLOCKTIMEVERIFY](https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki) - 比特幣改進提案（查閱日期：2026-08-21）
- [BIP 68：使用共識強制序列號的相對時間鎖](https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki) - 比特幣改進提案（查閱日期：2026-08-21）

Source: https://wiki.fcontext.com/zh-tw/crypto/timelock/index.mdx
