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

ฉันทามติ Nakamoto: ความถูกต้อง งานสะสมของเชน การยืนยัน และการจัดเชนใหม่

ฉันทามติ Nakamoto รวมกฎความถูกต้องที่โหนดบังคับใช้อย่างอิสระ การสร้างบล็อก proof of work แบบไม่ต้องขออนุญาต การเผยแพร่ และการเลือกเชนที่ถูกต้องซึ่งมีงานสะสมมากที่สุด ควรแยกวิเคราะห์มุมมองท้องถิ่น chainwork การยืนยัน การจัดเชนใหม่ สมมติฐาน common prefix แรงจูงใจ และการโจมตีเครือข่าย

อัปเดต

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

คำตอบโดยตรง

ฉันทามติ Nakamoto คือกระบวนการแบบ Bitcoin ซึ่งโหนดบังคับใช้กฎความถูกต้องของฉันทามติอย่างอิสระ ผู้ผลิต proof of work ต่อบล็อกโดยไม่มีรายชื่อสมาชิกที่ต้องได้รับอนุญาต บล็อกเผยแพร่ผ่านเครือข่ายแบบเพียร์ทูเพียร์ และแต่ละโหนดเลือกสาขาที่ถูกต้องซึ่งมี proof of work สะสมมากที่สุด กระบวนการนี้จัดลำดับธุรกรรมที่ถูกต้องตามมุมมองที่โหนดสังเกต แต่ไม่ทำให้ธุรกรรมผิดกลายเป็นถูก ไม่ตัดสินข้อเท็จจริงนอกบัญชี และไม่สร้าง finality แบบกำหนดแน่นอนทันที

ความถูกต้องมาก่อนการเลือกเชน สาขาที่มีส่วนหัว proof of work ธุรกรรม สคริปต์ เอาต์พุตที่ใช้แล้ว จำนวน coinbase หรือขีดจำกัดบล็อกไม่ถูกต้องจะถูกปฏิเสธ ไม่ว่าจะอ้างความสูงหรืองานเท่าใด ในบรรดาสาขาที่ผ่านกฎของโหนดและมีข้อมูลพร้อม chainwork สะสมเป็นตัวกำหนดเชนที่ใช้งาน ไม่ใช่เพียงจำนวนบล็อก ดังนั้น “เชนที่ยาวที่สุด” จึงเป็นคำย่อไม่เป็นทางการของเชนที่ถูกต้องซึ่งแสดงความพยายาม proof of work มากที่สุด

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

คำนี้ครอบคลุมมากกว่าการแฮช เหตุผลด้านความปลอดภัยยังขึ้นกับความถูกต้องของบล็อกและธุรกรรม การเผยแพร่แบบเพียร์ทูเพียร์ การยอมรับเชนถูกต้องที่มีงานมากที่สุดอย่างซื่อตรง กำลังขุดที่ใช้จริงของฝ่ายซื่อตรงเพียงพอ พฤติกรรมทางเศรษฐกิจ และผู้ใช้ที่สังเกตเครือข่ายกับซอฟต์แวร์เป้าหมายอย่างอิสระ Common prefix การเติบโตของเชน และคุณภาพเชนเป็นคุณสมบัติทางการที่พิสูจน์เฉพาะในแบบจำลองที่ระบุ ไม่ใช่ข้อเท็จจริงไร้เงื่อนไขของทุกเชน proof of work ที่ใช้งานจริง

วิธีวิเคราะห์ฉันทามติ Nakamoto

  1. กำหนดตัวตนและขอบเขตสังเกต บันทึก chain, network, genesis hash, client version, ชุดกฎฉันทามติ checkpoint หรือการตั้งค่า assume-valid ผู้สังเกต เพียร์ และเวลา เก็บ bestblockhash, height และ chainwork; สองโหนดอาจรายงานปลายต่างกันอย่างซื่อตรงระหว่างที่ข้อความยังเผยแพร่
  2. ตรวจความถูกต้องก่อนเปรียบเทียบงาน ตรวจการเชื่อมส่วนหัว ข้อจำกัดเวลา เป้าหมายที่ถอดรหัส proof of work ข้อผูกมัด Merkle และ witness ธุรกรรม สคริปต์ การใช้ UTXO coinbase และขีดจำกัดทรัพยากร สาขา invalid ไม่ได้สิทธิเป็นผู้สมัครเพียงเพราะอ้างความสูงหรืองานมากกว่า
  3. สร้างต้นไม้บล็อกที่สังเกตใหม่ เชื่อมผู้สมัครแต่ละรายด้วยแฮชบล็อกก่อนหน้าไปยังบรรพบุรุษที่รู้จัก และแยกบล็อกเต็มจากส่วนหัวอย่างเดียว กระทบยอดสถานะ active, valid-fork, valid-headers, headers-only และ invalid ผ่านอินเทอร์เฟซอย่าง getchaintips; อย่าเรียกทุกปลายที่เห็นว่าเชนคู่แข่งที่ถูกต้อง
  4. คำนวณงานสะสมใหม่ ถอดรหัสเป้าหมาย nBits ของแต่ละส่วนหัวและคำนวณงานตามกฎจำนวนเต็มของการใช้งาน โดยแนวคิดคือ work = floor(2^256 / (target + 1)) รวมตามสายบรรพบุรุษและเปรียบเทียบสาขาที่ถูกต้องจากบรรพบุรุษร่วม ความสูง แฮชเรตประมาณ และป้ายพูลไม่ทดแทน chainwork
  5. ติดตามการเลือกและการจัดเชนใหม่ ทำซ้ำการเลือกผู้สมัครที่มีงานมากที่สุด ลำดับท้องถิ่นเมื่องานเท่ากัน และสถานะการมาถึง หากมีสาขาที่ถูกต้องดีกว่า ให้หาจุด fork ตัดส่วนต่อท้ายเก่า เชื่อมส่วนใหม่ อัปเดต UTXO set และกระทบยอดธุรกรรมกับ mempool และบันทึกแอปพลิเคชัน
  6. กำหนดนโยบายยืนยันตามความเสี่ยง คำนวณ confirmations = tip_height - block_height + 1 เฉพาะบล็อกในเชนที่ใช้งานปัจจุบัน ระบุมูลค่าเสี่ยง ความย้อนกลับได้ ส่วนแบ่งผู้โจมตี การเผยแพร่ ความเสี่ยง eclipse อัตรา stale ที่สังเกต ความลึก และแผนตอบสนอง หกครั้งเป็นธรรมเนียม ไม่ใช่เกณฑ์ finality ของโปรโตคอล
  7. ทดสอบเหตุผลด้านความปลอดภัยทั้งหมดภายใต้ความเครียด ทดสอบการแบ่งเครือข่าย latency การซ่อนบล็อก selfish mining การโจมตี eclipse การกระจุกของพูลและฮาร์ดแวร์ แฮชเรตเปลี่ยนฉับพลัน แรงจูงใจค่าธรรมเนียมและเงินอุดหนุน client แตกต่าง การจัดเชนใหม่ลึก และการกู้คืน เชื่อมข้อสรุปกับ common prefix การเติบโต คุณภาพ persistence และ liveness เฉพาะภายใต้สมมติฐานแบบจำลองที่อ้าง

ผลลัพธ์คือคำอธิบายที่ทำซ้ำได้และเฉพาะผู้สังเกตว่าโหนดเลือกประวัติที่ถูกต้องใดในขณะนี้และเพราะเหตุใด กฎฉันทามติกำหนดสิทธิผู้สมัคร proof of work ทำให้ประวัติทางเลือกมีต้นทุนสูง การเผยแพร่แสดงงานแก่โหนดอื่น fork choice เลือกประวัติปัจจุบัน และนโยบายยืนยันกำหนดเวลาแอปพลิเคชันลงมือ การรวมชั้นเหล่านี้เป็น “การอนุมัติของเครือข่าย” ซ่อนเงื่อนไขที่อาจล้มเหลว

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

1. งานที่ไม่ถูกต้องไม่ชนะ

สมมติสาขา A รายงาน valid_A = false และ chainwork_A = 1,200 units ส่วน B มี valid_B = true และ chainwork_B = 1,000 units โหนดปฏิเสธ A และเลือก B งานถูกเปรียบเทียบเฉพาะในหมู่ผู้สมัครที่รับได้ proof of work ไม่อนุญาต coinbase เกิน ลายเซ็นผิด หรือการใช้จ่ายซ้ำ

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

2. ความสูงไม่ใช่งานสะสม

ในตัวอย่างง่ายที่เป้าหมายเปลี่ยน สาขา C เพิ่มหกบล็อก บล็อกละ 100 หน่วยงาน หรือ 6 * 100 = 600 units สาขา D เพิ่มห้าบล็อก บล็อกละ 130 หน่วย หรือ 5 * 130 = 650 units หากทั้งคู่ถูกต้องและเริ่มด้วยงานเท่ากัน D คือสาขาที่มีงานมากที่สุดแม้สั้นกว่าหนึ่งบล็อก

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

3. การยืนยันอาจถูกนำออก

ธุรกรรมอยู่ในบล็อกความสูง 100 ขณะปลายใช้งานอยู่ที่ 105 จะมี tip_height - block_height + 1 = 105 - 100 + 1 = 6 confirmations สมมติสาขาที่ถูกต้องอีกสาขาแยกหลังความสูง 99 และกลายเป็นสาขางานมากที่สุดที่ความสูง 106 โดยไม่มีธุรกรรมนี้ การจัดเชนใหม่ตัดบล็อกเก่า 100 through 105; ธุรกรรมเสียการยืนยันที่ใช้งานหกครั้ง และอาจกลับ mempool ขัดกับการใช้จ่ายอื่น หรือยังไม่ถูกใส่

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

4. โอกาสไล่ทันขึ้นกับแบบจำลอง

ในแบบจำลองตัวอย่างของ whitepaper Bitcoin ให้ส่วนแบ่งแฮชผู้โจมตีเป็น q = 0.10 ส่วนซื่อตรง p = 0.90 และระยะนำเชนซื่อตรง z = 6 การประมาณ Poisson ให้ lambda = z * (q / p) = 0.6666667 และ P(catch up) = 0.0002428027 = 0.02428027% เมื่อ q = 0.30 ที่ความลึกเท่ากัน ผลเพิ่มเป็น P(catch up) = 0.1321111687 = 13.21111687%

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

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

ข้อผิดพลาดด้านโปรโตคอลและการวัด

  • เปรียบเทียบงานก่อนตรวจส่วนหัว ตัวบล็อก และบรรพบุรุษอย่างอิสระ
  • เรียกสาขาสูงสุดหรือเห็นก่อนว่าชนะโดยไม่คำนวณ chainwork สะสม
  • ใช้จำนวนบล็อก แฮชเรตป้ายชื่อ ส่วนแบ่งพูล หรือป้าย explorer แทน chainwork
  • ปะปน mainnet, testnet, signet, fork, รุ่น client, checkpoint หรืออัตลักษณ์ genesis
  • ถือข้อมูลส่วนหัวอย่างเดียว ไม่พร้อมใช้ หรือ optimistic เป็นประวัติที่ตรวจเต็มแล้ว
  • ละการถอดเป้าหมาย เลขคณิตจำนวนเต็ม ลิงก์แฮชก่อนหน้า หรือบรรพบุรุษร่วม
  • ถือ RPC หรือ explorer หนึ่งแห่งเป็นมุมมองทั่วโลกโดยไม่มีแฮช ความสูง เวลา และบริบทเพียร์

ข้อผิดพลาดด้านเครือข่าย แรงจูงใจ และการควบคุม

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

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

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

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

  • เชนที่ยาวที่สุดมีบล็อกมากที่สุดเสมอ โหนด Bitcoin เลือกเชนถูกต้องที่มีงานสะสมมากที่สุด ความสูงอาจเป็นตัวแทนที่ไม่ดีเมื่อเป้าหมายต่างกัน
  • นักขุดกำหนดกฎโปรโตคอลที่ถูกต้อง นักขุดเสนอ block แต่ full node แต่ละรายบังคับใช้กฎฉันทามติที่ตั้งไว้เอง
  • หกการยืนยันสร้าง finality สมบูรณ์ หกเป็นธรรมเนียมแอป ความเสี่ยงขึ้นกับแบบจำลอง ความลึก ผู้โจมตี การเผยแพร่ และความสมบูรณ์การสังเกต
  • ผู้โจมตี 51% ใช้เหรียญของใครก็ได้ พลังแฮชอาจสนับสนุนการจัดเชนใหม่ ใช้จ่ายซ้ำ และเซ็นเซอร์ แต่ไม่ให้ลายเซ็นคีย์ส่วนตัวของผู้อื่นหรือทำให้โหนดเดิมรับเงินเฟ้อผิด
  • แฮชเรตรวมสูงพิสูจน์การกระจายศูนย์และความปลอดภัย การควบคุมจริง การมองเห็นเครือข่าย การเข้าถึงฮาร์ดแวร์ การประสานพูล ความหลากหลาย client แรงจูงใจ และระยะโจมตีก็สำคัญ

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

แหล่งข้อมูล

การนำทาง

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