شبکه‌ لایتنینگ چیست؟

اگر سر و کارتان به بیت کوین افتاده باشد احتمالا طعم انتظار یک ساعته (یا حتی یک روزه) برای انجام تراکنش را چشیده‌اید، شبکه لایتنینگ برای حل این مشکل به وجود آمده است؛ به زبان ساده، شبکه‌ی لایتنینگ روشی است که کاربران بیت کوین به وسیله‌ی آن می‌توانند پول خود را خارج از سیستم بلاک چین بیت کوین مبادله کنند و به این وسیله ضمن سرعت دادن به تراکنش‌های خود، کارمزد بسیار کمتری نیز پرداخت کنند.

0 163

راهنمای مبتدیان شبکه‌ لایتنینگ

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

شبکه لایتنینگ (Lightning Network) یا شبکه‌ی صاعقه برای حل این مشکل به وجود آمده است. ایده‌ی آن متعلق به تادیوس درایا (Thaddeus Dryja) و جوزف پون (Joseph Poon) است. آن‌ها ایده‌ی شبکه‌ی لایتنینگ را در سال 2015 در قالب یک کاغذ معرفی کسب و کار ارائه کردند. اگر به مطالعه‌ی یک مقاله‌ی طولانی و پر از اصطلاحات تخصصی علاقه ندارید، ما در اینجا مفهوم آن را به زبانی ساده برای شما شرح خواهیم داد.

شبکه لایتنینگ چیست؟

به زبان ساده، شبکه‌ی لایتنینگ روشی است که کاربران بیت کوین به وسیله‌ی آن می‌توانند پول خود را بدون بلاک چین بیت کوین مبادله کنند. این کار با استفاده از چند الگوریتم پیچیده محقق می‌شود. این الگوریتم‌ها با کدهای اصلی بیت کوین ارتباط دارند و باعث می‌شوند پرداخت‌ها به سرعت برق و با کارمزد تراکنش پایین‌تر انجام شوند. این روش به عنوان یک مقیاس‌پذیری ضروری ارائه شده و اگر بیت کوین می‌خواهد در آینده همچنان به عنوان یک روش پرداخت به کار خود ادامه دهد ضرورتا باید از آن استفاده کند. این روش می‌تواند به مبادلات اتمی (atomic swaps ) بین زنجیره‌ای ارز هم راه پیدا کند. این مبادلات مشابه مبادلات دیگر است، با این تفاوت که در دنیای مجازی می‌تواند میان دو ارز با بلاک چین‌های مختلف اتفاق بیافتد.

حالا که تعریف بسیار ساده‌ای ارائه کرده‌ایم وقت آن است که سراغ توضیحات جامع‌تر برویم.

شبکه لایتنیگ چطور کار می‌کند؟

باز کردن یک کانال پرداخت دوطرفه

پیش از استفاده از شبکه لایتنینگ لازم است یک کانال پرداخت ایجاد شود. کانال پرداخت یک مسیر تراکنش است که شبکه‌ی لایتنینگ با استفاده از آن ارزش‌ها را انتقال می‌دهد. برای ایجاد چنین کانالی، باید بر روی بلاک چین تراکنشی برای کانال باز کنیم.

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

کیف پول‌های چند امضایی

« پس اگر کانال‌های پرداخت خارج از بلاک چین عمل می‌کنند، مبالغ پیش از ثبت شدن در بلاک چین کجا و چگونه مدیریت می‌شوند؟» این سوال بسیار خوبی است. هر دو طرف مبادله برای اینکه بتوانند از کانال پرداخت استفاده کنند باید مبالغ خود را به آدرس یک کیف پول چند امضایی بفرستند.

فرض کنیم مالی (Molly) و استیو (Steve) روی نتیجه‌ی یک مسابقه‌ی فوتبال شرط بسته‌اند. هر کدام از آن‌ها 1 بیت کوین (BTC) شرط بسته و می‌خواهد مطمئن شود که طرف مقابل به قول خود عمل می‌کند، به همین خاطر پول‌های خود را در یک کیف پول چند امضایی می‌گذارند. این کیف پول مانند یک گاوصندوق عمل می‌کند. مجموعه‌ای از کلیدهای شخصی برای انجام تراکنش تعریف می‌شوند. این کلیدها مانند رمز گاوصندوق هستند و هر طرف به وسیله‌ی آن‌ها می‌تواند به پول خود دسترسی پیدا کند. پول در صندوق می‌ماند تا زمانی که:

مالی و استیو هر دو به وسیله‌ی کلیدهای شخصی خود یک تراکنش نهایی را امضاء کنند؛

یکی از طرفین تصمیم بگیرد خودش به تنهایی تراکنش را نهایی کند؛

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

مالی و استیو برای ایجاد کیف پول چند امضایی یک Value (یک کلید محرمانه است که برای بازگشایی تراکنش لازم است) تعیین می‌کنند. سپس آن‌ها با استفاده از این Value یک هش (hash) ایجاد می‌کنند و آن را برای یکدیگر می‌فرستند. هر یک از آن‌ها این اطلاعات را پیش خود نگه می‌دارند.

پس از اینکه مالی و استیو مبالغ مورد نظر خود را در کیف پول چند امضایی سپرده‌گذاری کردند می‌توانند یک « تراکنش باز » به وجود آورند و آن را برای بلاک چین بفرستند. پس از انجام این کار، برای مدیریت مبالغ مورد نظر از « تراکنش تعهدی » استفاده خواهد شد.

انتقال مبلغ با تراکنش تعهدی

مشخص می‌شود که مالی شرط را برده است، او تصمیم می‌گیرد به جای 1 بیت کوین تنها 0.5 بیت کوین (نصف) از استیو بگیرد. برای انتقال این مبلغ مالی و استیو هر دو برای یک تراکنش تعهدی درخواست می‌دهند تا مانده حساب آن‌ها در کانال پرداخت به روزرسانی شود. تراکنش‌های تعهدی مبالغ موجود را مطابق توافق طرفین میان آن‌ها تقسیم می‌کنند. در حقیقت تراکنش تعهدی همانند سند بدهکاری (IOU) عمل می کند که به محض بسته شدن کانال پرداخت، کار انتقال وجه را انجام می‌دهد.

برای نمونه برای اینکه مبلغ مبادله شود، مالی تراکنشی انجام می‌دهد که در آن 1.5 بیت کوین برای خودش فرستاده می‌شود و 0.5 بیت کوین باقیمانده به یک آدرس کیف پول چند امضایی جدید می‌رود. سپس او این تراکنش را امضاء می‌کند و هش آن را برای استیو می‌فرستد. در مقابل استیو یک تراکنش تعهدی ایجاد می‌کند تا مکمل کار مالی شود یعنی 0.5 بیت کوین را برای خودش می‌فرستد و 1.5 بیت کوین باقیمانده را به یک کیف پول چند امضایی دیگر می‌فرستد، سپس او این تراکنش را امضا کرده و هش آن را برای مالی ارسال می‌کند.

 

شبکه لایتنینگ چیست
شبکه لایتنینگ چیست

به این ترتیب این روند رخ داده است:

1) ابتدا BTC 2 در کیف پول چند امضایی کانال پرداخت قرار گرفت؛

2) BTC 0.5 در کیف پول چند امضایی قابل پرداخت به استیو قرار گرفت و

3) BTC 1.5 در کیف پول چند امضایی قابل پرداخت به مالی قرار گرفت.

پس از اینکه هر یک از طرفین هش مورد نظر را ارسال کند، ترازنامه در کانال پرداخت چند امضایی به روز می‌شود و نشان می‌دهد که هر دو طرف با انجام انتقال موافقت کرده‌اند. به این ترتیب، ارز بدون استفاده از بلاک چین بیت کوین مبادله شده است.

مقادیر این کیف پول‌ها را تنها در سه حالت می‌توان آزاد کرد:

  1. گذشت زمان مشخص؛
  2. هر یک از طرفین مبالغ کیف پول چند امضایی را که با رقمی (کلید) که کیف پول را به وجود آورده بود آزاد کند؛
  3. هر دو طرف تصمیم بگیرند با هم از تراکنش بیرون بروند

جا دارد اشاره کنیم که اگر یکی از طرفین تصمیم بگیرد کانال را ببندد و به تنهایی از یک تراکنش کنار بکشد، باید منتظر به اتمام رسیدن زمان از پیش تعیین شده شود (که در قرارداد آمده) و این بازه‌ی زمانی پس از امضای تراکنش برای دریافت مبلغ توسط آن طرف آغاز می‌شود. این ساز و کارها شاید اضافی به نظر برسد اما برای جلوگیری از تقلب با کانال‌های پرداخت، لازم است تمامی این تدابیر اجرا شوند.

پرداخت‌های تکراری / به روز رسانی کانال

فرض کنید مالی و استیو بخواهند به روز رسانی کانال را ادامه دهند یا بیش از یک تبادل انجام دهند؛ در آن صورت چه می‌شود؟ فرض کنید استیو در ازای خدمات مستمر مانند اصلاح موی سر به مالی مبالغی پرداخت می کرده است. استیو BTC 0.2 در کیف پول چند امضایی آن ها قرار می دهد و هر بار مالی موهایش را کوتاه می‌کند او برای مالی یک تراکنش تعهدی به مبلغ BTC 0.001 را امضاء می‌کند و آن را به آدرس چند امضایی جدید می‌فرستد. برای انجام این کار استیو مجبور است مراحلی را که گفتیم هر دفعه تکرار کند البته به استثنای باز کردن یک تراکنش در شبکه زیرا این اتفاق با امضای نخستین تراکنش تعهدی افتاده است.

بنابراین برای انجام پرداخت‌های تکراری باید هر بار مانده حساب چند امضایی به روز رسانی شود. برای انجام این کار، هر بار که مالی موهای استیو را کوتاه می‌کند، استیو باید رقم جدید جمع پول‌هایی را که برای دادن به مالی در کیف پول چند امضایی گذاشته تعهد نماید. اما استیو با انجام این کار یک مقدار جدید و یک هش جدید برای این تراکنش جدید به وجود خواهد آورد. مالی هم همین کار را انجام می‌دهد و هنگامی که هر دو طرف هش‌های جدید را به یکدیگر دادند، هر دوی آن‌ها ارقام (کلیدهای) قدیمی تراکنش قبلی را هم لحاظ می‌کنند.

به این ترتیب دیگر هیچ یک از طرفین نمی تواند سر دیگری کلاه بگذارد. اگر هنگام بستن کانال پرداخت استیو بخواهد در مورد پرداخت مالی به او کلک بزند و یک مقدار تراکنش قدیمی را ارسال نماید آنگاه به دردسر می‌افتد.

برای نمونه اگر هنگام بسته شدن کانال استیو BTC 1 از 2 بیت کوین ذخیره شده به مالی بدهکار باشد اما تراکنش اصلی را امضا کند و بخواهد با این کار مقدار اصلی را به خود برگرداند مالی می‌تواند مچ او را بگیرد زیرا مالی مقادیر همه‌ی تراکنش‌های قبلی را دارد. از طرف دیگر مطابق توافقی که طرفین در شروع کار روی بازه زمانی داشته‌اند، استیو باید منتظر بماند تا تراکنش او تسویه شود در حالی که در مورد مالی انتقال به صورت آنی صورت می‌گیرد. بنابراین اگر مالی متوجه شود که در ازای خدماتش 0 BTC به او پرداخت شده می‌تواند از 2 BTC موجود در کیف پول چند امضایی کنار بکشد زیرا کلید این تراکنش در دست اوست بنابراین مالی امکان آزاد کردن وجوه آن را دارد.

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

بستن کانال پرداخت

هنگامی که مالی و استیو بخواهند حساب‌های خود را ببندند کافی است با کلیدهای شخصی خود تراکنشی را امضاء کنند که مانده‌ی نهایی حساب‌های آن ها را به بلاک چین گزارش کند. در این مرحله ماینرها مانند معمول تراکنش را تایید کرده و آن را در دفتر کل ثبت می‌نمایند. این تراکنش بستن به مانند تراکنش باز کردن حساب صرفا یک فعل و انفعال میان طرفین و بلاک چین بیت کوین است.

در حالت دیگر ممکن است طرفین بخواهند برای قرارداد خود یک تاریخ انقضاء تعیین کنند. برای نمونه آن‌ها با استفاده از الگوریتم nLockTime می توانند یک کانال پرداخت به مدت 30 روز باز کنند. پس از سپری شدن این زمان کانال بسته می‌شود و مانده حساب نهایی به بلاک چین گزارش داده خواهد شد. هر بار که طرفین بخواهند مانده حساب خود را به‌روزرسانی کنند، تاریخ انقضای تعیین شده کاهش پیدا می‌کند. به این ترتیب اگر مالی و استیو در یک فصل روی چند مسابقه‌ی فوتبال شرط ببندند، هر بار که پول شرط‌بندی شده به عنوان گرو پرداخت شود، یک تاریخ انقضای جدید و کوتاه‌تر برای قرار داد nLockTime تعریف می‌شود، مثلا اگر اولین تراکنش تعهدی پس از 30 روز به پایان برسد، دومین تراکنش پس از 29 روز تمام می‌شود، سومی پس از 28 روز تمام می شود و به همین ترتیب بازه‌ی زمانی اولیه کاهش پیدا می‌کند.

هدف از ایجاد قراردادهای nLockTime ساده است، این قراردادها مانده حساب‌ها را به روز نگه می‌دارند و اجازه نمی‌دهند طرفین صورت حساب را جعل نمایند. همانطور که پیش‌تر گفتیم، هر بار که روی تراکنش تعهدی موافقت صورت می‌گیرد، مانده حساب قدیمی کنار می‌رود و مانده حساب جدید جای آن را می‌گیرد. هر کدام از طرفین صورت ثبت شده‌ی این مانده حساب جدید و همچنین رقم (کلید) تراکنش‌های قبلی را دریافت می‌کند و اگر یکی از طرفین بخواهد سر دیگری را کلاه بگذارد، مجازات خواهد شد.

پرداخت‌های چند کانالی و قراردادهای قفل شده زمان هش

« اگر مالی و استیو بخواهند برای یکدیگر بیت کوین بفرستند اما کانال پرداخت باز در اختیار نداشته باشند چه؟». در این صورت آن‌ها می‌توانند از طریق یک واسطه اقدام کنند. مثلا برای انجام آن به فردی با نام چاک (Chuck) تماس می‌گیرند.

مالی و استیو هر دو باید بین خود و چاک کانال پرداخت باز داشته باشند. در این صورت به جای باز کردن یک کانال جدید آن‌ها می‌توانند از کانال‌های پرداخت مشترک خود با چاک استفاده کنند و به واسطه‌ی چاک مبادله‌ی خود را به انجام برسانند. به لحاظ نظری فرض شده که افراد در این تبادل به یکدیگر اعتماد دارند. حالا نکته‌ی اصلی در آسان کردن مبادله و همچنین اطمینان از امنیت آن است. بدین منظور شبکه لایتنینگ از قراردادهای قفل شده زمان هش (HTLC) استفاده می‌کند.

 

شبکه لایتنینگ چیست
شبکه لایتنینگ چیست

فرض کنید مالی می خواهد 0.5 BTC به استیو بدهد، در این صورت استیو باید یک رشته‌ی رمزی (کریپتوگرافیک) ایجاد کند که از اعداد تشکیل شده و به آن یک « رقم » یا « مقدار » (Value) می گویند. این رشته‌ی عددی در حقیقت کلید یا کد تایید محسوب می‌شود. سپس استیو از این رقم یک هش می‌گیرد و آن را برای مالی می‌فرستند. برای ساده تر کردن توضیحات این فرآیند از این پس Value را V و هش را H می نامیم.

هنگامی که مالی Hها را دریافت می‌کند آن را با چاک به اشتراک می‌گذارد. در این مرحله اگر چاک V را ارائه دهد مالی فقط برای او 0.5 BTC می فرستند. چاک برای گرفتن V باید 0.5 BTC از بیت کوین‌های خودش را برای استیو ارسال کند و در عوض V بگیرد. هنگامی که چاک این عدد را دریافت کرد آن را برای مالی می‌فرستند و در نهایت مالی 0.5 برای چاک ارسال می‌کند. به این ترتیب مالی 0.5 BTC به استیو انتقال می‌دهد.

اگر روند کار را درست متوجه نشده‌اید، به مراحل صورت گرفته دقت کنید:

استیو V ایجاد می‌کند   استیو H را برای مالی می‌فرستند   مالی H را برای چاک می‌فرستند   چاک برای استیو بیت کوین می‌فرستد   استیو V را به چاک ارسال می‌کند   چاک V را برای مالی می‌فرستند   مالی برای چاک بیت کوین می فرستد

به این ترتیب رقم یا همان V نقش کلید / کد تایید را برای هش (H) بازی می کند و هش هم نقش رسید / قفل را در تراکنش ایفا می‌نماید.

« همه این‌ها درست، اما مالی از کجا بفهمد رقمی که چاک برای او فرستاده واقعیت دارد و اگر استیو بیت کوینی را که چاک برایش فرستاده بگیرد و برود چه؟ »

این دو پرسش‌های خوبی هستند که در ادامه پاسخ آن‌ها را شرح می‌دهیم. همانطور که nLockTime مانع از تقلب افراد در کانال پرداخت مشترک می‌شود، در این مدل قراردادهای قفل شده‌ی زمان هش طرفین را مجبور می‌کند تعهد خود را انجام دهند. HTLCها باعث می شوند وجوه تراکنش داده شده بیت کوین در یک کیف پول چند امضایی قفل شوند و آزاد شدن آن‌ها تنها در دو صورت امکان پذیر است: 1) با ارائه ی رقم (V) و هش (H)؛  2) با به پایان رسیدن تاریخ انقضای قرارداد.

این قواعد در عمل بدان معناست که اگر مالی و چاک با هم توافق کنند که مالی به استیو پولی بپردازد، مالی با استفاده از HTLC آن مقدار بیت کوینی را که به چاک بدهکار است در یک کیف پول چند امضایی قفل می کند. پس از اینکه چاک به استیو پول داد و V دریافت کرد می تواند V و H را در HTLC وارد کند و بیت کوینی را که مالی در قرارداد تعهد کرده بود تصاحب نماید. در سناریویی دیگر، اگر چاک نتواند آنچه را در قرارداد تعهد کرده به انجام برساند و قرارداد مثلا پس از یک هفته منقضی شود، آنگاه بیت کوین مالی آزاد می‌شود و به کیف پول شخصی او برمی‌گردد. همین فعل و انفعال در کانال پرداخت چاک و استیو صورت می‌گیرد. تا زمانی که استیو V را ارائه نکرده چاک نمی‌تواند بیت کوین خودش را در اختیار او قرار دهد. به محض اینکه استیو V را در قرارداد چند امضایی ارائه کند، این V در اختیار چاک قرار می‌گیرد و استیو می‌تواند بیت کوین خود را دریافت کند.

این فرآیند به لحاظ نظری در چندین کانال پرداخت و میان چند نفر قابل اجرا است.

شبکه لایتنینگ چیست
شبکه لایتنینگ چیست

 

جمع‌بندی: اهمیت شبکه لایتنینگ در چیست؟

این موضوع از پیچیدگی زیادی برخوردار است. گردآوری این اطلاعات در غالب توضیحات قابل فهم کار دشواری بود و اکنون که به اینجا رسیده‌اید چیزهای زیادی آموخته‌اید.

با اجتناب از تعبیر و تفسیرهای مفصل می‌توان گفت: شبکه لایتنینگ یک سیستم خارج از بلاک چین است که افراد با آن می‌توانند ارزهای خود با یکدیگر تبادل نمایند بدون آنکه مجبور باشند تمام تراکنش‌ها را در بلاک چین قرار دهند. در عمل تنها دو تراکنش (آغازی و پایانی) در بلاک چین ثبت می‌شود و بقیه‌ی تراکنش‌ها هر چند عدد که باشند از طریق یک لایه‌ی ثانویه یعنی لایه‌ای متشکل از گره‌ها که بیرون از بلاک چین قرار گرفته‌اند، پردازش می‌شوند.

این مدل دو مزیت کلیدی دارد:

انجام ریز تراکنش : شبکه لایتنینگ از امکان لازم برای انجام ریز تراکنش برخوردار است. با وجود شبکه‌ی لایتنینگ کاربران می‌توانند به جای پرداخت کارمزدهای گزافی که از ارزش وجوه جابجا شده می‌کاهد، مقادیر کوچکی از پول دیجیتالی را برای یکدیگر بفرستند و در عین حال مستقیما وارد شبکه‌ی بیت کوین نشوند. در این شیوه باید به اپراتورهای گره کارمزد پرداخت شود اما مقدار آن در مقایسه با کارمزد معمولی شبکه‌ی بیت کوین ناچیز است.

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

شاید برای شما این پرسش به وجود آمده باشد که یک کاربر معمولی چگونه می‌تواند فرآیندی را که توضیح داده شد طی کند و مراحل آن را تک به تک انجام دهد. درایا، پون و افرادی مانند آنان سرگرم کار روی اپلیکیشن‌ها و رابط‌های کاربری هستند که همه‌ی مراحل پیچیده‌ی فوق را انجام می‌دهند و کاربر تنها با زدن چند دکمه کار تراکنش را انجام خواهد داد.

در حال حاضر شبکه لایتنینگ روند توسعه بر روی بستر بیت کوین و ورت‌کوین (Vertcoin) را طی می‌کند. شبکه لایتنینگ هنوز یک تست نت (testnet) است و هنوز تاریخی برای راه اندازی شبکه اصلی آن اعلام نشده است.

ارسال پاسخ

آدرس ایمیل شما منتشر نخواهد شد.