منشا HTLC
منشاء HTLC ها به نیاز به ایجاد مکانیسم هایی برمی گردد که امکان مقیاس پذیری بیشتر در بیت کوین را فراهم کند.
عجیب است، اولین ایده هایی که منجر به HTLC شد، کاملاً اصلی، کنجکاو و حتی در برخی موارد مشکل ساز هستند.
کانال nSequence ساتوشی ناکاموتو
اولین ایده ای که منجر به HTLC شد از همان ساتوشی ناکاموتو با کانال های به اصطلاح nSequence نشات گرفت.
این نوع کانال های پرداخت با استفاده از OP_CODE nSequence و nLockTime ایجاد می شوند.
به این ترتیب، میتوان سیستمی ایجاد کرد که در آن کاربر میتواند تراکنشی با مقدار nLockTime (قفل زمانی) و nSequence (مقداری که امکان جایگزینی تراکنش با دیگری را فراهم میکند) ارسال کند.
به این ترتیب کاربر می تواند مقدار مشخصی خرید و پرداخت «آنی» انجام دهد.
سپس آنها به تراکنش نهایی اضافه می شوند که جایگزین تراکنش اولیه قبل از بسته شدن nLockTime اولیه و nSequence می شود.
به این ترتیب تراکنش جدید تمام هزینه های خریدهای انجام شده در همان عملیات را پرداخت می کرد.
این امکان پذیر است زیرا:
اگر این مقدار با مقدار هگزادسیمال 0xFFFFFFFF علامت گذاری نشده بود، nSequence ها به گونه ای طراحی شدند که امکان جایگزینی تراکنش ها در mempool را فراهم کنند، زیرا اگر با آن مقدار علامت گذاری می شد، TX نمی توانست جایگزین شود.
در واقع، این طراحی کوچک همان چیزی بود که منجر به ایجاد Replace by Fee یا RBF شد.
ایده پشت استفاده از آن در کانالهای nSequence اضافه کردن عملیات پرداخت در یک TX و جایگزینی آن در mempool بود، تا اینکه در نهایت TX به عنوان یک تراکنش نهایی در نظر گرفته شد (آن را با 0xFFFFFFFF در nSequence خود علامت گذاری کنید).
با nLockTime، یک محدودیت زمانی تعیین می شود تا ماینرها در نهایت بتوانند TX را بگیرند و آن را تایید کنند.
به عنوان یک واقعیت عجیب، nLockTime تنها در صورتی کار می کند که nSequence با 0xFFFFFFFFFF متفاوت باشد، بنابراین این مقدار به طور موثر تضمین می کند که کانال های nSequence فریب خورده اند و پس از مدتی پرداخت به فروشنده را تضمین می کند، حتی اگر کانال توسط nSequence بسته نشده باشد.
مطمئناً این یک راه حل بسیار اساسی است، یک طرفه (فقط خالق TX می تواند آن را مدیریت کند)، با زمان محدودی برای زندگی (استفاده از nLockTime و nSequence اجازه عملیات بی نهایت را نمی دهد) و بدون قوانین اجماع ایمن (همه چیز اتفاق می افتد). در ممپول که هیچ چیز تایید نشده است).
اما با این حال، هنوز هم یک ایده آشکار بود.
و دیدن بیت کوین به عنوان وسیله ای برای ایجاد کانال های پرداخت و ساخت سیستم هایی که با OP_CODE آن قدرت می گیرند، امکانات زیادی را به وجود آورد، چیزی که ناکاموتو با این ایده به خوبی نشان داد.
بهترین؟
این ایده از نسخه ۰.۱.۰ بیت کوین قابل اجرا بود، بنابراین از زمان پیدایش بخشی از پروتکل بوده است.
کانال های اسپیلمن (spilman) و CLTV
دو شکل معروف دیگر از کانال های پرداخت عبارتند از کانال های اسپیلمن و کانال های CLTV.
اولین مورد توسط جرمی اسپیلمن پیشنهاد شد که در آن تراکنشهای چند امضایی با استفاده از nLockTime ترکیب میشوند تا از تلههایی که امکان سرقت وجوه را فراهم میکنند جلوگیری شود.
اساساً یک کانال اسپیلمن شامل موارد زیر است:
یک تراکنش ۲ از ۲ چند امضایی ایجاد کنید که در آن خریدار و فروشنده کانال پرداخت را ایجاد کنند.
تراکنش فقط ایجاد می شود، اما تا زمانی که کل عملیات انجام نشود، به شبکه منتقل نمی شود.
این اولین تراکنش به عنوان تراکنش تامین مالی شناخته می شود.
سپس، تراکنشی ایجاد میشود که تراکنش قبلی را با استفاده از nLockTime میگذراند که پرداخت TX چند امضایی را تضمین میکند.
این معامله به فروشنده تحویل داده می شود و فروشنده آن را امضا می کند و به خریدار برمی گرداند.
اولین TX برای تایید به شبکه ارسال می شود و پس از تایید می توانید هر آنچه را که می خواهید سفارش دهید، زیرا کانال پرداخت باز شده است.
اکنون با هر تراکنش پرداخت جدید، یک TX ایجاد می شود که تراکنش تامین مالی را خرج می کند (اولین تراکنش ایجاد شده).
این عملیات پرداخت آنچه را که درخواست می کنید به فروشنده ارسال می کند و تغییر را به خریدار برمی گرداند.
خریدار تا زمانی که تراکنش تامین مالی او اجازه دهد می تواند هر چقدر که بخواهد خرج کند، اگر از حد مجاز فراتر رود دیگر نمی تواند به خرج کردن ادامه دهد.
این سیستم همچنین می تواند با استفاده از OP_CODE، OP_CHECKLOCKTIMEVERIFY (CLTV) ایجاد شود.
در این مورد، CLTV فقط به شما اجازه می دهد شرایط جدیدی را برای بستن کانال پرداخت در نظر بگیرید که از تله های خاص جلوگیری می کند (مانند عدم تمایل فروشنده به بستن کانال پرداخت زمانی که می خواهید مصرف را متوقف کنید).
علاوه بر این، استفاده از CLTV با عدم نیاز به ایجاد تراکنش دوم کانال اسپیلمن، مراحل را به حداقل می رساند.
این دو تجربه اولیه همان چیزی بود که منجر به ایجاد HTLC شد که بعداً منجر به ایجاد شبکه لایتنینگ شد.
این به منظور پیاده سازی لایه دوم در شبکه بلاک چین بیت کوین برای مدیریت تراکنش های خارج از آن از طریق کانال های پرداخت.
این امر با کار جوزف پون و تاج درایجا که در سال ۲۰۱۶ این سیستم را ارائه کردند ممکن شد.
HTLC ها چگونه کار می کنند؟
عملکرد HTLC به دو بخش بسیار مهم تقسیم می شود.
اولین مورد، توانایی آن در انجام هشلاک یا انسداد توسط هش تراکنشهایی است که انجام میشود.
و دومی توانایی انجام تایم قفل یا قفل زمانی همان معاملات است. این دو کارکرد با هم آنهایی هستند که به HTLC ها اجازه می دهند تا تراکنش ها را تحت شرایط خاصی که در اجرای قرارداد توافق شده است، انجام دهند. بهتر از همه، این تراکنش ها در سطح هش و زمان محافظت می شوند.
این باعث می شود که آنها در مقایسه با مدل های کانال پرداخت اولیه مانند کانال nSequence بسیار ایمن باشند.
ایده پشت آن این است که وقتی یک شرکت کننده علاقه مند به انجام معامله است، می تواند با شخص دیگری تماس گرفته و به توافق برسد.
این توافقنامه به هر دوی شما اجازه می دهد تا معاملات را تحت شرایطی انجام دهید که هر دو شما آن را قبول دارید.
بنابراین، هر دو طرف می توانند مطمئن باشند که هیچ تقلبی در عملیات آنها وجود نخواهد داشت.
این اطمینان را فراهم می کند که نمی توان به صورت مخرب از قبل به وجوه دسترسی پیدا کرد.
و در عین حال، معاملات انجام شده به درستی انجام شود.
برای انجام این کار، HTLC یک هش منحصر به فرد از کلید خصوصی تراکنش ایجاد می کند که به هر یک از طرفین تحویل داده می شود (آنچه توسط هشلاک امکان پذیر است).
به این ترتیب هر یک از طرفین باید هم برای باز کردن و هم بستن کانال پرداخت در معامله شرکت کنند.
بدون هر دو هش، تراکنش (پس از باز شدن) نمی تواند برای ادعای پرداخت بسته شود.
این امر ارتباط بین طرفین را مجبور می کند تا پایان معامله با هم امضا شود.
حفاظت اضافی دوم توسط قفل زمانی انجام می شود که با آن یک زمان معقول مشخص می شود تا کسانی که در معامله شرکت می کنند بتوانند اقدامات لازم را انجام دهند تا معامله بدون مزاحمت انجام شود.
اگر این زمان بگذرد و معامله بسته نشود، شرایط ثانویه تراکنش مذکور اجرا می شود که امکان بازیابی وجوه به صاحبان اصلی را فراهم می کند.
البته ممکن است شرایط متفاوت باشد، اما هدف از قفل زمانی این است که به طرفین فرصت داده شود تا کانال را به نحو احسن و بدون توسل به دستورالعمل های ثانویه ببندند.
مدل قرارداد HTLC با در نظر گرفتن راه اندازی شبکه لایتنینگ بیت کوین طراحی شده است، شبکه ای از پرداخت های فوری خارج از زنجیره که از آنها برای ارائه امنیت به کاربرانش سود می برد.
کاربردهای اصلی HTLC
استفاده اصلی از HTLC ها در ایجاد کانال های پرداخت است، همانطور که Poon و Dryja در کار خود در شبکه لایتنینگ توضیح دادند.
در واقع، به لطف HTLC ها، این نوع سیستم ایمن است و امکان ارتباط دو طرفه، هم بین شرکت کنندگان و سازندگان کانال، و هم زنجیره جانبی و زنجیره اصلی ارز دیجیتالی که HTLC در آن اجرا می شود را فراهم می کند.
از این نظر، HTLC ها روشی قابل اعتماد برای ساخت این نوع توابع پرداخت پیشرفته هستند، همانطور که LN تاکنون نشان داده است.
یکی دیگر از کاربردهای مهم HTLC ها در مبادله اتمی یا سوآپ اتمی است.
به لطف قابلیت خارج از زنجیره خود، HTLC ها می توانند دو بلاک چین مختلف را با یکدیگر ارتباط برقرار کنند و به کاربران خود اجازه دهند تا مبادلات اتمی آنی را انجام دهند که سپس می توانند به طور یکپارچه به زنجیره اصلی بروند.
مزایا و معایب HTLC
یکی از بزرگترین مزایای HTLC ها تسهیل تراکنش ها در کانال های پرداخت P2P است.
به این ترتیب، ایجاد شبکهای از گرهها که تمام این کانالها را خارج از زنجیره مدیریت میکنند و این پرداختها را بهگونهای هدایت میکنند که طرفین با خیال راحت پرداختها را دریافت کنند، آسان است.
به این ترتیب، بدون اتکا به گره های میانی، می توان یک شبکه پرداخت غول پیکر، تقریباً آنی، امن و بسیار کم هزینه ایجاد کرد.
نکته دیگر به نفع HTLC ها این است که تراکنش های پرداخت را می توان با شرایط مشخص محافظت کرد.
به این ترتیب می توان از سرقت وجوه یا اقدام سوء طرفین در داخل سیستم جلوگیری کرد.
بعلاوه، HTLCها بهبود زیادی در مقیاس پذیری و توانایی پرداخت خرد به شبکه بیت کوین ارائه می کنند.
این در حالی است که گلوگاه های زنجیره ای کاهش می یابد، کمیسیون ها کاهش می یابد و مقیاس شبکه برای خدمت رسانی به افراد بیشتر و بیشتر می شود.
با این حال همه چیز مثبت نیست
بسیاری از کارشناسان دنیای رمزنگاری مشکلاتی را در HTLC ها پیدا کرده اند.
نقطه ردیابی عملیات، به این معنی که پرداخت های انجام شده با HTLC ناشناس نیستند.
اشکال دیگر این است که HTLC ها می توانند منجر به سیستم های پیچیده تر و در نتیجه نرم افزار با مشکلات امنیتی ناشناخته شوند.




