BTC
ETH
HTX
SOL
BNB
ดูตลาด
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

จุดสิ้นสุดที่แท้จริงของบล็อก DAG

Taraxa
特邀专栏作者
บทความนี้มีประมาณ 3404 คำ การอ่านทั้งหมดใช้เวลาประมาณ 5 นาที
การสิ้นสุดการบล็อก DAG หมายถึงอะไร
สรุปโดย AI
การสิ้นสุดการบล็อก DAG หมายถึงอะไร

คำนำ

คำนำ

ชื่อระดับแรก

ความสำคัญของขั้นสุดท้าย

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

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

ชื่อระดับแรก

ขั้นสุดท้ายของ DAG หมายถึงอะไร

โปรดจำไว้ว่าความเสี่ยงในการจัดเรียงใหม่ของกลไกการสั่งซื้อในช่วงต้นของเราส่วนใหญ่เกิดขึ้นเมื่อมีการเปลี่ยนแปลงโซ่สมอ

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

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

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

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

ชื่อระดับแรก

การเลือกบล็อกเป็นระยะโดยอัลกอริทึมคล้าย PBFT

ในการเลือกบล็อกภายใน DAG สำหรับการสรุป เราใช้กระบวนการที่คล้ายกับอัลกอริทึม PBFT (Practical Byzantine Fault Tolerance) เมื่อพิจารณาว่า PBFT เป็นอัลกอริทึมที่ได้รับการพัฒนาอย่างดีและใช้งานอย่างกว้างขวาง รายละเอียดและข้อบกพร่องที่อาจเกิดขึ้น (ข้อบกพร่อง) ที่เกี่ยวข้องกับบทความนี้จะไม่ถูกกล่าวถึงซ้ำที่นี่

กระบวนการสรุปการบล็อกงวดของ PBFT นั้นแบ่งออกเป็นสี่ขั้นตอนอย่างคร่าว ๆ ดังแสดงในแผนภาพแบบง่ายด้านล่าง

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

1. เสนอบล็อกใหม่

  • คำนวณสิทธิ์ผ่าน VRF (SK, Previous_PBFT_block_hash, current_vote_type, current_round_number, current_step_number) = (e, π) โดยที่ e คือค่าสิทธิ์ และ π เป็นหลักฐานการคำนวณ VRF ที่ถูกต้อง

  • ตัดสินใจว่า "ถ้า e < เกณฑ์ แสดงว่ามีสิทธิ์เสนอบล็อก PBFT ในรอบนี้"

  • เลือกตัวเลือกบล็อก DAG ใกล้กับขอบเขต แต่ไม่อยู่บนขอบเขตสำหรับการยืนยันขั้นสุดท้าย นั่นคือ ตัวเลือกบล็อก Pt ของช่วงเวลาปัจจุบัน (ระยะเวลา)

  • สร้างวงจรระหว่าง Pt และ P(t-1) (รายละเอียดด้านล่าง) ค้นหาบล็อกทั้งหมดที่อยู่ในวงจรนี้

  • สร้าง CS กำหนดการพร้อมกัน

  • สร้างตัวเลือกบล็อก PBFT (Pc) ที่มี (Pt, CS) และข้อมูลอื่นๆ เช่น การประทับเวลา ลายเซ็น ผู้รับผลประโยชน์

  • คำนวณแฮชของ Pc (แฮช)

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

2. โหวตผู้นำ

  • คำนวณคุณสมบัติอีกครั้งผ่าน VRF (นำ current_round_number บวกหนึ่งและประเภทการลงคะแนนปัจจุบัน) เพื่อสร้างใหม่ (e, π)

  • ตัดสินใจว่า "ถ้า e < threshold แสดงว่ามีสิทธิ์ในรอบนี้"

  • รอ 2 λ โดยที่ λ คือเส้นผ่านศูนย์กลางของเครือข่าย นั่นคือระยะทางที่สั้นที่สุด (ในเวลา) ระหว่างสองโหนดที่ไกลที่สุดในเครือข่าย

  • คำนวณค่าต่ำสุดของ e ที่สังเกตได้เมื่อ π ถูกต้อง และผู้สร้างเป็นค่าต่ำสุด เมื่อ e เป็น "ผู้นำ" จะเป็นผู้สร้าง - โหนดนี้เป็นผู้เสนอตัวเลือกบล็อก PBFT ถัดไป

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

3. โหวตบล็อก

  • คำนวณคุณสมบัติอีกครั้งผ่าน VRF (นำ current_round_number บวกหนึ่งและประเภทการลงคะแนนปัจจุบัน) เพื่อสร้างใหม่ (e, π)

  • ตัดสินใจว่า "ถ้า e < threshold แสดงว่ามีสิทธิ์ในรอบนี้"

  • รอ 2 lambdas

  • คำนวณว่าได้รับการโหวต 2T+1 ภายในเวลา e_min ที่กำหนดหรือไม่ (โดย T คือ 1/3 ของโหนดการโหวตที่มีคุณสมบัติเหมาะสมในรอบที่แล้ว)

  • หากยังไม่มีบล็อก PBFT ระบบจะทำการสำรวจแบบเพียร์ทูเพียร์สำหรับพีซีที่สอดคล้องกับ e_min และแฮชที่เกี่ยวข้อง (Pc)

  • ตรวจสอบว่าสร้างพีซีอย่างถูกต้อง

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

4. โหวตเพื่อไปยังขั้นตอนต่อไป

  • คำนวณคุณสมบัติอีกครั้งผ่าน VRF (นำ current_round_number บวกหนึ่งและประเภทการลงคะแนนปัจจุบัน) เพื่อสร้างใหม่ (e, π)

  • ตัดสินใจว่า "ถ้า e < threshold แสดงว่ามีสิทธิ์ในรอบนี้"

  • รอ 2 lambdas

  • คำนวณว่าพีซีที่ได้รับคะแนนโหวต 2T+1 หรือไม่

  • ตรวจสอบว่าพีซีที่ชนะนั้นถูกสร้างขึ้นอย่างถูกต้อง

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

  • ชื่อระดับแรก

บทนำเพิ่มเติมเกี่ยวกับ PBFT ของเรา

สิ่งที่เขียนไว้ข้างต้นเป็นคำอธิบายที่ง่ายมาก

ข้อความ

กระบวนการ PBFT นี้มีความปลอดภัยสูงและสามารถปรับขนาดได้

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

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

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

ชื่อระดับแรก

ห่วงโซ่ PBFT แบบขนาน

กระบวนการ PBFT ของ Taraxa สร้างสายโซ่เชิงเส้นของบล็อก PBFT ควบคู่ไปกับ DAG ของบล็อกที่มีอยู่

ทุกบล็อก PBFT มีสองเป้าหมายหลัก

  • เสร็จสิ้นการสิ้นสุดของบล็อก DAG ในบล็อกเป็นระยะ

  • ชื่อระดับแรก

เสร็จสิ้นการสิ้นสุดของบล็อก DAG

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

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

ชื่อระดับแรก

การตั้งเวลาพร้อมกัน

การจัดกำหนดการพร้อมกันกำหนดการสั่งซื้อด้วยวิธีต่อไปนี้:

  • ลำดับของบล็อกถูกกำหนดโดยกลไกการสั่งซื้อ เนื่องจากมีบล็อกจำนวนมากในหนึ่งรอบ

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

  • แบ่งธุรกรรมออกเป็นชุดพร้อมกันและชุดต่อเนื่อง

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

    คุณยังสามารถนึกถึงการตั้งเวลาพร้อมกันซึ่งเป็นผลจากการรวมบล็อก DAG แต่ละบล็อกเป็นบล็อกเดียวและฝังแต่ละบล็อก PBFT

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

คอยติดตาม!

开发者
公链
ยินดีต้อนรับเข้าร่วมชุมชนทางการของ Odaily
กลุ่มสมาชิก:
https://t.me/Odaily_News
กลุ่มสนทนา:
https://t.me/Odaily_GoldenApe
บัญชีทางการ:
https://twitter.com/OdailyChina
สารบัญบทความ
คลังบทความของผู้เขียน
Taraxa
ดาวน์โหลดแอพ Odaily พลาเน็ตเดลี่
ให้คนบางกลุ่มเข้าใจ Web3.0 ก่อน
IOS
Android