ความคิดเห็น: ETH 2.0 เป็นรูปแบบหนึ่งของ Rollup
หมายเหตุบรรณาธิการ: บทความนี้มาจากผู้ที่ชื่นชอบ Ethereum (ID: ethfans)หมายเหตุบรรณาธิการ: บทความนี้มาจาก
ผู้ที่ชื่นชอบ Ethereum (ID: ethfans)
ผู้เขียน: lightclient แปลและพิสูจน์อักษร: Min Min & A Jian ทำซ้ำโดย Odaily โดยได้รับอนุญาต
เมื่อเราเปลี่ยนไปใช้กระบวนทัศน์การปรับสเกลใหม่ เป็นแนวปฏิบัติที่ดีที่จะย้อนกลับไปดูสิ่งเก่าที่ถูกละทิ้งไป
โพสต์นี้มีจุดมุ่งหมายเพื่อสร้างความมั่นใจให้กับผู้อ่านว่าวิธีการแบบ "รวมศูนย์" ไม่ได้เบี่ยงเบนไปจากการแบ่งกลุ่มย่อย และหวังว่าจะสร้างความเข้าใจโดยสัญชาตญาณของระบบทั้งหมด (สมมุติฐาน) ได้ง่ายขึ้น
ชื่อระดับแรก
คำจำกัดความของค่าสะสมในแง่ดี
สำหรับวัตถุประสงค์ของบทความนี้ ขั้นแรกเราจะให้รายละเอียดเกี่ยวกับการใช้งาน Optimistic Rollup (ORU) ที่ง่ายที่สุด
ORU จำเป็นต้องมีคุณสมบัติดังต่อไปนี้:
ส่งข้อมูลธุรกรรมทั้งหมดไปยังห่วงโซ่
สมมติว่า state root เป็นจริง
บางโหนดมีหน้าที่ตรวจสอบการเปลี่ยนสถานะของ ORU
ชื่อระดับแรกเหตุใดการแบ่งส่วนจึงไม่สามารถทำได้
ชื่อเรื่องรอง
สมมติว่ามีผู้ตรวจสอบ 16,384 คนบนบล็อกเชนและ 64 ชาร์ดเชน ชาร์ดเชนแต่ละอันจะได้รับการตรวจสอบโดยคณะกรรมการที่มีผู้ตรวจสอบความถูกต้อง 128 คน การเลือกตั้งสมาชิกคณะกรรมการไม่สามารถคาดเดาได้: หลังจากแต่ละช่วง คณะกรรมการทั้งหมดจะถูกยุบ และคณะกรรมการ 64 คนจะถูกสุ่มเลือกใหม่จากผู้ตรวจสอบความถูกต้องทั้งหมด ดังนั้นผู้ตรวจสอบความถูกต้องแต่ละคนจึงไม่ทราบว่าผู้ตรวจสอบความถูกต้องคนอื่นๆ อยู่ในคณะกรรมการชุดใด สมมติว่าบล็อกต้องได้รับการอนุมัติจากสมาชิก 2/3 ของคณะกรรมการ (นั่นคือ สมาชิกไม่น้อยกว่า 86 คน) ก่อนที่จะสามารถเพิ่มลงใน Shard Chain ได้ หมายความว่า 1/3 ของเครื่องมือตรวจสอบที่เป็นอันตรายจะรวมอยู่ในทั้งหมด ผู้ตรวจสอบความถูกต้อง ในกรณีของ ความน่าจะเป็นของการเลือกคณะกรรมการที่เป็นอันตรายโดยวิธีสุ่มคือ:
โปรดทราบว่าเราสามารถปรับขนาดพารามิเตอร์นี้ขึ้นหรือลงได้โดยการปรับขนาดของคณะกรรมการเพื่อให้ได้ระดับความปลอดภัยที่ต้องการ
ข้อความ
เนื่องจากมีความเป็นไปได้ต่ำมากที่จะเลือกคณะกรรมการที่ประสงค์ร้ายและแรงจูงใจเชิงลบที่จะไม่ทำหน้าที่เป็นผู้ตรวจสอบ ระบบการแบ่งส่วนข้อมูลควรสืบทอดการรับประกันความปลอดภัยและอายุการใช้งานของผู้ประสานงานที่ไม่ได้แยกส่วน อย่างไรก็ตาม เช่นเดียวกับระบบส่วนใหญ่ในโลกแห่งความเป็นจริง การบรรลุเป้าหมายนี้ไม่ใช่เรื่องเล็กน้อย เนื่องจากมีการคัดเลือกสมาชิกคณะกรรมการล่วงหน้า ผู้ไม่หวังดีจึงมีโอกาสติดสินบนผู้มีเหตุผล การติดสินบนจะเกิดขึ้นมากขึ้นหากการสร้างการแมปจากคีย์สาธารณะของเครื่องมือตรวจสอบไปยังที่อยู่ IP เป็นเรื่องเล็กน้อย นอกจากนี้ ในระบบที่ไม่ได้รับอนุญาต การลงคะแนนเสียงที่ตรวจสอบได้ไม่สามารถป้องกันการติดสินบนได้ โดยสรุป ความปลอดภัยที่แท้จริงของการแบ่งส่วนย่อยนั้นต่ำกว่าลำดับความสำคัญทางทฤษฎีเป็นอย่างน้อย
ชื่อเรื่องรอง
เช่นเดียวกับพลาสมา การชาร์ดดิ้งก็มีปัญหาด้านความพร้อมใช้งานของข้อมูลเช่นกัน
แม้ว่า Sharding จะมีความปลอดภัยน้อยกว่าโปรโตคอล monolithic แต่เรายังสามารถรับประกันความปลอดภัยได้ เช่น ใช้หลักฐานการฉ้อโกงเพื่อยกเลิกการเปลี่ยนสถานะที่ไม่ถูกต้อง อย่างไรก็ตาม หากเราไม่แนะนำการออกแบบเพิ่มเติมสำหรับ Sharding Chain แบบธรรมดาที่เราคิดไว้ ผู้ตรวจสอบที่เป็นอันตรายอาจระงับข้อมูลทั้งหมดและไม่ปล่อยข้อมูลดังกล่าว เพื่อให้ผู้อื่นไม่มีข้อมูลเพียงพอในการสร้างหลักฐานการฉ้อโกง ต่อไปเราจะอธิบายวิธีดำเนินการโจมตีนี้
สมมติว่ามีบล็อกเชน B ชาร์ดแบบธรรมดาที่มีเชนชาร์ดสองเชน X และ Y Blockchain B ใช้อัลกอริทึมที่สอดคล้องกันของ Byzantine Fault Tolerant แบบดั้งเดิมในคณะกรรมการสองชุดเพื่อช่วยรันเศษ X และ Y, Cx และ Cy ตามลำดับ แต่ละบล็อกบน B มีลายเซ็นธรณีประตูสองตัว นั่นคือ พยานของสมาชิก 2 ใน 3 ของคณะกรรมการทั้งสอง Cx และ Cy ถึงรากสถานะของบล็อกปัจจุบันของห่วงโซ่ที่เกี่ยวข้อง
สมมติว่าแต่ละ Shard Chain จัดการข้อมูลและธุรกรรมในปริมาณที่เท่ากันต่อวินาทีในฐานะระบบที่ไม่แยกส่วน การแนะนำของ Shard Chain ควรให้ทรูพุตประมาณสองเท่า ในแง่ดีก็ไม่
ตอนนี้ เรามาเริ่มการโจมตีความไม่พร้อมของข้อมูลบน B กัน สมมติว่าหน่วยงานที่เป็นอันตรายสามารถบังคับให้สมาชิก 2/3 + 1 คนใน Cx ลงนามในสถานะรูทที่ไม่ถูกต้องและไม่เปิดเผยข้อมูลอินพุตของบล็อกที่เกี่ยวข้อง สถานะรูทที่ไม่ถูกต้องนี้จะรวมอยู่ในบล็อกถัดไปที่จะถูกเพิ่มใน B ในขณะนี้ ยังไม่มีกลไกที่เหมาะสมในการทำให้ B กลับสู่สถานะที่ถูกต้อง เราสามารถยกตัวอย่างกลไกบางอย่างได้:
สมาชิก 1/3 - 1 ที่เหลือใน Cx สามารถแจ้งเตือน data unavailable บน B น่าเสียดาย นี่ไม่ใช่ข้อผิดพลาดที่เกิดจากสาเหตุ (หมายเหตุของผู้แปล: เป็นไปไม่ได้ที่จะระบุได้ว่าผู้โจมตีระงับการบล็อก หรือบางคนไม่ได้รับบล็อกเนื่องจากเครือข่ายไม่ดี หรือแม้กระทั่งบิตของผู้อื่นเมื่อได้รับบล็อก) ดังนั้น B จึงไม่สามารถระบุได้ ฝ่ายไหนทำชั่ว (หากสมาชิกบางคนถูกลงโทษโดยประมาท) ชนกลุ่มน้อยที่ประสงค์ร้ายอาจใช้สิ่งนี้เพื่อเริ่มการโจมตี DDOS ที่ไม่มีค่าใช้จ่าย
มันขึ้นอยู่กับชุมชนทั้งหมดที่จะตรวจพบข้อบกพร่องและดำเนินการในเชิงรุกเพื่อย้อนกลับ B กลับสู่สถานะที่ถูกต้องล่าสุด โหมดการจัดการนี้ไม่ดีอย่างเห็นได้ชัด
การใช้กลไกการออกจากมวลคล้ายกับพลาสมา มวลที่ออกจาก X ถึง B จะมีผลเสียที่เกี่ยวข้อง
เช่นเดียวกับ Plasma ปัญหาที่แท้จริงคือความพร้อมใช้งานของข้อมูล
ชื่อระดับแรก
เพิ่มความพร้อมใช้งานของข้อมูลอย่างปลอดภัย
ฉันหวังว่าการวิเคราะห์ข้างต้นจะทำให้คุณเข้าใจความจริง: อันดับแรกเราควรมุ่งเน้นไปที่การขยายความพร้อมใช้งานของข้อมูลในชั้นฐาน มิฉะนั้น ระบบจะยังคงประสบปัญหาจากการโจมตีข้อมูลที่ไม่พร้อมใช้งาน
กลไกข้างต้นส่วนใหญ่ผ่อนคลายข้อกำหนดสำหรับผู้เข้าร่วมในเครือข่ายในการดาวน์โหลดข้อมูลทั้งหมด ข้อเสนอของ Vitalik คือให้ผู้เข้าร่วมในเครือข่ายสุ่มเลือกส่วนเล็กๆ ของข้อมูลในบล็อกเพื่อตรวจสอบเพื่อให้แน่ใจว่าผู้เสนอบล็อกได้เปิดเผยข้อมูล ความเสี่ยงคือผู้เสนอบล็อกต้องการเพียงซ่อนข้อมูลจำนวนเล็กน้อยเพื่อติดตั้งการโจมตีข้อมูลที่ไม่พร้อมใช้งาน ดังนั้นผู้เข้าร่วมจะต้องสุ่มตัวอย่างบล็อกหลาย ๆ ครั้งเพื่อสร้างความมั่นใจอย่างเพียงพอต่อความพร้อมของบล็อก เพื่อลดเวลาในการสุ่มตัวอย่าง Vitalik เสนอให้ใช้การเข้ารหัส Reed-Solomon แบบสองมิติเพื่อเข้ารหัสข้อมูลบล็อก
ในโครงสร้างนี้ บล็อกแบ่งออกเป็น N หุ้น จากนั้นเข้ารหัสเพื่อสร้าง M หุ้น ตราบใดที่คุณมี N หุ้นใน M คุณสามารถสร้างบล็อกใหม่ได้ สมมติว่า 2N=M ผู้เสนอการบล็อกจำเป็นต้องส่งผลกระทบต่อข้อมูล 1/2 ของบล็อกเพื่อให้สามารถเปิดการโจมตีข้อมูลไม่พร้อมใช้งานได้สำเร็จ รหัส Merkle Tree ใช้โครงสร้างที่คล้ายกัน แต่ใช้ O(b) ต้นทุนการถอดรหัสและ O(1) ภาระผูกพันแฮชแทน O(b1.5) ต้นทุนการถอดรหัสและ O() ภาระผูกพันแฮช (โดยที่ b หมายถึงขนาดไบต์ของบล็อก ).
ชื่อระดับแรก
การออกแบบชิ้นส่วนของ ETH 2.0 บดบังความจริงที่ว่าพวกมันคือ ORU ของห่วงโซ่บีคอน จะเห็นได้ชัดเจนเมื่อโฟกัสเปลี่ยนจากการประมวลผลแบบกระจายเป็นเลเยอร์ความพร้อมใช้งานของข้อมูลที่สั่ง
ดังที่แสดงในรูปด้านบน ชุดเครื่องมือตรวจสอบจะมีบทบาทสี่ประการต่อไปนี้:
ตรวจสอบและเรียกใช้บีคอนเชน
การสุ่มตัวอย่างการตรวจสอบข้อมูลที่จัดทำโดยเศษส่วน
จัดตั้งคณะกรรมการย่อย
ส่งหลักฐานการฉ้อโกงเกี่ยวกับการเปลี่ยนสถานะที่ไม่ถูกต้อง
ข้อความ
เราได้ตั้งสมมติฐานสองข้อ: i) ความพร้อมใช้งานของข้อมูล และ ii) บล็อกเชนจะแยกออกจากบล็อกล่าสุดที่มีความพร้อมใช้งานของข้อมูล จากนั้นทั้งสองคนสามารถสร้างหลักฐานการฉ้อโกง หรือระบบจะโทษความพร้อมใช้งานของข้อมูลในคณะกรรมการย่อยที่ลงนามในบล็อก และย้อนกลับการเปลี่ยนแปลงสถานะ
ชื่อเรื่องรอง
ตามคำนิยามแล้ว ETH 2.0 คือ ORU
ณ จุดนี้ เมื่อพิจารณาจากคำจำกัดความเดิมของ ORU เราควรจะสามารถพิสูจน์ได้ว่าเศษเป็นค่าสะสมจริง:
1. ข้อมูลธุรกรรมทั้งหมดจะถูกส่งไปยังห่วงโซ่
ข้อมูลบล็อกส่วนจะกระจุกตัวอยู่ที่ชั้นความพร้อมใช้งานของข้อมูล ซึ่งจะได้รับการยืนยันโดยเครือข่ายทั้งหมดด้วยความน่าจะเป็นที่แน่นอน
2. รูทสถานะถูกผูกมัดกับห่วงโซ่
คณะกรรมการชิ้นส่วนให้การรับรองสถานะรูทของชิ้นส่วนที่รวมอยู่ในบล็อกเชนบีคอน
3. รูทสถานะจะถือว่าถูกต้อง
Beacon chain ถือว่าการพิสูจน์ของคณะกรรมการชิ้นส่วนนั้นถูกต้องโดยไม่ต้องมีการตรวจสอบเพิ่มเติม
4. บางโหนดมีหน้าที่ตรวจสอบการเปลี่ยนสถานะของ ORU
คณะกรรมการชิ้นส่วนจะตรวจสอบการเปลี่ยนสถานะของชิ้นส่วน
ห่วงโซ่บีคอนรองรับการพิสูจน์การฉ้อโกงการเปลี่ยนสถานะของชาร์ด
การแยกโครงสร้าง ETH 2.0
ตอนนี้เราได้อธิบายความคล้ายคลึงกันที่แปลกประหลาดระหว่างระบบ ETH 2.0 และ ORU แล้ว เราจะใช้ข้อมูลนี้เพื่อทำความเข้าใจการออกแบบระบบโดยรวมได้อย่างไร มาสำรวจการตัดสินใจออกแบบของ ETH 2.0 ผ่านเลนส์ของระบบ ORU:
ชื่อเรื่องรอง
ปริมาณงานข้อมูล
วิธีหนึ่งที่สามารถทำได้ในที่นี้คือการปฏิบัติต่อการตรวจสอบความพร้อมใช้งานของข้อมูลในฐานะพลเมืองชั้นหนึ่งในโปรโตคอล สิ่งนี้ทำให้สามารถเพิ่มประสิทธิภาพอิสระของชั้นข้อมูล และควบคุมข้อกำหนดฮาร์ดแวร์ที่ละเอียดยิ่งขึ้น (มีส่วนร่วมในโปรโตคอล) ที่ชั้นการดำเนินการ
ตัวอย่างเช่น ETH 2.0 สามารถให้บริการศูนย์ข้อมูล 64 แห่งและสัญญา ORU บนบีคอนเชนแทนเชนชาร์ด สัญญา ORU อนุญาตให้การยกเลิกตัดสินใจเกี่ยวกับกลไกการเลือกผู้นำ จำนวนศูนย์ข้อมูลที่พวกเขาต้องการส่งข้อมูลไป และต้องการผูกมัดกับการยกเลิกอื่นๆ หรือไม่ (เช่น ถ้าการยกเลิกย้อนกลับ การยกเลิกจะผูกพันกับมันด้วย การย้อนกลับจะเกิดขึ้น) ยิ่งใช้ศูนย์ข้อมูลมากเท่าใด ความต้องการฮาร์ดแวร์ที่จำเป็นในการตรวจสอบความถูกต้องของโรลอัพก็ยิ่งสูงขึ้นเท่านั้น
พูดตามตรง ระบบด้านบนเป็นส่วนเสริมของการออกแบบการแบ่งส่วนย่อยในปัจจุบัน นอกเหนือจาก 64 ชาร์ดที่กำหนดโดยโปรโตคอลแล้ว จะมีการโรลอัพอื่นๆ ที่มีลักษณะเฉพาะตัวที่สร้างขึ้นบนชั้นข้อมูลที่ปลอดภัยและไม่ขึ้นกับชาร์ดของโปรโตคอล
ชื่อเรื่องรอง
ใน ORU ง่ายๆ ผู้นำที่ได้รับการเลือกตั้งมีสิทธิ์ที่จะดำเนินการเปลี่ยนสถานะที่ไม่ถูกต้อง แม้ว่าการดำเนินการนี้จะไม่ส่งผลกระทบต่อความปลอดภัยของระบบ แต่เนื่องจากการเปลี่ยนสถานะที่ไม่ถูกต้องสามารถย้อนกลับได้ผ่านการพิสูจน์การฉ้อโกง การดำเนินการนี้จะทำลายกระบวนการยกเลิก หากพิจารณาตามลำพังแล้ว ความเสียหายประเภทนี้มักจะไม่คุ้มค่ากับผู้กระทำความผิด อย่างไรก็ตาม ใน ETH 2.0 การสื่อสารข้ามชาร์ดทำให้ปัญหานี้ยุ่งยากเป็นพิเศษ ชิ้นส่วนในช่อง N คาดว่าตัวเองจะได้รับสถานะของชิ้นส่วนอื่นๆ ในช่อง N-1 สมมติว่าชาร์ด Si กระทำการเปลี่ยนสถานะที่ไม่ถูกต้อง ไม่มีวิธีที่เหมาะสมในการเลิกทำผลกระทบด้านลบของรัฐที่มีต่อชาร์ด Sj (0≤j≤64; i≠j) นอกจากการเริ่มต้นการย้อนกลับเพียงฝ่ายเดียว
เพื่อหลีกเลี่ยงเหตุการณ์ภัยพิบัติ ต้องมีกลไกเพื่อป้องกันการย้อนกลับดังกล่าว กลไกที่ชัดเจนที่สุดสองอย่างคือคณะกรรมการย่อยและการตรวจสอบบิตการดูแล ดังที่ได้กล่าวไว้ในหัวข้อ "การพิสูจน์ความปลอดภัยในการแยกส่วนทางคณิตศาสตร์" แม้จะพิจารณาถึงเวกเตอร์การโจมตีต่างๆ ความน่าจะเป็นของการติดสินบนมากกว่า 2/3 ของสมาชิกของคณะกรรมการการแบ่งส่วนนั้นยังต่ำมาก บิตการดูแลช่วยให้มั่นใจได้ว่าผู้ตรวจสอบที่ซื่อสัตย์จะไม่ถูกหลอกให้ลงนามการเปลี่ยนสถานะที่ไม่ถูกต้องเนื่องจากความเกียจคร้าน
หากเราพิจารณาว่าจุดประสงค์ของกลไกเหล่านี้คือเพื่อป้องกันการเปลี่ยนสถานะที่ไม่ถูกต้อง แทนที่จะรักษาความปลอดภัยของระบบ เราสามารถเลือกพารามิเตอร์ที่ใช้ได้จริงและให้ผลเช่นเดียวกัน ตัวอย่างเช่น การลดขนาดของคณะกรรมการเศษเหลือ 64 คน ความน่าจะเป็นของการสุ่มสร้างคณะกรรมการที่เป็นอันตรายยังคงต่ำเพียง 3.1×10-8 แต่จากมุมมองการรวมเครือข่ายและลายเซ็น สิ่งนี้สามารถลดภาระได้อย่างมาก
ชื่อระดับแรก
แผนงาน Ethereum ที่เน้น Rollup-centric
บทความนี้เขียนขึ้นครั้งแรกในระหว่างการประชุม Stanford Blockchain Conference 2020 (SBC20) นั่นคือตอนที่ฉันเริ่มชื่นชมความคล้ายคลึงกันระหว่าง ETH 2.0 และ ORU อย่างเต็มที่ หลังจากอ่านบทความของ Vitalik ฉันตัดสินใจเผยแพร่บทความนี้เพื่อแสดงการสนับสนุนของฉันสำหรับการนำโซลูชันการขยายแบบโรลอัปเป็นศูนย์กลางมาใช้ในอนาคตของ Ethereum อย่างไรก็ตาม ตามที่อธิบายไว้ในบทความนี้ แผนการปรับขนาดแบบ "ควบรวมศูนย์" ไม่ได้ทำให้เราออกนอกลู่นอกทาง แต่เป็น superset ปัญหาที่เราพบในการออกแบบชาร์ดดิ้งนั้นเป็นแบบไอโซมอร์ฟิกกับปัญหาที่เราพบในการรวมการสื่อสารข้ามรายการ ซึ่งหมายความว่างานส่วนใหญ่ที่ดำเนินการอยู่สามารถดำเนินต่อไปได้โดยไม่หยุดชะงัก


