ไข่ส้มวิทยา ไข่ส้มวิทยา
หมวดที่ 2: เครือข่ายและการขุดเจาะลึก • ตอนที่ 12

ผ่าบล็อกดูข้างใน: บล็อกหนึ่ง ๆ มีอะไรบ้าง?

ผ่าดูโครงสร้างภายในบล็อก เจาะลึกหัวบล็อก (Block Header) และบทบาทของตัวเลข Nonce

#Bitcoinมือใหม่ #BlockHeader #Nonce #CandidateBlock
สไลด์ปกตอนที่ 12: ผ่าบล็อกดูข้างใน: บล็อกหนึ่ง ๆ มีอะไรบ้าง?
🔍 แตะเพื่อขยายรูป
สไลด์ประกอบบทเรียนตอนที่ 12 — แตะเพื่อดูแบบเต็มจอ

ตอนที่ 10 เรารู้ว่านักขุดจะรวมธุรกรรมจาก Memory Pool มาแข่งกันลงสมุดทีละบล็อก และตอนที่ 11 เรารู้ว่าบล็อกพวกนี้ถูกต่อกันเป็นบล็อกเชนด้วยลายนิ้วมือแฮช แต่วันนี้เราจะมาผ่าดูกล่องนี้กันจริง ๆ ครับว่า ข้างใน “บล็อก” หนึ่งก้อน มีองค์ประกอบอะไรซ่อนอยู่บ้าง

📦 บล็อกคืออะไร? (นิยามแบบเข้าใจง่าย)

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

🧺 ขั้นแรก: จัด “บล็อกชั่วคราว” (Candidate Block)

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

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

🏷️ หัวบล็อก (Block Header): ใบปะหน้ากล่องที่สำคัญที่สุด

ทุกบล็อกชั่วคราวจะมีส่วนที่เรียกว่า หัวบล็อก (Block Header) กำกับไว้เสมอ หัวบล็อกเปรียบเสมือนใบปะหน้ากล่องพัสดุ ไม่ใช่ตัวพัสดุข้างใน แต่บอกข้อมูลสำคัญเกี่ยวกับกล่องนั้น มี 6 องค์ประกอบหลัก:

  1. เลขเวอร์ชัน (Version): บอกว่าบล็อกนี้สร้างตามกติกาของซอฟต์แวร์รุ่นไหน
  2. ลายนิ้วมือของบล็อกก่อนหน้า (Previous Block Hash): บอกว่าบล็อกนี้จะต่อจากบล็อกไหน นี่คือตัวล็อกที่ทำให้บล็อกเชื่อมต่อกันเป็นสายโซ่
  3. ลายนิ้วมือรวมของธุรกรรม (Merkle Root): นำธุรกรรมทุกรายการในบล็อกมาแฮชรวมกันจนเหลือลายนิ้วมือเพียงชุดเดียว เพื่อรับประกันว่าไม่มีธุรกรรมไหนถูกแอบแก้
  4. เวลา (Timestamp): เวลาที่บล็อกนี้ถูกสร้างขึ้น
  5. เป้าหมาย (Difficulty Target): ตัวเลขเป้าหมายที่นักขุดต้องเอาชนะให้ได้
  6. Nonce (เลขใช้ครั้งเดียว): ตัวเลขสุ่มที่นักขุดสามารถเปลี่ยนค่าไปเรื่อย ๆ เพื่อให้ได้ผลแฮชใหม่ออกมา

หัวบล็อกมีขนาดเล็กมากเมื่อเทียบกับธุรกรรมทั้งหมด แต่นักขุดจะใช้เฉพาะข้อมูลในหัวบล็อกนี้เองเป็นโจทย์หลักในการแข่งขัน

🎯 เอาบล็อกลงสมุดได้ยังไง?

กติกาคือ นำข้อมูลทั้งหมดในหัวบล็อกไปเข้าเครื่องคำนวณแฮช (SHA-256) แล้วหวังว่าผลลัพธ์ที่ได้จะ “ต่ำกว่าค่าเป้าหมาย” ที่เครือข่ายกำหนดไว้

ค่าเป้าหมายนี้จะถูกปรับอัตโนมัติผ่านค่าที่เรียกว่า “ความยาก” (Difficulty) ยิ่งความยากสูง เป้าหมายยิ่งต่ำลง การจะหาผลแฮชที่ต่ำกว่าเป้าหมายจึงยิ่งยากขึ้น เปรียบเหมือนเส้นชัยที่ถูกขยับให้แคบลงเรื่อย ๆ

🎲 แล้วถ้าแฮชครั้งแรกไม่ผ่านล่ะ? รู้จักกับ Nonce

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

Nonce คือตัวเลขที่อนุญาตให้นักขุดปรับเปลี่ยนค่าได้อย่างอิสระ:

  • เริ่มจากให้ Nonce = 0 แล้วลองแฮชดู… ผลยังไม่ผ่าน
  • เปลี่ยน Nonce = 1 แล้วแฮชใหม่… ยังไม่ผ่าน
  • เปลี่ยน Nonce = 2, 3, 4 … วนไปเรื่อย ๆ นับล้านล้านครั้งต่อวินาที

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

🏁 เมื่อมีคนแก้บล็อกสำเร็จ แล้วเกิดอะไรขึ้นต่อ?

วินาทีที่นักขุดคนใดคนหนึ่งเจอตัวเลข Nonce ที่ทำให้ผลแฮชต่ำกว่าเป้าหมาย บล็อกชั่วคราวของเขาก็จะ “แก้สำเร็จ”:

  1. ธุรกรรมทุกรายการในบล็อกนั้นจะถูกนำไปต่อท้ายสายโซ่บล็อกเชนอย่างเป็นทางการ
  2. นักขุดคนนั้นจะได้รับรางวัลบล็อก (Block Reward) พร้อมค่าธรรมเนียมทั้งหมดไปครอง
  3. นักขุดคนอื่น ๆ ทั้งโลกจะยอมรับความพ่ายแพ้ ทิ้งงานเดิม แล้วกลับไปที่ Memory Pool เพื่อจัดบล็อกชั่วคราวใบใหม่ทันที
  4. จุดสำคัญ: บล็อกใหม่ของทุกคนในรอบถัดไป จะต้องนำลายนิ้วมือของบล็อกที่เพิ่งชนะรอบนี้ ไปใส่เป็น “บล็อกก่อนหน้า” ในหัวบล็อกของตัวเอง

การแข่งขันรอบใหม่จึงเริ่มต้นขึ้นทันที วนลูปแบบนี้ไปตลอด 24 ชั่วโมง โดยมีผู้ชนะเกิดขึ้นเฉลี่ยทุก ๆ 10 นาที

🧠 สรุปวันนี้ จำแค่นี้

  • บล็อก คือกลุ่มธุรกรรมที่ถูกบรรจุและต่อเข้ากับบล็อกเชนเรียบร้อยแล้ว
  • นักขุดจะหยิบธุรกรรมจาก Memory Pool มาสร้างเป็น บล็อกชั่วคราว เพื่อแข่งกันแก้โจทย์
  • หัวบล็อก (Block Header) คือใบปะหน้า มี 6 ช่องหลัก และเป็นสิ่งที่นักขุดนำมาคำนวณแฮช
  • Nonce คือตัวเลขที่นักขุดเปลี่ยนค่าไปเรื่อย ๆ เพื่อสุ่มหาผลแฮชที่ต่ำกว่าเป้าหมาย
  • เมื่อมีคนชนะ บล็อกจะถูกบันทึกถาวร และทุกคนจะเริ่มจัดบล็อกใหม่เพื่อแข่งรอบถัดไปทันที

🔮 ตอนหน้า:

เป้าหมายที่ว่านี้ใครเป็นคนเลื่อน? แล้วทำไมระบบต้องคุมให้บล็อกออกทุก 10 นาทีพอดี ไม่เร็วและไม่ช้าเกินไป?
ตอนหน้าเราจะมาคุยเรื่อง “ความยาก” (Difficulty) กลไกปรับสมดุลตัวเองที่อัจฉริยะที่สุดของบิทคอยน์ครับ!

🖼️ สไลด์ทั้งหมดของตอนนี้ (8 รูป)

สไลด์ประกอบบทเรียนตอนที่ 12 รูปที่ 2สไลด์ประกอบบทเรียนตอนที่ 12 รูปที่ 3สไลด์ประกอบบทเรียนตอนที่ 12 รูปที่ 4สไลด์ประกอบบทเรียนตอนที่ 12 รูปที่ 5สไลด์ประกอบบทเรียนตอนที่ 12 รูปที่ 6สไลด์ประกอบบทเรียนตอนที่ 12 รูปที่ 7สไลด์ประกอบบทเรียนตอนที่ 12 รูปที่ 8
ทบทวนความเข้าใจ

แบบทดสอบท้ายบทเรียน

ตอบคำถาม 3 ข้อ เพื่อเช็กความเข้าใจของตัวเองได้เลย

1. หัวบล็อก (Block Header) เปรียบได้กับอะไรของบล็อก?

2. ตัวเลข Nonce ในหัวบล็อกมีไว้เพื่อวัตถุประสงค์ใด?

3. เมื่อนักขุดคนหนึ่งแก้บล็อกชั่วคราว (Candidate Block) สำเร็จ จะเกิดอะไรขึ้นต่อ?

✅

อ่านตอนนี้จบแล้วใช่ไหม?

กดบันทึกเพื่อติดตามความก้าวหน้าการเรียนของคุณ