Why Nostr? What is Njump?
2023-10-19 09:15:20

Doesystem on Nostr: Byzantine Generals Problem ปัญหานายพลไบแซนไทน์ ...

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
Author Public Key
npub10gvm4jhn967cmaksh9vnwa5zmzxkuk98ltdtjk0pum4mue7f4rnq7ecptr