คำเตือนความเสี่ยง: ระวังความเสี่ยงจากการระดมทุนที่ผิดกฎหมายในนาม 'สกุลเงินเสมือน' 'บล็อกเชน' — จากห้าหน่วยงานรวมถึงคณะกรรมการกำกับดูแลการธนาคารและการประกันภัย
ข่าวสาร
ค้นพบ
ค้นหา
เข้าสู่ระบบ
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
ดูตลาด
คำอธิบายโดยละเอียดของอัลกอริธึมฉันทามติของ Tendermint
BFTF技术社区联盟
特邀专栏作者
2018-10-18 07:36
บทความนี้มีประมาณ 5584 คำ การอ่านทั้งหมดใช้เวลาประมาณ 8 นาที
กระบวนการหลักของอัลกอริทึม Tendermint คืออะไร? Tendermint หมายถึงกลไกการล็อกแบบใด

ผู้เขียนต้นฉบับ: Soul Machine

ผู้เขียนต้นฉบับ: Soul Machine

Tendermint เป็นโครงการโอเพ่นซอร์สของ Tendermint ซึ่งเป็นตัวแปรของอัลกอริธึม pBFT ความสัมพันธ์ระหว่าง Tendermint และ pBFT นั้นคล้ายคลึงกับความสัมพันธ์ระหว่าง Raft และ Paxos Tendermint เป็น pBFT เวอร์ชันที่เรียบง่าย

กระบวนการหลักของอัลกอริทึม

โฟลว์อัลกอริทึมหลักของ Tendermint แสดงในรูปด้านล่าง:

ขั้นแรก อัลกอริทึม Tendermint จะสุ่มเลือกบางโหนดเป็น Validator (วิธีเลือกโหนดการยืนยัน ดู "วิธีเลือกโหนดการยืนยัน" ด้านล่าง) จากนั้นเลือกหนึ่งใน Validator เป็นโหนดผู้เสนอ โหนดผู้เสนอเริ่มตรวจสอบและรวบรวมธุรกรรมทั้งหมดในเครือข่ายทั้งหมด หลังจากนั้นไม่กี่นาที โหนดจะรวบรวมบล็อกใหม่และเผยแพร่ไปยังเครือข่ายทั้งหมด นี่คือบล็อกข้อเสนอ หลังจากได้รับการบล็อกข้อเสนอนี้ โหนด Validator ทั้งหมดในเครือข่ายทั้งหมดจะเริ่มอ่านธุรกรรมทั้งหมดในบล็อกนี้และตรวจสอบทีละรายการ หากไม่มีปัญหา โหนดจะส่งข้อความลงคะแนนเสียงล่วงหน้าเพื่อแสดงข้อตกลงในเรื่องนี้ block, และลงมติยืนยัน หากพบว่ามีการทำธุรกรรมที่ผิดกฎหมายใน block, จะทำการโหวตเป็นลบ, และข้อความโหวตเหล่านี้จะถูกส่งไปยังโหนดตรวจสอบความถูกต้องทั้งหมด, ดังนั้นแต่ละโหนดตรวจสอบจะไม่เพียงแค่ส่งออกไปเท่านั้น ข้อความลงคะแนนแต่ยังรวบรวมข้อความลงคะแนนของคนอื่นๆ ด้วย เมื่อจำนวนคะแนนเสียงที่ตกลงไว้เกิน 2/3 ระบบจะส่งข้อความการลงคะแนนเสียงล่วงหน้าซึ่งเป็นขั้นตอนที่สองของการลงคะแนนเสียงและแต่ละโหนดยังติดตามและรวบรวม ส่งข้อความลงคะแนน เมื่อจำนวนการลงคะแนนล่วงหน้าที่รวบรวมโดยโหนดตรวจสอบความถูกต้องเกิน 2/3 หมายความว่าบล็อกนั้นได้รับการอนุมัติจากคนส่วนใหญ่ และคุณสามารถเขียนบล็อกนี้ลงในบล็อกเชนในเครื่องได้อย่างปลอดภัยและต่อท้ายด้วย เสร็จสิ้นการกระทำ ในขณะเดียวกัน ความสูงของบล็อกจะเพิ่มขึ้น 1 และดัชนีโหนดผู้เสนอก็เพิ่มขึ้น 1 เช่นกัน เข้าสู่รอบถัดไป (รอบ) และเริ่มเสนอบล็อกใหม่

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

ความซับซ้อนของการสื่อสารผ่านเครือข่าย

ความซับซ้อนในการสื่อสารเครือข่ายของ Tendermint คือ O(n2) เนื่องจากในสองขั้นตอนการลงคะแนน แต่ละโหนดตัวตรวจสอบความถูกต้องจำเป็นต้องรวบรวมข้อความการลงคะแนนเสียงมากกว่า 2/3 และจำนวนของแพ็กเก็ตข้อมูลที่ส่งโดยเครือข่ายคือ n2 ดังนั้นความซับซ้อนที่ศูนย์กลางของเครือข่ายคือ ต (n2). ในขั้นตอนข้อเสนอ ผู้ตรวจสอบทั้งหมดจะต้องได้รับบล็อกใหม่เท่านั้น และความซับซ้อนของการสื่อสารเครือข่ายคือ O(n) โดยรวมคือ O(n2) ความซับซ้อนของการสื่อสารเครือข่ายคือ O(n2) และถูกกำหนดไว้แล้วว่าจำนวนโหนดใน Tendermint จะไม่มากเกินไป หากมีมากเกินไป การสื่อสารผ่านเครือข่ายจะกลายเป็นคอขวด ดังนั้น Tendermint จึงเหมาะสำหรับความเป็นส่วนตัวและพันธมิตร chains นอกจากนี้ยังระบุไว้ในหน้า 17 ของกระดาษ จุดหนึ่ง: Tendermint เป็นโซลูชันที่ปรับให้เหมาะสมสำหรับ consortia หรือตรรกะระหว่างองค์กร อย่างไรก็ตาม หากร่วมมือกับกลไกการแบ่งส่วนที่ดี นั่นเป็นอีกเรื่องหนึ่ง

สมมติฐานของเครือข่าย

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

เนื่องจากเครือข่ายทำงานแบบอะซิงโครนัสระหว่างขั้นตอนการลงคะแนนเสียงล่วงหน้าและขั้นตอนการลงคะแนนเสียงล่วงหน้า หากไม่ได้รวบรวมคะแนนเสียงมากกว่า 2/3 โหนดเครื่องมือตรวจสอบความถูกต้องทั้งหมดจะรออย่างไม่มีกำหนด ดังนั้นระบบทั้งหมดจะหยุดทำงาน Tendermint ยอมประนีประนอมกับ Liveness เพื่อแลกกับ Finality ที่แข็งแกร่งขึ้น

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

  • หากจำนวนการโหวตที่รวบรวมได้ ไม่ว่าจะเป็นบล็อคว่างหรือบล็อค X ไม่เกิน 2/3 ภายในเวลาที่กำหนด ให้รอไปเรื่อย ๆ จนกว่าจำนวนโหวตทั้งหมดจะเกิน 2/3

หลังจากรวบรวมได้มากกว่า 2/3 ของจำนวนโหวตทั้งหมด หากจำนวนโหวตสำหรับบล็อกว่างเกิน 2/3 ให้ทำการโหวตล่วงหน้าเป็นศูนย์เพื่อโหวตบล็อกว่างและยังคงอยู่ในวงกลมสีแดง ; ถ้าจำนวนการโหวตสำหรับ blockX เกิน 2/3 3. ส่งการโหวตล่วงหน้าไปที่ blockX และเปลี่ยนเป็นวงกลมรอบนอกสีน้ำเงิน หากจำนวนการโหวตสำหรับ blockX ที่ว่างเปล่าและ blockX ไม่เกิน 2/3 ให้ส่ง pre-vote ข้อความ nil เพื่อโหวตบล็อกว่างและเข้าสู่ขั้นตอน pre-commit ซึ่งยังอยู่ในวงกลมสีแดง


เมื่อ A ส่งข้อความการลงคะแนนล่วงหน้าเป็นศูนย์ A จะยังคงอยู่ในวงกลมสีแดง และกระบวนการก่อนการคอมมิตจะคล้ายกับข้างต้น สรุปแล้ว กระบวนการในวงกลมสีแดงจำเป็นต้องถือว่าเครือข่ายเป็นแบบกึ่งซิงโครนัส

วาระสุดท้ายและความมีชีวิตชีวา

ขั้นสุดท้ายของ Tendermint นั้นเป็นสิ่งที่กำหนดได้ ในขณะที่ Bitcoin นั้นน่าจะเป็นไปได้ Tendermint นั้นมีขั้นสุดท้ายที่แข็งแกร่งกว่า Bitcoin

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

กลไกการล็อค

  1. ในรูปด้านบน มีกลไกการล็อคโดยปริยาย ซึ่งไม่แสดงในรูป ตัวอย่างเช่น มีโหนดตัวตรวจสอบสี่โหนด A, B, C, D ในรอบ R ที่กำหนด

  2. ในขั้นตอนการเสนอ โหนดผู้เสนอจะออกอากาศบล็อกใหม่ blockX

  3. A ไม่ได้รับบล็อกใหม่ภายในช่วงหมดเวลา ออกอากาศการลงคะแนนล่วงหน้าเป็นศูนย์ไปยังภายนอก B, C และ D ได้รับทั้งหมด และออกอากาศการลงคะแนนล่วงหน้าไปยัง blockX

  4. ตอนนี้ 4 โหนดได้เข้าสู่ขั้นตอนก่อนการคอมมิตแล้ว โดย A อยู่ในวงในสีแดง B, C, D อยู่ในวงนอกสีน้ำเงิน

  5. สมมติว่า A มีเครือข่ายที่ไม่ดีและไม่ได้รับมากกว่า 2/3 โหวตสำหรับ blockX ภายในเวลาที่กำหนด จะสามารถส่งข้อความการลงคะแนนล่วงหน้าเป็นศูนย์เท่านั้นเพื่อลงคะแนนให้กับบล็อกที่ว่างเปล่า

  6. D ได้รับข้อความ pre-vote ของ B และ C รวมทั้งของเขาเอง มันเกิน 2/3 ดังนั้น D จึงส่ง blockX ใน blockchain ท้องถิ่น

  7. มีปัญหากับเครือข่ายของ B และ C และ D ไม่สามารถรับข้อความ pre-commit ได้ เนื่องจาก B และ C สามารถเห็นเพียง 2 โหวตสำหรับ blockX และ 1 โหวตสำหรับบล็อคว่างซึ่งน้อยกว่า 2/3 ดังนั้น B และ CC สามารถส่งได้เฉพาะบล็อกว่าง ความสูงไม่เปลี่ยนแปลง เข้าสู่รอบ R+1 A สามารถเห็นได้เพียง 2 โหวตสำหรับ blockX และ 1 โหวตสำหรับบล็อกว่าง และสามารถส่งได้เฉพาะบล็อกว่างเท่านั้น , ความสูงยังคงเท่าเดิม , เข้าสู่รอบ R+1


ในรอบ R+1 เนื่องจากมีผู้ขอความรักคนใหม่เสนอบล็อกใหม่ บล็อก Y, A, B และ C อาจบรรลุฉันทามติและส่งบล็อก Y ดังนั้นที่ระดับความสูงเดียวกันจึงมีสองบล็อก X และบล็อก Y ส่งผลให้เกิดทางแยก .

Tendermint ได้เพิ่มกลไกการล็อคโดยเฉพาะในขั้นตอนที่ 7 แม้ว่าผู้เสนอสร้างบล็อกใหม่ blockY, A, B และ C สามารถล็อคได้เฉพาะในบล็อก pre-commit ในขั้นตอนที่ 6 นั่นคือ A อยู่ในขั้นตอน 6 หากคุณโหวตบล็อกว่างในขั้นตอนที่ 1 คุณจะโหวตบล็อกว่างต่อไปได้ในรอบ R+1 และ B โหวตบล็อก X ในขั้นตอนที่ 6 จากนั้นในรอบใหม่ คุณจะโหวตได้เฉพาะบล็อก X ตลอดไป และ C มีความคล้ายคลึงกัน ด้วยวิธีนี้ ในรอบ R+1 จะมี 1 โหวตสำหรับบล็อกว่างและ 2 โหวตสำหรับบล็อก X และในที่สุดก็บรรลุฉันทามติในบล็อก X, A, B และ C ทั้งหมดจะยอมรับ blockX ซึ่งสอดคล้องกับ D และไม่มีความขัดแย้ง

เทนเดอร์มินต์ vs. pBFT

  • Tendermint และ pBFT ดูคล้ายกันมาก ตัวอย่างเช่น:

  • ทั้งหมดเป็นของอัลกอริทึมประเภท BFT ซึ่งทนได้ไม่เกิน 1/3 ของโหนดที่เป็นอันตราย

  • ทั้งหมดนี้เป็นการนำเสนอแบบสามขั้นตอน การเสนอของ Tendermint->การลงคะแนนเสียงล่วงหน้า->การแสดงความคิดเห็นล่วงหน้าสามขั้นตอนนั้นสอดคล้องกับสามขั้นตอนของ pBFT คือ การเตรียมตัวล่วงหน้า การจัดเตรียม และการกระทำ

เมื่อหมดเวลา ให้เปลี่ยนผู้เสนอ/ผู้หลัก

ไม่เพียงพอ Tendermint มีการทำให้ง่ายขึ้นสองแบบเมื่อเทียบกับ pBFT

Tendermint ไม่มีระยะ View Change ของ pBFT Tendermint รวมสถานการณ์การหมดเวลากับสถานการณ์ปกติเข้าเป็นรูปแบบเดียวอย่างชาญฉลาด ทั้งหมดอยู่ใน 3 ขั้นตอน เสนอ->ก่อนโหวต->ก่อนคอมมิต และมีเพียง บล็อกใหม่เท่านั้น ถูกสร้างขึ้นเมื่อหมดเวลา เป็นบล็อกว่างพิเศษ การสลับผู้เสนอจะทริกเกอร์โดยการส่งบล็อกคอมมิตที่ว่างเปล่า ในขณะที่ pBFT มีกระบวนการเปลี่ยนมุมมองแยกต่างหากเพื่อทริกเกอร์การหมุนเวียนหลัก

The state of each replica includes the state of the service, a message log containing messages the replica has accepted, and an integer denoting the replica’s current view. 

นอกเหนือจากการกำจัด View Change แล้ว Tendermint ยังทำให้ง่ายขึ้นในที่อื่นอีกด้วย ข้อมูล Tendermint ทั้งหมดจะถูกจัดเก็บไว้ในบล็อกเชน เนื่องจาก pBFT ถูกเสนอในปี 1999 จึงไม่มีสิ่งที่เรียกว่า blockchain ในเวลานั้น (blockchain ใช้งานได้หลังจาก Bitcoin เกิดขึ้นในปี 2009 เท่านั้น) ดังนั้นแม้ว่าโหนดทั้งหมดของ pBFT จะมีข้อมูลที่สอดคล้องกัน แต่ข้อมูลจะถูกจัดเก็บในลักษณะกระจายอำนาจ ข้อมูลของแต่ละโหนดของ pBFT ประกอบด้วย:

Blockchain เป็นฐานข้อมูลแบบกระจาย ตัวอย่างเช่น ก่อนที่ฐานข้อมูล DBMS เช่น MySQL จะปรากฏขึ้น ผู้คนเขียนข้อมูลลงในไฟล์และจัดเก็บไว้ในฮาร์ดดิสก์ ด้วย MySQL การจัดการข้อมูลจะสะดวกกว่ามาก ในทำนองเดียวกัน Tendermint เก็บข้อมูลทั้งหมดไว้ในบล็อกเชน pBFT ไม่มีฐานข้อมูลแบบกระจาย เช่น บล็อกเชน และโหนดแบบเต็มทั้งหมดจำเป็นต้องจัดการข้อมูลในฮาร์ดดิสก์ด้วยตัวเอง ตัวอย่างเช่น เพื่อบีบอัดบันทึกข้อความ ละทิ้งข้อความเก่า และประหยัดพื้นที่ฮาร์ดดิสก์ แนวคิด Checkpoint มีขั้นตอนที่ยุ่งยากมากมายในการจัดการข้อมูลเพียงอย่างเดียว

ความสัมพันธ์ระหว่าง Tendermint และ pBFT นั้นคล้ายคลึงกับความสัมพันธ์ระหว่าง Raft และ Paxos Tendermint เป็นเวอร์ชันที่เรียบง่ายของ pBFT ซึ่งเป็นเวอร์ชันที่เรียบง่ายของ pBFT สำหรับสถานการณ์บล็อกเชน

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

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

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

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

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


กลยุทธ์แบบวนรอบนั้นง่ายเกินไป และง่ายสำหรับผู้ร้ายที่จะคาดเดาว่าใครคือผู้ตรวจสอบความถูกต้องคนต่อไป เพื่อให้พวกเขาสามารถวางแผนล่วงหน้าและเริ่มการโจมตี DDoS หรือการโจมตีอื่น ๆ ต่อผู้ตรวจสอบความถูกต้อง เราควรทำอย่างไร วิธีแก้ปัญหาของ Tendermint คือการวางโหนดตัวตรวจสอบทั้งหมดไว้ด้านหลัง Sentry Node โดยไม่เปิดเผยที่อยู่ IP ต่อโลกภายนอก

ดำเนินการต่อ TODO


อ้างอิง

  1. Tendermint: Byzantine Fault Tolerance in the Age of Blockchains

  2. Tendermint: Consensus without mining

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