Proof of Work (PoW) คืออะไร?
Proof of Work (PoW) คืออะไร?
หน้าหลักบทความ

Proof of Work (PoW) คืออะไร?

ระดับกลาง
Published Dec 6, 2018Updated May 11, 2021
8m


สารบัญ


บทนำ

Proof of Work (โดยทั่วไปย่อว่า PoW) เป็นกลไกในการป้องกันการใช้จ่ายซ้ำซ้อนหรือ double-spend  คริปโทเคอร์เรนซีส่วนใหญ่ใช้กลไกนี้เป็นอัลกอริทึมฉันทามติ ซึ่งนั่นเป็นเพียงสิ่งที่เราเรียกว่าวิธีการรักษาความปลอดภัยบัญชีแยกประเภทของคริปโทเคอร์เรนซี
Proof of Work เป็นอัลกอริธึมฉันทามติแรกที่ปรากฏและจนถึงปัจจุบันยังคงเป็นวิธีการที่โดดเด่น ได้รับการนำเสนอโดย Satoshi Nakamoto ในสมุดปกขาว Bitcoin เมื่อปี 2008 แต่เทคโนโลยีนี้ได้เกิดขึ้นฒก่อนหน้านั้นนานแล้ว 

HashCash ซึ่งเสนอโดย Adam Back เป็นตัวอย่างแรกเริ่มของอัลกอริทึม Proof of Work ในช่วงก่อนที่จะมีคริปโทเคอร์เรนซี การกำหนดให้ผู้ส่งใช้คอมพิวเตอร์ประมวลผลเล็กน้อยก่อนที่จะส่งอีเมล สามารถลดสแปมสำหรับผู้รับได้ การคำนวณนี้แทบจะไม่มีค่าใช้จ่ายใดๆ สำหรับผู้ส่งที่ประพฤติดี แต่ค่าใช้จ่ายจะเพิ่มขึ้นอย่างรวดเร็วสำหรับผู้ที่ส่งอีเมลเป็นจำนวนมาก


การใช้จ่ายซ้ำซ้อนคืออะไร?

การใช้จ่ายซ้ำซ้อนหรือ double-spend เกิดขึ้นเมื่อมีการใช้จ่ายเงินจำนวนเดียวกันมากกว่าหนึ่งครั้ง คำนี้ใช้แทบจะใช้เฉพาะในบริบทของเงินดิจิทัลเท่านั้น – เพราะอย่างว่า คงยากที่คุณจะใช้จ่ายธนบัตรใบเดิมสองครั้ง เมื่อคุณจ่ายค่ากาแฟวันนี้คุณจะมอบเงินสดให้กับแคชเชียร์ซึ่งอาจล็อกไว้ในเครื่องเก็บเงิน คุณไม่สามารถไปที่ร้านกาแฟฝั่งตรงข้ามและจ่ายค่ากาแฟอีกแก้วด้วยธนบัตรใบเดียวกันได้

ในรูปแบบเงินสดดิจิทัล มีความเป็นไปได้ที่คุณจะทำได้ อย่างที่คุณเคยก๊อปปี้ไฟล์คอมพิวเตอร์ก่อน – คุณเพียงแค่คัดลอกและวาง คุณสามารถส่งอีเมลไฟล์เดียวกันถึงคนสิบคน ยี่สิบคน ห้าสิบคนก็ได้

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

หากต้องการดูรายละเอียดเพิ่มเติมเกี่ยวกับการใช้จ่ายซ้ำซ้อนโปรดอ่าน การใช้จ่ายซ้ำซ้อนคืออะไร


ทำไม Proof of Work จึงจำเป็น?

หากคุณได้อ่านไกด์เกี่ยวกับเทคโนโลยีบล็อกเชนของเรา คุณจะทราบว่าผู้ใช้กระจายข้อมูลธุรกรรมไปยังเครือข่าย ธุรกรรมเหล่านั้นไม่ได้ถือว่าถูกต้องในทันที จะเกิดขึ้นก็ต่อเมื่อมีการเพิ่มเข้าไปในบล็อกเชน 
บล็อกเชนเป็นฐานข้อมูลขนาดใหญ่ที่ผู้ใช้ทุกคนสามารถมองเห็นได้ ดังนั้นพวกเขาจึงสามารถตรวจสอบได้ว่ามีการใช้จ่ายเงินก่อนหน้านี้หรือไม่ ลองนึกภาพออกว่าคุณและเพื่อนสามคนมีสมุดบันทึก เมื่อใดก็ตามที่คุณต้องการโอนหน่วยใดๆ ที่คุณกำลังจะใช้จ่ายให้จดไว้ – อลิซจ่ายบ็อบห้าหน่วย บ๊อบจ่ายแครอลสองหน่วย ฯลฯ
มีความซับซ้อนอีกอย่างตรงนี้ – ทุกครั้งที่คุณทำธุรกรรม คุณอ้างถึงธุรกรรมซึ่งเป็นที่มาของเงิน ดังนั้นหากบ็อบจ่ายเงินให้แครอลด้วยสองหน่วย รายการจะมีลักษณะดังนี้: บ็อบจ่ายให้แครอลสองหน่วยจากธุรกรรมก่อนหน้านี้กับอลิซ

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

ตอนนี้ สิ่งนี้อาจใช้ได้ดีในกลุ่มเล็กๆ ทุกคนรู้จักกัน ดังนั้นพวกเขาอาจจะตกลงกันว่าเพื่อนคนไหนควรเพิ่มธุรกรรมลงในสมุดบันทึก จะเป็นอย่างไรหากเราต้องการมีกลุ่มที่มีผู้เข้าร่วม 10,000 คน? แนวคิดการใช้สมุดบันทึกไม่ได้ปรับขนาดได้ดีเพราะไม่มีใครอยากไว้วางใจให้คนแปลกหน้าจัดการ

นี่คือที่มาของ Proof of Work ซึ่งจะช่วยให้มั่นใจได้ว่าผู้ใช้จะไม่ใช้จ่ายเงินโดยที่พวกเขาไม่มีสิทธิ์ใช้จ่าย ด้วยการใช้ทฤษฎีเกมร่วมกับการเข้ารหัส อัลกอริทึม PoW ช่วยให้ทุกคนสามารถอัปเดตบล็อกเชนได้ตามกฎของระบบ


PoW ทำงานอย่างไร?

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

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

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

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

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

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

ขอสรุปสิ่งที่เรารู้จนถึงตอนนี้:

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

จนถึงตอนนี้ยังดูดีอยู่ แต่ถ้าคุณพยายามโกงล่ะ? มีอะไรที่จะหยุดคุณจากการใส่ธุรกรรมหลอกลวงจำนวนมากลงในบล็อกและสร้างแฮชที่ถูกต้อง

นั่นคือสิ่งที่การเข้ารหัสแบบคีย์สาธารณะเข้ามา เราจะไม่ลงลึกในบทความนี้แต่ลองอ่าน Public-Key Cryptography คืออะไร? เพื่อดูโดยละเอียด กล่าวสั้นๆ เราใช้เทคนิคการเข้ารหัสที่แยบยลช่วยให้ผู้ใช้ทุกคนสามารถตรวจสอบได้ว่าใครบางคนมีสิทธิ์ที่จะย้ายเงินที่กำลังพยายามจะใช้จ่ายหรือไม่
เมื่อคุณสร้างธุรกรรมคุณจะลงนาม ทุกคนในเครือข่ายสามารถเปรียบเทียบลายเซ็นของคุณกับ คีย์สาธารณะ ของคุณและตรวจสอบว่าตรงกันหรือไม่ นอกจากนี้ยังตรวจสอบด้วยว่าคุณสามารถใช้จ่ายเงินของคุณได้จริงหรือไม่และผลรวมของรายรับของคุณสูงกว่าผลรวมของรายจ่ายของคุณ (กล่าวคือคุณไม่ได้ใช้จ่ายเกินกว่าที่คุณมี)

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

และนั้นคือความสวยงามของ Proof of Work: มันทำให้การโกงมีราคาแพง แต่ให้ผลกำไรจากการดำเนินการอย่างซื่อสัตย์ นักขุดที่มีเหตุผลจะมองหา ROI ดังนั้นจึงสามารถคาดหวังได้ว่าพวกเขาจะทำงานในลักษณะที่รับประกันว่าจะมีรายได้



ต้องการเริ่มต้นซื้อขายคริปโทเคอร์เรนซีหรือเปล่า? ซื้อ Bitcoin ที่ Binance!



Proof of Work เทียบกับ Proof of Stake

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

แม้กล่าวดังนั้น ในแง่ประวัติการใช้งาน PoS ยังไม่ใกล้เคียง PoW ถึงแม้อาจถูกมองว่าสิ้นเปลือง แต่การขุดเป็นอัลกอริทึมฉันทามติเดียวที่พิสูจน์ตัวเองในวงกว้าง ในช่วงเวลากว่าทศวรรษที่ผ่านมามีการทำธุรกรรมมูลค่าหลายล้านล้านดอลลาร์ หากจะให้พูดถึงอย่างมั่นใจว่า PoS สามารถแข่งขันกับ PoW ในแง่ความปลอดภัยได้หรือไม่ PoS จะต้องได้รับการทดสอบอย่างเหมาะสมในสนามจริง


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

Proof of Work เป็นวิธีการดั้งเดิมสำหรับแก้ปัญหาการใช้จ่ายซ้ำซ้อน และได้รับการพิสูจน์แล้วว่าเชื่อถือได้และปลอดภัย Bitcoin พิสูจน์แล้วว่าเราไม่จำเป็นต้องมีหน่วยงานกลางเพื่อป้องกันไม่ให้มีการใช้เงินจำนวนเดียวกันสองครั้ง ด้วยการใช้การเข้ารหัส ฟังก์ชันแฮช  และทฤษฎีเกมอย่างชาญฉลาด ผู้เข้าร่วมในสภาพแวดล้อมแบบกระจายอำนาจสามารถเห็นตรงกันได้เกี่ยวกับสถานะของฐานข้อมูลทางการเงิน