کیف پول من

الگوریتم تحمل خطای بیزانس چیست؟ بررسی راز امنیت شبکه‌های غیرمتمرکز

تاریخ انتشار:
۲۳ مرداد ۱۴۰۲
آخرین به‌روزرسانی:
۲۵ خرداد ۱۴۰۵
7167

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

bft-algorithm

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

داستان ژنرال‌های بیزانسی و معمای اعتماد در شبکه‌ها

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

مسئله ژنرال‌های بیزانس چیست و چرا اهمیت دارد؟

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

مشکل اصلی این است که ژنرال‌ها فاصله‌ی زیادی از هم دارند و فقط از طریق فرستادن پیام‌رسان‌ها می‌توانند با یکدیگر ارتباط برقرار کنند. در این میان، ارتش با دو چالش بسیار جدی روبرو است:

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

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

ارتباط ژنرال‌های ارتش با نودها در شبکه‌های کامپیوتری

حالا بیایید این داستان تاریخی را به دنیای فناوری و شبکه‌های بلاک چین بیاوریم تا ببینیم داستان ژنرال‌ها چه ارتباطی با پول‌های دیجیتال دارد.

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

برای درک بهتر این مفهوم، بیایید اجزای داستان ژنرال‌ها را با اجزای شبکه‌ی کامپیوتری تطبیق دهیم:

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

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

الگوریتم تحمل خطای بیزانس یا BFT چیست؟

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

تعریف خطای بیزانسی به زبان ساده و کاربردی

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

به طور کلی این خطاها در سیستم‌های کامپیوتری به دو دسته‌ی اصلی تقسیم می‌شوند:

  • خطای ناشی از خرابی (Crash Fault): در این حالت، یک کامپیوتر به دلیل قطع شدن اینترنت، قطعی برق یا یک نقص فنی ساده، از کار می‌افتد و دیگر پیامی به شبکه ارسال نمی‌کند. این نوع خطا مدیریت ساده‌تری دارد، چون شبکه متوجه غیبت و خاموش بودن آن عضو می‌شود.
  • خطای عمدی یا مخرب (Malicious Fault): این همان نقطه‌ی بحرانی است. در این حالت، دستگاه کاملا روشن و فعال است، اما اطلاعات دروغین، متناقض و مخرب به شبکه می‌فرستد. درست مانند همان ژنرال خائنی که به نیمی از ارتش دستور حمله و به نیمی دیگر دستور عقب‌نشینی می‌دهد تا آن‌ها را به کشتن بدهد.

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

یک شبکه چگونه در برابر گره‌های خرابکار یا از کار افتاده مقاومت می‌کند؟

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

اما این مقاومت و هماهنگی دقیقا چطور اتفاق می‌افتد؟ شبکه‌ی مجهز به این قابلیت از سه قانون طلایی برای حفظ امنیت خود استفاده می‌کند:

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

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

یک شبکه چگونه در برابر گره‌های خرابکار یا از کار افتاده مقاومت می‌کند؟ | کیف پول من

نقش الگوریتم تحمل خطای بیزانس در بلاک چین

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

چرا شبکه‌های غیرمتمرکز به الگوریتم اجماع نیاز دارند؟

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

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

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

مقایسه مدیریت خطا در سیستم‌های متمرکز بانکی و شبکه‌های بلاک چین

ویژگی مورد بررسی

سیستم متمرکز بانکی

شبکه‌ی بلاک چین (مبتنی بر تحمل خطای بیزانس)

تصمیم‌گیرنده نهایی

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

اکثریت کامپیوترهای فعال در شبکه

نقطه‌ی آسیب‌پذیری

نقطه‌ی شکست واحد (اگر سرور بانک قطع شود، کل شبکه از کار می‌افتد)

مقاوم و توزیع‌شده (اگر بخشی از کامپیوترها خاموش شوند، شبکه همچنان به کار خود ادامه می‌دهد)

برخورد با تقلب داخلی

بانک باید با بررسی‌های امنیتی کارمند متخلف را پیدا کند.

الگوریتم به‌صورت خودکار اطلاعات گره‌های دروغگو را بی‌اعتبار می‌کند.

شفافیت اطلاعات

اطلاعات فقط برای مدیران بانک قابل مشاهده است.

تاریخچه‌ی تراکنش‌ها برای تمام اعضای شبکه شفاف و قابل بررسی است.

نیاز به اعتماد

باید کاملا به صداقت و امنیت بانک اعتماد کنید.

نیازی به اعتماد به هیچ فردی نیست، کدهای ریاضی امنیت را تضمین می‌کنند.

جایگاه بیت کوین در حل معمای بیزانس (نگاهی کوتاه به اثبات کار یا PoW)

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

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

الگوریتم تحمل خطای بیزانس کاربردی یا PBFT چیست؟

در بخش‌های قبلی با مفهوم کلی و تئوری تحمل خطای بیزانس آشنا شدیم. اما تئوری‌ها تا زمانی که در دنیای واقعی پیاده‌سازی نشوند، تنها روی کاغذ ارزش دارند. اینجا است که الگوریتم تحمل خطای بیزانس کاربردی (Practical Byzantine Fault Tolerance) که به اختصار PBFT نامیده می‌شود، وارد میدان می‌شود تا این ایده‌ی مفهومی را به یک راهکار اجرایی و قدرتمند در سیستم‌های کامپیوتری تبدیل کند.

تفاوت مدل تئوری BFT با نسخه کاربردی آن (PBFT)

برای درک تفاوت این دو، یک استعاره‌ی ساده را در ذهن داشته باشید: BFT مانند نقشه‌ی معماری یک هواپیما است که روی کاغذ رسم شده است و به ما می‌گوید این وسیله باید پرواز کند، اما PBFT خود هواپیمای ساخته شده است که در آسمان پرواز می‌کند و با باد و طوفان می‌جنگد.

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

مکانیزم تایید تراکنش‌ها در الگوریتم PBFT چگونه کار می‌کند؟

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

اگر بخواهیم فلوچارت مراحل کار این الگوریتم را برای یک اینفوگرافیک با لیبل‌های کاملا فارسی طراحی کنیم، ساختار آن به این شکل خواهد بود:

  • مرحله‌ی اول - درخواست: کاربر یک درخواست مالی (مثلاً انتقال مقداری پول) را ایجاد کرده و به گره رهبر ارسال می‌کند.
  • مرحله‌ی دوم - پیش‌آماده‌سازی: گره رهبر پیام را دریافت می‌کند، به آن نظم می‌دهد و سپس آن را برای تمام گره‌های پشتیبان در شبکه پخش می‌کند.
  • مرحله‌ی سوم - آماده‌سازی: گره‌های پشتیبان پیام را بررسی می‌کنند تا از صحت آن مطمئن شوند. در صورت تایید، هر کدام از آن‌ها یک پیام آماده‌سازی برای تمامی اعضای دیگر شبکه می‌فرستند. در این مرحله، هر نود باید پیام‌های همتایان خود را دریافت کند تا مطمئن شود همه در حال بررسی یک موضوع واحد هستند.
  • مرحله‌ی چهارم - ثبت نهایی: وقتی یک گره تعداد مشخصی پیام تایید از سایرین دریافت کند، به این نتیجه می‌رسد که اکثریت موافق هستند. سپس پیام ثبت نهایی را به شبکه می‌فرستد. در این مرحله تراکنش در دفتر کل شبکه ثبت می‌شود.
  • مرحله‌ی پنجم - پاسخ به کاربر: در نهایت، نودهای شبکه‌ی کامپیوتری پاسخ موفقیت‌آمیز بودن تراکنش را به کاربر نمایش می‌دهند.

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

مکانیزم تایید تراکنش‌ها در الگوریتم PBFT چگونه کار می‌کند؟ | کیف پول من

قانون طلایی تحمل خطا: چرا یک سوم شبکه نقطه بحرانی است؟

هر سیستم امنیتی یک نقطه‌ی تحمل یا آستانه‌ی شکست دارد. در سیستم‌هایی مانند بیت کوین، هکرها برای نابودی شبکه باید کنترل بیش از نیمی از قدرت پردازش شبکه را در دست بگیرند. اما در مدل PBFT، این محدودیت سخت‌گیرانه‌تر است.

PBFT= N \ 3F + 1

در این فرمول، متغیر N نشان‌دهنده‌ی کل کامپیوترهای فعال شبکه است و متغیر F حداکثر تعداد گره‌های خرابکار یا قطع شده را نشان می‌دهد.

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

به عنوان مثال، اگر یک شبکه‌ی بلاک چین دارای ۱۰ نود باشد، سیستم می‌تواند وجود ۳ نود خرابکار را تحمل کند. اما اگر تعداد خائنان به ۴ نود برسد (بیشتر از ۳۳ درصد)، آن‌ها می‌توانند با ارسال اطلاعات متناقض، سیستم را به بن‌بست بکشانند و فرآیند تایید تراکنش‌ها را مختل کنند. به همین دلیل، در این الگوریتم، حفظ امنیت گره‌ها و جلوگیری از تسلط خرابکاران بر یک سوم شبکه، اصلی‌ترین شرط بقا است.

مزایا و معایب استفاده از مدل اجماع PBFT

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

چرا PBFT سریع، کم‌هزینه و بدون نیاز به استخراج است؟

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

  • سرعت بالا و قطعیت تراکنش: در خرید و فروش بیت کوین ، برای اینکه مطمئن شوید پول به حساب شما نشسته است، باید مدتی صبر کنید تا تراکنش تایید شود. اما PBFT دارای ویژگی قطعیت تراکنش (وضعیتی که در آن یک تراکنش مالی در شبکه ثبت شده و دیگر به هیچ وجه قابل برگشت یا لغو نیست) است. یعنی به محض اینکه گره‌های شبکه روی یک تراکنش توافق کنند، کار تمام است و نیازی به زمان انتظار اضافی نیست.
  • مصرف انرژی بسیار پایین: این سیستم نیازی به فرآیند ماینینگ یا استخراج (عملیاتی که در آن دستگاه‌ها با مصرف برق بالا معادلات سخت ریاضی را حل می‌کنند تا تراکنش‌ها را تایید کرده و پاداش بگیرند) ندارد. در مدل PBFT، کامپیوترها فقط با یکدیگر تبادل پیام می‌کنند و رای می‌دهند. به همین دلیل، این سیستم دوستدار محیط زیست است و برق بسیار کمی مصرف می‌کند.
  • کارمزدهای ناچیز: از آنجایی که در این شبکه‌ی مالی نیازی به خرید دستگاه‌های گران‌قیمت استخراج و پرداخت قبض‌های سنگین برق نیست، هزینه‌ی تایید تراکنش‌ها به شدت کاهش می‌یابد. در نتیجه، کاربران کارمزد بسیار کمتری برای جابجایی دارایی‌های خود پرداخت می‌کنند.

چالش‌های مقیاس‌پذیری و خطرات امنیتی در شبکه‌های بزرگ

با وجود تمام این مزایای جذاب، چرا تمام ارزهای دیجیتال از این الگوریتم استفاده نمی‌کنند؟ پاسخ این سوال در پاشنه‌ی آشیل این سیستم، یعنی مشکل بزرگ شدن شبکه‌ی رایانه‌ای نهفته است:

  • مشکل مقیاس‌پذیری: یکی از بزرگ‌ترین چالش‌های PBFT، مقیاس‌پذیری (توانایی یک سیستم برای پاسخگویی به تعداد بسیار زیادی کاربر و پردازش سریع اطلاعات بدون افت سرعت یا کیفیت) است. همان‌طور که قبلا اشاره کردیم، در این سیستم تمام کامپیوترها باید با یکدیگر به صورت مداوم پیام رد و بدل کنند. اگر شبکه‌ی ما ۱۰ کامپیوتر داشته باشد، مشکلی نیست. اما اگر بخواهیم ده‌ها هزار کامپیوتر داشته باشیم، تعداد پیام‌های ارسالی بین آن‌ها به قدری زیاد می‌شود که شبکه‌ی ارتباطی قفل شده و سرعت سیستم به شدت افت می‌کند.
  • خطر حمله‌ی سیبیل: این مدل در برابر حمله‌ی سیبیل (نوعی کلاهبرداری سایبری که در آن یک فرد مخرب با ساختن هزاران هویت و حساب جعلی، سعی می‌کند کنترل رای‌گیری در شبکه را به دست بگیرد) آسیب‌پذیرتر است. اگر هکرها بتوانند تعداد زیادی کامپیوتر جعلی بسازند و بیش از یک سوم آرای شبکه را تصاحب کنند، می‌توانند روند تایید تراکنش‌ها را از کار بیندازند.
  • تمایل به تمرکزگرایی: به دلیل همان مشکل مقیاس‌پذیری، طراحان شبکه‌های مبتنی بر PBFT معمولا مجبورند تعداد کامپیوترهای تایید کننده را محدود نگه دارند (مثلا فقط ۲۰ یا ۵۰ گره‌ی اصلی انتخاب کنند). این محدودیت باعث می‌شود که شبکه از حالت کاملا آزاد خارج شود و قدرت تصمیم‌گیری در دست گروه کوچکی از کامپیوترها متمرکز بماند.

کاربرد الگوریتم PBFT در دنیای واقعی رمزارزها

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

کدام پلتفرم‌ها و ارزهای دیجیتال از این پروتکل استفاده می‌کنند؟

بیشترین کاربرد این الگوریتم در شبکه‌هایی است که نیازی به حضور ده‌ها هزار کامپیوتر ناشناس ندارند و سرعت تراکنش برای آن‌ها در اولویت است. پلتفرم‌های متنوعی از نسخه‌های تغییر یافته و بهینه‌شده‌ی PBFT استفاده می‌کنند که برخی از مهم‌ترین آن‌ها عبارتند از:

  • پروژه‌ی نئو (NEO): این ارز دیجیتال که گاهی اتریوم چینی نامیده می‌شود، از یک نسخه‌ی پیشرفته به نام تحمل خطای بیزانس نمایندگی‌شده (dBFT) استفاده می‌کند.
  • پروژه‌ی زیلیکا (Zilliqa): این شبکه برای افزایش سرعت پردازش تراکنش‌های خود، پروتکل PBFT را با فناوری‌های دیگر ترکیب کرده است.
  • بلاک چین‌های سازمانی (Enterprise Blockchains): شبکه‌های خصوصی و شرکتی (پلتفرم‌هایی که دسترسی و فعالیت در آن‌ها نیازمند تایید هویت و مجوز از سوی مدیران شبکه است) مانند هایپرلجر فابریک (Hyperledger Fabric) به صورت گسترده از این مدل استفاده می‌کنند؛ زیرا در این شبکه‌ها هویت تمام کامپیوترها از پیش مشخص و تایید شده است.
  • پروژه‌های کازموس (Cosmos) و استلار (Stellar): این شبکه‌ها نیز از مکانیزم‌های اجماعی استفاده می‌کنند که هسته‌ی اصلی آن‌ها مستقیماً بر پایه‌ی منطق تحمل خطای بیزانس بنا شده است.

بررسی کوتاه نحوه عملکرد شبکه‌های مطرح مبتنی بر این الگوریتم

برای اینکه ببینیم این تئوری‌ها در عمل چگونه کار می‌کنند، بیایید به مکانیزم دو پروژه‌ی معروف یعنی نئو و زیلیکا نگاهی بیندازیم.

  • عملکرد پروژه‌ی نئو (NEO) با استفاده از نمایندگان: همان‌طور که گفتیم، مکانیزم پایه‌ای PBFT در شبکه‌های شلوغ به شدت کند می‌شود. پروژه‌ی نئو برای حل این مشکل، ساختاری شبیه به یک انتخابات ایجاد کرده است. در شبکه‌ی نئو، تمام کاربرانی که ارز دیجیتال اختصاصی این شبکه را دارند، رای می‌دهند و گروه کوچکی از کامپیوترهای قابل اعتماد را به عنوان نمایندگان یا حسابداران انتخاب می‌کنند. سپس، این گروه کوچک و منتخب با استفاده از قوانین الگوریتم تحمل خطای بیزانس، در کسری از ثانیه با یکدیگر ارتباط برقرار کرده و تراکنش‌ها را تایید می‌کنند. اگر یکی از این نمایندگان آفلاین شود یا اطلاعات غلط بفرستد، بقیه‌ی نمایندگان بر اساس قانون طلایی تحمل خطا که در بخش‌های قبل خواندیم، او را نادیده می‌گیرند. این روش باعث می‌شود شبکه‌ی نئو بسیار سریع و ارزان باشد.
  • عملکرد پروژه‌ی زیلیکا (Zilliqa) با تقسیم کار: زیلیکا راهکار متفاوتی برای فرار از محدودیت‌های این الگوریتم پیدا کرده است. این شبکه از تکنیکی نوآورانه به نام شاردینگ (روشی که در آن یک شبکه‌ی اطلاعاتی بزرگ به چند بخش یا گروه کوچک‌تر تقسیم می‌شود تا پردازش داده‌ها به صورت همزمان و سریع‌تر انجام شود) استفاده می‌کند. در شبکه‌ی زیلیکا، کامپیوترها به جای اینکه همگی با هم ارتباط برقرار کنند، به گروه‌های چند صدتایی تقسیم می‌شوند. هر کدام از این گروه‌های کوچک، در درون خود از الگوریتم PBFT برای رسیدن به توافق روی دسته‌ای از تراکنش‌ها استفاده می‌کنند. چون تعداد کامپیوترها در هر گروه کم و بهینه است، سرعت توافق به شدت بالا می‌رود و کل شبکه‌ی اصلی می‌تواند هزاران تراکنش را در ثانیه پردازش کند.

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

جمع‌بندی مفاهیم و نگاه کلی به آینده الگوریتم‌های اجماع

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

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

    منابع:

    Ledger.com

    Binance

    Fool.com

    این موضوع را مثبت می‌بینید یا منفی؟
    5
    0

    سوالات متداول

    1

    آیا بیت کوین از الگوریتم تحمل خطای بیزانس استفاده می‌کند؟

    2

    اگر بیش از ۳۳ درصد از اعضای شبکه خرابکار باشند چه اتفاقی می‌افتد؟

    3

    تفاوت اصلی الگوریتم اثبات کار با الگوریتم تحمل خطای بیزانس چیست؟

    4

    آیا شبکه‌های مبتنی بر الگوریتم PBFT قابل هک شدن هستند؟

    5

    آیا الگوریتم‌های BFT مصرف انرژی بالایی دارند؟

    4.9/5
    writer image
    هدیه آرمان
    نویسنده

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

    مشاهده پروفایل

    دیدگاه‌های کاربران

    تا کنون 10 کاربر در مورد الگوریتم تحمل خطای بیزانس چیست؟ بررسی راز امنیت شبکه‌های غیرمتمرکز دیدگاه ثبت کرده اند
    عارفه گلابتونی شاندیز
    ۱۲ اسفند ۱۴۰۲
    عالی بود
    0
    6
    محسن قائمی
    ۱ بهمن ۱۴۰۲
    بسیار عالی و قوی
    0
    0
    ایمان قره چاهی
    ۳۰ دی ۱۴۰۲
    واقعا عالی
    0
    0
    زهرا احمدی
    ۹ دی ۱۴۰۲
    خسته نباشید از مطالبی که دراختیار مون قرارمیدهید
    0
    0

    افزودن دیدگاه

    با ثبت‌نام در صرافی کیف پول من و ارسال نظر در سایت ارز دیجیتال رایگان هدیه بگیرید. نظر شما حداقل باید ۱۰ کلمه باشد و تکراری نباشد.
    به این مطلب چند امتیاز می‌دهید؟
    1
    2
    3
    4
    5

    انتخاب کنید

    ویدئو رسانه

    در بخش ویدئو رسانه، می‌توانید به آموزش‌ها، تحلیل‌ها و محتوای ویدیویی جذاب درباره ارزهای دیجیتال و خدمات ما دسترسی پیدا کنید.