Saya tidak setuju dengan jawaban lain bahwa saluran komunikasi perlu dimodelkan secara berbeda. Malice tidak relevan, pesan sederhana yang hilang dengan probabilitas tidak nol cukup untuk membuat masalah dua jenderal. e-mail dan IM, misalnya, memiliki peluang rendah untuk menjatuhkan pesan. Panggilan telepon dapat mengalami gangguan, sehingga dengan masalah kedua jenderal Anda perlu mengkonfirmasi apakah orang lain mendengar apa yang Anda katakan, ad infinitum. Namun saya sering menggunakan saluran ini untuk membuat perjanjian dengan orang lain.
Apa yang gagal dipecahkan oleh masalah "dua jenderal" adalah untuk mendapatkan jaminan pengetahuan umum. Dalam kehidupan nyata kita tidak memerlukan pengetahuan umum formal untuk melanjutkan. Karena itu tujuan dalam situasi yang paling praktis perlu dijelaskan secara berbeda dari tujuan dalam masalah dua jenderal.
Kami setuju bahwa kesepakatan "kemungkinan besar". Saya mungkin tidak mau menyerang kecuali saya yakin Anda akan menyerang, tetapi saya bersedia berjalan ke kedai kopi untuk bertemu dengan Anda asalkan probabilitas kegagalan komunikasi tidak terlalu tinggi daripada kemungkinan Anda gagal tiba karena lalu lintas. Berbeda dengan para jenderal, saya akan mengambil kesempatan Anda bertemu saya.
Jika Anda pernah memiliki seseorang yang menjelaskan sesuatu tiga kali kepada Anda dengan cara yang berbeda ketika Anda mendapatkannya pertama kali, atau pernah seseorang meminta Anda untuk mengkonfirmasi sesuatu yang sudah Anda konfirmasikan dua kali, maka itu karena Anda telah mencapai ambang batas " kemungkinan cukup "sebelum mereka mencapai milik mereka.
Pilihlah psikologi, filsafat, atau biologi evolusi sebagai bidang yang benar untuk mencari jawaban atas pertanyaan berikutnya, mengapa kita tidak benar-benar membutuhkan jaminan penuh pengetahuan umum :-)
Ini juga berhubungan kembali dengan masalah praktis dalam komputasi. Misalnya ketika kita menggunakan kode koreksi kesalahan tunggal untuk "memvalidasi" bahwa simbol dalam pesan telah tiba dengan benar, yang kita lakukan hanyalah menerima bahwa probabilitas kesalahan ganda dapat diabaikan untuk sementara waktu. Kemudian nanti dalam protokol kita mungkin memiliki CRC, untuk lebih mengurangi kemungkinan kesalahan yang tidak terdeteksi. Tak satu pun dari ini menyelesaikan masalah dua jenderal, tetapi itu sudah cukup bagi saya, bank saya dan pedagang semua untuk "setuju" bahwa transaksi kartu kredit telah terjadi, dengan kemungkinan kecil bahwa kami tidak setuju.