TL;DR
ในปัจจุบันเทคโนโลยีชั้นที่ 2 มีการแลกเปลี่ยนความสามารถในการขยายของระบบเพื่อการแบ่งส่วนของสถานะ เราขอเสนอการออกแบบชั้นที่ 2 (L2) ที่ชื่อ =nil; ซึ่งทำให้ Ethereum สามารถขยายได้โดยไม่เสียประโยชน์จากสิ่งที่เหมือนกันในสภาพแวดล้อมการดำเนินการที่เป็นเอกลักษณ์โซลูชันนี้รวมอยู่ในการใช้กลไกการแบ่งส่วนแบบไดนามิกพร้อมกับการเข้าถึงข้อมูล Ethereum ที่สามารถยืนยันได้โดยใช้เทคโนโลยีซีโร่นออกแบบสำคัญประกอบด้วย:
Through zkSharding =nil; ได้รับประโยชน์จากข้อดีของการออกแบบแบบโมโนลิติกและแบบโมดูลาร์ รวมถึง:
ประสิทธิภาพในการขยายของระบบ
Unified Execution Environment
ความปลอดภัย
ความสามารถ
ในระดับที่ต่ำกว่า สถานะของ =nil; ถูกแบ่งเป็น Primary shard และ secondary shards หลายๆ อัน บทบาทหลักของ main shard คือการซิงโครไนส์และรวมข้อมูลจาก secondary shards มันใช้ Ethereum ทั้งในฐานข้อมูลที่มีอยู่และในการตรวจสอบสำหรับ state transition proofs เหมือนกับการดำเนินการของ zkRollups ปกติ
ชั้นเมืองรองทำหน้าที่เป็น "คนงาน" ที่ดำเนินการธุรกรรมของผู้ใช้ ชั้นเหล่านี้รักษาระหว่างสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสาร
แต่ละชิ้นผ่านการควบคุมโดยคณะกรรมการผู้ตรวจสอบ มีการหมุนเวียนของคณะกรรมการผู้ตรวจสอบเหล่านี้ในชิ้นต่างๆเป็นระยะ นอกจากนี้ การอัพเดตสถานะของชิ้นถูกตรวจสอบกับชิ้นหลักโดยใช้ zkEVM
เพื่อแสดงขั้นตอนการทําธุรกรรมจากการเริ่มต้นโดยผู้ใช้เพื่อยืนยันบน Ethereum ให้พิจารณาขั้นตอนต่อไปนี้:
เรขาคณิตนี้สมมติว่าธุรกรรมของผู้ใช้ไม่เปิดใช้โปรโตคอลสื่อสารระหว่างแชาร์ด อย่างไรก็ตาม ในกรณีนี้กระแสธุรกรรมยังคงเหมือนเดิม โดยที่ธุรกรรมของผู้ใช้สามารถกระตุ้นการสร้างธุรกรรมใหม่บนแชาร์ดอื่น
เมื่อบัญชีทั้งหมดถูกกระจายไปอยู่ในชาร์ดทั้งหมด นี่อาจดูเหมือนกับปัญหาการแยกข้อมูลที่พบในวิธีการสร้างโปรแกรมอย่างเฉพาะเจาะจง อย่างไรก็ตาม ความแตกต่างสำคัญอยู่ที่การจัดการการสื่อสารระหว่างชาร์ดนั้น: มันถูกบูรณะโดยตรงลงในโปรโตคอลโดยรวม แทนที่จะถูกจัดการโดยสะพานภายนอกแยกต่างหาก
เพื่อรับรองความปลอดภัยของแต่ละชาร์ดรอง คณะกรรมการผู้ตรวจสอบของมันถูกบังคับด้วยการพิสูจน์การเปลี่ยนแปลงของสถานะของมันไปยังชาร์ดหลักเพื่อให้แน่ใจว่าไม่มีการโกงเกิดขึ้นภายในกลุ่มผู้ตรวจสอบขนาดเล็ก คณะกรรมการตรวจสอบแต่ละชาร์ดมีงานเพิ่มเติมที่เกินกว่าการบำรุงรักษาชาร์ด ผู้ตรวจสอบมีหน้าที่รับผิดชอบในการติดตามประเภทเฉพาะของเหตุการณ์โดยเฉพาะข้อความข้ามชาร์ดภายใน "ชาร์ดใกล้เคียง" ชาร์ดใกล้เคียงถูกกำหนดตามระยะทางแฮมมิงในตัวบ่งชัดของชาร์ด
=nil;s zkEVM เป็น zkEVM ชนิดที่ 1 ที่คอมไพล์ด้วย zkLLVM เพื่อเข้าใจความแตกต่างระหว่าง zkEVM แบบดั้งเดิมมากกว่าและ zkEVM ของ =nil; เราต้องพูดถึง ข้อจำกัดที่เกี่ยวข้องกับกระบวนการกำหนดวงจรที่อยู่เบื้องหลัง zkEVM วงจร zkEVM เป็นส่วนสำคัญที่รับผิดชอบในการพิสูจน์การเปลี่ยนสถานะว่าถูกต้อง โดยทั่วไปถูกกำหนดโดยใช้ zkDSL ที่กำหนดเองหรือเพียงแค่หนังสือเล่ม วิธีกำหนดวงจรเช่นนี้ นำมาสู่ปัญหาที่เกี่ยวข้องกับ:
=nil; zkEVM กำลังแก้ปัญหาทั้งหมดเหล่านี้อย่างมีประสิทธิภาพโดยการ:
zkEVM ที่คอมไพล์ผ่าน zkLLVM เชื่อถือได้ตามออกแบบซึ่งใช้ evmone เพื่อให้มั่นใจว่ามีความสอดคล้องอย่างสมบูรณ์กับ EVM ที่ใช้ในการผลิตของ Ethereum โดย zkLLVM (C++ หรือ Rust) จะคอมไพล์อัตโนมัติลงสู่วงจร ซึ่งหมายความว่าความผิดพลาดของมนุษย์ถูกนำออกจากระบบนิยามของวงจร
นอกจากนี้เนื่องจาก =nil; zkEVM ถูกคอมไพล์ผ่าน zkLLVM ดังนั้นมันจึงยืดหยุ่นมากขึ้น (และด้วยเหตุนี้ ป้องกันการเสี่ยงในอนาคต) มากกว่าวงจรที่กำหนดโดยมนุษย์เนื่องจากมันสามารถปรับเปลี่ยนได้ง่ายและการสร้างวงจรเป็นอัตโนมัติ นอกจากนี้มันยังสามารถตรวจสอบได้อย่างดีมาก หมายความว่าความปลอดภัยของมันไม่มีค่าในการรวม EIPs ล่าสุดที่เพิ่มเข้าไปใน Ethereum
เนื่องจากชาร์ดหลักและชาร์ดรองมีความแตกต่างกันตามงานที่ได้รับมอบหมาย - ชาร์ดรองเน้นการประมวลผลธุรกรรมในขณะที่ชาร์ดหลักเน้นการซิงโครไนซ์ข้อมูล - พวกเขามีวิธีการที่แตกต่างกันในการให้ความพร้อมในการเข้าถึงข้อมูล (DA) ซึ่งช่วยกู้คืนข้อมูลสถานะในสถานการณ์ฉุกเฉิน นี่หมายความว่า:
การจัดเรียงนี้ถูกกำหนดโดยการเริ่มต้นด้วยการเปิดใช้งานชาร์ดสองชนิด: ชนิดที่มีการแก้ไข DA ภายนอกแยกต่างหากและชนิดที่ไม่มี ในเฟสต่อมา เฉพาะชาร์ดในหมวดหมู่ DA เดียวกันเท่านั้นที่สามารถรวมกัน นี่หมายความว่าในระหว่างการสร้าง แต่ละบัญชีต้องถูกกำหนดให้เข้ากับหมวดหมู่ DA ที่แน่นอน
นอกจากนี้เฟรมเวิร์กนี้สามารถขยายเพื่อรวมเข้าไปด้วยประเภทอื่น ๆ ของ DA ได้
หนึ่งในเป้าหมายหลักของเราคือการปรับปรุงสำหรับการประกอบแอปพลิเคชันและป้องกันการแยกแยะของ Likelihood ดังนั้นความเข้าถึง zkSharding จะไม่สมบูรณ์โดยไม่มีการเข้าถึง Ethereum state โดยไม่ต้องเชื่อถือ นี่หมายความว่า =nil; มีความสามารถในการประกอบและการผสมอย่างเต็มที่และการรวมเข้ากับ Ethereum ผ่านโมดูล Data Provider อย่างโปร่งใส
ผู้ให้บริการข้อมูลดำเนินการอิสระจากการเก็บข้อมูลของชิลด์ ซึ่งซิงโครไนซ์ข้อมูลของตนกับฐานข้อมูลภายนอกและฉีดลายนิ้วมือ Ethereum ของสถานะฐานข้อมูลล่าสุดที่ตรวจสอบล่าสุดลงในชิลด์ สถานะล่าสุดของฐานข้อมูลนี้ได้รับการตรวจสอบจากโมดูลการยืนยัน ซึ่งใช้ zkBridge กับ Ethereum's Casper FFG consensus proof
=nil; และ zkSharding คือผลสรุปของผลิตภัณฑ์ที่ =nil; Foundation ได้พัฒนามาเป็นเวลา 4 ปีที่ผ่านมา จุดมุ่งหมายของมันคือการเป็น Soluสำหรับ Ethereum L2 zkRollup ที่สามารถปรับแต่งได้ มากขึ้นและเป็นทางเลือกที่ทั่วไป เราตื่นเต้นที่จะแบ่งปันรายละเอียดของการปรับใช้เพิ่มเติมในรอบหลายเดือนถัดไป ตรวจสอบทวิตเตอร์ของเราเพื่อพัฒนาการของเรา!
สำหรับผู้ที่มีความชำนาญทางเทคนิคเราได้พัฒนาคู่มืออย่างละเอียดแยกต่างหากที่ลงตัวในรายละเอียดของ =nil; และ zkSharding หนังสือนี้เป็นหนังสือประตูของคุณในการเข้าใจความซับซ้อนของวิธีการนี้ พร้อมกับรายละเอียดทางเทคนิคทั้งหมดและเบื้องต้นที่คุณต้องการ
Dive into our technical primer now and join the conversation on Discord และ Telegram. มาสำรวจความเป็นไปได้ที่ไม่มีขอบเขตของ zkSharding ไปพร้อมกัน!
TL;DR
ในปัจจุบันเทคโนโลยีชั้นที่ 2 มีการแลกเปลี่ยนความสามารถในการขยายของระบบเพื่อการแบ่งส่วนของสถานะ เราขอเสนอการออกแบบชั้นที่ 2 (L2) ที่ชื่อ =nil; ซึ่งทำให้ Ethereum สามารถขยายได้โดยไม่เสียประโยชน์จากสิ่งที่เหมือนกันในสภาพแวดล้อมการดำเนินการที่เป็นเอกลักษณ์โซลูชันนี้รวมอยู่ในการใช้กลไกการแบ่งส่วนแบบไดนามิกพร้อมกับการเข้าถึงข้อมูล Ethereum ที่สามารถยืนยันได้โดยใช้เทคโนโลยีซีโร่นออกแบบสำคัญประกอบด้วย:
Through zkSharding =nil; ได้รับประโยชน์จากข้อดีของการออกแบบแบบโมโนลิติกและแบบโมดูลาร์ รวมถึง:
ประสิทธิภาพในการขยายของระบบ
Unified Execution Environment
ความปลอดภัย
ความสามารถ
ในระดับที่ต่ำกว่า สถานะของ =nil; ถูกแบ่งเป็น Primary shard และ secondary shards หลายๆ อัน บทบาทหลักของ main shard คือการซิงโครไนส์และรวมข้อมูลจาก secondary shards มันใช้ Ethereum ทั้งในฐานข้อมูลที่มีอยู่และในการตรวจสอบสำหรับ state transition proofs เหมือนกับการดำเนินการของ zkRollups ปกติ
ชั้นเมืองรองทำหน้าที่เป็น "คนงาน" ที่ดำเนินการธุรกรรมของผู้ใช้ ชั้นเหล่านี้รักษาระหว่างสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสาร
แต่ละชิ้นผ่านการควบคุมโดยคณะกรรมการผู้ตรวจสอบ มีการหมุนเวียนของคณะกรรมการผู้ตรวจสอบเหล่านี้ในชิ้นต่างๆเป็นระยะ นอกจากนี้ การอัพเดตสถานะของชิ้นถูกตรวจสอบกับชิ้นหลักโดยใช้ zkEVM
เพื่อแสดงขั้นตอนการทําธุรกรรมจากการเริ่มต้นโดยผู้ใช้เพื่อยืนยันบน Ethereum ให้พิจารณาขั้นตอนต่อไปนี้:
เรขาคณิตนี้สมมติว่าธุรกรรมของผู้ใช้ไม่เปิดใช้โปรโตคอลสื่อสารระหว่างแชาร์ด อย่างไรก็ตาม ในกรณีนี้กระแสธุรกรรมยังคงเหมือนเดิม โดยที่ธุรกรรมของผู้ใช้สามารถกระตุ้นการสร้างธุรกรรมใหม่บนแชาร์ดอื่น
เมื่อบัญชีทั้งหมดถูกกระจายไปอยู่ในชาร์ดทั้งหมด นี่อาจดูเหมือนกับปัญหาการแยกข้อมูลที่พบในวิธีการสร้างโปรแกรมอย่างเฉพาะเจาะจง อย่างไรก็ตาม ความแตกต่างสำคัญอยู่ที่การจัดการการสื่อสารระหว่างชาร์ดนั้น: มันถูกบูรณะโดยตรงลงในโปรโตคอลโดยรวม แทนที่จะถูกจัดการโดยสะพานภายนอกแยกต่างหาก
เพื่อรับรองความปลอดภัยของแต่ละชาร์ดรอง คณะกรรมการผู้ตรวจสอบของมันถูกบังคับด้วยการพิสูจน์การเปลี่ยนแปลงของสถานะของมันไปยังชาร์ดหลักเพื่อให้แน่ใจว่าไม่มีการโกงเกิดขึ้นภายในกลุ่มผู้ตรวจสอบขนาดเล็ก คณะกรรมการตรวจสอบแต่ละชาร์ดมีงานเพิ่มเติมที่เกินกว่าการบำรุงรักษาชาร์ด ผู้ตรวจสอบมีหน้าที่รับผิดชอบในการติดตามประเภทเฉพาะของเหตุการณ์โดยเฉพาะข้อความข้ามชาร์ดภายใน "ชาร์ดใกล้เคียง" ชาร์ดใกล้เคียงถูกกำหนดตามระยะทางแฮมมิงในตัวบ่งชัดของชาร์ด
=nil;s zkEVM เป็น zkEVM ชนิดที่ 1 ที่คอมไพล์ด้วย zkLLVM เพื่อเข้าใจความแตกต่างระหว่าง zkEVM แบบดั้งเดิมมากกว่าและ zkEVM ของ =nil; เราต้องพูดถึง ข้อจำกัดที่เกี่ยวข้องกับกระบวนการกำหนดวงจรที่อยู่เบื้องหลัง zkEVM วงจร zkEVM เป็นส่วนสำคัญที่รับผิดชอบในการพิสูจน์การเปลี่ยนสถานะว่าถูกต้อง โดยทั่วไปถูกกำหนดโดยใช้ zkDSL ที่กำหนดเองหรือเพียงแค่หนังสือเล่ม วิธีกำหนดวงจรเช่นนี้ นำมาสู่ปัญหาที่เกี่ยวข้องกับ:
=nil; zkEVM กำลังแก้ปัญหาทั้งหมดเหล่านี้อย่างมีประสิทธิภาพโดยการ:
zkEVM ที่คอมไพล์ผ่าน zkLLVM เชื่อถือได้ตามออกแบบซึ่งใช้ evmone เพื่อให้มั่นใจว่ามีความสอดคล้องอย่างสมบูรณ์กับ EVM ที่ใช้ในการผลิตของ Ethereum โดย zkLLVM (C++ หรือ Rust) จะคอมไพล์อัตโนมัติลงสู่วงจร ซึ่งหมายความว่าความผิดพลาดของมนุษย์ถูกนำออกจากระบบนิยามของวงจร
นอกจากนี้เนื่องจาก =nil; zkEVM ถูกคอมไพล์ผ่าน zkLLVM ดังนั้นมันจึงยืดหยุ่นมากขึ้น (และด้วยเหตุนี้ ป้องกันการเสี่ยงในอนาคต) มากกว่าวงจรที่กำหนดโดยมนุษย์เนื่องจากมันสามารถปรับเปลี่ยนได้ง่ายและการสร้างวงจรเป็นอัตโนมัติ นอกจากนี้มันยังสามารถตรวจสอบได้อย่างดีมาก หมายความว่าความปลอดภัยของมันไม่มีค่าในการรวม EIPs ล่าสุดที่เพิ่มเข้าไปใน Ethereum
เนื่องจากชาร์ดหลักและชาร์ดรองมีความแตกต่างกันตามงานที่ได้รับมอบหมาย - ชาร์ดรองเน้นการประมวลผลธุรกรรมในขณะที่ชาร์ดหลักเน้นการซิงโครไนซ์ข้อมูล - พวกเขามีวิธีการที่แตกต่างกันในการให้ความพร้อมในการเข้าถึงข้อมูล (DA) ซึ่งช่วยกู้คืนข้อมูลสถานะในสถานการณ์ฉุกเฉิน นี่หมายความว่า:
การจัดเรียงนี้ถูกกำหนดโดยการเริ่มต้นด้วยการเปิดใช้งานชาร์ดสองชนิด: ชนิดที่มีการแก้ไข DA ภายนอกแยกต่างหากและชนิดที่ไม่มี ในเฟสต่อมา เฉพาะชาร์ดในหมวดหมู่ DA เดียวกันเท่านั้นที่สามารถรวมกัน นี่หมายความว่าในระหว่างการสร้าง แต่ละบัญชีต้องถูกกำหนดให้เข้ากับหมวดหมู่ DA ที่แน่นอน
นอกจากนี้เฟรมเวิร์กนี้สามารถขยายเพื่อรวมเข้าไปด้วยประเภทอื่น ๆ ของ DA ได้
หนึ่งในเป้าหมายหลักของเราคือการปรับปรุงสำหรับการประกอบแอปพลิเคชันและป้องกันการแยกแยะของ Likelihood ดังนั้นความเข้าถึง zkSharding จะไม่สมบูรณ์โดยไม่มีการเข้าถึง Ethereum state โดยไม่ต้องเชื่อถือ นี่หมายความว่า =nil; มีความสามารถในการประกอบและการผสมอย่างเต็มที่และการรวมเข้ากับ Ethereum ผ่านโมดูล Data Provider อย่างโปร่งใส
ผู้ให้บริการข้อมูลดำเนินการอิสระจากการเก็บข้อมูลของชิลด์ ซึ่งซิงโครไนซ์ข้อมูลของตนกับฐานข้อมูลภายนอกและฉีดลายนิ้วมือ Ethereum ของสถานะฐานข้อมูลล่าสุดที่ตรวจสอบล่าสุดลงในชิลด์ สถานะล่าสุดของฐานข้อมูลนี้ได้รับการตรวจสอบจากโมดูลการยืนยัน ซึ่งใช้ zkBridge กับ Ethereum's Casper FFG consensus proof
=nil; และ zkSharding คือผลสรุปของผลิตภัณฑ์ที่ =nil; Foundation ได้พัฒนามาเป็นเวลา 4 ปีที่ผ่านมา จุดมุ่งหมายของมันคือการเป็น Soluสำหรับ Ethereum L2 zkRollup ที่สามารถปรับแต่งได้ มากขึ้นและเป็นทางเลือกที่ทั่วไป เราตื่นเต้นที่จะแบ่งปันรายละเอียดของการปรับใช้เพิ่มเติมในรอบหลายเดือนถัดไป ตรวจสอบทวิตเตอร์ของเราเพื่อพัฒนาการของเรา!
สำหรับผู้ที่มีความชำนาญทางเทคนิคเราได้พัฒนาคู่มืออย่างละเอียดแยกต่างหากที่ลงตัวในรายละเอียดของ =nil; และ zkSharding หนังสือนี้เป็นหนังสือประตูของคุณในการเข้าใจความซับซ้อนของวิธีการนี้ พร้อมกับรายละเอียดทางเทคนิคทั้งหมดและเบื้องต้นที่คุณต้องการ
Dive into our technical primer now and join the conversation on Discord และ Telegram. มาสำรวจความเป็นไปได้ที่ไม่มีขอบเขตของ zkSharding ไปพร้อมกัน!