الگوریتم اجماع پروتکل ریپل | The Ripple Protocol Consensus Algorithm جدول مقالات آزادابزار تفکیک و ترجمه متون علمیمقالات اینترنت اشیاء
تماس با ما
 
بدان
 
امروز دوشنبه ، ۱۴۰۰/۰۹/۱۵
 
کلیه مقالات

الگوریتم اجماع پروتکل ریپل

The Ripple Protocol Consensus Algorithm

الگوریتم اجماع پروتکل ریپل:

چکیده:

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

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

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

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

نتیجه یک الگوریتم اجماع با تأخیر کم است که هنوز هم در برابر شکست های بیزانس استحکام خود را حفظ می کند.

ما این الگوریتم را در تجسم آن در پروتکل ریپل ارائه می دهیم.

1. معرفی:

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

چنین شبکه هایی امکان انجام معاملات سریع و کم هزینه را دارند که توسط یک منبع متمرکز کنترل نمی شوند.

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

در حالی که این مشکلات متنوع است ، ما آنها را به سه دسته اصلی گروه بندی می کنیم:

صحت ، توافق و ابزار.

با درستی ، منظور ما این است که لازم است یک سیستم توزیع شده بتواند تفاوت بین یک معامله درست و کلاهبرداری را تشخیص دهد.

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

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

بنابراین باید از روشهای جایگزین برای صحت استفاده کرد.

توافق نامه به مسئله حفظ یک حقیقت جهانی جهانی در مواجهه با یک سیستم حسابداری غیر متمرکز اشاره دارد.

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

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

بنابراین هر معامله به تنهایی صحیح است ، اما اگر همزمان به گونه ای اجرا شود که شبکه توزیع شده به عنوان یک کل از هر دو آگاهی نداشته باشد ، یک مسئله واضح بوجود می آید ، که معمولاً به عنوان "مسئله دو خرج کردن" نامیده می شود [1].

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

سودمندی مسئله ای انتزاعی تر است ، که ما معمولاً آن را "سودمندی" یک سیستم پرداخت توزیع شده تعریف می کنیم ، اما در عمل بیشتر اوقات با تأخیر سیستم ساده می شود.

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

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

بسیاری از این موضوعات مدتها قبل از ظهور سیستمهای رایانه ای توزیع شده مدرن ، از طریق مشکلی موسوم به "مسئله ژنرال های بیزانس" بررسی شده است.

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

از آنجا که ژنرال ها در قلمرو ناآشنا و خصمانه قرار دارند ، ممکن است پیام رسان ها نتوانند به مقصد خود برسند (دقیقاً همانطور که ممکن است گره های یک شبکه توزیع شده خراب شوند ، یا به جای پیام مورد نظر داده های خراب را ارسال کنند).

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

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

در این کار ، ما یک اجرای خاص یک سیستم پرداخت توزیع شده را تجزیه و تحلیل می کنیم:

پروتکل ریپل

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

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

2- تعاریف ، رسمیت و کارهای قبلی:

ما با تعریف مؤلفه های پروتکل ریپل شروع می کنیم.

برای اثبات صحت ، توافق و خاصیت های مطلوب ، ابتدا این خصوصیات را به صورت بدیهی رسمی می کنیم.

این خصوصیات ، هنگامی که در کنار هم قرار می گیرند ، مفهوم اجماع را تشکیل می دهند:

حالتی که گره های شبکه به توافق صحیح برسند.

ما سپس نتایج قبلی مربوط به الگوریتم های اجماع را برجسته می کنیم و در آخر اهداف اجماع پروتکل ریپل را در چارچوب رسمی سازی خود بیان می کنیم.

2-1 قطعات پروتکل ریپل:

توضیحات خود در مورد شبکه موج دار را با تعریف شرایط زیر شروع می کنیم:

• سرور:

سرور هر نهاد نرم افزاری Ripple Server است (برخلاف نرم افزار Ripple Client که فقط به کاربر امکان ارسال و دریافت وجه می دهد) ، که در فرایند اجماع شرکت می کند ، مخالف است.

• دفتر کل:

دفترچه راهنما ضبط مقدار ارز در حساب هر کاربر است و نشان دهنده "حقیقت زمین" شبکه است.

این دفترچه بارها با معاملات انجام می شود که با موفقیت در فرایند اجماع عبور می کند.

• قفل آخر بسته:

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

• دفتر کل باز:

دفترکل باز وضعیت فعلی عملکرد یک گره است (هر گره دفتر کل باز خود را حفظ می کند).

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

• لیست گره های منحصر به فرد (UNL):

هر سرور ، لیست گره های منحصر به فردی را نگه می دارد ، که مجموعه ای از سرورهای دیگر است که هنگام تعیین اجماع از آنها پرس و جو می کنند.

فقط آراء دیگر اعضای UNL در هنگام تعیین اجماع در نظر گرفته می شود (بر خلاف هر گره در شبکه).

بنابراین UNL زیرمجموعه ای از شبکه را نشان می دهد که وقتی به صورت جمعی گرفته می شود ، توسط افراد "اعتماد" می شود تا در تلاش برای جعل این شبکه تبانی نکنند.

توجه داشته باشید که این تعریف "اعتماد" نیازی به اعتماد به تک تک اعضای UNL ندارد (به بخش 3.2 مراجعه کنید).

• پیشنهاد دهنده:

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

در طول فرآیند اجماع ، تنها پیشنهادات سرورهای UNL درون یک سرور توسط s در نظر گرفته می شود.

2-2 رسمیت:

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

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

ما مفهوم اعتبار یک معامله را به یک مشکل تصمیم باینری ساده کاهش می دهیم:

هر گره باید از اطلاعاتی که درمورد مقدار 0 یا 1 داده شده است تصمیم بگیرد.

مانند آتیا ، دولف و گیل ، 1984 [3] ، ما با توجه به سه اصل بدیهی اجماع تعریف می کنیم:

1- (C1):

هر گره غیرمعیوب در زمان محدود 2 تصمیم می گیرد:

(C2) - همه گره های غیر معیوب مقدار تصمیم یکسان 3 را بدست می آورند (C3): 0 و 1 هر دو مقادیر ممکن برای همه گره های غیرمعیوب هستند.

این راه حل بدیهی که در آن همه گره ها بدون در نظر گرفتن اطلاعاتی که ارائه داده اند 0 یا 1 را تصمیم می گیرند را حذف می کند.

2-3 الگوریتم اجماع موجود:

تحقیقات زیادی در مورد الگوریتم هایی انجام شده است که در مواجهه با خطاهای بیزانس به اجماع می رسند.

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

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

این امر ضرورت اکتشافی مبتنی بر زمان را برای اطمینان از همگرایی (یا حداقل تکرارهای غیر همگرایی) تکرار می کند.

ما این اکتشافات مربوط به پروتکل ریپل را در بخش 3 شرح خواهیم داد.

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

این قابل اثبات است که هیچ راه حلی برای مسئله ژنرالهای بیزانس (که هم اکنون همزمانی را قبول می کند و هم شرکت کنندگان شناخته شده) نمی توانند تحمل بیش از (1))) / 3 گسل های بیزانس ، یا 33٪ از شبکه که به طرز مخرب عمل می کنند [2].

با این وجود ، این راه حل نیازی به صحت اثبات پیامهای ارسال شده بین گره ها (امضاهای دیجیتالی) ندارد.

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

چندین الگوریتم با پیچیدگی بیشتر برای اجماع بیزانس در پرونده ناهمزمان پیشنهاد شده است.

FaB Paxos [5] تحمل (1 n −) / 5 شکست بیزانس در شبکه ای از گره ها ، به تحمل حداکثر 20٪ گره های شبکه را که به طرز مخرب فرو می روند ، می کند.

Attiya ، Doyev و Gill [3] یک الگوریتم فاز برای مورد ناهمزمان را معرفی می کنند ، که می تواند شکست (1 − n) و 4 شکست یا حداکثر 25 درصد شبکه را تحمل کند.

سرانجام ، Alchieri و همکاران ، 2008 [6] BFT-CUP را ارائه می دهند ، که حتی در مورد شرکت های ناشناخته ، با اجماع بیزانس به توافق بیزانس می رسد ، با حداکثر حد تحمل تحمل (n-1) و 3 شکست ، اما با محدودیت های اضافی در اتصال شبکه زیرین.

2-4 اهداف اجماع رسمی:

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

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

از این هدف به عنوان جلوگیری از "چنگال" در شبکه نیز یاد می شود:

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

در آخر ما نشان خواهیم داد كه پروتكل ریپل در مواجهه با (n − 1) / 5 عدم موفقیت می تواند به این اهداف برسد ، كه قوی ترین نتیجه در ادبیات نیست ، اما ما همچنین نشان خواهیم داد كه پروتكل ریپل دارای چندین ویژگی مطلوب دیگر است كه تا حد زیادی ابزار خود را افزایش می دهد.

3- الگوریتم اجماع ریپل:

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

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

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

3-1 تعریف:

RPCA در دورها پیش می رود.

در هر دور:

• در ابتدا ، هر سرور کلیه معاملات معتبر خود را قبل از شروع دور اجماع که قبلاً مورد استفاده قرار نگرفته است انجام می دهد (اینها ممکن است شامل معاملات جدیدی باشد که توسط endusers سرور آغاز می شود ، معاملات انجام شده از یک روند اجماع قبلی و غیره. ) ، و آنها را در قالب لیستی که به عنوان "مجموعه نامزد" شناخته می شود ، عمومی می کند.

• هر سرور سپس مجموعه های نامزد همه سرورها را در UNL خود جمع می کند و به صحت همه معاملات رأی می دهد.

• معامله هایی که بیش از حداقل درصد آرا "بله" دریافت می شوند به 3-2 صحیح بعدی منتقل می شوند:

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

• دور نهایی اجماع به حداقل 80٪ موافقتنامه UNL سرور در مورد معامله نیاز دارد.

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

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

سپس اثبات صحت RPCA به طور مستقیم دنبال می شود:

از آنجا که یک معامله فقط درصورتی تأیید می شود که 80٪ UNL یک سرور با آن موافق باشد ، تا زمانی که 80٪ UNL صادقانه باشد ، هیچ معاملات تقلبی تأیید نمی شود.

بنابراین برای یک UNL از گره های شبکه ، پروتکل اجماع صحیح را حفظ خواهد کرد تا زمانی که: f & lt؛ = (n − 1) / 5:

که در آن تعداد شکست های بیزانس است.

در حقیقت ، حتی در مواجهه با (n − 1) / 5 + 1 شکست بیزانس ، صحت هنوز هم از نظر فنی حفظ می شود.

روند اجماع شکست خواهد خورد ، اما هنوز تأیید معامله تقلبی امکان پذیر نخواهد بود.

در حقیقت برای تأیید یک معامله نادرست (4n + 1) / 5 شکست بیزانس به طول انجامید.

ما این دوم را محدود به صحت ضعیف می نامیم ، و سابق را برای صحیح بودن مقید می دانیم.

همچنین لازم به ذکر است که همه معاملات "کلاهبرداری" حتی اگر در طول اجماع تأیید شود ، تهدیدی را ایجاد نمی کنند.

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

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

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

سپس احتمال صحیح توسط p * داده می شود ، که در آن:

فرمول (2):

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

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

در عمل ، UNL به طور تصادفی انتخاب نمی شود ، بلکه با هدف حداقل کردن رایانه شخصی انجام می شود.

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

مقادیر PC بسیار پایین تر از 20٪ تولید می کند.

به عنوان نمونه ، احتمال وجود لیگ ضد ضد افترا و کلیسای باپتیست Westboro برای جعل این شبکه ، مطمئناً بسیار ، بسیار کمتر از 20٪ است.

حتی اگر UNL دارای یک کامپیوتر نسبتاً بزرگ باشد ، 15٪ بگویید ، حتی اگر تنها 200 گره در UNL وجود داشته باشد ، احتمال صحیح بودن بسیار زیاد است: 97.8٪.

نمایش گرافیکی از چگونگی احتمال عدم صحیح بودن مقیاس به عنوان تابعی از اندازه UNL برای مقادیر مختلف PC در شکل 1 نشان داده شده است.

توجه داشته باشید که در اینجا محور عمودی نشان دهنده احتمال اجماع کارتل نابجا است و بنابراین مقادیر پایین نشانگر احتمال بیشتر موفقیت اجماع است.

همانطور که در شکل مشاهده می شود ، حتی با یک کامپیوتر به اندازه 10٪ ، احتمال خنثی کردن اجماع خیلی سریع ناچیز می شود زیرا UNL در 100 گره گذشته رشد می کند.

3-3 توافق نامه:

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

از آنجا که UNL ها برای هر سرور می توانند متفاوت باشند ، توافق نامه ذاتاً با اثبات صحت تضمین نمی شود.

به عنوان مثال ، اگر هیچ گونه محدودیتی برای عضویت در UNL وجود نداشته باشد ، و اندازه UNL از 0.2 * n در کل بزرگتر نباشد که تعداد کل گره ها در کل شبکه باشد ، آنگاه یک چنگال امکان پذیر است.

این با یک مثال ساده نشان داده شده است (در شکل 2 نشان داده شده است):

دو کلیشه را در نمودار UNL تصور کنید ، هر یک بزرگتر از 0.2 * ntotal.

با استفاده از کلکسیون ، منظور ما مجموعه ای از گره ها است که UNL هر گره مجموعه گره های نام خانوادگی است.

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

اگر اتصال دو كلیك بیش از 0.2 * كلی باشد ، دیگر چنگال دیگر امكان پذیر نیست ، زیرا عدم توافق بین كلیكس مانع از دستیابی اجماع در آستانه توافق 80٪ می شود.

قسمت بالایی در مورد اتصال مورد نیاز برای اثبات توافق توسط:

فرمول (3):

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

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

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

به عنوان مثال ، اگر ساختار شبکه مانند كلیك نباشد ، به دلیل درهم آمیختگی بیشتر UNL های همه گره ها ، دستیابی به یک چنگال سخت تر می شود.

جالب است بدانید که هیچ گونه فرضی درباره ماهیت گره های تقاطع ایجاد نمی شود.

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

یعنی توافق فقط به اندازه تقاطع گره ها بستگی دارد ، نه به اندازه تقاطع گره های غیرقانونی.

3-4 نرم افزار:

در حالی که بسیاری از مؤلفه های ابزار ذهنی هستند ، یکی از واقعاً اثبات شده ، همگرایی است:

که روند اجماع در زمان محدود خاتمه می یابد.

همگرایی 3-4-1:

ما همگرایی را به عنوان نقطه ای تعریف می کنیم که در آن RPCA با صحیح بودن بر روی دفترچه به اجماع برسد ، و آن وقت این دفترچه به عنوان آخرین دفترچه بسته می شود.

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

از نتایج فوق ، ما می دانیم که در صورت بروز شکستهای بیزانس ، همیشه صحیح قوی قابل دستیابی است ، و تا زمانی که شرط اتصال UNL باشد ، فقط یک اجماع در کل شبکه حاصل می شود. ملاقات کرد (معادله 3).

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

از آنجایی که الگوریتم اجماع خود قطعی است و قبل از خاتمه اجماع ، تعداد پیش تعیین شده ای دارد ، و قبل از پایان اجماع ، مجموعه فعلی معاملات اعلام شده یا تأیید نشده است (حتی اگر در این مرحله هیچ معامله ای بیش از 80٪ نباشد) توافق مورد نیاز ، و اجماع فقط اجماع بی اهمیت است) ، عامل محدود کننده برای خاتمه الگوریتم تأخیر ارتباطی بین گره ها است.

به منظور محدود کردن این کمیت ، زمان پاسخ گره ها کنترل می شود و گره هایی که زمان تأخیر بزرگتر از حد تعیین شده پیش بینی شده بزرگتر شوند از همه UNL ها حذف می شوند.

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

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

3-4-2 اکتشاف و روشها:

همانطور که در بالا ذکر شد ، یک اکتشافی محدود با تأخیر در همه گره های شبکه ریپل اجرا می شود تا تضمین کند که الگوریتم اجماع همگرایی خواهد شد.

علاوه بر این ، روش های اکتشافی و روش های دیگری نیز وجود دارد که به RPCA کمک می کند.

• برای همه گره ها یک پنجره 2 ثانیه اجباری وجود دارد که در هر دور از اجماع ، نامزدهای اولیه خود را پیشنهاد کند.

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

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

این شامل گره هایی است که به هر معامله "نه" رأی می دهند ، و گره هایی که به طور مداوم معاملات را پیشنهاد می کنند که با اجماع اعتبار ندارند.

• یک UNL پیش فرض منصوب شده برای کلیه کاربران ارائه شده است ، که برای به حداقل رساندن رایانه انتخاب شده است ، که در بخش 3.2 توضیح داده شده است. در حالی که کاربران می توانند و باید UNL های خود را انتخاب کنند ، این لیست پیش فرض گره ها تضمین می کند که حتی کاربران ساده لوح نیز در یک فرآیند اجماع شرکت می کنند که با احتمال بسیار زیاد صحت و توافق حاصل می شود.

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

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

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

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

به منظور جلوگیری از مثبت نادرست در مواردی که بخش بزرگی از UNL دارای تأخیر موقتی است ، گره ها مجاز به انتشار "اعتبار بخشی جزئی" هستند که در آن آنها پردازش یا رای گیری در معاملات انجام نمی دهند ، اما اعلام می کنند که هنوز مشارکت دارند. روند اجماع ، بر خلاف یک فرایند اجماع متفاوت در یک زیرمجاز جدا شده.

• در حالی که می توان RPCA را فقط در یک دور از اجماع به کار برد ، ابزار را می توان از طریق چندین دور ، که هر یک با حداقل درصد مورد نیاز در حال افزایش است ، پیش از مرحله نهایی با 80٪ مورد نیاز بدست آورد.

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

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

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

4- کد شبیه سازی:

کد شبیه سازی ارائه شده دور RPCA را با ویژگی های قابل تنظیم (تعداد گره های موجود در شبکه ، تعداد گره های مخرب ، تأخیر پیام ها و غیره) نشان می دهد.

شبیه ساز در اختلاف کامل شروع می شود (نیمی از گره های شبکه ابتدا "بله" را پیشنهاد می دهند ، در حالی که نیمی دیگر "نه" را پیشنهاد می کنند) ، سپس با روند اجماع ادامه می یابد ، و در هر مرحله تعداد آرا / خیر آرا را در نشان می دهد. شبکه به عنوان گره ها پیشنهادات خود را بر اساس پیشنهادات اعضای UNL خود تنظیم می کنند.

پس از رسیدن آستانه 80٪ ، اجماع حاصل می شود.

ما خواننده را تشویق می کنیم تا با مقادیر مختلف ثابت هایی که در ابتدای "Sim.cpp" تعریف شده است ، آزمایش کند تا در شرایط مختلف با روند اجماع آشنا شود.

5- بحث:

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

نتیجه اینكه پروتكل ریپل قادر است طی چند ثانیه معاملات امن و مطمئن را پردازش كند:

مدت زمان لازم برای تکمیل یک دور اجماع.

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

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

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

با این وجود ، شناختن اینكه این مرزها نیز ذاتی برای RPCA نیست ، بلكه به مدیریت UNL های كلیه كاربران نیز نیاز دارد.

UNL پیش فرض ارائه شده برای همه کاربران قبلاً كافی است ، اما در صورت ایجاد یك كاربر در UNL ، باید با آگاهی از موارد فوق كار كند.

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

ما معتقدیم که RPCA نشان دهنده یک گام مهم برای سیستم های پرداخت توزیع شده است ، زیرا کمترین میزان معاملات برای بسیاری از انواع معاملات مالی که قبلاً با سایر روش های اجماع تأخیر بالاتر انجام داده اند دشوار یا حتی غیرممکن است.

6- لوح سپاس:

Ripple Labs مایل است همه افراد درگیر ساخت الگوریتم اجماع پروتکل ریپل را تصدیق کند.

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

Ripple Labs همچنین می خواهد نوح یانگ را به دلیل تلاشهای خود در تهیه و مرور این مقاله اذعان کند.