교육 목적으로만 제공되며 투자 조언이 아닙니다. 투자로 인해 손실이 발생할 수 있습니다.
바로 답하기
타임록은 지정된 블록 높이, 타임스탬프 또는 경과 기간에 도달할 때까지 거래, 지출 또는 관리 작업이 유효하거나 실행 가능한 상태가 되지 못하게 블록체인이나 스마트 컨트랙트가 강제하는 규칙입니다. 작업을 언제 수행할 수 있는지를 바꿀 뿐, 그 작업이 올바른지는 판단하지 않습니다.
이 용어에는 서로 다른 메커니즘이 포함됩니다. 거래 수준 타임록은 체인 조건이 충족될 때까지 코인을 쓸 수 없게 하거나 거래를 비최종 상태로 유지합니다. 거버넌스 타임록은 이미 승인된 컨트랙트 호출을 대기열에 넣고 실행자가 제출하기 전 최소 지연을 요구합니다. 두 방식은 시계, 상태 전이, 실패 형태가 다릅니다.
보안 가치는 강제되는 지연에서 나옵니다. 거버넌스에서는 감시자와 사용자가 대기 중인 페이로드를 검토하고, 경고하고, 권한 있는 경로로 취소 또는 일시 중지하거나, 실제 이탈 경로가 있을 때 빠져나갈 시간을 얻습니다. 같은 시스템을 타임록 없이 변경할 수 있는 특권 경로가 있으면 이 효과는 사라집니다.
작동 방식
- 메커니즘이 시계를 정의합니다. 기준은 블록 높이, 체인에서 파생된 타임스탬프, 또는 이전 온체인 사건부터 측정한 시간일 수 있습니다. 이는 프로토콜 값이며 정확한 현실 시간을 보장하지 않습니다.
- 잠긴 작업을 조건에 연결합니다. 절대 타임록은 미래 높이나 시간을 지정합니다. 상대 타임록은 지출할 출력의 확인 같은 사건부터 간격을 측정합니다. 거버넌스 컨트롤러는 예약된 작업과 준비 시각을 기록합니다.
- 관련 계층이 대기를 강제합니다. 합의 규칙은 너무 이른 거래나 스크립트 지출을 거부할 수 있고, 스마트 컨트랙트는 조기 함수 호출을 거부할 수 있습니다. 사용자가 인터페이스를 우회할 수 있으므로 웹사이트 카운트다운만으로는 타임록이 아닙니다.
- 만료는 자격만 바꾸며 의도를 바꾸지 않습니다. 조건이 충족되면 작업이 유효 또는 준비 상태가 될 수 있지만 자동으로 전파되거나 실행되는 것은 아닙니다. 누군가 제출해야 하며 다른 권한 및 유효성 검사도 계속 적용됩니다.
- 보호 범위는 권한에 달려 있습니다. 거버넌스에서는 타임록이 대상 컨트랙트의 소유권이나 필요한 역할을 보유하고, 같은 효과를 내는 모든 특권 경로도 지연되어야 합니다. 제안자, 취소자, 실행자, 관리자의 권한이 예약, 중단, 실행, 재설정 주체를 결정합니다.
비트코인은 거래 수준의 차이를 보여 줍니다. BIP 65의 CHECKLOCKTIMEVERIFY는 절대 블록 높이 또는 시간 조건에 도달할 때까지 출력을 쓸 수 없게 할 수 있습니다. BIP 68은 대상 입력의 시퀀스 번호에 합의로 강제되는 상대 타임록 의미를 부여하고, 지출할 출력의 경과 기간부터 측정합니다. 이 규칙은 거버넌스 컨트랙트의 대기열과 다릅니다.
OpenZeppelin의 TimelockController는 거버넌스 지연의 사례입니다. 제안자는 최소 지연 이상의 시간으로 식별 가능한 작업을 예약합니다. 타이머가 만료되면 대기에서 준비 상태로 이동하고, 이후 실행자가 실행해야 합니다. 취소와 역할 관리는 컨트랙트 규칙을 따르며 최소 지연 변경 자체도 타임록을 거쳐야 합니다.
예시
대기열에 넣은 프로토콜 업그레이드
DAO가 업그레이드를 승인하면 거버너는 정확한 대상 주소, 값, 호출 데이터, 의존 작업, 솔트를 타임록에 예약합니다. 감시 도구는 지연 중에 대기 페이로드와 제안을 비교하고 영향을 시뮬레이션할 수 있습니다. 작업이 준비 상태가 되면 권한 있는 실행자가 제출합니다.
타임록이 업그레이드 권한을 실제로 제어할 때만 이 보호가 성립합니다. 별도 소유자, 프록시 관리자, 보안 위원회 또는 모듈이 같은 업그레이드를 즉시 설치할 수 있다면 그 우회 경로를 따로 평가해야 합니다. 또한 감시가 제때 이루어지고 출금이나 이전이 실행 전에 끝날 수 있어야 지연이 실용적입니다.
지연된 거래 경로
스크립트는 기한 전의 지출 경로와 기한 후의 환불 경로를 제공할 수 있습니다. 체인은 지출을 검증할 때 해당 조건을 강제합니다. 기준에 도달해도 자금이 자동으로 움직이지는 않습니다. 자격 있는 당사자가 유효한 거래를 만들고 전파해야 하며, 확인은 수수료와 블록 포함 여부에 달려 있습니다.
위험과 검토 목록
- 권한 우회: 다른 소유자, 역할, 모듈, 업그레이드 키 또는 비상 경로가 기다리지 않고 보호 대상 작업을 수행할 수 있습니다.
- 시계 또는 경계 오류: 블록 높이, 체인 시간, 경과 시간은 서로 바꿀 수 없으며 한 단위의 오해가 예상보다 이르거나 늦은 지출을 만들 수 있습니다.
- 지연 부족: 대기 기간이 작업을 탐지, 분석, 공지하고 대응하는 데 필요한 시간보다 짧을 수 있습니다.
- 실질적 이탈 수단 부재: 출금 중단, 브리지 지연, 유동성 부족, 언본딩 또는 혼잡으로 명목상 기간에 행동하지 못할 수 있습니다.
- 역할 탈취 또는 교착: 악의적 제안자나 관리자는 유해한 호출을 예약할 수 있고, 실행자 키 분실이나 지나치게 넓은 취소권은 정당한 작업을 막을 수 있습니다.
- 페이로드 불일치: 읽기 쉬운 제안 제목은 예약된 대상, 값, 호출 데이터, 의존 작업, 솔트가 투표 승인 내용을 구현한다는 증거가 아닙니다.
- 구현 차이: 만료, 취소, 일괄 처리, 의존 관계, 공개 실행, 지연 변경 규칙은 컨트랙트와 버전에 따라 다릅니다.
- 잠금 설정 오류: 잘못된 타임스탬프, 높이, 시퀀스 값, 스크립트 분기 또는 사용할 수 없는 키가 자산을 예상보다 오래 접근 불가 상태로 만들 수 있습니다.
흔한 오해
타임록은 만료되면 자동으로 실행되나요?
대개 그렇지 않습니다. 만료는 일반적으로 작업에 실행 자격만 부여합니다. 거래는 여전히 전파해야 하고, 거버넌스 컨트랙트는 실행자가 호출해야 합니다.
타임록이 거버넌스를 안전하게 만드나요?
아닙니다. 대응 시간을 만들지만 페이로드 검증, 특권 키 보호, 취소 보장 또는 사용자 이탈을 보장하지 않습니다. 지연되지 않은 병렬 권한이 통제를 무효화할 수 있습니다.
모든 타임록은 현실 시간에 기반하나요?
아닙니다. 일부는 블록 높이, 일부는 체인 타임스탬프, 일부는 상대 경과 기간을 사용합니다. 예상 블록 간격과 타임스탬프는 정확한 실행 일정이 아닙니다.
거래와 거버넌스 타임록은 서로 바꿔 쓸 수 있나요?
아닙니다. 둘 다 자격을 지연시키지만 합의 거래 규칙, 스크립트 조건, 애플리케이션 수준 거버넌스 대기열은 서로 다른 작업을 보호하므로 각 사양에 따라 검토해야 합니다.
관련 주제
출처
- 거버넌스 API: TimelockController - OpenZeppelin 문서 (접근일: 2026-08-21)
- BIP 65: OP_CHECKLOCKTIMEVERIFY - 비트코인 개선 제안 (접근일: 2026-08-21)
- BIP 68: 합의로 강제되는 시퀀스 번호를 이용한 상대 타임록 - 비트코인 개선 제안 (접근일: 2026-08-21)