Timelock में nLockTime, OP_CHECKLOCKTIMEVERIFY (CLTV/BIP65), BIP68 के अनुसार सापेक्ष nSequence और OP_CHECKSEQUENCEVERIFY (CSV/BIP112) शामिल हैं। लेनदेन के फ़ील्ड समय संबंधी वैधता की शर्तें तय करते हैं; Script उनकी सेटिंग अनिवार्य कर सकता है। समय आधारित रूप Median Time Past (MTP) का उपयोग करते हैं, वॉलेट की घड़ी का नहीं। प्रतिबंध पूरा होने से स्वीकृति या पुष्टि की गारंटी नहीं मिलती।
nLockTime और CLTV निरपेक्ष जोड़ी हैं; BIP68 और CSV सापेक्ष जोड़ी हैं। nLockTime एक खास पूरे लेनदेन को सीमित करता है; अकेले यह अलग सेटिंग वाले दूसरे लेनदेन द्वारा UTXO खर्च करने पर रोक नहीं लगाता। चल रही स्क्रिप्ट शाखा में CLTV या CSV खर्च करने वाले लेनदेन के संबंधित फ़ील्ड अनिवार्य करते हैं। किसी दूसरी अनुमत शाखा की शर्तें अलग हो सकती हैं। [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [BIP 68 — Relative lock-time] [BIP 112 — CHECKSEQUENCEVERIFY]
nLockTime एक बिना चिह्न वाला 32-बिट फ़ील्ड है; शून्य निरपेक्ष समय शर्त बंद करता है। यदि सभी इनपुट 0xffffffff मान वाला SEQUENCE_FINAL उपयोग करते हैं, तो अधूरा nLockTime अनदेखा किया जाता है। प्रभावी निरपेक्ष प्रतिबंध के लिए कम से कम एक इनपुट की nSequence अलग होनी चाहिए। मूल्यांकन उस खास लेनदेन का होता है, उसके इनपुट को हमेशा के लिए जमाने का नहीं। [Bitcoin Core v31.0 — Transaction finality] [Bitcoin Core v31.0 — Sequence constants]
LOCKTIME_THRESHOLD का मान 500000000 है। इससे कम nLockTime ब्लॉक ऊँचाई है; बराबर या अधिक मान Unix timestamp है। निरपेक्ष जाँच चालू होने पर nLockTime संभावित ब्लॉक की ऊँचाई या संबंधित MTP से सख्ती से कम होना चाहिए। बराबरी पर्याप्त नहीं है; यह राशि, औसत ऊँचाई या प्रोटोकॉल सक्रिय होने की तारीख नहीं है। [Bitcoin Core v31.0 — Transaction finality] [Bitcoin Core v31.0 — Locktime threshold]
BIP113 समय संबंधी अंतिमता के लिए पिछले ब्लॉक का MTP उपयोग करता है: उस ब्लॉक पर समाप्त होने वाले पिछले 11 ब्लॉकों के timestamps की माध्यिका। यह अंकगणितीय औसत, उपयोगकर्ता का वर्तमान समय या संभावित ब्लॉक का timestamp नहीं है। Bitcoin Core, GetMedianTimePast का उपयोग करता है; कैलेंडर की समय-सीमा तक पहुँच जाना अकेले प्रतिबंध पूरा होने की गारंटी नहीं देता। [BIP 113 — Median time-past]
OP_CHECKLOCKTIMEVERIFY के लिए गैर-ऋणात्मक operand, nLockTime जैसा ही ऊँचाई/समय प्रकार और nLockTime से अधिक न होने वाला operand जरूरी है। संबंधित खर्च इनपुट की nSequence 0xffffffff नहीं हो सकती। Opcode सीधे घड़ी या चेन ऊँचाई नहीं पढ़ता; समय संबंधी वैधता के मूल्यांकन में लेनदेन की सेटिंग अलग से जाँची जाती है। Script की अन्य शर्तें भी जरूरी रहती हैं। [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [Bitcoin Core v31.0 — Script interpreter]
वर्ज़न 2 या उससे ऊपर के लेनदेन में BIP68 उन इनपुट पर सापेक्ष शर्त लगाता है जिनका बिट 31 सेट नहीं है। निचले 16 बिट देरी तय करते हैं; बिट 22 सेट होने पर इकाई 512 सेकंड होती है, अन्यथा ब्लॉक। ब्लॉक देरी खर्च होने वाले आउटपुट की पुष्टि की ऊँचाई से गिनी जाती है। समय देरी उस पुष्टि से पिछले ब्लॉक के MTP से संभावित ब्लॉक के पिछले MTP तक मापी जाती है। यह वॉलेट में लेनदेन बनाने के बाद का समय नहीं है। [BIP 68 — Relative lock-time] [Bitcoin Core v31.0 — Transaction finality]
सक्रिय गैर-ऋणात्मक operand वाला OP_CHECKSEQUENCEVERIFY कम से कम वर्ज़न 2, इनपुट का disable flag बंद, समान देरी प्रकार और पर्याप्त masked nSequence माँगता है। वास्तविक उम्र BIP68 अलग से लागू करता है। CSV विलंबित पुनर्प्राप्ति शाखा की अनुमति देता है। Lightning के to_local आउटपुट में to_self_delay, commitment transaction के मालिक को सीमित करता है; सही revocation key वाला दूसरा पक्ष इस देरी के बिना दंड शाखा उपयोग कर सकता है। [BIP 112 — CHECKSEQUENCEVERIFY] [BOLT 3 — Commitment transaction outputs]
बिट 31, SEQUENCE_LOCKTIME_DISABLE_FLAG है और केवल उस इनपुट के लिए BIP68 की सापेक्ष व्याख्या बंद करता है। 0xfffffffe में यह बिट है, लेकिन वह SEQUENCE_FINAL नहीं है: उससे प्रभावी nLockTime और CLTV संभव हैं। 0xffffffff, final है। disable flag सेट वाला गैर-ऋणात्मक CSV operand, NOP जैसा व्यवहार करता है; लेकिन इनपुट में यह flag सेट हो तो सक्रिय CSV की माँग पूरी नहीं होती। इन दोनों स्थितियों को मिलाना नहीं चाहिए। [BIP 112 — CHECKSEQUENCEVERIFY] [Bitcoin Core v31.0 — Sequence constants]
समय प्रतिबंध पात्रता की शर्त है, भेजने का समय-सारणी तंत्र नहीं। वॉलेट को लेनदेन सहेजना या बनाना, हस्ताक्षर और दूसरे डेटा देना, सभी शर्तें पूरी करना तथा शुल्क और नेटवर्क में प्रसारण की व्यवस्था करनी होती है। स्थानीय नीति और माइनर का चयन भी पुष्टि प्रभावित करते हैं। पुनर्गठन इनपुट की पुष्टि की ऊँचाई और सापेक्ष उम्र बदल सकता है; समय बीतना अपरिवर्तनीय परिणाम की गारंटी नहीं है। [BIP 68 — Relative lock-time] [Bitcoin Core v31.0 — Transaction finality]
Core 31 का decoderawtransaction RPC, version, locktime और हर इनपुट का sequence दिखाता है। CLTV/CSV के लिए वास्तव में प्रयुक्त Script और खर्च होने वाले आउटपुट को जाँचें; केवल decoding वैधता का प्रमाण नहीं है। testmempoolaccept RPC हस्ताक्षरित उम्मीदवार को वर्तमान चेन तथा स्थानीय सर्वसम्मति और नीति जाँचों के अनुसार परखता है, mempool में स्वीकार या प्रसारित नहीं करता। allowed और अस्वीकृति का कारण जाँचें; सफलता भविष्य की पुष्टि का वादा नहीं है। [Bitcoin Core 31.0 — decoderawtransaction RPC] [Bitcoin Core 31.0 — testmempoolaccept RPC] [Bitcoin Core v31.0 — Mempool RPC implementation]
पूरी तस्वीर के लिए इस प्रविष्टि के साथ यह भी पढ़ें CHECKLOCKTIMEVERIFY, CHECKSEQUENCEVERIFY, Lightning Network, Payment Channel, Transaction, Bitcoin Script. इस प्रविष्टि का उल्लेख यहाँ भी है पुष्टिकरण, Bitcoin Script, HTLC, CHECKLOCKTIMEVERIFY.