ประกาศ zkSharding สำหรับ Ethereum

ขั้นสูง1/29/2024, 2:34:45 PM
zkSharding มีเป้าหมายที่จะให้คำแก้ตัวเลือกในการขยายมิติโดยรวมชาร์ดหลายๆ อย่างเข้าด้วยกันเป็นชั้นดำเนินการที่เป็นหนึ่งเดียว บทความนี้จะแนะนำคุณสมบัติ โครงสร้าง และแผนการในอนาคต

TL;DR

  • =nil; เป็น sharded zkRollup - แนวคิด L2 ใหม่สำหรับการขยายขนาดของ Ethereum อย่างมีความเคลื่อนไหวและปลอดภัยผ่านการดำเนินการธุรกรรมขั้นพร็อทโต้ลบนชิลด์
  • ที่มี zkSharding, =nil; มีการขยายของแนวนอนโดยไม่เสียความสะดวกของชั้นการกระทำเดียว นั่นคือ ความสะดวกสบายและความปลอดภัยทางเศรษฐกิจที่รวมอยู่
  • =nil; ให้ความสามารถในการใช้งานแบบเต็มรูปแบบกับ Ethereum ผ่านการเข้าถึงข้อมูล Ethereum ที่โปร่งใสและสามารถตรวจสอบได้
  • =nil; นำเสนอ Type-1 zkEVM ที่คอมไพล์ด้วย zkLLVM
  • การสร้างพิสูจน์อย่างรวดเร็วได้รับการรับรองจากการแข่งขันในตลาดเปิดผ่าน Proof Market โดยไม่ต้องขออนุญาต - ตลาดการสร้างพิสูจน์

บทนำเกี่ยวกับ zkSharding

ในปัจจุบันเทคโนโลยีชั้นที่ 2 มีการแลกเปลี่ยนความสามารถในการขยายของระบบเพื่อการแบ่งส่วนของสถานะ เราขอเสนอการออกแบบชั้นที่ 2 (L2) ที่ชื่อ =nil; ซึ่งทำให้ Ethereum สามารถขยายได้โดยไม่เสียประโยชน์จากสิ่งที่เหมือนกันในสภาพแวดล้อมการดำเนินการที่เป็นเอกลักษณ์โซลูชันนี้รวมอยู่ในการใช้กลไกการแบ่งส่วนแบบไดนามิกพร้อมกับการเข้าถึงข้อมูล Ethereum ที่สามารถยืนยันได้โดยใช้เทคโนโลยีซีโร่นออกแบบสำคัญประกอบด้วย:

  • zkRollup พร้อม Sharding: ส่วนหลักของ =nil; เป็นโปรโตคอลที่สามารถพิสูจน์ได้เกี่ยวกับการแบ่งส่วน ซึ่งทำให้สามารถขยายขนาดแนวนอนได้โดยไม่เสียความปลอดภัยหรือประสิทธิภาพ แนวทางนี้จะช่วยแก้ไขบางจุดของข้อจำกัดในการขยายขนาดแนวตั้งปัจจุบัน (L3, L4, ฯลฯ) โดยเฉพาะการแยกข้อมูลและ Likwiditi
  • การเข้าถึงข้อมูล Ethereum โดยตรง: ความสามารถในการเรียกข้อมูลต้นฉบับของ Ethereum จากแอปพลิเคชั่น L2 ช่วยให้เราสามารถนำแอปพลิเคชั่นที่ติดตั้งไว้แล้วมาใช้ซ้ำได้ การเข้าถึงข้อมูล L1 โดยตรงจาก L2 ยืนยันให้มีสภาพแวดล้อมที่เข้ากันได้และราบรื่นมากยิ่งขึ้น

Through zkSharding =nil; ได้รับประโยชน์จากข้อดีของการออกแบบแบบโมโนลิติกและแบบโมดูลาร์ รวมถึง:

  • ประสิทธิภาพในการขยายของระบบ

    • ไม่มีข้อจำกัดทางเลเลอร์เรื่องประสิทธิภาพเนื่องจากการดำเนินการเป็นพร้อมพรัด ประสิทธิภาพทางการเป็นประมาณ 60k การโอน ERC-20 ต่อวินาทีด้วยโหนดประมาณ 400 โหนด
    • การสร้างพิสูจน์แข็งแกร่งโดยผ่าน Proof Market ให้ความเร็วในการทำ L1-finality ที่รวดเร็วที่สุดและต้นทุนในการสร้างพิสูจน์ที่ถูกที่สุด
  • Unified Execution Environment

    • สภาพแวดล้อมการดำเนินการที่รวมกัน ทำให้ไม่มีการแบ่งแยกความปลอดภัย / ความเหลือเชื่อมในการแบ่งส่วนแต่ละส่วนเป็นส่วนหนึ่งของกลุ่มทั้งหมด
    • การลดความต้องการในการย้าย Likuiditi จาก Ethereum เป็น =nil; ให้การเข้าถึงข้อมูลของมันได้โปร่งใสสำหรับแอปพลิเคชันผ่านการบังคับให้ทุก Validator รักษารายละเอียด Ethereum เต็มรูปแบบเป็นส่วนหนึ่งของการใช้งานที่อนุญาตให้แอปพลิเคชันเข้าถึงข้อมูลโดยตรงจาก zkEVM ของ =nil;
  • ความปลอดภัย

    • การเปลี่ยนสถานะที่ได้รับความปลอดภัยโดย zkEVM ที่คอมไพล์ผ่าน zkLLVM มันให้ความปลอดภัยที่สามารถตรวจสอบได้ (เช่น ความปลอดภัยของข้อจำกัด) เนื่องจากโค้ดสามารถตรวจสอบได้ง่ายเนื่องจากวงจร zkEVM ถูกคอมไพล์จาก EVM ที่ใช้ในการผลิตในภาษาระดับสูงและไม่ได้เขียนด้วยมือ
    • เพิ่มเติมจากวันแรกที่มีการทำให้เป็นระบบกระจายบนโลกด้วยการสร้างพิสูจน์แบบกระจายที่เป็นผลมาจาก =nil; ตลาดพิสูจน์
  • ความสามารถ

    • ชนิด 1 zkEVM, fully EVM bytecode-equivalent zkEVM compiled via zkLLVM.
    • สภาพแวดล้อมที่เหมาะสำหรับแอปพลิเคชันที่มีความต้องการสูงเกี่ยวกับเวลา หน่วยความจำ และความซับซ้อนของอัลกอริทึม โดยการเพิ่มความสอดคล้องของชาร์ดเดียวกันและการนำเสนอการระบุตำแหน่งแอปพลิเคชันต่อชาร์ดเพื่อลดความล่าช้า เช่น การแลกเปลี่ยนที่ไม่มีศูนย์กลาง ตลาดพิสูจน์ ตัวสร้างลำดับเหตุการณ์/ตัวสร้างตัวสร้าง แอปพลิเคชันสถานะที่แชร์ (เรียกอีกอย่างว่าโลกอัตโนมัส ฯลฯ)

การปรับขนาดที่สามารถปรับแต่งได้

ในระดับที่ต่ำกว่า สถานะของ =nil; ถูกแบ่งเป็น Primary shard และ secondary shards หลายๆ อัน บทบาทหลักของ main shard คือการซิงโครไนส์และรวมข้อมูลจาก secondary shards มันใช้ Ethereum ทั้งในฐานข้อมูลที่มีอยู่และในการตรวจสอบสำหรับ state transition proofs เหมือนกับการดำเนินการของ zkRollups ปกติ

ชั้นเมืองรองทำหน้าที่เป็น "คนงาน" ที่ดำเนินการธุรกรรมของผู้ใช้ ชั้นเหล่านี้รักษาระหว่างสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสาร

แต่ละชิ้นผ่านการควบคุมโดยคณะกรรมการผู้ตรวจสอบ มีการหมุนเวียนของคณะกรรมการผู้ตรวจสอบเหล่านี้ในชิ้นต่างๆเป็นระยะ นอกจากนี้ การอัพเดตสถานะของชิ้นถูกตรวจสอบกับชิ้นหลักโดยใช้ zkEVM

เพื่อแสดงขั้นตอนการทําธุรกรรมจากการเริ่มต้นโดยผู้ใช้เพื่อยืนยันบน Ethereum ให้พิจารณาขั้นตอนต่อไปนี้:

  • ผู้ใช้ลงนามในธุรกรรม (tx) และส่งออกไปยังเครือข่าย
  • Validators ในชาร์ด S ที่อยู่ที่กระเป๋าเงินของผู้ใช้ จะวาง tx เข้าไปใน mempool
  • Validators เหล่านี้จากนั้นสร้างบล็อกใหม่ B(1/S)
  • ค่าแฮชของ B(1/S) ถูกบันทึกบนชาร์ดหลักภายในบล็อก B(1/M)
  • การพิสูจน์การเปลี่ยนสถานะสำหรับ B(1/S) ถูกสร้างและตรวจสอบโดยชิ้นส่วนหลักในบล็อก B(2/M)
  • ส่งพิสูจน์การเปลี่ยนสถานะสำหรับ B(2/M) ไปที่ Ethereum เพื่อการตรวจสอบและเชื่อมโยงกับข้อมูลที่จำเป็นเพื่อการตรวจสอบความพร้อมใช้งานของข้อมูล
  • เมื่อกระบวนการนี้เสร็จสิ้น ธ.ส. ได้รับการยืนยันโดย Ethereum

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

เมื่อบัญชีทั้งหมดถูกกระจายไปอยู่ในชาร์ดทั้งหมด นี่อาจดูเหมือนกับปัญหาการแยกข้อมูลที่พบในวิธีการสร้างโปรแกรมอย่างเฉพาะเจาะจง อย่างไรก็ตาม ความแตกต่างสำคัญอยู่ที่การจัดการการสื่อสารระหว่างชาร์ดนั้น: มันถูกบูรณะโดยตรงลงในโปรโตคอลโดยรวม แทนที่จะถูกจัดการโดยสะพานภายนอกแยกต่างหาก

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

zkEVM ผ่าน zkLLVM: ประเภท-1 ปลอดภัย สามารถตรวจสอบและมีประสิทธิภาพ zkEVM

=nil;s zkEVM เป็น zkEVM ชนิดที่ 1 ที่คอมไพล์ด้วย zkLLVM เพื่อเข้าใจความแตกต่างระหว่าง zkEVM แบบดั้งเดิมมากกว่าและ zkEVM ของ =nil; เราต้องพูดถึง ข้อจำกัดที่เกี่ยวข้องกับกระบวนการกำหนดวงจรที่อยู่เบื้องหลัง zkEVM วงจร zkEVM เป็นส่วนสำคัญที่รับผิดชอบในการพิสูจน์การเปลี่ยนสถานะว่าถูกต้อง โดยทั่วไปถูกกำหนดโดยใช้ zkDSL ที่กำหนดเองหรือเพียงแค่หนังสือเล่ม วิธีกำหนดวงจรเช่นนี้ นำมาสู่ปัญหาที่เกี่ยวข้องกับ:

  • ความปลอดภัย: ปัญหา เนื่องจากขนาดของวงจรและการจําลองแบบแมนนวลของตรรกะ EVM
  • ความสามารถในการตรวจสอบ: จำกัดความสามารถในการตรวจสอบ และ การตรวจสอบเนื่องจากความซับซ้อนและความไม่ชัดเจนของ zkDSLs ที่ใช้
  • ความสามารถในการอัพเกรด: ความซับซ้อนในการบำรุงรักษาและการอัพเกรดเนื่องจากความต้องการในการกำหนดข้อจำกัดด้วยวิธีดำเนินการเสมือน ในกรณีที่มีการเปลี่ยนแปลงของ EVM ที่เกิดขึ้น - ส่วนใหญ่ของวงจร zkEVM จะต้องทำการทำใหม่และต้องได้รับการตรวจสอบใหม่ตั้งแต่ต้น
  • ความเข้ากันได้: ความซับซ้อนของการใช้งานวงจร zkEVM ที่เข้ากันได้กับ bytecode จริง (aka Type-1) มักส่งผลให้เกิดข้อ จํากัด สําหรับการใช้งานเนื่องจากความแตกต่างใน zkEVM และพฤติกรรม EVM จริง

=nil; zkEVM กำลังแก้ปัญหาทั้งหมดเหล่านี้อย่างมีประสิทธิภาพโดยการ:

  • ปลอดภัย: วงจรควรถูกสร้างขึ้นโดยอัตโนมัติจากรหัสระดับสูงเดียวกันที่ใช้ในโหนด Ethereum ที่กำลังทำงานจริงเพื่อให้แน่ใจว่าไม่มีความแตกต่างของอัลกอริทึมที่ปรากฏ
  • Auditable: วงจรควรถูกแทนด้วยภาษาโปรแกรมระดับสูง (เช่น C++ หรือ Rust) ซึ่งควรเขียนอย่างน่าอ่านสำหรับนักพัฒนาโดยเฉลี่ยได้ง่าย
  • สามารถอัปเกรด: วงจรควรถูกกำหนดให้วิธีใดก็ตามเพื่อให้การเปลี่ยนแปลงภายใน EVM สามารถแปลง/คอมไพล์ได้อย่างง่ายเป็นวงจร zkEVM ที่พิสูจน์/กำหนดพฤติกรรมเดียวกันอย่างแน่นอน ไม่ควรมีความจำเป็นในการคอมไพล์หรือตรวจสอบใหม่ทั้งหมดที่เกิดขึ้นจากการอัปเกรดดังกล่าว
  • Bytecode Compatible (aka Type-1): การคอมไพล์วงจรจากภาษาระดับสูงนำมาสู่ความเข้ากันได้ของ bytecode และ EVM ทำให้เวลาในการทำการตลาดสำหรับ EVM applications ลดลงอย่างมาก และเวลา/ความพยายามในการพัฒนาที่จำเป็นสำหรับการบรรลุความเข้ากันได้เช่นนี้ก็ลดลง

zkEVM ที่คอมไพล์ผ่าน zkLLVM เชื่อถือได้ตามออกแบบซึ่งใช้ evmone เพื่อให้มั่นใจว่ามีความสอดคล้องอย่างสมบูรณ์กับ EVM ที่ใช้ในการผลิตของ Ethereum โดย zkLLVM (C++ หรือ Rust) จะคอมไพล์อัตโนมัติลงสู่วงจร ซึ่งหมายความว่าความผิดพลาดของมนุษย์ถูกนำออกจากระบบนิยามของวงจร

นอกจากนี้เนื่องจาก =nil; zkEVM ถูกคอมไพล์ผ่าน zkLLVM ดังนั้นมันจึงยืดหยุ่นมากขึ้น (และด้วยเหตุนี้ ป้องกันการเสี่ยงในอนาคต) มากกว่าวงจรที่กำหนดโดยมนุษย์เนื่องจากมันสามารถปรับเปลี่ยนได้ง่ายและการสร้างวงจรเป็นอัตโนมัติ นอกจากนี้มันยังสามารถตรวจสอบได้อย่างดีมาก หมายความว่าความปลอดภัยของมันไม่มีค่าในการรวม EIPs ล่าสุดที่เพิ่มเข้าไปใน Ethereum

zkRollup ด้วยความปลอดภัยและความพร้อมใช้ข้อมูลของ Ethereum

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

  • ชาร์ดหลักใช้ Ethereum เป็น DA ของมัน
  • ชิ้นส่วนที่สองมีตัวเลือกที่จะใช้ Ethereum หรือเลือกที่จะไม่มี DA ที่แตกต่างกัน

การจัดเรียงนี้ถูกกำหนดโดยการเริ่มต้นด้วยการเปิดใช้งานชาร์ดสองชนิด: ชนิดที่มีการแก้ไข DA ภายนอกแยกต่างหากและชนิดที่ไม่มี ในเฟสต่อมา เฉพาะชาร์ดในหมวดหมู่ DA เดียวกันเท่านั้นที่สามารถรวมกัน นี่หมายความว่าในระหว่างการสร้าง แต่ละบัญชีต้องถูกกำหนดให้เข้ากับหมวดหมู่ DA ที่แน่นอน

นอกจากนี้เฟรมเวิร์กนี้สามารถขยายเพื่อรวมเข้าไปด้วยประเภทอื่น ๆ ของ DA ได้

การเข้าถึงข้อมูล Ethereum โปร่งใส

หนึ่งในเป้าหมายหลักของเราคือการปรับปรุงสำหรับการประกอบแอปพลิเคชันและป้องกันการแยกแยะของ 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 ไปพร้อมกัน!

ข้อความปลดความรับผิดชอบ:

  1. บทความนี้ถูกพิมพ์โดย [nil.foundation]. ลิขสิทธิ์ทั้งหมดเป็นของผู้เขียนต้นฉบับ [nil.foundation]. หากมีข้อขัดแย้งต่อการพิมพ์ฉบับนี้ กรุณาติดต่อGate เรียนทีม และพวกเขาจะดำเนินการด้วยรวดเร็ว
  2. คำประกาศความรับผิด: มุมมองและความคิดเห็นที่แสดงในบทความนี้เป็นเพียงของผู้เขียนเท่านั้น และไม่เป็นการให้คำแนะนำในการลงทุนใดๆ
  3. การแปลบทความเป็นภาษาอื่นๆ นำมาทำโดยทีม Gate Learn หากไม่มีการกล่าวถึง การคัดลอก การกระจาย หรือการลอกเลียนบทความที่ถูกแปลนั้น จะถูกห้าม

ประกาศ zkSharding สำหรับ Ethereum

ขั้นสูง1/29/2024, 2:34:45 PM
zkSharding มีเป้าหมายที่จะให้คำแก้ตัวเลือกในการขยายมิติโดยรวมชาร์ดหลายๆ อย่างเข้าด้วยกันเป็นชั้นดำเนินการที่เป็นหนึ่งเดียว บทความนี้จะแนะนำคุณสมบัติ โครงสร้าง และแผนการในอนาคต

TL;DR

  • =nil; เป็น sharded zkRollup - แนวคิด L2 ใหม่สำหรับการขยายขนาดของ Ethereum อย่างมีความเคลื่อนไหวและปลอดภัยผ่านการดำเนินการธุรกรรมขั้นพร็อทโต้ลบนชิลด์
  • ที่มี zkSharding, =nil; มีการขยายของแนวนอนโดยไม่เสียความสะดวกของชั้นการกระทำเดียว นั่นคือ ความสะดวกสบายและความปลอดภัยทางเศรษฐกิจที่รวมอยู่
  • =nil; ให้ความสามารถในการใช้งานแบบเต็มรูปแบบกับ Ethereum ผ่านการเข้าถึงข้อมูล Ethereum ที่โปร่งใสและสามารถตรวจสอบได้
  • =nil; นำเสนอ Type-1 zkEVM ที่คอมไพล์ด้วย zkLLVM
  • การสร้างพิสูจน์อย่างรวดเร็วได้รับการรับรองจากการแข่งขันในตลาดเปิดผ่าน Proof Market โดยไม่ต้องขออนุญาต - ตลาดการสร้างพิสูจน์

บทนำเกี่ยวกับ zkSharding

ในปัจจุบันเทคโนโลยีชั้นที่ 2 มีการแลกเปลี่ยนความสามารถในการขยายของระบบเพื่อการแบ่งส่วนของสถานะ เราขอเสนอการออกแบบชั้นที่ 2 (L2) ที่ชื่อ =nil; ซึ่งทำให้ Ethereum สามารถขยายได้โดยไม่เสียประโยชน์จากสิ่งที่เหมือนกันในสภาพแวดล้อมการดำเนินการที่เป็นเอกลักษณ์โซลูชันนี้รวมอยู่ในการใช้กลไกการแบ่งส่วนแบบไดนามิกพร้อมกับการเข้าถึงข้อมูล Ethereum ที่สามารถยืนยันได้โดยใช้เทคโนโลยีซีโร่นออกแบบสำคัญประกอบด้วย:

  • zkRollup พร้อม Sharding: ส่วนหลักของ =nil; เป็นโปรโตคอลที่สามารถพิสูจน์ได้เกี่ยวกับการแบ่งส่วน ซึ่งทำให้สามารถขยายขนาดแนวนอนได้โดยไม่เสียความปลอดภัยหรือประสิทธิภาพ แนวทางนี้จะช่วยแก้ไขบางจุดของข้อจำกัดในการขยายขนาดแนวตั้งปัจจุบัน (L3, L4, ฯลฯ) โดยเฉพาะการแยกข้อมูลและ Likwiditi
  • การเข้าถึงข้อมูล Ethereum โดยตรง: ความสามารถในการเรียกข้อมูลต้นฉบับของ Ethereum จากแอปพลิเคชั่น L2 ช่วยให้เราสามารถนำแอปพลิเคชั่นที่ติดตั้งไว้แล้วมาใช้ซ้ำได้ การเข้าถึงข้อมูล L1 โดยตรงจาก L2 ยืนยันให้มีสภาพแวดล้อมที่เข้ากันได้และราบรื่นมากยิ่งขึ้น

Through zkSharding =nil; ได้รับประโยชน์จากข้อดีของการออกแบบแบบโมโนลิติกและแบบโมดูลาร์ รวมถึง:

  • ประสิทธิภาพในการขยายของระบบ

    • ไม่มีข้อจำกัดทางเลเลอร์เรื่องประสิทธิภาพเนื่องจากการดำเนินการเป็นพร้อมพรัด ประสิทธิภาพทางการเป็นประมาณ 60k การโอน ERC-20 ต่อวินาทีด้วยโหนดประมาณ 400 โหนด
    • การสร้างพิสูจน์แข็งแกร่งโดยผ่าน Proof Market ให้ความเร็วในการทำ L1-finality ที่รวดเร็วที่สุดและต้นทุนในการสร้างพิสูจน์ที่ถูกที่สุด
  • Unified Execution Environment

    • สภาพแวดล้อมการดำเนินการที่รวมกัน ทำให้ไม่มีการแบ่งแยกความปลอดภัย / ความเหลือเชื่อมในการแบ่งส่วนแต่ละส่วนเป็นส่วนหนึ่งของกลุ่มทั้งหมด
    • การลดความต้องการในการย้าย Likuiditi จาก Ethereum เป็น =nil; ให้การเข้าถึงข้อมูลของมันได้โปร่งใสสำหรับแอปพลิเคชันผ่านการบังคับให้ทุก Validator รักษารายละเอียด Ethereum เต็มรูปแบบเป็นส่วนหนึ่งของการใช้งานที่อนุญาตให้แอปพลิเคชันเข้าถึงข้อมูลโดยตรงจาก zkEVM ของ =nil;
  • ความปลอดภัย

    • การเปลี่ยนสถานะที่ได้รับความปลอดภัยโดย zkEVM ที่คอมไพล์ผ่าน zkLLVM มันให้ความปลอดภัยที่สามารถตรวจสอบได้ (เช่น ความปลอดภัยของข้อจำกัด) เนื่องจากโค้ดสามารถตรวจสอบได้ง่ายเนื่องจากวงจร zkEVM ถูกคอมไพล์จาก EVM ที่ใช้ในการผลิตในภาษาระดับสูงและไม่ได้เขียนด้วยมือ
    • เพิ่มเติมจากวันแรกที่มีการทำให้เป็นระบบกระจายบนโลกด้วยการสร้างพิสูจน์แบบกระจายที่เป็นผลมาจาก =nil; ตลาดพิสูจน์
  • ความสามารถ

    • ชนิด 1 zkEVM, fully EVM bytecode-equivalent zkEVM compiled via zkLLVM.
    • สภาพแวดล้อมที่เหมาะสำหรับแอปพลิเคชันที่มีความต้องการสูงเกี่ยวกับเวลา หน่วยความจำ และความซับซ้อนของอัลกอริทึม โดยการเพิ่มความสอดคล้องของชาร์ดเดียวกันและการนำเสนอการระบุตำแหน่งแอปพลิเคชันต่อชาร์ดเพื่อลดความล่าช้า เช่น การแลกเปลี่ยนที่ไม่มีศูนย์กลาง ตลาดพิสูจน์ ตัวสร้างลำดับเหตุการณ์/ตัวสร้างตัวสร้าง แอปพลิเคชันสถานะที่แชร์ (เรียกอีกอย่างว่าโลกอัตโนมัส ฯลฯ)

การปรับขนาดที่สามารถปรับแต่งได้

ในระดับที่ต่ำกว่า สถานะของ =nil; ถูกแบ่งเป็น Primary shard และ secondary shards หลายๆ อัน บทบาทหลักของ main shard คือการซิงโครไนส์และรวมข้อมูลจาก secondary shards มันใช้ Ethereum ทั้งในฐานข้อมูลที่มีอยู่และในการตรวจสอบสำหรับ state transition proofs เหมือนกับการดำเนินการของ zkRollups ปกติ

ชั้นเมืองรองทำหน้าที่เป็น "คนงาน" ที่ดำเนินการธุรกรรมของผู้ใช้ ชั้นเหล่านี้รักษาระหว่างสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสารสาร

แต่ละชิ้นผ่านการควบคุมโดยคณะกรรมการผู้ตรวจสอบ มีการหมุนเวียนของคณะกรรมการผู้ตรวจสอบเหล่านี้ในชิ้นต่างๆเป็นระยะ นอกจากนี้ การอัพเดตสถานะของชิ้นถูกตรวจสอบกับชิ้นหลักโดยใช้ zkEVM

เพื่อแสดงขั้นตอนการทําธุรกรรมจากการเริ่มต้นโดยผู้ใช้เพื่อยืนยันบน Ethereum ให้พิจารณาขั้นตอนต่อไปนี้:

  • ผู้ใช้ลงนามในธุรกรรม (tx) และส่งออกไปยังเครือข่าย
  • Validators ในชาร์ด S ที่อยู่ที่กระเป๋าเงินของผู้ใช้ จะวาง tx เข้าไปใน mempool
  • Validators เหล่านี้จากนั้นสร้างบล็อกใหม่ B(1/S)
  • ค่าแฮชของ B(1/S) ถูกบันทึกบนชาร์ดหลักภายในบล็อก B(1/M)
  • การพิสูจน์การเปลี่ยนสถานะสำหรับ B(1/S) ถูกสร้างและตรวจสอบโดยชิ้นส่วนหลักในบล็อก B(2/M)
  • ส่งพิสูจน์การเปลี่ยนสถานะสำหรับ B(2/M) ไปที่ Ethereum เพื่อการตรวจสอบและเชื่อมโยงกับข้อมูลที่จำเป็นเพื่อการตรวจสอบความพร้อมใช้งานของข้อมูล
  • เมื่อกระบวนการนี้เสร็จสิ้น ธ.ส. ได้รับการยืนยันโดย Ethereum

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

เมื่อบัญชีทั้งหมดถูกกระจายไปอยู่ในชาร์ดทั้งหมด นี่อาจดูเหมือนกับปัญหาการแยกข้อมูลที่พบในวิธีการสร้างโปรแกรมอย่างเฉพาะเจาะจง อย่างไรก็ตาม ความแตกต่างสำคัญอยู่ที่การจัดการการสื่อสารระหว่างชาร์ดนั้น: มันถูกบูรณะโดยตรงลงในโปรโตคอลโดยรวม แทนที่จะถูกจัดการโดยสะพานภายนอกแยกต่างหาก

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

zkEVM ผ่าน zkLLVM: ประเภท-1 ปลอดภัย สามารถตรวจสอบและมีประสิทธิภาพ zkEVM

=nil;s zkEVM เป็น zkEVM ชนิดที่ 1 ที่คอมไพล์ด้วย zkLLVM เพื่อเข้าใจความแตกต่างระหว่าง zkEVM แบบดั้งเดิมมากกว่าและ zkEVM ของ =nil; เราต้องพูดถึง ข้อจำกัดที่เกี่ยวข้องกับกระบวนการกำหนดวงจรที่อยู่เบื้องหลัง zkEVM วงจร zkEVM เป็นส่วนสำคัญที่รับผิดชอบในการพิสูจน์การเปลี่ยนสถานะว่าถูกต้อง โดยทั่วไปถูกกำหนดโดยใช้ zkDSL ที่กำหนดเองหรือเพียงแค่หนังสือเล่ม วิธีกำหนดวงจรเช่นนี้ นำมาสู่ปัญหาที่เกี่ยวข้องกับ:

  • ความปลอดภัย: ปัญหา เนื่องจากขนาดของวงจรและการจําลองแบบแมนนวลของตรรกะ EVM
  • ความสามารถในการตรวจสอบ: จำกัดความสามารถในการตรวจสอบ และ การตรวจสอบเนื่องจากความซับซ้อนและความไม่ชัดเจนของ zkDSLs ที่ใช้
  • ความสามารถในการอัพเกรด: ความซับซ้อนในการบำรุงรักษาและการอัพเกรดเนื่องจากความต้องการในการกำหนดข้อจำกัดด้วยวิธีดำเนินการเสมือน ในกรณีที่มีการเปลี่ยนแปลงของ EVM ที่เกิดขึ้น - ส่วนใหญ่ของวงจร zkEVM จะต้องทำการทำใหม่และต้องได้รับการตรวจสอบใหม่ตั้งแต่ต้น
  • ความเข้ากันได้: ความซับซ้อนของการใช้งานวงจร zkEVM ที่เข้ากันได้กับ bytecode จริง (aka Type-1) มักส่งผลให้เกิดข้อ จํากัด สําหรับการใช้งานเนื่องจากความแตกต่างใน zkEVM และพฤติกรรม EVM จริง

=nil; zkEVM กำลังแก้ปัญหาทั้งหมดเหล่านี้อย่างมีประสิทธิภาพโดยการ:

  • ปลอดภัย: วงจรควรถูกสร้างขึ้นโดยอัตโนมัติจากรหัสระดับสูงเดียวกันที่ใช้ในโหนด Ethereum ที่กำลังทำงานจริงเพื่อให้แน่ใจว่าไม่มีความแตกต่างของอัลกอริทึมที่ปรากฏ
  • Auditable: วงจรควรถูกแทนด้วยภาษาโปรแกรมระดับสูง (เช่น C++ หรือ Rust) ซึ่งควรเขียนอย่างน่าอ่านสำหรับนักพัฒนาโดยเฉลี่ยได้ง่าย
  • สามารถอัปเกรด: วงจรควรถูกกำหนดให้วิธีใดก็ตามเพื่อให้การเปลี่ยนแปลงภายใน EVM สามารถแปลง/คอมไพล์ได้อย่างง่ายเป็นวงจร zkEVM ที่พิสูจน์/กำหนดพฤติกรรมเดียวกันอย่างแน่นอน ไม่ควรมีความจำเป็นในการคอมไพล์หรือตรวจสอบใหม่ทั้งหมดที่เกิดขึ้นจากการอัปเกรดดังกล่าว
  • Bytecode Compatible (aka Type-1): การคอมไพล์วงจรจากภาษาระดับสูงนำมาสู่ความเข้ากันได้ของ bytecode และ EVM ทำให้เวลาในการทำการตลาดสำหรับ EVM applications ลดลงอย่างมาก และเวลา/ความพยายามในการพัฒนาที่จำเป็นสำหรับการบรรลุความเข้ากันได้เช่นนี้ก็ลดลง

zkEVM ที่คอมไพล์ผ่าน zkLLVM เชื่อถือได้ตามออกแบบซึ่งใช้ evmone เพื่อให้มั่นใจว่ามีความสอดคล้องอย่างสมบูรณ์กับ EVM ที่ใช้ในการผลิตของ Ethereum โดย zkLLVM (C++ หรือ Rust) จะคอมไพล์อัตโนมัติลงสู่วงจร ซึ่งหมายความว่าความผิดพลาดของมนุษย์ถูกนำออกจากระบบนิยามของวงจร

นอกจากนี้เนื่องจาก =nil; zkEVM ถูกคอมไพล์ผ่าน zkLLVM ดังนั้นมันจึงยืดหยุ่นมากขึ้น (และด้วยเหตุนี้ ป้องกันการเสี่ยงในอนาคต) มากกว่าวงจรที่กำหนดโดยมนุษย์เนื่องจากมันสามารถปรับเปลี่ยนได้ง่ายและการสร้างวงจรเป็นอัตโนมัติ นอกจากนี้มันยังสามารถตรวจสอบได้อย่างดีมาก หมายความว่าความปลอดภัยของมันไม่มีค่าในการรวม EIPs ล่าสุดที่เพิ่มเข้าไปใน Ethereum

zkRollup ด้วยความปลอดภัยและความพร้อมใช้ข้อมูลของ Ethereum

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

  • ชาร์ดหลักใช้ Ethereum เป็น DA ของมัน
  • ชิ้นส่วนที่สองมีตัวเลือกที่จะใช้ Ethereum หรือเลือกที่จะไม่มี DA ที่แตกต่างกัน

การจัดเรียงนี้ถูกกำหนดโดยการเริ่มต้นด้วยการเปิดใช้งานชาร์ดสองชนิด: ชนิดที่มีการแก้ไข DA ภายนอกแยกต่างหากและชนิดที่ไม่มี ในเฟสต่อมา เฉพาะชาร์ดในหมวดหมู่ DA เดียวกันเท่านั้นที่สามารถรวมกัน นี่หมายความว่าในระหว่างการสร้าง แต่ละบัญชีต้องถูกกำหนดให้เข้ากับหมวดหมู่ DA ที่แน่นอน

นอกจากนี้เฟรมเวิร์กนี้สามารถขยายเพื่อรวมเข้าไปด้วยประเภทอื่น ๆ ของ DA ได้

การเข้าถึงข้อมูล Ethereum โปร่งใส

หนึ่งในเป้าหมายหลักของเราคือการปรับปรุงสำหรับการประกอบแอปพลิเคชันและป้องกันการแยกแยะของ 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 ไปพร้อมกัน!

ข้อความปลดความรับผิดชอบ:

  1. บทความนี้ถูกพิมพ์โดย [nil.foundation]. ลิขสิทธิ์ทั้งหมดเป็นของผู้เขียนต้นฉบับ [nil.foundation]. หากมีข้อขัดแย้งต่อการพิมพ์ฉบับนี้ กรุณาติดต่อGate เรียนทีม และพวกเขาจะดำเนินการด้วยรวดเร็ว
  2. คำประกาศความรับผิด: มุมมองและความคิดเห็นที่แสดงในบทความนี้เป็นเพียงของผู้เขียนเท่านั้น และไม่เป็นการให้คำแนะนำในการลงทุนใดๆ
  3. การแปลบทความเป็นภาษาอื่นๆ นำมาทำโดยทีม Gate Learn หากไม่มีการกล่าวถึง การคัดลอก การกระจาย หรือการลอกเลียนบทความที่ถูกแปลนั้น จะถูกห้าม
Начните торговать сейчас
Зарегистрируйтесь сейчас и получите ваучер на
$100
!