บทที่ 3 - ผ่านแบบทดสอบ 0 จาก 10 ชุด
Hash: ลายนิ้วมือดิจิทัล
hash เชิงวิทยาการเข้ารหัสคือฟังก์ชันทางเดียวที่ทำให้การปลอมแปลงมองเห็นได้และทำให้ proof of work เป็นไปได้
- อธิบายว่า hash เชิงวิทยาการเข้ารหัสทำอะไร และเหตุใด avalanche effect จึงสำคัญ
- อธิบายว่า Merkle root ผูกบล็อกเข้ากับธุรกรรมทั้งหมดในบล็อกได้อย่างไร
คำตอบฉบับย่อ
hash ใน Bitcoin คืออะไร
ลายนิ้วมือทางเดียวของข้อมูล: คำนวณได้ง่าย แทบเป็นไปไม่ได้ที่จะย้อนกลับ และการเปลี่ยนแปลงข้อมูลใด ๆ จะให้ hash ที่ต่างออกไปโดยสิ้นเชิง
Merkle root คืออะไร
hash เดียวที่ผูกบล็อกเข้ากับทุกธุรกรรมในบล็อกนั้น ดังนั้นการเปลี่ยนธุรกรรมใดก็ตามจะทำให้ root เปลี่ยนไป
ทำไมประวัติของ Bitcoin จึงเปลี่ยนแปลงไม่ได้
block header แต่ละอันผูกพันกับบล็อกก่อนหน้า ดังนั้นการเปลี่ยนบล็อกเก่าหมายถึงต้องทำ proof of work ใหม่สำหรับบล็อกนั้นและทุกบล็อกที่ตามมา
ลายนิ้วมือทางเดียว
ฟังก์ชัน hash เชิงการเข้ารหัสรับข้อมูลนำเข้าใดก็ได้ ไม่ว่าจะเป็นคำหนึ่งคำ รูปภาพ หรือสารานุกรมทั้งชุด แล้วคืนค่าเป็น digest ที่มีขนาดคงที่ กระบวนการนี้เป็นแบบทางเดียว คุณตรวจสอบได้ว่าข้อมูลนำเข้าให้ digest นั้นจริง แต่ในทางปฏิบัติไม่สามารถย้อนกลับจาก digest ไปหาข้อมูลนำเข้าได้ Bitcoin ใช้ SHA-256 ซึ่งคืนค่า 256 บิต โดยปกติเขียนเป็นอักขระเลขฐานสิบหก 64 ตัว hash ของบล็อกและ ID ของธุรกรรมใช้ฟังก์ชันนี้สองรอบ (SHA-256d)
ปรากฏการณ์หิมะถล่ม (avalanche effect)
ฟังก์ชัน hash ที่ดีมีความไวสูงมาก เปลี่ยนเครื่องหมายจุลภาคเพียงตัวเดียวในเอกสาร 500 หน้า digest ก็จะเปลี่ยนไปโดยสิ้นเชิง สิ่งนี้เรียกว่าปรากฏการณ์หิมะถล่ม (avalanche effect) และเป็นสิ่งที่ทำให้ hash มีประโยชน์ในฐานะข้อผูกพัน (commitment) digest จะล็อกไบต์ที่แน่นอนไว้ และการเปลี่ยนแปลงใดๆ ในภายหลังจะเห็นได้ชัดเจน
Merkle root
บล็อกไม่ได้นำธุรกรรมทุกรายการมา hash ลงใน header ทีละรายการ แต่จะ hash ID ของธุรกรรมเป็นคู่ จากนั้นนำผลลัพธ์มาจับคู่กันอีก และทำซ้ำจนเหลือ hash เพียงค่าเดียว นั่นคือ Merkle root โดย block header ประกอบด้วยเวอร์ชัน root นั้น hash ของบล็อกก่อนหน้า เวลา เป้าหมายความยาก (difficulty target) และ nonce หากเปลี่ยนธุรกรรมใดก็ตาม Merkle root จะเปลี่ยน ซึ่งทำให้ hash ของ header เปลี่ยน และทำลายห่วงโซ่ของงานที่ทำต่อจากนั้น
ประวัติที่ตรวจพบการปลอมแปลงได้
block header แต่ละอันรวม hash ของ header ก่อนหน้าไว้ด้วย หากผู้โจมตีต้องการเขียนธุรกรรมเก่าใหม่ จะต้องทำ proof of work ของบล็อกนั้นและทุกบล็อกที่ตามมาใหม่ทั้งหมด ให้เร็วกว่าเครือข่ายที่สุจริต ห่วงโซ่ hash ทำให้ประวัติตรวจสอบได้ง่ายแต่เขียนใหม่ได้ด้วยต้นทุนสูง โหนดจะปฏิเสธบล็อกที่ไม่ถูกต้อง แต่จะติดตามเชนคู่แข่งที่ถูกต้องซึ่งมีงานสะสมมากกว่า โหนดไม่สามารถปฏิเสธเชนที่ถูกต้องและมีงานมากกว่าเพียงเพราะผู้โจมตีเป็นผู้สร้างขึ้น
ลองทำดู
สิ่งที่คุณควรได้รับ
hash คือข้อผูกพันแบบทางเดียว Merkle root ผูกบล็อกเข้ากับธุรกรรมทั้งหมดในบล็อก และ header แต่ละอันผูกกับบล็อกก่อนหน้า ดังนั้นการเปลี่ยนประวัติจึงต้องทำงานทั้งหมดที่อยู่เหนือขึ้นไปใหม่
ระลึกจากความจำ แล้วนำไปใช้
ลองเปลี่ยนอักขระหนึ่งตัวในตัวอย่างสาธิต อะไรเปลี่ยนไปบ้าง และ hash ไม่ได้พิสูจน์อะไร
ตรวจคำอธิบายของคุณ
digest เปลี่ยนไปอย่างมาก digest ที่ตรงกันใช้ตรวจความสอดคล้องของข้อมูล แต่ไม่ได้พิสูจน์ว่าข้อมูลนั้นเป็นความจริงหรือได้รับอนุญาต การอนุญาตต้องอาศัยลายเซ็น
จุดตรวจ
คำศัพท์สำคัญ
แหล่งอ้างอิง
ตรวจทานเมื่อ 25 ตุลาคม 2026 · ไม่ใช่คำแนะนำทางการเงิน