Skip to main content

قرارداد هَش با محدودیت زمانی چیست؟

قرارداد هَش با محدودیت زمانی (Hashed Timelock Contract – HTLC) نوعی از قرارداد‌های هوشمند است که در کانال‌‌های رمز ارزی به‌منظور حذف ریسک وجود طرف مقابل می‌شود. این قرارداد‌ها امکان پیاده‌سازی تراکنش‌های مقید به زمان را به ما می‌دهند.

برای کسب اطلاعات بیشتر در مورد قرارداد هوشمند می‌توانید از مطلب آموزشی «قرارداد هوشمند چیست؟» دیدن نمایید.

در حالت کاربردی، این بدین معنی است که دریافت‌کنندهٔ یک تراکنش باید انجام پرداخت را از طریق تولید یک  مدرک رمزنگاری شده در بازهٔ زمانی‌ای مشخص اذعان کند. در غیر این صورت، این تراکنش انجام نخواهد شد.

ریز معاملات انجام‌شده بین زنجیره‌های (atomic cross-chain trading) موجود در رمزارزها با استفاده از قرارداد هَش با محدودیت زمانی (HTLC) پیاده‌سازی می‌شوند. شبکه لایتنینگ بیت کوین (bitcoin lightning network، یک پروتکل لایهٔ دوم است که در بالای سطح رمز ارزی با مبنای بلاک چینی کار می‌کند. lightning networkها انواعی دارند که یکی از آن‌ها، بیت کوین لایتنینگ نتورک می‌باشد.) نیز از این قراردادهای قفل زمانی استفاده می‌کنند.

برای کسب اطلاعات بیشتر در مورد شبکه لایتنینگ بیت کوین می‌توانید از مطلب آموزشی «شبکه لایتنینگ بیت کوین» دیدن نمایید.

جزئیات قرارداد هَش با محدودیت زمانی

یک قرارداد هَش با محدودیت زمانی، از عناصر متعددی که از تراکنش‌های رمز ارزی صورت گرفته به‌جا مانده است، استفاده می‌کند. برای مثال، تراکنش‌هایی که با استفاده از یک قرارداد هَش با محدودیت زمانی انجام می‌شوند از امضاهای دیجیتالی زیادی استفاده می‌کنند، که شامل نسخه‌ای خصوصی از کلید عمومی می‌باشد، که از آن به‌منظور تأیید اعتبار تراکنش‌ها استفاده می‌شود. اما دو مورد وجود دارند که باعث متمایز شدن یک قرارداد هَش با محدودیت زمانی نسبت به تراکنش‌های رمز ارزی استاندارد می‌شوند.

قرارداد هَش با محدودیت زمانی چیست؟

مورد اول، قفل هَش (hash lock) است. یک قفل هَش، نسخه‌ای درهم‌آمیخته از کلید‌های رمزنگاری‌شدهٔ تولیدشده توسط انجام‌دهندهٔ تراکنش می‌باشد. از ‌آن به‌منظور شکستن قفل هَش اصلی استفاده می‌شود. در یک قرارداد هَش با محدودیت زمانی، طرف اقدام‌کننده (originator) کلید را می‌سازد و آن را هَش می‌کند. این هَش در یک تصویر (pre-image) ذخیره می‌شود و پس از انجام شدن تراکنش نهایی، به نمایش درخواهد آمد.

دومین عنصر مهم در یک قرارداد هَش با محدودیت زمانی، مبحث قفل زمانی (timelock) می‌باشد. دو قفل زمانی متفاوت به منظور ایجاد محدودیت بر روی قراردادهای تولید شده توسط (HTLC) مورد استفاده قرار می‌گیرند. قفل اول، قفل CheckLockTimeVerify – CLTV می‌باشد. این قفل از پایه زمانی برای قفل و آزاد کردن بیت کوین‌ها استفاده می‌کند. این بدین معنی است که محدودیت‌های زمانی با دقت بالا کُدنویسی شده‌اند و کوین‌ها تنها در زمان و یا تاریخ مشخص و یا بعد از رسیدن حجم بلاک به‌اندازه‌ای خاص، آزاد می‌شوند.

دومین قفل، CheckSequenceVerify – CSV نام دارد. این قفل وابسته به زمان نمی‌باشد. بلکه، از تعداد بلاک‌های ساخته‌شده به‌عنوان یک سنجه به‌منظور ردیابی زمانی که تراکنش نهایی می‌شود، استفاده می‌کند.

برای هدایت یک تراکنش با استفاده از قرارداد هَش با محدودیت زمانی (HTLC)، طرفین علاقه‌مند نیاز دارند که کانال‌هایی با یکدیگر بسازند.

قرارداد هَش با محدودیت زمانی چگونه پیاده‌سازی می‌شوند؟

فرض کنید آلیس قصد دارد تا بیت کوین‌هایش را در مقابل لایت کوین‌های باب معاوضه کند. یک تراکنش معمول با استفاده از قرارداد هَش با محدودیت زمانی (HTLC) بین آن‌ها به‌صورت زیر رخ خواهد داد:

  1. آلیس یک هَش از کلید خصوصی (private key) خود را ساخته و آن‌ را برای باب در بلاک چین لایت کوین می‌فرستد. او همچنین یک pre-image از آن هَش را با ایجاد یک تراکنش صوری (nominal transaction) تولید می‌کند. این pre-image به او در آینده در روند تأیید اعتبار و نهایی کردن تراکنش‌اش کمک خواهد کرد.
  2. باب نیز یک هَش از کلید خود ساخته و آن را برای آلیس ارسال می‌کند. به‌علاوه، او از طریق انجام یک تراکنش صوری با آلیس، یک pre-image می‌سازد.
  3. زمانی که آلیس تراکنش لایت کوینی باب را دریافت کند، آن را با استفاده از کلید اصلی‌ای (original key) که از قبل در pre-image او موجود بود، امضا می‌کند. باب نیز همین کار را در انتها انجام می‌دهد، اما او از کلید شخصی (private key) خود به‌منظور باز کردن قفل تراکنش انجام‌شده توسط آلیس استفاده می‌کند.