همان‌طور که می‌دانیم، زنجیره‎ ی بلوک یک نوع دفتر کل توزیع ‌شده است که به‌صورت غیرمتمرکز و همتا به همتا توسط گره‌ها نگهداری می‌شود. منظور از گره تمام کاربرانی هستند که نرم‌افزارهای روی شبکه زنجیره ‏ی بلوک را نصب کردند و به آن سرویس می‌دهند. تمام این گره‌ها مطابق با الگوریتمی به اسم اجماع کار می‌کنند. این اجماع یعنی گره‌ها به روش خاص تعریف‌شده‌ای مثلاً «رأی‌گیری» یک تراکنش و بلاک آن را تائید می‌کنند.

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

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

ادامه مطلب را در فایل ضمیمه مطالعه نمایید.