شبکه لایتنینگ به زبان خیلی ساده!

این مطلب در وب سایت ارزنگار با عنوان شبکه لایتنینگ (Lightening network) به زبان ساده منتشر شده است.

فناوری لایتنینگ به زبان ساده
فناوری لایتنینگ به زبان ساده

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

مقدمه‌ای بر بلاک چین

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

به همین دلیل است که هر راه‌حلی که بتواند این مشکل را حل کند، می‌تواند بسیار ارزشمند باشد. شبکه لایتنینگ یکی از این راه‌حل‌ها است. اما پیش از بررسی شبکه لایتنینگ ابتدا باید درک بهتری از مساله داشته باشیم.

چرا بلاک چین ها کند هستند؟

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

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

فرض کنید یک بیت کوین برای دوست‌تان به اسم جواد می‌فرستید. این تراکنش تقریبا به شکل زیر ثبت می‌شود.

در واقع، اطلاعات فرستنده، گیرنده، میزان بیت کوین انتقال یافته و کارمزد و نیز برخی اطلاعات دیگر از تراکنش ثبت می‌شود.

کارمزد تراکنش

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

در هر لحظه، چندین تراکنش وجود دارد که باید بر روی صفحه (بلوک) ثبت شود.

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

اگر چندین تراکنش، کارمزدی بالاتر از کارمزد تراکنش شما داشته باشند، تراکنش‌تان مدتی در صف انتظار می‌ماند. این مدت می‌تواند بین چند دقیقه تا چند ساعت و حتی چند روز باشد. هر قدر کارمزد بیشتری بپردازید، تراکنش‌تان نیز سریع‌تر مورد پردازش قرار می‌گیرد و در بلوک ثبت می‌شود.

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

در این میان، شبکه لایتنینگ (Lightning) راه‌حلی بالقوه برای این مساله به شمار می‌رود.

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

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

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

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

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

فرض کنید علی بخواهد ۲ بیت کوین برای امین بفرستد. در این صورت کافی است فرشته ۲ بیت کوین برای امین بفرستد و علی ۲ بیت کوین به فرشته بدهکار شود.

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

کانال پرداخت چیست؟

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

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

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

تصور کنید علی و فرشته در صندوق مشترک خود ۱۰ بیت کوین دارند. اگر علی بخواهد ۲ بیت کوین به فرشته بفرستد، چطور می‌تواند این کار را انجام دهد؟

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

فرض کنید روز بعد نیز فرشته بخواهد یک بیت کوین برای علی بفرستد. در این صورت او یک وعده مالکیت یکی از بیت کوین‌هایش را برای علی می‌فرستد. پس از انجام این دو تراکنش، جعبه باز می‌شود و علی صاحب ۹ بیت کوین و فرشته صاحب ۱۱ بیت کوین خواهد بود.

برای درک بهتر نتیجه این تراکنش، تصویر زیر را ببینید.


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

بستن کانال به معنای باز کردن صندوق و برداشتن پول درون آن است. در این صورت، مقدار پولی که هر کدام از طرفین دارند بر روی بلاک چین ثبت می‌شود.

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

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

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

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

در این وضعیت، اگر علی بخواهد ۲ بیت کوین برای امین بفرستد، می‌تواند از کانال بین فرضته و امین برای این کار استفاده کند. اما چطور؟

علی از فرشته می‌خواهد وعده مالکیت ۲ بیت کوین را از طریق کانال پرداخت بین فرشته و امین برای امین بفرستد. در این صورت، علی ۲ بیت کوین در کانال پرداخت بین خودش و فرشته به فرشته بدهکار می‌شود.

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