প্যাক্সোস বা র‍্যাফ্টের মতো ক্লাসিক্যাল কনসেনসাস প্রটোকলগুলো ক্র্যাশ-ফল্ট (Crash-Fault) অনুমানের ওপর ভিত্তি করে তৈরি—যেখানে কোনো সার্ভার অফলাইন হতে পারে কিন্তু কখনোই ভুল বা বিদ্বেষপূর্ণ তথ্য ছড়ায় না। কিন্তু যখন কোনো নোড সাইবার হামলার শিকার হয়, সফটওয়্যার ত্রুটির কারণে বিকৃত তথ্য পাঠায়, অথবা পরিকল্পিতভাবে বিভিন্ন সার্ভারকে ভিন্ন ভিন্ন মিথ্যা বার্তা দেয়, তখন তাকে বাইজেন্টাইন ফল্ট (Byzantine Fault) বলা হয়। ১৯৯৯ সালে মিগুয়েল কাস্ত্রো এবং বারবারা লিসকভ তাঁদের যুগান্তকারী গবেষণাপত্রে উপস্থাপন করেন প্র্যাকটিক্যাল বাইজেন্টাইন ফল্ট টলারেন্স (PBFT), যা প্রমাণ করে যে অত্যন্ত বৈরী নেটওয়ার্কেও মিলি-সেকেন্ড ল্যাটেন্সিতে বাইজেন্টাইন সহনশীল কনসেনসাস অর্জন করা সম্ভব।

১. বাইজেন্টাইন মডেল এবং $N ge 3f + 1$ সীমার গাণিতিক প্রমাণ

যদি একটি ডিস্ট্রিবিউটেড ক্লাস্টারে সর্বোচ্চ $f$ সংখ্যক নোড বাইজেন্টাইন বা বৈরী (Malicious) আচরণ করতে পারে, তবে ক্লাস্টারকে অক্ষত রাখতে মোট নোড সংখ্যা $N$ ঠিক কত হতে হবে? এটি অনুধাবনের জন্য একটি অ্যাসিনক্রোনাস নেটওয়ার্ক কল্পনা করা যাক:

  1. যেহেতু নেটওয়ার্কে যেকোনো সময় $f$ সংখ্যক নোড ক্র্যাশ করতে পারে বা সংযোগ বিচ্ছিন্ন হতে পারে, তাই সিস্টেমকে অগ্রগতি বজায় রাখতে অবশ্যই সর্বাধিক $N – f$ সংখ্যক নোডের উত্তরের ওপর নির্ভর করে সিদ্ধান্ত নিতে হবে।
  2. উক্ত উত্তর প্রদানকারী $N – f$ সংখ্যক নোডের মধ্যে সর্বোচ্চ $f$ সংখ্যক নোড সক্রিয় প্রতারক (Byzantine Traitor) হতে পারে, যারা ইচ্ছাকৃতভাবে ভুল বা ধ্বংসাত্মক সিদ্ধান্ত প্রস্তাব করেছে।
  3. সুতরাং, সৎ ও নির্ভুল নোডগুলোর সংখ্যাকে প্রতারক নোডগুলোর চেয়ে নিশ্চিতভাবে সংখ্যাগরিষ্ঠ হতে হবে:
    $$(N – f) – f > f iff N – 2f > f iff N > 3f implies N ge 3f + 1$$

অতএব, ক্লাস্টারে মাত্র ১টি শত্রুভাবাপন্ন নোড সহ্য করতে হলেও ন্যূনতম ৪টি নোড ($3(1)+1 = 4$) বাধ্যতামূলক; ২টি শত্রুভাবাপন্ন নোডের জন্য ৭টি নোড প্রয়োজন।

২. PBFT প্রটোকলের ত্রি-পর্যায়ী আর্কিটেকচার

PBFT প্রটোকল ধারাবাহিক ভিউ (View – $v$)-এর মাধ্যমে পরিচালিত হয়। প্রতি ভিউতে একটি নোড প্রাইমারি বা লিডার হিসেবে দায়িত্ব পালন করে ($p = v pmod N$) এবং বাকি নোডগুলো ব্যাকআপ হিসেবে কাজ করে। প্রতিটি ট্রানজ্যাকশন তিনটি ধাপে সম্পন্ন হয়:

১. প্রি-প্রিপেয়ার ফেজ (Pre-Prepare Phase)

ক্লায়েন্ট থেকে রিকোয়েস্ট $m$ আসার পর প্রাইমারি নোড সেটিকে একটি ক্রমিক সংখ্যা $n$ প্রদান করে এবং একটি ক্রিপ্টোগ্রাফিক হ্যাশ ডাইজেস্ট $d = mathcal{H}(m)$ তৈরি করে ডিজিটাল স্বাক্ষরসহ সমস্ত ব্যাকআপ নোডের কাছে পাঠায়:

$$langle ext{PRE-PREPARE}, v, n, d
angle_{sigma_p}$$

২. প্রিপেয়ার ফেজ (Prepare Phase)

ব্যাকআপ নোডগুলো প্রাইমারির স্বাক্ষর এবং ডাইজেস্ট যাচাই করে সন্তুষ্ট হলে তারা নিজেদের স্বাক্ষরিত প্রিপেয়ার বার্তা সমগ্র নেটওয়ার্কের সবার কাছে ব্রডকাস্ট করে:

$$langle ext{PREPARE}, v, n, d, i
angle_{sigma_i}$$

যখন একটি নোড তার কাছে প্রাইমারির প্রি-প্রিপেয়ার এবং অন্য পৃথক নোডদের কাছ থেকে অন্তত $2f$ টি বৈধ প্রিপেয়ার বার্তা সংগ্রহ করে, তখন তার কাছে একটি প্রিপেয়ার্ড সার্টিফিকেট (Prepared Certificate) তৈরি হয়। এটি প্রমাণ করে যে অন্তত $2f + 1$ টি নোড এই ক্রমানুসারে একমত হয়েছে।

৩. কমিট ফেজ (Commit Phase)

প্রিপেয়ার্ড সার্টিফিকেট অর্জনের পর প্রতিটি নোড কমিট বার্তা ব্রডকাস্ট করে:

$$langle ext{COMMIT}, v, n, d, i
angle_{sigma_i}$$

যখন কোনো নোড পৃথক নোডগুলো থেকে $2f + 1$ টি কমিট বার্তা পায়, তখন ট্রানজ্যাকশনটি অপরিবর্তনীয়ভাবে চূড়ান্ত (Committed) হয় এবং লোকাল স্টেট মেশিনে কার্যকর করে ক্লায়েন্টের কাছে ফলাফল পাঠানো হয়। ক্লায়েন্ট $f + 1$ টি একই ধরনের ফলাফল পেলে ট্রানজ্যাকশন সফল বলে গণ্য করে।

৩. ক্রিপ্টোগ্রাফিক কোরাম ইন্টারসেকশন বিশ্লেষণ

PBFT-এর গাণিতিক নিরাপত্তা টিকে থাকে দুটি কোরামের সমাপতনের ওপর। $N = 3f + 1$ নোডের ক্লাস্টারে যেকোনো দুটি $2f + 1$ আকারের কোরাম $mathcal{Q}_1$ ও $mathcal{Q}_2$-এর সাধারণ নোড সংখ্যা হবে:

$$|mathcal{Q}_1 cap mathcal{Q}_2| ge 2(2f + 1) – (3f + 1) = f + 1$$

যেহেতু পুরো ক্লাস্টারে সর্বাধিক $f$ সংখ্যক নোড অসৎ হতে পারে, তাই এই সাধারণ নোডগুলোর মধ্যে অন্তত একজন নিশ্চিত সৎ ও বিশ্বস্ত নোড থাকবেই ($f + 1 – f = 1$)। এই একজন সৎ নোডের উপস্থিতিই নিশ্চিত করে যে একই ক্রমিক সংখ্যায় কখনো দুটি বিপরীতমুখী সিদ্ধান্ত পাস হতে পারে না।

৪. ভিউ চেঞ্জ (View Change) ও অসৎ লিডার অপসারণ

যদি প্রাইমারি নোড নিজেই বিশ্বাসঘাতক হয়—রিকোয়েস্ট আটকে রাখে বা ইচ্ছাকৃতভাবে ভুল ডেটা ছড়ায়—তবে ব্যাকআপ নোডগুলোর টাইমার এক্সপায়ার হয়ে যায়। ব্যাকআপ নোডগুলো তখন নতুন প্রাইমারির অধীনে $v+1$ ভিউতে রূপান্তরের জন্য `VIEW-CHANGE` প্রস্তাব পাঠায়। পর্যাপ্ত প্রমাণ সংগ্রহ করে নতুন ভিউতে নতুন প্রাইমারি দায়িত্ব গ্রহণ করে সিস্টেমকে সচল রাখে।