ข้ามไปยังเนื้อหา

การปรับความยากของ Bitcoin: ค่าเป้าหมาย การคำนวณใหม่ และขีดจำกัด

Bitcoin คำนวณเกณฑ์ Proof of Work ใหม่ทุก 2,016 บล็อกเพื่อผลักช่วงเวลาสร้างบล็อกเฉลี่ยระยะยาวให้เข้าใกล้สิบนาที ควรวิเคราะห์ค่าเป้าหมาย การเข้ารหัสแบบกะทัดรัด หน้าต่างเวลา ขีดจำกัด กฎเครือข่าย และผลลัพธ์เชิงความน่าจะเป็นแยกจากกัน

อัปเดต

จัดทำขึ้นเพื่อการศึกษาเท่านั้น ไม่ใช่คำแนะนำการลงทุน การลงทุนอาจทำให้สูญเสียเงินลงทุนได้

คำตอบโดยตรง

การปรับความยากของ Bitcoin เป็นกฎฉันทามติแบบกำหนดแน่นอนที่เปลี่ยนค่าแฮช Proof of Work สูงสุดซึ่งยอมรับได้ หรือ target เป็นระยะ เพื่อผลักช่วงเวลาสร้างบล็อกเฉลี่ยระยะยาวให้เข้าใกล้สิบนาทีเมื่ออัตราแฮชที่ทำงานเปลี่ยนไป บน mainnet ค่าเป้าหมายมักคงที่ตลอด 2,016 บล็อกแล้วจึงคำนวณใหม่สำหรับรอบถัดไป โหนดตรวจสอบทุกโหนดอนุมานค่าเป้าหมายบังคับเดียวกันจากส่วนหัวก่อนหน้า นักขุดไม่ได้ลงคะแนนและตัวสำรวจบล็อกไม่ได้เป็นผู้กำหนด

Proof of Work ของส่วนหัวจะถูกต้องต่อเมื่อแฮชซึ่งตีความเป็นจำนวนเต็มน้อยกว่าหรือเท่ากับค่าเป้าหมายที่เข้ารหัสในช่อง nBits ขนาด 32 บิต ค่าเป้าหมายที่เล็กลงยอมรับแฮชน้อยลง จึงต้องลองโดยคาดหมายมากขึ้น ตามธรรมเนียม ความยากเป็นจำนวนสัมพัทธ์ที่แปรผกผันกับค่าเป้าหมาย:

D = T₁ / T

ในที่นี้ T คือค่าเป้าหมายปัจจุบัน และ T₁ คือค่าเป้าหมายอ้างอิงสำหรับความยาก 1 ดังนั้นค่าเป้าหมายกับความยากจึงเคลื่อนไหวคนละทิศ ทั้งสองค่าไม่ได้วัดจำนวนเครื่อง พลังงาน ตัวตนนักขุด หรืออัตราแฮชที่สังเกตได้โดยตรง

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

การปรับความยากมีผลต่อจังหวะเวลาของเหตุการณ์ตามความสูง รวมถึงการลดเงินอุดหนุน แต่ไม่ได้กำหนดจำนวนเงินอุดหนุน ช่วง 210,000 บล็อก หรือกฎอุปทานสุดท้าย และไม่ได้เลือกเชนมาตรฐานด้วยตัวเอง กฎเลือกฟอร์กของ Bitcoin เปรียบเทียบ chainwork สะสมหลังตรวจสอบส่วนหัวและบล็อกแล้ว ความยากของบล็อกเดียวไม่ใช่งานสะสม

วิธีวิเคราะห์การคำนวณใหม่

  1. กำหนดเครือข่ายและชุดกฎ Mainnet, testnet เดิม, Testnet4, signet และ regtest ไม่ได้ใช้ข้อยกเว้นเหมือนกันทั้งหมด บันทึกเชน ชุดกฎซอฟต์แวร์ ความสูงผู้สมัคร และสถานะการเปิดใช้การคำนวณใหม่หรือบล็อกความยากต่ำสุดพิเศษ
  2. ถอดรหัสค่าเป้าหมายที่อ้าง ขยายค่า nBits แบบกะทัดรัดของส่วนหัวผู้สมัครเป็นค่าเป้าหมาย T ปฏิเสธค่าเป้าหมายที่เป็นลบ ศูนย์ ล้น หรือสูงกว่า powLimit แล้วกำหนดให้แฮชส่วนหัวต้องเป็น ≤ T
  3. หาขอบรอบการปรับ บน mainnet ต้องใช้ค่าเป้าหมายใหม่เมื่อความสูงผู้สมัครหารด้วย 2,016 ลงตัว ที่ความสูงอื่น nBits ของบล็อกก่อนหน้าต้องคงเดิม
  4. เลือกหน้าต่าง timestamp ที่ขอบ mainnet Bitcoin Core นำ timestamp ของบล็อกแรกในรอบก่อนหน้าซึ่งมี 2,016 บล็อกไปลบออกจาก timestamp ของบล็อกสุดท้าย ปลายทั้งสองครอบคลุม 2,016 บล็อกแต่มีช่วงระหว่างบล็อกเพียง 2,015 ช่วง ระยะเป้าหมายตามชื่อยังคงเป็น 2,016 × 600 = 1,209,600 วินาที
  5. จำกัดเวลาที่ผ่านไป กำหนด t = clamp(t_actual, 302,400, 4,838,400) วินาที ตั้งแต่หนึ่งในสี่ถึงสี่เท่าของ 14 วันตามชื่อ Timestamp ในส่วนหัวเป็นช่องฉันทามติที่นักขุดให้มาและอยู่ภายใต้ข้อจำกัดความถูกต้องอื่น ไม่ใช่เวลาที่โหนดได้รับอย่างแม่นยำ
  6. คำนวณและเข้ารหัสค่าเป้าหมายใหม่ ตามกฎ mainnet ปัจจุบัน คำนวณจำนวนเต็ม T_new = min(powLimit, T_old × t / 1,209,600) แล้วเข้ารหัสผลแบบกะทัดรัดลง nBits การหารจำนวนเต็มและการปัดเศษรูปแบบกะทัดรัดอาจทำให้อัตราส่วนที่แสดงต่างจากเลขทศนิยมอุดมคติเล็กน้อย
  7. ตีความผลเชิงความน่าจะเป็น โดยประมาณ D_new / D_old = T_old / T_new เปรียบเทียบการปรับกับการกระจายเวลาบล็อกและอัตราแฮชที่ระบุชัดว่าเป็นค่าประมาณ และแยกออกจากข้อสรุปเรื่องรายได้ chainwork การกระจุกตัว และความเสี่ยงการยืนยัน

สูตร mainnet ใช้ค่าเป้าหมายของบล็อกสุดท้ายเป็น T_old ส่วน Testnet4 ต่างออกไปโดยตั้งใจ: BIP 94 อนุญาตบล็อกความยากต่ำสุดพิเศษหลัง timestamp ล่าช้าเพียงพอ ห้ามข้อยกเว้นนี้กับบล็อกแรกของรอบ และใช้ความยากจริงของบล็อกแรกเป็นฐานคำนวณ เพื่อไม่ให้ข้อยกเว้นชั่วคราวปนเปื้อนรอบถัดไป Regtest มักปิดการคำนวณใหม่ คำอธิบายกฎที่ไม่ระบุเครือข่ายจึงไม่ครบถ้วน

ตัวอย่างคำนวณ

1. รอบตามชื่อที่ไม่เปลี่ยนแปลง

สมมติ T_old = 10 ในหน่วยค่าเป้าหมายใดก็ได้ และระยะที่วัดได้เท่ากับ 1,209,600 วินาทีพอดี ขีดจำกัดไม่เปลี่ยนค่า:

T_new = 10 × 1,209,600 / 1,209,600 = 10

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

2. รอบเร็ว 12 วัน

สมมติ timestamp ปลายทั้งสองห่างกัน 12 วัน เพราะอยู่ในขีดจำกัด อัตราส่วนค่าเป้าหมายคือ 12 / 14 = 6/7 ค่าเป้าหมายใหม่ประมาณ 85.7143% ของค่าเดิม ขณะที่:

D_new / D_old ≈ 14 / 12 = 1.166667

ความยากในอุดมคติจึงเพิ่มประมาณ 16.67% ไม่ใช่ 14.29% เปอร์เซ็นต์การลดค่าเป้าหมายและการเพิ่มความยากไม่เท่ากันเพราะเป็นปริมาณส่วนกลับ

3. ขีดจำกัดสี่เท่า

หาก timestamp ปลายทั้งสองห่างเพียง 1.75 วัน การคำนวณใช้ค่าต่ำสุด 3.5 วัน ค่าเป้าหมายอาจลดเหลือประมาณหนึ่งในสี่ และความยากอาจเพิ่มประมาณสี่เท่าในการปรับ mainnet ครั้งเดียว

หาก timestamp ครอบคลุม 70 วัน การคำนวณใช้ค่าสูงสุด 56 วัน ค่าเป้าหมายอาจเพิ่มประมาณสี่เท่าและความยากลดเหลือประมาณหนึ่งในสี่ เว้นแต่ powLimit จะจำกัดค่าเป้าหมายก่อน คำว่า “ขีดจำกัดสี่เท่า” ต้องระบุว่าหมายถึงค่าเป้าหมายหรือความยากและทิศทางใด

4. แรงกระแทกอัตราแฮชกลางรอบ

ใช้ค่าคาดหมายแบบง่าย: 1,008 บล็อกแรกถูกขุดด้วยอัตราที่สอดคล้องกับช่วงสิบนาทีและใช้เวลาประมาณเจ็ดวัน จากนั้นอัตราแฮชหายไป 30% ขณะที่ค่าเป้าหมายคงเดิม ส่วนที่เหลือ 70% จะมีช่วงคาดหมาย 10 / 0.70 ≈ 14.286 นาที ดังนั้น 1,008 บล็อกท้ายใช้ประมาณสิบวัน และทั้งรอบประมาณ 17 วัน

เมื่อไม่คิดผลของปลายช่วง ความสุ่ม และการปัดเศษแบบกะทัดรัด ตัวคูณค่าเป้าหมายคือ 17/14 ≈ 1.214286 ส่วนตัวคูณความยากคือ 14/17 ≈ 0.823529 หรือลดลงประมาณ 17.65% ไม่ได้ลดเต็ม 30% เพราะแรงกระแทกมีผลเพียงครึ่งรอบ หากอัตราแฮชยังอยู่ที่ 70% หลังการปรับบางส่วนนี้ บล็อกยังคาดว่าจะช้ากว่าสิบนาที และรอบถัดไปจะให้ป้อนกลับเพิ่ม

ความเสี่ยงและข้อผิดพลาดในการทบทวน

ข้อผิดพลาดด้านกฎและคณิตศาสตร์

  • เรียกความยากว่าเป็นเกณฑ์เอง แทนที่จะแยกค่าเป้าหมายออกจากตัวชี้วัดสัมพัทธ์แบบผกผัน
  • กลับสูตรจนรอบเร็วเพิ่มค่าเป้าหมาย หรือรอบช้าเพิ่มความยาก
  • ถือว่า 2,016 บล็อกคือช่วง timestamp ที่วัด 2,016 ช่วง ทั้งที่การคำนวณ mainnet ปัจจุบันครอบคลุม 2,015 ช่วง
  • ลืมขีดจำกัด 3.5 และ 56 วัน, powLimit, การหารจำนวนเต็ม หรือการปัดเศษ nBits แบบกะทัดรัด
  • นำข้อความของ mainnet ไปใช้กับ Testnet4, testnet เดิม, signet, regtest หรือเชน Proof of Work อื่น
  • ถือการคาดการณ์ของตัวสำรวจเป็นข้อมูลเข้าฉันทามติ แทนที่จะเป็นค่าประมาณก่อนมีบล็อกขอบ
  • ใช้เวลารับในเครื่องแทน timestamp ส่วนหัวที่การคำนวณฉันทามติใช้
  • สับสนความยากบล็อกปัจจุบัน งานต่อบล็อก chainwork สะสม หรือผลการเลือกฟอร์ก

การวัดและการอนุมาน

  • ถืออัตราแฮชประมาณว่าเป็นรายชื่อเครื่องออนไลน์โดยตรง แทนที่จะเป็นข้ออนุมานจากงานและการมาถึงแบบสุ่ม
  • คาดการณ์การปรับจากส่วนเล็กของรอบ ซึ่งความแปรปรวนเวลาบล็อกปกติอาจมีอิทธิพลกว่า
  • มองความยากที่เพิ่มเป็นหลักฐานว่าราคา รายได้นักขุด การใช้พลังงาน หรือการกระจายศูนย์เพิ่ม
  • มองความยากที่ลดเป็นหลักฐานเครือข่ายล้มเหลวโดยไม่ดูงานสัมบูรณ์ การกระจุกตัว และระยะเวลา
  • เปรียบเทียบตัวเลขความยากข้ามเชนโดยไม่ปรับฟังก์ชันแฮช ค่าเป้าหมายอ้างอิง และกฎการปรับให้เทียบกัน
  • อธิบายสิบนาทีว่าเป็นกำหนดเส้นตาย การรับประกันบริการ หรือเวลายืนยันคงที่
  • อนุมานกำไรนักขุดโดยไม่ดูรางวัลบล็อก ค่าธรรมเนียม uptime เงื่อนไขพูล การป้องกันความเสี่ยง ไฟฟ้า เงินทุน และประสิทธิภาพ

ความปลอดภัยและการดำเนินงาน

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

ความเข้าใจผิดที่พบบ่อย

  • ทุกบล็อก Bitcoin ใช้เวลาสิบนาที สิบนาทีคือค่าเฉลี่ยเป้าหมายเมื่ออัตราแฮชสอดคล้อง การมาถึงแต่ละครั้งยังเป็นแบบสุ่ม
  • นักขุดลงคะแนนเลือกความยากถัดไป โหนดตรวจสอบคำนวณ nBits ที่อนุญาตเอง บล็อกที่อ้างค่าอื่นไม่ถูกต้อง
  • ค่าเป้าหมายเล็กลง 20% หมายถึงความยากสูงขึ้น 20% ความสัมพันธ์เป็นผกผัน: ตัวคูณค่าเป้าหมาย 0.8 หมายถึงตัวคูณความยาก 1/0.8 = 1.25 หรือสูงขึ้น 25%
  • การปรับวัดอัตราแฮชโดยตรง มันตอบสนองต่อการผลิตบล็อกที่มี timestamp ตัวเลขอัตราแฮชทุกค่าคือค่าประมาณที่มีสมมติฐานด้านการสุ่มตัวอย่างและเวลา
  • ความยากคือนโยบายการเงินของ Bitcoin การปรับช่วยรักษาจังหวะเวลาของการออกตามความสูง ส่วนกฎฉันทามติอื่นกำหนดมูลค่าเงินอุดหนุนและการลดลง

หัวข้อที่เกี่ยวข้อง

แหล่งข้อมูล

การนำทาง

ค้นหาในวิกิ...