治理、DAO 與代幣經濟學

治理時間鎖

治理時間鎖是一段被插入在「提案通過」與「實際執行」之間的強制等待期。投票成功了,行動被排入佇列,接著一個時鐘——通常是一天或數天——必須走完,任何人才能觸發執行。其全部用意,是創造一扇窗口:一段讓社群得以精確讀懂「即將發生什麼」的時間,而若它看來懷有惡意或有缺陷,便能反應——拉響警報、組織反對,或乾脆在變更落地之前先把自己的資金提走。

在技術上,時間鎖本身就是一個合約,它持有協定的特權權力(通常它擁有升級合約與動用金庫的管理權)。治理系統無法直接行動;它只能請求時間鎖把一筆交易排入佇列,後者會記下那個呼叫,連同它最早可被執行的時間戳。在那段延遲走完之前,execute() 會回退。由於被排入的交易自始至終都是公開的,任何人都能檢視確切的 calldata、將它解碼,並核對「文字上被批准的」是否與「實際將執行的」相符——藉此堵住「一份聽來良善的提案藏著一個惡意呼叫」的那道縫隙。

時間鎖是對抗治理攻擊與有缺陷升級的核心防禦,也是使用者的逃生艙:即便一場敵意接管成功了,只要投票與轉帳之間隔著兩天的延遲,它就無法瞬間奪走金庫。其取捨則是反應速度。一道保護使用者的延遲,同時也阻止了協定對真正的緊急狀況迅速反應,這正是為何許多系統會在時間鎖之外,再搭配一個獨立、行動更快的守護者或暫停機制,以應付真正的危機。挑選延遲長度是一種平衡:要長到足以讓使用者退場,又要短到不致使協定癱瘓。

// Compound-style Timelock owns the protocol's admin powers
timelock.queueTransaction(target, value, signature, data, eta); // eta = now + delay (e.g. 2 days)
// ... the queued call is public; anyone can decode and scrutinize it ...
// only after block.timestamp >= eta:
timelock.executeTransaction(target, value, signature, data, eta);

治理只能排隊;執行得耗完延遲,給使用者檢視與退場的時間。

時間鎖並不阻止一份壞提案通過——它阻止的是一份已通過的提案立即執行。它的保護唯有在「延遲期間真的有人在盯著佇列」時才管用;一個無人看守的時間鎖,只是爭取到一段沒人使用的時間。