Available on
شیر یا خط ** فصل ششم - قسمت چهارم **
شبکهی لایتنینگ راهکار مقیاسپذیری شبکهی بیتکوین (۲)
در دومین اپیزود از مجموعهی گفتگوهایمان دربارهی لایتنینگ، این بار شبکه را از زاویهی یک شبکهی پرداخت واقعی میبینیم. بعد از اینکه در قسمت قبل ساخت کانال میان دو نفر را کامل بررسی کردیم، حالا سراغ دو موضوع کلیدی میرویم: اینکه چطور میتوان جلوی تقلب یک طرف کانال را گرفت، و اینکه چطور یک پرداخت میان افرادی که مستقیماً با هم کانال ندارند مسیریابی و انجام میشود. اپیزودی پر از جزئیات فنی، مثالهای ساده و ملموس، و نگاهی به تئوری بازیها که پشت طراحی لایتنینگ نشسته است.
🇬🇧 English Summary
This second installment on the Bitcoin Lightning Network dives into how the Layer 2 scaling solution prevents cheating and enables off-chain payment routing, building on prerequisites like 2-of-2 multi-signature accounts, Bitcoin Script, Hashed Timelock Contracts (HTLCs), funding transactions, and commitment transactions. The hosts explain the fraud scenario in which a party broadcasts an outdated channel state to reclaim already-spent funds, and how it is deterred through revocation secrets (the “revocable key”), a configurable timelock window (commonly ~5 days / a set number of blocks), and a slashing-style penalty that lets the wronged party seize the cheater’s entire channel balance—an incentive/game-theory design assuming all actors are potentially malicious. They detail watchtowers, the monitoring software that watches the blockchain for fraudulent UTXO spends and can auto-broadcast justice transactions, covering self-hosted, free, subscription (e.g., Electrum, priced in satoshis), and encrypted third-party business models, plus beginner-friendly wallets like Phoenix and Muun that abstract these risks. The episode then transitions from single payment channels to the broader Lightning Network, explaining pathfinding across a graph of channels, channel capacity and receiving/sending liquidity limits, and multi-hop routing where intermediaries forward payments “pocket to pocket.” It draws analogies to internet routing concepts—best-effort/IP/BGP routing versus source-based routing like the Tor network—and describes Lightning’s use of source-based routing with onion packeting for privacy, gossip network topology discovery, DFS-style path algorithms, invoices with payment hashes, and Atomic Multi-Path Payments (AMP) for splitting larger transactions across multiple routes. It closes by previewing future topics including channel closing, Lightning clients and wallets, and the impact of Bitcoin upgrades like Taproot.
توضیحات اپیزود
این قسمت با یادآوری مختصری از اپیزود قبل شروع میشود؛ جایی که گفتیم لایتنینگ چیست، چه پیشزمینههایی از خود بیتکوین (مانند حسابهای چند امضایی و زبان اسکریپتینگ) برای پیادهسازی آن لازم است، و چطور دو نفر با ردوبدل کردن تراکنشهای فاندینگ و کامیتمنت یک کانال باز میکنند. نکتهی محوری این است که تراکنشهای لایتنینگ آفچین اتفاق میافتند و روی شبکهی بیتکوین ثبت نمیشوند؛ آخرین وضعیت کانال، همان چیزی است که «کانال استیت» یا channel state نامیده میشود. مشکل از اینجا آغاز میشود که هر طرف میتواند یک استیت قدیمیتر و بهنفع خودش را برداشته و به شبکه بفرستد؛ یعنی امکان تقلب همیشه وجود دارد.
برای مقابله با این تقلب، لایتنینگ بهجای تکیه بر انسان، از نرمافزار استفاده میکند. سرویسی بهنام واچتاور یا «برج مراقبت» کنار نود لایتنینگ اجرا میشود و مدام بلاکچین بیتکوین را رصد میکند تا اگر طرف مقابل یک استیت قدیمی را منتشر کرد، بهموقع واکنش نشان دهد. طراحی بهگونهای است که با استفاده از یک تأخیر زمانی (تایملاک، معمولاً حدود پنج روز بهصورت پیشفرض در برخی نرمافزارها) و یک «راز» یا سکرت که در هر مرحله میان دو طرف افشا میشود، فرد قربانی میتواند نهتنها تقلب را باطل کند بلکه کل پول کانال را بهعنوان تنبیه برای خودش بردارد. همین سازوکار انگیزهی تقلب را از بین میبرد.
در نیمهی دوم اپیزود، بحث به خود شبکهی لایتنینگ بهعنوان یک شبکهی پرداخت میرسد. حالا دیگر صحبت فقط میان دو نفر نیست؛ من میتوانم به کسی پرداخت کنم که با او کانال مستقیم ندارم، بهشرطی که مسیری از کانالهای متصل به هم میان ما پیدا شود. بچهها دربارهی محدودیتهای خاص این شبکه (مثل ظرفیت ارسال و دریافت هر کانال)، الگوریتم مسیریابی، مقایسه با مسیریابی در شبکههای کامپیوتری و شبکهی تور، و در نهایت مکانیزم پرداخت با اینوویس و HTLC صحبت میکنند.
نکات اصلی بحثشده
سناریوی تقلب و کانال استیت
- تراکنشهای لایتنینگ آفچین هستند و روی بلاکچین بیتکوین ثبت نمیشوند؛ فقط بین دو طرف کانال شناخته میشوند.
- «کانال استیت» آخرین وضعیت توزیع موجودی میان دو طرف است (مثلاً نیم بیتکوین برای من و نیم بیتکوین برای طرف مقابل).
- چون کانال هنوز روی شبکه نهایی و بسته نشده، هر طرف میتواند یک استیت قدیمیتر و بهنفع خودش را منتشر کند و همین امکان تقلب را میسازد.
مکانیزم تنبیه و ابطال استیتهای قبلی
- در هر مرحله دو تراکنش کامیتمنت ساخته و ردوبدل میشود؛ سهم طرف مقابل بلافاصله برمیگردد اما سهم خود شخص با یک تأخیر زمانی قابل برداشت است.
- این تأخیر زمانی (تایملاک) به طرف قربانی فرصت میدهد تا در صورت مشاهدهی تقلب واکنش نشان دهد؛ در برخی نرمافزارها پیشفرض حدود پنج روز است.
- در هر بروزرسانی استیت، دو طرف یک «راز» به هم میدهند که کامیتمنتهای قبلی را ملغا میکند؛ همین راز امکان تنبیه را فراهم میکند. (در قسمت قبل این را با نام ریوکبلکی توضیح دادیم.)
- اگر کسی تقلب کند، نه فقط تراکنشش باطل میشود بلکه کل پولش را هم از دست میدهد.
واچتاور یا برج مراقبت
- واچتاور نرمافزاری است که کنار نود لایتنینگ اجرا میشود و بلاکچین بیتکوین را رصد میکند تا تراکنش تقلبی را تشخیص دهد.
- دو کارکرد دارد: مانیتورینگ برای تشخیص تقلب، و بهصورت خودکار (اگر کامیتمنت تراکنشها دستش باشد) منتشر کردن تراکنش تنبیهی بهجای شما.
- عدد پنجروزه از نظر انسانی هم قابلبررسی است؛ میتوان بدون اجرای واچتاور، دستی هم شبکه را چک کرد، اما برای کاهش ریسک میتوان از سرویسهای واچتاور استفاده کرد.
- مثال ملموس: اگر کسی شما را جایی زندانی کند و به اینترنت دسترسی نداشته باشید، واچتاور میتواند بهجای شما عمل کند و طرف متقلب را تنبیه کند.
تئوری بازیها و انگیزش
- سیستم با فرض اینکه همه ممکن است بدرفتار باشند طراحی شده؛ بهجای صرفاً پاداش دادن به رفتار خوب، تنبیه سنگین برای تقلب گذاشته میشود.
- مثال ماشین: اگر جریمهی تصادف و فرار آنقدر سنگین باشد که ماشینت را از دست بدهی، انگیزهی فرار از بین میرود.
- اگر هر بلاک بیتکوین را یک شانس در نظر بگیریم، در بازهای مثلاً دو هزار بلاکی (حدود دو هفته) شانس برد متقلب یک به دو هزار میشود و انگیزهی تقلب بهشدت پایین میآید.
پیادهسازی و مدلهای بیزینسی واچتاور
- واچتاور میتواند سلفهاست باشد (کنار نود خودتان، رایگان) یا بهصورت ترد پارتی بهعنوان یک بیزینس ارائه شود.
- برخی سرویسها رایگاناند، برخی مدل سابسکریپشن دارند (مثلاً پرداخت ماهانهی مبلغی مثل ده هزار ساتوشی، اشاره به الکترام).
- بعضی واچتاورها اجازه میدهند کامیتمنت تراکنشها را انکریپتشده بفرستید که به پرایویسی هم کمک میکند.
- در کیف پولهای سادهتر روشهای یوزرفرندلیتری استفاده میشود؛ مثلاً فینیکس والت که چون شما فقط به نود آنها وصل میشوید و آنها نمیتوانند علیه شما تقلب کنند، نیازی به واچتاور ندارید. برخی کیف پولهای مبتدی هم اصلاً دارایی را آنچین نگه میدارند.
مسیریابی در شبکهی لایتنینگ
- باز کردن کانال با هرکسی که میخواهیم به او پرداخت کنیم منطقی نیست؛ نود لایتنینگ وظیفهی پیدا کردن مسیری از مبدأ به مقصد را دارد، حتی اگر کانال مستقیمی وجود نداشته باشد.
- شبکه بهصورت یک گراف دیده میشود که یالهای آن کانالها هستند و الگوریتم مسیری در این گراف پیدا میکند.
- هر کانال محدودیت دارد: مشخص است چقدر پول سمت هر طرف است (ظرفیت ارسال و دریافت). این محدودیتها میتوانند روی مسیریابی اثر بگذارند.
- در لایتنینگ تا زمانی که طرف مقابل مبلغی در کانال نگذاشته باشد، نمیتوانید دریافت کنید؛ مفهومی بهنام ظرفیت دریافت که در سایر شبکههای پرداخت با آن مواجه نیستیم.
- راهکاری معروف برای عبور مبالغ بزرگتر، AMP یا Atomic Multipath Payment است که پرداخت را به چند تکه میشکند و از مسیرهای مختلف میفرستد و در مقصد دوباره جمع میشود.
مقایسه با مسیریابی شبکهای، شبکهی تور و آنیون پکتینگ
- دو نوع مسیریابی در علم کامپیوتر: Best Effort Routing (مثل IP Routing و پروتکل BGP) و Source Based Routing.
- لایتنینگ از Source Based Routing استفاده میکند و ایدهای مشابه شبکهی تور دارد.
- در شبکهی تور، پکت از انتری نود، نودهای میانی و اگزیت نود عبور میکند و هر نود فقط مبدأ و مقصد بعدی خودش را میداند.
- آنیون پکتینگ (بستهبندی پیازی): دیتا لایهلایه با کلید هر نود انکریپت میشود تا هر هاب فقط دیتای قبلی و بعدی را بداند و پرایویسی حفظ شود.
- در لایتنینگ فرستنده با کمک گاسیپ نتورک، توپولوژی شبکه و کانالهای پابلیک را میگیرد و با الگوریتمی (مثل جستوجوی عمقی) مسیر متناسب با ظرفیت ارسال و دریافت را پیدا میکند.
مکانیزم پرداخت، اینوویس و HTLC
- برای دریافت، گیرنده یک اینوویس (همان کیوآرکدهایی که ردوبدل میشود) میفرستد که داخلش یک هش از یک عدد رندوم قرار دارد.
- در طول مسیر HTLCهای موقتی برای هر هاب ساخته میشود؛ وقتی پرداخت به گیرنده میرسد، او عدد رندوم را ریویل میکند و این مقدار برمیگردد و همهی HTLCها کامیت میشوند و هرکس در مسیر به پول خودش میرسد.
- تصویر سادهی زیا: کانالها مثل جیبهای ما هستند؛ پول جیببهجیب از مبدأ تا مقصد جابهجا میشود و کسی نمیتواند این عملیات را نیمهکاره متوقف کند؛ فقط وقتی مقصد تأیید کرد، بقیه پول را برمیدارند.
نتیجهگیری
در این قسمت سناریوی تقلب در لایتنینگ را از سطح پروتکل تا نحوهی پیادهسازی و نقش واچتاور بهطور کامل بررسی کردیم و دیدیم چطور تئوری بازیها و مکانیزم تنبیه، انگیزهی تقلب را از بین میبرد. سپس لایتنینگ را بهعنوان یک شبکهی پرداخت شناختیم؛ اینکه چطور مسیر میان مبدأ و مقصد پیدا میشود و بعد از یافتن مسیر، پرداخت بهصورت جیببهجیب و با کمک HTLC انجام میشود. در اپیزود بعدی سراغ نحوهی بستن کانال، معرفی نرمافزارها و کیف پولها، و تأثیر آپگریدهای بیتکوین مانند تپروت بر لایتنینگ خواهیم رفت.
لینک های این اپیزود:
-
وبسایت آموزش بیتکوین به زبان فارسی: https://bitcoind.me/
-
کانال یوتیوب ضیا صدر: https://www.youtube.com/c/ZiyaSadr
-
اپیزود شیریاخط در مورد لایتنینگ : https://shiryakhat.net/2019/08/lightning-segwit.html
قسمتهای مرتبط
- لایتنینگ – قسمت ۱ — قسمت اول همین مجموعه که پیشزمینهی این اپیزود است؛ در متن بارها به آن ارجاع داده و توصیه به شنیدنش شده (تراکنشهای کامیتمنت و فاندینگ، کانال دو نفره).
- لایتنینگ – قسمت ۳ — ادامهی مستقیم این اپیزود؛ در پایان قول داده شده بستن کانال، کیفپولها و تأثیر تپروت در قسمت بعد بررسی شود.
- سگویت و لایتنینگ — معرفی اولیهی شبکه لایتنینگ و سگویت که پایهی فنی مباحث این اپیزود است.
- مقیاسپذیری – قسمت ۱ — زمینهساز کل بحث؛ لایتنینگ بهعنوان راهکار مقیاسپذیری و لایه دوم بیتکوین معرفی میشود که موضوع محوری این اپیزود است.
- مقیاسپذیری – قسمت ۲ — راهکارهای لایه دومی مقیاسپذیری را بررسی میکند که لایتنینگ نمونهی اصلی آن است.