Consensus Algorithm คืออะไร
“Consensus Algorithm” ในบริบทของ blockchain คือ กลไกหรือขั้นตอนที่ถูกออกแบบมาเพื่อให้ตัวโหนด (nodes) ภายในเครือข่าย blockchain สามารถเข้าถึงข้อตกลงร่วมกันได้ว่าเวอร์ชันใดของข้อมูลหรือสถานะของ ledger เป็นที่ยอมรับสำหรับทุกๆ โน้ด การมีข้อตกลงที่สามารถเข้าถึงได้นี้เป็นสิ่งที่เป็นหลักสำคัญสำหรับการทำงานของ blockchain เนื่องจากเป็นการรับรองว่าข้อมูลทั้งหมดที่ถูกบันทึกเข้าไปใน blockchain เป็นข้อมูลที่ไม่สามารถถูกเปลี่ยนแปลงอย่างมีเหตุผลและถูกต้อง
มีหลายวิธีในการบรรลุถึงความเห็นตามความตกลงเช่น:
- Proof of Work (PoW): ใช้ใน Bitcoin และ Ethereum (เวอร์ชันเริ่มต้น) โดยโน้ดจะต้องทำงานทางคำนวณเพื่อหาคำตอบในปัญหาคณิตศาสตร์ซับซ้อนและแรกมาก่อนที่จะได้รับสิทธิ์ในการเพิ่ม block ใหม่ลงใน blockchain
- Proof of Stake (PoS): โน้ดจะต้อง “เสี่ยง” หรือ “วางเงินประกัน” หากบล็อกที่พวกเขาเสนอไม่ถูกต้อง พวกเขาจะสูญเสียเงินที่วางเป็นประกัน ตัวอย่างเช่น Ethereum ต้องการเปลี่ยนแปลงสู่ PoS ผ่านการปรับปรุง Serenity หรือ Ethereum 2.0
- Delegated Proof of Stake (DPoS): ผู้ถือสิทธิเสียค่าใช้จ่ายของเครือข่ายเลือกกลุ่มขนาดเล็กของโน้ด (คือ ตัวแทน) เพื่อให้ทำการยืนยันบล็อกแทน
- Proof of Authority (PoA): ผู้ที่มีความน่าเชื่อถือเท่านั้นที่จะได้รับสิทธิ์ในการยืนยันบล็อก
- Byzantine Fault Tolerance (BFT): วิธีการแก้ปัญหาของ Byzantine Generals’ Problem ซึ่งเป็นปัญหาในการมีความเห็นตามความตกลงในระบบแบบกระจาย
เครือข่าย blockchain จะเลือกใช้ consensus algorithm ตามความเหมาะสมกับการใช้งาน และแต่ละ algorithm มีข้อดี ข้อเสีย และรูปแบบการโจมตีที่เป็นไปได้ต่างกัน
ข้อมูลสำคัญเกี่ยวกับ Consensus Algorithm
Consensus Algorithm (ความเห็นตามความตกลง) คือหัวใจสำคัญของการทำงานของเครือข่าย blockchain (บล็อกเชน). ในฐานะที่เป็นระบบที่กระจายแบบ peer-to-peer (เพียร์ทูเพียร์), blockchain ต้องการกลไกเพื่อให้ตัวโน้ด (nodes) ในเครือข่ายสามารถเข้าถึงข้อตกลงร่วมกันเกี่ยวกับสถานะของข้อมูล.
1. Proof of Work (PoW)
Proof of Work (การพิสูจน์งาน) เป็นกลไกที่ใช้งานร่วมกับ Bitcoin และ Ethereum ในรุ่นเริ่มต้น. โดยจะต้องใช้การคำนวณทางคณิตศาสตร์ซับซ้อนเพื่อรับรองว่าข้อมูลเป็นที่ถูกต้อง และก่อนที่จะได้รับสิทธิ์ในการเพิ่ม block (บล็อก) ลงใน blockchain.
2. Proof of Stake (PoS)
Proof of Stake (การพิสูจน์สิทธิ์) ไม่ต้องการความสามารถทางคำนวณที่มากเท่ากับ PoW แต่ต้องการให้ผู้เข้าร่วมมีการ “วางเงินประกัน” หรือ “staking” (การวางเงินเป็นประกัน). Ethereum ได้มีการรับรองว่าจะย้ายไปใช้ PoS ในอนาคต.
3. Delegated Proof of Stake (DPoS)
Delegated Proof of Stake (การพิสูจน์สิทธิ์แบบมีการแต่งตั้ง) เป็นรูปแบบที่สมาชิกในเครือข่ายเลือกตัวแทนบางส่วนเพื่อยืนยันการทำธุรกรรมแทน.
4. Proof of Authority (PoA)
Proof of Authority (การพิสูจน์อำนาจ) มีการกำหนดตัวแทนที่มีความน่าเชื่อถือเพื่อการยืนยันบล็อก.
5. Byzantine Fault Tolerance (BFT)
Byzantine Fault Tolerance (การทนทานต่อความผิดพลาดแบบบิซันไทน์) เป็นวิธีการที่ช่วยในการแก้ปัญหาของความเห็นตามความตกลงในระบบแบบกระจาย โดยเฉพาะกับปัญหาที่เกิดจากโน้ดที่ไม่น่าเชื่อถือ.
Proof of Work (PoW): การพิสูจน์งาน
Proof of Work (PoW) หรือ การพิสูจน์งาน คือกลไกหลักที่ใช้เพื่อรักษาความปลอดภัยและการดำเนินการของเครือข่าย blockchain อย่าง Bitcoin และ Ethereum (รุ่นเริ่มต้น).
- การทำงาน: เมื่อธุรกรรมถูกส่งไปยังเครือข่าย, มันจะถูกรวมกันในสิ่งที่เรียกว่า “บล็อก” หรือ block. ตัวนักทำเหมือง (miners) ซึ่งเป็นโน้ดที่เข้าร่วมเครือข่ายจะพยายามทำการคำนวณแก้ปัญหาคณิตศาสตร์ซับซ้อนเพื่อค้นหาคำตอบที่ถูกต้องสำหรับบล็อกนั้นๆ ปัญหาคณิตศาสตร์นี้เรียกว่า “การค้นหาค่า nonce”.
- ความยาก: ปัญหาคณิตศาสตร์ที่ถูกกำหนดนั้นมีความยากและต้องใช้เวลาในการคำนวณ. ความยากนี้เป็นตัวปรับเพื่อให้รับรองว่าบล็อกใหม่จะถูกเพิ่มเข้าไปใน blockchain ประมาณทุก 10 นาที (สำหรับ Bitcoin).
- รางวัล: เมื่อนักทำเหมืองหนึ่งคนพบคำตอบสำหรับปัญหาคณิตศาสตร์, โซลูชันที่ถูกต้องจะถูกส่งไปยังเครือข่ายเพื่อให้โน้ดอื่นยืนยัน และนักทำเหมืองที่พบคำตอบนั้นจะได้รับรางวัลเป็น cryptocurrency และค่าธรรมเนียมธุรกรรม.
- ความปลอดภัย: ด้วยวิธีการ PoW, ผู้โจมตีจะต้องมีการคำนวณที่มากกว่า 50% ของทั้งเครือข่ายเพื่อที่จะสามารถดักแด้หรือแก้ไขธุรกรรมใน blockchain ได้, ทำให้การโจมตีเป็นไปได้ยากมาก.
- ข้อเสีย: ในขณะที่ PoW เป็นกลไกที่น่าเชื่อถือและปลอดภัย, มันมีข้อเสียหนึ่งคือการใช้พลังงานที่มาก ซึ่งนำมาซึ่งความเสียหายต่อสิ่งแวดล้อม.
เพื่อให้ PoW ทำงานได้, มันต้องการความซับซ้อนทางคณิตศาสตร์ที่ทำให้นักทำเหมืองต้องมีการคำนวณที่รวดเร็วและใช้พลังงานมาก ซึ่งนับว่าเป็นข้อเสียหลักของ PoW
Proof of Stake (PoS): การพิสูจน์สิทธิ์
Proof of Stake (PoS) หรือ การพิสูจน์สิทธิ์ คือกลไกที่ต่างจาก Proof of Work ในเรื่องของวิธีการยืนยันและเพิ่มบล็อกใหม่เข้าไปใน blockchain. ระบบนี้มีจุดประสงค์เพื่อลดการใช้พลังงานและเพิ่มความรวดเร็วและประสิทธิภาพของเครือข่าย.
- การทำงาน: ผู้เข้าร่วมเครือข่ายที่ต้องการที่จะเป็นตัวยืนยันธุรกรรมและเพิ่มบล็อกใหม่เข้าไปใน blockchain จะต้อง “วางเงินประกัน” หรือ “staking” คือการเก็บยังล็อกเหรียญของตนเองไว้ในระบบเป็นช่วงเวลา. การวางเงินประกันนี้เป็นการแสดงความจริงจังในการเข้าร่วมเครือข่าย.
- รางวัล: ผู้ที่วางเงินประกันจะได้รับโอกาสในการยืนยันธุรกรรมและเพิ่มบล็อกใหม่, และเมื่อพวกเขาทำสำเร็จ, พวกเขาจะได้รับรางวัลเป็น cryptocurrency และค่าธรรมเนียมธุรกรรม.
- ความปลอดภัย: ยิ่งมีการวางเงินประกันมากเท่าไร ผู้เข้าร่วมก็จะยากที่จะโจมตีเครือข่าย เนื่องจากพวกเขามีสิทธิ์ที่จะเสียหายจากเหรียญที่พวกเขาวางเป็นประกัน.
- ความยั้งยืน: PoS ถูกพัฒนามาเพื่อเป็นการแก้ไขความต้องการพลังงานที่สูงของ PoW. ไม่มีความจำเป็นในการคำนวณที่ซับซ้อน, ทำให้ PoS เป็นวิธีการที่เป็นมิตรกับสิ่งแวดล้อมมากขึ้น.
- Ethereum และ PoS: Ethereum, ซึ่งเป็นหนึ่งใน blockchains ยอดนิยม, ได้แสดงความประสงค์ที่จะเปลี่ยนจาก PoW ไปเป็น PoS ในการปรับปรุงในอนาคต เพื่อเพิ่มประสิทธิภาพและลดผลกระทบต่อสิ่งแวดล้อม.
- ข้อเสีย: หนึ่งในความเป็นไปได้คือการสะสมความมั่งคั่ง (wealth concentration) ซึ่งคือคนที่มีสินทรัพย์มากที่สุดในเครือข่ายจะได้รับโอกาสมากที่สุดในการเพิ่มบล็อกและรับรางวัล.
Proof of Stake มีศักยภาพที่จะเป็นการแก้ไขปัญหาในการใช้พลังงานและความน่าเชื่อถือของ blockchain, แต่ยังคงต้องการการศึกษาและการปรับปรุงเพื่อให้สามารถใช้งานได้อย่างมีประสิทธิภาพ.
Delegated Proof of Stake (DPoS): การพิสูจน์สิทธิ์แบบมีการแต่งตั้ง
Delegated Proof of Stake (DPoS) หรือ การพิสูจน์สิทธิ์แบบมีการแต่งตั้ง เป็นรูปแบบของการพิสูจน์สิทธิ์ที่ถูกออกแบบมาเพื่อแก้ไขปัญหาบางประการที่พบในระบบ PoS และ PoW ด้วยการให้สมาชิกในเครือข่ายเลือกตัวแทนให้ทำการยืนยันธุรกรรมแทน.
- วิธีการทำงาน: ผู้ที่ถือ token หรือ coin ในเครือข่ายจะมีสิทธิ์ในการโหวตเลือกตัวแทนหรือ “delegates” ในจำนวนจำกัดเพื่อเป็นผู้ยืนยันธุรกรรมและเพิ่มบล็อกใหม่ลงใน blockchain.
- ประสิทธิภาพ: การที่เฉพาะกลุ่มผู้แทนที่ถูกเลือกเท่านั้นที่ยืนยันธุรกรรมทำให้เครือข่ายมีความรวดเร็วและสามารถรองรับธุรกรรมจำนวนมากในเวลาเดียวกันได้.
- ความปลอดภัย: ระบบ DPoS มีโครงสร้างที่เป็นธรรมาภิบาล โดยตัวแทนที่ถูกเลือกจะต้องดำเนินการด้วยความรับผิดชอบ และถ้าพวกเขาไม่ทำตามหน้าที่หรือมีการทุจริต สมาชิกในเครือข่ายสามารถเลือกที่จะไม่โหวตให้พวกเขาในรอบถัดไป.
- ปัญหาการกลุ่มจัดการ: ตัวแทนที่ถูกเลือกมากที่สุดอาจจะมีโอกาสในการควบคุมเครือข่าย ส่งผลให้เกิดการเข้มงวดขึ้น. อย่างไรก็ตาม, ระบบการโหวตของสมาชิกเป็นกลไกที่สามารถป้องกันปัญหานี้ได้.
- การใช้งาน: DPoS ได้รับการนำไปใช้งานในบาง cryptocurrencies เช่น EOS และ BitShares.
- ข้อประเด็น: บางครั้งการมีจำนวนผู้แทนที่จำกัดอาจจะส่งผลให้เกิดการกลุ่มจัดการหรือ “cartels” ที่สามารถทำให้เกิดการแทรกแซงและควบคุมเครือข่ายได้.
เมื่อนำ DPoS มาเปรียบเทียบกับ PoW และ PoS, DPoS นับเป็นวิธีการที่พยายามทำให้เครือข่าย blockchain มีความปลอดภัย รวดเร็ว และมีประสิทธิภาพมากขึ้น อย่างไรก็ตาม, มันยังต้องพิจารณาประเด็นทางการกลุ่มจัดการและเสรีภาพที่เกี่ยวข้อง.
Proof of Authority (PoA): การพิสูจน์อำนาจ
Proof of Authority (PoA) หรือ การพิสูจน์อำนาจ เป็นกระบวนการที่ยืนยันการทำธุรกรรมในเครือข่าย blockchain โดยอาศัย “อำนาจ” หรือความน่าเชื่อถือของตัวแทนในการยืนยันบล็อก ต่างจากการพิสูจน์ผ่านการทำงานหรือการพิสูจน์สิทธิ์ เนื่องจากตัวแทนเหล่านี้ถูกเลือกตามความน่าเชื่อถือ ไม่ใช่จากการคำนวณหรือจำนวนทรัพย์สินที่มี:
- วิธีการทำงาน: ตัวแทนที่มีอำนาจในการยืนยันธุรกรรมจะถูกกำหนดโดยองค์กรหรือกลุ่มคนที่เชื่อถือได้ ตัวแทนเหล่านี้จะยืนยันและเพิ่มบล็อกใน blockchain.
- ประสิทธิภาพ: การมีจำนวนตัวแทนที่จำกัดสามารถทำให้การยืนยันธุรกรรมเร็วขึ้นและลดค่าใช้จ่ายที่เกี่ยวกับการทำธุรกรรม.
- ความปลอดภัย: แม้ว่า PoA จะมีความปลอดภัยทางด้านการป้องกันการโจมตีของ 51% แต่มันยังขึ้นอยู่กับความน่าเชื่อถือและความซื่อสัตย์ของตัวแทนที่ได้รับการแต่งตั้ง.
- ความเป็นกลาง: อาจจะมีข้อวิจารณ์ต่อ PoA เกี่ยวกับความเป็นกลาง เนื่องจากมันขึ้นอยู่กับตัวแทนจำนวนจำกัดที่ได้รับอำนาจ.
- การใช้งาน: PoA มักจะใช้ในเครือข่ายที่ต้องการความรวดเร็วและความปลอดภัย แต่ยินยอมในการสูญเสียความเป็นกลาง. ตัวอย่างเช่น เครือข่ายที่ใช้งานภายในองค์กร.
- ข้อดี: PoA ใช้พลังงานน้อยกว่า PoW และไม่ต้องการการวางเงินเป็นประกันเช่น PoS.
Proof of Authority ถือเป็นเทคนิคที่เหมาะสมสำหรับสถานการณ์ที่ความน่าเชื่อถือและความรวดเร็วสำคัญกว่าความ descentralization. แต่ต้องระวังปัญหาที่เกี่ยวกับการแทรกแซงและความเป็นกลางของเครือข่าย.
Byzantine Fault Tolerance (BFT): การทนทานต่อความผิดพลาดแบบบิซันไทน์
Byzantine Fault Tolerance (BFT) เป็นกลไกในวงกลมของการทนทานต่อความผิดพลาดที่มีวัตถุประสงค์ในการรับรองว่าเครือข่ายจะยังคงทำงานได้อย่างถูกต้องแม้กระทั่งมีโน้ดบางส่วนที่ทำงานผิดพลาดหรือมีเจตนาทำลาย. ปัญหาบิซันไทน์เป็นปัญหาที่ถูกศึกษาอย่างละเอียดในวงการวิทยาศาสตร์คอมพิวเตอร์:
- ปัญหาบิซันไทน์: ปัญหานี้เกิดจากการที่โน้ดบางส่วนในเครือข่ายอาจปฏิบัติอย่างไม่น่าเชื่อถือ และสามารถส่งข้อมูลที่ต่อเนื่องกันหรือขัดแย้งกันไปยังโน้ดอื่น ๆ ได้.
- การทำงาน: หากเกิดความผิดพลาดในส่วนหนึ่งของเครือข่าย (ไม่ว่าจะเกิดจากข้อผิดพลาด, โจมตี, หรือปัญหาอื่น ๆ) BFT จะรับรองว่าเครือข่ายยังคงทำงานอย่างถูกต้อง.
- ประเภทของ BFT: มีมากมายวิธีการในการบรรลุ BFT ซึ่งบางวิธีทำงานบนหลักการเดียวกับการลงคะแนนเสียง แต่ต้องมีการยืนยันจากส่วนใหญ่ของเครือข่าย.
- การใช้งาน: BFT สามารถนำไปใช้กับ blockchain และเครือข่ายสารสนเทศแบบกระจายอื่น ๆ โดยมีเป้าหมายเพื่อเพิ่มความปลอดภัยและความทนทานต่อความผิดพลาด.
- ข้อดี: บางระบบที่ใช้ BFT สามารถจัดการกับความผิดพลาดของโน้ดได้ถึง 1/3 ของเครือข่ายโดยไม่ส่งผลกระทบต่อการทำงาน.
- ตัวอย่าง: PBFT (Practical Byzantine Fault Tolerance) เป็นวิธีการยอมรับปัญหาบิซันไทน์ที่เป็นที่รู้จักและใช้ในสถาปัตยกรรม blockchain บางส่วน.
BFT เป็นเทคนิคที่ช่วยในการรับรองความน่าเชื่อถือและความปลอดภัยของเครือข่ายแบบกระจาย โดยการรับรองว่า แม้แต่โน้ดที่ไม่น่าเชื่อถือและโจมตี ก็ไม่สามารถขัดขวางการทำงานของเครือข่ายได้
สรุป
- Proof of Work (PoW): กลไกการพิสูจน์งานที่ต้องการการคำนวณทางคณิตศาสตร์ซับซ้อนเพื่อยืนยันบล็อกใน blockchain, ใช้งานกับ Bitcoin และ Ethereum รุ่นเริ่มต้น.
- Proof of Stake (PoS): กลไกที่ต้องการให้ผู้เข้าร่วมวางเงินประกันแทนการคำนวณทางคณิตศาสตร์, Ethereum วางแผนที่จะเปลี่ยนไปใช้วิธีนี้ในอนาคต.
- Delegated Proof of Stake (DPoS): สมาชิกในเครือข่ายเลือกตัวแทนบางส่วนเพื่อยืนยันการทำธุรกรรมแทน.
- Proof of Authority (PoA): ใช้ตัวแทนที่มีความน่าเชื่อถือเพื่อยืนยันบล็อกในเครือข่าย.
- Byzantine Fault Tolerance (BFT): กลไกที่ช่วยเครือข่ายรับมือกับปัญหาของโน้ดที่ไม่น่าเชื่อถือ, ทำให้เครือข่ายทำงานได้ถูกต้องแม้มีโน้ดบางส่วนที่เสียหาย.
ทั้งหมดนี้เป็นกลไกที่ใช้ในการตรวจสอบและยืนยันข้อมูลบน blockchain โดยมีวัตถุประสงค์เพื่อรับรองความถูกต้อง, ความปลอดภัย, และความทนทานของระบบ.