บทความนี้กล่าวถึงแนวคิดเกี่ยวกับวิวัฒนาการและเหตุผลในการออกแบบของโซลูชันการขยายค่าสะ
ที่มา: SeeDAO
ที่มา: SeeDAO
โครงการ L2 ได้รับความสนใจอีกครั้ง
ในฐานะตัวแทนของเส้นทางการขยาย Rollup ใน L2 หลังจาก Arbitrum ออกอากาศ ยุค zkSync จะเปิดตัว เบื้องหลังการออกแบบและแผนงานใหม่ที่ไม่รู้จบ อะไรคือแนวทางหลักของ Rollup และแนวคิดเชิงวิวัฒนาการคืออะไร มาดูกันเลย
ประเด็นหลักของบทความนี้:
แนวคิดการขยาย L1 ที่เขียนขึ้นสำหรับนักเรียนชั้นประถมศึกษาปีที่ 3
ออกแบบโซลูชัน Rollup ตั้งแต่เริ่มต้น
วิธีใช้การพิสูจน์ความรู้เป็นศูนย์เพื่อทำให้ Rollup พัฒนาขึ้นอีกครั้ง
จากการเปรียบเทียบ
สำหรับ Bitcoin และ Ethereum ตั้งแต่เกิด มีข้อวิจารณ์ที่ใหญ่ที่สุดสองข้อจากผู้ใช้ทั่วไป:
ช้า: เลนเดิมแคบและหากมีรถมากเกินไป การจราจรจะถูกปิดกั้น
แพง: โทลเวย์ Pingfeng นั้นไม่ถูกเลย หากคุณต้องการผ่านช่วงเวลาเร่งด่วนอย่างรวดเร็ว คุณต้องใช้ "ความสามารถในการเงิน" เพื่อเพิ่มเงินและให้คนงานเหมืองบินเฮลิคอปเตอร์ไปรับคุณ
การวิพากษ์วิจารณ์ทั้งสองนี้เกิดจากสองปัจจัยในการออกแบบบล็อกเชน:
ความจุของบล็อก: คล้ายกับเลน ยิ่งความจุของบล็อกมากเท่าใด รถก็ยิ่งสามารถรองรับได้มากเท่านั้น และโอกาสที่จะถูกบล็อกก็จะน้อยลงเท่านั้น
กลไกจูงใจ: ไม่ว่าถนนจะใหญ่แค่ไหนก็มีความเป็นไปได้ที่จะถูกปิดกั้น ใครได้รับอนุญาตให้ผ่านไปก่อนในเวลานี้ขึ้นอยู่กับว่าใครรีบ แต่คุณไม่สามารถฟังคำพูดของผู้คนได้ มันขึ้นอยู่กับ ความเต็มใจที่จะจ่าย เช่น เรียกรถพยาบาลก็หลายร้อย
หากบล็อกเชนสามารถเป็นเหมือนถนนรถแล่นได้จริงๆ วิธีแก้ปัญหาพื้นฐานก็คือการขยายถนนให้กว้างขึ้น และในขณะเดียวกันก็ร่วมมือกับราคาเพื่อชี้นำเวลาออกไปข้างนอก และอย่าออกไปถ้าคุณไม่ได้อยู่ใน รีบ.
อย่างไรก็ตาม แม้ว่าการขยายเลนและเพิ่มความจุของบล็อกจะเป็นวิธีการแก้ปัญหาการจราจรที่มีประสิทธิภาพ แต่ก็เป็นทางเลือกสุดท้ายในการออกแบบบล็อกเชน เนื่องจากขนาดบล็อกที่ใหญ่ขึ้น ข้อกำหนดด้านฮาร์ดแวร์สำหรับนักขุดก็จะยิ่งสูงขึ้น และนักขุดที่สามารถตอบสนองความต้องการก็จะยิ่งน้อยลง ตามแนวคิดนี้ หากคุณต้องการประมวลผลธุรกรรมหลายพันรายการต่อวินาทีเหมือน Visa คุณจะจบลงด้วยการสร้างอีก Visa แบบรวมศูนย์นั้นสวนทางกับจุดประสงค์หลักของความไม่ไว้วางใจของบล็อกเชน
มีวิธีอื่นอีกไหม? ได้ นอกจากคำแนะนำด้านเวลาแล้ว เรายังสามารถเพิ่มประสิทธิภาพพื้นที่ ซึ่งรวมถึงแต่ไม่จำกัดเพียง:
เปิดเลนต่างๆ เลนหนึ่งสำหรับรถบรรทุกขนาดใหญ่ เลนหนึ่งสำหรับรถยนต์ และอีกเลนสำหรับรถโดยสารโดยไม่กีดขวางกัน — จากแนวคิดนี้ เราสามารถใช้เมนเชน ไซด์เชน หรือพลาสมาได้ด้วยจุดแข็งของตัวเอง
ปรับการออกแบบเส้นทางให้เหมาะสม เบี่ยงการจราจรให้เหมาะสม ไม่ต้องเข้าเมืองไปทำอะไร ต้องออกถนนเส้นหลักนี้ ต้องผ่านด่านตรงนี้ —— จากแนวคิดนี้ เราสามารถแยกชิ้นส่วน (Sharding) ได้
ทำไมคุณต้องออกไป? ไม่สายเกินไปที่จะมีการประชุมทางไกลและบรรลุข้อตกลง และไม่สายเกินไปที่จะลงนามในข้อตกลงแบบออฟไลน์ ——จากแนวคิดนี้ เราสามารถมีช่องทางของรัฐ (State Channel)
คุณไม่จำเป็นต้องขับรถเองเมื่อออกไปข้างนอก คุณยังสามารถใช้บริการร่วมกันหรือใช้บริการขนส่งสาธารณะได้ด้วย ตามแนวคิดนี้ เรามีตัวเอกของบทความนี้คือ Rollup
ในฐานะที่เป็นรถบัสบนบล็อกเชน กุญแจสำคัญในการ Rollup คือการประหยัดพื้นที่และน้ำมัน (Gas ปุนตั้งใจ):
ประหยัดพื้นที่จึงไม่ติดขัดง่ายและค่าผ่านทางที่แต่ละคนใช้ร่วมกันนั้นน้อยกว่าการขับรถด้วยตัวเองมาก
ประหยัดน้ำมันดังนั้นราคาตั๋วจึงใกล้เคียงกับผู้คนและทุกคนสามารถจ่ายได้
ด้วยวิธีนี้ Rollup จะแก้ไขช่อง "ช้า" และ "แพง" สองช่อง
กลับไปที่ blockchain และดูแผนการเฉพาะของ Rollup
ออกแบบโซลูชัน Rollup ตั้งแต่เริ่มต้น
แทนที่จะดูที่คำตอบมาตรฐาน (ไม่ต้องพูดถึงว่าไม่มี) จะดีกว่าถ้าคุณมีใจจดใจจ่อและจินตนาการว่าคุณจะทำอะไรเมื่อคุณได้รับมอบหมายให้ออกแบบ Rollup สำหรับ Ethereum
เราอาจเริ่มจากสองมุมมองของการลดต้นทุนการประมวลผล (ประหยัดน้ำมัน) และลดค่าใช้จ่ายในการจัดเก็บ (ประหยัดพื้นที่) และก่อนอื่นเสนอโซลูชันที่รุนแรงกว่าที่เรียกว่า Rollup 1.0
Rollup 1.0
Rollup 1.0 ประกอบด้วย 3 ประเด็นหลัก:
มีผู้ให้บริการ (Operator) ที่รวบรวมธุรกรรม "คาร์พูล" ของทุกคน (Transaction) และ "ส่งคำสั่ง" เมื่อคาร์พูลเต็มหรือไม่แล้วแต่เวลาที่ตกลงกัน โดยคำนึงถึง ราคาและเวลาที่เหมาะสม
การคำนวณทั้งหมดที่เกี่ยวข้องกับธุรกรรมที่ส่งโดยทุกคนจะดำเนินการแบบออฟไลน์โดยผู้ให้บริการรายนี้ เนื่องจากการคำนวณแบบออฟไลน์นั้นเร็วกว่าแบบออนเชน และการคำนวณมักจะเป็นค่าใช้จ่ายจำนวนมากของออนเชน ซึ่งสามารถประหยัดเงินได้มาก ;
หลังจากการคำนวณ สถานะที่อัปเดต (เช่น ยอดคงเหลือล่าสุดในบัญชีของคุณ) จะได้รับและจัดเก็บไว้ในห่วงโซ่ เพื่อให้ต้นทุนการจัดเก็บลดลงมาก
พูดง่ายๆ ก็คือการรวบรวมคำขอธุรกรรมของทุกคนอย่างสม่ำเสมอและเชิงปริมาณ และหลังจากการคำนวณแบบออฟไลน์แล้ว เฉพาะผลการคำนวณเท่านั้นที่ได้รับการยืนยันในห่วงโซ่
โซลูชันนี้แก้ปัญหาจุดบกพร่องหลักสองจุดของ "ช้า" และ "แพง" ได้อย่างสมบูรณ์แบบ แต่ดูเหมือนว่าจะสร้างปัญหาใหม่:
สิ่งจูงใจ: ใครจะให้บริการ "carpooling" และอะไรคือผลประโยชน์
ปัญหาการตรวจสอบ (การเซ็นเซอร์): ผู้ให้บริการจงใจไม่ดำเนินการตามคำสั่งของฉัน (หรือวางสายหรือหยุดทำงาน) ฉันควรทำอย่างไร;
ปัญหาการฉ้อโกง (Fraud) : จะทำอย่างไรหากผู้ให้บริการโกงและยุ่งเกี่ยวกับผลการคำนวณจนทำให้ต้องโอนเงินให้คนอื่นและเงินถูกยักยอกไป
สำหรับปัญหาใหม่ทั้งสามนี้ เราสามารถทำซ้ำเวอร์ชันของแผนได้
Rollup 2.0
ปัญหาแรงจูงใจจะแก้ไขได้ดีที่สุด และปัญหาที่แก้ได้ด้วยเงินไม่ใช่ปัญหา ผู้ให้บริการสามารถแชร์ค่า "carpooling" เท่าๆ กัน และคิด "ทิป" เพิ่มเล็กน้อย ถึงกระนั้น ก็ยัง win-win สถานการณ์กับคน "carpooling"
ปัญหาการตรวจสอบเป็นปัญหาเล็กน้อย แต่วิธีแก้ไขนั้นพบได้ทั่วไปในสาขาบล็อกเชน และนั่นคือการกระจายอำนาจ คนกลุ่มหนึ่งเป็นผู้ให้บริการดีกว่าผู้ให้บริการรายเดียว ใครๆ ก็สามารถเป็นผู้ให้บริการได้ซึ่งดีกว่าคนกลุ่มเดียว ในการเล่นแบบหลัง หากผู้ให้บริการทั้งหมดไม่ดี คุณสามารถเป็นผู้ให้บริการด้วยตัวเอง หรือไปที่ L1 โดยตรงเพื่อเริ่มอนุญาโตตุลาการ
การฉ้อโกงเป็นเรื่องยากขึ้นเล็กน้อย สามารถแบ่งออกเป็นสองคำถาม ข้อแรกคือวิธีระบุการฉ้อโกง และอีกข้อคือวิธีป้องกัน
ก่อนอื่น เพื่อระบุการฉ้อฉล เราจำเป็นต้องทราบข้อมูลการทำธุรกรรม (Transaction) ของทุกคน สถานะก่อนการทำธุรกรรม (State) เพื่อที่จะคำนวณสถานะใหม่ (State') หลังการทำธุรกรรม และเปรียบเทียบกับสถานะใหม่ เก็บไว้ในห่วงโซ่ของผู้ให้บริการ ถ้าเหมือนกัน แสดงว่าผู้ให้บริการมีความซื่อสัตย์ มิฉะนั้น แสดงว่าเขาโกหก อย่างไรก็ตาม เราไม่ทราบข้อมูลธุรกรรมเนื่องจากไม่ได้อยู่บนเครือข่าย เป็นผลให้เราได้แต่สงสัยและไม่สามารถตัดสินได้ว่าผู้ให้บริการมีความซื่อสัตย์หรือไม่
ดังนั้นวิธีป้องกันการฉ้อฉลที่ดีที่สุดคือทำให้ไม่เกิดการฉ้อโกงซึ่งค่อนข้างยากเว้นแต่จะมีการตรวจสอบการคำนวณของผู้ให้บริการทุกครั้งบนเครือข่ายแต่วิธีนี้จะไม่ได้เปรียบ" คาร์พูล". เราจึงทำได้เพียงถอยหลังปล่อยให้ต้นทุนการฉ้อโกงสูงมากและทำให้ผู้ให้บริการมีสกินในเกมเช่นการจ่ายเงินมัดจำ (Stake) ซึ่งจะถูกยึดหากตรวจพบการฉ้อโกง (วิธีนี้เรียกว่าฉันทามติทางสังคม ซึ่งเป็นของการรักษาความปลอดภัยตามเกม และถูกกล่าวถึงใน "รายสัปดาห์ #3" ด้วย)
Rollup 3.0
Rollup 2.0 นั้นไม่เลว แต่ปัญหาในการระบุการฉ้อโกงไม่ได้รับการแก้ไข
ตามอนุมานก่อนหน้านี้ ในการระบุการฉ้อฉล เราต้องทราบข้อมูลการทำธุรกรรม ดังนั้นข้อมูลส่วนนี้จึงต้องอยู่ในสายโซ่เดียวกันกับข้อมูลสถานะ
ใครจะหาว่าพวกเขาฉ้อฉล? เห็นได้ชัดว่านี่ไม่น่าจะเป็นผู้ใช้ทั่วไป เพราะเป็นไปไม่ได้ที่ทุกคนจะติดตามทุกความเคลื่อนไหวของผู้ให้บริการตลอด 7 x 24 ชั่วโมง ดังนั้นจึงเป็นได้แค่ "นักล่าเงินรางวัล" (Validator) มืออาชีพเท่านั้น หาก "นักล่าเงินรางวัล" แจ้งการฉ้อโกงภายใน 7 วันหลังจากผู้ให้บริการ "ส่งคำสั่ง" และตรวจสอบพบว่าเป็นความจริง ธุรกรรมนั้นจะถูกยกเลิกและผู้ให้บริการจะถูกลงโทษ แน่นอน ในทำนองเดียวกัน "นักล่าเงินรางวัล" ก็ต้องการสิ่งจูงใจเช่นกัน ตัวอย่างเช่น หลังจากพบการฉ้อฉลจะมีการมอบเงินมัดจำส่วนหนึ่งของผู้ให้บริการให้กับ "นักล่าเงินรางวัล" (เพียงบางส่วนเพื่อหลีกเลี่ยงการสมรู้ร่วมคิดระหว่าง ผู้ให้บริการและนักล่าเงินรางวัล)
Rollup 4.0
ในขั้นตอน Rollup 3.0 โซลูชันทั้งหมดสามารถทำงานได้อย่างราบรื่น แต่มีค่าใช้จ่ายใหม่เข้ามา ค่าใช้จ่ายรวมถึง:
ค่าธรรมเนียมสำหรับผู้ให้บริการ (รวมถึงค่าใช้จ่ายและ "ทิป")
ค่าใช้จ่ายในการจัดเก็บบนเครือข่ายของธุรกรรมและข้อมูลสถานะ
เมื่อ "นักล่าค่าหัว" เชื่อว่าผู้ให้บริการนั้นฉ้อฉล ค่าใช้จ่ายในการคำนวณเพื่อยืนยันว่าสิ่งที่เขาพูดนั้นเป็นความจริงในห่วงโซ่
ข้อมูลการทำธุรกรรม
ข้อมูลการทำธุรกรรม
ด้วยวิธีเฉพาะเจาะจง ธุรกรรมหลายรายการจะถูกรวมเข้าด้วยกัน และพื้นที่ที่ใช้อาจน้อยกว่าผลรวมของพื้นที่ว่างที่ธุรกรรมแต่ละรายการใช้
ยกตัวอย่างธุรกรรมการโอน ETH ที่ง่ายที่สุด เราแยกองค์ประกอบเนื้อหาของแต่ละธุรกรรม และเราจะเห็นว่าพื้นที่ลายเซ็นคิดเป็นสัดส่วนที่มากที่สุด เราสามารถรวมลายเซ็นของธุรกรรมทั้งหมดเป็นหนึ่งเดียว (Key Aggregation) ซึ่งช่วยประหยัดพื้นที่จัดเก็บจำนวนมาก (คล้ายกับ Schnorr ใน Bitcoin) นอกจากนี้ เรายังสามารถเพิ่มประสิทธิภาพส่วนอื่นๆ เช่น กำจัด Nonce และเลือก "อ้วนและผอม" ให้ได้มากที่สุดเมื่อ "ใช้รถร่วมกัน" และ "คนที่ใช้รถร่วมกัน" ที่เหมาะสมที่สุดเพื่อเพิ่มการใช้งาน "รถ" " ช่องว่าง.

ที่มา: https://vitalik.ca/general/2021/01/05/rollup.html
เพียงสามหรือสองครั้ง ขนาดของธุรกรรมการโอน ETH แต่ละรายการลดลงจาก 112 ไบต์เป็น 12 ไบต์ ซึ่งใกล้เคียงกับหนึ่งในสิบของธุรกรรมก่อนหน้านี้ แน่นอนว่ายังมีวิธีอื่นในการบีบอัดข้อมูลธุรกรรมเพิ่มเติม
ในการใช้งานจริง เราสามารถติดตั้งวิธีการดังกล่าวในสัญญาที่ปรับใช้บนห่วงโซ่:
ฟังก์ชัน storeTxData (ข้อมูลการโทรแบบไบต์) ภายนอก { // ไม่ต้องทำอะไร}
จากนั้นทุกครั้งที่ "carpooling" สำเร็จ ข้อมูลธุรกรรมที่ผสานและบีบอัดจะถูกส่งผ่านไปยังวิธีนี้เป็น calldata ไม่จำเป็นต้องจัดเก็บ Calldata อย่างถาวรและหลังจากช่วงท้าทายการเผยแพร่ฉันทามติทางสังคม (ช่วงท้าทาย) จะถูกตัดออก (พรุน) ไม่สำคัญว่าราคาจะต่ำมากและจะถูกกว่าด้วยการใช้งาน EIP เช่น Danksharding และ Data Blob รูปแบบของการใช้ L1 กับการกระจายการจัดเก็บข้อมูล (Data Availability) จะเป็นทางการมากขึ้นด้วย
ข้อมูลสถานะ
เมื่ออัปโหลดข้อมูลธุรกรรมไปยังเครือข่ายแล้ว ทุกคนสามารถคำนวณสถานะที่อัปเดตผ่านข้อมูลธุรกรรมได้ และข้อมูลสถานะไม่จำเป็น เราสามารถเก็บ Merkel Root ของข้อมูลสถานะได้เท่านั้น ซึ่งใช้เพื่ออนุญาตให้ผู้ใช้ทั่วไป ("คาร์พูล") ยื่นขอถอนโดยตรงไปยัง L1 เมื่อผู้ให้บริการไม่ให้ความร่วมมือ และอาศัย Merkel Proof เพื่อพิสูจน์ว่าพวกเขามีเงิน ในบัญชีของพวกเขา
ค่าใช้จ่ายในการอนุญาโตตุลาการฉ้อโกง
เมื่อ "นักล่าเงินรางวัล" รายงานการฉ้อฉลไปยังผู้ให้บริการ ระบบจะทำการคำนวณสัญญาออนไลน์ (เล่นซ้ำ) เพียงครั้งเดียวและเปรียบเทียบผลลัพธ์ของสถานะ ซึ่งเป็นไปได้ในทางทฤษฎี อย่างไรก็ตาม ต้นทุนในการทำเช่นนั้นไม่ต่ำ (แม้ว่าจะดีอยู่แล้ว) และประการที่สองคือผลรวมของ Gas ของการทำธุรกรรมที่รวมอยู่ใน "รายการ carpooling" ของ Rollup อาจเกินขีดจำกัด Gas ของ Ethereum ทำให้เป็นไปไม่ได้ เพื่อตรวจสอบ
ดังนั้น อนุญาโตตุลาการจำเป็นต้องลดภาระ และวิธีการลดภาระก็คือการทำให้การดำเนินการคำนวณที่ไม่จำเป็นออกจากห่วงโซ่โดยธรรมชาติ หนึ่งในวิธีแก้ปัญหานี้เรียกว่า Interactive Proving กระบวนการทั่วไปมีดังนี้:
"นักล่าค่าหัว" จ่ายเงินมัดจำ จากนั้นจึงรายงาน และแบ่งกระบวนการคำนวณทั้งหมดออกเป็น n ส่วนตามลำดับ โดยชี้ให้เห็นว่าผู้ให้บริการมีการฉ้อโกงในส่วน k (1 ≤ k ≤ n)
ผู้ให้บริการเจาะลึกและแยกส่วน k ออกเป็นส่วน k และชี้ให้เห็นว่าส่วนใดของ "นักล่าเงินรางวัล" ไม่ถูกต้อง
วนไปวนมาแบบนี้จะได้รู้ว่าการคำนวณแบบเจาะลึกรื้อไม่ได้อีกต่อไป เช่น "นักล่าเงินรางวัล" คิดว่า 1+ 1 = 2 ผู้ให้บริการคิดว่า 1+ 1 = 3;
ในเวลานี้ สัญญาบนห่วงโซ่เข้าแทรกแซง คำนวณ 1+1 และได้รับ 2 จึงตัดสินว่าผู้ให้บริการฉ้อฉล ยึดเงินฝาก และให้รางวัลแก่ "นักล่าเงินรางวัล" ส่วนหนึ่ง
(ในระหว่างกระบวนการทั้งหมด หากฝ่ายใดฝ่ายหนึ่งไม่ตอบกลับภายในเวลาที่กำหนด ฝ่ายนั้นจะล้มเหลว)
ด้วยวิธีนี้ ค่าใช้จ่ายในการอนุญาโตตุลาการในห่วงโซ่ทั้งหมดจึงต่ำมาก
ต้องบอกว่า เราได้สร้างโซลูชัน Rollup อย่างสมบูรณ์แล้ว เนื่องจากแผนการนี้ถือว่าผู้ให้บริการมีความซื่อสัตย์โดยปริยาย เว้นแต่จะมีรายงาน "นักล่าเงินรางวัล" ฝ่ายนี้จึงเรียกว่าการรวมพลของผู้มองโลกในแง่ดี ซึ่งเรียกว่า การรวมพลในแง่ดี
ดังนั้น Rollup 4.0 ของเราจึงเป็นทางออกที่ดีที่สุดหรือไม่?
วิวัฒนาการใหม่แบบโรลอัพ
หลังจากทำซ้ำหลายครั้ง Rollup 4.0 ยังมีข้อบกพร่องบางประการ:
การฉ้อฉลจำเป็นต้องถูกค้นพบโดย "นักล่าเงินรางวัล" แต่ถ้าไม่มีการฉ้อโกงเป็นเวลานาน "นักล่าเงินรางวัล" อาจเลิกกิจการเพราะไม่ทำกำไร ดังนั้นจะมีช่องว่าง (แม้ว่าจะไม่น่าเป็นไปได้เพราะ การประยุกต์ใช้ห่วงโซ่ Rollup มีความเป็นไปได้สูงที่ผู้มีส่วนได้ส่วนเสียที่เกี่ยวข้อง เช่น พ่อค้าจะทำหน้าที่เป็น "นักล่าเงินรางวัล");
เพื่อให้แน่ใจว่าไม่มีการฉ้อโกง ตามฉันทามติทางสังคม คุณต้องรอเป็นเวลาหลายวัน ซึ่งจะส่งผลต่อการดำเนินการ เช่น การถอนเงิน
มีข้อมูลจำนวนมากในห่วงโซ่ แต่ก็ยังมีค่าใช้จ่าย
ปัจจุบัน หากขยายความจุโดย Rollup 1 ชั้น ปริมาณงานอาจเพิ่มขึ้น 10 เท่า เป็นไปได้ไหมที่จะสูงกว่านี้?
มีวิธีแก้ปัญหาที่สามารถทำให้การฉ้อฉลเป็นไปไม่ได้เลย ทำให้ขั้นสุดท้าย (Finality) เร็วขึ้น ทำให้จำเป็นต้องอัปโหลดข้อมูลไปยังเชนน้อยลง และทำให้มีการขยายลำดับความสำคัญมากขึ้นหรือไม่ ฉันไม่ต้องการมากเกินไป แต่มีวิธีแก้ปัญหาประเภทหนึ่งที่สามารถตอบสนองจินตนาการเกือบทั้งหมดได้ — Zero Knowledge Rollup (เรียกสั้นๆ ว่า ZK-Rollup)
ZK-Rollup เป็นแนวคิดการยกเลิกโดยใช้ Zero-knowledge Proof (ZKP) ที่เรียกว่า ZKP หมายถึงเทคโนโลยีที่โน้มน้าวอีกฝ่ายว่าคุณทราบข้อมูลนี้โดยไม่เปิดเผยข้อมูลที่ละเอียดอ่อนใดๆ เพื่ออธิบาย ZKP มีสองตัวอย่างที่ฉันชอบ:
ลองนึกภาพว่าอยู่ในเมืองในยุโรปยุคกลาง ฉันมีแผนที่ขุมทรัพย์ที่มีเครื่องหมายสมบัติอยู่ เพื่อพิสูจน์ให้คุณเห็นว่าฉันมีแผนที่ขุมทรัพย์ แต่โดยไม่ได้แจ้งตำแหน่งที่แน่นอนของสมบัติ ฉันจึงปิดตาคุณ ลากคุณขึ้นรถม้า และขับรถไปรอบเมืองครึ่งชั่วโมงเพื่อให้แน่ใจว่าคุณ หลงทิศหลงทาง สุดท้ายก็ถึงที่หมาย ลงจากรถ โชว์สมบัติ แล้วพากลับ นี่เป็นรูปแบบที่ไร้เดียงสาของ ZKP
การเปรียบเทียบอื่นเป็นเรื่องธรรมดามากขึ้น สมมติว่ามีปริศนาซูโดกุ ฉันรู้คำตอบ แต่คุณไม่รู้ แต่คุณไม่เชื่อว่าฉันรู้ ฉันต้องการพิสูจน์ให้คุณเห็นว่าฉันรู้ แต่ฉันไม่ต้องการให้คุณรู้คำตอบ จะทำอย่างไร? ฉันสามารถวางซูโดกุบนโต๊ะด้วยการ์ด แล้วใส่ตัวเลขที่เปิดไว้ด้านบนและตัวเลขที่ต้องกรอกลงไป และให้คุณเลือกตรวจคำตอบของฉันตามแถวหรือคอลัมน์ ถ้าเรียงตามแถว ผมจะจัดกลุ่มตัวเลขในแต่ละแถวเข้าด้วยกัน แบ่งมันออก แล้วแสดงให้คุณเห็นว่าแต่ละแถวคือ 1 ถึง 9 ไม่เป็นไรที่จะทำซ้ำหลาย ๆ ครั้ง ดังนั้นคุณจึงเชื่อได้ว่าฉันรู้คำตอบจริง ๆ และมีความเป็นไปได้สูง นี่เป็นหนึ่งในวิธีการพิสูจน์แบบโต้ตอบของ ZKP (เนื่องจากเป็นการยากที่จะบรรลุการโต้ตอบแบบเรียลไทม์บนเครือข่ายบล็อกเชน โดยทั่วไปจะใช้การพิสูจน์แบบไม่โต้ตอบ และความท้าทายแบบสุ่มจะถูกสร้างขึ้นโดยฟังก์ชันแฮช)
ในแง่ที่เข้มงวดน้อยกว่าแนวคิดหลักของ ZKP คือผู้พิสูจน์ (Prover) ก่อนซ่อนความรู้ลับ "กระทำ" (กระทำ) จากนั้นผู้ตรวจสอบ (Verifier) เริ่มการท้าทายแบบสุ่ม (Challenge) เท่านั้น ถ้าเขาสามารถผ่านความท้าทายได้สำเร็จ ก็มีความเป็นไปได้สูงที่เขามีความรู้ความลับที่สอดคล้องกัน
ZKP ต้องเป็นไปตามข้อกำหนด 3 ประการ:
หากผู้พิสูจน์โกหก มีความเป็นไปได้สูงที่จะล้มเหลวในการท้าทาย (ความมั่นคง);
หากผู้พิสูจน์มีความรู้จะสามารถผ่านความท้าทาย (Completeness) ได้
ในระหว่างการโต้ตอบระหว่างทั้งสองฝ่าย ผู้พิสูจน์จะไม่เปิดเผยข้อมูลที่เป็นประโยชน์ใด ๆ (ไม่มีความรู้)
เพื่อให้เป็นไปตามข้อกำหนดทั้งสามนี้ ZKP จึงใช้ปัญหา NP ที่หลากหลาย รวมถึงการแยกส่วนจำนวนเฉพาะที่ง่ายที่สุด และลอการิทึมแบบไม่ต่อเนื่อง (เช่น Schnorr is) เป็นต้น
ZKP ไม่ใช่เทคโนโลยีที่เกิดมาเพื่อ blockchain แต่สามารถใช้สำหรับการขยาย L2 ได้ ส่วนใหญ่เป็นเพราะ ZKP ที่ดีมีลักษณะที่เป็นประโยชน์ดังต่อไปนี้:
ผู้พิสูจน์ (ผู้ให้บริการ) สามารถพิสูจน์ได้อย่างรวดเร็วเพื่อให้แน่ใจว่าประสิทธิภาพการคำนวณภายใต้ห่วงโซ่นั้นสูงมากและจะไม่กลายเป็นคอขวด
ขนาดของการพิสูจน์มีขนาดเล็กหรืออย่างน้อยก็เป็นสัดส่วนกับจำนวนการคำนวณที่จะพิสูจน์ และผลกระทบของจำนวนข้อมูลจะน้อยที่สุดเท่าที่จะเป็นไปได้ เพื่อให้ต้นทุนการจัดเก็บในห่วงโซ่ต่ำ
ผู้ตรวจสอบ (สัญญา L1) สามารถตรวจสอบได้อย่างรวดเร็วว่าการพิสูจน์นั้นถูกต้องหรือไม่ ดังนั้นต้นทุนการคำนวณในห่วงโซ่จึงต่ำ
การใช้คุณสมบัติเหล่านี้ โซลูชันการยกเลิกของเราสามารถ:
ไม่จำเป็นต้องมี "นักล่าเงินรางวัล" อีกต่อไป สัญญา L1 สามารถตรวจจับการฉ้อโกงได้ทันที
ตราบใดที่การยืนยัน ZKP นั้นถูกต้อง การถอนสามารถทำได้ทันที และการสิ้นสุดจะสั้นลงจากวันเหลือเป็นนาที
เฉพาะความแตกต่างระหว่างรัฐเท่านั้นที่ต้องอัปโหลดไปยังเชน พื้นที่มีขนาดเล็ก และต้นทุนการจัดเก็บต่ำมาก (โบนัสเพิ่มเติม — ความเป็นส่วนตัวก็ได้รับการปรับปรุงเช่นกัน)
ด้วยการปรับแต่งฮาร์ดแวร์และซอฟต์แวร์ให้เหมาะสมของกระบวนการพิสูจน์และยืนยัน การขยายกำลังการผลิตสามารถเพิ่มขึ้นอีกลำดับความสำคัญ
แน่นอน กลไกการรักษาความปลอดภัยใด ๆ จะต้องมีข้อกำหนดเบื้องต้นที่เป็นไปได้ และ ZKP ไม่ใช่ยาครอบจักรวาลสำหรับบล็อกเชน ปัจจุบัน ZKP ยังมีข้อจำกัดหลายอย่างที่ต้องแก้ไขไปทีละขั้น เช่น
ยกตัวอย่าง zk-SNARK ที่ใช้กันอย่างแพร่หลายใน blockchain โซลูชันจำนวนมากจำเป็นต้องแนะนำบุคคลหรือบริษัทที่มีชื่อเสียงให้ได้มากที่สุดเท่าที่จะเป็นไปได้ในตอนเริ่มต้น และทำ Trusted Setup เพื่อสร้างหมายเลขสุ่มอย่างแท้จริงและตรวจสอบให้แน่ใจว่ากระบวนการที่สร้างขึ้น สามารถตรวจสอบได้แต่ไม่เปิดเผยต่อสาธารณะอย่างสมบูรณ์ (เช่นในพิธี Power of Tau ตราบใดที่ฝ่ายใดฝ่ายหนึ่งเชื่อถือได้ แต่ก็ยังถือว่ามีข้อบกพร่อง) แน่นอนว่า โครงร่าง zk-SNARK ใหม่และ zk-STARK ที่ปรับปรุงในภายหลังสามารถแก้ปัญหานี้ได้ แต่บางครั้งก็มีปัญหาใหม่เข้ามา
หลายปัญหายากที่จะสรุปว่าเป็นปัญหา ZKP ซึ่งนำไปสู่ความจริงที่ว่าความสามารถในการตั้งโปรแกรมไม่ได้รับการแก้ไขที่ดีมาเป็นเวลานาน เป็นการยากที่จะทำให้ ZKP นั้นเข้ากันได้กับ EVM บน Ethereum อย่างสมบูรณ์หรือแม้ว่าจะสามารถทำได้ก็ตาม เป็นเรื่องยาก ในด้านอื่นๆ (เช่น ประสิทธิภาพการตรวจสอบ) จะได้รับผลกระทบ
ที่มา: https://medium.com/minaprotocol/meet-pickles-snark-enabling-smart-contract-on-coda-protocol-7 ede 3 b 54 c 250
นี่คือเหตุผลว่าทำไมใน ZK-Rollup ซึ่งเป็นฟิลด์ส่วนขยายที่มุ่งเน้นอนาคต ทุกความคืบหน้าจึงน่ายกย่องและน่ายินดี
เขียนในตอนท้าย
เขียนในตอนท้าย
เท่าที่เกี่ยวข้องกับอนาคตของการขยายกำลังการผลิต ผู้เขียนเชื่อว่าเมื่อเปรียบเทียบกับการขยายกำลังการผลิตดั้งเดิมของ L1 แล้ว การออกแบบหลายชั้นรวมถึง Rollup เป็นแนวคิดที่น่าเชื่อถือมากกว่า การทำให้เป็นโมดูลแต่ละเลเยอร์จะแก้ปัญหาความกังวลของแต่ละเลเยอร์ซึ่งมีความเสี่ยงน้อยกว่าการซ้อนทับอย่างต่อเนื่องบน L1 ที่ "เสาหิน" อยู่แล้ว ยิ่งกว่านั้น การกระจายอำนาจของ L1 พื้นฐานเนื่องจากการขยายกำลังการผลิตนั้นไม่น่าเป็นไปได้ในทางทฤษฎีที่ชั้นบนจะค้นพบและทำให้ มันขึ้น ยิ่งไปกว่านั้น แนวคิดการออกแบบแบบเลเยอร์นี้ดูเหมือนจะประสบความสำเร็จในการใช้งานในด้านอื่นๆ นอกเหนือจากบล็อกเชน มุมมองไม่จำเป็นต้องถูกต้อง แต่นี่คือความรู้ความเข้าใจในปัจจุบันของผู้เขียน
บทความนี้พยายามที่จะแยกแยะเหตุผลในการคิดและการออกแบบของโซลูชันการขยายค่าสะสมในโทนเสียงที่ไม่เชื่อเรื่องพระเจ้าในโครงการ เนื่องจากระดับที่จำกัด บางสถานที่ยังดูทื่อๆ อยู่ ซึ่งนอกจากจะอธิบายไม่เข้าที่แล้ว ยังทำให้เข้าใจยากขึ้นด้วย เนื่องจากช่องแนวตั้งที่เปลี่ยนไปในแต่ละวันที่ผ่านไป ผู้เขียนอาจไม่รู้ตัว และคำนึงถึงการพัฒนาใหม่ ๆ มากมายในเวลา ยินดีต้อนรับเพื่อนอย่างจริงใจเพื่อแก้ไขและสื่อสาร


