0Pricing
Cryptology Academy · บทเรียน

Proof of Work: การขุดและการปรับความยาก

สร้างตัวขุด PoW และทำความเข้าใจการค้นหานอนซ์กับความยากของเป้าหมาย

Proof of Work: การขุดและการปรับความยาก เป็นบทเรียน Cryptology Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cryptology Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน

การพิสูจน์การทำงานคืออะไร

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

โจทย์การขุด

การพิสูจน์การทำงานของบิตคอยน์: ค้นหานอนซ์ที่ทำให้ SHA256d(block_header) < target โดย target คือจำนวนขนาด 256 บิต ค่า target ที่เล็กลงหมายถึงต้องมีเลขศูนย์นำหน้าในผลลัพธ์แฮชมากขึ้น ทำให้นอนซ์ที่ถูกต้องหาได้ยากและมีจำนวนน้อยลง

ตัวอย่างการสาธิตการพิสูจน์การทำงานด้วย Python

import hashlib def mine(data, difficulty): target = "0"*difficulty nonce = 0 while True: h = hashlib.sha256(f"{data}{nonce}".encode()).hexdigest() if h.startswith(target): return nonce, h nonce += 1 nonce, h = mine("block data", 4) print(nonce, h) # hash starts with "0000"

เป้าหมายความยาก

ส่วนหัวบล็อกบิตคอยน์มีฟิลด์ "bits" ซึ่งเข้ารหัส target ปัจจุบัน โดย Target = coefficient * 256^(exponent-3) ตัวอย่าง: bits=0x1703a30c → target = 0x03a30c * 2^(8*(0x17-3)) = จำนวนขนาด 256 บิตที่ต้องมีศูนย์นำหน้าประมาณ 72 บิต

การปรับความยาก

บิตคอยน์จะปรับความยากทุก 2016 บล็อก (ประมาณ 2 สัปดาห์) การปรับ target คือ new_target = old_target * (actual_time / 2016 * 10 minutes) หากสร้างบล็อกได้เร็วกว่าเฉลี่ย 10 นาที target จะลดลง ทำให้ยากขึ้น หากช้ากว่านั้น target จะเพิ่มขึ้น ทำให้ง่ายขึ้น วิธีนี้ช่วยรักษาเวลาเฉลี่ยต่อบล็อกไว้ที่ประมาณ 10 นาที

อัตราแฮชและความปลอดภัย

อัตราแฮชของเครือข่าย (H/s) ใช้วัดกำลังการขุดทั้งหมด อัตราแฮชที่สูงขึ้นหมายถึงความน่าจะเป็นต่อหน่วยเวลาที่จะค้นพบนอนซ์ที่ถูกต้องโดยบังเอิญมีน้อยลง หากต้องการเขียนห่วงโซ่จำนวน k บล็อกใหม่ ผู้โจมตีต้องมีอัตราแฮชมากกว่า 50% ของเครือข่ายต่อเนื่องเป็นเวลาที่แปรผันตาม k*10 นาที

การโจมตี 51%

เมื่อมีอัตราแฮชมากกว่า 50% ผู้โจมตีสามารถ: (1) ขุดห่วงโซ่แยกไว้เป็นความลับ (2) รวมธุรกรรมหรือไม่รวมธุรกรรม (3) ใช้จ่ายซ้ำโดยเผยแพร่ห่วงโซ่ที่ยาวกว่าหลังจากการชำระเงินได้รับการยืนยันแล้ว ไม่สามารถ: ขโมยเหรียญของผู้อื่น สร้างเหรียญขึ้นจากความว่างเปล่า หรือย้อนธุรกรรมที่อยู่ลึกในห่วงโซ่

การขุดด้วย ASIC และการรวมศูนย์

การขุด SHA256d ของบิตคอยน์ถูกครอบงำโดย ASIC (วงจรรวมเฉพาะงาน) ซึ่งเป็นชิปที่ปรับให้เหมาะกับฟังก์ชันแฮชเดียว ASIC มีประสิทธิภาพสูงกว่า CPU ถึง 10^6 เท่า ส่งผลให้การขุดกระจุกตัวอยู่ในศูนย์ข้อมูลขนาดใหญ่และก่อให้เกิดข้อกังวลด้านการรวมศูนย์

การพิสูจน์การทำงานที่ใช้หน่วยความจำสูง

อีเธอเรียมเคยใช้ Ethash (ปัจจุบันเลิกใช้แล้ว) — การพิสูจน์การทำงานที่ใช้หน่วยความจำสูงและต้องใช้ชุดข้อมูล DAG ขนาดใหญ่ การใช้หน่วยความจำสูงช่วยต้านทาน ASIC ได้ เพราะแบนด์วิดท์หน่วยความจำปรับให้เหมาะสมด้วยต้นทุนต่ำได้ยาก โมเนโรใช้ RandomX ซึ่งปรับให้เหมาะกับ CPU และต้านทาน ASIC ส่วนซีแคชใช้ Equihash ซึ่งใช้หน่วยความจำสูง

การขุดแบบเห็นแก่ตัว

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

ทางเลือกแบบการพิสูจน์การถือครอง

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

ตรวจสอบความเข้าใจ

การปรับความยากของบิตคอยน์พยายามรักษาสิ่งใดไว้

สรุปทบทวน

การพิสูจน์การทำงานกำหนดให้ค้นหานอนซ์ที่ทำให้ SHA256d(header) < target ความยากจะปรับทุก 2016 บล็อก การมีอัตราแฮช 51% ช่วยให้โจมตีด้วยการใช้จ่ายซ้ำได้ ASIC ครองการขุดบิตคอยน์ ส่วนฟังก์ชันที่ใช้หน่วยความจำสูงจะต้านทาน ASIC บทถัดไป: สคริปต์บิตคอยน์และลายเซ็น UTXO

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

บทเรียน “Proof of Work: การขุดและการปรับความยาก” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “Proof of Work: การขุดและการปรับความยาก” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cryptology Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “Proof of Work: การขุดและการปรับความยาก”

สร้างตัวขุด PoW และทำความเข้าใจการค้นหานอนซ์กับความยากของเป้าหมาย คุณปฏิบัติ Cryptology Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cryptology Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cryptology Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “Proof of Work: การขุดและการปรับความยาก” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Cryptology Academy นี้ได้ไหม

ได้ บทเรียน Cryptology Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. สายโซ่แฮชและการเชื่อมโยงบล็อก
  2. ต้นไม้ Merkle: ความถูกต้องของธุรกรรมในระดับใหญ่
  3. Proof of Work: การขุดและการปรับความยาก
  4. สคริปต์ Bitcoin และการตรวจสอบลายมือชื่อ UTXO
← กลับไปที่ Cryptology Academy