อัลกอริทึมฉันทามติคืออะไร?
อัลกอริทึมฉันทามติคืออะไร?
หน้าหลักบทความ

อัลกอริทึมฉันทามติคืออะไร?

มือใหม่
2d ago
7m


สารบัญ


เกริ่นนำ

อัลกอริทึมฉันทามติ (Consensus Algorithm) เป็นกลไกที่ช่วยให้ผู้ใช้หรืออุปกรณ์ประสานงานกันในการสภาพแวดล้อมแบบกระจายซึ่งจำเป็นต้องมีการตรวจสอบให้แน่ใจว่าผู้เข้าร่วมทั้งหมดในระบบสามารถเห็นตรงกันได้เกี่ยวกับข้อมูลที่ถูกต้องเพียงแหล่งเดียวแม้ว่าผู้เข้าร่วมบางส่วนคนจะล้มเหลวก็ตาม กล่าวอีกนัยหนึ่งคือระบบต้องมีคุณสมบัติ fault-tolerant คือสามารถทำงานต่อไปได้แม้เกิดความผิดพลาด (ดูเพิ่มเติม: อธิบายเรื่อง Byzantine Fault Tolerance)

ในสภาพแวดล้อมแบบรวมศูนย์ เอนทิตีเดียวมีอำนาจเหนือระบบ ในกรณีส่วนใหญ่แล้ว เอนทิตีนั้นจะสามารถทำการเปลี่ยนแปลงได้ตามความพอใจ – ไม่มีระบบการกำกับดูแลที่ซับซ้อนในการบรรลุฉันทามติในหมู่ผู้ดูแลระบบ

แต่ในสภาพแวดล้อมแบบกระจายอำนาจมันต่างไป สมมติว่าเรากำลังทำงานกับฐานข้อมูลแบบกระจาย – เราจะบรรลุข้อตกลงเกี่ยวกับรายการที่จะเพิ่มได้อย่างไร

การเอาชนะความท้าทายนี้ในสภาพแวดล้อมที่คนแปลกหน้าไม่ไว้วางใจซึ่งกันและกันอาจเป็นพัฒนาการที่สำคัญที่สุดที่ปูทางไปสู่บล็อกเชน ในบทความนี้เราจะมาดูว่าอัลกอริทึมฉันทามติมีความสำคัญต่อการทำงานของคริปโทเคอร์เรนซีและบัญชีแยกประเภทแบบกระจายอย่างไร


อัลกอริทึมฉันทามติและคริปโทเคอร์เรนซี

สำหรับคริปโทเคอร์เรนซี ยอดคงเหลือของผู้ใช้จะถูกบันทึกในฐานข้อมูล – ซึ่งก็คือบล็อกเชน จึงจำเป็นอย่างยิ่งที่ทุกคน (หรือให้ถูกต้องมากขึ้นทุกๆ โหนด) จะรักษาสำเนาของฐานข้อมูลที่เหมือนกัน มิฉะนั้นคุณจะพบข้อมูลที่ขัดแย้งกันในไม่ช้าซึ่งจะทำลายวัตถุประสงค์ทั้งหมดของเครือข่ายคริปโทเคอร์เรนซี
การเข้ารหัสคีย์สาธารณะช่วยให้มั่นใจได้ว่าผู้ใช้จะไม่สามารถใช้จ่ายตนเหรียญที่ไม่ใช่ของได้ แต่ยังคงต้องมีแหล่งข้อมูลจริงแหล่งเดียวที่ผู้เข้าร่วมเครือข่ายต้องพึ่งพาเพื่อให้สามารถระบุได้ว่ามีการใช้จ่ายเงินไปแล้วหรือไม่
Satoshi Nakamoto ผู้สร้าง Bitcoin เสนอระบบ Proof of Work เพื่อประสานงานผู้เข้าร่วม เราจะมาดูวิธีการทำงานของ PoW ในไม่ช้า – สำหรับตอนนี้เราจะระบุลักษณะทั่วไปบางประการของอัลกอริทึมฉันทามติที่มีอยู่
ประการแรกเรากำหนดให้ผู้ใช้ที่ต้องการเพิ่มบล็อก (เราจะเรียกพวกเขาว่า ผู้ตรวจสอบความถูกต้อง หรือ validator) ให้ต้องมี stake ซึ่ง stake นี้เป็นมูลค่าบางอย่างที่ผู้ตรวจสอบความถูกต้องต้องหยิบยกซึ่งจะกีดกันพวกเขาไม่ให้การกระทำการที่ไม่สุจริต หากพวกเขาโกงพวกเขาจะสูญเสีย stake นั้น ตัวอย่างเช่นพลังการประมวลผล คริปโทเคอร์เรนซี หรือแม้แต่ชื่อเสียง 
ทำไมพวกเขาถึงจะต้องเอาทรัพยากรของตัวเองมาเสี่ยง? ก็เพราะว่ายังมีรางวัลให้อีกด้วย โดยปกติรางวัลจะประกอบด้วยคริปโทเคอร์เรนซีของโพรโทคอลและประกอบด้วยค่าธรรมเนียมที่ผู้ใช้รายอื่นจ่ายและเหรียญคริปโทเคอร์เรนซีที่สร้างขึ้นใหม่ หรือทั้งสองอย่าง
สิ่งสุดท้ายที่เราต้องการคือความโปร่งใส เราต้องสามารถตรวจจับได้เมื่อมีคนโกง ตามหลักการแล้วควรมีค่าใช้จ่ายสูงสำหรับพวกเขาในการสร้างบล็อก แต่ไม่แพงสำหรับทุกคนในการตรวจสอบความถูกต้อง สิ่งนี้ช่วยให้มั่นใจได้ว่าผู้ใช้ทั่วไปจะตรวจสอบได้โดยสะดวก


ประเภทของอัลกอริทึมฉันทามติ

Proof of Work (PoW)

Proof of Work (PoW) เป็นเจ้าพ่อแห่งอัลกอริทึมฉันทามติของบล็อกเชน มันถูกนำมาใช้ครั้งแรกใน Bitcoin แต่แนวคิดที่แท้จริงได้เกิดขึ้นมาระยะหนึ่งแล้ว ใน Proof of Work ผู้ตรวจสอบความถูกต้อง (เรียกว่า miner หรือนักขุด) จะแฮช (hash) ข้อมูลที่ต้องการเพิ่มจนกว่าจะสร้างโซลูชันเฉพาะได้
ค่าแฮชเป็นสตริงตัวอักษรและตัวเลขที่ดูเหมือนสุ่มๆ ที่สร้างขึ้นเมื่อคุณประมวลผลข้อมูลโดยใช้ฟังก์ชันแฮช แต่ถ้าคุณเรียกใช้ข้อมูลเดิมซ้ำอีกครั้ง คุณจะได้รับผลลัพธ์เดียวกันเสมอ แต่ถ้าเปลี่ยนข้อมูลแม้แต่รายละเอียดเดียว ค่าแฮชของคุณจะแตกต่างไปจากเดิมอย่างสิ้นเชิง

เมื่อมองไปที่ผลลัพธ์ คุณจะไม่สามารถบอกได้ว่าข้อมูลใดถูกป้อนเข้าไปในฟังก์ชัน ดังนั้นจึงมีประโยชน์ในการจะพิสูจน์ว่าคุณรู้ข้อมูลบางอย่างก่อนหน้านั้น เช่นคุณสามารถให้ค่าแฮชกับใครบางคนและเมื่อคุณเปิดเผยข้อมูลในภายหลัง บุคคลนั้นสามารถเรียกใช้ผ่านฟังก์ชันเพื่อให้แน่ใจว่าเอาต์พุตที่ได้เหมือนกัน

สำหรับ Proof of Work นั้น โปรโตคอลจะกำหนดเงื่อนไขสำหรับสิ่งที่ทำให้บล็อกถูกต้อง ตัวอย่างเช่น เฉพาะบล็อกที่แฮชขึ้นต้นด้วย 00 เท่านั้นจึงจะใช้ได้ วิธีเดียวที่ผู้ขุดจะสร้างสิ่งที่ตรงกับข้อกำหนดเหล่านั้นคือการป้อนข้อมูลแบบสุ่มจนกว่าจะเจอข้อมูลที่ใช้ได้ พวกเขาสามารถปรับแต่งพารามิเตอร์ในข้อมูลเพื่อสร้างผลลัพธ์ที่แตกต่างไปสำหรับการคาดเดาแต่ละครั้งจนกว่าจะได้แฮชที่ถูกต้อง 
สำหรับบล็อกเชนหลักๆ มาตรฐานนี้ตั้งไว้สูงอย่างไม่น่าเชื่อ ในการแข่งขันกับนักขุดคนอื่นๆ คุณจะต้องมีคลังที่เต็มไปด้วยฮาร์ดแวร์สำหรับทำการแฮชพิเศษ (ASIC) เพื่อให้สามารถสร้างบล็อกที่ถูกต้องได้
เมื่อคุณร่วมการขุด Stake ของคุณคือต้นทุนของเครื่องจักรเหล่านี้และค่าไฟฟ้าที่ต้องใช้ในการทำงาน เนื่องจาก ASIC ถูกสร้างขึ้นเพื่อวัตถุประสงค์เดียวดังนั้นจึงไม่มีการประโยชน์ใช้งานใดนอกการขุดคริปโทเคอร์เรนซี วิธีเดียวที่จะให้คุ้มค่าการลงทุนของคุณคือการขุดซึ่งจะให้ผลตอบแทนไม่น้อยหากคุณเพิ่มบล็อกใหม่ในบล็อกเชนได้สำเร็จ

เป็นเรื่องเล็กน้อยสำหรับเครือข่ายในการตรวจสอบว่าคุณได้สร้างบล็อกที่ถูกต้องแล้วหรือไม่ แม้ว่าคุณจะลองค่าผสมต่างๆ หลายล้านล้านครั้งเพื่อให้ได้แฮชที่ถูกต้อง แต่ในการที่ผู้อื่นจะตรวจสอบ แค่ใช้ข้อมูลของคุณเป็นอินพุตสำหรับฟังก์ชันสำหรับการตรวจสอบเพียงครั้งเดียว หากข้อมูลของคุณสร้างแฮชที่ถูกต้องข้อมูลนั้นจะได้รับการยอมรับและคุณจะได้รับรางวัล มิฉะนั้นเครือข่ายจะปฏิเสธและคุณจะเสียเวลาและค่าไฟฟ้าไปโดยเปล่าประโยชน์


Proof of Stake (PoS)

Proof of Stake (PoS) ได้รับการเสนอในช่วงแรกๆ ของ Bitcoin เพื่อเป็นทางเลือกสำหรับ Proof of Work โดยในระบบ PoS นั้น ไม่มีแนวคิดเกี่ยวกับนักขุด ฮาร์ดแวร์เฉพาะ หรือการใช้พลังงานมหาศาล สิ่งที่คุณต้องมีคือ PC ธรรมดา
เปล่า ไม่ใช่แค่นั้น คุณยังต้องมีส่วนได้เสียอีกหน่อย ใน PoS คุณไม่ต้องนำทรัพยากรภายนอกมาใช้ (เช่นไฟฟ้าหรือฮาร์ดแวร์) แต่เป็นทรัพยากรภายใน – คริปโทเคอร์เรนซีนั่นเอง กฎแตกจะต่างกันไปในแต่ละโพรโทคอล แต่โดยทั่วไปแล้วจะมีจำนวนเงินขั้นต่ำที่คุณต้องถือไว้เพื่อให้มีสิทธิ์ได้ร่วม staking
จากนั้นคุณจะล็อกเงินของคุณไว้ในกระเป๋าเงิน (จะไม่สามารถเคลื่อนย้ายเงินได้ในขณะที่คุณร่วม staking อยู่) โดยทั่วไปคุณจะเห็นด้วยกับผู้ตรวจสอบความถูกต้องอื่นๆ ว่าธุรกรรมใดที่จะเข้าสู่บล็อกถัดไป เหมือนอย่างกับว่าคุณกำลังเดิมพันกับบล็อกที่จะเลือกและโพรโทคอลจะเลือกตามนั้น
หากบล็อกของคุณถูกเลือก คุณจะได้รับค่าธรรมเนียมการทำธุรกรรมโดยขึ้นอยู่กับสัดส่วนเงินร่วม staking ของคุณ ยิ่งคุณมีเงินทุนมากเท่าไหร่คุณก็ยิ่งมีโอกาสได้รับมากขึ้นเท่านั้น แต่ถ้าคุณพยายามโกงโดยเสนอธุรกรรมที่ไม่ถูกต้องคุณจะสูญเสียเงินที่ใช้ร่วม staking บางส่วน (หรือทั้งหมด) ด้วยเหตุนี้เราจึงมีกลไกที่คล้ายกับ PoW – การปฏิบัติตนอย่างตรงไปตรงมาให้ผลกำไรมากกว่าการทำตัวไม่ซื่อ
โดยทั่วไป จะไม่ใช้เหรียญที่สร้างขึ้นใหม่เป็นส่วนหนึ่งของรางวัลสำหรับผู้ตรวจสอบความถูกต้อง ดังนั้นจึงต้องมีการออกสกุลเงินประจำบล็อกเชนด้วยวิธีอื่นซึ่งสามารถทำได้ผ่านการแจกจ่ายเริ่มแรก (เช่น ICO หรือ IEO) หรือโดยการเปิดใช้โพรโทคอลด้วย PoW ก่อนที่จะเปลี่ยนเป็น PoS ในภายหลัง

จนถึงปัจจุบัน Proof of Stake ได้ถูกนำไปใช้กับคริปโทเคอร์เรนซีขนาดเล็กเท่านั้น ดังนั้นจึงไม่มีความชัดเจนว่าสามารถใช้เป็นทางเลือกที่เหมาะสมสำหรับแทน PoW ได้หรือไม่ แม้ว่ามันจะฟังดูสมเหตุสมผล แต่ในทางปฏิบัติอาจจะแตกต่างกันมาก

เมื่อ PoS เริ่มใช้งานบนเครือข่ายที่มีมูลค่าจำนวนมาก ระบบจะกลายเป็นสนามแข่งขันของทฤษฎีเกมและสิ่งจูงใจทางการเงิน ใครก็ตามที่มีความรู้ในการ “แฮ็ก” ระบบ PoS คงจะแฮ็กก็ต่อเมื่อพวกเขาได้รับประโยชน์จากการกระทำดังกล่าว – ดังนั้นวิธีเดียวที่จะทราบว่าใช้งานได้หรือไม่ได้ก็ต้องอาศัยเครือข่ายที่ใช้งานจริง
เร็วๆ นี้เราจะได้เห็น PoS ที่ทดสอบในสเกลใหญ่ – Casper จะถูกนำไปใช้โดยเป็นส่วนหนึ่งของการอัพเกรดเครือข่าย Ethereum (เรียกรวมกันว่า Ethereum 2.0)


อัลกอริทึมฉันทามติอื่นๆ

Proof of Work และ Proof of Stake เป็นอัลกอริทึมฉันทามติที่ได้รับการกล่าวถึงมากที่สุด แต่มีอีกหลากหลายอัลกอริทึมที่มีข้อดีและข้อเสียของตัวเอง สามารถอ่านได้จากบทความต่อไปนี้:


ข้อคิดส่งท้าย

กลไกในการบรรลุฉันทามติมีความสำคัญต่อการทำงานของระบบแบบกระจาย หลายคนเชื่อว่านวัตกรรมที่ยิ่งใหญ่ที่สุดเกี่ยวกับ Bitcoin คือการใช้ Proof of Work เพื่อให้ผู้ใช้สามารถยอมรับข้อเท็จจริงร่วมกันได้

อัลกอริทึมฉันทามติในปัจจุบันไม่เพียงแต่สนับสนุนระบบเงินดิจิทัลเท่านั้นแต่ยังรวมถึงบล็อกเชน ช่วยให้นักพัฒนาสามารถรันโค้ดผ่านเครือข่ายแบบกระจาย ในปัจจุบันสิ่งเหล่านี้กลายเป็นรากฐานที่สำคัญของเทคโนโลยีบล็อกเชนและมีความสำคัญอย่างยิ่งต่อความอยู่รอดในระยะยาวของเครือข่ายต่างๆ ที่มีอยู่

ในหมู่อัลกอริทึมฉันทามติทั้งหมด Proof of Work ยังคงโดดเด่นกว่าทางเลือกอื่น ยังไม่มีอัลกอริทึมใดที่มีความน่าเชื่อถือและปลอดภัยมากกว่านี้ แต่ถึงกระนั้น ได้มีการวิจัยและพัฒนาอย่างมหาศาลเพื่อทดแทน PoW และเรามีแนวโน้มที่จะได้เห็นสิ่งเหล่านี้มากขึ้นในอีกไม่กี่ปีข้างหน้า