قفل زمانی در بیت کوین چیست؟
قفل زمانی در بیت کوین چیست؟ بیت کوین هیچ نقص آشکار و قابل مشاهده ای ندارد و به چندین قفل زمانی (Time Lock) مختلف مجهز شده است. قفل زمان به شما امکان می دهد شرایط زمانی را که در آن تراکنش ها معتبر هستند را مشخص کنید. با استفاده از قفل زمانی، میتوانید هماکنون یک تراکنش ایجاد کنید و هزینه تراکنش را در هفته آینده بپردازید، یک دوره انتظار اجباری برای کوین تعیین کنید، قراردادهای هوشمند پیچیدهای ایجاد کنید که چندین تراکنش را در بر میگیرد یا بهطور تصادفی قطعات خود را برای قرنها مسدود میکند.
به تازگی قفل ها به بیت کوین اضافه شده و وارد ساختار تراکنش شده اند. پیشنهادهای بهبود بیت کوین (BIP) شگفت انگیز و دقیق هستند اما آنها به دانش اولیه زیادی نیاز دارند. با ایرانکس همراه باشید تا این موضوع را بیشتر بررسی کنیم.
قفل زمانی در بیت کوین چگونه عمل میکند؟
قفلهای زمانی معمولاً با استفاده از اسکریپت برای تراکنشهای بیت کوین عمل میکنند. به عنوان نمونه یک تراکنش ممکن است اسکریپتی را شامل شود که چنین چیزی میگوید: این وجوه میتوانند تنها پس از بلاک هفتصد هزار خرج شوند. وجوه تا زمانی که بلاک هفتصد هزار پر نشود، نمیتوانند نقل و انتقال پیدا کنند.
قفلهای زمانی برای اهداف مختلفی قابل استفاده هستند از جمله ایجاد قراردادهای هوشمند پیچیدهتر، امکان دادن به اتمیک سواپها و افزایش امنیت در کیف پولهای چندامضایی. آنها انعطافپذیری را به زبان اسکریپت بیت کوین اضافه میکنند که به کاربران امکان میدهد تراکنشهایی را براساس قانونهای خرج کردن براساس زمان یا برقراری و تکمیل شرایط خاصی طراحی کنند.
نحوه کارایی قفل زمانی در بیت کوین
از همان هنگام که فعالیت بیت کوین آغاز میگردد، همگی تراکنشهای ارز دیجیتال در کمترین حالت یک فیلد مخصوص قفل زمانی شده بودند. توجه کنید که تا قبل از پروپوزال بهتر شدن شرایط بیت کوین، فیلدها کاربرد به خصوصی نداشتند. آن گروه از تراکنشهای ارز دیجیتال بیت کوین که Time Lock دارند، ۳ ویژگی منحصر به فرد دارند و آن هم معیار، مکان و گرایش است.
گرایش
قفلهای زمانی از لحاظ زمان یا مطلق یا نسبی هستند. زمان مطلق یعنی که زمان خاصی تعیین میشود که تا نرسیدن تراکنش به این زمان، نامعتبر تلقی میشود. اما زمان نسبی به صورت شمارش معکوس است و تراکنش پس از n ساعت یا روز میتواند تأیید شود.
متریک
در بیت کوین دو راه برای تعیین زمان وجود دارند که عبارتند از شماره بلاک و برچسب زمانی. بنابراین از هردو برای ایجاد قفل زمانی میتوان استفاده کرد. وقتی قفل زمانی براساس شماره بلاک ایجاد شود، ماینرها باید انتظار بکشند تا به آن شماره بلاک برسند. در مقابل اگر قفل زمانی براساس برچسب زمانی تعیین شود، ماینرهاباید صبر کنند تا زمان تعیین شده بگذرد. به بیانی سادهتر زمان معینی باید بگذرد تا تراکنش اعتبارسنجی و تأیید شود.
انواع قفل زمانی در بیت کوین
قفل زمانی nLocktime
قفل nLocktime یک قفل زمان مطلق در سطح تراکنش است. این قفل همچنین تنها قفلی است که بخشی از دیدگاه اولیه ساتوشی ناکاموتو بود. تراکنش یک ساختار داده ساده است که شامل یک نسخه، ورودی، خروجی و چند عنصر دیگر است. قفل زمان nLocktime جزء lock_time خود را دارد. این جزء شماره بلاک یا برچسب زمانی را مشخص می کند. معامله فقط پس از زمان مورد نظر معتبر خواهد بود. تراکنش های ایجاد شده توسط هسته بیت کوین به طور پیش فرض دارای یک جزء lock_time برای بلاک فعلی هستند تا از کاهش کارمزد جلوگیری شود.
قفل زمانی nSequence
قفل زمان nSequence یک قفل زمانی نسبی در سطح تراکنش است. این قفل جزء قدیمی sequence_no هر ورودی را مجدداً هدف قرار می دهد تا تراکنش ها را بر اساس زمان سپری شده تأیید خروجی های قبلی نامعتبر کند. قفل های nSequence در BIP 68 معرفی شدند و در اواسط سال 2016 توسط یک سافت فورک فعال شدند.
اعداد متوالی از ابتدا وجود داشته است اما چون جایگزینی تراکنش هرگز اجرا نشد، بلااستفاده ماندند. برای چندین سال، تمام کاری که این اعداد می توانستند انجام دهند غیرفعال کردن nLocktime بود. اکنون، اعداد ترتیبی برای اعمال قفل های زمانی نسبی در سطح تراکنش استفاده می شوند.
قفل های nSequence به هر ورودی اختصاص داده می شوند و بر اساس خروجی مصرف شده توسط هر ورودی مصرف می شوند. این بدان معنی است که چندین شرایط قفل زمانی مختلف می تواند در یک تراکنش وجود داشته باشد. برای اینکه یک معامله معتبر باشد، باید همه شرایط رعایت شود. اگر حتی یک قفل متوالی شرایط را نداشته باشد، کل معامله رد می شود.
Check Lock Time Verify
در اواخر سال ۲۰۱۵ میلادی و طی سافت فورک BIP65، آپ کد NOP2 به کد تراکنش CheckLockTimeVerify یا همان CLTV تبدیل شد. CLTV در سطح اسکریپت اجرا شده و خروجی تراکنش را تا زمان یا رسیدن به یک ارتفاع بلاک خاص قفل میکند. دو کاربرد اصلی این قفل به شرح زیر است:
- مشخص کردن روزی که تراکنش باید در آن انجام شود.
- تغییر پارامترهای احراز هویت با استفاده از آدرسهای چند امضایی برای بازیابی دارایی.
برای مثال اگر یک آدرس چند امضایی بر پایه ۲ از ۳ امضا ایجاد شده است، CLTV میتواند این پارامتر را در شرایط خاص به ۱ از ۳ امضا تبدیل کند، تا امکان دسترسی به دارایی وجود داشته باشد. البته برای انجام چنین کاری، شرایط لازم باید از قبل توسط هر ۳ امضا پذیرفته شده باشد.
Check Sequence Verify
Check sequence verify یا همان CSV بخشی از سافت فورک BIP68 بود و یک نوع قفل نسبی محسوب میشود. البته CSV صرفا بر اساس تعداد بلاک کار میکند. برای مثال با استفاده از CSV میتوان یک تراکنش را تا زمانی که ۶۵ هزار بلاک بعدی استخراج نشدهاند، قفل کرد. با توجه به میانگین زمان استخراج در شبکه بیت کوین، این قفل نسبی میتواند تراکنش را تقریبا تا ۴۶۰ روز بعدی قفل کند.
قفل زمانی در بیت کوین چیست؟
قفل زمانی قطعهای از کد در قرارداد هوشمندی است که میتواند عملکرد یک برنامه را برای مدت زمان مشخصی قفل کند.
به بیان ساده، قفلهای زمانی نوعی قرارداد اولیه هوشمند هستند که به طور کامل یا جزئی مانع از تأیید یک معامله خاص توسط ماینرها میشوند تا زمانی که شرایط خاصی برآورده شود. مقدار زمان را میتوان با ارتفاع بلاک (block height) یا برچسب زمانی Unix مشخص کرد.
قفلهای زمانی اغلب برای پشتیبانی از قراردادهای هوشمند مسترشف (masterchef) استفاده شده و از اهمیت بسیار زیادی برخوردارند؛ زیرا سطح امنیت بالایی را در برابر راگ پول ارائه میدهند. لازم به ذکر است که TimeLock توسط خالق آن، ساتوشی ناکاموتو، برای اولینبار به نرمافزار اصلی بیت کوین اضافه شد.
نحوه استفاده از قفل زمانی در بیت کوین چگونه است؟
فرض کنید میخواهید روی ارز دیجیتال خاصی سرمایهگذاری کنید. برای اطمینان از اینکه در معرض راگ پولها قرار نگیرید، میتوانید مراحل زیر را دنبال کنید:
- به Coinb.in بروید.
- بر روی گزینه New و سپس Time Locked Address کلیک کنید.
- کلید عمومی آدرس خود را وارد کنید (کلیدی که برای امضای تراکنش نیاز دارید و بتوانید کوینها را خرج کنید).
- تاریخ زمان یا ارتفاع بلاکی را که میخواهید کوینها را آزاد کنید و آنها را خرج کنید، وارد کنید.
- Redeem Script را ارسال و ذخیره کنید (آن را از دست ندهید وگرنه نمیتوانید کوینها خود را در آینده خرج کنید).
- سکههایی را که میخواهید قفل نگهدارید به آدرس تولید شده ارسال کنید.
محدود کردن دسترسی به ارزهای دیجیتال
قفل زمانی در بیتکوین به کاربران این امکان را میدهد که دسترسی به ارزهای دیجیتال خود را به مدت زمان مشخصی محدود کنند. این ویژگی امکان کنترل بیشتر و افزایش امنیت را برای دارندگان ارزهای دیجیتال به ارمغان میآورد.
برای مثال، فرض کنید یک فرد دارای یک کیف پول دیجیتال است و میخواهد دسترسی به این کیف پول را برای مدت زمان معینی محدود کند. او میتواند با استفاده از قفل زمانی، تعیین کند که تا زمانی که یک مدت زمان از زمان ایجاد تراکنش میگذرد، دسترسی به ارزهای دیجیتال ممنوع باشد. این ممکن است در شرایطی مانند افزایش امنیت در برابر دسترسی غیرمجاز یا جلوگیری از تراکنشهای ناخواسته مؤثر باشد.
از این طریق، کاربران میتوانند به طور دقیقتری کنترل کنند که چه زمانی و در چه شرایطی دسترسی به ارزهای دیجیتال آنها ممکن باشد، که این امکان در مواقعی که نیاز به مدیریت امنیت و کنترل دقیق دارند، مورد استفاده قرار میگیرد.