TimeLock
یکی از توابع نوآورانه آن بیت کوین معروف به Timelock است.
این ابزاری است که برای ایجاد و تعیین شرایط خاصی که تحت آن تراکنش ها ممکن است اعتبار سنجی شوند، خدمت می کند.
Un timelock to time lock نوعی قرارداد اولیه هوشمند است که به ارتفاع بلوک یا زمان خاصی اشاره دارد،
که ممکن است یک تراکنش خاص توسط ماینرها در بلاک چین گنجانده شود.
به طوری که تا زمانی که این شرایط برآورده شود،
به عنوان نوعی بلوک یا محدودیت مطلق در مصرف بیت کوین های خاص عمل می کند.
قفل زمانی را می توان بر اساس زمان واقعی یا ارتفاع بلوک خاص تنظیم کرد.
بنابراین هنگامی که آن زمان یا آن ارتفاع بلوک در قفل زمانی تعریف شد،
ماینرها میتوانند تراکنش را در هش درخت مرکل وارد کنند و آن را به آخرین بلوک بلاک چین اضافه کنند.
و در این زمان ممکن است معامله تایید شود.
طبقه بندی TimeLocks
توسط خالق آن، ساتوشی ناکاموتو، به نرم افزار اصلی بیت کوین اضافه شد.
آنها در همه تراکنش ها وجود دارند حتی اگر اکثر آنها از این تابع استفاده نکنند،
بنابراین زمان مسدود کردن پیش فرض 0x00000000 (0) یا 0xFFFFFFFF (4294967295) است.
با این حال،
برای آن دسته از تراکنش هایی که در آن قفل زمانی استفاده می شود،
مهم است که بدانید که دارای ۳ ویژگی مهم است.
آنها چیستند: مکان، جهت گیری و معیارها.
locating
همانطور که قبلاً اشاره کردیم، Timelocks را می توان در تراکنش ها پیدا کرد حتی اگر از این ویژگی استفاده نشود.
و همچنین می توان آنها را دراسکریپت ها گنجاند.
هر دو بسیار شبیه هستند،
اما عملکردهای کاملا متفاوتی را انجام می دهند.
در تراکنشها،
قفلهای زمانی به این معنی است که تا زمانی که به زمان مشخصی نرسد یا به ارتفاع بلوک مشخصی نرسد،
نمیتوان آن را تأیید کرد،
اگرچه امضاهای دیجیتال و اسکریپتهای آن ، معتبر هستند.
در حالی که زمان قفل در اسکریپت ها تعیین می کند که آیا یک اسکریپت معتبر است یا خیر.
بنابراین می توان شرایط را در تمام معاملاتی که یک خروج را صرف می کنند ایجاد کرد.
برخلاف مسدود کردن تراکنش ها،
آنها فقط آن تراکنش خاص را محدود می کنند.
از این رو محل قفل های زمانی اهمیت دارد تا بتوانند عملیات مربوطه را انجام دهند.
Orientation
قفل های زمانی مطلق یا نسبی زمانی وجود دارد.
اولی به ما اجازه می دهد تا بلوک را بر اساس زمان مشخصی تعریف کنیم.
بنابراین میتوانیم لحظهای را انتخاب کنیم که بلوک در آن به پایان میرسد.
در حالی که قفل زمان نسبی به ما امکان می دهد زمان مشخصی را تعریف کنیم که از تایید خروج های قبلی باید سپری شود.
هر دو گزینه برای تعریف فواصل زمانی لازم برای پردازش تراکنش توسط شبکه بیت کوین بسیار مفید هستند.
Metric
در بیت کوین دو راه برای اندازه گیری زمان وجود دارد:
شماره بلوک و مهر زمانی.
بنابراین ما می توانیم از هر دو برای ایجاد قفل زمانی استفاده کنیم.
هنگامی که یک قفل زمانی بر اساس یک شماره بلوک ایجاد می شود،
ماینرها باید انتظار داشته باشند که به آن شماره بلوک برسند.
این به منظور تایید و تایید عملیات و گنجاندن آن در یک بلوک جدید.
برعکس،
زمانی که قفل زمانی بر اساس مهر زمانی تنظیم میشود،
ماینرها منتظر میمانند تا زمان تعیینشده در چند ثانیه سپری شود.
به عبارت دیگر زمان مشخصی برای اعتبار بخشیدن به معامله می رسد.
این با علامت زمان یونیکس اندازه گیری می شود.
TimeLockدر Crypto چیست؟
انواع قفل:
امروزه بیت کوین در حال حاضر ۴ راه برای ایجاد قفل یا قفل زمانی دارد.
دو مورد از این ابزارها در سطح تراکنش و دو مورد دیگر در سطح اسکریپت هستند.
بیایید هر یک از آنها را ببینیم.
nLockTime
این یک انسداد زمان مطلق در سطح تراکنش است.
این تنها قفل زمانی است که در نسخه اصلی نرم افزار بیت کوین موجود بود.
زمانی که گرهها با nLockTime مساوی یا بزرگتر از ارتفاع بلوک فعلی،
تراکنشها را مجددا ارسال یا تضعیف نکردند.
بنابراین تراکنش ها تا زمانی که به بلوک ایجاد شده نرسیدند اعتبار سنجی نشدند.
در این قفل ها زمان به صورت اعداد صحیح ۳۲ بیتی بدون علامت بیان می شود.
اگر عدد کمتر از ۵۰۰ میلیون باشد،
به عنوان ارتفاع بلوک تعبیر می شود.
برعکس، اگر بیشتر از ۵۰۰ میلیون باشد،
به عنوان علامت زمان یونیکس در نظر گرفته می شود.
در نسخه ۰.۱.۶ بیت کوین، تفسیر nLockTime به گونه ای تنظیم شد که امکان قفل گذاری مبتنی بر زمان را نیز فراهم کند.
سپس، با شروع بلوک ۳۱۰۰۱،
محدودیتهای nLockTime به عنوان قاعدهای فعال شدند که برای پذیرش بلوک نیز اعمال میشد.
بعداً، در ژوئیه ۲۰۱۶،
قفلهای مبتنی بر زمان تغییر کردند تا به جای مهر زمانی بلوک، بر روی میانگین زمان گذشته کار کنند.
nLockTime می تواند یک تراکنش را تا ۹.۵۰۰ سال با استفاده از اعداد بلوک و ۲.۱۰۶ سال با استفاده از مهرهای زمانی مسدود کند.
و اگرچه هر تراکنش در حال حاضر حاوی تابع nLockTime است،
اما اکثر کیف پولها آن را روی ۰ از پیش تنظیم کردهاند.
این بدان معناست که تراکنشها میتوانند در هر بلوکی از زنجیره اعتبارسنجی شوند.
nSequence
این یک قفل زمانی نسبی در سطح تراکنش است.
این قفل ها در اواسط سال ۲۰۱۶ به سافت فورک ۶۸ BIP وارد شدند.
در آن از اعداد ترتیبی برای ایجاد قفل های زمانی نسبی در سطح تراکنش استفاده می شود.
این به یک ورودی اجازه می دهد تا اولین زمانی را که می تواند به یک بلوک اضافه شود مشخص کند.
بسته به مدت زمانی که خروجی صرف شده توسط آن ورودی در یک بلوک در زنجیره بلوکی گنجانده شد.
هنگام اعمال nSequence چندین شرایط زمانی مختلف را می توان در یک تراکنش تنظیم کرد.
بنابراین،
برای معتبر بودن معامله،
باید همه شرایط وجود داشته باشد.
و اگر این اتفاق نیفتد،
کل معامله رد می شود.
برخلاف nLockTime، nSequences فقط از ۱۸ بیت از مجموع ۳۲ بیت استفاده می کند،
بنابراین ۱۴ بیت برای پیاده سازی های بعدی رزرو شده است.
و از آن ۱۸ بیت در حال استفاده، ۱۶ بیت برای رمزگذاری زمان مسدود شدن در نظر گرفته شده است.
بنابراین قفلهای nSequence به ۶۵.۵۳۵ واحد بلوک محدود میشوند و تنها ۱۸ ساعت در ثانیه است.
CheckLockTimeVerify
همچنین با حروف اول آن به عنوان CLTVI شناخته می شود،
یک زمان مطلق مسدود کننده در سطح اسکریپت.
جزئیات آن در سافت فورک ۶۵ BIP آمده است و در اواخر سال ۲۰۱۵ توسط توسعه دهنده پیتر تاد به شبکه معرفی شد.
این پیشنهاد امکان انجام معامله ای را فراهم می کند که در آن تاریخ خاصی که در آن لازم الاجرا می شود را می توان مشخص کرد (یعنی تاریخی که گیرنده می تواند از وجوه ارسال شده استفاده کند).
یکی از توابع پیشرفته ای که CTLV اجازه می دهد،
تغییر پارامتر احراز هویت یک آدرس چند امضایی است.
به عنوان مثال، اگر یک آدرس چند امضایی با طرح ۲ از ۳ ایجاد شده باشد، CLTV می تواند پارامتر مذکور را تحت معیارهای خاصی به طرح ۱ از ۳ تغییر دهد.
به این ترتیب، فرد می تواند وجوه را تحت شرایط خاص و توافق شده قبلی بازیابی کند.
که به دلیل قابلیت برنامه ریزی پول بیت کوین در تراکنش تعریف می شوند.




