شبکه لایتنینگ بیت کوین چیست؟
شبکه لایتنینگ بیت کوین، انتقال سریعتر و کارمزد بسیار کمتری نسبت به شبکه خود بیت کوین دارد. البته این نکته را در نظر داشته باشید که شبکه لایتنینگ برای انتقال تراکنشهای با حجم مبالغ بالا به کار نمیآید.
آدرسهای چند امضایی
آدرس چند امضایی (یا چند منظوره) آدرسی است که چندین کلید خصوصی میتوانند از آن استفاده کنند. هنگام ایجاد یک کلید، میتوانید مشخص کنید که چه تعداد کلید خصوصی میتواند وجوه خود را خرج کند و چه تعداد از این کلیدها برای امضای معامله مورد نیاز است. به عنوان مثال، طرح ۱ از ۵ به این معنی است که پنج کلید میتوانند یک امضای معتبر تولید کنند و فقط یک مورد از آن برای تایید نیاز است. یک طرح ۲ از ۳ نشان میدهد که از بین سه کلید ممکن، نیاز به دو امضا است.
برای راهاندازی یک کانال لایتنینگ، شرکتکنندگان بودجه را در یک طرح ۲ از ۲ قفل میکنند. فقط دو کلید خصوصی وجود دارد که میتوانند امضا کنند و هر دو مورد برای جابجایی کوینها مورد نیاز است.
بیایید از دوستانمان سیامک و کارن برای مثال زدنی کمک بگیریم. آنها در ماههای آینده پرداختهای زیادی به یکدیگر خواهند داشت، بنابراین تصمیم میگیرند یک کانال در شبکه لایتنینگ باز کنند.
این کار با واریز هر دوی آنها، مثلاً ۰.۰۰۳ بیت کوین به آدرس مشترک چند منظوره شروع میشود. شایان ذکر است که کارن نمیتواند بدون موافقت سیامک، وجوه را از آدرس خارج کند یا برعکس.
در حال حاضر، آنها فقط میتوانند یک سند از داراییهای خود در اختیار داشته باشند. هر دوی آنها دارای اولیه ۰.۰۰۳ بیت کوین هستند.
اما اگر سیامک بخواهد حتی ۰.۰۰۱ بیت کوین به کارن پرداخت کند، به امضای کارن برای تایید نهایی نیاز دارد. چه برسد به آن که سیامک بخواهد بیت کوینها را به شخص دیگری منتقل کند. بنابراین، شرط امضای هر دوی آنها برای انتقال وجه ضروری است.
دقیقاً، مانند فرمان استفاده از سلاحهای هستهای در آمریکا که رمز سیستم موشکی بین چندین شخص عالی رتبه تقسیم شده تا برای صدور فرمان، به تمامی رمزها نیاز باشد. این به این معنی است که اگر یکی از سران راضی به صدور حمله هستهای نباشد، عملاً همه چیز منتفی خواهد بود.
قراردادهای هش با محدودیت زمانی (HTLCs)
سیستم فوق بسیار کسل کننده است و در مقایسه با پلتفرمهای مورد اعتماد امروز چیز خاصی ارائه نمیدهد. اما، زمانی که برای این کار یک مکانیزم منحصربفرد در نظر بگیریم که قرارداد بین سیامک و کارن را اجرا کند، آن گاه همه چیز بسیار جالبتر میشود. به طوری که اگر یکی از طرفین قرارداد تصمیم بگیرد از قوانین تبعیت نکند، طرف دیگر هنوز راهی برای بیرون آوردن وجوه خود از کانال را دارد.
این مکانیسم تحت عنوان قرارداد هش با محدودیت زمانی (Hash Timelock) شناخته میشود. این اصطلاح ممکن است دلهرهآور به نظر برسد و افراد تصور کنند که زمان انجام معاملات محدود خواهد شد، اما درک آن خیلی ساده است. این مکانیسم با دو فناوری دیگر به نامهای محدودیتهای هش (Hashlocks) و محدودیتهای زمانی (Timelocks) برای رفع هرگونه ناهماهنگی در کانالهای پرداخت، همسو میشود.
محدودیت هش (Hashlock) مکانیسمی است که در راس یک معامله قرار میگیرد و افراد را موظف میکند تا تنها با اثبات این که یک رمز یا امضای خصوصی را بدانند قادر به خرج کردن وجوه خود باشند. به طوری که، فرستنده یک داده را تبدیل به هش کرده و آن را درون معامله قرار میدهد و به گیرنده میفرستد. تنها راهی که گیرنده میتواند توسط آن دارایی ارسال شده را خرج کند این است که دادههای اصلی (رمز یا کلید خصوصی) منطبق با هش را ارائه دهد. و تنها راهی که از طریق آن میتوان این دادهها را ارائه داد، این است که فرستنده آن را به گیرنده بدهد.
محدودیت زمانی (Timelock) مکانیسمی است که شما را از خرج کردن وجوه، قبل از زمان معین منع میکند. بنابراین، قراردادهای هش با محدودیت زمانی (HTLCs) با ترکیب محدودیت زمانی (Timelock) و محدودیت هش (Hashlock) ایجاد میشوند. در عمل، از این مکانیسم ترکیبی میتوان برای ایجاد پرداختهای مشروط استفاده کرد؛ به این معنی که، گیرنده موظف است قبل از زمان معینی رمز یا کلیدی ارائه دهد، در غیر این صورت فرستنده میتواند وجوه خود را پس بگیرد.
باز و بسته شدن کانالها
در این قسمت بهتر است موضوع را با یک مثال توضیح دهیم، بنابراین اجازه دهید دوباره به سیامک و کارن رجوع کنیم.
ما در قسمتهای قبلی مثال زدیم که سیامک و کارن به تازگی معاملاتی را ایجاد کردهاند که سیامک چند امضاء مشترک از آن را در اختیار دارد. در صورتی که، این تراکنشها هنوز در بلاکچین منتشر نشدهاند! ابتدا باید یک کار دیگر انجام دهیم.
به یاد داشته باشید، تنها راهی که میتوان این سکهها را از شر امضاهای چند رقمی خلاص کرد، این است که طرفین معامله یعنی سیامک و کارن به طور مشترک معاملهای را امضا کنند. در غیر این صورت معامله فسخ خواهد شد. تصور کنید اگر سیامک میخواست هر شش سکه را به آدرس دیگری ارسال کند، به تأیید کارن نیاز داشت. او ابتدا یک تراکنش با مقدار شش بیت کوین به این آدرس جمعآوری و امضای خود را به آن اضافه کرد.
او میتواند بلافاصله معامله را در کانال بین اعضا پخش کند، اما کار او معتبر نخواهد بود، زیرا کارن امضای خود را درون معامله درج نکرده است. بنابراین، سیامک باید ابتدا پیش تراکنش را به کارن ارسال کنید. وقتی کارن امضای خود را اضافه کرد، تراکنش معتبر خواهد شد.
ما تا اینجای مطلب هنوز مکانیزمی را معرفی نکردهایم تا بتواند مشکل قراردادهای چندامضایی را حل کند. همانطور که پیشتر عنوان کردیم، اگر طرف مقابل شما از همکاری امتناع کند، وجوه شما در واقع به دام افتاده است. بنابراین، بیایید وارد سازوکاری شویم که مانع این امر میشود.
برای تحقق این امر هر طرف باید یک رمز ارائه دهد – بگذارید فقط آنها را A و B بنامیم. اگر سیامک و کارن این رمزها را فاش کنند، کانال معامله آنها به طور وحشتناکی ناامن میشود. بنابراین، آنها رمز قرارداد را در حال حاضر مخفی نگه میدارند. این امر موجب ایجاد شدن هشهای مربوط به رمزها میگردد. بنابراین، آنها به جای به اشتراک گذاشتن رموز خود، هشها را با یکدیگر به اشتراک میگذارند.
تراکنشهای تضمین به روزرسانیهایی هستند که شما در دفتر کل ایجاد میکنید. در واقع، هر زمان که یک جفت تراکنش جدید تضمین ایجاد میکنید، بودجه را بین طرفین تراکنش متعادل میسازید.
تراکنش سیامک دارای دو خروجی خواهد بود، یکی به آدرس متعلق به او پرداخت میشود و دیگری در آدرس جدید چند منظوره قفل میگردد. سپس، او آن را امضا میکند و به کارن میسپارد. برعکس این قضیه نیز برای کارن صادق است.
به طور معمول، سیامک میتواند تراکنش باب را با امضای او معتبرتر سازد. اما توجه داشته باشید که این وجوه از معاملات دو به دو چند منظورهای هزینه میشوند که ما هنوز آنها را تأمین مالی نکردهایم. این امر دقیقاً شبیه این است که سعی کنید یک چک را از
حسابی که موجودی آن صفر است، وصول کنید. بنابراین، این نوع از معاملات تنها زمانی قابل استفاده خواهند بود که مکانیسم مولتیسگ (Multisig) یا چندمنظوره راهاندازی شود.
آدرسهای چند منظوره جدید (جایی که ۳ خروجی بیت کوین در آن مقصد هستند) دارای ویژگیهای عجیب و غریبی میباشند. بیایید نگاهی به تراکنش ناقصی که سیامک آن را امضا کرد و به کارن داد، بیندازیم. معاملات مبتنی بر خروجی چند منظوره را میتوان در شرایط زیر خرج کرد:
هر دو طرف میتوانند با همکاری یکدیگر آن را امضا کنند.
کارن میتواند آن را به تنهایی پس از مدت زمان معینی (به دلیل قفل زمانی سیامک) صرف کند.
سیامک اگر رمز مخفی کارن را بداند، میتواند آن را خرج کند.
برای تراکنشی که کارن به سیامک ارسال کرد:
هر دو طرف میتوانند با همکاری یکدیگر آن را امضا کنند.
سیامک میتواند آن را پس از مدت زمان معینی صرف کند.
کارن اگر رمز سیامک را بداند میتواند آن را خرج کند.
به خاطر داشته باشید که هیچ یک از طرفین رمز طرف مقابل را نمیدانند. نکته دیگری که باید به آن توجه کنید این است که در صورت امضای معامله، طرف مقابل میتواند بلافاصله آن را خرج کند؛ زیرا شرایط خاصی برای خروج آنها وجود ندارد. شما میتوانید منتظر بمانید تا زمان مقرر به پایان برسد تا کل دارایی را به تنهایی خرج کنید، یا میتوانید با طرف دیگر همکاری کنید تا آنها را زودتر از موعد به طور کامل خرج کنید.
اکنون میتوانید معاملات را در آدرس اصلی چند امضایی دو به دو منتشر کنید. انجام این کار به طور کامل بی خطر است، زیرا اگر طرف مقابل شما کانال را رها کند، میتوانید وجوه خود را بازیابی کنید.
پس از تأیید تراکنشها، کانال راهاندازی میشود. اولین جفت تراکنش، وضعیت فعلی دفتر کوچک را به ما نشان میدهد. در حال حاضر، ۰/۰۰۳ بیت کوین به کارن و ۰/۰۰۳ بیت کوین به سیامک پرداخت میشود.
وقتی سیامک میخواهد پرداخت جدیدی به کارن انجام دهد، هر دوی آنها باید دو تراکنش جدید ایجاد کنند تا جایگزین تراکنش اول شود. همه چیز مانند قبل است، با این تفاوت که آنها فقط یک تراکنش نیمه امضا شدهاند. با این حال، سیامک و کارن ابتدا رمزهای قدیمی خود را رها میکنند و هشهای جدیدی را برای دور بعدی معاملات مبادله میکنند.
هر یک از طرفین میتوانند یکی از جدیدترین معاملات را در هر زمان امضا و پخش کنند تا آن را در بلاک ثبت و تسویه کنند. اما در صورت انجام این کار توسط طرفین معامله، آنها باید منتظر بمانند تا زمان تعیین شده به پایان برسد، در حالی که طرف دیگر میتواند بلافاصله وجه خود را خرج کند. به یاد داشته باشید، اگر کارن معامله سیامک را امضا و پخش کند، اکنون دارای یک خروجی بدون پیش شرط خواهد بود.
در واقع هر دو طرف میتوانند توافق کنند که کانال را با هم ببندند. این امر به طور حتم سادهترین و سریعترین راه برای بازگشت وجوه خود به زنجیره اصلی است. با این حال، حتی اگر یکی از طرفین واکنش نشان ندهد یا از همکاری امتناع کند، طرف دیگر میتواند با منتظر ماندن تا پایان زمان مقرر، وجوه خود را پس بگیرد.
برای آشنایی بیشتر با شبکه لایتنینگ میتوانید مقاله زیر را مطالعه بفرمایید:
لایتنینگ چیست؟ و چه کاربردی در معاملات بیت کوین دارد؟ (بخش اول)
آدرسهای چند امضایی
آدرس چند امضایی (یا چند منظوره) آدرسی است که چندین کلید خصوصی میتوانند از آن استفاده کنند. هنگام ایجاد یک کلید، میتوانید مشخص کنید که چه تعداد کلید خصوصی میتواند وجوه خود را خرج کند و چه تعداد از این کلیدها برای امضای معامله مورد نیاز است. به عنوان مثال، طرح ۱ از ۵ به این معنی است که پنج کلید میتوانند یک امضای معتبر تولید کنند و فقط یک مورد از آن برای تایید نیاز است. یک طرح ۲ از ۳ نشان میدهد که از بین سه کلید ممکن، نیاز به دو امضا است.
برای راهاندازی یک کانال لایتنینگ، شرکتکنندگان بودجه را در یک طرح ۲ از ۲ قفل میکنند. فقط دو کلید خصوصی وجود دارد که میتوانند امضا کنند و هر دو مورد برای جابجایی کوینها مورد نیاز است.
بیایید از دوستانمان سیامک و کارن برای مثال زدنی کمک بگیریم. آنها در ماههای آینده پرداختهای زیادی به یکدیگر خواهند داشت، بنابراین تصمیم میگیرند یک کانال در شبکه لایتنینگ باز کنند.
این کار با واریز هر دوی آنها، مثلاً ۰.۰۰۳ بیت کوین به آدرس مشترک چند منظوره شروع میشود. شایان ذکر است که کارن نمیتواند بدون موافقت سیامک، وجوه را از آدرس خارج کند یا برعکس.
در حال حاضر، آنها فقط میتوانند یک سند از داراییهای خود در اختیار داشته باشند. هر دوی آنها دارای اولیه ۰.۰۰۳ بیت کوین هستند.
اما اگر سیامک بخواهد حتی ۰.۰۰۱ بیت کوین به کارن پرداخت کند، به امضای کارن برای تایید نهایی نیاز دارد. چه برسد به آن که سیامک بخواهد بیت کوینها را به شخص دیگری منتقل کند. بنابراین، شرط امضای هر دوی آنها برای انتقال وجه ضروری است.
دقیقاً، مانند فرمان استفاده از سلاحهای هستهای در آمریکا که رمز سیستم موشکی بین چندین شخص عالی رتبه تقسیم شده تا برای صدور فرمان، به تمامی رمزها نیاز باشد. این به این معنی است که اگر یکی از سران راضی به صدور حمله هستهای نباشد، عملاً همه چیز منتفی خواهد بود.
قراردادهای هش با محدودیت زمانی (HTLCs)
سیستم فوق بسیار کسل کننده است و در مقایسه با پلتفرمهای مورد اعتماد امروز چیز خاصی ارائه نمیدهد. اما، زمانی که برای این کار یک مکانیزم منحصربفرد در نظر بگیریم که قرارداد بین سیامک و کارن را اجرا کند، آن گاه همه چیز بسیار جالبتر میشود. به طوری که اگر یکی از طرفین قرارداد تصمیم بگیرد از قوانین تبعیت نکند، طرف دیگر هنوز راهی برای بیرون آوردن وجوه خود از کانال را دارد.
این مکانیسم تحت عنوان قرارداد هش با محدودیت زمانی (Hash Timelock) شناخته میشود. این اصطلاح ممکن است دلهرهآور به نظر برسد و افراد تصور کنند که زمان انجام معاملات محدود خواهد شد، اما درک آن خیلی ساده است. این مکانیسم با دو فناوری دیگر به نامهای محدودیتهای هش (Hashlocks) و محدودیتهای زمانی (Timelocks) برای رفع هرگونه ناهماهنگی در کانالهای پرداخت، همسو میشود.
محدودیت هش (Hashlock) مکانیسمی است که در راس یک معامله قرار میگیرد و افراد را موظف میکند تا تنها با اثبات این که یک رمز یا امضای خصوصی را بدانند قادر به خرج کردن وجوه خود باشند. به طوری که، فرستنده یک داده را تبدیل به هش کرده و آن را درون معامله قرار میدهد و به گیرنده میفرستد. تنها راهی که گیرنده میتواند توسط آن دارایی ارسال شده را خرج کند این است که دادههای اصلی (رمز یا کلید خصوصی) منطبق با هش را ارائه دهد. و تنها راهی که از طریق آن میتوان این دادهها را ارائه داد، این است که فرستنده آن را به گیرنده بدهد.
محدودیت زمانی (Timelock) مکانیسمی است که شما را از خرج کردن وجوه، قبل از زمان معین منع میکند. بنابراین، قراردادهای هش با محدودیت زمانی (HTLCs) با ترکیب محدودیت زمانی (Timelock) و محدودیت هش (Hashlock) ایجاد میشوند. در عمل، از این مکانیسم ترکیبی میتوان برای ایجاد پرداختهای مشروط استفاده کرد؛ به این معنی که، گیرنده موظف است قبل از زمان معینی رمز یا کلیدی ارائه دهد، در غیر این صورت فرستنده میتواند وجوه خود را پس بگیرد.
باز و بسته شدن کانالها
در این قسمت بهتر است موضوع را با یک مثال توضیح دهیم، بنابراین اجازه دهید دوباره به سیامک و کارن رجوع کنیم.
ما در قسمتهای قبلی مثال زدیم که سیامک و کارن به تازگی معاملاتی را ایجاد کردهاند که سیامک چند امضاء مشترک از آن را در اختیار دارد. در صورتی که، این تراکنشها هنوز در بلاکچین منتشر نشدهاند! ابتدا باید یک کار دیگر انجام دهیم.
به یاد داشته باشید، تنها راهی که میتوان این سکهها را از شر امضاهای چند رقمی خلاص کرد، این است که طرفین معامله یعنی سیامک و کارن به طور مشترک معاملهای را امضا کنند. در غیر این صورت معامله فسخ خواهد شد. تصور کنید اگر سیامک میخواست هر شش سکه را به آدرس دیگری ارسال کند، به تأیید کارن نیاز داشت. او ابتدا یک تراکنش با مقدار شش بیت کوین به این آدرس جمعآوری و امضای خود را به آن اضافه کرد.
او میتواند بلافاصله معامله را در کانال بین اعضا پخش کند، اما کار او معتبر نخواهد بود، زیرا کارن امضای خود را درون معامله درج نکرده است. بنابراین، سیامک باید ابتدا پیش تراکنش را به کارن ارسال کنید. وقتی کارن امضای خود را اضافه کرد، تراکنش معتبر خواهد شد.
ما تا اینجای مطلب هنوز مکانیزمی را معرفی نکردهایم تا بتواند مشکل قراردادهای چندامضایی را حل کند. همانطور که پیشتر عنوان کردیم، اگر طرف مقابل شما از همکاری امتناع کند، وجوه شما در واقع به دام افتاده است. بنابراین، بیایید وارد سازوکاری شویم که مانع این امر میشود.
برای تحقق این امر هر طرف باید یک رمز ارائه دهد – بگذارید فقط آنها را A و B بنامیم. اگر سیامک و کارن این رمزها را فاش کنند، کانال معامله آنها به طور وحشتناکی ناامن میشود. بنابراین، آنها رمز قرارداد را در حال حاضر مخفی نگه میدارند. این امر موجب ایجاد شدن هشهای مربوط به رمزها میگردد. بنابراین، آنها به جای به اشتراک گذاشتن رموز خود، هشها را با یکدیگر به اشتراک میگذارند.
تراکنشهای تضمین به روزرسانیهایی هستند که شما در دفتر کل ایجاد میکنید. در واقع، هر زمان که یک جفت تراکنش جدید تضمین ایجاد میکنید، بودجه را بین طرفین تراکنش متعادل میسازید.
تراکنش سیامک دارای دو خروجی خواهد بود، یکی به آدرس متعلق به او پرداخت میشود و دیگری در آدرس جدید چند منظوره قفل میگردد. سپس، او آن را امضا میکند و به کارن میسپارد. برعکس این قضیه نیز برای کارن صادق است.
به طور معمول، سیامک میتواند تراکنش باب را با امضای او معتبرتر سازد. اما توجه داشته باشید که این وجوه از معاملات دو به دو چند منظورهای هزینه میشوند که ما هنوز آنها را تأمین مالی نکردهایم. این امر دقیقاً شبیه این است که سعی کنید یک چک را از
حسابی که موجودی آن صفر است، وصول کنید. بنابراین، این نوع از معاملات تنها زمانی قابل استفاده خواهند بود که مکانیسم مولتیسگ (Multisig) یا چندمنظوره راهاندازی شود.
آدرسهای چند منظوره جدید (جایی که ۳ خروجی بیت کوین در آن مقصد هستند) دارای ویژگیهای عجیب و غریبی میباشند. بیایید نگاهی به تراکنش ناقصی که سیامک آن را امضا کرد و به کارن داد، بیندازیم. معاملات مبتنی بر خروجی چند منظوره را میتوان در شرایط زیر خرج کرد:
هر دو طرف میتوانند با همکاری یکدیگر آن را امضا کنند.
کارن میتواند آن را به تنهایی پس از مدت زمان معینی (به دلیل قفل زمانی سیامک) صرف کند.
سیامک اگر رمز مخفی کارن را بداند، میتواند آن را خرج کند.
برای تراکنشی که کارن به سیامک ارسال کرد:
هر دو طرف میتوانند با همکاری یکدیگر آن را امضا کنند.
سیامک میتواند آن را پس از مدت زمان معینی صرف کند.
کارن اگر رمز سیامک را بداند میتواند آن را خرج کند.
به خاطر داشته باشید که هیچ یک از طرفین رمز طرف مقابل را نمیدانند. نکته دیگری که باید به آن توجه کنید این است که در صورت امضای معامله، طرف مقابل میتواند بلافاصله آن را خرج کند؛ زیرا شرایط خاصی برای خروج آنها وجود ندارد. شما میتوانید منتظر بمانید تا زمان مقرر به پایان برسد تا کل دارایی را به تنهایی خرج کنید، یا میتوانید با طرف دیگر همکاری کنید تا آنها را زودتر از موعد به طور کامل خرج کنید.
اکنون میتوانید معاملات را در آدرس اصلی چند امضایی دو به دو منتشر کنید. انجام این کار به طور کامل بی خطر است، زیرا اگر طرف مقابل شما کانال را رها کند، میتوانید وجوه خود را بازیابی کنید.
پس از تأیید تراکنشها، کانال راهاندازی میشود. اولین جفت تراکنش، وضعیت فعلی دفتر کوچک را به ما نشان میدهد. در حال حاضر، ۰/۰۰۳ بیت کوین به کارن و ۰/۰۰۳ بیت کوین به سیامک پرداخت میشود.
وقتی سیامک میخواهد پرداخت جدیدی به کارن انجام دهد، هر دوی آنها باید دو تراکنش جدید ایجاد کنند تا جایگزین تراکنش اول شود. همه چیز مانند قبل است، با این تفاوت که آنها فقط یک تراکنش نیمه امضا شدهاند. با این حال، سیامک و کارن ابتدا رمزهای قدیمی خود را رها میکنند و هشهای جدیدی را برای دور بعدی معاملات مبادله میکنند.
هر یک از طرفین میتوانند یکی از جدیدترین معاملات را در هر زمان امضا و پخش کنند تا آن را در بلاک ثبت و تسویه کنند. اما در صورت انجام این کار توسط طرفین معامله، آنها باید منتظر بمانند تا زمان تعیین شده به پایان برسد، در حالی که طرف دیگر میتواند بلافاصله وجه خود را خرج کند. به یاد داشته باشید، اگر کارن معامله سیامک را امضا و پخش کند، اکنون دارای یک خروجی بدون پیش شرط خواهد بود.
در واقع هر دو طرف میتوانند توافق کنند که کانال را با هم ببندند. این امر به طور حتم سادهترین و سریعترین راه برای بازگشت وجوه خود به زنجیره اصلی است. با این حال، حتی اگر یکی از طرفین واکنش نشان ندهد یا از همکاری امتناع کند، طرف دیگر میتواند با منتظر ماندن تا پایان زمان مقرر، وجوه خود را پس بگیرد.
برای آشنایی بیشتر با شبکه لایتنینگ میتوانید مقاله زیر را مطالعه بفرمایید:
لایتنینگ چیست؟ و چه کاربردی در معاملات بیت کوین دارد؟ (بخش اول)
به روز شده در: 19/03/2024