تقسیم و تعویض پرداخت: بهبود حریم خصوصی و موفقیت پرداخت به طور همزمان
یکی از محدودیت های اساسی پروتکل لایتنینگ نحوه مدیریت و انجام مسیر پرداخت است. این کاملاً منبع مسیریابی است، به این معنی که فرستنده پرداخت کسی است که کل مسیر را از خود به گیرنده ایجاد می کند تا پرداخت را تسهیل کند. این موضوع زمانی که نوبت به تغییر تعادل کانالها در طول زمان میرسد، به وجود میآید، زیرا آنها در حال مسیریابی پرداختها بین کاربران مختلف در سراسر شبکه هستند، هنگامی که فرستنده «قفل» میکند و در مورد یک مسیر خاص تصمیم میگیرد، آن مسیر نمیتواند تغییر کند تا زمانی که خراب شود. پیام راه را به فرستنده باز میگرداند و به آنها اجازه میدهد مسیری کاملاً جدید بسازند که در اطراف نقطهای که تلاش اولیه شکست خورده است.
این امر مستلزم پرداختن به یک UX دست و پا گیر و آزاردهنده است، یا استفاده از کاوش پرداخت، پرداخت هایی که عمداً با شکست مواجه خواهید شد، فقط برای اینکه ببینید آیا مسیری که می خواهید استفاده کنید قبل از تلاش مجدد با پرداخت واقعی کار می کند یا خیر. مورد اول فقط یک تجربه کاربری بد است و آن چیزی نیست که شما می خواهید زمانی که می خواهید چیزی را ایجاد کنید تا یک راه حل پرداخت قابل دوام برای افراد در مقیاس باشد، و دومی بار نامناسبی را بر کل شبکه وارد می کند زیرا گره های مسیریابی باید با شبکه مقابله کنند. عوارض ترافیکی و نقدینگی ناشی از پرداختهای ثابت بدون قصد نهایی شدن صرفاً برای آزمایش دوام یک مسیر.
علت نهایی این مشکلات ناتوانی مسیر در تغییر اواسط پرداخت بدون دخالت فرستنده است. از آنجایی که کل مسیر پرداخت پیاز رمزگذاری شده است، انجام این کار واقعاً ممکن نیست. هر پرش فقط از جهش قبل از خود آگاه است، و پرش بعد از آن، آنها هیچ اطلاعی از مقصد نهایی ندارند تا بتوانند یک مسیر جایگزین از آنها به گیرنده ایجاد کنند.
در حال حاضر، در حالی که این یک مانع بزرگ برای دور شدن از مسیریابی مبتنی بر منبع است، به طور کامل از آن جلوگیری نمی کند. بهعنوان یک گره واسطه، در حالی که نمیتوانید یک مسیر جدید را بهطور کامل از خود به مقصد بازسازی کنید، میتوانید پرداخت را از خودتان به پرش بعدی تعریفشده در مسیر انتخابشده توسط فرستنده تغییر مسیر دهید. بنابراین اگر باب مبلغی را دریافت کند که قرار است به کارول ارسال کند، و کانالی که قرار است آن را از طریق آن مسیریابی کند، ظرفیت لازم برای فوروارد کردن آن را ندارد، میتواند آنچه را که میتواند از طریق آن کانال ارسال کند و بقیه را مسیریابی کند. مبلغ پرداخت را از طریق مسیرهای دیگری که می تواند از خود به کارول پیدا کند.
ماه گذشته Gijs van Dam یک افزونه اثبات مفهومی برای CLN نوشت (در اینجا موجود است) که دقیقاً همین کار را انجام میدهد و بر اساس پرداختهای چند مسیری است که اجازه میدهد پرداخت تقسیم شود و مسیرهای متعددی را به سمت گیرنده طی کند. اگر باب و کارول هر دو پلاگین را اجرا می کنند، در موقعیت های مناسب، می توانند با یکدیگر ارتباط برقرار کنند که پرداختی که در یک کانال ارسال می شود در واقع تا حدی تغییر مسیر داده است تا کارول با دیدن آنچه که دارد فوراً آن را رها نکند. ارسال شده کمتر از چیزی است که انتظار می رود او ارسال کند. به این ترتیب، اگر مسیرهای جایگزینی بین باب و کارول در دسترس باشد، زمانی که مسیری که فرستنده تصمیم گرفته است قابل اجرا نیست، آنها به سادگی می توانند مقدار مورد نیاز را تغییر مسیر دهند و پرداخت می تواند بدون شکست کامل انجام شود، به فرستنده بازگردانده شود، و توسط فرستنده تغییر مسیر داده شود. آنها
اگر به طور گسترده به عنوان یک رفتار استاندارد در شبکه مورد استفاده قرار گیرد، میتواند تأثیر مثبت زیادی در میزان موفقیت پرداختها داشته باشد، و UX کاربران لایتنینگ را که به دنبال یک مکانیسم پرداخت ساده هستند، بهشدت بهبود میبخشد. این یک رفتار فوق العاده ساده و منطقی است که می تواند به طور قابل توجهی یک نقص شناخته شده را بهبود بخشد. هر چند این تمام چیزی نیست که می تواند انجام دهد.
یکی از دلایل بزرگی که Gijs van Dam به پرداختن به این موضوع علاقه مند شد، در واقع هیچ ربطی به صرفاً بهبود نرخ موفقیت پرداخت و UX برای کاربران ندارد، در واقع به دلیل نقص حریم خصوصی بود. یکی از مسائل شناخته شده حریم خصوصی که لایتنینگ در برابر آن آسیب پذیر است، کاوش کانال است، این مشکلی است که Gijs به آن توجه داشت.
همانطور که در بالا ذکر کردم توسط برخی کیف پول ها برای اطمینان از موفقیت پرداخت قبل از پرداخت واقعی استفاده می شود، اما این تکنیک همچنین می تواند برای اطمینان از توزیع وجوه در هر دو طرف کانال استفاده شود. به طور مکرر و با مقادیر دقیق انتخاب شده انجام می شود، موفقیت و شکست هر تلاش کاوشگری می تواند استنباط کند که چگونه وجوه در هر طرف کانال تقسیم می شود. این روش حتی بیشتر از این هم انجام می شود و به طور منظم در کانال های متعدد انجام می شود، این تکنیک حتی می تواند با مشاهده به طور موثر در زمان واقعی و تغییر تعادل بین کانال ها، پرداخت ها را بی نام کند.
لایتنینگ به طور مداوم به عنوان یک ابزار حفظ حریم خصوصی برای استفاده تراکنشها در نظر گرفته میشود، اما واقعیت این است که تکنیکهایی مانند بررسی کانالهای حریم خصوصی در بسیاری از موارد میتواند در بهترین حالت بدون اینکه کاربر در نحوه تعامل با شبکه پیچیده باشد، ضعیف باشد. یکی از عوارض جانبی جالب تقسیم و تعویض پرداخت این است که حملات کاوشگری را تضعیف می کند. دلیل اینکه یک حمله کاوشگر کار می کند این است که می توانید با مقادیر مختلف به بررسی ادامه دهید تا زمانی که پرداخت با شکست مواجه شود. اگر این کار به درستی انجام شود، محدوده بسیار کمی بین آخرین تلاش موفقیت آمیز پرداخت و شکست ناموفق که توزیع موجودی کانال است، به شما می دهد.
در دنیایی که گرههای لایتنینگ میتوانند پرداختهای بخشهایی را که در غیر این صورت با شکست مواجه میشوند، تغییر مسیر دهند تا موفق شوند، این فرض ذاتی که کاوش تعادل کانال بر آن تکیه میکند کاملاً شکسته میشود. زمانی که کانال خاصی که تصمیم گرفتید از آن عبور کنید، نقدینگی لازم برای ارسال آن را نداشته باشد، تلاش پرداخت شما با شکست مواجه خواهد شد. با تقسیم پرداخت و سوئیچینگ، این فرض دیگر درست نیست، و هر چه تعداد گرههای شبکه از سوئیچینگ پشتیبانی کنند، احتمال خطا بیشتر میشود (طبق شبیهسازی با استفاده از دادههای شبکه لایتنینگ دنیای واقعی توسط Gijs تا 62 درصد).
بنابراین نه تنها این پیشنهاد نسبتاً ساده است، نه تنها راهی برای بهبود میزان موفقیت تلاشهای پرداخت فراهم میکند، بلکه به رفع یکی از بزرگترین کاستیهای حریم خصوصی شبکه لایتنینگ نیز کمک میکند. فکر میکنم بهویژه در پی آسیبپذیری اخیر لایتنینگ، این پیشنهاد نشان میدهد که اگرچه لایتنینگ بدون مشکل نیست، اما حل یا کاهش آنها غیرممکن نیست. حتی بسیار متداول خواهد بود که راه حل های یک مشکل به مشکل دیگری کمک کند.
رم در یک روز ساخته نشده است، و راه حل هایی که در واقع ویژگی های اصلی بیت کوین را به روشی مقیاس پذیر و پایدار حفظ می کند نیز وجود نخواهد داشت.