คำเตือนความเสี่ยง: ระวังความเสี่ยงจากการระดมทุนที่ผิดกฎหมายในนาม 'สกุลเงินเสมือน' 'บล็อกเชน' — จากห้าหน่วยงานรวมถึงคณะกรรมการกำกับดูแลการธนาคารและการประกันภัย
ข่าวสาร
ค้นพบ
ค้นหา
เข้าสู่ระบบ
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
ดูตลาด
Nervos CKB Consensus Protocol NC-Max: ทะลุขีดจำกัดของปริมาณงานฉันทามติของ Nakamoto
Nervos
特邀专栏作者
2019-03-11 09:40
บทความนี้มีประมาณ 10647 คำ การอ่านทั้งหมดใช้เวลาประมาณ 16 นาที
แบนด์วิดท์เป็นข้อจำกัดที่ใหญ่ที่สุดของทรูพุตบล็อกเชน ในงาน Scaling Bitcoin Meetup ที่จัดขึ้นในซานฟราน

การใช้แบนด์วิธของ Algorand มีประสิทธิภาพเพียงใด แล้ว Ouroboros ของ Cardano ล่ะ? เหตุใด Solana และ NKN จึงมี TPS สูงเช่นนี้ Ethereum ได้ลดช่วงเวลาการบล็อกให้สั้นลงเหลือ 15 วินาที เหตุใดจึงไม่สูงกว่าปริมาณงาน Bitcoin มากนัก

ดร.จาง เหรินจะตอบคำถามเหล่านี้ทีละข้อในการแบ่งปัน ต่อไปนี้เป็นบันทึกสุนทรพจน์ของ ดร. เหริน

การอ่านบทความนี้มีข้อกำหนดบางประการสำหรับความรู้พื้นฐานของบล็อกเชนของผู้อ่าน:

  • แนวคิดพื้นฐานของโปรโตคอลฉันทามติ Bitcoin (นั่นคือฉันทามติของ Nakamoto)

  • แนวคิดพื้นฐานของ Ethereum Consensus Protocol

  • บล็อกเด็กกำพร้า บล็อกลุง การขุดที่เห็นแก่ตัว และแนวคิดอื่นๆ

ลิงค์วิดีโอ:

ลิงค์วิดีโอ:https://v.qq.com/x/page/g0837...

ขอแนะนำตัวเอง ฉันชื่อ Zhang Ren เป็นนักวิจัยที่ Nervos & Cryptape ปัจจุบันฉันเป็นนักศึกษาปริญญาเอกที่ COSIC (Computer Security and Industrial Cryptography group) ที่ KU Leuven ภายใต้การดูแลของ Bart Preneel หากคุณไม่คุ้นเคยกับ COSIC ฉันสงสัยว่าคุณเคยได้ยินเกี่ยวกับ AES ซึ่งเป็นมาตรฐานการเข้ารหัสที่ใช้ในโทรศัพท์มือถือของเราทั้งหมดหรือไม่

แน่นอน ถ้าคุณคุ้นเคยกับ Bart Preneel คุณจะรู้ว่าเขาเป็นนักออกแบบของ RIPEMD 160 RIPEMD 160 เป็นอัลกอริธึมแฮชที่ใช้ในการแปลงรหัสสาธารณะ Bitcoin เป็นที่อยู่ Bitcoin

Nervos CKB เป็นเครือข่ายสาธารณะที่สามารถรองรับสัญญาอัจฉริยะในภาษาโปรแกรมต่างๆ และโปรโตคอล Layer 2 ต่างๆ ใน Nervos CKB คุณสามารถใช้สินทรัพย์ใดก็ได้เพื่อชำระค่าธรรมเนียมการทำธุรกรรม การดำเนินการและการตรวจสอบสัญญาอัจฉริยะใน Nervos CKB นั้นแยกออกจากกันเพื่อให้ได้ความเป็นส่วนตัวและประสิทธิภาพที่ดีขึ้น สุดท้ายนี้ NC-Max ซึ่งเป็นรูปแบบหนึ่งของ Nakamoto Consensus ถูกนำมาใช้ใน Nervos CKB เป็นโปรโตคอลที่สอดคล้องกันซึ่งมีทรูพุตสูงกว่า

ข้อจำกัดความรับผิดชอบ: เนื้อหาที่ใช้ร่วมกันนี้มุ่งเน้นไปที่การวิเคราะห์โปรโตคอลฉันทามติของเลเยอร์ 1 เท่านั้น และฉันจะไม่พูดถึงโซลูชันเลเยอร์ 2 เช่น Lightning Network

ชื่อเรื่องรอง

ทำไมเราถึงชอบ NC ของ Bitcoin?

มาตอบคำถามกันก่อน ทำไมเราถึงชอบ Nakamoto Consensus (NC) ของ Bitcoin

มีหลายสาเหตุ ประการแรก การเพิ่มประสิทธิภาพของ NC นั้นดีมาก สามารถบันทึกทุกไบต์ของทุกการส่งและทุกรอบการคำนวณ ตัวอย่างเช่น ใช้ Compact Block เพื่อเพิ่มความเร็วในการเผยแพร่บล็อก และในอนาคตอาจใช้ Minisketch (ไลบรารีซอฟต์แวร์ที่ใช้เพื่อลดความต้องการแบนด์วิธเมื่อซิงโครไนซ์ข้อมูลระหว่างโหนดต่างๆ ในระบบแบบกระจาย) เพื่อบันทึกการถ่ายทอดธุรกรรม ทรัพยากรแบนด์วิธ ในเวลาเดียวกัน ผู้พัฒนา Bitcoin ได้เสนอ Graftroot (ข้อเสนอที่เกี่ยวข้องกับการพัฒนาสัญญาอัจฉริยะและความเป็นส่วนตัวบน Bitcoin) คุณสามารถคิดว่ามันจะได้รับความเป็นส่วนตัวและความปลอดภัยที่ดีขึ้นโดยการบีบอัดสัญญาอัจฉริยะบน Bitcoin ประสิทธิภาพ บางทีเราอาจจะเห็นการรวมลายเซ็นที่นำไปใช้กับ Bitcoin

ประเด็นความรู้: Compact Block Relay ซึ่งเสนอใน Bitcoin Improvement Protocol (BIP) 152 สามารถลดปริมาณแบนด์วิธที่จำเป็นสำหรับโหนดเครือข่าย P2P เพื่อออกอากาศบล็อก
Compact block คือ "บทสรุป" ของบล็อกทั้งหมด รวมถึงข้อมูลสามส่วนต่อไปนี้:
1. ส่วนหัวของบล็อกของบล็อกใหม่
2. รหัสธุรกรรม
3. การทำธุรกรรมที่สมบูรณ์ที่คาดการณ์โดยโหนดที่ส่ง แต่ไม่พร้อมใช้งานสำหรับโหนดที่รับ
ผู้รับพยายามสร้างบล็อกทั้งหมดขึ้นใหม่ตามข้อมูลที่ได้รับและธุรกรรมใน mempool หากธุรกรรมบางอย่างยังขาดหายไป ก็จะร้องขอโหนดออกอากาศ

อีกเหตุผลที่ชอบ NC คือความสามารถรอบด้าน โมเดล UTXO บวกกับคำสั่งธุรกรรมทั่วโลกสามารถรองรับเทคโนโลยีการแบ่งส่วนย่อยต่างๆ และโครงร่าง Layer 2 รวมถึงสัญญาอัจฉริยะที่ซับซ้อน

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

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

ชื่อเรื่องรอง

NC ต้องเปลี่ยนตรงไหนบ้าง?

ตามที่ระบุไว้ในการศึกษาข้างต้น โหนด Bitcoin IPv4 ที่เชื่อมต่อกับเครือข่ายมีแบนด์วิธเฉลี่ยอยู่ที่ 33Mbit/s ในปี 2016 และ 56Mbit/s ในเดือนกุมภาพันธ์ 2017

วิธีการปรับปรุงที่เราคิดได้ง่ายๆ ก็คือตัว protocol เองนั้นสามารถปรับ throughput แบบไดนามิกเพื่อปรับให้เข้ากับการเปลี่ยนแปลงของระดับแบนด์วิธได้หรือไม่?

Bitcoin Unlimited ใช้ความพยายามที่ไม่ดีในการปรับปริมาณงานของ Bitcoin แบบไดนามิก แต่ล้มเหลวและแนะนำเวกเตอร์การโจมตีใหม่หลายตัวเพื่อทำให้โปรโตคอลไม่ปลอดภัย ข้างต้นคือการศึกษาเกี่ยวกับความปลอดภัยของ Bitcoin Unlimited ที่เผยแพร่บน Coindesk (ลิงก์:https://www.coindesk.com/etf-...) และฉันก็เป็นหนึ่งในผู้เข้าร่วมการศึกษานี้ด้วย

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

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

ชื่อเรื่องรอง

โปรโตคอลฉันทามติทางเลือกอื่น ๆ

แล้วทำไมเราไม่เลือกโปรโตคอลฉันทามติทางเลือกอื่นล่ะ?

ปัจจุบันมีสามวิธีในการแทนที่ NC ได้แก่ PoS (หลักฐานการเดิมพัน การพิสูจน์สิทธิ์และผลประโยชน์) DAG และโปรโตคอลที่สอดคล้องกันของบล็อกสองประเภท โปรดทราบว่าทั้งสามวิธีนี้ไม่ได้แยกออกจากกัน เป็นไปได้ที่จะใช้ 2-3 วิธีพร้อมกัน ด้านล่างนี้ เราจะวิเคราะห์เพิ่มเติมเกี่ยวกับความปลอดภัย การทำงาน และปริมาณงานของโปรโตคอลเหล่านี้

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

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

นอกจากนี้ Sleepy Protocol ยังกำหนดให้ผู้ใช้ต้องซิงโครไนซ์นาฬิกาโดยประมาณ

เมื่อข้อสันนิษฐานด้านความปลอดภัยเหล่านี้ถูกละเมิด อาจส่งผลร้ายแรงต่อโปรโตคอล PoS เหล่านี้ และโปรโตคอล PoS ก็แนะนำวิธีโจมตีใหม่ๆ เช่น Nothing-at-stake Attack, Grinding Attack, Long-range Attack วิธีโจมตีเหล่านี้ไม่มีอยู่ในโปรโตคอล PoW และฉันจะไม่อธิบายรายละเอียดวิธีโจมตีเหล่านี้ที่นี่

แล้วโปรโตคอล DAG ล่ะ?

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

หนึ่งคือการจัดเรียงธุรกรรมหลังจากการจัดเรียงโทโพโลยีของบล็อกเชนเสร็จสิ้น ซึ่งหมายความว่าคุณต้องรอเป็นเวลานานเพื่อยืนยันธุรกรรม

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

แล้วโปรโตคอลเหล่านั้นที่มีบล็อกสองประเภทล่ะ โปรโตคอลประเภทสองบล็อกตามชื่อที่แนะนำ ใช้บล็อกคีย์ (Key Block) ที่เหมือนกับบล็อกใน NC เพื่อความปลอดภัยในการยืนยันการทำธุรกรรม และกระจายสัญญาณไมโครบล็อกระหว่างสองบล็อกคีย์ ( Micro Block) เพื่อปรับปรุงทรูพุต

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

(ในกระบวนการแบ่งปัน Zhang Ren กล่าวว่า Byzcoin ก็มีปัญหาที่คล้ายกันเช่นกัน อย่างไรก็ตาม หลังจากวิเคราะห์เพิ่มเติม ปัญหาก็ไม่คล้ายกัน หากคุณสนใจ Byzcoin คุณสามารถไปที่ฟอรัม:https://talk.nervos.org/t/ner...ชื่อเรื่องรอง

อ้างสิทธิ์ TPS?

โครงการทั้งหมดที่ใช้โปรโตคอลฉันทามติทางเลือกเหล่านี้อ้างว่ามีทรูพุตสูง ดังนั้นทรูพุตของโครงการเหล่านี้คืออะไร (ส่วนต่อไปนี้แนะนำให้ดูวิดีโอประมาณ 15:30 น. ฉากนี้น่าตื่นเต้นมาก)

Solana อ้างว่าสามารถประมวลผลธุรกรรมได้ 710,000 รายการต่อวินาที หากคุณสามารถสร้างความก้าวหน้าครั้งใหญ่ได้ คุณสมควรได้รับรางวัลทัวริง ฉันแทบรอไม่ไหวที่จะได้ยินเกี่ยวกับรางวัลของพวกเขา

นอกจากนี้ยังมีโปรโตคอลที่เรียกว่า NKN พวกเขาอ้างว่าสามารถประมวลผล 1 ล้านธุรกรรมต่อวินาทีในขณะที่มี 10,000 โหนดในเครือข่ายทั้งหมด ฉันไม่รู้ว่าพวกเขาทำได้อย่างไร แต่ฉันประทับใจมากกับวิธีที่พวกเขาบรรลุ อยากรู้.

ฉันยังสงสัยด้วยว่าเหตุใด Stellar และ Ripple จึงจัดประเภทโปรโตคอลเป็น NC และฉันก็สงสัยอย่างมากว่าโหนด 10,000 โหนดสามารถประมวลผลธุรกรรม 1 ล้านรายการต่อวินาทีได้อย่างไร

และถ้าคุณจะมีความฝัน คุณควรจะมีความฝันที่ยิ่งใหญ่ เช่นข้อตกลงนี้ อ้างว่าสามารถมี 10000000000000TPS ด้วยเวลายืนยันสุดท้ายน้อยกว่า 1 วินาที

ฉันคิดว่าโลกไม่ใหญ่พอสำหรับพวกเขา พวกเขาต้องหา Odaily ที่ใหญ่กว่านี้จริงๆ เพื่อปรับใช้โปรโตคอลของพวกเขา

เราควรสังเกตว่า TPS ที่ประกาศตัวเองว่าเทียบไม่ได้ เนื่องจากมีการจำลองในสภาพแวดล้อมเครือข่ายที่แตกต่างกัน การจำลองบางอย่างใช้แบนด์วิธ 1Gbit/s ซึ่งห่างไกลจากสถานการณ์เครือข่ายจริงอย่างเห็นได้ชัด

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

ชื่อเรื่องรอง

โมเดลอย่างง่ายสำหรับการเปรียบเทียบปริมาณงาน


ที่นี่เรามีแบบจำลองสำหรับการประเมิน TPS ดังที่แสดงในรูป ก่อนอื่น เราเชื่อว่าแบนด์วิธของโหนดสาธารณะทั้งหมดมีขีดจำกัดสูงสุด ซึ่งสามารถใช้ได้สูงสุด 100% ของแบนด์วิดท์ และคุณไม่สามารถใช้แบนด์วิธเกิน 100% ได้ มีสามองค์ประกอบในการใช้แบนด์วิธที่นี่

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

ดังนั้นหากคุณต้องการปรับปรุง TPS มีเพียงสองสิ่งที่คุณสามารถทำได้

1. ลดสัดส่วนของแบนด์วิธที่ถูกครอบครองโดยโปรโตคอลฉันทามติ
2. ลดสัดส่วนแบนด์วิธที่ไม่ได้ใช้งาน

มีเพียงสองสิ่งนี้เท่านั้นที่ทำได้ ใช่ ไม่มีวิธีอื่น และแบนด์วิธของโปรโตคอลของ Layer 1 ต้องไม่เกิน 100%

จากนั้นเรามาดูการใช้แบนด์วิธของโปรโตคอลฉันทามติทางเลือกอื่นๆ

ในความเป็นจริง โปรโตคอลจำนวนมากใช้ทรัพยากรแบนด์วิธอันมีค่าในการสื่อสารระหว่างสมาชิกคณะกรรมการ

Algorand เก็บใบรับรองการบล็อกเพื่อพิสูจน์ให้ผู้ใช้ใหม่เห็นว่ามีการบล็อก ขนาดของใบรับรองบล็อกแต่ละรายการคือ 300KB โดยไม่ขึ้นกับขีดจำกัดขนาดบล็อก หากคุณคำนวณตามขนาดบล็อก 1MB หมายความว่าจะใช้แบนด์วิดท์ประมาณ 25% เพื่อซิงโครไนซ์ใบรับรองเหล่านี้เสมอ ดังนั้นฉันจึงสงสัยมากว่าทำไมพวกเขาถึงอ้างว่าปริมาณงานของพวกเขาดีกว่า NC ซึ่งไม่สมเหตุสมผลเลย

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

ชื่อเรื่องรอง

จะฝ่าฟันภาวะที่กลืนไม่เข้าคายไม่ออกของมติเอกฉันท์ของ Satoshi Nakamoto ได้อย่างไร?

เป็นที่แน่ชัดว่าทรูพุตปัจจุบันไม่สามารถตอบสนองเราได้ ดังนั้น โปรโตคอลที่สอดคล้องกัน NC-Max ของ Nervos CKB ได้ทำการปรับปรุงบางอย่างกับ NC:

NC-Max มีสามนวัตกรรมหลัก

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

ฉันจะอธิบายในรายละเอียดต่อไป

NC มีขีดจำกัดทรูพุตตามธรรมชาติ เนื่องจากมีเพียงสองสิ่งที่คุณสามารถทำได้เพื่อเพิ่มทรูพุตใน NC:

สิ่งแรกคือบล็อกที่ใหญ่กว่า เช่น Bitcoin Unlimited และ Bitcoin Cash และโครงการอื่น ๆ อีกมากมายก็ทำเช่นเดียวกัน

ประการที่สองคือการลดช่วงเวลาการบล็อก

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

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

แล้วเราจะทำลายข้อจำกัดของทรูพุต NC ได้อย่างไร? หลังจากการวิเคราะห์ข้างต้น หากเราต้องการทำลายข้อจำกัดนี้ เราต้องลดอัตราการบล็อกเด็กกำพร้า หากอัตราการบล็อกของ orphan ลดลง ทั้งความปลอดภัยและปริมาณงานของเครือข่ายสามารถปรับปรุงได้

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

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

มาดูกันว่าสิ่งนี้เกิดขึ้นได้อย่างไรโดยละเอียดดูภาพด้านล่าง

ในเครือข่าย Bitcoin ปัจจุบัน หากทุกอย่างเป็นไปได้ด้วยดี บล็อกหนึ่งๆ จะถูกถ่ายทอดผ่านโปรโตคอลการถ่ายทอด Compact Block

ใน Compact Block ธุรกรรมทั้งหมด (ประมาณ 250 ไบต์ต่อธุรกรรมใน Bitcoin) จะไม่ถูกแพร่ภาพ แต่ ID ของธุรกรรมใน Compact Block นั้นจะถูกถ่ายทอด รหัสธุรกรรมเหล่านี้สร้างเป็น Compact Block ซึ่งมีขนาดเล็กกว่าบล็อกจริงมาก ดังนั้นความเร็วจะเร็วกว่ามาก

เมื่อโหนด A เผยแพร่ Compact Block ไปยังโหนด B โหนด B จะตรวจสอบ ID ของธุรกรรมเหล่านี้ หากไม่มีธุรกรรมเหล่านี้เป็นธุรกรรมใหม่สำหรับโหนด B (นั่นคือ กลุ่มธุรกรรมของโหนด B มีธุรกรรมเหล่านี้) โหนด B สามารถส่งต่อสิ่งเหล่านี้ได้ทันที Compact Blocks บล็อกไปยังโหนดที่อยู่ติดกัน สถานการณ์นี้ดีมาก กระบวนการราบรื่นมาก

อย่างไรก็ตาม หากมี Fresh Transaction ใน Compact Block โหนด B จะต้องซิงโครไนซ์ Fresh Transaction จากโหนด A ก่อน จากนั้นจึงตรวจสอบลายเซ็นของธุรกรรมเหล่านี้ ขั้นตอนเหล่านี้ใช้เวลานานมาก โหนด B จะสามารถแพร่ภาพบล็อกต่อไปได้ก็ต่อเมื่อบล็อกทั้งหมดได้รับการตรวจสอบแล้วว่าถูกต้องเท่านั้น กระบวนการนี้ป้องกันไม่ให้บล็อกที่ได้รับนั้นผิดกฎหมาย ดังนั้น นักขุดจะขุดและเผยแพร่หลังจากบล็อกนี้ หากไม่ได้รับการยืนยันและพบว่าเป็นบล็อกที่ผิดกฎหมาย บล็อกหลังจากบล็อกที่ผิดกฎหมายนี้จะไม่ถูกต้อง กระบวนการซิงโครไนซ์ Fresh Transaction เป็นสาเหตุหลักที่ทำให้การออกอากาศบล็อค Bitcoin ล่าช้า

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

และโปรโตคอลเครือข่ายของ Ethereum นั้นได้รับการดูแลรักษาไม่ดีนัก และไม่มีการทำซ้ำเลยตั้งแต่ปี 2015

และยังมีความซ้ำซ้อนมากมายในขั้นตอนการออกอากาศรายการ ไคลเอนต์ Ethereum จะออกอากาศธุรกรรมเดียวกัน 7 ครั้งไปยังโหนดต่างๆ ซึ่งหมายความว่าแต่ละโหนดจะได้รับธุรกรรมเดียวกัน 7 ครั้ง (Ethereum มีไคลเอนต์ที่แตกต่างกัน เช่น Parity Ethereum, Geth เป็นต้น) และมีความไม่สอดคล้องกันระหว่างไคลเอนต์ประเภทต่างๆ และไคลเอนต์ Ethereum หลักทั้งสองนั้นมีความเป็นอิสระต่อกัน

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

และนักขุดรายใหญ่ไม่มีแรงจูงใจในการเร่งความเร็วการออกอากาศแบบบล็อก เพราะหากบล็อกของฉันสามารถออกอากาศได้ช้ากว่านั้น ก็หมายความว่าฉันสามารถบรรลุ "การขุดแบบเห็นแก่ตัว" ได้ (ในที่นี้ นักขุดรายใหญ่จะไม่ระงับบล็อก แต่การออกอากาศบล็อกจะช้ากว่า และนักขุดรายอื่น ๆ จะปรากฏในกระบวนการ บล็อกที่แข่งขันกัน และเนื่องจากฉันเป็นนักขุดรายใหญ่ ฉันจึงมีความเป็นไปได้สูงที่จะชนะในกระบวนการแข่งขันกับบล็อกการแข่งขันอื่นๆ) นี่เป็นสิ่งที่ดีสำหรับฉัน ทำไมฉันต้องเร่งบล็อกการแพร่ภาพ

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

ด้านล่างนี้คือการออกแบบของเราเพื่อบรรเทาปัญหาบางอย่างที่กล่าวถึงข้างต้น

รูปภาพนี้เป็นโครงสร้างบล็อก เราได้เพิ่มฟิลด์ต่างๆ บนพื้นฐานของโครงสร้างบล็อก Bitcoin

ภาพด้านบนคือโครงสร้างบล็อกของบล็อกที่สมบูรณ์ของเรา ขั้นแรก เรามีพื้นที่ข้อเสนอการทำธุรกรรม (พื้นที่น้าน) เฉพาะพื้นที่ข้อเสนอธุรกรรมเท่านั้นที่สามารถมี Fresh Transaction ได้ ในขณะที่พื้นที่ยืนยันธุรกรรมแบบดั้งเดิม (พื้นที่สีส้ม) สามารถมีธุรกรรมในพื้นที่ข้อเสนอธุรกรรมของช่วง 2-3 บล็อกก่อนหน้าเท่านั้น หากความสูงของบล็อกปัจจุบันคือ h แสดงว่าเป็น hm ถึง hn บล็อกธุรกรรมภายในพื้นที่ข้อเสนอธุรกรรมของ เฉพาะธุรกรรมเหล่านี้เท่านั้นที่สามารถยืนยันได้ ไม่สามารถยืนยันธุรกรรมใหม่ได้โดยพื้นที่ยืนยันธุรกรรม พื้นที่ข้อเสนอธุรกรรมไม่มีธุรกรรมที่สมบูรณ์ มีเพียง ID ธุรกรรม (Truncated Transaction ID) ดังนั้นพื้นที่ข้อเสนอธุรกรรมจะมีขนาดเล็กมาก

สามารถมีบล็อกลุงจำนวนเท่าใดก็ได้ (พื้นที่สีม่วง) ในพื้นที่ส่วนหัวของบล็อกลุง และบล็อกลุงควรมีส่วนหัวของบล็อกและพื้นที่ข้อเสนอธุรกรรม พื้นที่ส่วนหัวของบล็อกลุงจะไม่ถูกนับในขนาดบล็อก ดังนั้นจึงไม่ถูกจำกัดด้วยขนาดบล็อก ดังนั้นผู้ขุดจะไม่ถูกจำกัดจากการเพิ่มบล็อกลุง

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

แม้ว่านั่นหมายความว่าอาจมีธุรกรรมที่ไม่ถูกต้องในพื้นที่ข้อเสนอการทำธุรกรรม ธุรกรรมแบบ double-spend และธุรกรรมที่นักขุดอาจไม่ยอมรับ แต่ก็ไม่สำคัญ

โหนดที่ค้นพบบล็อกจะออกอากาศ Compact Block ก่อน (นั่นคือส่วนหัวของบล็อกและ ID ของการทำธุรกรรม) คล้ายกับกระบวนการกระจาย Bitcoin block ที่กล่าวถึงข้างต้นในโปรโตคอลของเรา Compact Block มีขนาดใหญ่กว่า Bitcoin เล็กน้อย รวมถึงพื้นที่เสนอธุรกรรมและส่วนหัวบล็อกของบล็อกลุงหลายบล็อกและพื้นที่ข้อเสนอธุรกรรมของบล็อกลุง อย่างไรก็ตาม เนื่องจากตัว Compact Block นั้นมีขนาดเล็กพอ มันจึงกระจายไปยังโหนดที่อยู่ติดกันทันที

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

สิ่งนี้ทำให้เกิดคำถามหลายข้อ:

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

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

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

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

ใน NC ของ Bitcoin นักขุดจะได้รับประโยชน์จากการทำเหมืองโดยการชะลอการออกอากาศบล็อก นักขุดมักจะสามารถออกอากาศเฉพาะส่วนหัวของบล็อกเมื่อทำการขุดบล็อก และช้าลงเมื่อออกอากาศเต็มบล็อก ในกระบวนการนี้ มีเพียงนักขุดเท่านั้นที่สามารถขุดได้ (เพราะมีเพียงเขาเท่านั้นที่รู้ข้อมูลของบล็อกถัดไปและสามารถขุดตามบล็อกใหม่นี้ได้ กระบวนการนี้คล้ายกับการระงับบล็อก)

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

นักขุดสามารถขุดธุรกรรมข้อเสนอในบล็อก hm ถึง hn เท่านั้น แต่ไม่สามารถขุดธุรกรรมข้อเสนอในบล็อกก่อนหน้าได้ เว้นแต่ว่าบล็อกนี้จะถูกขุดโดยผู้โจมตีเช่นกัน

ดังที่แสดงไว้ นี่คือการเปรียบเทียบโปรโตคอลฉันทามติของเรากับ Bitcoin NC ใน Bitcoin NC เมื่อนักขุดที่เห็นแก่ตัวพบบล็อก h ก็สามารถเริ่มการขุดบล็อก h+1 ได้ทันที และนักขุดที่ซื่อสัตย์สามารถเริ่มการขุดได้หลังจากได้รับบล็อก h ที่สมบูรณ์แล้วเท่านั้น เนื่องจากนักขุดรายอื่นจำเป็นต้องรู้ว่าธุรกรรมที่สมบูรณ์ในบล็อกคือ ตรวจสอบเพื่อตัดสินว่าบล็อกนั้นถูกกฎหมาย และนักขุดที่เห็นแก่ตัวสามารถชะลอความเร็วในการส่งข้อมูลของบล็อก h เพื่อให้นักขุดรายอื่นได้รับบล็อกในภายหลัง ในช่วงบล็อกออกอากาศเป็นช่วงที่ได้เปรียบสำหรับนักขุดที่เห็นแก่ตัว

อย่างไรก็ตาม ในโปรโตคอลของเรา เมื่อนักขุดที่เห็นแก่ตัวพบบล็อก h และเผยแพร่ Compact Block ที่มีส่วนหัวของบล็อกและรหัสธุรกรรม นักขุดที่ซื่อสัตย์สามารถเริ่มขุด h+1 ได้ทันที หากนักขุดที่เห็นแก่ตัวต้องการใช้ประโยชน์จากธุรกรรมที่เสนอแต่ไม่ได้ออกอากาศ จะต้องค้นหาบล็อก n บล็อกในภายหลังที่มีธุรกรรมที่เสนอแต่ไม่ได้ออกอากาศ เพื่อที่พวกเขาจะได้ใช้ประโยชน์จากสิ่งนี้ อย่างไรก็ตาม สิ่งนี้เกิดขึ้นได้ยากคุณไม่สามารถแน่ใจได้ว่าบล็อกหลังจาก n บล็อกนั้นถูกขุดโดยคุณ นี้เป็นเรื่องยากมากที่จะคาดเดา

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

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

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

ในเวลาเดียวกัน รางวัลบล็อกจะแปรผันตาม 1/(ช่วงเวลาบล็อกที่คาดไว้) ดังนั้นรางวัลบล็อกทั้งหมดที่คาดไว้ในแต่ละรอบการปรับความยากจะคงที่

ซึ่งหมายความว่าสมมติว่าเราสร้างบล็อกทุกๆ 10 นาที จะมี 12.5 bitcoins ในแต่ละบล็อก และถ้าการปรับความยากเปลี่ยนเป็นบล็อกทุกๆ 5 นาที จะมี 6.125 bitcoins ในแต่ละบล็อก ดังนั้นอัตราการออกของสกุลเงินจึงคงที่เช่นกัน

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

ใน NC-Max สันนิษฐานว่าผู้โจมตีคิดเป็น 30% ของพลังการประมวลผลทั้งหมดและนักขุดที่ซื่อสัตย์ 70% หากไม่มีการโจมตีการขุดที่เห็นแก่ตัวผู้โจมตีสามารถค้นหา 3 บล็อกจาก 10 บล็อกและผู้ขุดที่ซื่อสัตย์ สามารถหา 7 บล็อก หากการขุดแบบเห็นแก่ตัวถูกดำเนินการ ผู้โจมตีสามารถค้นพบ 3 บล็อกจาก 7 บล็อก นักขุดที่ซื่อสัตย์พบ 4 บล็อก 3 บล็อกที่ซื่อสัตย์จะกลายเป็นบล็อกกำพร้า และห่วงโซ่หลักจะเติบโตอย่างช้าๆ

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

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

กล่าวคือ เราถือว่าราคาสกุลเงินยังคงมีเสถียรภาพในช่วงเวลาสั้น ๆ เนื่องจากผู้โจมตีการขุดเหมืองที่เห็นแก่ตัวมีสายตาสั้น รางวัลของพวกเขาจะถูกกำหนดตามรางวัลที่ได้รับต่อหน่วยเวลา ซึ่งอาจเทียบเท่ากับพลังเดียวกัน การบริโภค. รางวัล. ใน Bitcoin ผู้โจมตีการขุดที่เห็นแก่ตัวสามารถ "บังคับ" โปรโตคอลเพื่อลดความยากของการสร้างบล็อคโดยการลดอัตราการเติบโตของเชน เพื่อให้พวกเขาสามารถรับรางวัลมากขึ้นต่อหน่วยเวลาหลังจากปรับความยาก ในการออกแบบโปรโตคอล NC-Max ความยากของการสร้างบล็อกจะถูกคำนวณตามบล็อกทั้งหมด รวมถึงบล็อก orphan ผู้โจมตีทำให้บล็อกของนักขุดที่ซื่อสัตย์กลายเป็นบล็อกกำพร้า แต่ไม่สามารถ "บังคับ" โปรโตคอลให้ลดความ ความยากของการสร้างบล็อก รับรางวัลที่สูงขึ้นต่อหน่วยเวลา

สุดท้าย เพื่อสรุป โปรโตคอลของเราจะใช้ประโยชน์จากบล็อกเด็กกำพร้า:

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

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

NC-Max เป็นโปรโตคอลฉันทามติ PoW ของ Nervos CKB NC เป็นตัวย่อของ Nakamoto Consensus ซึ่งเป็นโปรโตคอลที่สอดคล้องกันของ Bitcoin หากหลังจากอ่านบทความนี้แล้ว คุณคิดว่าโปรโตคอลฉันทามตินี้ควรมีชื่อที่ดีกว่านี้ โปรดแจ้งให้เราทราบ

การอ่านที่แนะนำ: บทความการวิเคราะห์ฉันทามติด้านความปลอดภัยของ Dr. Zhang Ren"การพัฒนาเกณฑ์ทั่วไป: การประเมินความปลอดภัยของโปรโตคอลที่สอดคล้องกันของ PoW"


ยินดีต้อนรับเข้าร่วมชุมชนทางการของ Odaily
กลุ่มสมาชิก
https://t.me/Odaily_News
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
บัญชีทางการ
https://twitter.com/OdailyChina
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
สรุปโดย AI
กลับไปด้านบน
แบนด์วิดท์เป็นข้อจำกัดที่ใหญ่ที่สุดของทรูพุตบล็อกเชน ในงาน Scaling Bitcoin Meetup ที่จัดขึ้นในซานฟราน
ดาวน์โหลดแอพ Odaily พลาเน็ตเดลี่
ให้คนบางกลุ่มเข้าใจ Web3.0 ก่อน
IOS
Android