تبلیغات
دنیای ارزهای دیجیتال | راهنما - آموزش - خرید - فروش - مطالب Lightning
منوی اصلی
دنیای ارزهای دیجیتال | راهنما - آموزش - خرید - فروش
پول و اقتصاد آینده = ارز دیجیتال - ارز رمز پایه
  • ادمین وب سایت چهارشنبه 29 فروردین 1397 04:42 ب.ظ نظرات ()

    انتظار می رود که شبکه لایتنینگ (Lightning Network)، یکی از نوآوری های فناوری محوری باشد که بر روی بیتکوین اجرا شود. لایه پرداخت، تقریبا یک سال پیش توسط Joseph Poon و Tadge Dryja معرفی شد. این لایه پرداخت تضمین کرده که از بی نهایت تراکنش خارج از زنجیره یا همان off-chain که بین کاربران انجام می شود پشتیبانی کند؛ همچنین اطمینان داده در حالی که از امنیت ارائه شده توسط شبکه بیتکوین چیزی کم نشود، این تراکنش ها تقریبا بدون هزینه باشند.


        درک شبکه لایتنینگ ، قسمت اول

    Lightning network درک شبکه لایتنینگ، قسمت اول: ساخت کانال پرداخت دوطرفه بیتکوین

    در حال حاضر حداقل سه شرکت در حال کار بر روی پیاده سازی شبکه لایتنینگ هستند؛ شرکت هایی نظیر Lightning (متعلق به Poon  و Dryja)، Blockstream و Blockchain. اما غیر از این خط مقدم کوچک، تعداد کمی هستند که درک کرده اند چگونه “آینده ی پرداخت های خرد” می تواند قابلیت های بیتکوین را افزایش دهد.

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

    lightning network درک شبکه لایتنینگ، قسمت اول: ساخت کانال پرداخت دوطرفه بیتکوین

      بخش سازنده شماره1: تراکنش های تایید نشده

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

    یکی از ویژگی های کلیدی شبکه لایتنینگ این است که تقریبا از روی تراکنش های معمولی بیتکوین ساخته شده است. نکته متمایز کننده اینجاست که تراکنش های انجام شده در این شبکه، در واقع در کل شبکه بیتکوین منتشر نمی شود. به جای منتشر شدن تراکنش ها در شبکه بیتکوین، آن ها بصورت محلی در نودهای کاربران ذخیره می شوند، اما در هر لحظه که کاربر اراده کند، امکان انتشار آن ها بر روی شبکه وجود دارد.

    در این سری مقالات، رنگ تراکنش های تایید نشده مشکی است. تراکنش های آبی رنگ بدان معناست که امکان انتشار آن توسط Alice وجود دارد، ولی تنها اگر تراکنش قبلیِ آن تایید شده باشد. تراکنش های قرمز رنگ هم بدان معناست که امکان انتشار آن توسط Bob وجود دارد، ولی تنها اگر تراکنش قبلیِ آن تایید شده باشد.

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

    درک شبکه لایتنینگ، قسمت اول: ساخت کانال پرداخت دوطرفه بیتکوین

    بخش سازنده شماره 2: حفاظت در برابر دوبار خرج شدن

    دومین بخش سازنده مورد نیاز برای شبکه لایتنینگ نیاز به توضیح زیادی ندارد چرا که جز جدا نشدنی بیتکوین به حساب می آید و آن “حفاظت در برابر دوبار خرج شدن” یا “double-spend protection” است. اگر دو تراکنش (یا ورودی) به یک خروجی یکسان وابستگی داشته باشد، تنها یکی از آن ها می تواند تایید شود.

    موضوع مهمی که اینجا باید در نظر گرفت این است که حتی با اینکه تراکنش های تایید نشده می تواند گیج کننده باشد، اما بدان معناست که تنها و تنها یکی از آن ها می تواند تایید شود.

    دوبار خرج کردن: در مثال زیر، Alice باید تصمیم بگیرد که کدام تراکنش را امضا و منتشر کند؛ او نمی تواند هر دو را امضا و منتشر کند (اگر این کار را کند، تنها یکی از آن ها تایید می شود).

    درک شبکه لایتنینگ، قسمت اول: ساخت کانال پرداخت دوطرفه بیتکوین

    بخش سازنده شماره 3: چندامضایی

    سومین بخش سازنده شبکه لایتنینگ نیز موضوع پیچیده ای نیست: آدرس های چندامضایی یا multisig addresses که به آن آدرس های P2SH هم می گویند.

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

    شبکه لایتنینگ معمولا از حالت چندامضایی “دو از دو” استفاده می کند. برای استفاده از بیتکوین های مربوط به آدرس های چندامضاییِ “دو از دو”، دو امضا مورد نیاز است.

    چند امضایی: در این مثال، Alice و Bob یک آدرس چندامضایی ساخته اند که هر کدام از آن ها یک کلید از این آدرس را دارند. اگر Alice بخواهد از این آدرس بیتکوینی برداشت کند، تا زمانی که امضای Bob هم موجود نباشد، نمی تواند این کار را انجام دهد.

    این نکته را نیز باید در نظر داشت که زمانی که امضایی به تراکنشی اضافه می شود، دیگر نمی توان محتوای آن تراکنش را تغییر داد.

    درک شبکه لایتنینگ، قسمت اول: ساخت کانال پرداخت دوطرفه بیتکوین

    بخش سازنده شماره 4: قفل های زمانی

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

    دو نوع قفل زمانی وجود دارد: نوع مطلق که با نام CheckLockTimeVerify (بصورت مخفف: CLTV) از آن یاد می شود، و نوع نسبی که با نام CheckSequenceVerify (بصورت مخفف: CSV) شناخته می شود.

    نوع CLTV، بیتکوین ها را تا زمان و تاریخ مشخصی در آینده، یا تا ارتفاع مشخصی از یک بلاک  (مثلا بلاک شماره 496889( قفل نگه می دارد. در عوض CSV از زمان نسبی استفاده می کند؛ هنگامی که یک خروجی CVS در بلاکچین ثبت شود، بعد از تعداد مشخص شده ای از بلاک ها، تازه می توان آن بیتکوین ها را دوباره خرج کرد.

    قفل زمانی: در مثال زیر نمونه ای از یک قفل زمانی CSV را مشاهده می کنید.

    درک شبکه لایتنینگ، قسمت اول: ساخت کانال پرداخت دوطرفه بیتکوین

    بخش سازنده شماره 5: هش ها و ارزش ها در شبکه لایتنینگ

    پنجمین و آخرین بخش سازنده، یکی از بنیادی ترین بخش های سازنده خود بیتکوین است. بطور خلاصه، یک “ارزش” یا “رمز” یک رشته طولانی و منحصر به فرد از اعداد است که حدس زدن آن حتی برای یک کامپیوتر، غیرممکن است. این “ارزش” (یا رمز) از طریق محاسباتی خاص، می تواند به رشته دیگری از اعداد تبدیل شود که به آن “هش” می گویند. نکته مهم اینجاست: هر فردی که آن “ارزش” را بداند، می تواند هش را نیز بسازد؛ اما این برعکس این کار امکان پذیر نیست. در واقع یک مسیر یکطرفه است.

    این روش در بیتکوین نیز برای قفل کردن بیتکوین ها قابل استفاده است.  برای مثال، یک هش می تواند در یک خروجی گنجانده شود، و برای خرج کردن دوباره ی آن، نیاز باشد که ورودی بعدی شامل مقدار “ارزش” متناظر باشد.

    ارزش یا رمز: در این سری از مقالات، “ارزش” یا “رمز” با یک کلید رنگی شماره دار نمایش داده می شود (در شکل زیر با نام SECRET/Value مشخص شده) و هش مربوط به آن مقدار، از طریق یک قفل شماره دار با همان رنگ نشان داده می شود (در شکل زیر با نام HASH مشخص شده است)

    درک شبکه لایتنینگ، قسمت اول: ساخت کانال پرداخت دوطرفه بیتکوین

    اولین چالش: کانال های پرداخت دو طرفه

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

    Poon و Dryja بعنوان ویژگی کلیدی شبکه لایتنینگ، کانال های پرداخت دوطرفه را پیشنهاد کردند.

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

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

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

    برای باز کردن این کانال، آلیس و باب هر کدام تعداد 5بیتکوین به یک آدرس چندامضاییِ دو-از-دو فرستاده اند (آدرسی که برای خرج کردن بیتکوین های آن، هر دو امضا مورد نیاز است). این امر، تراکنش اولیه یا “تراکنش گشاینده” است. همانطور که گفته شد، بیتکوین ها تنها زمانی قابل استفاده هستند که هم آلیس و هم باب یک تراکنش را امضا کنند.

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

    حال آلیس تراکنش بعدیِ تراکنش گشاینده را می سازد. به این تراکنش می گویند “تراکنش تعهد”. با این تراکنش تعهد، آلیس 4بیتکوین به خودش و 6بیتکوین به یک آدرس چندامضایی دیگر می فرستد. این آدرس چندامضایی دوم کمی محدودیت دارد؛ تنها زمانی باب می تواند به تنهایی از آن استفاده کند (یا به عبارت دیگر، فقط از طریق امضای خود، قفل آن را باز کند) که بعد از قرار گرفتن این تراکنش در بلاکچین، 1000بلاک دیگر استخراج شده باشد؛ در واقع در این آدرس از قفل CSV استفاده شده است. از طرف دیگر آیا آلیس می تواند به تنهایی و از طریق امضای خود قفل مورد نظر را باز کند؟ او تنها زمانی می تواند این کار را انجام دهد که “رمز” یا “ارزش” مربوط به باب را در اختیار داشته باشد. همان “رمزی” که باب مقدار هش شده ی آن را برای آلیس فرستاد، اما از آنجایی که از طریق مقدار هش شده ی یک “رمز” نمی توان به خود آن “رمز” دست پیدا کرد، پس آلیس امکان باز کردن قفل را ندارد.

    آلیس تراکنش تعهد را در سمت خودش امضا می کند اما آن را در شبکه منتشر نمی کند، در عوض آن را به باب می دهد.

    در این میان، باب هم تقریبا کاری مشابه انجام می دهد. او نیز یک “تراکنش تعهد” می سازد که طی آن 6بیتکوین برای خودش می فرستد و 4بیتکوین هم به یک آدرس چند امضایی جدید می فرستد. آلیس می تواند این قفل این آدرس را پس از گذر 1000 بلاک دیگر باز کند و یا باب می تواند با استفاده از “رمز” آلیس آن را باز کند.

    حال باب این تراکنش تعهد را در سمت خود امضا می کند و آن را به آلیس می دهد.

    بعد از تمام جابجایی های “نیمه معتبر” تراکنش های تعهد و هش های “رمز”ها، آلیس و باب “تراکنش گشاینده” را امضا و در شبکه منتشر می کنند تا مطمئن شوند که در بلاکچین ثبت شده. حال بطور رسمی کانال افتتاح شده است.

    در این مرحله، باب و آلیس هر کدام می توانند تراکنش تعهد “نیمه معتبر” را که از طرف مقابل خود گرفته اند، امضا و منتشر کنند. اگر آلیس چنین کاری کند، باب فورا 6بیتکوین می گیرد و اگر باب چنین کاری کند، آلیس فورا 4بیتکوین دریافت می کند. اما هرکدام از آن ها که تراکنش تعهد را امضا و منتشر کنند، باید به اندازه 1000بلاک صبر کنند تا آدرس چند امضایی را بتوانند باز کنند و باقی بیتکوین ها را دریافت کنند. این نکته کلیدی کانال پرداخت است: هیچ کدام نیمه تراکنش خود را امضا و منتشر نکنند.

    درک شبکه لایتنینگ، قسمت اول: ساخت کانال پرداخت دوطرفه بیتکوین

    بروزرسانی کانال

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

    اول: هر دو باید مراحل توضیح داده شده ی بالا را تکرار کنند (به غیر از تراکنش گشاینده که دیگر ساخته و در بلاکچین ثبت شده است). ایندفعه باب و آلیس برای خود مقدار 5بیتکوین را تعیین می کنند و هر دوی آن ها 5بیتکوین به آدرس چند امضایی می فرستند. شرایط این آدرس های چند امضایی نیز مشابه قبل است؛ فقط اینکه این بار “رمز”های متفاوتی می خواهند، آلیس و باب به یکدیگر هش های جدیدی می دهند. هر دو، نیمه تراکنش تعهد خود را امضا کرده و برای دیگری می فرستند.

    درک شبکه لایتنینگ، قسمت اول: ساخت کانال پرداخت دوطرفه بیتکوین

    دوم: آلیس و باب اولین “رمز” خود را برای یکدیگر می فرستند.

    در این مرحله، دوباره آلیس و باب می توانند تراکنش تعهد “نیمه معتبر” خود را که به تازگی دریافت کرده اند امضا و منتشر کنند. طرف مقابلشان به سرعت 5بیتکوین دریافت می کند و فرد منتشر کننده باید به اندازه 1000بلاک منتظر بماند. بدین ترتیب کانال آن ها بروزرسانی شد.

    اما چه چیزی مانع باب برای انتشار تراکنش تعهد قبلی می شود؟ آن تراکنش تعهد باعث شد که او 6بیتکوین به جای 5بیتکوین دریافت کند.
    چیزی که مانع وی می شود، اولین “رمز” یا “ارزش” اوست که حالا آن را به آلیس داده است.

    باب دیگر نمی تواند به راحتی تراکنش تعهد قبلی را امضا و منتشر کند، چرا که حالا آلیس اولین “رمز” باب را داد. اگر باب چنین کاری کند، او سریعا 4بیتکوین برای آلیس فرستاده است و باید 1000بلاک منتظر بمانده تا 6بیتکوین خود را بگیرد. مشکل اینجاست که حالا که آلیس “رمز” باب را می داند، ایندفعه می تواند به باب نارو بزند و 6بیتکوین دیگر را نیز برای خود بردارد. از آنجایی که باب نیز “رمز” آلیس را دارد، همین اتفاقات و همین مراحل برای آلیس نیز صادق است.

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

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



    منبع: کوین ایران



    آخرین ویرایش: چهارشنبه 29 فروردین 1397 04:58 ب.ظ
    ارسال دیدگاه
  • ادمین وب سایت شنبه 18 فروردین 1397 08:11 ب.ظ نظرات ()

    Christian Decker از اعضای تیم Blockstream به سوالات متدوال پیرامون حریم خصوصی در شبکه lightning پاسخ داده است.

    با توجه به مقاله منتشر شده از Christian Decker در وب سایت snyke، وی می گوید حریم خصوصی به عوامل مختلفی بستگی دارد و مقایسه دو سیستم با یکدیگر، کار دشواری است. در ادامه می توانید سوالات متداول و پاسخ های پیرامون حریم خصوصی در شبکه لایتنینگ (Lightning network) را مطالعه فرمایید. 

    چرا حریم خصوصی برای توسعه دهندگان شبکه لایتنینگ (lightning) حائز اهمیت است؟

    حریم خصوصی در شبکه Lightning

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

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

    با وجود شبکه لایتنینگ (lightning)، حریم خصوصی بهتر می شود یا بدتر؟

     حریم خصوصی در شبکه Lightning

    با توجه به این که پرداخت ها (تراکنش ها) با یکدیگر تفاوت دارند، پاسخ به این سوال سخت است.

    در شبکه بیت کوین، تمام تراکنش ها برای همیشه بر روی بلاکچین ثبت می شوند.

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

     

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

    سطح حفاظت

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

    این سطح از حفاظت قطعا عالی نیست. همانطور که قبلا هم برخی از افراد اشاره کرده اند، حملات زمان بندی شده (timing attacks) می تواند رابطه بین hop های انفرادی را تشخیص دهد؛ همچنین اطلاعات ناکافی افراد از توپولوژی شبکه می تواند به مهاجمان اجازه به دست آوردن اطلاعات بیشتری را نیز بدهد.

    (timing attack: در علم رمزنگاری، یک حمله به کانال جانبی است. در این حمله، فرد مهاجم تلاش می کند تا یک سیستم رمزنگاری شده را تحت تاثیر قرار دهد؛ وی این کار را از طریق آنالیز زمان مورد نیاز برای اجرای الگوریتم های رمزنگاری انجام می دهد.)

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

    دلیل وجود اختلاف نظر چیست؟

    حریم خصوصی در شبکه Lightning

    اختلاف نظر ها عمدتا به دلیل مقایسه امنیت مسیریابی onion ما با Tor به وجود آمده است. مسیریابی ما، به پیروی از توپولوژیِ شبکه سطحیِ تولید شده توسط شبکه لایتنینگ (lightning) محدود می شود. این امر با Tor فرق دارد؛ در Tor هر کدام از hop ها در یک مدار، می توانند به صورت دلخواه از مجموعه ای عمومی از نود ها انتخاب شوند؛ در حالی که ما مجبوریم تا نود های مجاور را انتخاب کنیم.

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

    این موضوع و انتقاد های وارد به آن، درباره امنیت بیت کوین در مقابل شبکه lightning نیست، بلکه بیشتر درباره مسیریابی onion استفاده شده در lightning در مقابل شبکه Tor است.

    آیا می توانم یک تراکنش lightning خصوصی انجام دهم؟

    در حالت ایده آل، کلاینت همیشه سعی در به حداکثر رساندن حریم خصوصی شما دارد؛ در نتیجه شما نباید کار خاصی انجام دهید. اقدامات مقابله ای که در حال حاضر هر سه تیم (c-lightning، eclair و Ind) در حال اجرای آن هستند، شامل تصادفی سازی توپولوژی و تصادفی سازی مسیر می شود.

    رندوم سازی یا تصادفی سازی توپولوژی سعی دارد که از داشتن hop هایی که می توانند ترافیک را زیر نظر بگیرند اجتناب کند؛ این کار را از طریق باز کردن کانال ها به صورت تصادفی انجام می دهد که باعث قدرت بخشیدن به شبکه در مقابل “نقطه تکی شکست” نیز می شود.

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

    Hornet چگونه به بهبود برخی از این مشکلات می پردازد؟

    Hornet پروتکلی است که ارتباطات دو طرفه را بهینه سازی می کند؛ ارتباطات دو طرفه در یک مدار فعلی که با استفاده از پروتکل sphinx ساخته شده است.

    ما sphinex را برای مسیریابی onion خود پیاده سازی کردیم تا مسیری که تمام ارتباطات بعدی باید بر آن قرار گیرند را تعیین کند. ما از ایده پیاده سازی Hornet به عنوان بخشی از lightning دست کشیدیم؛ چرا که یک لایه ارتباطی همه منظوره ایجاد می کند که در واقع به آن نیازی نداریم. Sphinex به خوبی به موارد مورد نیاز ما برای یک پرداخت پاسخ می دهد، و اضافه کردن یک لایه ارتباطی که تنها به پرداخت ها محدود نباشد، می تواند پیامد های ناخواسته ای را به دنبال داشته باشد. ما می خواهیم شبکه lightning یک شبکه پرداخت باشد، نه راهی برای استریم دیدن فیلم به صورت ناشناس.

    پیشنهادات دیگر برای حریم خصوصی در شبکه لایتنینگ (lightning) چیست؟

    می توانیم مسیریابی onion را از اتصالات end-to-end جدا کنیم؛ برای مثال، ساخت یک شبکه ی پایه ای که به صورت عمومی مسیریابی آن انجام شده و به ما اجازه پرداخت از نقطه A به نقطه B را می دهد؛ و بعد ساخت مسیریابی onion بر روی آن را انجام دهیم.

    این شباهت بیشتری به Tor دارد. چرا که شبکه پایه ای TCP/IP است و مسیریابی onion نیز بر روی آن قرار گرفته است.

    البته در ابتدا تصمیم گرفتیم که تمام پرداخت ها باید به صورت خصوصی باشند و در نتیجه از مسیریابی onion استفاده کنند؛ همچنین کاربران امکان خارج شدن از مسیریابی onion و تنها استفاده از مسیریابی پایه ای را نداشته باشند.

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


    منبع اصلی: snyke
    منبع: کوین ایران


    آخرین ویرایش: چهارشنبه 29 فروردین 1397 04:39 ب.ظ
    ارسال دیدگاه