ชื่อเรื่องเดิม: "Epochs, Slots and Beacon Blocks》
ผู้เขียน: แพทริก แมคคอร์รี
ชื่อเรื่องเดิม: "
ผู้เขียน: แพทริก แมคคอร์รี
แปลต้นฉบับ: จอห์น ECN
ความโดดเด่นของ Ethereum ที่ใช้ Proof-of-Stake อยู่ที่การออกแบบเพื่อเพิ่มจำนวนผู้เข้าร่วมให้ได้มากที่สุด ช่วยให้ผู้ตรวจสอบความถูกต้องหลายแสนคนมีส่วนร่วมอย่างแข็งขันในกระบวนการตัดสินใจ ในขณะที่เขียน มีหน่วยงานตรวจสอบประมาณครึ่งล้าน (จากมุมมองของโปรโตคอล) เข้าร่วมในกระบวนการนี้อย่างจริงจัง
ในความเป็นจริง ในเวลาประมาณ 384 วินาที (6 นาที 24 วินาที) ผู้ตรวจสอบความถูกต้องที่ใช้งานอยู่ทั้งหมดจะมีโอกาสลงคะแนนเสียงหรือเสนอบล็อก ข้อความอย่างน้อย 500,000 ข้อความถูกเผยแพร่ในเวลาประมาณ 384 วินาที และข้อความทั้งหมดจะต้องส่งภายในกรอบเวลาที่เข้มงวด เท่าที่ฉันทราบ ไม่มีโปรโตคอลฉันทามติอื่นใดที่ได้รับการออกแบบมาเพื่อจัดการกับผู้เข้าร่วมฉันทามติจำนวนมากเช่นนี้
เท่าที่เกี่ยวข้องกับแบบจำลองการสื่อสาร โปรโตคอลฉันทามติได้รับการออกแบบ (โดยปกติ) สำหรับหนึ่งในสามสถานการณ์:
การสื่อสารแบบซิงโครนัส ระยะหมดเวลาการส่งข้อความที่ตกลงโดยทั่วไปและทราบ
ไม่มีขอบเขตสูงสุดในระยะเวลาที่ข้อความการสื่อสารแบบอะซิงโครนัสสามารถส่งได้ แต่ข้อความนั้นจะถูกส่งในที่สุด
การสื่อสารแบบซิงโครนัสบางส่วนมีระยะหมดเวลาที่ทราบในกรณีส่วนใหญ่ แต่เหตุการณ์ที่เกิดขึ้นเป็นระยะๆ อาจรบกวนการส่งข้อความสำหรับระยะเวลาที่แตกต่างกัน
โปรโตคอลฉันทามติที่ทันสมัยส่วนใหญ่ได้รับการออกแบบมาสำหรับการสื่อสารแบบซิงโครนัสบางส่วน เนื่องจากถือว่าเงื่อนไขส่วนใหญ่ดี แต่มีช่วงเวลาที่คาดเดาไม่ได้เนื่องจากเหตุการณ์อาจรบกวนการสื่อสารในช่วงเวลาสั้นๆ ในทางกลับกัน เป็นที่น่าสังเกตว่า Ethereum แบบ Proof-of-stake ได้รับการออกแบบมาสำหรับการสื่อสารแบบซิงโครนัส
การพูดนอกเรื่อง -- Casper FFG ได้รับการออกแบบมาสำหรับการสื่อสารแบบซิงโครนัสบางส่วน แต่เงื่อนไขด้านเวลาที่เข้มงวดของ LMD-GHOST ทำให้ทั้งระบบต้องซิงโครนัส เราจะอธิบายว่า Casper และ LMD-GHOST คืออะไรในบทความหน้า
เพื่อให้เข้าใจรูปแบบการสื่อสารแบบซิงโครนัสได้ดียิ่งขึ้น เราจะกล่าวถึงหัวข้อยุคและสล็อต กำหนดเวลาที่ผู้ตรวจสอบความถูกต้องได้รับอนุญาตให้เข้าร่วม และกรอบเวลาที่เข้มงวดเกี่ยวกับการส่งข้อความ หากกรอบเวลาถูกละเมิด ไม่ว่าด้วยเหตุผลใดก็ตาม ไม่มีการรับประกันว่าตัวตรวจสอบความถูกต้องอื่นๆ จะดำเนินการเมื่อได้รับข้อความล่าช้า สุดท้าย เราจะพูดถึงวิธีการกำหนดตัวตรวจสอบความถูกต้องให้กับช่วงเวลาและวิธีการบันทึกข้อความในบล็อกเชนบีคอน
หากคุณต้องการเจาะลึกการตั้งค่าการสื่อสารต่างๆ ฉันขอแนะนำให้อ่านบทความนี้ นอกจากนี้ยังมีการอภิปรายที่ดีเกี่ยวกับว่า ETH 2 เป็นแบบซิงโครนัสบางส่วนหรือแบบซิงโครนัส
ยุคและสล็อต
การตีความหลักการทำงานของ Ethereum POS: Epoch, Slot และ Beacon Blocks
มี 32 ช่องต่อยุค และตัวตรวจสอบความถูกต้องแต่ละตัวจะได้รับหนึ่งช่องต่อยุค สล็อตคือกรอบเวลา 12 วินาทีในระหว่างที่ผู้ตรวจสอบความถูกต้องสามารถเข้าร่วมในโปรโตคอลการพิสูจน์การเดิมพัน เสนอหรือลงคะแนนให้กับบล็อกบีคอนใหม่
สล็อตถูกจัดกลุ่มตามยุค และยุคและสล็อตมีบทบาทในการกำหนดเวลาสำหรับผู้ตรวจสอบเพื่อเข้าร่วมในโปรโตคอลการพิสูจน์การเดิมพัน:
Epoch A ระยะเวลารวม 32 ช่อง
ช่องหน้าต่าง 12 วินาทีที่คณะกรรมการตรวจสอบความถูกต้องทำงานให้เสร็จสิ้น
ยุคแสดงถึงรอบที่สมบูรณ์ของโปรโตคอลการพิสูจน์การเดิมพัน และสล็อตเปิดโอกาสให้ผู้ตรวจสอบความถูกต้องเข้าร่วมในรอบนั้น เมื่อสิ้นสุดยุค ผู้ตรวจสอบความถูกต้องที่ใช้งานอยู่ทั้งหมดจะมีโอกาสเข้าร่วม
คณะกรรมการสล็อต ผู้ตรวจสอบความถูกต้องถูกกำหนดให้กับหนึ่งสล็อตในยุคหนึ่งๆ และตัวตรวจสอบความถูกต้องทั้งหมดจะถูกแจกจ่ายให้เท่าๆ กันในแต่ละสล็อตเพื่อจัดตั้งคณะกรรมการ
มีสองบทบาทในสล็อต:
ผู้เสนอบล็อค ผู้ตรวจสอบความถูกต้องมีโอกาสที่จะเสนอบล็อคต่อสมาชิกคณะกรรมการ
มีผู้เสนอบล็อก 32 รายต่อยุค (หนึ่งรายการต่อหนึ่งช่อง) และผู้ตรวจสอบความถูกต้องทั้งหมดมีโอกาสที่จะเข้าร่วมในโปรโตคอลการพิสูจน์การเดิมพัน โดยลงคะแนนเสียงสำหรับผู้นำกลุ่มที่พวกเขาเชื่อว่าควรเป็นห่วงโซ่บีคอนมาตรฐาน
การตีความหลักการทำงานของ Ethereum POS: Epoch, Slot และ Beacon Blocks
สล็อตแสดงถึงกรอบเวลาที่เข้มงวดสำหรับผู้ตรวจสอบความถูกต้องในการเสนอบล็อค สมาชิกคณะกรรมการลงคะแนนให้กับบล็อค และท้ายที่สุด ถ่ายทอดกิจกรรมทั้งหมดในช่องนั้นไปยังผู้เสนอบล็อคของสล็อตถัดไป
เงื่อนไขสล็อตและเวลา สล็อตทั้งหมดถูกสร้างขึ้นตามลำดับเวลา แต่ละช่องจะถูกจัดสรรทุก ๆ 12 วินาที และแบ่งออกเป็นสามช่วง:
การเสนอบล็อกระบุว่าผู้ตรวจสอบความถูกต้องเสนอบล็อกและถ่ายทอดให้สมาชิกคณะกรรมการทุกคนทราบภายใน 4 วินาทีแรก
สมาชิกของคณะกรรมการอื่นทั้งหมดลงคะแนน (เป็นพยาน) สำหรับการบล็อกในรอบการลงคะแนน และพวกเขาเชื่อว่าการลงคะแนนของพวกเขาจะได้รับการยอมรับโดยการบล็อกนี้ภายในสี่วินาทีถัดไป
การลงคะแนนออกอากาศ การลงคะแนนเสียงของสมาชิกคณะกรรมการทั้งหมดในช่วงสี่วินาทีสุดท้ายควรได้รับการรวบรวมและส่งไปยังผู้เสนอบล็อกสำหรับช่องถัดไป
หากมีการเผยแพร่บล็อกหรือพยานที่เสนอหลังกำหนดเส้นตาย ไม่มีการรับประกันว่ากิจกรรมจะได้รับการรับรองโดยผู้ตรวจสอบความถูกต้องคนอื่นๆ ตัวอย่างเช่น การบล็อกช่วงหลังอาจถูกข้ามไปเนื่องจากพยานในช่องนั้นอาจลงคะแนนให้บล็อกหลักไปแล้ว พยานที่มาสายจะถูกดำเนินการโดยพยานคนอื่นๆ ในหนึ่งยุค สูงสุด 32 ช่องที่ล่าช้า โดยมีบทลงโทษที่แตกต่างกันไป หากมีการเผยแพร่หลังจาก 32 ช่อง ก็จะไม่ถูกดำเนินการโดยตัวตรวจสอบใดๆ
เพื่อเป็นการเตือนครั้งสุดท้าย หน้าต่างเวลาที่เข้มงวดนี้รับประกันขอบเขตที่ต่ำกว่าของแบนด์วิธและพลังการประมวลผลที่จำเป็นในการเรียกใช้ตัวตรวจสอบความถูกต้อง เนื่องจากต้องสามารถรับ ประมวลผล และส่งพยาน/บล็อกได้ทันเวลา
ชื่อระดับแรก
การจัดสรรคณะกรรมการตรวจสอบความถูกต้อง
เราพิจารณากระบวนการกำหนดตัวตรวจสอบความถูกต้องให้กับสล็อตในยุคหนึ่งๆ คณะกรรมการสล็อตทั้งหมดมีขนาดใกล้เคียงกันโดยประมาณ พวกเขาทำการมอบหมายตามเอาต์พุตของบีคอนแบบสุ่มและทำล่วงหน้าสองยุค สิ่งนี้ต้องใช้โปรโตคอลการสับและแหล่งที่มาของการสุ่มด้วยการส่งสัญญาณ
Shuffle Protocol ตัวตรวจสอบความถูกต้องทั้งหมดถูกกำหนดให้กับสล็อตตามโปรโตคอล swap-or-not shuffle แทนที่จะลงรายละเอียดเกี่ยวกับโปรโตคอลการสับเปลี่ยน เราจะมุ่งเน้นไปที่วิธีการคำนวณของบีคอนแบบสุ่ม ซึ่งเป็นการวางรากฐานสำหรับวิธีการดำเนินการของโปรโตคอลการสับเปลี่ยน
สัญญาณสุ่ม ตัวตรวจสอบความถูกต้องทั้งหมดถูกกำหนดผ่านสัญญาณสุ่มโดยใช้โปรโตคอลที่เรียกว่า RANDAO จุดประสงค์คือเพื่อสร้างบีคอนแบบสุ่มโดยการรวมการสุ่มเมื่อมีการเพิ่มบล็อกใหม่ลงในเชนบัญญัติ
สำหรับแต่ละบล็อกใหม่ มีสองขั้นตอน:
การสุ่มที่เสนอให้สร้าง (ต่อบล็อก) บล็อกบีคอนใหม่มีค่าพิเศษที่เรียกว่า randao_reveal เป็นลายเซ็น BLS ของผู้เสนอบล็อกที่ทำหน้าที่เป็นสัญญาณสุ่มสำหรับบล็อก การป้องกันการแก้ไขโดยผู้ตรวจสอบเป็นสิ่งที่กำหนดขึ้นได้ แต่ไม่สามารถคาดเดาได้
อย่างที่เราเห็น บล็อกบีคอนแต่ละบล็อกมีบีคอนแบบสุ่ม เพิ่มและรวมการสุ่มของบล็อกก่อนหน้าทั้งหมด
การตีความหลักการทำงานของ Ethereum POS: Epoch, Slot และ Beacon Blocks
ผู้ตรวจสอบถูกกำหนดให้กับช่องของ N+2 Epoch ผ่านสัญญาณสุ่มสุดท้ายของ Nth Epoch
/* * ผู้เสนอบล็อกทำลายเซ็น BLS บนหมายเลขยุคปัจจุบัน * เพื่อทำหน้าที่เป็นสัญญาณเตือนแบบสุ่มสำหรับบล็อกนี้ * ข้อดีคือลายเซ็นถูกกำหนดขึ้น (ผู้ตรวจสอบไม่สามารถยุ่งเกี่ยวกับมันได้) แต่จนกว่าลายเซ็นจะถูกกำหนด คำนวณออกมาแล้วคาดเดาไม่ได้*/
DOMAIN_RANDAO = 0x 02000000; // หมายเลขวิเศษที่มีอยู่ในลายเซ็น epoch_hash = hash(current_epoch_number, DOMAIN_RANDAO); // รหัสแฮชที่จะลงนาม randao_reveal = BLS.sign(epoch_hash, sk); // ลายเซ็น BLS คือ RANDAO
/* * ใช้การสุ่มของบล็อก ทำการคำนวณแฮช แล้วผสมรหัสแฮชเข้ากับการสุ่มที่รวบรวมได้ */
Previous_mix = get_previous_mix(parent_block); // ผสมจากบล็อกหลัก (ผสม) randao_reveal = new_block.randao_reveal; // รับ randao ของบล็อกใหม่
มิกซ์ = แฮช XOR ก่อนหน้า (randao_reveal); // คำนวณมิกซ์ใหม่ store_new_mix (new_block); // เชื่อมโยง "มิกซ์" ใหม่ (มิกซ์) กับบล็อกใหม่
การจัดสรรจะเกิดขึ้นล่วงหน้า 2 ยุคและผู้ตรวจสอบความถูกต้องทั้งหมดจะใช้ค่าผสมที่รวบรวมจากบล็อกที่ยอมรับล่าสุดเป็นบีคอนแบบสุ่มและใช้ในอัลกอริทึมการสุ่ม มันคำนวณคณะกรรมการตรวจสอบสำหรับสองยุคถัดไป
ดังนั้น หากเราพิจารณาว่ายุคปัจจุบันคือยุคที่ N บล็อกบีคอนสุดท้ายในยุคนี้จะถูกใช้เป็นบีคอนแบบสุ่มเพื่อกำหนดการจัดสรรคณะกรรมการสำหรับยุค N+2
ผู้ตรวจสอบความถูกต้องมีเวลามากมายในการค้นหาช่วงที่กำหนด เนื่องจากพวกเขารู้ล่วงหน้าสองยุค กล่าวอีกนัยหนึ่ง การจัดสรรผู้ตรวจสอบความถูกต้องสำหรับ 64 ช่องในอนาคตนั้นเป็นที่รู้จักของสาธารณชนแล้ว (ประมาณ 2 ยุค)
ความสามารถเชิงอคติของบีคอนแบบสุ่มคือสามารถใช้การผสมได้เพียงหนึ่งรายการโดยโปรโตคอลการสับเปลี่ยน และนั่นคือค่าการผสมของบล็อกที่ยอมรับล่าสุดในยุคหนึ่งๆ
บล็อกที่ยอมรับล่าสุดจะไม่ใช่บล็อกที่เสนอในช่อง 32 เสมอไป เป็นบล็อกของช่องสุดท้าย นั่นคือบล็อกที่ได้รับการยอมรับว่าเป็นหัวหน้าของบล็อกเชนโดยผู้ตรวจสอบทั้งหมด ตัวอย่างเช่น หากไม่มีการเสนอบล็อคสำหรับสล็อต 32 (หรือมาช้า) คณะกรรมการผู้ตรวจสอบความถูกต้องสำหรับสล็อต 32 จะลงคะแนนให้กับบล็อคก่อนหน้าที่เสนอสำหรับสล็อต 31
ผู้โจมตีสามารถใช้ประโยชน์จากสิ่งนี้เพื่อโน้มน้าวบีคอนแบบสุ่ม สมมติว่าผู้โจมตีเป็นผู้เสนอบล็อกของสล็อต 32 เขาสามารถตัดสินใจ:
โดยการระงับบล็อกที่บังคับให้ผู้ตรวจสอบความถูกต้องทั้งหมดลงคะแนนให้กับบล็อกก่อนหน้า การสุ่มของผู้โจมตีจะไม่รวมอยู่ในสัญญาณ
อำนาจในการตัดสินใจนี้ทำให้ผู้โจมตีสามารถกำหนดอคติบีคอนแบบสุ่มได้ 1 ไบต์ และท้ายที่สุดจะกำหนดว่าจะใช้ตัวตรวจสอบความถูกต้องใดจากสองรายการในอนาคต ในความเป็นจริง หากผู้โจมตีควบคุมผู้เสนอบล็อคของ N บล็อคสุดท้ายในยุคนั้น พวกเขาสามารถใช้โอกาสนี้เพื่อปลดหรือระงับการปลดบล็อค N รวมกัน ขณะนี้ยังขาดการศึกษาอย่างเข้มงวดเพื่อทำความเข้าใจขอบเขตทั้งหมดและผลกระทบของพลังงานอคติสำหรับช่อง N สุดท้าย
การตีความหลักการทำงานของ Ethereum POS: Epoch, Slot และ Beacon Blocks
คำอธิบายภาพ
การตีความหลักการทำงานของ Ethereum POS: Epoch, Slot และ Beacon Blocks
คำอธิบายภาพ
การตีความหลักการทำงานของ Ethereum POS: Epoch, Slot และ Beacon Blocks
คำอธิบายภาพ
ตัวตรวจสอบความถูกต้องของยุคและองค์กรช่องสร้างบล็อกเชนบีคอนมาตรฐานเดียว
สล็อต ≠ บล็อกบีคอน บล็อกบีคอนบันทึกข้อมูลเมตาของหมายเลขสล็อต ช่วยให้ตัวตรวจสอบความถูกต้องอื่น ๆ สามารถตรวจสอบได้ว่าผู้เสนอบล็อกถูกกำหนดให้เสนอบล็อกสำหรับสล็อตนี้จริง ๆ และบล็อกนี้เป็นบล็อกที่เสนอ หากหมายเลขช่องไม่ถูกต้อง บล็อกจะถูกปฏิเสธ
ประเด็นคือตำแหน่งของบล็อกในบล็อกเชนไม่ตรงกับหมายเลขสล็อตที่เสนอ ตัวอย่างเช่น หากเราตรวจสอบช่อง 5184157 เราจะเห็นบล็อก 16015362 ไม่สามารถหลีกเลี่ยงความไม่ตรงกันนี้ได้เนื่องจากไม่มีการรับประกันว่าบล็อกที่เสนอในช่องที่กำหนดจะได้รับการยอมรับจากบล็อกอื่นๆ ทั้งหมด Validators ลงคะแนน และ Ethereum กำลังทำงานอยู่ เป็นเวลากว่า 7 ปีนับตั้งแต่ก่อตั้ง
ผู้เสนอบล็อคข้อมูลห่วงโซ่การดำเนินการจะเสนอสองบล็อค พวกเขาเสนอบล็อคการดำเนินการ สั่งธุรกรรมของผู้ใช้ และแนบกับบล็อคบีคอนที่สร้างขึ้นใหม่ สิ่งนี้ไม่น่าแปลกใจเนื่องจากจุดประสงค์สูงสุดของเลเยอร์ฉันทามติคือการกำหนดห่วงโซ่มาตรฐานสำหรับเลเยอร์การบังคับใช้
ผู้เสนอบล็อกมีหน้าที่รับผิดชอบในการถ่ายโอนข้อมูลจาก Executive Layer ไปยัง Beacon Layer และทำให้พร้อมใช้งานโดยโปรโตคอล Proof-of-Stake ซึ่งรวมถึง:
ข้อมูล ETH 1 รหัสแฮชบล็อกของบล็อกเพิ่มเติมจากชั้นการดำเนินการ
Deposit ที่อยู่ของสัญญาเงินฝากและห่วงโซ่ของเงินฝากที่ไม่ได้บันทึกไว้
สิ่งนี้ต้องการตัวตรวจสอบความถูกต้องทั้งหมดเพื่อเรียกใช้ไคลเอนต์บีคอนและไคลเอ็นต์การบังคับใช้ สิ่งนี้จำเป็นเนื่องจากตัวตรวจสอบความถูกต้องต้องตรวจสอบบล็อก ETH 1 ที่สอดคล้องกันและตรวจสอบความถูกต้องตามกฎของเลเยอร์การบังคับใช้ นอกจากนี้ ตามที่เราได้กล่าวถึงในบทความของเราเกี่ยวกับขั้นตอนการลงทะเบียน เงินฝากจะต้องถูกโอนจากชั้นการดำเนินการไปยังบล็อกบีคอนภายในช่วงเวลาบล็อกที่กำหนด มิฉะนั้นบล็อกบีคอนจะถูกปฏิเสธ
หมายเลขสล็อตข้อมูลเมตา หมายเลขยุค สัญญาณสุ่ม และผู้เสนอบล็อก
เหตุการณ์ที่ถูกสแลชรวมถึงหลักฐานของพฤติกรรมที่เป็นอันตรายโดยผู้ตรวจสอบความถูกต้องคนอื่นๆ ซึ่งสามารถใช้เพื่อลงโทษพวกเขาได้
ประวัติการโหวต รายชื่อการโหวตที่ไม่ได้บันทึกไว้บน blockchain fork นี้สำหรับบล็อกบีคอนที่เสนอไปก่อนหน้านี้
Blockchain fork ซึ่งเลือกบล็อกหลักและกำหนดสายมาตรฐานที่ขยายจากบล็อกนี้
โดยการบันทึกสำเนา ทุกคนสามารถตรวจสอบข้อตกลงทั้งหมดได้อย่างอิสระและมั่นใจอย่างยิ่งว่าสถานะปัจจุบันของห่วงโซ่บีคอนนั้นถูกต้อง ตัวอย่างเช่น ผู้ตรวจสอบที่ประสงค์ร้ายจะถูกลดเวลา และกำหนดการของช่วงเวลาและช่วงเวลาจะได้รับการอนุมัติจากผู้ตรวจสอบทั้งหมด ผู้ตรวจสอบส่วนใหญ่จะลงคะแนนด้วยวิธีนี้และสร้างสายมาตรฐานเดียว
