مقیاسپذیری (Scalability) و بهصرفهبودن تراکنشهای کوچک (ریزپرداختها) همواره موضوع بحث جامعه ارزهای دیجیتال بوده است. یکی از راهکارهای نوآورانه برای حل مشکل مقیاسپذیری انتقال تراکنشها از شبکه اصلی به لایهدوم است. شبکه لایتنینگ (Lightning Network) برای پیادهسازی همین راهکار در بلاک چین بیت کوین ساخته شده است. هزاران نفر از سراسر جهان نودهای لایتنینگ را راهاندازی کردهاند تا زیرساخت کافی را برای فعالیت این شبکه تأمین کنند؛ اما این شبکه با مشکلاتی مانند چنل جمینگ مواجه است.
درحالحاضر، شبکه لایتنینگ محبوبترین راهکار مقیاسپذیری بیت کوین است؛ اما کاستیها و ایرادهایی وجود دارد که اگر قرار باشد بیت کوین بهصورت گسترده برای پرداختهای روزانه بهکار رود، باید برای رفع آنها اقدام کرد. یکی از این کاستیها موضوعی است که راه را برای حملهای موسوم به «بستن کانال» یا چنل جمینگ (Channel Jamming) هموار و امنیت این شبکه را با تهدید مواجه میکند.
در مقاله حاضر، قصد داریم این نوع از حملات را به زبانی ساده شرح دهیم تا کسانی که از شبکه لایتنینگ استفاده میکنند، با این موضوع بیشتر آشنا شوند. درعینحال، دلایل اهمیت آن و راههای پیشگیری از چنین حملههایی موضوعاتی هستند که درادامه به آنها اشاره میکنیم. از شما دعوت میکنیم تا انتهای این مطلب همراه ما باشید.
حمله بستن کانال یا چنل جمینگ چیست و انواع آن کداماند؟
یکی از حملاتی که ممکن است در شبکه لایتنینگ اتفاق بیفتد، این است که مهاجمی تعداد زیادی تراکنش به آدرس خود بفرستد و از این طریق کانالِ پرداخت را دچار انسداد کند. به این کار حمله بستن کانال میگویند. برای اینکه بفهمیم حمله بستن کانال چیست، ابتدا باید بدانیم شبکه لایتنینگ چگونه کار میکند.
شبکه لایتنینگ لایهدومی است که روی بلاک چین اصلی بیت کوین ساخته شده است و با ایجاد کانالهایی برای پرداختهای خُرد در خارج از شبکه اصلی، تراکنشها را سریعتر و بسیار ارزانتر اجرا میکند. همانطورکه میدانید، برای انجام هر تراکنش به وجود دو طرف نیاز است که در اینجا به آنها «فرستنده» و «گیرنده» میگوییم.
در شبکه لایتنینگ، ابتدا فرستنده و گیرنده با ایجاد آدرسی چندامضایی و ارسال مقداری بیت کوین به آن، کانال پرداختی دوطرفهای میسازند. این کانال درواقع با ثبت تراکنشِ باز در قالب موجودی قفلشده در بلاک چین اصلی بیت کوین ایجاد میشود. کاربران میتوانند بیت کوین قفلشده را در هر تعداد تراکنشی که میخواهند، در شبکه لایتنینگ به طرف دیگر کانال ارسال کنند.
پس از تکمیل تراکنشها، فرستنده و گیرنده کانال را میبندند و تسویهحساب میکنند. وقتی کانال بسته شود، تراکنش تسویهحساب به بلاک چین اصلی ارسال و باعث میشود تراکنشی که در ابتدا روی بلاک چین اصلی بیت کوین انجام شد، نهایی و بسته شود.
اکنون که تصویری کلی از نحوه کار شبکه لایتنینگ بهدست آوردید، حمله بستن کانال را توضیح میدهیم. این حمله زمانی اتفاق میافتد که کاربر مخربی تراکنش یا تراکنشهای متعددی را ازطریق کانال ثالثی به خود ارسال کند؛ اما رشته محرمانه تراکنشها را نفرستد. در چنین وضعیتی، تراکنش یا تراکنشهای ارسالی این کاربر در کانال پرداخت معلق میماند. این کار باعث تکمیل ظرفیت کانال و قفلشدن نقدینگی یا تجمع تراکنشهای ناتمام در آن کانال میشود. حمله بستن کانال از جهتی شبیه حمله محرومسازی از سرویس یا DDoS است.
چنل جمینگ از دو راه ممکن است انجام شود:
۱. مسدودسازی ظرفیتی (Amount Jamming): در این روش، مهاجم بخش زیادی از ظرفیت کانالِ هدف را قفل میکند. گفتنی است هر کانال که در شبکه لایتنینگ ایجاد میشود، مقدار مشخصی بیت کوین را میتواند انتقال دهد که به آن ظرفیت کانال میگوییم. در این حمله، مهاجم تراکنش ناتمامی را با حداکثر ظرفیت قابلپردازش در کانال ارسال میکند و باعث تکمیل ظرفیت و قفلشدن آن میشود.
۲. مسدودسازی تعدادی (Slot Jamming): هر کانال درکنار محدودیت مقدار بیت کوینهای ارسالی، محدودیت تعداد تراکنشهای ناتمام هم دارد. در مسدودسازی تعدادی، مهاجم تعداد زیادی تراکنش ناتمام ارسال میکند تا محدودیت پرداختهای معلق را پر کند. هر کانال فقط میتواند ۴۸۳ تراکنش معلق در هر جهت داشته باشد که ازلحاظ فنی به محدودیت تعداد تراکنشهای بیت کوین بازمیگردد. وقتی تعداد تراکنشهای معلق به حداکثر برسد، آن کانال دیگر امکان پردازش تراکنشهای بیشتر را ندارد.
هر دو نوع حمله چنل جمینگ باعث بستهشدن کانالِ هدف میشود؛ اما فرایند مسدودسازی تعدادی معمولاً هزینه کمتری از مسدودسازی ظرفیتی دارد. مهاجم برای هر دو نوع حمله به موجودی بیت کوین نیاز دارد؛ اما تعداد زیادی تراکنش کمحجم برایش ارزانتر از تراکنشی با ابعادی بهاندازه ظرفیت کل کانال است.
دلیل حمله چنل جمینگ چیست؟
مهاجمان دلایل مختلفی برای انجام حمله بستن کانال میتوانند داشته باشند. یکی از این دلایل حمله به خودِ شبکه بیت کوین است. مهاجمی که چنین انگیزهای دارد، میتواند همه کانالهای شبکه را با این نوع حمله مسدود کند و باعث ازکارافتادن بخش بزرگی از شبکه شود. چنین حمله گستردهای به سرمایه زیادی نیاز دارد؛ اما باتوجهبه اینکه شبکه بیت کوین در حال رشد و تبدیلشدن به جایگزینی برای سیستمهای مالی دولتی است، نباید بهعنوان یک احتمال دستکم گرفته شود.
انگیزه دیگر برای انجام حمله بستن کانال میتواند در میان فروشگاههای رقیب شکل بگیرد. شبکه لایتنینگ یکی از ابزارهای پرداختی است که بیشترین کاربرد را در فروشگاهها دارد و هماکنون نیز فروشگاههای بسیاری در سراسر جهان از آن استفاده میکنند. ممکن است یکی از فروشگاهها برای از میدان بهدرکردن رقیب خود، چنل جمینگ علیه آن ترتیب دهد. این کار هم میتواند باعث تحمیل هزینه سنگین کارمزد برای آن فروشگاه شود و هم با مسدودکردن کانال پرداخت، مشتریان آن را بهسمت فروشگاه رقیب هدایت کند.
گردانندگان نودهای شبکه لایتنینگ نیز ممکن است از چنل جمینگ علیه یکدیگر استفاده کنند. چهبسا یکی از گردانندگان نود برای مسدودکردن کانالهای ارتباطی نود رقیبی که اتصالهای مشابهی با آن دارد، رقیبش را هدف چنل جمینگ قرار دهد تا اعتبار آن را خدشهدار کند. با این کار، اتصالهای آن نود تراکنشهای خود را به نود مهاجم منتقل میکنند.
چرا حمله بستن کانال برای شبکه لایتنینگ اهمیت فراوانی دارد؟
احتمال حمله مسدودسازی تعدادی به کانالهای شبکه لایتنینگ و برخی محدودیتهای فنی شبکه وابسته است؛ بنابراین، میتوان گفت یکی از راهحلهای رفع خطر حمله جمینگ، برطرفکردن ایرادهای فنی پروتکل و محدودیتهای موجود بازمیگردد.
با اعمال تغییراتی در پروتکل شبکه لایتنینگ، میتوان محدودیت تراکنشهای معلق را افزایش داد. برای این کار، میتوان ساختار تراکنشهای درونزنجیرهای شبکه لایتنینگ را طوری اصلاح کرد که تعداد تراکنشهای بیشتری در آن جای گیرد یا خودِ بلاک چین بیت کوین طوری اصلاح شود که از ورودیهای بیشتری برای تراکنشهای مربوط به شبکه لایتنینگ پشتیبانی کند.
احتمال چنل جمینگ زنگخطری برای طرفداران بیت کوین است. بسیاری چشمانتظار سقوط بیت کوین یا دستکم واردکردن آسیبی کوتاهمدت به آن هستند و این امر میتواند از راه آسیبپذیریهای موجود در شبکه لایتنینگ انجام شود. البته نباید فراموش کنیم که این شبکه هنوز جای پیشرفت و آزمونوخطا بیشتری دارد. همانطورکه دانش ما از امنیت و مشکلات مقیاسپذیری بیشتر میشود، پروتکل لایتنینگ هم به بلوغ خود ادامه میدهد و استحکام بیشتری مییابد.
چگونه میتوان از حملات بستن کانال جلوگیری کرد؟
یکی از عوامل کاهش انگیزه برای حمله بستن کانال هزینه مالی و هزینه فرصت آن است که به عوامل خارجی مربوط میشود. هر حملهای هزینهای دارد و مهاجم درصورتی دست به آن حمله میزند که سود آن از هزینهاش بیشتر باشد. بدیهیترین هزینه حمله بستن کانال برای مهاجم این است که باید مقداری بیت کوین داشته باشد و کارمزد دو تراکنش (تراکنش بازکردن کانال و تراکنش بستن کانال) را در بلاک چین بیت کوین پرداخت کند.
موضوع هزینه در فرایند مسدودسازی تعدادی چندان مطرح نیست؛ چراکه میتوان ۴۸۳ تراکنش را با حداقل بیت کوین موردنیاز برای هر تراکنش انجام داد. برای مثال، اگر هر تراکنش را ۱۰ ساتوشی در نظر بگیریم، مجموع هزینه میشود ۴۸٬۳۰۰ ساتوشی (۰.۰۰۰۴۸۳ بیت کوین) که مبلغ ناچیزی است. بااینحال، برای مسدودسازی ظرفیتی که در آن باید کل ظرفیت یک کانال یا درصورت گستردگی، ظرفیت چندین کانال مسدود شود، هزینه چشمگیری نیاز است و این خود میتواند انگیزه حمله را کاهش دهد. البته اگر مهاجم انگیزهای جدی داشته باشد، موضوع هزینه نیز اهمیت چندانی نخواهد داشت.
برای جلوگیری از حملات بستن کانال راهکارهایی نیز مطرح شده است که نیازمند اعمال تغییراتی در پروتکل شبکه لایتنینگ یا بلاک چین بیت کوین است. یکی از راهحلها این است که حداکثر تراکنشهای معلق برای هر کانال افزایش یابد. در این صورت، هزینه انجام حمله چنل جمینگ برای مهاجم بیشتر میشود؛ چراکه باید تعداد بیشتری تراکنش ارسال کند. بااینحال، این راهکار احتمال حمله را از بین نمیبرد؛ بلکه آن را کمتر میکند.
دیگر راهکار ارائهشده این است که دو نوع محدودیت برای تعداد تراکنشهای معلق در نظر گرفته شود: یکی برای تراکنشهای بسیار کوچک و یکی برای تراکنشهای بزرگتر. یادآوری این نکته لازم است که مقادیر بسیار اندک بیت کوین در این بلاک چین انتقالدادنی نیست. مبلغ انتقال باید بیشتر از کارمزد تراکنش شبکه باشد تا امکان کسر کارمزد از آن وجود داشته باشد. به کمترین مقدار انتقالپذیر بیت کوین داست (Dust) گفته میشود.
محدودیت ۴۸۳ تراکنشی برای تراکنشهای کمتر از داست مفهومی ندارد؛ چراکه این مقدار بیت کوین اصلاً در شبکه اصلی انتقالدادنی نیست. درنتیجه، منطقی بهنظر میرسد که این محدودیت فقط برای تراکنشهای بیشتر از داست در نظر گرفته شود. درصورت اعمال چنین محدودیت دوگانهای، دیگر نمیتوان مسیر تراکنشهای سنگین را با فرایند مسدودسازی تعدادی و ازطریق انبوهی از تراکنشهای ناچیز مسدود کرد؛ یعنی مهاجم برای مسدودکردن تراکنشهای حجیم باید دستکم ۴۸۳ تراکنش با مبلغ زیاد تولید کند. چنین محدودیتی هزینه حمله بستن کانال را افزایش میدهد. بااینحال، این راهکار تأثیر درخورتوجهی روی فرایند مسدودسازی ظرفیتی نمیگذارد.
آنتونی ریارد (Antoine Riard) و گلب نومنکو (Gleb Naumenko) نیز پیشنهاد کردهاند که کارمزد تراکنشها براساس مدتزمان ارسال تا اتمام تراکنش از کاربران گرفته شود. بهبیان بهتر، واحدهای زمانی برای فاصله ارسال تا اتمام تراکنش تعریف و برای هر واحد زمانی کارمزدی تعیین شود. بدینترتیب، هرچه مدتزمان معلقماندن تراکنش بیشتر شود، کارمزد بیشتری به ارسالکننده تراکنش تحمیل میشود. این امر باعث میشود که تراکنشهای معلق برای کاربر هزینهزا باشد.
یکی دیگر از راهکارهای جلوگیری از حملات بستن کانال افزونهای است که برای نودها در نظر گرفته شده است. نودها با نصب این افزونه روی نرمافزار خود، تعداد تراکنشهای عبوری را محدود و از هجوم انبوهی از تراکنشها جلوگیری میکنند. این افزونهها این امکان را نیز به نودها میدهند که سقف تعداد تراکنشها را برای نودهای مورداعتماد خود افزایش دهند.
جمعبندی
شبکه لایتنینگ یکی از راهکارهای مهم مقیاسپذیری بیت کوین بهشمار میآید که بهصورت لایهدوم روی این بلاک چین قرار گرفته است. لایتنینگ با ریسکهایی روبهروست که یکی از آنها وجود احتمال حمله بستن کانال یا چنل جمینگ است. در مقاله حاضر، این نوع حمله را بررسی کردیم و نحوه انجام و انواع آن را توضیح دادیم. همچنین، راهکارهای پیشنهادشده برای جلوگیری از آن را بررسی کردیم.
همانطورکه گفتیم، راهکارهای جلوگیری از حمله بستن کانال دو دسته هستند که یکی به اصلاح پروتکل لایتنینگ و دیگری به اصلاح پروتکل بلاک چین اصلی بیت کوین مربوط میشود. اگرچه این راهکارها مانعی بر سر راه مهاجمانی هستند که قصد حمله جمینگ دارند و انجام این حمله را سخت میکنند، رفع کامل ریسک این حمله با حفظ ماهیت بدون نیاز به مجوزِ شبکه لایتنینگ غیرممکن است.
باید توجه کرد که راهکارهای جلوگیری از چنل جمینگ محدود هستند؛ اما همین روشهای اندک را میتوان روی پروتکل این شبکه و نودها بهکار بست. البته راهکارهای اساسیتر نیازمند تحقیقات بیشتر و بررسی مباحث گستردهتری هستند. باید دید که جامعه بیت کوین و شبکه لایتنینگ چگونه برای رفع این مشکل تلاش میکنند تا این ارز دیجیتال همواره به رشد و گسترش خود ادامه دهد.