
L’expiration correspond à l’invalidation d’une action ou d’une autorisation dès que des conditions prédéfinies sont atteintes, telles qu’une limite temporelle, un changement d’état ou une modification de l’environnement réseau. Dans le Web3, l’expiration joue un rôle clé en limitant les autorisations et les risques à des cadres « temporels et conditionnels » précis, ce qui réduit les abus et les attaques par rejeu.
L’expiration s’apparente à la date limite d’un coupon : une fois la période de validité dépassée, les ordres ne peuvent plus être exécutés, les signatures expirées ne permettent plus d’appeler les smart contracts et les autorisations expirées sont rejetées par le contrat. Ce mécanisme limite les usages abusifs et protège vos actifs.
L’expiration d’un ordre est généralement déterminée par des « conditions temporelles et d’exécution ». Les trois stratégies d’ordre les plus courantes sont : GTC, IOC et FOK.
Sur les interfaces de trading spot et dérivés de Gate, les stratégies d’exécution telles que IOC et FOK sont couramment disponibles. Choisir IOC permet à toute portion non exécutée de votre ordre d’expirer instantanément ; choisir FOK évite les exécutions partielles, renforçant la fiabilité de la stratégie.
L’expiration des signatures et des autorisations est généralement gérée via une « date limite » ou une « fenêtre de validité ». De nombreuses DApps incluent un champ « deadline » dans les demandes de signature ; après cette échéance, la signature devient inutilisable.
EIP-2612 est une norme de « permit signature » qui permet d’approuver la dépense de tokens sans transaction on-chain. Elle intègre une date limite : passé ce délai, la signature expire et le contrat rejette toute tentative d’utilisation.
EIP-712 est une norme de signature structurée qui inclut dans la signature des champs essentiels comme l’ID de la chaîne, le domaine du contrat et l’heure d’expiration. Cela empêche les attaques par rejeu entre différents environnements : même copiée, une signature ne peut être utilisée si elle a expiré ou si le contexte ne correspond pas.
Lorsque votre wallet sollicite une signature, vérifiez la présence d’un champ de validité ou de deadline. Plus la validité est longue, plus la fenêtre de risque d’abus est grande ; des fenêtres plus courtes offrent une sécurité renforcée mais exigent une action rapide de votre part.
Les smart contracts appliquent généralement l’expiration en validant les dates limites à l’entrée des fonctions. Une méthode courante consiste à vérifier si le timestamp du bloc courant est inférieur ou égal à la deadline ; sinon, l’appel de fonction échoue et l’action est considérée comme expirée.
Les timestamps des blocs sont définis par les validateurs et peuvent présenter de légères variations. Les contrats prévoient souvent des marges pour éviter les expirations prématurées tout en garantissant qu’aucune action ne soit possible après expiration. Les développeurs ajoutent fréquemment des champs comme « validUntil » dans les structures d’autorisation ou d’ordre pour une validation homogène.
Dans le modèle UTXO de Bitcoin, les scripts temporels définissent également la fenêtre de validité d’une transaction. Par exemple, un script peut imposer que des coins ne soient pas dépensés avant ou après une certaine date : les contraintes temporelles servent ainsi à gérer la validité des transactions.
Le temps on-chain détermine « quand » un élément expire, tandis que le nonce détermine « si » une opération peut être rejouée.
Un nonce agit comme un compteur de transactions : chaque compte doit incrémenter le nonce de ses transactions. Si une nouvelle transaction avec le même nonce est acceptée par le réseau, la précédente est remplacée et retirée des mempools : la transaction précédente est alors considérée comme expirée.
Les timestamps de bloc sont fournis par les producteurs de blocs et ne correspondent pas à des temps réels absolus, mais ils sont essentiels pour déterminer l’expiration. Les contrats s’appuient sur l’heure du bloc pour vérifier l’expiration, évitant ainsi toute dépendance à des horloges externes.
Sur Ethereum et les chaînes compatibles, l’expiration est principalement définie au niveau du contrat et de la DApp, souvent via des champs « deadline » et le « remplacement de nonce » pour des raisons de sécurité. Les autorisations de tokens par défaut n’expirent pas, d’où l’adoption fréquente d’EIP-2612 pour introduire des dates d’expiration.
Sur Bitcoin, les scripts temporels et les mécanismes de verrouillage déterminent la fenêtre de validité des transactions de façon plus fondamentale, précisant quand des coins peuvent être dépensés avant ou après certaines dates.
Sur Solana, les transactions peuvent spécifier une « dernière hauteur de bloc valide » ; passé ce bloc, la transaction devient invalide, offrant ainsi une fenêtre de validité basée sur le temps ou la hauteur de bloc. Sur certaines solutions Layer 2, la logique s’apparente à celle d’Ethereum, l’expiration étant principalement gérée au niveau du contrat et de l’application.
L’expiration génère deux risques principaux : l’expiration prématurée (entraînant l’échec d’une opération) et l’expiration tardive (allongeant la fenêtre d’abus possible).
Faites preuve de vigilance lors des opérations de sécurité sur vos fonds. L’expiration n’élimine pas automatiquement le risque : les autorisations longue durée non expirées nécessitent une gestion active.
Dans l’interface de trading de Gate, votre choix de stratégie d’exécution détermine directement comment les ordres expirent :
Concernant l’expiration des autorisations, si vous interagissez avec des DApps via le portail Web3 ou le wallet de Gate, vérifiez si les autorisations comportent des deadlines. Pour les autorisations illimitées sans date d’expiration, auditez régulièrement et révoquez les permissions inutilisées via la page de gestion des autorisations.
L’obsolescence d’une source de données constitue une autre forme d’« expiration ». Les oracles fournissent généralement des timestamps ; les contrats vérifient si les données reçues sont suffisamment récentes. Dans le cas contraire, les prix sont considérés comme « obsolètes » et les appels sont rejetés : il s’agit d’une expiration au niveau des données.
Fin 2025, les principaux protocoles DeFi renforcent la validation de la fraîcheur des flux de prix et de taux d’intérêt, imposant des mises à jour fréquentes pour limiter les risques en période de forte volatilité. Pour les NFT et métadonnées hébergés sur des serveurs centralisés, les liens rompus font que les applications considèrent le contenu comme expiré : le résultat est identique à une expiration classique.
Au niveau des nœuds, les clients blockchain tendent à ne plus stocker indéfiniment les données historiques. Les données très anciennes peuvent ne plus être accessibles depuis des nœuds standards ; les développeurs doivent recourir à des services d’archive ou à un indexage personnalisé pour éviter toute interruption d’activité liée à l’« expiration » de l’accès aux données.
L’expiration réduit la fenêtre effective pour les ordres, signatures, autorisations et données : il s’agit d’un outil fondamental de sécurité et de gouvernance dans le Web3. En comprenant les limites définies par le temps et l’état, en exploitant les contrôles d’expiration au niveau des contrats et le remplacement de nonce, en combinant stratégies d’ordre sur les plateformes d’échange et gestion des autorisations dans les DApps, vous pouvez concilier efficacité d’exécution et maîtrise des risques d’abus ou de rejeu. Révoquez systématiquement les autorisations longue durée inutilisées, choisissez la validité de vos ordres selon la stratégie, vérifiez explicitement la fraîcheur des données dans les contrats et auditez en continu votre activité : transformez ainsi l’« expiration » d’un risque latent en protection proactive.
Un mode d’expiration décrit la manière précise dont une fonction, un ordre ou une autorisation cesse de fonctionner. Dans le Web3, les modes d’expiration incluent l’expiration basée sur le temps (par exemple, timeout d’un ordre), l’expiration conditionnée par un paramètre (par exemple, variation de prix au-delà des seuils attendus), et l’expiration par révocation (par exemple, annulation manuelle d’une autorisation). Comprendre ces différents modes permet d’éviter des échecs de transaction ou des risques sur les fonds.
Le « blocage » (stalling) désigne le ralentissement ou l’immobilisation d’une transaction ; l’« expiration » signifie qu’une fonction cesse totalement de fonctionner ou devient invalide. L’expiration a un point final net (tel qu’un ordre atteignant sa date d’expiration), tandis que le blocage traduit une dégradation des performances. Un ordre peut finir par expirer à cause d’un blocage, mais ce sont deux notions distinctes.
L’expiration automatique des ordres est une protection intégrée généralement déclenchée par trois facteurs : le temps (fin de la période de validité), les conditions de marché (prix dépassant les seuils définis par l’utilisateur) ou des contraintes de bloc (dépassement d’une hauteur de bloc spécifiée). Ce mécanisme protège vos transactions d’une exécution dans des conditions de marché extrêmes.
L’expiration d’une autorisation et celle d’un ordre sont deux concepts distincts. L’expiration d’une autorisation signifie que votre permission pour qu’un contrat utilise vos fonds a expiré ; l’expiration d’un ordre signifie que votre instruction de trading elle-même est devenue invalide. Une transaction peut être concernée par les deux : l’expiration de l’autorisation empêchera l’exécution même si l’ordre est valide ; l’expiration de l’ordre empêchera le remplissage même si l’autorisation subsiste.
Pour déterminer si un ordre a expiré :
Si votre ordre a expiré, vous devrez en créer un nouveau pour poursuivre votre trading.


