BeInCrypto - หัวข้อต่างๆ ในบทความ
- Byzantine Fault Tolerance (BFT) คืออะไร?
- Byzantine Generals’ Problem คืออะไร?
- BFT นำมาปรับใช้กับบล็อกเชนอย่างไร?
- Practical Byzantine Fault Tolerance (pBFT) คืออะไร?
- Practical Byzantine Fault Tolerance ทำงานอย่างไร?
- ความล้มเหลวของ Byzantine ประเภทต่างๆ
- ข้อดีของ Practical Byzantine Fault Tolerance
- ข้อจำกัดของ Practical Byzantine Fault Tolerance
- ความสำคัญของ Byzantine Fault Tolerance
- Byzantine Fault Tolerance ในรูปแบบต่างๆ
- กลไกฉันทามติคือกุญแจสำคัญ
- คำถามที่พบบ่อย
ความน่าเชื่อถือของบล็อกเชนนั้นคือหนึ่งในเหตุผลหลักที่ทำให้มันได้รับความนิยม ผู้เชี่ยวชาญมากมายต่างก็มองว่ามันเป็นวิธีที่จะช่วยเพิ่มประสิทธิภาพและความโปร่งใสให้กับระบบแบบดั้งเดิม ที่ซึ่งอาจจะไม่น่าเชื่อถือ, มีค่าใช้จ่ายสูง, และมีโอกาสที่จะเกิดการฉ้อโกง ดังนั้น คำถามก็คือ เทคโนโลยีบล็อกเชนทำให้เกิดความน่าเชื่อถือได้อย่างไร? ในบทความนี้ เราจะมาอธิบายเรื่องสิ่งที่เป็นแนวคิดหลักของบล็อกเชนอย่าง Byzantine Fault Tolerance (BFT) ว่ามันคืออะไร และความหมายในบริบทของบล็อกเชนเป็นอย่างไร
ต้องการอ่านรีวิวต่างๆ เกี่ยวกับบล็อกเชนที่ดีที่สุดหรือไม่? เข้าร่วม BeInCrypto Trading Community บน Telegram สิ: มาอ่านรีวิวใหม่ๆ พูดคุยกันเรื่องโปรเจกต์คริปโตต่างๆ และฟังการวิเคราะห์ทางเทคนิคต่างๆ จากเหล่านักเทรดมืออาชีพ! เข้าร่วมเลยเดี๋ยวนี้
Byzantine Fault Tolerance (BFT) คืออะไร?
Byzantine Fault Tolerance (BFT) คือความสามารถในการแยกแยะและปฏิเสธข้อมูลที่เป็นเท็จของระบบแบบกระจายอำนาจที่ไม่มีการกำหนดสิทธิ์การเข้าถึง ซึ่งระบบดังกล่าวจะถือว่าเป็น Byzantine Fault Tolerance ได้ หากมันสามารถแก้ไขปัญหา Byzantine Generals’ Problem ซึ่งเป็นปัญหาที่ Bitcoin แก้ไขได้ด้วยลักษณะแบบกระจายอำนาจในที่สุด
ดั่งเช่นชื่อของมัน ทุกคนสามารถเข้าร่วมระบบแบบกระจายอำนาจที่ไม่มีการกำหนดสิทธิ์การเข้าถึงและเริ่มการเผยแพร่ข้อมูลได้ หากระบบนี้ไม่ได้เป็น Byzantine Fault Tolerance สมาชิกในเครือข่ายจะสามารถป้อนข้อมูลที่เป็นเท็จให้กับระบบและทำให้ความน่าเชื่อถือของเครือข่ายลดลงได้ ซึ่งนี่ก็คือเหตุผลที่ว่าทำไม Byzantine Fault Tolerance จึงมีความสำคัญมาก
Byzantine Generals’ Problem คืออะไร?
Byzantine Generals’ Problem (ปัญหาของนายพลแห่งไบแซนไทน์) นั้นเป็นการเปรียบเทียบทฤษฏีซึ่งผู้เชี่ยวชาญใช้มันในการอธิบายความท้าทายของกลุ่มกระจายอำนาจในการพยายามที่จะบรรลุฉันทามติโดยไม่ต้องพึ่งพาตัวกลางที่เชื่อถือได้ ปัญหาของทฤษฏีนี้ได้ถูกนำเสนอเป็นครั้งแรกในปี 1982 โดยนักวิทยาการคอมพิวเตอร์ Leslie Lamport, Marshall Pease, และ Robert Shostak
Byzantine Generals’ Problem เป็นการอธิบายถึงสถานการณ์ที่กองทัพของจักรวรรดิไบแซนไทน์ (Byzantine) หลายกองทัพที่ตั้งค่ายอยู่ในตำแหน่งต่างๆ นอกเมืองที่พวกเขาปิดล้อมเอาไว้ แต่ละกองทัพซึ่งนำโดยนายพล (Generals) จะต้องร่วมกันตัดสินใจว่าจะโจมตีหรือล่าถอยเมื่อใด ซึ่งการตัดสินใจเหล่านี้มีความสำคัญเนื่องจากหากพวกเขาโจมตีไม่พร้อมกัน พวกเขาจะพ่ายแพ้ได้ มีเพียงการโจมตีพร้อมกันเท่านั้นที่จะทำให้พวกเขาได้รับชัยชนะ
อย่างไรก็ตาม นายพลเหล่านี้ไม่มีช่องทางการสื่อสารที่ปลอดภัยมากพอหากไม่มีตัวกลางที่เชื่อถือได้ นั่นหมายความว่าสารที่พวกเขาส่งถึงกันนั้นอาจจะถูกสกัดกั้น ทำลาย หรือปลอมแปลงจากคนทรยศ หรืออาจจะสูญหายในระหว่างการส่งได้เช่นกัน ในทางกลับกัน หากสารส่งมาถึงได้สำเร็จ มันก็ยังมีคำถามอยู่ว่า สารเหล่านั้นเชื่อถือได้แค่ไหน? นายพลผู้ที่ได้รับสารจะรู้ได้อย่างไรว่าข้อความจากผู้ส่งสารไม่ได้ถูกดักจับและสับเปลี่ยนโดยผู้ทรยศเพื่อใช้ข้อมูลเหล่านั้นเพื่อหลอกลวงนายพลผู้ที่ได้รับสาร?
เพื่อแก้ไขปัญหานี้ เหล่านายพลจะต้องมีวิธีที่จะรับประกันได้ว่า:
- เหล่านายพลที่ภักดีทั้งหมดจะต้องตกลงที่จะปฏิบัติการตามแผนการเดียวกัน
- เหล่านายพลที่รักภักดีจะต้องปฏิบัติตามกฏเกณฑ์ที่กำหนดไว้
- เหล่านายพลที่ซื่อสัตย์จะต้องมีความเห็นพ้องต้องกัน (บรรลุฉันทามติ) ไม่ว่าผู้ทรยศจะตัดสินใจทำอะไรก็ตาม
- เหล่านายพลที่ภักดีจะไม่ทำตามแผนลวงที่เกิดขึ้นจากอิทธิพลของเหล่านายพลที่ไม่ภักดี
BFT นำมาปรับใช้กับบล็อกเชนอย่างไร?
บล็อกเชนเป็นระบบกระจายอำนาจที่ไม่มีหน่วยงานกลางที่เชื่อถือได้ซึ่งสามารถแก้ไขปัญหานี้ได้ เครือข่ายของโหนดนั้นจะมีลักษณะคล้ายกับนายพลในทฤษฏีที่เราได้กล่าวถึงไปข้างต้น พวกเขาขาดตัวกลางที่เชื่อถือได้ที่จะช่วยให้พวกเขาสื่อสารกันได้อย่างปลอดภัย แต่พวกเขานั้นต้องบรรลุฉันทามติ (หรือก็คือเห็นพ้องต้องกัน) เพื่อที่จะทำให้เครือข่ายทำงานได้อย่างราบรื่น จะเห็นได้ว่ามันเป็นปัญหาที่คล้ายคลึงกันที่โหนดจะต้องยอมรับในแนวทางปฏิบัติเดียวกันและดำเนินการไปพร้อมๆ กัน
Satoshi Nakamoto ได้เสนอวิธีแก้ Byzantine Generals Problem เมื่อเขาเผยแพร่เอกสารรายงานของ Bitcoin ในเดือนตุลาคม 2008 วิธีแก้ปัญหานี้มาในรูปแบบของกลไกฉันทามติ Proof-of-Work (PoW) ซึ่งสมาชิกเครือข่ายจะประกาศว่าบล็อกดังกล่าวใช้งานได้ก็ต่อเมื่อมันมีหลักฐานการทำงาน (Proof of Work) ที่แท้จริงแนบมาด้วย (ซึ่งก็คือแฮช) การประกาศดังกล่าวหมายความว่าโหนดทั้งหมดภายในเครือข่ายบล็อกเชนบรรลุฉันทามติร่วมกัน และโหนดการขุดจะสามารถเพิ่มบล็อกไปยังเชนได้ ซึ่งบล็อกเหล่านี้ก็คือที่ที่บล็อกเชน Bitcoin ใช้เก็บข้อมูลธุรกรรมต่างๆ
แฮช PoW นั้นจะพิสูจน์ว่ามีการทำงานเพื่อสร้างบล็อกขึ้นมา งานที่พูดถึงนี้ก็คือต้นทุนในรูปแบบของไฟฟ้าและอุปกรณ์ที่นักขุด Bitcoin ลงทุนเพื่อใช้ทำการขุดและสร้างบล็อกขึ้นมา ดังนั้น การลงทุนเหล่านี้คือสิ่งที่ช่วยลดโอกาสที่จะทำสิ่งใดๆ ที่เป็นการมุ่งร้ายต่อเครือข่ายของพวกเขา (เหล่านักขุด) กระบวนการขุดที่มีค่าใช้จ่ายสูงนี้จึงเป็นสิ่งที่ทำให้บล็อกเชนของ Bitcoin มีความปลอดภัยและความน่าเชื่อถือเป็นอย่างมาก
บล็อกเชนอื่นๆ นั้นแก้ปัญหา Byzantine Generals’ Problem ด้วยอัลกอริทึมฉันทามติที่แตกต่างกันออกไป ตัวอย่างเช่น บล็อกเชนของ Ethereum นั้นใช้ Proof-of-Stake (PoS) ซึ่งสมาชิกเครือข่ายต้องทำการ Stake 32 ETH หรือน้อยกว่า (ขึ้นอยู่กับวิธีการ Staking) ดังนั้น มันจึงช่วยลดโอกาสใดๆ ที่พวกเขาจะมุ่งร้ายต่อเครือข่าย เนื่องจากพวกเขา (ผู้ที่ทำการ Stake) จะสูญเสียเงินทุนที่ Stake ไว้ทั้งหมดหากพวกเขาทำสิ่งใดๆ ที่เป็นการไม่ซื่อสัตย์ต่อเครือข่าย
Practical Byzantine Fault Tolerance (pBFT) คืออะไร?
Practical Byzantine Fault Tolerance (pBFT) คืออัลกอริทึมฉันทามติที่ต้องการที่จะทนต่อความผิดพลาดของ Byzantine (ความล้มเหลวของโหนด) Barbara Liskov และ Miguel Castro นำเสนอเรื่องนี้ในเอกสารวิชาการในปี 1999 ในหัวเรื่องว่า “Practical Byzantine Fault Tolerance”
pBFT นั้นเป็นอัลกอริทึมที่ปรับปรุงจากอัลกอริทึม Byzantine Fault Tolerance ตัวเดิม อัลกอริทึมตัวนี้จะถือว่ามีความล้มเหลวของโหนดอิสระอยู่ และยังสันนิษฐานด้วยว่าโหนดอิสระอาจจะเผยแพร่ข้อมูลเท็จ
Practical Byzantine Fault Tolerance ทำงานอย่างไร?
ใน pBFT โหนดต่างๆ จะต้องพิสูจน์ว่าข้อความนั้นมาจากโหนดเพียร์ (Peer Node) ที่เฉพาะเจาะจง กฏของอัลกอริทึมยังต้องการให้โหนดยืนยันว่าข้อความดังกล่าวไม่มีการเปลี่ยนแปลงแก้ไขระหว่างการส่ง หรือก็คือ pBFT ทำงานด้วยสมมติฐานที่ว่าจำนวนโหนดที่เป็นอันตราย (Malicious Nodes) จะต้องไม่เท่ากับหรือมากกว่า 1 ใน 3 ของจำนวนโหนดทั้งหมดในเครือข่าย ซึ่งระบบที่มีโหนดมากมายนั้นแทบจะเป็นไปไม่ได้เลยในเชิงคณิตศาสตร์ที่จะเกิดสถานการณ์ที่โหนด 1 ใน 3 ของโหนดทั้งหมดเป็นโหนดที่เป็นอันตราย
ระบบที่มีพื้นฐานเป็น pBFT จะมีโหลดหลักอยู่หนึ่งโหนด ซึ่งจะถูกเรียกว่าโหนดผู้นำ (Leader Node) โหนดที่เหลือจะเป็นโหนดรองหรือโหนดสำรอง (Backup Nodes) โหนดใดๆ ในระบบก็สามารถเป็นโหนดหลักได้ ตัวอย่างเช่น หากโหนดหลักล้มเหลว โหนดรองจะกลายเป็นโหนดหลักแทน โหนดหลักจะเปลี่ยนไปทุกๆ รอบฉันทามติของ pBFT โหนดที่ซื่อสัตย์ส่วนใหญ่นั้นยังสามารถโหวตเพื่อเตะโหนดหลักที่ผิดพลาดออกและแทนที่มันด้วยโหนดถัดไปในคิว
ฉันทามติ pBFT จะทำงานดังนี้:
- ไคลเอ็นต์ส่งคำขอมายัง Leader Node
- Leader Node เผยแพร่ข้อความไปยัง Backup Nodes
- โหนดทั้งหมด (ทั้งโหนดหลักและรอง) จะดำเนินการตามคำขอของไคลเอ็นต์ จากนั้นก็จะส่งคำตอบให้กับไคลเอ็นต์
- คำขอจะถือว่าประสบความสำเร็จหากไคลเอ็นต์ได้รับคำตอบ “m+1” ซึ่ง m หมายถึงจำนวนสูงสุดของโหนดผิดพลาดที่ได้รับอนุญาต
Hyperledger Fabric, Zilliqa และ Tendermint เป็นแพลตฟอร์มบล็อกเชนที่ใช้งานอัลกอริธึมฉันทามติ pBFT Hyperledger Fabric นั้นใช้ตัวแปรของ pBFT แบบไม่กำหนดสิทธิ์การเข้าถึง ในขณะที่ Zilliqa ใช้ทั้ง PoW และ pBFT ส่วน Tendermint นั้นใช้ DPoS และ pBFT
ความล้มเหลวของ Byzantine ประเภทต่างๆ
ความล้มเหลวของ Byzantine จะมีอยู่ 2 ประเภทได้แก่: Fail-Stop และ Arbitrary Node ซึ่งความล้มเหลวแบบ Fail-Stop นั้นจะเกิดขึ้นเมื่อโหนดล้มเหลวและหยุดทำงาน ในทางกลับกัน Arbitrary Node จะเกิดขึ้นเมื่อ:
- โหนดตอบกลับด้วยผลลัพท์ที่เป็นเท็จ
- โหนดไม่สามารถส่งคืนผลลัพท์ได้
- โหนดจงใจตอบกลับด้วยผลลัพท์ที่ไม่ถูกต้อง
- โหนดตอบกลับไปยังส่วนต่างๆ ของเครือข่ายด้วยผลลัพท์ที่แตกต่างกันไป
ข้อดีของ Practical Byzantine Fault Tolerance
pBFT นั้นมีข้อดีบางประการเมื่อเทียบกับอัลกอริทึมฉันทามติอื่นๆ โดยเฉพาะ PoW ซึ่งข้อดีต่างๆ มีดังนี้:
- ความเร็วในการประมวลผลธุรกรรม: pBFT ช่วยให้ประมวลผลธุรกรรมขั้นสุดท้ายได้โดยไม่ต้องมีการยืนยัน หากโหนดยอมรับความถูกต้องของบล็อกที่เสนอมาแล้ว ธุรกรรมในบล็อกดังกล่าวจะถือเป็นที่สิ้นสุดทันที ซึ่งแตกต่างจากกลไกฉันทามติ PoW ที่แต่ละโหนดจะต้องตรวจสอบธุรกรรมก่อนที่โหนดการขุดจะเพิ่มมันลงไปในเชน ซึ่งการยืนยันธุรกรรมของ Bitcoin นั้นจะใช้เวลา 10 ถึง 60 นาที ขึ้นอยู่กับจำนวนโหนดที่ยืนยันบล็อก
- ใช้พลังงานต่ำ: pBFT นั้นต่างจาก PoW เนื่องจากไม่ต้องใช้โหนดในการแก้ไขปัญหาทางคณิตศาสตร์ที่ซับซ้อน ทำให้มันไม่ต้องใช้ไฟฟ้ามากมายเหมือนที่นักขุด Bitcoin ต้องใช้เพื่อพิสูจน์การทำงาน
- การจ่ายรางวัลที่เท่าเทียมกัน: ใน pBFT โหนดทั้งหมดจะดำเนินการตามคำขอของไคลเอ็นต์ ซึ่งหมายความว่าพวกเขาทั้งหมดจะได้รับรางวัล
ข้อจำกัดของ Practical Byzantine Fault Tolerance
บล็อกเชนที่มีพื้นฐานของ pBFT นั้นจะไม่สามารถปรับขนาดได้ดีนักเนื่องจากมีการสื่อสารระหว่างโหนดอย่างต่อเนื่อง ซึ่งหมายความว่าเครือข่ายที่มีโหนดจำนวนมากจะใช้เวลาที่นานมากขึ้นในการตอบสนองต่อคำขอของไคลเอ็นต์
ยิ่งไปกว่านั้น บล็อกเชนที่มีพื้นฐานของ pBFT นั้นจะเปราะบางต่อการโจมตีแบบซีบิล (Sybil Attacks) ซึ่งเป็นการโจมตีแบบที่ตัวตนเพียงหนึ่งเดียวเข้าควบคุมโหนดเป็นจำนวนมาก (ด้วยการสร้างตัวตนปลอมขึ้นมาหลายๆ ตัวตน) เพื่อขัดขวางฉันทามติของเครือข่าย อย่างไรก็ตาม การโจมตีแบบซีบิลนั้นจะเกิดขึ้นได้ยากมากขึ้นเมื่อเครือข่ายมีจำนวนโหนดเพิ่มมากขึ้น
ความสำคัญของ Byzantine Fault Tolerance
Byzantine Fault Tolerance มีความสำคัญเนื่องจากช่วยให้บล็อกเชนสามารถทำงานได้ตามปกติถึงแม้ว่าจะมีบางโหนดเผยแพร่ข้อมูลเท็จหรือหยุดทำงานก็ตาม ผู้ใช้งานคริปโตนั้นควรจะเข้าใจถึงวิธีการทำงานของ BFT บนบล็อกเชนที่พวกเขามีเหรียญที่ลงทุนอยู่ เพราะมันจะบอกได้ว่าการธุรกรรมคริปโตของพวกเขาจะปลอดภัยมากเพียงใด
Byzantine Fault Tolerance ในรูปแบบต่างๆ
Byzantine Fault Tolerance ของบล็อกเชนนั้นจะขึ้นอยู่กับอัลกอริทึมฉันทามติที่ผู้พัฒนาตัดสินใจใช้ ซึ่งนั่นหมายความว่า บล็อกเชนทั้งหมดนั้นไม่ได้มี BFT ในรูปแบบเดียวกัน
อัลกอริทึมฉันทามติที่พบได้บางที่สุดบางส่วนได้แก่:
- Proof-of-Work
- Proof-of-Stake
- Delegated Proof-of-Stake (DPoS)
- Practical Byzantine Fault Tolerance (pBFT)
- Leased Proof-of-Stake (LPoS)
- Proof-of-Importance (PoI)
- Proof-of-Authority (PoA)
- Direct Acyclic Graph (DAG)
- Delegated Byzantine Fault Tolerance (dBFT)
- Proof-of-Capacity (PoC)
- Proof-of-Identity (PoI)
- Proof-of-Activity (PoA)
- Proof-of-Elapsed-Time (PoET)
กลไกฉันทามติคือกุญแจสำคัญ
เครือข่ายบล็อกเชนนั้นต้องการกลไกฉันทามติที่ดีเพื่อที่จะช่วยให้มันมีประสิทธิภาพและประสบความสำเร็จได้ มีอัลกอริทึมฉันทามติอยู่มากมายในตลาด ซึ่งแต่ละตัวนั้นก็จะทำงานต่างกันไปเล็กน้อย ถึงแม้ว่าจะไม่มีเครือข่ายบล็อกเชนใดที่สมบูรณ์แบบ แต่อัลกอริทึม PoW และ PoS BFT ก็ได้กลายเป็นแนวทางที่ยอดเยี่ยมที่ใช้ในการแก้ปัญหา Byzantine Generals’ Problem