ปัญหาที่ proof of work แก้ไข
บัญชีธุรกรรมดิจิทัลนั้นคัดลอกง่ายและแก้ไขง่าย หากใครก็ตามสามารถเพิ่มธุรกรรมได้อย่างอิสระ พวกเขาก็สามารถใช้จ่ายเหรียญเดียวกันสองครั้งได้เช่นกัน — นี่คือปัญหา "การใช้จ่ายซ้ำซ้อน" (double-spend) แบบคลาสสิก ในระบบที่ไม่มีผู้ดำเนินการกลาง คุณต้องมีวิธีให้ผู้เข้าร่วมที่เป็นอิสระตกลงกันว่าธุรกรรมใดเกิดขึ้นและในลำดับใด แม้ในเวลาที่บางคนไม่ซื่อสัตย์หรือออฟไลน์
ความพยายามสร้างเงินดิจิทัลในยุคก่อนหน้าอาศัยบุคคลที่เชื่อถือได้ให้เป็นผู้ทำบัญชี การออกแบบของบิตคอยน์ ซึ่งอธิบายไว้ในเอกสาร whitepaper ปี 2008 ได้แทนที่บุคคลที่เชื่อถือได้นั้นด้วยการแข่งขันแบบสาธารณะ: ผู้เข้าร่วมใช้ทรัพยากรจริงเพื่อต่อบล็อก และเครือข่ายยึดตามกฎร่วมกันในการเลือกเชนที่ชนะ ฉันทามติเกิดขึ้นจากต้นทุนและคณิตศาสตร์ ไม่ใช่จากอำนาจ
นักขุดกำลังคำนวณอะไรกันแน่
บล็อกที่เป็นผู้สมัครแต่ละบล็อกประกอบด้วยชุดธุรกรรม การอ้างอิงถึงบล็อกก่อนหน้า และตัวเลขเล็ก ๆ ที่เปลี่ยนแปลงได้ซึ่งเรียกว่า nonce นักขุดนำข้อมูลนี้ผ่านฟังก์ชันแฮช SHA-256 ซึ่งเปลี่ยนอินพุตใด ๆ ให้กลายเป็นเอาต์พุตความยาวคงที่ที่ดูคาดเดาไม่ได้ เป้าหมายคือการหาอินพุตที่ให้ค่าแฮชต่ำกว่าค่าเป้าหมายค่าหนึ่ง — ในทางปฏิบัติคือค่าแฮชที่ขึ้นต้นด้วยเลขศูนย์จำนวนหนึ่ง
เนื่องจากเอาต์พุตของแฮชไม่สามารถคาดเดาหรือย้อนกลับเพื่อหาอินพุตได้ วิธีเดียวที่จะหาค่าแฮชที่ผ่านเกณฑ์คือการลองผิดลองถูก: เปลี่ยน nonce แฮชใหม่ ทำซ้ำ หลายพันล้านครั้งต่อวินาที การค้นหาแบบใช้กำลังดิบนั้นคือ "งาน" (work) มันถูกออกแบบให้ทำได้ยากโดยตั้งใจ แต่ตรวจสอบได้ง่ายมากสำหรับคนอื่น ๆ — การคำนวณแฮชเพียงครั้งเดียวก็ยืนยันได้ว่าคำตอบถูกต้อง ความไม่สมมาตรนี้ (สร้างยาก ตรวจสอบง่าย) คือหัวใจของ proof of work
ความยากและจังหวะประมาณสิบนาที
บิตคอยน์ตั้งเป้าให้มีบล็อกใหม่โดยเฉลี่ยประมาณทุก ๆ สิบนาที เมื่อมีพลังการประมวลผล (hash rate) เข้าร่วมเครือข่ายมากขึ้น บล็อกก็มักจะมาถึงเร็วขึ้น ดังนั้นโปรโตคอลจึงปรับความยากเป็นระยะ — ว่าค่าแฮชเป้าหมายต้องต่ำเพียงใด — เพื่อรักษาจังหวะเฉลี่ยให้คงที่ ประมาณทุก ๆ สองสัปดาห์ (2,016 บล็อก) แต่ละโหนดจะคำนวณความยากใหม่จากเวลาของบล็อกล่าสุด
การปรับตัวเองนี้เป็นเหตุผลว่าทำไมพลังการขุดที่มากขึ้นจึงไม่ได้หมายถึงการผลิตบล็อกที่เร็วขึ้นเมื่อเวลาผ่านไป แต่หลัก ๆ แล้วหมายถึงมีการใช้งานมากขึ้นเพื่อรักษาความปลอดภัยของกระแสบล็อกที่คงที่ชุดเดิม จังหวะเวลาที่แน่นอนของบล็อกใด ๆ นั้นเป็นแบบสุ่ม ดังนั้นสิบนาทีจึงเป็นค่าเฉลี่ยในระยะยาว ไม่ใช่ตารางเวลา
จากบล็อกสู่ฉันทามติ: เชนที่ถูกต้องซึ่งยาวที่สุด
การหาบล็อกที่ถูกต้องเป็นเพียงครึ่งหนึ่งของเรื่องราว โหนดยังคงต้องตกลงกันเรื่องประวัติเดียวเมื่อนักขุดสองคนหาบล็อกได้ในเวลาเกือบพร้อมกัน กฎคือโหนดจะยึดตามเชนที่ถูกต้องซึ่งมี proof of work สะสมรวมมากที่สุด — มักสรุปกันว่าเป็น "เชนที่ยาวที่สุด" แม้ว่าจริง ๆ แล้วมันคือเชนที่หนักที่สุดโดยวัดจากงานสะสม
โหนดแบบเต็ม (full node) ทุกโหนดตรวจสอบบล็อกแต่ละบล็อกด้วยตนเองอย่างเป็นอิสระเทียบกับกฎของบิตคอยน์: ลายเซ็นที่ถูกต้อง ไม่มีการใช้จ่ายซ้ำซ้อน รางวัลบล็อกที่ถูกต้อง และค่าแฮชที่ถึงเป้าหมาย บล็อกที่ละเมิดกฎจะถูกปฏิเสธไปเลย ไม่ว่าจะทุ่มงานลงไปมากเพียงใดก็ตาม ความไม่ลงรอยชั่วคราว (การแยกเชนหรือ fork) จะคลี่คลายเมื่อบล็อกถัดไปต่อยอดกิ่งหนึ่ง และนักขุดที่ซื่อสัตย์จะรวมตัวกันที่กิ่งนั้น เพราะการสร้างต่อบนเชนที่ได้รับการยอมรับคือที่ที่รางวัลอยู่
เหตุใดสิ่งนี้จึงรักษาความปลอดภัยของเครือข่าย
เพื่อจะเขียนธุรกรรมในอดีตขึ้นใหม่ ผู้โจมตีจะต้องทำ proof of work ของบล็อกนั้นและทุกบล็อกหลังจากนั้นใหม่ทั้งหมด แล้วจึงต้องแซงหน้าเครือข่ายที่ซื่อสัตย์ทั้งหมดเพื่อสร้างเชนที่ยาวกว่า ยิ่งธุรกรรมถูกฝังลึกเท่าใด ก็ยิ่งต้องทำงานซ้ำใหม่มากขึ้นเท่านั้น — ซึ่งเป็นเหตุผลว่าทำไมผู้ค้าจึงมักรอการยืนยันหลายครั้ง ต้นทุนแปรผันตามพลังการประมวลผลรวม (hash rate) ของเครือข่าย
นี่คือแนวคิดเบื้องหลัง "การโจมตี 51%": การควบคุมพลังแฮชส่วนใหญ่อาจทำให้ใครบางคนสามารถจัดลำดับใหม่หรือเซ็นเซอร์ธุรกรรมล่าสุดได้ แต่การจัดหาและเดินเครื่องฮาร์ดแวร์เช่นนั้นมีต้นทุนสูง มันไม่สามารถปลอมลายเซ็นหรือขโมยเหรียญออกไปตรง ๆ ได้ และการโจมตีที่มองเห็นได้อาจบั่นทอนมูลค่าของสินทรัพย์ตัวเดียวกันกับที่ผู้โจมตีกำลังใช้ทรัพยากรขุดอยู่ แรงจูงใจถูกจัดวางให้การเข้าร่วมอย่างซื่อสัตย์โดยทั่วไปทำกำไรได้มากกว่าการโจมตี ความปลอดภัยในที่นี้เป็นเชิงเศรษฐกิจและเชิงความน่าจะเป็น ไม่ใช่การรับประกันแบบสมบูรณ์
ข้อแลกเปลี่ยนและการถกเถียงในวงกว้าง
จุดแข็งของ proof of work — ต้นทุนภายนอกที่เป็นของจริง — ก็เป็นที่มาของคำวิจารณ์ที่พบบ่อยที่สุดเช่นกัน นั่นคือการใช้พลังงาน การประมาณการการใช้ไฟฟ้าของบิตคอยน์มีความแตกต่างกันอย่างมากและเปลี่ยนแปลงไปตามเวลา และภาพรวมยิ่งซับซ้อนขึ้นด้วยสัดส่วนที่เพิ่มขึ้นของพลังงานที่เข้าถึงยาก ส่วนเกิน หรือพลังงานหมุนเวียนที่นักขุดบางรายใช้ ผู้ที่มีเหตุผลก็ยังเห็นต่างกัน และรายละเอียดก็เปลี่ยนแปลงไป จึงควรตรวจสอบจากแหล่งข้อมูลที่น่าเชื่อถือและเป็นปัจจุบัน แทนที่จะยึดตัวเลขใดตัวเลขหนึ่ง
การออกแบบฉันทามติทางเลือกอื่น เช่น proof of stake รักษาความปลอดภัยของเครือข่ายอื่น ๆ บางแห่งด้วยพลังงานที่น้อยกว่ามาก โดยใช้หลักประกันทางเศรษฐกิจแทนการคำนวณ มันเกี่ยวข้องกับสมมติฐานและข้อแลกเปลี่ยนที่แตกต่างออกไป และการเปรียบเทียบกันอย่างเป็นธรรมก็เป็นหัวข้อในตัวเอง สำหรับบิตคอยน์โดยเฉพาะ proof of work ยังคงเป็นกลไก และความปลอดภัยกับตารางการออกเหรียญของมันก็ผูกอยู่กับกลไกนี้