Byzantine Generals Problem ปัญหานายพลไบแซนไทน์
- The Byzantine Generals Problem อธิบายถึงความยากลำบากของระบบการกระจายอำนาจในการยอมรับความจริงข้อเดียว
- The Byzantine Generals Problem ทำให้เงินถูกรบกวน จนกระทั่งมีการประดิษฐ์ Bitcoin
- Bitcoin ใช้กลไก Proof-of-Work และ blockchain เพื่อแก้ปัญหา Byzantine Generals
- กฎของ Bitcoin นั้นเป็นจริง ดังนั้นจึงไม่มีข้อขัดแย้งว่าบล็อกหรือธุรกรรมใดที่ถูกต้อง ทำให้สมาชิกทุกคนเห็นด้วยกับความจริงเพียงข้อเดียว
A reliable computer system must be able to cope with the failure of one or more of its components. A failed component may exhibit a type of behavior that is often overlooked—namely, sending conflicting information to different parts of the system. The problem of coping with this type of failure is expressed abstractly as the Byzantine Generals Problem.
คอมพิวเตอร์ที่เชื่อถือได้จะต้องสามารถรับมือกับความล้มเหลวขององค์ประกอบตั้งแต่หนึ่งอย่างขึ้นไป องค์ประกอบที่ล้มเหลวนี้อาจแสดงพฤติกรรมถูกมองข้าม หรือก็คือการส่งข้อมูลที่ขัดแย้งไปยังส่วนต่างๆ ของระบบ การจัดการกับปัญหาประเภทนี้มักจะถูกเรียกเป็นนามธรรมว่า the Byzantine Generals Problem
Byzantine Generals Problem
เดิมทีเป็นคำเรียกรูปแบบการสื่อสารการทหารของอาณาจักร Byzantine ที่ทหารแต่ละกองจะมี นายพลนำกองหรือนายพล (Generals) และแต่ละกองจะสื่อสารคำสั่ง อาทิ โจมตี หรือ ถอยทัพ ผ่าน ผู้ส่งสาร ซึ่งทุกกองทหารจะต้องตกลงเป็น ฉันทามติ (Consensus)
กองทหารจะต้องตกลงเป็น ฉันทามติ (Consensus) ก็คือ นายพลของทุกกองจะต้องตกลงกันให้ได้ว่า จะต้องโจมตี หรือถอยทัพ ซึ่งถ้าตกลงกันไม่ได้ หรือเกิดความผิดพลาดในการตกลง ก็จะทำให้เกิดพ่ายแพ้ในสงครามได้
ลองนึกภาพว่าถ้าหากจะโจมตีศัตรูซึ่งการจะโจมตีชนะจะต้องโจมตีพร้อมกันแต่มีทหารบางกองที่ไม่เห็นด้วย ไม่ทำตามหรือไม่ได้รับสารว่าจะโจมตี ทำให้การโจมตีพร้อมกันไม่ได้ก็ทำให้เกิดผลการโจมตีไม่ชนะศรัตรูและแพ้ไปในที่สุด หรือต้องการถอยทัพซึ่งการจะถอยให้สำเร็จนั้นก็จะต้องถอยทั้งกองทัพแต่ปรากฎว่ามีกองทหารบางกองที่ไม่ถอยก็อาจจะโดนศัตรูไล่ล่าและแพ้ไปในที่สุด
สถานการณ์เดียวกันนี้ได้ถูกนำมาใช้เป็นคำเรียกปัญหาการสื่อสารระหว่างเครือข่ายคอมพิวเตอร์ ว่า Byzantine Generals Problem
The Byzantine Generals Problem
The Byzantine Generals Problem(ปัญหานายพลไบแซนไทน์) คือปัญหาทฤษฎีเกม ซึ่งอธิบายถึงความยากลำบากที่ส่วนกระจายอำนาจมีในการบรรลุฉันทามติ(consensus) โดยไม่ต้องพึ่งพาส่วนกลางที่เชื่อถือได้
การเปรียบเทียบทฤษฎีเกมที่อยู่เบื้องหลังปัญหานายพลไบแซนไทน์คือนายพลหลายคนกำลังปิดล้อม Byzantium พวกเขาได้ล้อมเมืองไว้แล้ว แต่ก็ต้องร่วมกันตัดสินใจว่าจะโจมตีเมื่อใด ถ้าแม่ทัพโจมตีพร้อมกันทุกคนก็จะชนะ แต่ถ้าโจมตีคนละเวลาก็จะแพ้ นายพลไม่มีช่องทางการสื่อสารที่ปลอดภัยระหว่างกัน เนื่องจากข้อความใด ๆ ที่พวกเขาส่งหรือรับอาจถูกสกัดกั้นหรือหลอกลวงโดยฝ่ายป้องกันของ Byzantium ปัญหาคือ แม่ทัพจะจัดการโจมตีพร้อมกันได้อย่างไร?
ตัวอย่างเช่นนายพล A ต้องการเข้าโจมตีเวลา 2 ทุ่ม จึงส่งสารไปหานายพล B นายพล A จะรู้ได้ยังไงว่านายพล B ได้รับสารแล้วและจะโจมตีพร้อมกัน
- ถ้าหากมีฝ่ายป้องกันเมืองดักทำร้ายคนส่งสาร นายพล B ก็จะไม่ได้รับสารที่ส่งมาจากนายพล A และนายพล A ก็จะโจมตีเมืองอยู่ฝ่ายเดียวทำให้พ่ายแพ้ไป
- ถ้าหากนายพล B ได้รับสารแล้วแต่ไม่เห็นด้วยและไม่ได้โจมตีพร้อมกับนายพล A ก็อาจจะทำให้เกิดพ่ายแพ้ได้เหมือนกัน
- ถ้าหากฝ่ายป้องกันเมืองปลอมแปลงสารของนายพล A และส่งให้นายพล B ก็อาจจะมีการโจมตีไม่พร้อมกันก็ทำให้เกิดการพ่ายแพ้ได้เหมือนกัน
- ถ้าหากนายพล B เป็นใส้ศึก และไม่ทำตามที่นายพล A ส่งสารมาก็ทำให้ไม่สามารถโจมตีพร้อมกันได้และก็พ่ายแพ้ไปในที่สุดได้
นอกจากนี้ยังมีเหตุผลอื่น ๆ อีกมากมายที่นายพล A และนายพล B ไม่สามารถโจมตีพร้อมกันได้ เป็นผลให้พ่ายแพ้ไปในที่สุด
ลองมานึกวิธีแก้ไขปัญหาแบบง่าย ๆ กัน
เริ่มต้นที่การป้องกันการลอกเลียนแบบหรือส่งสารหลอกลวง อาจจะมีการแสตมป์ตราสัญลักษณ์ของแต่ละกองทัพ หรืออาจจะมีการเข้ารหัสเวลาการส่งข้อความทำให้สามารถยืนยันการส่งข้อความได้ว่ามาจากนายพล A จริง ๆ
ส่วนการยืนยันว่านายพล B ได้รับสารที่ถูกต้องนั้น อาจจะให้นายพล B ส่งสารกลับเพื่อยืนยันหรือ confirm การได้รับสาร แต่การ confirm การยืนยันการรับสารนั้น อาจจะให้นายพล B ส่งตอบกลับนายพล A ว่าได้รับสารแล้วและจะโจมตีพร้อมกัน แต่ก็มีปัญหาตามมาเช่น นายพล A ส่งสารหานายพล B แล้วรอรับสารตอบกลับจากนายพล B ถ้านายพล A ไม่ได้รับสารจากนายพล B นายพล A จะรู้ได้ยังไงว่านายพล B รับทราบสารที่ส่งไปหรือไม่ สารอาจจะส่งไม่ถึงนายพล B เพราะคนส่งสารอาจจะโดยโจมตีจากกองป้องกันหรือนายพล B ส่งสารตอบแล้วแต่โดยกองป้องกันโจมตีตอนส่งสาร confirm แล้วอาจจะไม่ถึงนายพล A
ส่วนนายพล B สารที่ส่งไป confirm นายพล A แล้วนายพล B จะมั่นใจได้อย่างไรว่านายพล A ได้รับสาร confirm ตอบกลับ ถ้าสมมติว่านายพล B ส่งสารตอบกลับ confirm นายพล A ไปแล้ว แต่สารไปไม่ถึงนายพล A แล้วนายพล A ที่ไม่ได้รับสารตอบกลับก็จะไม่โจมตีเพราะไม่มีสาร confirm ดังนั้นกลายเป็นว่านายพล B จะโจมตีแค่กองทัพเดียวก็ทำให้พ่ายแพ้ได้ นี่ยังไม่รวมถึงการส่งไปหานายพล B, C, D, ... หรืออาจจะมีใส้ศึกอยู่ในกองทหารซักกองอีกด้วย อาจจะแก้โดยการยีนยัน confirm หลาย ๆ ครั้งเพื่อให้แน่ใจว่าบรรลุฉันทามติ(consensus) แล้ว
Centralized กับ Decentralized Systems
เฉพาะระบบกระจายอำนาจเท่านั้นที่ประสบปัญหา Byzantine Generals เนื่องจากไม่มีแหล่งข้อมูลที่เชื่อถือได้และไม่มีวิธีตรวจสอบข้อมูลที่ได้รับจากสมาชิกรายอื่นในเครือข่าย ในระบบแบบรวมศูนย์ ผู้มีอำนาจจะได้รับความไว้วางใจให้เผยแพร่ข้อมูลจริงและป้องกันข้อมูลเท็จหรือข้อมูลหลอกลวงไม่ให้แพร่กระจายไปทั่วเครือข่าย
ที่มา https://www.howtoclicks.com/cryptocurrency/coin/bitcoin/q/9346
#siamstr