Timelock که از همان ابتدا در معماری اولیه ساتوشی ناکاموتو تعبیه شده بود، امکان زمانبندی دقیق تراکنشها را بر اساس زمان واقعی یا ارتفاع بلاک فراهم میکند. در این مقاله از کیف پول من، ساختار فنی انواع قفلهای زمانی در سطح اسکریپت و تراکنش (مانند nLocktime و CLTV) را به زبانی ساده بررسی میکنیم و نشان میدهیم که این قابلیت چگونه امنیت داراییها را تضمین میکند. با مطالعه ادامه این مطلب، درک خواهید کرد که تایملاک صرفاً یک ابزار محدودکننده نیست، بلکه دقیقاً همان هسته مرکزی است که اجرای قراردادهای هوشمند (Smart Contracts) و کانالهای پرداخت در شبکه لایتنینگ (Lightning Network) را در اکوسیستم بیت کوین امکانپذیر کرده است.
مفهوم قفل زمانی (Timelock) در بیت کوین چیست؟
وقتی وارد دنیای رمزارز میشویم، اولین چیزی که یاد میگیریم این است که ما کنترل کامل و مستقیم روی داراییهای خود داریم. اما گاهی اوقات، داشتن کنترل آنی و لحظهای کافی نیست و ما به یک برنامهریزی زمانی دقیق برای آینده نیاز داریم. اینجا است که شبکهی بیت کوین ابزاری بسیار قدرتمند به نام قفل زمانی را به ما معرفی میکند. این قابلیت به ما اجازه میدهد تا برای داراییهای دیجیتال خود شرط زمان تعیین کنیم. در این بخش، این مفهوم جذاب را از پایه بررسی میکنیم تا دقیقا متوجه شوید که این سیستم چگونه امنیت و انعطافپذیری را برای سرمایهی شما به همراه میآورد.
تعریف تایملاک به زبان ساده برای کاربران تازهکار
برای درک بهتر قفل زمانی یا همان تایملاک (Timelock)، یک گاوصندوق بانکی را تصور کنید. گاوصندوقهای پیشرفتهی بانکی دارای یک سیستم زمانبندی هستند؛ به این معنی که حتی اگر کلید گاوصندوق را داشته باشید و رمز عبور را هم به درستی وارد کنید، در گاوصندوق تا زمانی که به ساعت مقرر نرسیده باشد، باز نخواهد شد.
قفل زمانی در شبکهی بیت کوین دقیقا همین کار را برای پول شما انجام میدهد. تایملاک یک ویژگی نرمافزاری و قطعه کدی است که روی یک تراکنش قرار میگیرد و به شبکهی بلاکچین دستور میدهد که این پول را تا یک زمان مشخص، یا تا زمانی که تعداد مشخصی بلاک جدید ساخته شود، غیرقابل استفاده نگه دارد. به عبارت سادهتر، شما گیرندهی پول و مبلغ را مشخص میکنید، اما یک قفل زمانی روی آن میزنید تا گیرنده نتواند تا تاریخ تعیین شده، آن پول را خرج کند. این ابزار برای ایجاد قراردادهای هوشمند (کدهایی که در صورت رخ دادن یک سری شرایط از پیش تعیین شده، به طور خودکار اجرا میشوند) بسیار حیاتی است.
تاریخچه مختصر: چرا ساتوشی ناکاموتو قفل زمانی را طراحی کرد؟
شاید برایتان جالب باشد که بدانید قفل زمانی یک ایدهی جدید و پس از ساخت بیت کوین نیست. ساتوشی ناکاموتو، خالق ناشناس بیت کوین، از همان روزهای اولیهی راهاندازی این شبکه، قابلیتی به نام انلاکتایم (nLocktime) را در کدهای اصلی بیت کوین قرار داده بود.
هدف اصلی ساتوشی از طراحی این ویژگی، ایجاد راهی برای بهروزرسانی تراکنشها پیش از ثبت نهایی آنها در بلاکچین بود. او میخواست شرایطی را فراهم کند که دو نفر بتوانند یک تراکنش را ایجاد کنند، اما قبل از اینکه این تراکنش برای همیشه و به صورت تغییرناپذیر در شبکهی اصلی ثبت شود، بتوانند آن را بین خودشان تغییر دهند و مبالغ را اصلاح کنند. در واقع، ساتوشی با این کار قصد داشت پایههای اولیهی کانالهای پرداخت (مسیرهایی برای انجام چندین تراکنش سریع و ارزان خارج از شبکهی اصلی برای کاهش کارمزد) را بنا کند. هرچند این ایدهی اولیهی ساتوشی در آن زمان کامل نبود و ضعفهای امنیتی داشت، اما پایهای شد تا توسعهدهندگان بعدی بیت کوین، انواع پیشرفتهتری از قفلهای زمانی را برای این شبکه بسازند.
تفاوت یک تراکنش عادی با تراکنش زماندار
برای اینکه تفاوت این دو نوع تراکنش را بهتر متوجه شویم، بیایید مسیر انجام هر کدام را با هم مقایسه کنیم. این مقایسه به سادگی نشان میدهد که اضافه شدن بُعد زمان، چگونه ماهیت انتقال پول در شبکهی بیت کوین را تغییر میدهد. در یک تراکنش عادی، روند کار بسیار مستقیم و بدون وقفه است:
- تایید فوری: به محض اینکه شما دکمهی ارسال را در کیف پول خود میزنید و تراکنش توسط ماینرها تایید میشود، پول به حساب گیرنده منتقل میشود.
- دسترسی آنی: گیرنده میتواند در همان ثانیهای که تراکنش تایید شد، خروجی خرج نشده یا یوتیاکسو (UTXO: پولی که به آدرس شما ارسال شده و اکنون در کیف پول شما برای خرج کردن آماده است) را برای شخص دیگری ارسال کند. در اینجا هیچ مانعی برای خرج کردن سریع وجود ندارد.
اما در یک تراکنش زماندار (تایملاک)، ماجرا متفاوت است:
- محدودیت زمانی: تراکنش ایجاد میشود، اما شبکهی بیت کوین تا زمانی که شرط زمانی تعیین شده به پایان نرسد، آن را به عنوان یک تراکنش قابل خرج شدن نمیپذیرد.
- مسدود شدن دسترسی: گیرنده میتواند ببیند که پول به سمت آدرس او آمده است، اما شبکه به او اجازهی دسترسی و جابجایی آن یوتیاکسو را نمیدهد. تنها زمانی که تاریخ دقیق یا شماره بلاک مشخص شده فرا برسد، قفل شکسته شده و دارایی قابل استفاده میشود.
در حقیقت، تراکنش عادی بر اساس مالکیت لحظهای کار میکند، در حالی که تراکنش زماندار انتقال قطعی مالکیت را به آینده موکول میکند. این تفاوت ساده اما کلیدی، امکانات فوقالعادهای را برای مدیریت سرمایهی دیجیتال در اختیار ما قرار میدهد.

چرا قفل زمانی در شبکه بیت کوین اهمیت حیاتی دارد؟
شاید در نگاه اول، قفل زمانی فقط یک ویژگی ساده برای به تاخیر انداختن انتقال پول به نظر برسد. اما این قابلیت، یکی از مهمترین ستونهای شبکهی بیت کوین است که درهای جدیدی را به روی امکانات پیشرفتهتر باز میکند. بدون این ویژگی، شبکهی بیت کوین تنها به یک دفتر کل ساده برای انتقال و ذخیرهی پول محدود میشد. در این بخش با هم بررسی میکنیم که چرا این قابلیت تا این حد برای امنیت و پیشرفت این سیستم مالی دیجیتال ضروری است.
ارتقای امنیت و محافظت از داراییها در برابر سرقت
امنیت، همیشه اولین دغدغهی سرمایهگذاران است. یکی از کاربردهای بسیار ارزشمند قفل زمانی، ایجاد لایههای امنیتی قدرتمند برای نگهداری طولانیمدت داراییها است. تصور کنید شما مقدار زیادی بیت کوین دارید و میخواهید آنها را برای چند سال آینده پسانداز کنید. با استفاده از این قابلیت، میتوانید شرایطی ایجاد کنید که حتی اگر فردی به کلید خصوصی (Private Key: رمز عبور فوق محرمانهای که برای دسترسی و خرج کردن رمزارزها استفاده میشود) شما دسترسی پیدا کرد، نتواند بلافاصله موجودی شما را خالی کند.
به عنوان مثال، میتوانید سیستمی طراحی کنید که هر تراکنش خروجی، به چند روز زمان برای تایید نهایی نیاز داشته باشد. در این فاصلهی زمانی، اگر متوجه شوید کیف پول شما هک شده است، فرصت کافی دارید تا تراکنش سارق را لغو کنید و دارایی خود را به یک آدرس امن انتقال دهید. وقتی شما در حال مدیریت پورتفوی خود هستید، درک این مکانیزمهای امنیتی در لایههای بلاکچین به شما کمک میکند تا با آرامش و اطمینان بیشتری برای آیندهی سرمایهی خود برنامهریزی کنید.
ایجاد بستر برای قراردادهای هوشمند (Smart Contracts) در بیت کوین
بسیاری از افراد تازهکار تصور میکنند که قراردادهای هوشمند (کدهای برنامهنویسی شدهای که بدون نیاز به واسطه و انسان، توافقات را به صورت خودکار اجرا میکنند) فقط مخصوص شبکههایی مانند اتریوم هستند. اما شبکهی بیت کوین نیز به کمک قفل زمانی، میتواند میزبان قراردادهای هوشمند ساده اما بسیار مستحکم باشد.
برای اینکه یک قرارداد به درستی و عادلانه کار کند، باید بتواند شرایط زمانی را بسنجد. برای نمونه، فرض کنید دو نفر میخواهند پولی را به عنوان ضمانت یک معامله نزد یکدیگر بگذارند. برای اجرای این توافق، شبکه باید بداند که در چه زمانی باید پول را به حساب گیرنده واریز کند یا در صورت عدم انجام تعهدات در زمان مقرر، پول را به صاحب اصلی برگرداند. قفل زمانی دقیقا همان ابزاری است که زمان اجرای دقیق این تعهدات را در کدهای بیت کوین مدیریت میکند و اجازه نمیدهد هیچکس زودتر از موعد، به سرمایهی قفل شده دسترسی پیدا کند.
نقش کلیدی تایملاک در مقیاسپذیری و شبکه لایتنینگ (Lightning Network)
یکی از بزرگترین چالشهای شبکهی بیت کوین، مسئلهی مقیاسپذیری (Scalability: توانایی شبکه برای پردازش تعداد زیادی تراکنش در یک ثانیه بدون کند شدن یا افزایش هزینهها) است. برای حل این مشکل، راهکاری به نام شبکهی لایتنینگ (سیستمی که روی لایهی اصلی شبکهی بیت کوین ساخته شده و امکان تراکنشهای فوری و بسیار ارزان را فراهم میکند) معرفی شد. نکتهی شگفتانگیز این است که شبکهی لایتنینگ بدون وجود قفل زمانی، اصلا نمیتوانست کار کند.
در شبکهی لایتنینگ، دو نفر میتوانند هزاران بار با هم تراکنش داشته باشند بدون اینکه تکتک این تراکنشها در همان لحظه در شبکهی اصلی ثبت شوند. اما در این فضای خارج از شبکهی اصلی، چه چیزی مانع از این میشود که یکی از طرفین تقلب کند و پول طرف مقابل را به سرقت ببرد؟ پاسخ این سوال در دل قفل زمانی نهفته است. روند تامین امنیت با این ویژگی به شکل زیر است:
- اگر یکی از طرفین قصد تقلب و ثبت موجودی قدیمی را داشته باشد، سیستم لایتنینگ به کمک قفل زمانی یک مهلت مشخص (مثلا چند روزه) به طرف مقابل میدهد تا این تقلب را تشخیص دهد.
- در صورت اثبات تقلب در این بازهی زمانی، فرد متقلب جریمه شده و تمام موجودی درگیر او به حساب فردی که قصد فریب دادنش را داشت، واریز میشود.
بنابراین، این زمانبندی دقیق و هوشمندانه است که جلوی کلاهبرداری را میگیرد و اعتماد را در تراکنشهای سریع و ارزان تضمین میکند تا بیت کوین بتواند روزی به عنوان پول پرداختهای روزمره نیز کاربرد داشته باشد.
ساختار و دستهبندی Timelock
حالا که متوجه شدیم قفل زمانی چقدر برای امنیت و پیشرفت شبکهی بیت کوین مهم است، بیایید نگاهی به زیر کاپوت این سیستم بیندازیم. قفلهای زمانی در بیت کوین فقط یک نوع ثابت نیستند؛ بلکه مثل قفلهای مختلفی که در دنیای واقعی داریم (از قفل دیجیتال گرفته تا قفل گاوصندوق)، در شبکهی بیت کوین هم انواع مختلفی از تایملاکها وجود دارد. برای اینکه این سیستم را بهتر بشناسیم، توسعهدهندگان این قفلها را بر اساس سه ویژگی اصلی دستهبندی میکنند: قفل کجای تراکنش نصب میشود؟ هدفگذاری زمانی آن چگونه است؟ و شبکه چگونه این زمان را محاسبه میکند؟
دستهبندی بر اساس مکان اجرای شرط
اولین سوال این است که قفل دقیقا روی چه چیزی قرار میگیرد؟ بر این اساس، دو نوع قفل داریم:
- قفل در سطح تراکنش (Transaction-Level): این نوع قفل مثل یک قفل بزرگ روی دروازهی اصلی یک ساختمان است. وقتی شما یک قفل زمانی در سطح تراکنش تنظیم میکنید، کل آن تراکنش تا زمان مقرر، اصلا توسط شبکهی بیت کوین پذیرفته نمیشود. یعنی این تراکنش حتی وارد ممپول (Mempool: اتاق انتظار یا حافظهی موقتی که تراکنشها قبل از تایید توسط ماینرها در آنجا جمع میشوند) هم نمیشود و ماینرها تا فرا نرسیدن زمان مشخص شده، آن را به طور کامل نادیده میگیرند.
- قفل در سطح اسکریپت (Script-Level): این حالت مثل زمانی است که شما وارد ساختمان شدهاید، اما برای باز کردن یک گاوصندوق خاص در یکی از اتاقها، نیاز به رمز زماندار دارید. در اینجا، خود تراکنش وارد شبکه میشود و تایید میگردد، اما یک شرط یا اسکریپت (Script: کدهای برنامهنویسی بسیار سادهای که شرایط خرج کردن پول را در شبکه تعیین میکنند) روی آن خروجی خاص قرار میگیرد که میگوید: "این بیت کوین مشخص، تا فلان تاریخ قابل خرج کردن نیست."
دستهبندی بر اساس نوع هدفگذاری زمانی
سوال دوم این است که نقطه پایان این قفل چگونه تعیین میشود؟
- زمان مطلق (Absolute Time): زمان مطلق دقیقا شبیه به تعیین یک تاریخ مشخص در تقویم است. مثلا شما به شبکه میگویید: "این قفل باید دقیقا در تاریخ 1 فروردین 1406 باز شود." در این حالت، اصلا مهم نیست که شما تراکنش را امروز ثبت کنید یا ماه آینده؛ تاریخ باز شدن قفل، یک نقطهی ثابت و مشخص در آینده است.
- زمان نسبی (Relative Time): زمان نسبی شبیه به استفاده از یک کرنومتر (تایمر) است. در اینجا شما تاریخ دقیقی را در تقویم مشخص نمیکنید، بلکه یک بازهی زمانی را تعیین میکنید. مثلا میگویید: "این قفل دقیقا 30 روز پس از تایید شدن تراکنش در شبکه، باز شود." در این روش، کرنومتر شبکهی بیت کوین از لحظهای شروع به شمارش میکند که تراکنش شما در بلاکچین ثبت و تایید شود.
دستهبندی بر اساس معیار اندازهگیری
حالا به جذابترین بخش ماجرا میرسیم؛ شبکهی بیت کوین که ساعت مچی ندارد، پس چطور متوجه گذشت زمان میشود؟ برای اندازهگیری زمان، شبکه از دو معیار مختلف استفاده میکند:
- ارتفاع بلاک (Block Height): از آنجایی که در شبکهی بیت کوین تقریبا هر 10 دقیقه یک بلاک (Block: دستهای از تراکنشهای تایید شده که مثل یک حلقهی جدید به زنجیرهی اصلی بلاکچین متصل میشوند) ساخته میشود، شبکه میتواند از تعداد بلاکها به عنوان ساعت داخلی خود استفاده کند. مثلا شما شرط میگذارید که قفل در "بلاک شماره 850,000" باز شود. این روش بسیار دقیق و کاملا هماهنگ با ذات شبکهی بیت کوین است.
- زمان واقعی یا ثانیه (Real Time): در این روش، شما بر اساس زمان واقعی و ساعتهای جهانی (مبتنی بر ثانیه) قفل را تنظیم میکنید. ماینرها برای بررسی این زمان، از ساعت سیستمهای کامپیوتری خود استفاده میکنند. استفاده از این روش برای انسانها راحتتر و قابل فهمتر است (مثل تعیین یک روز خاص در سال)، اما به دلیل اینکه ساعت کامپیوتر ماینرهای مختلف ممکن است کمی با هم اختلاف داشته باشد، دقت آن نسبت به روش ارتفاع بلاک کمی کمتر است.
معرفی انواع قفل زمانی در بیت کوین
اکنون که میدانیم قفلهای زمانی بر اساس مکان و زمان به چند دسته تقسیم میشوند، زمان آن رسیده است که با نامهای تخصصی آنها در شبکهی بیت کوین آشنا شویم. توسعهدهندگان بیت کوین در طول سالها، چهار دستورالعمل یا آپکد (Opcode: کدهای دستوری کوتاه و ساده در زبان برنامهنویسی بیت کوین) مختلف را برای اجرای این قفلها طراحی کردهاند. در این بخش، این چهار نوع قفل را با مثالهای ملموس بررسی میکنیم تا به خوبی متوجه شوید که هر کدام چه وظیفهای بر عهده دارند.
قفل زمانی nLocktime
این نوع قفل، قدیمیترین و پایهایترین شکل قفل زمانی است که توسط خود ساتوشی ناکاموتو در نسخهی اولیهی بیت کوین قرار داده شد. قفل انلاکتایم روی کل تراکنش اعمال میشود و از نوع زمان مطلق است.
برای درک بهتر این قفل، یک چک بانکی مدتدار را تصور کنید. وقتی شما یک چک را برای تاریخ ماه آینده مینویسید، گیرندهی چک نمیتواند همین امروز آن را نقد کند؛ بانک نیز آن چک را تا رسیدن به تاریخ دقیق، در سیستم خود پردازش نخواهد کرد. در شبکهی بیت کوین، وقتی شما از قفل انلاکتایم استفاده میکنید:
- تراکنش شما تا زمانی که به تاریخ یا شماره بلاک مشخص شده نرسد، اصلا توسط ماینر ها معتبر شناخته نمیشود.
- از آنجایی که تراکنش معتبر نیست، وارد شبکهی اصلی نمیشود و فرستنده میتواند قبل از رسیدن به زمان مقرر، همان بیت کوینها را در یک تراکنش عادی دیگر خرج کند (درست مثل اینکه موجودی حساب بانکی خود را قبل از سررسید چک خالی کنید).
- بنابراین، این نوع قفل بیشتر برای زمانبندی پرداختهایی مناسب است که فرستنده میخواهد گزینهی لغو یا تغییر تراکنش را تا آخرین لحظه برای خود حفظ کند.
قفل زمانی nSequence
این قفل نیز مانند نمونهی قبلی روی کل تراکنش اعمال میشود، اما با این تفاوت که بر اساس زمان نسبی کار میکند. کاربرد اولیهی این قفل در روزهای ابتدایی بیت کوین متفاوت بود، اما با بروزرسانیهای بعدی شبکه، به یک کرنومتر دقیق برای تراکنشها تبدیل شد.
تصور کنید یک نرمافزار نصب کردهاید که نسخهی آزمایشی آن دقیقا ۳۰ روز پس از اولین باری که آن را باز میکنید، از کار میافتد. قفل انسیکوئنس هم دقیقا همینطور عمل میکند. این قفل به شبکهی بیت کوین میگوید: "این تراکنش را تا زمانی که مثلا صد بلاک از تایید تراکنش قبلی (پولی که به این حساب واریز شده) نگذشته است، تایید نکن."
این ویژگی برای زمانهایی که یک زنجیره از تراکنشهای پیدرپی داریم و میخواهیم بین تایید هر کدام یک فاصلهی زمانی مشخص وجود داشته باشد، بسیار کاربردی است.
قفل زمانی CLTV یا CheckLockTimeVerify
همانطور که در بخش انلاکتایم اشاره کردیم، فرستنده میتوانست قبل از رسیدن زمان مقرر، پول خود را جای دیگری خرج کند که این موضوع برای قراردادهای هوشمند یک نقطهی ضعف بزرگ بود. برای حل این مشکل، توسعهدهندگان از طریق یک سافت فورک (Soft Fork: بروزرسانی نرمافزاری در شبکهی بلاکچین که با نسخههای قدیمیتر سازگار است و نیازی به تغییر کل شبکه ندارد) قفلی به نام سیالتیوی (CLTV) را معرفی کردند. این قفل در سطح اسکریپت عمل میکند و زمان آن مطلق است. تفاوت بزرگ آن با انلاکتایم این است که اینجا، گیرنده مطمئن است که پول به او میرسد.
به این مثال توجه کنید: فرض کنید به جای چک مدتدار، شما پول نقد را درون یک گاوصندوق کوچک میگذارید، یک قفل دیجیتال زماندار روی آن نصب میکنید که دقیقا در تاریخ ۱ فروردین باز میشود، و گاوصندوق را به گیرنده تحویل میدهید. در این حالت:
- گیرنده صاحب فیزیکی گاوصندوق است (تراکنش در شبکه ثبت شده است).
- فرستنده دیگر نمیتواند پول را پس بگیرد (پول از حساب فرستنده خارج شده است).
- اما گیرنده هم تا تاریخ ۱ فروردین نمیتواند در گاوصندوق را باز کند (قفل اسکریپت اجازه خرج کردن نمیدهد).
- این قابلیت، سیالتیوی را به بهترین ابزار برای ایجاد سیستمهای امانتداری امن و بدون واسطه تبدیل کرده است.
قفل زمانی CSV یا CheckSequenceVerify
قفل سیاسوی (CSV) پیشرفتهترین عضو از خانوادهی قفلهای زمانی است که مانند سیالتیوی در سطح اسکریپت عمل میکند، اما زمان آن نسبی است. سپردههای بانکی مدتدار را در نظر بگیرید؛ شما پولی را در بانک میگذارید و قرارداد میبندید که تا شش ماه پس از زمان واریز، حق برداشت ندارید. در اینجا مهم نیست چه روزی به بانک مراجعه میکنید، مهم این است که از لحظهی واریز باید دقیقا شش ماه بگذرد. قفل سیاسوی دقیقا همین شرط را روی یوتیاکسو (همان پولی که در کیف پول آمادهی خرج شدن است) میگذارد.
بزرگترین و مهمترین کاربرد قفل سیاسوی، در شبکهی لایتنینگ است. وقتی دو نفر یک کانال پرداخت مشترک در لایتنینگ باز میکنند و سپس میخواهند با هم تسویهحساب کنند، شبکهی بیت کوین با استفاده از دستور سیاسوی یک مهلت تاخیر (مثلا ۲۴ ساعته) برای برداشت پول تعیین میکند. این کرنومتر ۲۴ ساعته از لحظهی درخواست بستن کانال شروع به شمارش میکند و به دو طرف فرصت میدهد تا در صورت بروز هرگونه تقلب یا اشتباه، تراکنش را اصلاح کنند. در واقع بدون این قفل، شبکهی لایتنینگ نمیتوانست امنیت کاربران خود را تضمین کند.

کاربردهای واقعی Locktime برای کاربران و توسعهدهندگان
حالا که با بخش فنی ماجرا آشنا شدیم، وقت آن است که بپرسیم این قفلهای پیچیده در دنیای واقعی چه کمکی به ما میکنند؟ قفل زمانی در شبکهی بیت کوین صرفا یک قطعه کد خشک و بیروح نیست؛ بلکه ابزاری است که توسعهدهندگان با استفاده از آن، خدمات مالی جدید، هوشمندانه و بسیار امنی را برای کاربران طراحی میکنند. در ادامه، سه مورد از جذابترین کاربردهای تایملاک را با هم بررسی میکنیم تا ببینید چگونه این ویژگی، نیاز به اعتماد به واسطهها را از بین میبرد.
سپردهگذاری و امانتداری (Escrow Services) بدون نیاز به واسطه
تصور کنید میخواهید از شخصی در یک کشور دیگر یک کالای دیجیتال بخرید. شما به او اعتماد ندارید که اول پول را بفرستید، و او هم اعتماد ندارد که اول کالا را تحویل دهد. در سیستمهای مالی سنتی، برای حل این مشکل از یک واسطهی معتمد (مثل یک شرکت حقوقی یا بانک) به عنوان امانتدار (Escrow: سرویسی که پول یا دارایی را تا زمان انجام کامل تعهدات دو طرف، نزد خود نگه میدارد) استفاده میشود.
اما در شبکهی بیت کوین، به لطف قفل زمانی (به ویژه قفلهای سطح اسکریپت)، دیگر نیازی به پرداخت کارمزد به یک شخص ثالث و اعتماد به او ندارید. شما میتوانید پول را در یک قرارداد هوشمند ساده قفل کنید. این قرارداد به گونهای تنظیم میشود که اگر کالا تا زمان مشخصی تحویل داده شد، پول به حساب فروشنده واریز شود؛ و اگر فروشنده به تعهد خود عمل نکرد، پس از پایان زمان قفل (مثلا بعد از 72 ساعت)، پول به صورت خودکار به کیف پول شما برگردد.
کیف پولهای چندامضایی (Multi-sig Wallets) و مدیریت ارثیهی دیجیتال
کیف پولهای چندامضایی (Multi-sig: کیف پولهایی که برای تایید و انجام تراکنش، به بیش از یک کلید خصوصی یا رمز عبور نیاز دارند) ابزار بسیار خوبی برای افزایش امنیت هستند. برای مثال، شرکای یک کسبوکار یا پلتفرمهای تبادل رمزارز، برای حفظ امنیت داراییهای کاربران از این کیف پولها استفاده میکنند تا هیچکس به تنهایی نتواند پولها را جابجا کند.
اما مشکل اینجاست که اگر یکی از کلیدها برای همیشه گم شود، کل سرمایهی داخل کیف پول قفل میشود! اینجاست که قفل زمانی به عنوان یک مسیر نجات عمل میکند. کاربران میتوانند یک تراکنش بازگشتی با قفل زمانی (مثلا یک ساله) تنظیم کنند. به این معنی که اگر تا یک سال هیچ تراکنشی با این کیف پول انجام نشد (که نشاندهندهی مفقود شدن کلیدهاست)، موجودی آن به یک آدرس امن دیگر که کلید آن در دسترس است، منتقل شود.
همچنین از همین روش برای مدیریت ارثیهی دیجیتال استفاده میشود. شما میتوانید بیت کوینهای خود را با یک قفل زمانی ده ساله به آدرس فرزندتان ارسال کنید. در طول این ده سال، سرمایهی شما در شبکهی بلاکچین در امنیت کامل است و فرزندتان تنها پس از رسیدن به زمان مقرر، میتواند به این دارایی ارزشمند دسترسی پیدا کند.
کانالهای پرداخت دوطرفه (Payment Channels)
همانطور که پیشتر اشاره کردیم، شبکهی اصلی بیت کوین برای انجام خریدهای روزمره و خرد (مثل خرید یک فنجان قهوه) کند و گران است. برای حل این مشکل، تکنولوژی شبکهی لایتنینگ و کانالهای پرداخت دوطرفه ایجاد شدند. این کانالها مثل یک چرتکهی دیجیتال بین شما و فروشگاه عمل میکنند؛ شما میتوانید هزاران بار در ثانیه و بدون کارمزد با هم تسویهحساب کنید و در نهایت، فقط نتیجهی نهایی را در شبکهی اصلی بیت کوین ثبت کنید.
تمام این فرآیند جادویی و سریع، بر پایهی قفلهای زمانی استوار است. قفل زمانی (به خصوص نوع نسبی آن) در این کانالها نقش یک داور و ناظر را بازی میکند. وقتی دو نفر بخواهند کانال را ببندند و حساب خود را تسویه کنند، قفل زمانی یک مهلت کوتاه ایجاد میکند تا اگر یکی از طرفین قصد داشت موجودی قدیمی و دروغین را در شبکه ثبت کند، طرف مقابل زمان کافی برای اثبات تقلب و برداشتن کل موجودی به عنوان جریمه را داشته باشد. این تاخیر هوشمندانه باعث میشود که هیچکس جرات نکند در این کانالهای سریع، سر دیگری کلاه بگذارد.
چالشها و خطرات استفاده از قفل زمانی
هر ابزار قدرتمندی، اگر به درستی استفاده نشود، میتواند خطراتی به همراه داشته باشد. قفل زمانی در شبکهی بیت کوین هم از این قاعده مستثنی نیست. با وجود تمام مزایا و کاربردهای فوقالعادهای که در بخشهای قبلی بررسی کردیم، استفاده از این ویژگی برای کاربران ناآشنا میتواند به قیمت از دست رفتن کل دارایی تمام شود. در این بخش، مهمترین چالشها و ریسکهای استفاده از تایملاک را با هم مرور میکنیم تا با دیدی بازتر به سراغ این تکنولوژی بروید.
خطر از دست رفتن دائمی سرمایه در صورت اشتباه محاسباتی
بزرگترین و ترسناکترین خطر در استفاده از قفل زمانی، اشتباهات انسانی است. شبکهی بلاکچین (Blockchain: دفتر کل توزیع شده و غیرقابل تغییر که تمام تراکنشها در آن ثبت میشوند) کاملا بیرحم است و هیچ پشتیبانی یا مرکزی برای لغو تراکنشهای اشتباه ندارد. وقتی شما یک قرارداد هوشمند با قفل زمانی ایجاد میکنید، شبکه دقیقا همان چیزی را اجرا میکند که شما نوشتهاید، نه آن چیزی که در ذهن داشتهاید!
تصور کنید میخواهید سرمایهی خود را برای مدت یک ماه (مثلا معادل حدود 4320 بلاک) قفل کنید، اما در هنگام وارد کردن دادهها، یک صفر اضافه تایپ میکنید و عدد 43200 ثبت میشود. در این حالت، بیت کوینهای شما به جای یک ماه، برای نزدیک به ده ماه کاملا از دسترس خارج میشوند و هیچ قدرت یا راهکاری در جهان نمیتواند این قفل را زودتر از موعد بشکند. این وضعیت شبیه به این است که پول خود را در یک گاوصندوق بگذارید، تایمر آن را به اشتباه روی صد سال تنظیم کنید و کلید را هم دور بیندازید!
پیچیدگیهای فنی و رابط کاربری نامناسب برای کاربران عادی
مشکل دوم، نبود ابزارهای ساده برای کاربران مبتدی است. در حال حاضر، اکثر کیف پولهای بیت کوین یک دکمهی ساده به نام قفل زمانی ندارند که با زدن آن بتوانید تاریخ تقویم را انتخاب کنید. اجرای دقیق و امن این قفلها معمولا نیازمند دانش برنامهنویسی و کار با خط فرمان یا اسکریپتهای خام بیت کوین است.
نبود یک رابط کاربری (User Interface: محیط گرافیکی و دکمههای نرمافزار که کار را برای مخاطب راحت میکنند) مناسب باعث میشود که استفاده از تایملاک برای عموم افراد بسیار پیچیده و پرریسک باشد. یک کاربر عادی ممکن است در نوشتن کدهای اسکریپت دچار یک اشتباه کوچک شود و همین اشتباه باعث شود که شرط باز شدن قفل هرگز محقق نشود و سرمایه برای همیشه در شبکهی بیت کوین سرگردان بماند.
تاثیر نوسانات شدید قیمت بیت کوین در طول دوره قفل بودن دارایی
بازار رمزارزها به شدت پرنوسان است. این یعنی قیمت بیت کوین میتواند در عرض چند روز یا چند هفته به شدت بالا برود یا سقوط کند. وقتی شما دارایی خود را با استفاده از قفل زمانی مسدود میکنید، در واقع قدرت واکنش نشان دادن به این نوسانات بازار (Volatility: تغییرات شدید و سریع قیمت یک دارایی در یک دورهی کوتاه) را از خود میگیرید.
فرض کنید بیت کوینهای خود را برای شش ماه قفل کردهاید. اگر در ماه سوم بازار دچار یک ریزش شدید و تاریخی شود، شما نمیتوانید برای جلوگیری از ضرر بیشتر، به فکر فروش بیت کوین های خود باشید؛ زیرا کیف پول شما اجازهی هیچگونه جابجایی یا فروشی را به شما نمیدهد. حضور در یک تراکنش زماندار در بازار نزولی، درست مثل سوار شدن بر یک ترن هوایی است که تا رسیدن به ایستگاه آخر، حق پیاده شدن از آن را ندارید، حتی اگر شرایط بازار بسیار ترسناک شود. این موضوع نیازمند یک استراتژی سرمایهگذاری بسیار بلندمدت و اعصاب قوی است.

منابع:
Bitcoin.it
Bitmex
Lightspark