Scaling Consensus for Enterprise: การอธิบายอัลกอริทึม IBFT

บล็อก 1NewsDevelopersEnterpriseBlockchain ExplainedEvents and ConferencesPressจดหมายข่าว

สมัครรับจดหมายข่าวของเรา.

ที่อยู่อีเมล

เราเคารพความเป็นส่วนตัวของคุณ

หน้าแรกบล็อก Enterprise Blockchain

Scaling Consensus for Enterprise: การอธิบายอัลกอริทึม IBFT

วิธีที่ Istanbul Byzantine Fault Tolerance (IBFT) ช่วยเพิ่มความสามารถในการสิ้นสุดและเพิ่มปริมาณงานในเครือข่าย Ethereum ส่วนตัวโดย ConsenSys มิถุนายน 22, 2018 โพสต์เมื่อมิถุนายน 22, 2018

ConsenSys ฮีโร่ Ethereum

อัลกอริธึม Consensus เป็นหนึ่งในนวัตกรรมหลักของบล็อกเชนและยังเป็นหนึ่งในนวัตกรรมที่สับสนที่สุด Satoshi Nakamoto ได้สร้างเวอร์ชันของ Proof of Work (PoW) ที่ใช้เป็นวิธีการรักษาความปลอดภัยและตรวจสอบธุรกรรม Bitcoin ไปพร้อม ๆ กัน ชุมชนบล็อกเชนได้สร้างขึ้นจากวิสัยทัศน์หลักดังกล่าวเพื่อสร้างซุปตัวอักษรของ Proof of Stake (PoS), Proof of Authority (PoA), PBFT (Practical Byzantine Fault Tolerant) และอื่น ๆ อีกมากมายที่ออกแบบมาเพื่อสร้างฉันทามติในแบบกระจาย ระบบสร้างแหล่งความจริงเดียวที่ทำให้ blockchain มีค่ามาก.

IBFT (Istanbul Byzantine Fault Tolerant) เป็นกลไกฉันทามติซึ่งเป็นอีกทางเลือกหนึ่งสำหรับ Proof of Work ในเครือข่าย Ethereum เช่นเดียวกับอัลกอริธึมอื่น ๆ IBFT รับประกันการสั่งซื้อธุรกรรมในบล็อกเชนแบบเดียวที่ตกลงกันและให้สิทธิประโยชน์เพิ่มเติมสำหรับองค์กรรวมถึงการสิ้นสุดการชำระบัญชี IBFT คือ นำมาใช้ครั้งแรกใน Geth โดย Amis Technologies, และไม่นานหลังจากนำไปใช้ในโควรัม.

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

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

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

เมื่อพิจารณาถึงการแลกเปลี่ยนเหล่านี้ Proof of Authority (PoA) กลายเป็นทางออกที่ดีที่สุดโดยใช้ระบบโดยโหนดในเครือข่ายจะได้รับสิทธิพิเศษในการผลิตบล็อกใหม่สำหรับห่วงโซ่โดยใช้ Round-robin หรือระบบอื่น ๆ โดยพลการ.

IBFT เป็นหนึ่งในรสชาติที่หลากหลายของ PoA และให้ประโยชน์ดังต่อไปนี้:

  • ปิดกั้นทันที. มีการเสนอเพียง 1 บล็อกที่ความสูงของโซ่ที่กำหนด ดังนั้นโซ่เส้นเดียวจึงกำจัดฟอร์กบล็อคลุงและความเสี่ยงที่ธุรกรรมอาจถูก “ยกเลิก” หนึ่งครั้งบนโซ่ในเวลาต่อมา.
  • ลดเวลาระหว่างบล็อก. ความพยายามที่จำเป็นในการสร้างและตรวจสอบความถูกต้องของบล็อกลดลงอย่างมีนัยสำคัญ (โดยเฉพาะในส่วนที่เกี่ยวกับ PoW) ทำให้ปริมาณงานของโซ่เพิ่มขึ้นอย่างมาก.
  • ความสมบูรณ์ของข้อมูลสูงและความทนทานต่อข้อผิดพลาด. IBFT ใช้กลุ่มผู้ตรวจสอบความถูกต้องเพื่อรับรองความสมบูรณ์ของแต่ละบล็อกที่เสนอ ผู้ตรวจสอบความถูกต้องส่วนใหญ่ (~ 66%) เหล่านี้จะต้องลงนามในบล็อกก่อนที่จะแทรกเข้ากับโซ่ทำให้การปลอมแปลงบล็อกทำได้ยากมาก “ความเป็นผู้นำ” ของกลุ่มยังหมุนไปตามกาลเวลา – เพื่อให้แน่ใจว่าโหนดที่ผิดพลาดจะไม่สามารถมีอิทธิพลในระยะยาวเหนือห่วงโซ่ได้.
  • มีความยืดหยุ่นในการใช้งาน. กลุ่มของตัวตรวจสอบความถูกต้องสามารถแก้ไขได้ทันเวลาเพื่อให้แน่ใจว่ากลุ่มมีเฉพาะโหนดที่เชื่อถือได้เต็มรูปแบบ.

ที่นี่เราให้ภาพรวมของ IBFT โดยส่วนใหญ่ไม่ใช่คำศัพท์ทางเทคนิค สำหรับข้อเสนอดั้งเดิมของ IBFT คุณสามารถตรวจสอบ EIP บน GitHub:

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


หมายเหตุ: รหัส IBFT สามารถพบได้ในคำขอดึง go-ethereum # 16385.

การดำเนินการ

กลไกฉันทามติของ IBFT ประกอบด้วยองค์ประกอบต่อไปนี้:

  1. PBFT แบบจำลองฉันทามติของกลุ่มที่ได้รับแรงบันดาลใจ.
  2. กระบวนการที่สามารถเพิ่ม / ลบสมาชิกออกจากกลุ่มที่ตรวจสอบความถูกต้อง.

IBFT กำหนดให้ส่วนหัวของบล็อกต้องทำใหม่ (อย่างละเอียด) เพื่อรองรับทุกแง่มุมของความสามารถ.

แบบจำลองฉันทามติของกลุ่ม

ภาพรวม

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

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

เมื่อเสร็จสิ้นรอบฉันทามติผู้ตรวจสอบอาจเลือกผู้เสนอรายใหม่ซึ่งจะรับผิดชอบในการจัดหาบล็อกผู้สมัครในช่วงบล็อกถัดไป.

กลไกฉันทามติเป็นเครื่องสถานะที่ซิงโครไนซ์ซึ่งมีหน้าที่ในการตรวจสอบให้แน่ใจว่าผู้ตรวจสอบทั้งหมดต่อท้ายบล็อกเดียวกันกับโซ่ที่ความสูงเท่ากัน.

หากแทรกบล็อกไม่สำเร็จผู้เสนอจะเปลี่ยนไปและกระบวนการจะเริ่มต้นใหม่.

เพื่อให้แน่ใจว่าสามารถผนวกบล็อกเดียวเข้ากับเครื่องของรัฐได้ IBFT จะป้องกันไม่ให้เปลี่ยนบล็อกที่เสนอเมื่อผู้ตรวจสอบความถูกต้องส่วนใหญ่เห็นด้วยกับการแทรก (แต่ไม่ได้ดำเนินการดังกล่าว) กระบวนการนี้เรียกว่า “Block Locking”.

กลไกฉันทามติ IBFT นำเสนอความเสถียรของระบบหากโหนดที่ตรวจสอบความถูกต้องน้อยกว่า 1/3 ทำงานไม่ถูกต้อง (อาจเกิดจากการบุกรุกหรือเนื่องจากรหัสผิดพลาด) นั่นคือ ในการทนต่อโหนดที่ผิดพลาด F กลุ่มการตรวจสอบต้องมีอย่างน้อย 3F + 1 โหนด (มากกว่านี้จะไม่เพิ่มความสมบูรณ์ของระบบ).

หมายเหตุ: ในที่นี้ F หมายถึงจำนวนโหนดที่ผิดพลาดที่ระบบยอมรับได้.

สเตทแมชชีน

เครื่องรัฐ IBFT

รัฐ
  • กำลังรอข้อเสนอ. Validator กำลังรอบล็อกใหม่ที่จะจัดหาโดยผู้เสนอปัจจุบัน หากผู้ตรวจสอบความถูกต้องเป็นผู้เสนอสำหรับรอบนี้พวกเขาจะเตรียมบล็อกที่เสนอและส่งไปในข้อความที่เตรียมไว้ล่วงหน้า.
  • เตรียม. ได้รับบล็อกที่เสนอ (ถูกต้อง) และแจ้งผู้ตรวจสอบความถูกต้อง ขณะนี้กำลังรอให้ validator-peers แจ้งการยอมรับการบล็อก.
  • พร้อม. ได้รับการยอมรับการบล็อกของ validator-peer และกำลังรอให้พวกเขาอยู่ในตำแหน่งที่ใกล้เคียงกัน ในขั้นตอนนี้บล็อกที่เสนอถูก “ล็อก” และไม่สามารถแทนที่ได้จนกว่าจะมีการพยายามแทรก.
  • รอบเปลี่ยน. รอบหมดเวลาก่อนถึงฉันทามติหรือแทรกบล็อกไม่สำเร็จ รอให้ผู้ตรวจสอบทั้งหมดเห็นด้วยกับหมายเลขรอบถัดไป.
การเปลี่ยน
  1. กำลังรอข้อเสนอ→กำลังเตรียม. เมื่อรับบล็อกใหม่ (ข้อความ Preprepare) จากผู้เสนอ (เช่นบล็อกนั้นถูกต้องในเนื้อหาเช่นเดียวกับจุดแทรกโซ่ที่เสนอ).
  2. กำลังรอข้อเสนอ→การเปลี่ยนแปลงรอบ. ข้อเสนอที่ได้รับไม่ใช่การบล็อกที่ถูกต้องตามชุดของกฎที่กำหนด (เช่นข้อเสนอที่ไม่ถูกต้องหมายเลขรอบไม่ถูกต้อง).
  3. กำลังเตรียม→พร้อม. เมื่อรับการแจ้งเตือน 2F + 1 (เตรียมข้อความ) จากผู้ตรวจสอบความถูกต้องระบุว่าบล็อกที่เสนอเหมาะสำหรับการแทรก.
  4. พร้อม→รอข้อเสนอ. เมื่อรับการแจ้งเตือน 2F + 1 (ข้อความคอมมิต) จากผู้ตรวจสอบความถูกต้องระบุว่าพวกเขาพร้อมที่จะต่อท้ายบล็อกเข้ากับห่วงโซ่ ในการเปลี่ยนแปลงขั้นตอนการต่อท้ายบล็อกเข้ากับห่วงโซ่จะดำเนินการ (สำเร็จ).
  5. พร้อม→เปลี่ยนรอบ. ตามความพร้อม->อย่างไรก็ตามกำลังรอข้อเสนอการแทรกบล็อกล้มเหลว.
  6. การเปลี่ยนแปลงรอบ→กำลังรอข้อเสนอ. 2F + 1 ของผู้ตรวจสอบความถูกต้องตกลงเกี่ยวกับหมายเลขรอบถัดไปที่จะใช้.

หมายเหตุ: การเปลี่ยนเป็น “RoundChange” ทั้งหมดส่งผลให้ Validator ส่งข้อความ “RoundChange” ไปยังเครื่องตรวจสอบความถูกต้อง.

บล็อกการล็อค

IBFT กำหนดว่าห้ามสร้างส้อม ด้วยเหตุนี้เมื่อส่วนใหญ่ตกลงกันการบล็อก (เช่นเมื่อเข้าสู่สถานะพร้อม) จะกลายเป็น “ล็อก”.

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

การเป็นสมาชิกกลุ่มตรวจสอบ

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

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

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

เมื่อโหนดได้คะแนนเสียงข้างมากพวกเขาจะเข้าร่วม / ออกจากกลุ่ม validator ทันที.

IBFT ยอมรับยุคการลงคะแนนเสียงซึ่งกำหนดจุดที่คะแนนเสียงทั้งหมดที่ยังไม่ถึงเสียงข้างมากจะถูกลบออกโดยบังคับให้เริ่มการนับคะแนนใหม่ ซึ่งหมายความว่าเมื่อทำการนับคะแนนผู้ตรวจสอบต้องเริ่มต้นในยุคล่าสุดเท่านั้น ตามค่าเริ่มต้น Voting Epoch จะเกิดขึ้นทุกๆ 30,000 ช่วงตึก.

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

บล็อกส่วนหัว Refactor

ในการรองรับ IBFT ใน Ethereum จะต้องทำการเปลี่ยนแปลงหลายอย่างกับส่วนหัวของบล็อก การเปลี่ยนแปลงเหล่านี้ ได้แก่ :

  • ผู้รับผลประโยชน์: ระบุโหนดที่มีการลงคะแนน.
  • nonce: ระบุการโหวต “ทิศทาง” – AUTH หรือ DROP.
  • mixHash: เลขวิเศษผสมระบุบล็อกนี้ว่าได้รับการตรวจสอบความถูกต้องของ IBFT.
  • ommersHash: ต้องเป็นแฮชของเซตว่างเนื่องจากไม่มีบล็อก ommer เมื่อทำงานภายใต้ IBFT.
  • การประทับเวลา: อย่างน้อยต้องเป็นเวลา + ช่วงเวลาบล็อกของบล็อกหลัก.
  • ความยาก: ต้องเติมด้วย 0x0000000000000001.
  • extraData: มีข้อมูลเฉพาะ IBFT รวมถึงรายการที่อยู่ของผู้ตรวจสอบ, ProposerSeal (ระบุผู้เสนอ), CommittingSeals (รายชื่อผู้ตรวจสอบที่รายงานว่า “กระทำ” ในบล็อกนี้).

เนื่องจากรายการ CommittingSeals สำหรับตัวตรวจสอบความถูกต้องแต่ละตัว (อาจ) แตกต่างกันจึงเป็นสิ่งสำคัญที่แฮชของบล็อกจะต้องไม่รวมข้อมูลนี้นั่นคือแม้ว่าสองบล็อกจะมีฟิลด์ CommittingSeals ที่แตกต่างกัน แต่ก็แสดงถึงข้อมูลเดียวกัน (เช่นธุรกรรม ฯลฯ เหมือนกัน).

สรุป

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

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

กระบวนการที่สำรวจในบทความนี้ให้ความมั่นใจว่าเครือข่ายที่ใช้ IBFT จะสามารถทนต่อโหนดไบแซนไทน์ได้และสามารถกู้คืนได้หากเห็นว่าโหนดเหล่านั้นพยายามควบคุมเครือข่าย.

จดหมายข่าวสมัครรับจดหมายข่าวของเราเพื่อรับข่าวสารล่าสุดของ Ethereum โซลูชันระดับองค์กรทรัพยากรสำหรับนักพัฒนาและอื่น ๆ ที่อยู่อีเมลเนื้อหาพิเศษคู่มือฉบับสมบูรณ์สำหรับเครือข่ายธุรกิจ Blockchainคู่มือ

คู่มือฉบับสมบูรณ์สำหรับเครือข่ายธุรกิจ Blockchain

รู้เบื้องต้นเกี่ยวกับ Tokenizationการสัมมนาผ่านเว็บ

รู้เบื้องต้นเกี่ยวกับ Tokenization

อนาคตของการเงินสินทรัพย์ดิจิทัลและ DeFiการสัมมนาผ่านเว็บ

อนาคตของการเงิน: สินทรัพย์ดิจิทัลและ DeFi

Enterprise Ethereum คืออะไรการสัมมนาผ่านเว็บ

Enterprise Ethereum คืออะไร?

ธนาคารกลางและอนาคตของเงินกระดาษสีขาว

ธนาคารกลางและอนาคตของเงิน

Komgo Blockchain สำหรับการเงินการค้าสินค้าโภคภัณฑ์กรณีสตั๊ด

Komgo: Blockchain สำหรับการเงินการค้าสินค้าโภคภัณฑ์

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map