تحمل خطای بیزانس استانبول
تورج اکبری | 1398.05.21

اجماع مقیاس‌پذیر برای شبکه‌های خصوصی با الگوریتم Istanbul Byzantine Fault Tolerant

الگوریتم‌های اجماع یکی از اصلی‌ترین نوآوری‌های بلاک‌چین و در عین حال یکی از گیج‌کننده‌ترین آن‌ها به شمار می‌رود. ساتوشی ناکاموتو نسخه‌ای از اثبات کار[1] (PoW) را ایجاد کرد که به عنوان ابزاری برای تأمین همزمان امنیت و اعتبارسنجی تراکنش‌های بیت‌کوین پیاده‌سازی شده بود. جامعه بلاک‌چین در ادامه، الگوریتم‌های اجماع دیگری مانند اثبات سهام[2] (PoS)، اثبات اقتدار[3] (PoA)، تحمل خطای بیزانس عملی[4] (PBFT)، تحمل خطای بیزانس استانبول[5] (IBFT) و بسیاری دیگر از الگوریتم‌ها را ایجاد کرد که به منظور دستیابی به اجماع در سیستم‌های توزیع شده و ایجاد منبع واحد اعتماد طراحی شده بودند. IBFT نوعی راه‌حل تحمل خطای بیزانس[6] است که نیاز به زیرساخت اثبات کار را با تضمین قطعیت آنی تراکنش‌ها کاهش داده است. قطعیت به این معنی است که پس از اضافه شدن یک تراکنش به بلوک و قرارگیری آن در بلاک‌چین دیگر امکان ابطال آن وجود ندارد. IBFT یک شبکه تک سطحی است که امکان فورک و زنجیره جانبی ندارد. این مکانیسم اجماع در زنجیره‌های خصوصی با استخرهای اعتبارسنجی قابل اعتماد و پاسخگو از کارایی بالایی برخوردار است. تحمل خطای بیزانس استانبول یک راه‌حل ایده‌آل برای شبکه‌هایی با نرخ قابل پیش‌بینی تراکنش می‌باشد.

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

IBFT

تحمل خطای بیزانس استانبول (IBFT)

تحمل خطای بیزانس استانبول (IBFT) مکانیسم اجماعی است که به عنوان جایگزینی برای گواه اثبات کار در شبکه اتریوم معرفی شده است. IBFT همانند الگوریتم‌های دیگر از وجود ترتیب واحد و مورد توافق از تراکنش‌ها در بلاک‌چین اطمینان حاصل می‌کند. تحمل خطای بیزانس استانبول برای استفاده در بلاک‌چین‌های خصوصی و کنسرسیوم توسعه داده شده است و کاربردی در بلاک‌چین‌های عمومی نخواهد داشت. این الگوریتم مزایای دیگری مانند قطعیت تسویه حساب را نیز برای سازمان‌ها به همراه دارد [1].

Istanbul BFT یک پیاده‌سازی اصلاح شده از الگوریتم تحمل خطای بیزانس عملی می‌باشد. مهم‌ترین تفاوت این الگوریتم با دیگر الگوریتم‌های تحمل‌پذیر خطا در این است که به جای اعتماد کورکورانه به رهبران شبکه در ایجاد هر بلوک، چندین مرحله رأی‌گیری میان گروهی از اعتبارسنج‌ها انجام می‌دهد تا به توافق متقابل دست یابد. توافق متقابل به عنوان مجموعه‌ای از امضاها در محتوای بلوک ثبت می‌شود. یک اعتبارسنج هرگز رهبر یا پیشنهاد دهنده بلوک را صادق یا درست فرض نمی‌کند و مانند مکانیسم‌های اجماعِ محیط‌های فاقد اعتماد عمل می‌کند [2].

تحمل خطای بیزانس به معنای شبکه‌ای است که می‌تواند با وجود گره‌های متقلب نیز به عملیات صحیح خود ادامه دهد. گره‌های متقلب تلاش می‌کنند که بلوک‌های غیرمعتبر را پیشنهاد دهند یا بلوک‌های حافظ منافع برخی از اعضای شبکه را تأیید کنند. پیاده‌سازی PBFT که IBFT نیز بر مبنای آن پیاده‌سازی شده می‌تواند وجود f گره متقلب در شبکه‌ای شامل 3f+1 گره را تحمل کند. این به معنای توانایی تحمل خطای عمدی حدود 30 درصد از گره‌های شبکه می‌باشد.

ویژگی گره‌ها از نقش تعیین‌کننده‌ای در انتخاب IBFT برخوردار است. اگر گره‌ها متعلق به گروهی مانند اصلی‌ترین رقبای سازمان باشد که نمی‌توان همیشه به آن اعتماد کرد یا معیارهای امنیتی به درستی در آن‌ها پیاده‌سازی نشده باشد باید به سمت استفاده از IBTF حرکت کرد. شبکه‌ای که از IBTF استفاده می‌کند صرف‌ نظر از وجود تراکنش‌های در انتظار، همیشه بلوک‌ها را در فاصله‌های زمانی ثابت تولید می‌کند. بنابراین اگر سرعت تولید تراکنش پایین باشد بلوک‌های زیادی بدون وجود تراکنش ساخته خواهند شد. بلوک‌های تولید‌شده از طریق به کارگیری اعتبارسنج‌های حاضر در رأی‌گیری و جمع‌آوری امضا از پیشنهاددهنده به شدت در مقابل دستکاری محافظت می‌شوند. بازنویسی محتوای بلوک بدون دسترسی به کلیه کلیدهای خصوصی امضای پیشنهاددهندگان و گره‌های اعتبارسنج غیرممکن است. این روش تضمینی برای تغییرناپذیری بلاک‌‌چین حاصل‌شده خواهد بود.

لیست اعتبارسنج‎‌های حاضر در رأی‌گیری با توجه به درخواست اعتبارسنج‌ها می‌تواند تغییر کند. این تغییرات با رأی اعضا انجام می‌شود و می‌تواند اعتبارسنج‌های جدیدی را به لیست اضافه کرده یا از آن حذف نماید.

  • برای اضافه کردن اعتبارسنج جدید باید حداقل 66 درصد از اعتبارسنج‌های موجود یک تابع مشخص با نام propose(new_node_address, true); را فراخوانی کنند.
  • برای اخراج کردن اعتبارسنج موجود باید حداقل 66 درصد از اعتبارسنج‌های موجود یک تابع مشخص با نام propose(new_node_address, false); را فراخوانی کنند.

مزیت‌های تحمل خطای بیزانس استانبول (IBFT)

الگوریتم اثبات کار از نظر سخت‌افزاری و برق بسیار پرهزینه است. این هزینه‌ها به صورت عمدی و برای جلوگیری از تصرف آسان شبکه در نظر گرفته شده است. الگوریتم اثبات کار برای شبکه‌های کاملاً غیرمتمرکز با امکان مشارکت همگانی بسیار مناسب است. با این حال، گره‌های موجود در زنجیره‌های خصوصی/ کنسرسیومی که توسط شرکت‌ها مورد استفاده قرار می‌گیرد نسبت به زنجیره‌های عمومی قابل اعتمادترند. همچنین ممکن است مکانیسم اجماع اثبات کار (PoW) برای استفاده در تمامی شبکه‎‌ها بسیار سنگین باشد و مکانیسم‌های دیگر اعتماد کافی برای اجرا در سیستم توزیع‌شده را فراهم نمایند. به همین ترتیب، اثبات سهام به دلیل استفاده از Gas کارایی چندانی در شبکه‌های مجوزدار نخواهد داشت. با توجه به این مسائل، اثبات اقتدار (PoA) به عنوان بهترین راه‌حل ممکن برای شبکه‌های خصوصی ظهور کرد. این الگوریتم از سیستمی استفاده می‌کند که بر اساس آن گره‌های شبکه می‌توانند امتیاز تولید بلوک‌های جدید زنجیره را با روش Round-Robin یا روش‌های مشابه دیگر تخصیص دهند. تحمل خطای بیزانس استانبول (IBFT) یکی از مکانیسم‌های مبتنی بر اثبات اقتدار است که مزیت‌های زیر را به همراه دارد .

  • قطعیت آنی بلوک: در شبکه مبتنی بر IBFT امکان وجود فورک و انشعاب زنجیره وجود ندارد؛ بنابراین در هیچ شرایطی بازگشت تراکنش امکان‌پذیر نیست.
  • کاهش زمان بین بلوک‌ها: مدت زمان تولید و اعتبارسنجی بلوک در قیاس اثبات سهام به شدت کاهش یافته است. کاهش زمان تولید بلوک به افزایش توان عملیاتی شبکه منجر شده است.
  • یکپارچگی بالای داده و تحمل‌پذیری خطا: IBTF از گروهی از اعتبارسنج‌ها برای اطمینان از یکپارچگی بلوکِ پیشنهاد شده استفاده می‌کند. اکثریت قالب (حدود 66 درصد) این اعتبارسنج‌ها باید قبل از اضافه شدن بلوک به زنجیره، آن را امضا کنند. رهبری گروه اعتبارسنج هم به صورت دوره‌ای عوض می‌شود تا از تأثیر طولانی مدت گره‌های مشکوک بر زنجیره جلوگیری نماید.
  • انعطاف‌پذیری عملیاتی: گروه اعتبارسنج‌ها در صورت نیاز می‌تواند تغییر کند تا اطمینان حاصل شود که تنها گره‌های کاملاً مورد اعتماد در گروه عضویت دارند.

 

[1] Proof of Work (PoW)

[2] Proof of Stake (PoS)

[3] Proof of Authority (PoA)

[4] Practical Byzantine Fault Tolerant (PBFT)

[5] Istanbul Byzantine Fault Tolerant (IBFT)

[6] Byzantine Fault Tolerance (BFT)

این گزارش شامل مطالب زیر است:

اجماع مقیاس‌پذیر برای شبکه‌های خصوصی با الگوریتم IBFT

تحمل خطای بیزانس استانبول (IBFT)

مزیت‌های تحمل خطای بیزانس استانبول (IBFT)

تاریخچه مختصر تحمل خطای بیزانس استانبول

حوزه‌های کاربردی IBFT 1.0

نسخه دوم تحمل خطای بیزانس استانبول (IBFT 2.0)

برای دانلود گزارش کامل تحمل خطای بیزانس استانبول (IBFT) کلیک کنید.

Istanbul Byzantine Fault Tolerance – IBFT