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

ทางเลือกแทน Beacon Chain: แบบจำลองขั้นสุดท้ายที่อิงตามคณะกรรมการสะสม

ECN以太坊中国
特邀专栏作者
บทความนี้มีประมาณ 3321 คำ การอ่านทั้งหมดใช้เวลาประมาณ 5 นาที
ทางเลือกในการสรุปห่วงโซ่บีคอนที่เร็วขึ้น
สรุปโดย AI
ทางเลือกในการสรุปห่วงโซ่บีคอนที่เร็วขึ้น


ที่มา | ethreear.ch

ผู้แต่ง | Vitalik Buterin

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

➤ ภายใต้สถานการณ์ปกติ ให้ความแน่นอนทางเศรษฐกิจช่องเดียวที่มีความหมาย (เช่น คุณสมบัติคล้าย Tendermint)

  • แม้ว่าผู้ตรวจสอบความถูกต้องส่วนใหญ่จะมีส่วนร่วมในการสมรู้ร่วมคิดเพื่อจัดระเบียบช่องเดียวใหม่ ค่าใช้จ่ายในการดำเนินการจะสูงกว่าที่เป็นอยู่มาก ซึ่งส่งผลให้ค่า Consensus-Extractable (CEV) ลดลง


➤ กำจัดการพึ่งพาตัวเลือกส้อม LMD GHOST สูง หลีกเลี่ยงข้อบกพร่องที่รู้จักเหล่านั้น และจำเป็นต้องแนะนำกฎการเลือกส้อมไฮบริดที่ซับซ้อนเพื่อแก้ไขข้อบกพร่องเหล่านี้

➤ ศักยภาพในการเปิดใช้งานขนาดเงินฝากขั้นต่ำที่ต่ำกว่าและจำนวนตัวตรวจสอบความถูกต้องที่สูงขึ้น

ความรู้เบื้องต้น




ความรู้เบื้องต้น

ให้ CONSENSUS เป็นอัลกอริธึมฉันทามติที่ปลอดภัยแบบ async (เช่น Tendermint, Casper FFG เป็นต้น) เราถือว่าอัลกอริทึมฉันทามติได้รับการออกแบบให้เกี่ยวข้องกับสล็อตและมุมมอง (มุมมองการดู) กล่าวคือ พยายามเข้าถึงฉันทามติทุกช่วงเวลาที่กำหนด เรายังสันนิษฐานว่ามันใช้เป็นอินพุตชุดตัวตรวจสอบความถูกต้อง (คุณสมบัติที่ง่ายต่อการเพิ่มในอัลกอริทึมที่สอดคล้องกันของ BFT ที่มีอยู่)

ในการออกแบบด้านล่าง เราได้ปรับเปลี่ยน CONSENSUS เพื่อให้ชุดของโปรแกรมตรวจสอบความถูกต้องที่จำเป็นในการทำให้เสร็จสมบูรณ์นั้นแตกต่างกันสำหรับการค้นหาแต่ละครั้ง นั่นคือ ใช้ CONSENSUS แทนชุดเครื่องมือตรวจสอบความถูกต้องเป็นอินพุตของฟังก์ชัน get_validator_set(view_number: int) -> แผนที่[Validator, int] (โดยที่ int แสดงถึงยอดคงเหลือของเครื่องมือตรวจสอบความถูกต้อง) ซึ่งสามารถสร้างมุมมองใหม่ มุมมองของเครื่องมือตรวจสอบความถูกต้อง ชุด . get_validator_set ควรมีคุณสมบัติที่ตัวตรวจสอบความถูกต้องตั้งค่าไว้แตกต่างกันมากสุด 1/r จากมุมมองหนึ่งไปยังอีกมุมมองหนึ่ง โดยที่ r (r=65536 ) คือระยะเวลาการกู้คืน เราหวังว่า:




ในหมู่พวกเขา |x| ส่งคืนผลรวมของค่าสัมบูรณ์ของค่า x และ diff ส่งคืนค่าหลังจากการลบค่าคีย์แต่ละค่า (เช่น diff({a: 0.1, b:0.2}, {b:0.1 , c:0.3}) = {a: 0.1, b: 0.1, c: -0.3})

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

โปรดทราบว่าฟังก์ชัน delta ชุดตัวตรวจสอบความถูกต้องสูงสุดที่ 1/r จะใช้งานได้ก็ต่อเมื่อตัวตรวจสอบความถูกต้องก่อนหน้านี้ยังไม่สิ้นสุด หากชุดเครื่องมือตรวจสอบก่อนหน้านี้ได้รับการสรุปแล้ว ตัวอย่างของ CONSENSUS จะเปลี่ยนไป ดังนั้นการสุ่มภายในของฟังก์ชัน get_validator_set ก็จะเปลี่ยนไปโดยสิ้นเชิง ในกรณีนี้ ชุดเครื่องมือตรวจสอบสองชุดที่อยู่ติดกันจะแตกต่างกันโดยสิ้นเชิง

กลไก




กลไก

เราใช้การเลือกส้อมสองระดับ:

➤ เลือก LATEST_FINALIZED_BLOCK (บล็อกสุดท้ายที่สรุปแล้ว)

➤ เริ่มต้นด้วย LATEST_FINALIZED_BLOCK ให้ใช้ตัวเลือกทางแยกอื่นๆ (เช่น LMD GHOST) เพื่อเลือกส่วนหัวของบล็อก

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

คำอธิบายภาพ



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

เรามีบทลงโทษดังต่อไปนี้:

➤ การลงโทษอย่างเจ็บแสบเป็นประจำกำหนดโดยอัลกอริทึมที่สอดคล้องกัน

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




ทางเลือก FFG: ยุคช่องเดียว Casper FFG

อีกทางเลือกหนึ่งนอกเหนือจากการออกแบบข้างต้นคือการใช้ Casper FFG แต่ทำให้ยุคนั้นเท่ากับความยาวของสล็อต Casper FFG ทำงานแตกต่างออกไปเนื่องจากไม่ได้พยายามขัดขวางคณะกรรมการชุดเดียวกันจากการปิดบล็อกและลำดับรองลงมา เพื่อรองรับความแตกต่างนี้ เราจำเป็นต้องบังคับใช้ (i) เกณฑ์ความปลอดภัยที่ 1/4 แทนที่จะเป็น 1/3 (ii) กฎที่ว่าหากสล็อตสิ้นสุด ชุดเครื่องมือตรวจสอบจะแทนที่มากที่สุด 1/4 แทนที่จะเป็นทั้งหมด

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




ลักษณะ

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

➤ มีบางอย่างผิดพลาดกับคณะกรรมการและผู้ตรวจสอบความถูกต้อง ≥1/3 ถูกตัดออกเนื่องจากการปิดบล็อกอีกสองครั้ง

➤ คณะกรรมการชุดล่าสุดอยู่ในสถานะออฟไลน์ และหลังจากสล็อต r/3 คณะกรรมการได้สับเปลี่ยนมากพอที่จะทำให้บล็อคอื่นเสร็จสิ้นโดยไม่ถูกเฉือน อย่างไรก็ตาม สิ่งนี้มาพร้อมกับบทลงโทษการก่อวินาศกรรมอย่างหนัก (≥1/3 ของความสมดุลของผู้โจมตี)

ไม่ว่าในกรณีใด การย้อนกลับบล็อกที่เสร็จสิ้นแล้วจะต้องมีอย่างน้อย DEPOSIT_SIZE * COMMITTEE_SIZE / 3 (จำนวนเงินฝาก * ขนาดคณะกรรมการ / 3) ETH ที่เผา หากเราตั้งค่า COMMITTEE_SIZE = 131,072 (จำนวนผู้ตรวจสอบความถูกต้องต่อสล็อตของคณะกรรมการ Eth2 สูงสุดตามทฤษฎีคือ 4 ล้านคน) ค่านี้จะเป็น 1,398,101 ETH

คุณสมบัติที่สำคัญอื่น ๆ ในโซลูชันประกอบด้วย:

➤ ไม่ว่าผู้ตรวจสอบความถูกต้องจะฝากเงินจำนวนเท่าใด โหลดเครื่องมือตรวจสอบความถูกต้องจะคงที่เมื่อประมวลผลธุรกรรม COMMITTEE_SIZE (ขนาดคณะกรรมการ) ต่อสล็อต

➤ ภาระงานของ Validator จะลดลง เนื่องจากพวกเขาสามารถเข้าสู่โหมดสลีปได้เมื่อไม่จำเป็นต้องเข้าร่วมคณะกรรมการ

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




Scaling: การยืนยันแบบลูกโซ่กับคณะกรรมการขนาดเล็ก

ถ้าเราต้องลด COMMITTEE_SIZE เพื่อประสิทธิภาพ เราสามารถทำการปรับเปลี่ยนดังต่อไปนี้:

➤ เราเปลี่ยนชื่อ "การสิ้นสุด" เป็น "การยืนยัน" เพื่อสะท้อนให้เห็นว่าการยืนยันเพียงครั้งเดียวไม่ได้แสดงถึงการสิ้นสุดที่แท้จริงอีกต่อไป

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

➤ get_validator_set ควรใช้เฉพาะข้อมูลสถานะ ไม่ใช่ COMMITTEE_LOOKAHEAD ก่อนการยืนยัน

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

โครงร่างนี้ยังคงคุณลักษณะข้างต้นไว้ทั้งหมด แต่ยังแนะนำคุณลักษณะใหม่: หากบล็อกได้รับการยืนยันหลายครั้ง (เช่น บล็อกได้รับการสรุป และบล็อกที่สืบทอดมาของเชนจะได้รับการยืนยัน k-1 เนื่องจากการยืนยันต่อเนื่องกันทั้งหมด k ครั้งจะ ส่งผลกระทบต่อบล็อก) แล้วการย้อนกลับบล็อกจำเป็นต้องละเมิดการรับรองฉันทามติในคณะกรรมการหลายชุด ซึ่งช่วยให้ระดับความปลอดภัยจากคณะกรรมการหลายชุดเพิ่มขึ้น การย้อนกลับ k การยืนยันต้องใช้ COMMITTEE_SIZE * DEPOSIT_SIZE * k / 3 ETH และต้องใช้ k = COMMITTEE_LOOKAHEAD เพื่อให้คณะกรรมการแยกจากกัน

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




ตัวอย่างของค่าเฉพาะ



โปรดทราบว่า "จำเป็นต้องใช้ ETH เพื่อทำลายขั้นสุดท้าย"จำนวนนี้ถือว่าผู้โจมตีควบคุมจำนวนผู้ตรวจสอบเทียบเท่ากับการควบคุมมากกว่าครึ่งหนึ่งของ ETH ที่วางเดิมพันทั้งหมด (เช่น ล้าน ETH) จำนวนนี้คือ ETH ที่ผู้โจมตีจะสูญเสีย แต่นี่ไม่ได้หมายความว่าใครก็ตามที่มี 2,730, 174,762 ETH สามารถย้อนกลับช่องเดียวได้โดยการเบิร์น ETH เหล่านี้แบบสุ่ม


ลิงค์ต้นฉบับ: https://ethresear.ch/t/a-model-for-cumulative- คณะกรรมการ-based-finality/10259


ETH
Vitalik
ยินดีต้อนรับเข้าร่วมชุมชนทางการของ Odaily
กลุ่มสมาชิก:
https://t.me/Odaily_News
กลุ่มสนทนา:
https://t.me/Odaily_GoldenApe
บัญชีทางการ:
https://twitter.com/OdailyChina
สารบัญบทความ
คลังบทความของผู้เขียน
ECN以太坊中国
อันดับบทความร้อน
Daily
Weekly
ดาวน์โหลดแอพ Odaily พลาเน็ตเดลี่
ให้คนบางกลุ่มเข้าใจ Web3.0 ก่อน
IOS
Android