中級者用語を調べる
タイムロックコントラクトとは
- 執筆
- CRYPTO PORT 編集部
- 公開日
- 更新日
- 読了目安
- 5 分
結論
タイムロックは、決まった変更を予告してから一定時間が経つまで実行できないようにする仕組みです。利用者は待機時間のあいだに内容を確認し、納得できなければ資金を引き上げられます。ただし、待機時間が短ければ気付く前に実行が終わります。
要点
- 変更の予告から実行までに待機時間を設ける
- 利用者が内容を確認して退避する余地を作る
- 待機時間の長さがそのまま保護の強さになる
- 緊急時の対応が遅れるという副作用がある
定義
実行したい処理をいったん予約として登録し、所定の時間が経過するまで実行を拒否するコントラクト。権限者による突然の変更を防ぐ目的で使われる。
管理者権限を持つ仕組みでは、手数料率の変更やコントラクトの差し替えが突然行われうるという不安が残ります。タイムロックは、そうした操作をいったん予約として登録させ、たとえば48時間が経つまで実行できないようにします。
予約はチェーン上に記録されるため、誰でも内容を読めます。監視している人が「この変更は資金の移動を許す内容だ」と指摘すれば、利用者は実行前に資金を引き上げられます。事実上、変更の是非を市場に問う時間を作る仕組みだと言えます。
待機時間の設定は判断が分かれるところです。長くすれば保護は強まりますが、実際に脆弱性が見つかったときの対応も同じだけ遅れます。緊急停止の機能だけタイムロックの対象外にする設計もありますが、その例外部分が新たな権限の集中点になります。
注意点
- · 待機時間が短い設定では、気付いて退避する前に変更が実行される
- · タイムロックの対象外にされた権限があれば、そこは予告なく行使できる
- · 予約内容は公開されるが、自分で見に行かなければ気付けない