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

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

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

อัปเดต

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

คำตอบโดยตรง

การขุดแบบเห็นแก่ตัวคือกลุ่มนโยบาย proof-of-work ที่นักขุดหรือกลุ่มร่วมมือกักบล็อกที่ถูกต้อง ขยายสาขาส่วนตัว และเลือกเวลาเผยแพร่เพื่อให้ผู้อื่นเสียงานบนสาขาที่ไม่ถูกยอมรับ เป้าหมายที่มักศึกษา คือเพิ่มส่วนแบ่งรางวัลที่ยอมรับระยะยาวเหนือส่วนแบ่งแฮช ไม่ใช่สร้างงานฟรี

กลยุทธ์ Eyal-Sirer แบบคลาสสิกหรือ SM1 ติดตามระยะนำส่วนตัว เมื่อระยะนำเป็นศูนย์จะกักบล็อกแรก เมื่อเป็นหนึ่ง บล็อกของคู่แข่งจะกระตุ้นให้เผยแพร่เพื่อทำให้เสมอ และเมื่อระยะนำอย่างน้อยสองจะเผยแพร่เพื่อแซงหรือรักษาระยะนำ ทุกบล็อกยังต้องผ่านกฎความถูกต้องและ proof-of-work

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

ไม่มีเกณฑ์สากล ตัวเลขหนึ่งในสามหรือหนึ่งในสี่มาจากกลยุทธ์และแบบจำลองเฉพาะที่มีสองฝ่าย รางวัลคงที่ สภาวะคงตัว และกฎเชนยาว งานภายหลังเพิ่มความล่าช้า ค่าธรรมเนียมผันแปร หลายกลุ่ม การโจมตี eclipse และกฎปรับความยาก เกณฑ์ของแบบจำลองจึงไม่ใช่ขอบเขตความปลอดภัยที่วัดได้ของทุกเครือข่าย

อย่าสับสนกับการกัก full solution จากพูลแต่ส่ง share ซึ่งเป็นการโจมตีระดับพูล การเผยแพร่ช้าโดยบังเอิญ fork ชั่วคราว บล็อกไม่ถูกต้อง การเซ็นเซอร์ fee sniping undercutting double spend การโจมตีเสียงข้างมาก และ stubborn mining อาจมีกลไกทับซ้อน แต่ต้องมีนิยามและหลักฐานแยกกัน

วิธีวิเคราะห์การขุดแบบเห็นแก่ตัว

  1. กำหนดเครือข่ายและเป้าหมาย บันทึก genesis ไคลเอนต์ การเปิดใช้ proof-of-work fork-choice การตัดสินเสมอ เป้าหมาย การปรับความยาก อายุรางวัล เงินอุดหนุน ค่าธรรมเนียม บล็อก stale ผู้สังเกต และช่วงเวลา พร้อมระบุว่าจะวัดส่วนแบ่งรางวัล รายได้ต่อเวลาจริง กำไร การเซ็นเซอร์ หรือ reorg
  2. ระบุกลยุทธ์เป็นเครื่องสถานะ กำหนดสาขาสาธารณะและส่วนตัว chainwork ระยะนำที่ไม่เผยแพร่ การรอ ยอมรับ ทำให้เสมอ แซง หรือเผยแพร่ การประสานงาน ความลึกสูงสุด และการตอบสนองทุกกรณี ชื่อกลยุทธ์อย่างเดียวไม่ใช่อัลกอริทึม
  3. กำหนดแฮชและการแพร่ ผูก alpha กับอัตราพบบล็อกช่วงเดียวกัน ระบุว่า gamma หรือโมเดลหน่วงเวลาแบ่งกำลังแฮชนอกกลุ่มในแต่ละการแข่งขันอย่างไร รวมรีเลย์ การตรวจสอบ เทมเพลต compact block การแบ่งเครือข่าย และ eclipse เมื่อเกี่ยวข้อง
  4. แยกรางวัลกับเวลา ติดตามบล็อกที่ยอมรับของทุกฝ่าย บล็อก stale หรือถูกทิ้ง เงินอุดหนุน ค่าธรรมเนียม รางวัล ommer หรือ inclusion อายุรางวัล เวลาพบ การเติบโตของเชน และช่วงความยาก ส่วนแบ่งที่ยอมรับไม่เท่ากับรายได้ต่อชั่วโมงหรือกำไร
  5. แก้และตรวจแบบจำลอง ใช้ Markov, Markov decision process แบบมีขอบเขต หรือการจำลองที่ทำซ้ำได้ รายงานการตัดขอบเขต การลู่เข้า warm-up seed ช่วงความเชื่อมั่น ความไว และฐานขุดซื่อสัตย์ พร้อมตรวจสถานะเล็กด้วยมือ
  6. ทดสอบหลักฐานและทางเลือก เก็บ header แรก เวลามาถึงราย peer สาขา chainwork ที่มา coinbase หรือการจ่าย เทมเพลต ค่าธรรมเนียม เวลา และการย้ายพูล เทียบกับความแปรปรวน Poisson ความล่าช้า เหตุขัดข้อง บั๊ก partition fee sniping และป้ายผิด เชนสาธารณะอาจไม่เห็นบล็อกแพ้ที่ไม่เผยแพร่
  7. ประเมินมาตรการโดยไม่กล่าวเกินจริง ทดสอบรีเลย์และการตรวจสอบ กฎตัดสินเสมอ fork-choice รางวัล การปรับความยาก การกระจุกตัว การย้ายพูล การเฝ้าระวัง การตอบสนอง และนโยบายยืนยัน ทุกมาตรการอาจเปลี่ยนแรงจูงใจ การสังเกต และกลยุทธ์ จึงต้องวิเคราะห์กฎทั้งระบบใหม่

แยกนิยามกลยุทธ์ ผลแบบจำลอง ผลจำลอง หลักฐานที่สังเกต และข้อสรุปปฏิบัติการออกจากกัน ไม่มีส่วนใดใช้แทนอีกส่วนได้

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

1. ระยะนำส่วนตัวและการแข่งขันสาธารณะ

ให้กลุ่มมี alpha = 0.30 และลำดับผู้พบบล็อกถัดไปเป็น กลุ่ม กลุ่ม แล้วผู้อื่น ในแบบจำลองอิสระอย่างง่าย ความน่าจะเป็นของลำดับนี้คือ:

0.30 * 0.30 * 0.70 = 0.063 = 6.3%

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

หากเกิดการเสมอหนึ่งบล็อก ให้ gamma = 0.50 ภายใต้เงื่อนไขว่าบล็อกถัดไปยุติการแข่งขัน กลุ่มพบเองด้วยโอกาส 0.30 และได้สองบล็อก หรือผู้อื่นต่อสาขากลุ่มด้วยโอกาส 0.70 * 0.50 และกลุ่มได้หนึ่งบล็อก ค่าคาดหมายคือ:

0.30 * 2 + 0.70 * 0.50 * 1 = 0.95

ทุกผลลัพธ์มีสองบล็อกที่ยอมรับ จึงได้ส่วนแบ่งตามเงื่อนไข 0.95 / 2 = 47.5% การเทียบเหตุการณ์ที่คัดมาโดยตรงกับ 30% มี selection bias; แบบจำลองระยะยาวต้องรวมโอกาสและต้นทุนในการเข้าสู่สถานะนี้

2. เกณฑ์คลาสสิกมีเงื่อนไข

สำหรับ SM1 ในแบบจำลองรางวัลคงที่เดิม เมื่อ alpha < 0.50 เกณฑ์คุ้มทุนที่รายงานคือ:

alpha* = (1 - gamma) / (3 - 2 * gamma)

เมื่อ gamma = 0 ได้ 1 / 3 = 33.3333%; เมื่อ gamma = 0.50 ได้ 0.50 / 2 = 25%; และเมื่อ gamma = 0.90 ได้ 0.10 / 1.20 = 8.3333% ตัวเลขเหล่านี้แสดงความไวต่อสมมติฐานการเสมอ ไม่ได้ตัดสินว่ากลุ่มที่มีส่วนแบ่งใดปลอดภัย เป็นผู้โจมตี หรือทำกำไรจริง

3. ส่วนแบ่งที่ยอมรับไม่ใช่รายได้ทันที

สมมติการจำลองพบ 1,000 บล็อก กลุ่มมีส่วนแบ่งแฮช 28% แต่ได้บล็อกยอมรับ 270 บล็อก ผู้อื่นได้ 650 และบล็อกถูกทิ้ง 80 ส่วนแบ่งที่ยอมรับของกลุ่มคือ:

270 / (270 + 650) = 270 / 920 = 29.3478%

ค่านี้สูงกว่าส่วนแบ่งแฮช 1.3478 จุด แต่ฐานขุดตามสัดส่วนจากการพบ 1,000 ครั้งคือ 280 บล็อก กลุ่มจึงได้น้อยกว่า 10 บล็อก หรือ 10 / 280 = 3.5714% ก่อนปรับตามเวลา การปรับความยากภายหลังอาจเปลี่ยนรายได้ต่อเวลา แต่ขึ้นกับหน้าต่าง timestamp ขอบเขต แฮช ค่าธรรมเนียม และการใช้กลยุทธ์ต่อเนื่อง

4. ความผิดปกติของส่วนแบ่งไม่ใช่หลักฐานระบุตัว

สมมติส่วนแบ่งที่ประเมินอิสระ p = 0.30 และใช้เพียง null model คร่าว ๆ ที่มีบล็อกอิสระ n = 10,000 ค่าคาดหมายคือ n * p = 3,000 และส่วนเบี่ยงเบนมาตรฐานทวินามคือ:

sqrt(10,000 * 0.30 * 0.70) = 45.8258 blocks

หากระบุว่าได้ 3,080 บล็อก จะมี z = (3,080 - 3,000) / 45.8258 = 1.7457 แต่ไม่ใช่ตัวตรวจจับ เพราะบล็อกอาจไม่อิสระ p อาจเปลี่ยน การประเมินแฮชและป้ายพูลคลาดเคลื่อน และโชค ความล่าช้า การย้ายพูล หรือบล็อกลับเปลี่ยนข้อมูลได้ ต้องใช้ competing header เวลามาถึง และ causal model ไม่ใช่ z-score อย่างเดียว

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

ข้อผิดพลาดด้านแบบจำลองและโปรโตคอล

  • ไม่ระบุกลยุทธ์: SM1, stubborn, optimal, fee-aware และการก่อกวนพูลทำงานต่างกัน ต้องให้ตารางสถานะและการกระทำครบ
  • ใช้ความสูงแทน chainwork: fork-choice ใช้งานที่ถูกต้องตามกฎเครือข่าย ไม่ใช่จำนวนบล็อกสากล ต้องสร้างทั้งสองสาขาใหม่
  • อ้างเกณฑ์สากล: หนึ่งในสาม หนึ่งในสี่ หรือค่าอื่นล้วนขึ้นกับแบบจำลอง เป้าหมาย กลยุทธ์ และสมมติฐาน
  • อ่าน gamma ผิด: ค่านี้จัดสรรกำลังขุดนอกกลุ่มใน race ไม่ใช่คะแนน latency ทั่วโลก ต้องบอกวิธีประมาณหรือจำลอง
  • สมมติรางวัลเท่ากัน: เงินอุดหนุน ค่าธรรมเนียม ommer อายุรางวัล และการเลือกธุรกรรมเปลี่ยนแรงจูงใจได้
  • ละเลยการปรับความยาก: เชนโตช้าลงอาจเปลี่ยนความยากและรายได้ต่อเวลา ต้องจำลองช่วง timestamp ขอบเขต และการตอบสนองแฮช
  • เรียกนโยบายเดียวว่าเหมาะสมที่สุด: MDP แบบมีขอบเขตขึ้นกับสถานะ การกระทำ รางวัล delay และ truncation ต้องรายงานขอบเขตและความไว

ข้อผิดพลาดด้านหลักฐานและความปลอดภัย

  • สับสนกับการกักบล็อกในพูล: การซ่อน full solution แต่ส่ง share ต่างจากการขยายสาขาฉันทามติส่วนตัว
  • สับสนกับ double spend หรือเสียงข้างมาก: การบิดเบือนรางวัลไม่ต้องมีธุรกรรมขัดแย้ง ส่วน reorg และ censorship ต้องมีหลักฐานเพิ่ม
  • คิดว่ากักบล็อกถูกต้องแล้วบล็อกผิดจะผ่าน: บล็อกที่เผยแพร่ยังต้องผ่าน proof-of-work และกฎธุรกรรม ส่วนแบ่งแฮชอนุมัติสถานะผิดไม่ได้
  • อนุมานจากการชนะติดกัน: Poisson สร้างลำดับได้ตามธรรมชาติ ต้องใช้ช่วงยาว ความไม่แน่นอน สาขา เวลา เทมเพลต และเหตุอื่น
  • มั่นใจใน stale rate: จุดสังเกต รีเลย์ โทโพโลยี race ปกติ เหตุขัดข้อง และบล็อกลับทำให้ค่าที่วัดเอนเอียง
  • มั่นใจในป้ายพูล: coinbase tag ที่อยู่จ่าย เทมเพลต ผู้ให้แฮช และผู้ควบคุมไม่ตรงกันเสมอ ต้องระบุเวอร์ชันและความไม่แน่นอน
  • ละเลย partition และ eclipse: มุมมองเครือข่ายจำกัดเปลี่ยน race, gamma และความเป็นไปได้ ต้องทดสอบ peer และการเชื่อมต่อปรปักษ์

ข้อผิดพลาดด้านเศรษฐศาสตร์และมาตรการ

  • เรียกส่วนแบ่งสัมพัทธ์ว่ากำไร: แปลงรางวัลเป็นกระแสเงินสดตามเวลา แล้วหักไฟฟ้า โฮสติ้ง พูล ทุน การเงิน ภาษี variance และบล็อกแพ้
  • สมมติเศรษฐศาสตร์หลังปรับทันที: กลยุทธ์ การเข้าออก แฮช ค่าธรรมเนียม ราคา และ adjustment lag อาจล้มสมมติฐาน steady state
  • ถือว่าส่วนแบ่งพูลคืออำนาจถาวร: ผู้ให้แฮชย้ายได้ แต่สัญญา firmware การดูแลเงิน ความล่าช้า ภูมิศาสตร์ และการกระจุกตัวอาจจำกัด
  • ตรวจด้วยตัวชี้วัดเดียว: ส่วนแบ่งบล็อก stale rate latency หรือค่าธรรมเนียมอย่างเดียวระบุสาเหตุไม่ได้ ต้องรวม telemetry และกฎตัดสิน
  • ใช้มาตรการโดยไม่วิเคราะห์ดุลยภาพ: รีเลย์ กฎสุ่ม freshness รางวัล หรือโทษอาจย้ายแรงจูงใจและเพิ่มช่องโจมตี
  • คิดว่าจำนวนยืนยันแก้ครบ: ความลึกลด reorg บางแบบได้ แต่ไม่แก้รางวัล งานสูญเปล่า การรวมศูนย์ หรือ liveness

ความเข้าใจผิดทั่วไป

ต้องมีพลังแฮชส่วนใหญ่

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

กักหนึ่งบล็อกพิสูจน์การขุดแบบเห็นแก่ตัว

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

บล็อกที่ยอมรับมากกว่าส่วนแบ่งแฮชพิสูจน์กลยุทธ์

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

สร้างบล็อกผิดหรืองานฟรี

ไม่ บล็อกต้องถูกต้องและมี proof-of-work จริง ความได้เปรียบมาจากการเปลี่ยนว่าบล็อกใดถูกยอมรับ รวมถึงปฏิกิริยาของนักขุดและกฎความยาก

รีเลย์ดีขึ้นหรือเพิ่มการยืนยันแล้วปัญหาหมด

ไม่ รีเลย์เปลี่ยนโอกาส race ส่วนการยืนยันลดความเสี่ยงย้อนธุรกรรมบางส่วน แต่ไม่แก้การออกแบบรางวัล กลยุทธ์ การกระจุกตัว การปรับความยาก หรือแรงจูงใจค่าธรรมเนียมทั้งหมด

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

แหล่งที่มา

การนำทาง

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