Masalah Jenderal Bizantium, juga dikenal sebagai Masalah Dua Jenderal, diusulkan dalam makalah Leslie Lambert tentang toleransi kesalahan komunikasi jaringan peer-to-peer terdistribusi pada tahun 1982. Dalam komunikasi sistem terdistribusi, beberapa masalah lokal dapat menyebabkan komputer mengirimkan pesan kesalahan dan merusak konsistensi sistem. Oleh karena itu, Masalah Jenderal Bizantium pada dasarnya adalah masalah konsensus dalam komunikasi point-to-point.
Masalah Jenderal Bizantium berasal dari abad pertengahan. Karena luasnya wilayah Bizantium, komunikasi antar pasukan hanya bisa mengandalkan pembawa pesan. Jika ada pengkhianat yang dengan sengaja salah mengartikan informasi para pemimpin tentara, itu akan menyebabkan rencana operasional yang tidak konsisten, yang mengakibatkan “kegagalan Bizantium”.
Untuk mengatasi masalah ini, ada dua solusi: satu adalah mengirim utusan satu sama lain melalui kesepakatan lisan, dan mencapai konsensus dengan mayoritas sederhana, tetapi sulit untuk membedakan calon pengkhianat; yang kedua adalah mengirim utusan dalam bentuk perjanjian tertulis untuk menyampaikan pesan tertulis dengan tanda tangan eksklusif, yang harus didukung oleh masing-masing pasukan, tetapi jika pengirimannya terlalu lambat, tanda tangannya bisa hilang. Karena kedua solusi hanya dapat menyelesaikan sebagian dari masalah, dan membutuhkan terlalu banyak waktu dan sumber daya untuk mencapai konsensus, solusi tersebut tidak berguna.
Masalah Jenderal Bizantium di Internet berarti bahwa dalam proses transmisi saluran, mungkin sulit bagi beberapa node untuk mencapai sinkronisasi informasi karena beban kerja yang berlebihan atau beberapa serangan jahat. Pada tahun 1999, Miguel Castro dan Barbara Liskov mengusulkan Byzantine Fault Tolerance (BFT). Mereka percaya bahwa jika dua pertiga node dalam sistem bekerja secara normal, konsistensi dan kebenaran sistem dapat dijamin. Belakangan, Satoshi Nakamoto mengusulkan mekanisme proof of work (PoW) dan algoritma kriptografi asimetris Bitcoin, yang memberikan solusi baru untuk Masalah Jenderal Bizantium.
Misalkan ada n jenderal dan t pengkhianat. Katakanlah n=3, t=1, jadi salah satu dari A, B, dan C adalah pengkhianat. Jika A mengeluarkan perintah [serangan], tetapi pengkhianat B menyuruh C untuk [mundur], maka C tidak dapat membuat penilaian; Jika pengkhianat B mengirimkan perintah [serang] ke A dan perintah [mundur] ke C, maka A dan C tidak dapat mencapai kesepakatan. Oleh karena itu, ketika jumlah pengkhianat lebih besar dari atau sama dengan 1/3, Masalah Jenderal Bizantium tidak dapat diselesaikan.
Demikian pula, dengan asumsi bahwa jumlah total node jaringan adalah N dan jumlah node berbahaya adalah T, masalah dapat diselesaikan hanya ketika N>=3T+1, yaitu jumlah node normal dalam jaringan setidaknya ( 2/3) N, untuk memastikan konsistensi informasi. Dalam komunikasi jaringan yang andal, Byzantine Fault Tolerance dapat menyelesaikan masalah kegagalan node sampai batas tertentu, sehingga sistem dapat mencapai konsensus.
Misalkan jenderal A pertama kali mengeluarkan perintah [serangan] dan membubuhkan tanda tangannya. Setelah menerimanya, jika jenderal lain juga berencana untuk menyerang, mereka akan mengikuti perintah [serangan] dan tanda tangannya setelah perintah jenderal A. Jika A tidak menjalankan perintah [serang] setelah A mengirimkannya, jenderal lain dapat menilai A sebagai pengkhianat dan menggunakannya untuk membedakan informasi yang benar.
Demikian pula, beberapa node yang berpartisipasi akan mendapatkan hasil melalui serangkaian pekerjaan, dan node pertama yang mendapatkan hasilnya akan menyiarkannya ke seluruh jaringan. Jika hasilnya benar, node lain akan menambahkan hasilnya ke buku besar mereka sendiri untuk mempersiapkan perhitungan guna memenangkan hak untuk mencatat transaksi di blockchain.
Seorang Peretas harus memiliki lebih dari 51% daya komputasi untuk menghancurkan keamanan jaringan atau menerbitkan blok palsu. Biayanya jauh lebih besar daripada pengembaliannya. Oleh karena itu, mekanisme ini dapat mengurangi kemungkinan informasi palsu dan membuat sistem lebih cepat mencapai konsensus.
Enkripsi dan dekripsi algoritma kunci asimetris memerlukan dua kunci rahasia terpisah - kunci publik dan kunci privat, yang biasanya muncul berpasangan. Jika A ingin mengirim pesan ke B, A memerlukan kunci publik B untuk mengenkripsi informasi, dan B memerlukan kunci pribadinya sendiri untuk mendekripsi informasi. Jika B ingin menunjukkan identitasnya, dia dapat menandatangani kunci pribadi, menulis "teks tanda tangan" dan menyiarkannya. Orang lain dapat memverifikasi identitasnya sesuai dengan kunci publik B.
Karena identitas dan tanda tangan tidak dapat dipalsukan, algoritme kunci asimetris memastikan privasi transmisi dan tanda tangan tepercaya.
Masalah Jenderal Bizantium, juga dikenal sebagai Masalah Dua Jenderal, diusulkan dalam makalah Leslie Lambert tentang toleransi kesalahan komunikasi jaringan peer-to-peer terdistribusi pada tahun 1982. Dalam komunikasi sistem terdistribusi, beberapa masalah lokal dapat menyebabkan komputer mengirimkan pesan kesalahan dan merusak konsistensi sistem. Oleh karena itu, Masalah Jenderal Bizantium pada dasarnya adalah masalah konsensus dalam komunikasi point-to-point.
Masalah Jenderal Bizantium berasal dari abad pertengahan. Karena luasnya wilayah Bizantium, komunikasi antar pasukan hanya bisa mengandalkan pembawa pesan. Jika ada pengkhianat yang dengan sengaja salah mengartikan informasi para pemimpin tentara, itu akan menyebabkan rencana operasional yang tidak konsisten, yang mengakibatkan “kegagalan Bizantium”.
Untuk mengatasi masalah ini, ada dua solusi: satu adalah mengirim utusan satu sama lain melalui kesepakatan lisan, dan mencapai konsensus dengan mayoritas sederhana, tetapi sulit untuk membedakan calon pengkhianat; yang kedua adalah mengirim utusan dalam bentuk perjanjian tertulis untuk menyampaikan pesan tertulis dengan tanda tangan eksklusif, yang harus didukung oleh masing-masing pasukan, tetapi jika pengirimannya terlalu lambat, tanda tangannya bisa hilang. Karena kedua solusi hanya dapat menyelesaikan sebagian dari masalah, dan membutuhkan terlalu banyak waktu dan sumber daya untuk mencapai konsensus, solusi tersebut tidak berguna.
Masalah Jenderal Bizantium di Internet berarti bahwa dalam proses transmisi saluran, mungkin sulit bagi beberapa node untuk mencapai sinkronisasi informasi karena beban kerja yang berlebihan atau beberapa serangan jahat. Pada tahun 1999, Miguel Castro dan Barbara Liskov mengusulkan Byzantine Fault Tolerance (BFT). Mereka percaya bahwa jika dua pertiga node dalam sistem bekerja secara normal, konsistensi dan kebenaran sistem dapat dijamin. Belakangan, Satoshi Nakamoto mengusulkan mekanisme proof of work (PoW) dan algoritma kriptografi asimetris Bitcoin, yang memberikan solusi baru untuk Masalah Jenderal Bizantium.
Misalkan ada n jenderal dan t pengkhianat. Katakanlah n=3, t=1, jadi salah satu dari A, B, dan C adalah pengkhianat. Jika A mengeluarkan perintah [serangan], tetapi pengkhianat B menyuruh C untuk [mundur], maka C tidak dapat membuat penilaian; Jika pengkhianat B mengirimkan perintah [serang] ke A dan perintah [mundur] ke C, maka A dan C tidak dapat mencapai kesepakatan. Oleh karena itu, ketika jumlah pengkhianat lebih besar dari atau sama dengan 1/3, Masalah Jenderal Bizantium tidak dapat diselesaikan.
Demikian pula, dengan asumsi bahwa jumlah total node jaringan adalah N dan jumlah node berbahaya adalah T, masalah dapat diselesaikan hanya ketika N>=3T+1, yaitu jumlah node normal dalam jaringan setidaknya ( 2/3) N, untuk memastikan konsistensi informasi. Dalam komunikasi jaringan yang andal, Byzantine Fault Tolerance dapat menyelesaikan masalah kegagalan node sampai batas tertentu, sehingga sistem dapat mencapai konsensus.
Misalkan jenderal A pertama kali mengeluarkan perintah [serangan] dan membubuhkan tanda tangannya. Setelah menerimanya, jika jenderal lain juga berencana untuk menyerang, mereka akan mengikuti perintah [serangan] dan tanda tangannya setelah perintah jenderal A. Jika A tidak menjalankan perintah [serang] setelah A mengirimkannya, jenderal lain dapat menilai A sebagai pengkhianat dan menggunakannya untuk membedakan informasi yang benar.
Demikian pula, beberapa node yang berpartisipasi akan mendapatkan hasil melalui serangkaian pekerjaan, dan node pertama yang mendapatkan hasilnya akan menyiarkannya ke seluruh jaringan. Jika hasilnya benar, node lain akan menambahkan hasilnya ke buku besar mereka sendiri untuk mempersiapkan perhitungan guna memenangkan hak untuk mencatat transaksi di blockchain.
Seorang Peretas harus memiliki lebih dari 51% daya komputasi untuk menghancurkan keamanan jaringan atau menerbitkan blok palsu. Biayanya jauh lebih besar daripada pengembaliannya. Oleh karena itu, mekanisme ini dapat mengurangi kemungkinan informasi palsu dan membuat sistem lebih cepat mencapai konsensus.
Enkripsi dan dekripsi algoritma kunci asimetris memerlukan dua kunci rahasia terpisah - kunci publik dan kunci privat, yang biasanya muncul berpasangan. Jika A ingin mengirim pesan ke B, A memerlukan kunci publik B untuk mengenkripsi informasi, dan B memerlukan kunci pribadinya sendiri untuk mendekripsi informasi. Jika B ingin menunjukkan identitasnya, dia dapat menandatangani kunci pribadi, menulis "teks tanda tangan" dan menyiarkannya. Orang lain dapat memverifikasi identitasnya sesuai dengan kunci publik B.
Karena identitas dan tanda tangan tidak dapat dipalsukan, algoritme kunci asimetris memastikan privasi transmisi dan tanda tangan tepercaya.