Time-Lock Contract – Référence Technique de Référence
Un pattern de smart contract déterministe qui verrouille des assets ou des données pour une période prédéfinie et les libère automatiquement à l'expiration.
Un Time-Lock Contract est un pattern de smart contract déterministe couramment utilisé dans les applications blockchain, particulièrement en finance décentralisée (DeFi) et dans la gestion de cryptomonnaies. Sa fonction principale est d'imposer une période d'attente avant qu'un asset ou une action spécifique ne puisse être accédé ou exécuté. Typiquement, un time-lock contract détient des fonds ou des données et est programmé avec un timestamp futur ou une block height. Dès que ce moment prédéterminé est atteint, le contract libère automatiquement les assets verrouillés ou active une fonction spécifique, comme le déblocage d'un vesting schedule pour des tokens ou l'autorisation d'un retrait. Ce mécanisme améliore la sécurité en empêchant un accès prématuré et peut être utilisé pour implémenter des fonctionnalités telles que des transactions différées, des périodes de vesting pour la distribution de tokens, ou des services d'escrow. La nature déterministe garantit que la condition de libération est remplie uniquement sur la base du passage du temps ou de la progression des blocs, sans nécessiter d'oracles externes pour l'aspect de suivi du temps, s'appuyant plutôt sur l'horloge interne de la blockchain ou la block height.
graph LR
Center["Time-Lock Contract – Référence Technique de Référence"]:::main
Pre_logic["logic"]:::pre --> Center
click Pre_logic "/terms/logic"
Center --> Child_oracles["oracles"]:::child
click Child_oracles "/terms/oracles"
Center --> Child_smart_contract_security["smart-contract-security"]:::child
click Child_smart_contract_security "/terms/smart-contract-security"
Rel_smart_contracts["smart-contracts"]:::related -.-> Center
click Rel_smart_contracts "/terms/smart-contracts"
Rel_advanced_propulsion_systems["advanced-propulsion-systems"]:::related -.-> Center
click Rel_advanced_propulsion_systems "/terms/advanced-propulsion-systems"
Rel_collateralized_debt_position_cdp["collateralized-debt-position-cdp"]:::related -.-> Center
click Rel_collateralized_debt_position_cdp "/terms/collateralized-debt-position-cdp"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Explique-moi comme si j'avais 5 ans
Un time-lock contract est comme une tirelire numérique avec un minuteur. Vous y mettez votre argent, vous fixez une date, et personne (même pas vous !) ne peut le retirer avant que cette date n'arrive.
🤓 Expert Deep Dive
Time-lock contracts leverage the inherent immutability and deterministic execution of smart contracts. The locking condition is typically implemented using block.timestamp or block.number (for block height) checks within the contract logic. For instance, a require(block.timestamp >= unlockTime) statement prevents execution until the specified time. This pattern is fundamental for secure vesting schedules, preventing rug pulls in token launches, and implementing atomic swaps where both parties must wait for a specific condition. Trade-offs include the potential for front-running if the unlock action is initiated by a transaction that can be observed before it's mined, and the reliance on the blockchain's timestamp accuracy, which can be subject to miner manipulation, although this is generally difficult to exploit significantly for time-locks. The 'Gold Standard Technical Record' designation implies a robust, well-audited, and widely accepted implementation of this pattern.