Hash คืออะไร กลไกเข้ารหัสที่ค้ำยัน Bitcoin ทั้งระบบ (อัปเดต 2026)
ความรู้พื้นฐานโดย พีรพัฒน์ หาญคงแก้ว

Hash คืออะไร กลไกเข้ารหัสที่ค้ำยัน Bitcoin ทั้งระบบ (อัปเดต 2026)

ไล่กลไก Hash function ตั้งแต่ประวัติศาสตร์การเข้ารหัสสองพันปี (Caesar Cipher ถึง SHA-256) ทำไม Bitcoin เลือกใช้ SHA-256 hash เชื่อมบล็อกเป็นโซ่และใช้ขุดได้อย่างไร ไปจนถึงคำตอบเรื่องภัยคุกคามจากคอมพิวเตอร์ควอนตัมปี 2026

บทความนี้เป็นส่วนหนึ่งของซีรีส์ "คริปโต 1-100" ของ Bitcoin Addict ต่อจาก Node คืออะไร ทำไม Bitcoin ไม่มีเซิร์ฟเวอร์กลาง (ยังไม่ publish) อ่านเดี่ยวๆ ได้ ไม่ต้องอ่านบทอื่นก่อนก็เข้าใจ

Hash คืออะไร กลไกเข้ารหัสที่ค้ำยัน Bitcoin ทั้งระบบ

ถ้าเคยกดเข้า block explorer อย่าง mempool.space เพื่อเช็คว่าธุรกรรม Bitcoin ที่ส่งไปแล้วเข้าบล็อกหรือยัง แล้วเห็นแถบตัวอักษรผสมตัวเลขยาวเหยียดกำกับอยู่ตรงหัวข้อ "Transaction Hash" นั่นคือจุดแรกที่คนส่วนใหญ่เจอคำว่า Hash โดยไม่รู้ตัว หรือถ้าเคยอ่านข่าวคริปโตแล้วเจอประโยคว่า hashrate ของเครือข่าย Bitcoin พุ่งทำสถิติใหม่ นั่นก็คือคำเดียวกัน หรือแม้แต่ตอนดาวน์โหลดโปรแกรมจากอินเทอร์เน็ตแล้วเว็บไซต์บอกให้เช็ค SHA-256 checksum ก่อนติดตั้ง นั่นก็คือ Hash เช่นกัน

ทั้งสามจุดที่ยกมาฟังดูเหมือนเป็นเรื่องคนละเรื่อง แต่ทั้งหมดใช้กลไกเดียวกัน และนี่คือเหตุผลที่ต้องเข้าใจ Hash ให้ทะลุจริงๆ เพราะมันไม่ใช่ศัพท์เทคนิคเฉพาะจุดเล็กๆ แต่เป็นกลไกพื้นฐานที่ทุกอย่างในคริปโตพึ่งพาอยู่ ถ้าไม่เข้าใจ hash จะไม่มีทางเข้าใจได้จริงว่า blockchain เชื่อมกันเป็นโซ่ได้ยังไง การขุด (mining) ทำงานยังไง หรือแม้แต่ wallet address ที่ใช้รับส่งเหรียญมาจากไหน เพราะทั้งสามเรื่องนี้ล้วนมี hash เป็นฐานรากอยู่ข้างใต้ทั้งสิ้น

ต้องยอมรับตรงๆ ก่อนว่า Hash เป็นหัวข้อที่พอได้ยินชื่อ หลายคนส่ายหน้าหนีทันที เพราะฟังดูเป็นเรื่องคณิตศาสตร์ล้วนๆ เจอศัพท์อย่าง SHA-256 อัลกอริทึม หรือเลขฐาน 16 แล้วรู้สึกเหมือนต้องเรียนสายคอมพิวเตอร์มาก่อนถึงจะเข้าใจ ข่าวดีคือไม่จริงเลย บทความนี้จะไล่อธิบายทีละขั้นด้วยเรื่องเปรียบเทียบใกล้ตัว ไม่มีสูตรคณิตศาสตร์ให้ปวดหัว อ่านจบแล้วจะเห็นว่า Hash ไม่ได้ยากอย่างที่คิด

ก่อนจะมี Hash มนุษย์ซ่อนความลับกันมาแล้วสองพันปี

Hash function ที่ Bitcoin ใช้ไม่ได้โผล่มาจากอากาศ แต่เป็นปลายทางของศาสตร์การเข้ารหัสที่มนุษย์พัฒนาต่อกันมาเรื่อยๆ นานกว่าสองพันปี การเห็นเส้นทางนี้จะช่วยให้เข้าใจว่าทำไม hash ถึงมีหน้าตาและคุณสมบัติแบบที่เป็นอยู่ทุกวันนี้

จุดเริ่มต้นที่มักถูกอ้างถึงคือ Caesar Cipher ในสมัยโรมัน ตามบันทึกของนักประวัติศาสตร์โรมัน Suetonius จูเลียส ซีซาร์ ใช้วิธีเข้ารหัสง่ายๆ ในการส่งข้อความทางการทหารช่วงสงครามกอล (Gallic Wars ประมาณ 58-50 ปีก่อนคริสตกาล) หลักการคือเลื่อนตัวอักษรทุกตัวในข้อความไปข้างหน้า 3 ตำแหน่งตามลำดับตัวอักษร เช่น A กลายเป็น D, B กลายเป็น E ไปเรื่อยๆ ผู้รับสารที่รู้ "กุญแจ" ว่าต้องเลื่อนกี่ตำแหน่งก็แค่เลื่อนย้อนกลับก็อ่านออกทันที ส่วนคนที่ดักข้อความระหว่างทางแต่ไม่รู้กุญแจจะเห็นแต่ตัวอักษรที่ไม่มีความหมาย

Caesar Cipher เรียบง่ายมากจนปัจจุบันถอดรหัสได้ในไม่กี่วินาทีด้วยการนับความถี่ตัวอักษร แต่มันวางหลักการสำคัญที่ตกทอดมาถึงทุกวันนี้ นั่นคือแนวคิดเรื่อง "กุญแจ" ที่ใช้แปลงข้อมูลไปมาระหว่างสถานะอ่านออกกับอ่านไม่ออก

ผ่านมาเกือบสองพันปี หลักการเดียวกันนี้ถูกยกระดับให้ซับซ้อนขึ้นมหาศาลในเครื่อง Enigma ที่กองทัพเยอรมนีใช้เข้ารหัสข้อความทางทหารในช่วงสงครามโลกครั้งที่ 2 Enigma เป็นเครื่องกลไฟฟ้าที่ใช้โรเตอร์หมุนสลับตัวอักษรหลายชั้นซ้อนกัน ทำให้จำนวนความเป็นไปได้ของการเข้ารหัสมีมหาศาลจนฝ่ายเยอรมนีเชื่อว่าไม่มีทางถูกถอดได้ แต่สุดท้ายก็ถูกไขจนสำเร็จ โดยเริ่มจากทีมหน่วยข่าวกรองโปแลนด์ที่นำโดยนักคณิตศาสตร์ Marian Rejewski ก่อนสงครามจะเริ่ม แล้วทีมที่ Bletchley Park ของอังกฤษ ซึ่งมี Alan Turing เป็นกำลังหลัก ต่อยอดด้วยการสร้างเครื่องจักรที่เรียกว่า Bombe ขึ้นมาช่วยไขรหัสเป็นจำนวนมากอย่างเป็นระบบ นักประวัติศาสตร์บางส่วนประเมินว่าความสำเร็จนี้ช่วยย่นระยะเวลาสงครามลงได้หลายปีและช่วยชีวิตคนได้จำนวนมาก

สิ่งที่ Caesar Cipher และ Enigma มีร่วมกันคือทั้งคู่เป็นการเข้ารหัสแบบ "สองทาง" เข้ารหัสไปแล้วต้องถอดกลับมาอ่านได้เสมอถ้ารู้กุญแจที่ถูกต้อง เป้าหมายทั้งหมดคือการปกปิดเนื้อหาไว้ชั่วคราวจากคนที่ไม่ควรรู้ แต่ยังต้องเปิดอ่านได้สำหรับคนที่ควรรู้

จุดเปลี่ยนสำคัญเกิดขึ้นในยุคคอมพิวเตอร์ ปี 1976 นักคณิตศาสตร์ Whitfield Diffie และ Martin Hellman ตีพิมพ์งานวิจัยชื่อ "New Directions in Cryptography" เสนอแนวคิดใหม่ที่ไม่เคยมีมาก่อน นั่นคือ "one-way function" หรือสมการที่เดินหน้าง่ายเป็นปอกกล้วยเข้าปาก แต่เดินถอยหลังยากพอๆ กับงมเข็มในมหาสมุทร ต่างจาก Caesar Cipher และ Enigma ที่ยังไงก็ถอดกลับได้เสมอถ้ารู้กุญแจ ปีถัดมาคือ 1977 ทีมนักวิจัยจาก MIT (Rivest, Shamir, Adleman) นำแนวคิดนี้ไปพัฒนาต่อจนกลายเป็นอัลกอริทึม RSA ที่ยังใช้งานกันอยู่ถึงทุกวันนี้

แนวคิด one-way function นี่เองที่เป็นฐานให้เกิด hash function ยุคใหม่ตามมา ในช่วงปลายทศวรรษ 1970 ถึง 1980 เริ่มมีการออกแบบ hash function รุ่นแรกๆ ก่อนที่หน่วยงานมาตรฐานของสหรัฐฯ อย่าง NIST จะเผยแพร่ตระกูล SHA (Secure Hash Algorithm) อย่างเป็นทางการ เริ่มจาก SHA-0 ในปี 1993 ตามด้วย SHA-1 ในปี 1995 จนมาถึง SHA-2 ซึ่งรวม SHA-256 ที่ Bitcoin ใช้อยู่ทุกวันนี้ เผยแพร่ในปี 2001

พอมาถึงปี 2008 ที่ซาโตชิ นากาโมโตะ ออกแบบ Bitcoin นี่คือจุดที่เส้นทางสองพันปีนี้มาบรรจบกับคริปโตพอดี เพราะสิ่งที่ซาโตชิเลือกใช้เป็นฐานรากของทั้งระบบก็คือ SHA-256 ผลลัพธ์ปลายทางของวิวัฒนาการที่ไล่มาตั้งแต่ Caesar Cipher ผ่าน Enigma จนถึงแนวคิด one-way function ในยุคคอมพิวเตอร์นี่เอง ส่วนเหตุผลที่เขาเลือกตัวนี้เจาะจง จะอธิบายละเอียดในหัวข้อถัดไป

ไทม์ไลน์ประวัติศาสตร์การเข้ารหัส จาก Caesar Cipher ถึง SHA-256

เมื่อเห็นเส้นทางที่ยาวนานสองพันปีนี้แล้ว คำถามถัดไปที่ต้องตอบให้ได้คือ แล้ว hash function ที่เป็นปลายทางของวิวัฒนาการนี้ มันเข้ามาแก้ปัญหาอะไรที่การเข้ารหัสแบบเก่าแก้ไม่ได้

ก่อนเข้าใจ Hash ต้องเห็นปัญหาที่มันแก้ก่อน

ลองนึกภาพนี้ดู: มีไฟล์ตัวติดตั้งโปรแกรมขนาด 2GB ให้ดาวน์โหลดจากอินเทอร์เน็ต เราจะรู้ได้ยังไงว่าไฟล์ที่โหลดมาจนจบนั้น "ถูกต้องครบถ้วนทุกบิต" ไม่ได้ถูกแก้ไข ไม่ได้เสียหายระหว่างทาง และไม่ได้ถูกสอดไส้มัลแวร์เข้ามา

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

เว็บไซต์แจกซอฟต์แวร์ที่น่าเชื่อถือ อย่างเว็บแจก Linux distro หรือเว็บทางการของบริษัทซอฟต์แวร์ใหญ่ๆ มักจะมีตัวเลขชุดหนึ่งกำกับไว้ข้างไฟล์ ระบุว่า "SHA-256 checksum" พร้อมชุดตัวอักษรยาวๆ หน้าที่ของมันคือให้เรานำไฟล์ที่โหลดมาไปคำนวณ hash เอง แล้วเทียบกับตัวเลขที่เว็บให้ไว้ ถ้าตรงกันเป๊ะทุกตัวอักษร แปลว่าไฟล์ของเราเหมือนต้นฉบับทุกบิตจริงๆ ถ้าต่างกันแม้แต่ตัวเดียว แปลว่ามีบางอย่างผิดปกติเกิดขึ้นระหว่างทาง

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

Hash function ทำงานยังไง 3 คุณสมบัติที่ทำให้มันน่าเชื่อถือ

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

ลองสมมติว่ามีข้อมูลต้นทางชุดหนึ่งเรียกว่า "A" นำ A ใส่ลงในสมการ hashing จะได้ผลลัพธ์ออกมาอีกชุดหนึ่งเรียกว่า "B" คุณสมบัติที่ทำให้ hash function มีประโยชน์คือ

  • Deterministic (ผลลัพธ์คงที่เสมอ) ไม่ว่าจะคำนวณกี่ครั้ง ถ้าใส่ A เข้าไป จะได้ B ออกมาเหมือนเดิมทุกครั้งไม่มีคลาดเคลื่อน เหมือนสูตรคูณที่ 2x3 ต้องได้ 6 เสมอไม่ว่าจะคำนวณกี่รอบ
  • One-way (ทางเดียว ย้อนกลับไม่ได้) รู้ค่า A คำนวณหา B ได้ง่ายมากในเสี้ยววินาที แต่ถ้ามีแค่ B อยู่ในมือ ไม่มีวิธีทางคณิตศาสตร์ใดที่จะคำนวณย้อนกลับไปหา A ได้เลย ทางเดียวที่ทำได้คือลองสุ่มค่า A ต่างๆ มาคำนวณดูว่าตัวไหนให้ผล B ตรงกัน ซึ่งใช้เวลานานเกินกว่าจะทำสำเร็จในทางปฏิบัติ เหมือนการทุบไข่ไก่ใส่ชามแล้วตีให้เข้ากันจนเป็นเนื้อเดียว ทำได้ง่ายในไม่กี่วินาที แต่ต่อให้เอาไข่ที่ตีแล้วในชามมาพยายามแยกกลับเป็นไข่ขาวไข่แดงและเปลือกเหมือนเดิม ก็ไม่มีทางทำได้อีกต่อไป
  • Avalanche effect (เปลี่ยนนิดเดียว ผลลัพธ์เปลี่ยนหมด) ถ้าแก้ไขข้อมูลต้นทาง A แม้เพียงตัวอักษรเดียวหรือแค่สลับตัวพิมพ์เล็กใหญ่ ผลลัพธ์ B ที่ได้จะไม่เหลือเค้าโครงเดิมเลยแม้แต่นิดเดียว เหมือนโดมิโนที่ล้มทับกันหมดทั้งกระดาน ทำให้ตรวจจับการแก้ไขข้อมูลได้ทันทีแค่เทียบผลลัพธ์

ตัวเลข hash ที่เห็นเป็นตัวอักษรผสมตัวเลขยาวๆ อย่าง 5d7223e8bce9654bca3d59567bed8de944c3baa6178cca จริงๆ แล้วมันคือตัวเลขธรรมดาตัวหนึ่ง ไม่ต่างจากเลข 1 หรือเลข 10 เพียงแต่มีค่าสูงมากจนถ้าเขียนเป็นเลขฐาน 10 แบบที่คนทั่วไปคุ้นเคยจะยาวจนอ่านไม่ไหว (ตัวเลขตัวอย่างข้างต้นแปลงเป็นฐาน 10 ได้ยาวถึง 8,950,335,276,322,881,201,912,759,441,740,419,766,419,068,186,567,085,258) จึงต้องย่อมาเขียนเป็นเลขฐาน 16 (hexadecimal ใช้ตัวเลข 0-9 ผสมตัวอักษร A-F) แทน หลักการเดียวกับที่คนไทยเขียน "กทม." แทน "กรุงเทพมหานคร" ความหมายเหมือนเดิมทุกอย่าง แค่ย่อให้สั้นลงจนพอจะเขียนและอ่านกันไหว

3 คุณสมบัติของ Hash Function Deterministic One-way Avalanche Effect

SHA-256 คืออะไร ทำไม Bitcoin เลือกใช้ตัวนี้

สมการ hashing มีอยู่หลายแบบ แต่ละแบบเรียกว่า "อัลกอริทึม" ซึ่งแต่ละอัลกอริทึมมีจุดเด่นจุดด้อยต่างกัน บางแบบคำนวณเร็วแต่กินหน่วยความจำ (RAM) เยอะ บางแบบไม่ต้องใช้ RAM มากแต่ต้องใช้กำลังประมวลผลของ CPU สูง และ Bitcoin เลือกใช้อัลกอริทึมที่ชื่อว่า SHA-256

SHA-256 ย่อมาจาก Secure Hash Algorithm ขนาด 256 บิต เป็นมาตรฐานที่หน่วยงานความมั่นคงปลอดภัยไซเบอร์และเทคโนโลยีของสหรัฐฯ (NIST) เผยแพร่ขึ้นในปี 2001 ก่อน Bitcoin จะเกิดถึงแปดปี ซาโตชิ นากาโมโตะ ไม่ได้คิดค้นอัลกอริทึมนี้ขึ้นมาเอง แต่เลือกหยิบสมการที่ผ่านการพิสูจน์ความปลอดภัยมานานแล้วในวงการเข้ารหัสมาใช้กับ Bitcoin โดยตรง

ผลลัพธ์ที่ SHA-256 ให้ออกมามีความยาวคงที่เสมอคือ 256 บิต ซึ่งเมื่อเขียนเป็นเลขฐาน 16 จะได้ตัวอักษรและตัวเลขยาว 64 ตัวเป๊ะ ไม่ว่าข้อมูลต้นทางที่ใส่เข้าไปจะสั้นแค่คำเดียวหรือยาวเป็นทั้งเล่มนิยาย ผลลัพธ์ hash ก็จะยาว 64 ตัวอักษรเท่ากันเสมอ เหมือนเครื่องปั่นน้ำผลไม้ที่พูดถึงไปก่อนหน้านี้ ใส่ทั้งลูกหรือใส่เม็ดเดียวก็ได้แก้วขนาดเท่ากันออกมา นี่คือเหตุผลที่ hash เหมาะกับการเป็น "รหัสแทนตัว" ของข้อมูลทุกขนาด

จุดที่หลายคนเข้าใจผิดคือคิดว่า Bitcoin ใช้ SHA-256 แค่รอบเดียว แต่จริงๆ แล้วบล็อกเฮดเดอร์ของ Bitcoin ถูกนำเข้าสมการ SHA-256 สองรอบซ้อนกัน (เรียกว่า SHA-256d หรือ double SHA-256) เหมือนใส่กุญแจสองชั้นให้ประตูบ้าน ชั้นแรกก็แข็งแรงอยู่แล้ว แต่ใส่ชั้นที่สองเผื่อไว้อีกที เป็นการเสริมความปลอดภัยอีกชั้นที่ซาโตชิออกแบบไว้ตั้งแต่ต้น ป้องกันช่องโหว่ทางทฤษฎีบางประเภทที่อาจเกิดกับการ hash รอบเดียว

Hash เชื่อมบล็อกเข้าด้วยกันเป็นโซ่ได้ยังไง

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

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

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

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

มองอีกมุมคือ การจะปลอมแปลงบล็อกใดบล็อกหนึ่งได้จริง ผู้ปลอมแปลงต้องคำนวณ hash ใหม่ให้กับบล็อกนั้นและทุกบล็อกที่ต่อจากมันจนถึงบล็อกล่าสุดทั้งหมด แข่งกับกำลังขุดของทั้งเครือข่ายที่กำลังต่อบล็อกใหม่เพิ่มขึ้นทุกสิบนาที ยิ่งบล็อกที่อยากแก้อยู่ลึกเท่าไหร่ (ผ่านมานานเท่าไหร่) ก็ยิ่งต้องคำนวณตามให้ทันมากขึ้นเท่านั้น ซึ่งในทางปฏิบัติแทบเป็นไปไม่ได้เมื่อเครือข่ายมีกำลังขุดมหาศาลระดับที่เป็นอยู่ทุกวันนี้

Hash เชื่อมบล็อกเข้าด้วยกันเป็นโซ่ได้อย่างไร

Hash กับการขุด: โจทย์ที่นักขุดต้องแข่งกันไข

อีกบทบาทสำคัญของ hash ใน Bitcoin คือการเป็นแกนกลางของ "การขุด" (mining) ซึ่งจะอธิบายละเอียดเต็มๆ ในบทความ Proof of Work ของซีรีส์นี้ แต่ในเบื้องต้นควรรู้ไว้ว่ากลไกทั้งหมดตั้งอยู่บนคุณสมบัติ one-way ของ hash function

เครือข่าย Bitcoin กำหนดกติกาว่า hash ของบล็อกใหม่ต้องมีค่าต่ำกว่าตัวเลขเป้าหมายค่าหนึ่งที่เรียกว่า Difficulty Target (ในทางปฏิบัติมักพูดกันว่า "ต้องมีเลข 0 นำหน้าจำนวนหนึ่ง") เนื่องจาก hash function เป็นสมการทางเดียว ไม่มีทางคำนวณล่วงหน้าได้ว่าต้องใส่ข้อมูลแบบไหนถึงจะได้ผลลัพธ์ตามเป้าหมาย วิธีเดียวที่ทำได้คือสุ่มตัวเลขเสริมที่เรียกว่า "nonce" มาต่อท้ายข้อมูลบล็อก แล้วลอง hash ดูว่าผลลัพธ์เข้าเป้าหรือยัง ถ้าไม่เข้าก็เปลี่ยนค่า nonce แล้วลองใหม่ ทำซ้ำแบบนี้เป็นล้านล้านครั้งต่อวินาที ไม่ต่างจากการซื้อสลากกินแบ่งแล้วลองเลขไปเรื่อยๆ จนกว่าจะถูกรางวัล เพียงแต่ในกรณีนี้มีเครื่องคอมพิวเตอร์หลายล้านเครื่องทั่วโลกช่วยกันสุ่มลองพร้อมกันตลอดเวลาแทนที่จะเป็นคนคนเดียว

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

Hash ปลอดภัยแค่ไหน ควรกังวลเรื่องคอมพิวเตอร์ควอนตัมไหม

คำถามที่เริ่มมีคนถามมากขึ้นในปี 2026 คือ ถ้าคอมพิวเตอร์ควอนตัมพัฒนาต่อไปเรื่อยๆ วันหนึ่งมันจะทลาย SHA-256 ได้ไหม คำตอบตรงไปตรงมาคือ ยังห่างไกลมาก และอาจจะไม่มีวันถึงเลยด้วยซ้ำในทางปฏิบัติ

งานวิจัยที่ตีพิมพ์ในปี 2026 ประเมินว่า การจะโจมตี SHA-256 ในส่วนของการขุดด้วยคอมพิวเตอร์ควอนตัมต้องใช้จำนวนคิวบิต (qubit หน่วยประมวลผลพื้นฐานของคอมพิวเตอร์ควอนตัม เทียบได้กับ "บิต" ของคอมพิวเตอร์ทั่วไป) สูงถึงระดับ 10 ยกกำลัง 23 ตัว และใช้พลังงานระดับ 10 ยกกำลัง 24 วัตต์ ซึ่งใกล้เคียงกับพลังงานที่ดาวฤกษ์ดวงหนึ่งปลดปล่อยออกมา พูดง่ายๆ คือตัวเลขระดับที่จินตนาการแทบไม่ออกว่าจะสร้างเครื่องแบบนั้นได้ยังไง เทคโนโลยีคอมพิวเตอร์ควอนตัมที่มีอยู่จริงหรือกำลังพัฒนาอยู่ทุกวันนี้ยังห่างจากตัวเลขระดับนั้นมหาศาล คอมพิวเตอร์ควอนตัมอาจช่วยเร่งความเร็วการค้นหาบางประเภทได้ แต่ไม่ใกล้เคียงพอที่จะคุกคามระบบการขุดของ Bitcoin ด้วยฮาร์ดแวร์ที่กำลังพัฒนากันอยู่ในตอนนี้

จุดที่ต้องแยกให้ชัดคือ ความเสี่ยงจริงที่นักวิจัยด้านความปลอดภัยกังวลกันไม่ได้อยู่ที่ hash function แต่อยู่ที่ ลายเซ็นดิจิทัลที่ใช้ยืนยันความเป็นเจ้าของกระเป๋าเงิน (ECDSA) ซึ่งเป็นกลไกคนละส่วนกับ hash โดยสิ้นเชิง อัลกอริทึมของ Shor ในทางทฤษฎีสามารถถอดกุญแจส่วนตัวจาก public key ที่เปิดเผยอยู่ได้ ถ้าคอมพิวเตอร์ควอนตัมมีกำลังมากพอ แต่นักพัฒนา Bitcoin ก็เริ่มเสนอมาตรฐานใหม่ (เช่นข้อเสนอ BIP-360) เพื่อรองรับการอัปเกรดระบบลายเซ็นให้ทนทานต่อควอนตัมไว้ล่วงหน้าแล้วเช่นกัน ผู้เชี่ยวชาญส่วนใหญ่ยังมองว่าภัยคุกคามระดับที่ใช้งานได้จริงยังอยู่ห่างออกไปอีกอย่างน้อยหลายปี

พูดสรุปให้เข้าใจง่าย hash function อย่าง SHA-256 ที่ใช้เชื่อมบล็อกและใช้ขุด ยังปลอดภัยมากในทุกมุมที่ประเมินได้ในปัจจุบัน ส่วนที่ต้องจับตาจริงๆ คือกลไกลายเซ็นซึ่งเป็นคนละเรื่องกัน และมีทางแก้เตรียมไว้ล่วงหน้าแล้ว

Hash SHA-256 ปลอดภัยแค่ไหนในยุคคอมพิวเตอร์ควอนตัม เทียบกับ ECDSA

จุดเชื่อมใกล้ตัว: คนไทยก็พึ่ง hash อยู่ทุกวันโดยไม่รู้ตัว

หลักการเดียวกับที่ Bitcoin ใช้ ก็เป็นฟันเฟืองอยู่เบื้องหลังระบบดิจิทัลของไทยหลายอย่างที่คนทั่วไปใช้งานอยู่ทุกวันโดยไม่รู้ตัวเลย

ระบบใบกำกับภาษีอิเล็กทรอนิกส์ของกรมสรรพากรอย่าง e-Tax Invoice ที่ผู้ประกอบการไทยจำนวนมากใช้อยู่ กำหนดให้เอกสารต้องมีการยืนยันด้วยลายมือชื่อดิจิทัลหรือ Time Stamp ก่อนส่งถึงผู้ซื้อและกรมสรรพากร หลักการเบื้องหลังลายเซ็นดิจิทัลแบบนี้โดยทั่วไปคือการนำเอกสารไป hash ให้เหลือเป็นรหัสสั้นๆ ก่อน แล้วจึงเซ็นรับรองที่ตัว hash นั้นแทนที่จะเซ็นทั้งไฟล์ตรงๆ เพราะไฟล์อาจใหญ่และเซ็นตรงๆ ไม่คุ้มค่าประมวลผล วิธีนี้ยังทำให้ตรวจจับได้ทันทีถ้าใครแก้ไขตัวเลขในใบกำกับภาษีภายหลัง เพราะ hash จะเปลี่ยนไปตามคุณสมบัติ avalanche effect ทันที

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

ทำไมเรื่อง Hash ถึงสำคัญกับการเข้าใจ Bitcoin

เพราะแทบทุกคุณสมบัติที่ทำให้ Bitcoin น่าเชื่อถือ ล้วนสืบย้อนกลับไปที่ hash function ตัวเดียวนี้ทั้งหมด

ความปลอดภัยของ Bitcoin มาจากสามส่วนหลักคือ การใช้ cryptography ที่ทำให้ข้อมูลยากต่อการถูกแก้ไข ระบบบล็อกเชนที่เชื่อมโยงกันแน่นหนา และความไร้ศูนย์กลางที่ทำให้ยากต่อการควบคุม ทั้งสามส่วนนี้พึ่งพา hash เป็นแกนกลางทั้งหมด cryptography ที่ว่าคือ hash function เอง ระบบบล็อกเชนที่เชื่อมโยงกันก็คือการฝัง hash ของบล็อกก่อนหน้าไว้ในบล็อกถัดไป ส่วนความไร้ศูนย์กลางก็ทำงานได้เพราะโหนดทุกเครื่องตรวจสอบ hash เดียวกันได้อย่างเป็นอิสระโดยไม่ต้องเชื่อใจใคร

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

คำถามที่พบบ่อย

Hash คืออะไร สรุปสั้นๆ?

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

ทำไม Bitcoin ถึงเลือกใช้ SHA-256?

SHA-256 เป็นมาตรฐานที่ NIST เผยแพร่ตั้งแต่ปี 2001 ผ่านการพิสูจน์ความปลอดภัยมานานในวงการเข้ารหัสก่อน Bitcoin จะเกิด ซาโตชิ นากาโมโตะ เลือกใช้อัลกอริทึมที่พิสูจน์แล้วนี้แทนที่จะคิดค้นใหม่เอง และ Bitcoin ใช้แบบ hash ซ้ำสองรอบ (SHA-256d) เพื่อเสริมความปลอดภัยอีกชั้น

Hash เชื่อมบล็อกเข้าด้วยกันได้ยังไง?

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

Hash กับการขุดเกี่ยวข้องกันยังไง?

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

คอมพิวเตอร์ควอนตัมจะทลาย SHA-256 ได้ไหม?

งานวิจัยปี 2026 ประเมินว่าต้องใช้จำนวนคิวบิตและพลังงานสูงเกินกว่าที่เทคโนโลยีปัจจุบันหรือที่กำลังพัฒนาจะเข้าใกล้ได้ ความเสี่ยงจริงที่ต้องจับตาคือระบบลายเซ็นดิจิทัล (ECDSA) ที่ยืนยันความเป็นเจ้าของกระเป๋าเงิน ซึ่งเป็นกลไกคนละส่วนกับ hash และนักพัฒนาก็เริ่มเสนอมาตรฐานใหม่รองรับไว้ล่วงหน้าแล้ว

Hash เหมือนการเข้ารหัส (encryption) หรือเปล่า?

ไม่เหมือนกัน การเข้ารหัสแบบ encryption ออกแบบมาให้ถอดรหัสกลับได้ถ้ามีกุญแจที่ถูกต้อง (ใช้ส่งข้อความลับที่ผู้รับต้องอ่านออก) แต่ hash ออกแบบมาให้เป็นทางเดียวเท่านั้น ไม่มีกุญแจใดที่จะถอดย้อนกลับจากผลลัพธ์ไปหาข้อมูลต้นทางได้เลย เหมาะกับงานตรวจสอบความถูกต้องของข้อมูลมากกว่างานปกปิดเนื้อหา

Merkle Root ในบล็อกคืออะไร?

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


เรียบเรียงจากหนังสือ Bitcoin & Blockchain 101 เงินดิจิทัลเปลี่ยนโลก (ฉบับ UPDATE 2024) โดย พีรพัฒน์ หาญคงแก้ว ผู้ก่อตั้ง Blockchain Review บทที่ 3 (หลักการ Hashing, ตัวอย่างเลขฐาน 16/10, การเชื่อมบล็อกด้วย hash) และบทที่ 4 (SHA-256, ตัวอย่างการคำนวณ nonce และ hash ของบล็อก)

ตัวเลขปัจจุบันตรวจสอบผ่าน WebSearch: มาตรฐาน SHA-256 เผยแพร่โดย NIST ปี 2001, Bitcoin ใช้ double SHA-256 (SHA-256d) ในบล็อกเฮดเดอร์, งานวิจัยปี 2026 ประเมินการโจมตีเชิงควอนตัมต่อ SHA-256 ต้องใช้คิวบิตระดับ 10^23 และพลังงานระดับ 10^24 วัตต์ ขณะที่ความเสี่ยงจริงอยู่ที่ลายเซ็น ECDSA ซึ่งนักพัฒนาเสนอมาตรฐานอัปเกรด (เช่น BIP-360) รองรับไว้แล้ว, ระบบ e-Tax Invoice by Time Stamp ของกรมสรรพากรไทยที่ใช้ลายมือชื่อดิจิทัล/Time Stamp ยืนยันเอกสาร

บทความทั้งหมด