เพื่อนร่วมทางในเครือข่ายบล็อกเชนจะมั่นใจได้อย่างไรว่าข้อมูลทั้งหมดของบล็อกที่เสนอใหม่สามารถใช้ได้? และเหตุใดมันถึงสำคัญ?
ในโพสต์นี้ เราศึกษาลึกลงในรายละเอียดของปัญหาความพร้อมในการใช้ข้อมูลและวิธีที่มันสามารถมีผลต่อกระบวนการขยายของ Ethereum
ปัญหาการให้ข้อมูลพร้อมใช้ (DA): เพื่อให้แน่ใจว่าเพื่อนร่วมที่อยู่ในเครือข่ายบล็อกเชนสามารถมั่นใจได้ว่าข้อมูลทั้งหมดของบล็อกที่เสนอใหม่จริง ๆ พร้อมใช้หรือไม่ หากข้อมูลไม่พร้อมใช้ บล็อกอาจมีธุรกรรมที่เป็นอันตรายที่ถูกซ่อนไว้โดยผู้ผลิตบล็อก แม้ว่าบล็อกจะมีธุรกรรมที่ไม่ใช่อันตรายซ่อนเร้าเข้าไปก็อาจเสี่ยงต่อความปลอดภัยของระบบได้
เพื่อให้ตัวอย่าง เราสมมติว่า Alice เป็นผู้ประกอบการของZK-Rollup (ZKR)เธอส่ง ZK-Proof บน Ethereum ซึ่งได้รับการตรวจสอบ หากเธอไม่ส่งข้อมูลการทำธุรกรรมทั้งหมดบน Ethereum แม้ว่าพิสูจน์ของเธอจะพิสูจน์ว่าการเปลี่ยนสถานะทั้งหมดที่เกิดขึ้นใน rollup ถูกต้อง ผู้ใช้ rollup อาจไม่ทราบถึงยอดคงเหลือในบัญชีปัจจุบันของตน พิสูจน์ที่ส่งมาไม่ได้สะท้อนสถานะปัจจุบันเพราะลักษณะ Zero-Knowledge ของมัน
ตัวอย่างอนุยาดที่คล้ายกันมีอยู่ใน Optimistic Rollup (OPR)การตั้งค่าที่ Alice ส่งการอ้างอิงบน Ethereum แต่ไม่มีผู้ร่วมกิจกรรมใด ๆ ของ OPR สามารถท้าทายได้เพราะข้อมูลการทำธุรกรรมไม่สามารถใช้ได้ และด้วยเหตุนี้พวกเขาไม่สามารถคำนวณหรือท้าทายการอ้างอิง
เพื่อต้านการเกิดภาวะดังกล่าว การออกแบบ OPR และ ZKR กำหนดให้ผู้ดำเนินการส่งรายละเอียดการทำธุรกรรมทั้งหมดEthereumเรียกว่า 'calldata' ซึ่งจะทำให้พวกเขาหลบปัญหา DA ในช่วงสั้น ๆ ตัวเลขของธุรกรรมที่เพิ่มขึ้นภายใน rollups จำนวนข้อมูลที่ต้องส่งเข้ามาก็จะเพิ่มขึ้นด้วย จำกัดปริมาณการขยายที่ rollups เหล่านี้สามารถให้ได้
ในทางที่แย่ลง, ความไม่สามารถในการใช้ข้อมูลไม่ใช่เป็นความผิดที่สามารถแยกแยะได้อย่างเฉพาะเจาะจง นี่หมายความว่าผู้เข้าร่วมไม่สามารถพิสูจน์ต่อเพื่อนร่วมทางอื่นได้ว่าชุดข้อมูลบางส่วนหายไป สิ่งนี้เป็นเพราะว่า บ็อบสามารถกระจายว่าบล็อกที่ถูกส่งโดย แอลิซ มีข้อมูลที่หายไป แต่เมื่อ ชาร์ลีสอบถามแอลิซ เธออาจจะให้ข้อมูลให้เขา
เพื่อตอบคำถามนี้ ให้เรากลับมาพิจารณาโครงสร้างบล็อกทั่วไปของบล็อกเชนแบบ Ethereum และประเภทของลูกค้าที่มีอยู่บนเครือข่ายบล็อกเชนใดก็ตาม
บล็อกสามารถแบ่งเป็นส่วนหลักสองส่วนได้:
ในโปรโตคอลบล็อกเชนแบบดั้งเดิม โหนดทั้งหมดถูกพิจารณาว่าเป็นโหนดเต็มที่ซิงค์บล็อกทั้งหมดและตรวจสอบการเปลี่ยนสถานะทั้งหมด พวกเขาต้องใช้ทรัพยากรจำนวนมากเพื่อตรวจสอบความถูกต้องของธุรกรรมและเก็บบล็อก อย่างไรก็ตาม ด้านบวกคือ โหนดเหล่านี้ไม่สามารถทำให้มีการยอมรับธุรกรรมที่ไม่ถูกต้องใด ๆ
อาจมีโหนดอีกคลาสหนึ่งที่ไม่มีทรัพยากร (หรือไม่ต้องการใช้จ่าย) เพื่อตรวจสอบทุกธุรกรรม แต่พวกเขาสนใจที่จะทราบสถานะปัจจุบันของบล็อกเชนเป็นหลักและธุรกรรมบางอย่างที่เกี่ยวข้องกับพวกเขาจะรวมอยู่ในห่วงโซ่หรือไม่ ตามหลักการแล้วไคลเอนต์ขนาดเล็กเหล่านี้ควรได้รับการปกป้องจากการติดตามห่วงโซ่ที่มีธุรกรรมที่ไม่ถูกต้อง สิ่งนี้เป็นไปได้จริงโดยใช้สิ่งที่เรียกว่าหลักฐานการฉ้อโกง ข้อความเหล่านี้เป็นข้อความที่รวบรัดซึ่งแสดงให้เห็นว่าเนื้อหาบล็อกเฉพาะมีธุรกรรมที่ไม่ถูกต้อง โหนดเต็มใด ๆ สามารถสร้างหลักฐานการฉ้อโกงดังกล่าวได้และไคลเอนต์แสงจึงไม่จําเป็นต้องไว้วางใจว่าโหนดเต็มโดยเฉพาะนั้นซื่อสัตย์ พวกเขาเพียงแค่ต้องตรวจสอบให้แน่ใจว่าพวกเขาเชื่อมต่อกับเครือข่ายซุบซิบที่รับรองว่าหากมีการป้องกันการฉ้อโกงสําหรับส่วนหัวของบล็อกพวกเขาจะได้รับมัน
อย่างไรก็ตาม มีปัญหาหนึ่งกับระบบนี้: ถ้าผู้ผลิตบล็อกไม่เปิดเผยข้อมูลทั้งหมดที่อยู่ข้างหลังบล็อก ในกรณีนี้ โหนดเต็มจะปฏิเสธบล็อกโดยชัดเจนเพราะในมุมมองของพวกเขา มันไม่ใช่บล็อกถ้ามันไม่มาพร้อมกับร่างบล็อก แต่ลูกค้าแบบเบา สามารถได้รับสายหัวและไม่มีวิธีที่จะสังเกตว่าข้อมูลสิ่งนั้นหายไป ในเวลาเดียวกัน โหนดเต็มไม่สามารถสร้างพิสูจน์การประมาณเพราะพวกเขาจะขาดข้อมูลที่จำเป็นในการสร้างพิสูจน์การประมาณ
เพื่อต้านการกระทำนี้เราต้องมีกลไกสำหรับไคลเอนต์เบาที่จะตรวจสอบความพร้อมในการใช้ข้อมูล สิ่งนี้จะทำให้ผู้ผลิตบล็อกที่ซ่อนข้อมูลไม่สามารถหลบหนีได้โดยทำให้ไคลเอนต์เบาเชื่อ นอกจากนี้มันยังจะทำให้ผู้ผลิตบล็อกต้องเปิดเผยส่วนข้อมูลบางส่วน ทำให้เครือข่ายทั้งหมดสามารถเข้าถึงบล็อกทั้งหมดในลักษณะการทำงานร่วมกัน
ให้เราดำเนินการลึกลงไปอีกเล็กน้อยในปัญหาด้วยตัวอย่าง สมมติว่าผู้ผลิตบล็อก Alice สร้างบล็อก B ด้วยธุรกรรม tx1, tx2, …, txn ของเครือง. ให้เราสมมติว่า tx1 เป็นธุรกรรมที่ไม่ดี หาก tx1 ถูกกระจาย โหนดเต็มรู้สามารถตรวจสอบว่าเป็นธุรกรรมที่ไม่ดีและส่งไปยังไคลเอ็นต์เบาเป็นพิสูจน์การต้มโกงที่จะทราบทันทีว่าบล็อกไม่ยอมรับ อย่างไรก็ตาม หาก Alice ต้องการซ่อน tx1 เธอเปิดเผยส่วนหัวและข้อมูลธุรกรรมทั้งหมดยกเว้น tx1 โหนดเต็มไม่สามารถตรวจสอบความถูกต้องของ tx1 ได้
เราอาจคิดว่าวิธีแก้ปัญหาง่ายๆคือถ้าลูกค้าเบาทั้งหมดเพียงแค่สุ่มตัวอย่างธุรกรรมแบบสุ่มและหากพวกเขาพบว่าตัวอย่างของพวกเขาพร้อมใช้งานพวกเขาสามารถมั่นใจได้ว่าบล็อกนั้นพร้อมใช้งาน ให้โหนดแสงค้นหาธุรกรรมใดธุรกรรมหนึ่งแบบสุ่มอย่างสม่ําเสมอ ความน่าจะเป็นที่ไคลเอ็นต์ light แบบสอบถาม tx1 คือ 1/n ดังนั้นด้วยความน่าจะเป็นอย่างท่วมท้นอลิซจึงสามารถหลอกลูกค้าเบา ๆ ให้ยอมรับธุรกรรมที่เป็นอันตรายได้ กล่าวอีกนัยหนึ่งลูกค้าที่เบาที่สุดจะถูกหลอก โหนดแบบเต็มจึงไม่สามารถพิสูจน์ได้ในลักษณะใด ๆ ว่า tx1 ไม่พร้อมใช้งาน น่าเสียดายที่การเพิ่มจํานวนตัวอย่างไม่ได้ทําให้ดีขึ้นมากนัก
การแก้ปัญหานี้อยู่ที่การนำความจำเพียงเข้าไปในบล็อก มีชุดหนังสือที่มีความอุดมคติในทฤษฎีการเขียนโค้ดทั่วไปและเขียนโค้ดลบที่สามารถช่วยเราในปัญหานี้
สรุปโดยรวมการเข้ารหัสการลบช่วยให้เราสามารถขยายข้อมูล n ชิ้นใด ๆ เป็นข้อมูล 2n ชิ้นโดยที่ n ชิ้นจาก 2n พอสมควรที่จะสร้างข้อมูลเดิม (พารามิเตอร์สามารถปรับแต่งได้ แต่ที่นี่เราพิจารณาเพื่อความเรียบง่าย)
หากเราบังคับผู้ผลิตบล็อกให้เข้ารหัสการทำธุรกรรม tx1, tx2, …, txn แล้วเพื่อซ่อนการทำธุรกรรมเดียว จะต้องซ่อนชุดข้อมูล n+1 ชิ้นเนื่องจากข้อมูล n ชิ้นเพียงพอที่จะสร้างชุดการทำธุรกรรมทั้งหมด ในกรณีนี้ จำนวนคำถามคงที่ทำให้ไคลเอนต์แสงมีความมั่นใจสูงมากว่าว่าข้อมูลพื้นฐานที่จำเป็นมีจริง
ไม่ แม้ว่าเทคนิคง่าย ๆ นี้จะทำให้การซ่อนเรื่องที่มีความยากลำบากมากขึ้น แต่ก็ยังเป็นไปได้ว่าผู้ผลิตบล็อกเพียงแค่ทำการเข้ารหัสการลบข้อมูลอย่างไม่ถูกต้องโดยเจตนา อย่างไรก็ตาม โหนดเต็มสามารถที่จะตรวจสอบว่าการเข้ารหัสการลบข้อมูลนี้ถูกต้องหรือไม่ และหากไม่ถูกต้อง มันสามารถพิสูจน์ได้ว่าแก่ลูกค้าแสง นี่เป็นประเภทหนึ่งของการป้องกันการทุจริยะเช่นเดียวกับในกรณีของธุรกรรมที่มีปฏิกิริยาที่ไม่ดีข้างต้น ที่น่าสนใจคือ จะต้องมีโหนดเต็มที่ซื่อสัตย์เพียงหนึ่งตัวของลูกค้าแสงเพื่อให้แน่ใจได้ว่าหากบล็อกนั้นมีความชั่วร้าย แล้วมันจะได้รับการป้องกันการทุจริยะ นี้ทำให้แน่ใจว่าลูกค้าแสงสามารถเข้าถึงโซ่ที่ไม่มีธุรกรรมที่ชั่วร้ายโดยมีความน่าจะเป็นสูงมาก
แต่มีสิ่งหนึ่งที่ต้องระวัง หากทำอย่างง่าย ขนาดของบทพิสูจน์การฉ้อโกงบางส่วนอาจอยู่ในลำดับของขนาดของบล็อกเอง การสมมติฐานเกี่ยวกับทรัพยากรที่เรามีในไคลเอ็นต์แสงห้ามเราใช้การออกแบบเช่นนี้ มีการปรับปรุงในเรื่องนี้โดยใช้เทคนิคการเขียนรหัสการลบหลายมิติที่ลดขนาดของบทพิสูจน์การฉ้อโกง ทั้งยังเสียบางส่วนของขนาดการสัญญา โดยเราจะไม่พูดถึงเรื่องนี้เพื่อความกระชับกระดาษนี้มีการวิเคราะห์อย่างละเอียด
ปัญหาของวิธีการที่สร้างขึ้นจากการป้องกันการฉ้อโกงคือไคลเอ็นต์แบบไฟล์เล็กไม่มั่นใจในบล็อกใด ๆ ที่ยังไม่ได้รับการป้องกันการฉ้อโกง นอกจากนี้พวกเขายังคงวางความไว้วางใจในบล็อกโหนดเต็มของตนเองว่าจะซื่อสัตย์ โหนดที่ซื่อสัตย์ก็ต้องได้รับสิทธิในการตรวจสอบบล็อกอย่างต่อเนื่อง
เราให้ความสำคัญที่นี่ในระบบที่รับรองว่าหากการเข้ารหัสบล็อกไม่ถูกต้อง โหนดเต็มสามารถตรวจจับและให้พยานให้ไคลเอนต์แสงว่าทำให้เชื่อว่าพฤติกรรมผิดพลาด อย่างไรก็ตามในส่วนถัดไป เราจะพิจารณาการเข้ารหัสบล็อกที่รับรองว่าสามารถสร้างเข้าสู่โซ่ได้เฉพาะการเข้ารหัสที่ถูกต้องเท่านั้น นี้ถูกลบออกเพราะไม่จำเป็นต้องมีพยานการประท้วงที่พิสูจน์ข้อผิดพลาดในการเข้ารหัส โซลูชันที่มีพยานความถูกต้องเหล่านี้ทำให้แอปพลิเคชันสามารถใช้ระบบโดยไม่ต้องรอพยานประท้วงเหล่านี้จากโหนดเต็ม
เร็ว ๆ นี้การสัญญาณพหุนามได้รับความสนใจที่มีชีวิตชีวาจากพื้นที่บล็อกเชน การสัญญาณพหุนามเหล่านี้โดยเฉพาะการสัจจะขนาดคงที่ KZG/Kate ตั้งใจในพหุนาม, สามารถใช้ในการออกแบบระบบ DA ที่เรียบร้อยโดยไม่ต้องใช้การพิสูจน์การฉ้อโกง โดยสรุป KZG commitments ช่วยให้เราสามารถที่จะทำการยืนยันตัวแปรหลายตัวด้วยการใช้ single elliptic curve group element อันเป็นเป็นหลักการของโพลินอมิแอล นอกจากนี้ ระบบยังสนับสนุนให้เราสามารถพิสูจน์ที่จุด i ของโพลินอมิแอล φ มีค่าเท่ากับ φ(i) โดยใช้ constant-sized witness ได้โดยที่ระบบยืนยันตัวแปรนี้มีความสามารถทางคำนวณในการผูกพันและยังเป็น homomorphic ทำให้เราสามารถหลีกเลี่ยงการพิสูจน์การฉ้อโกงอย่างเรียบร้อย
เราบังคับผู้ผลิตบล็อกให้เอาข้อมูลการทำธุรกรรมเดิมและเรียงลำดับในเมทริกซ์ 2 มิติขนาด n x m มันใช้การโพลิโนเมียลโปรเลชันเพื่อขยายคอลัมน์ของขนาด n เป็นคอลัมน์ของขนาด 2n แต่ละแถวของเมทริกซ์ที่ขยายนี้จะสร้างการสัญญาโพลิโนเมียลและส่งการสัญญาเหล่านี้เป็นส่วนหนึ่งของหัวบล็อก ภาพร่างของบล็อกถูกแสดงด้านล่าง
ไคลเอนต์แสงจะสอบถามเซลล์ใด ๆ ของเมทริกซ์ขยายนี้เพื่อรับพยานซึ่งช่วยให้สามารถตรวจสอบได้ทันทีกับส่วนหัวของบล็อก หลักฐานการเป็นสมาชิกขนาดคงที่ทําให้การสุ่มตัวอย่างมีประสิทธิภาพมาก ลักษณะที่เป็นเนื้อเดียวกันของความมุ่งมั่นทําให้แน่ใจว่าการพิสูจน์จะตรวจสอบเฉพาะในกรณีที่บล็อกถูกสร้างขึ้นอย่างถูกต้องและการแก้ไขพหุนามช่วยให้มั่นใจได้ว่าตัวอย่างที่ประสบความสําเร็จจํานวนคงที่หมายความว่าข้อมูลนั้นพร้อมใช้งานด้วยความน่าจะเป็นสูงมาก
การแสดงผังของบล็อก
รายละเอียดที่ดีของโครงการพร้อมกับการปรับปรุงและการประมาณค่าใช้จ่ายเพิ่มเติมอยู่นอกขอบเขตของบทความนี้ อย่างไรก็ตามเราต้องการชี้แจงว่า ถึงแม้เราจะพูดถึงโครงการ 2 มิติที่นี่ การรับประกันที่เหมือนกันสามารถให้ได้ด้วยโครงการ 1 มิติเช่นกัน ที่มีขนาดหัวเรื่องเล็กกว่า ต่อความสามารถในการประมาณค่าแบบขนานและความประสิทธิภาพของไคลเอ็นต์เบา เราจะลึกลงไปในนั้นมากขึ้นในบทความต่อไป
การลบรหัสมิติสูงและการสังซึก KZG ไม่ใช่เพียงวิธีเดียวในการแก้ปัญหา DA ยังมีวิธีอื่น ๆ ที่เราข้ามไปที่นี่เช่นเดียวกันต้นไม้เมอร์เคิลรหัส, ต้นไม้การเข้ารหัสแบบซ้อน, FRI, และวิธีการที่ใช้ STARK อย่างไรก็ตาม แต่ละวิธีมีข้อดีและข้อเสีย
ที่ Avail เราได้ทำงานกับการแก้ปัญหาความพร้อมในการใช้ข้อมูลโดยใช้ความมุ่งมั่นของ KZG commitments ในโพสต์ภายหลัง เราจะพูดถึงรายละเอียดการนำมาใช้วันนี้และวิธีที่เรามีเป้าหมายที่จะเปลี่ยนแปลงพื้นที่ปัญหา DA สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Avail ติดตามเราได้ที่Twitterและเข้าร่วมกับเราDiscord server.
บทความนี้ถูกพิมพ์ใหม่จาก [Gateทีม Avail]. ลิขสิทธิ์ทั้งหมดเป็นของผู้เขียนต้นฉบับ [Avail Team]. หากมีข้อความที่ไม่เห็นด้วยกับการพิมพ์ซ้ำนี้ กรุณาติดต่อ [GateGate Learn] ทีม และพวกเขาจะดำเนินการในทันที
คำปฏิเสธความรับผิด: มุมมองและความคิดเห็นที่แสดงในบทความนี้เป็นเพียงของผู้เขียนเท่านั้น และไม่เป็นการให้คำแนะนำในการลงทุนใด ๆ
การแปลบทความเป็นภาษาอื่น ๆ ถูกดำเนินการโดยทีม Gate Learn หากไม่ได้กล่าวถึงการคัดลอก การกระจาย หรือการลอกเลียนบทความที่ถูกแปล ถือเป็นการละเมิดกฎหมาย
เพื่อนร่วมทางในเครือข่ายบล็อกเชนจะมั่นใจได้อย่างไรว่าข้อมูลทั้งหมดของบล็อกที่เสนอใหม่สามารถใช้ได้? และเหตุใดมันถึงสำคัญ?
ในโพสต์นี้ เราศึกษาลึกลงในรายละเอียดของปัญหาความพร้อมในการใช้ข้อมูลและวิธีที่มันสามารถมีผลต่อกระบวนการขยายของ Ethereum
ปัญหาการให้ข้อมูลพร้อมใช้ (DA): เพื่อให้แน่ใจว่าเพื่อนร่วมที่อยู่ในเครือข่ายบล็อกเชนสามารถมั่นใจได้ว่าข้อมูลทั้งหมดของบล็อกที่เสนอใหม่จริง ๆ พร้อมใช้หรือไม่ หากข้อมูลไม่พร้อมใช้ บล็อกอาจมีธุรกรรมที่เป็นอันตรายที่ถูกซ่อนไว้โดยผู้ผลิตบล็อก แม้ว่าบล็อกจะมีธุรกรรมที่ไม่ใช่อันตรายซ่อนเร้าเข้าไปก็อาจเสี่ยงต่อความปลอดภัยของระบบได้
เพื่อให้ตัวอย่าง เราสมมติว่า Alice เป็นผู้ประกอบการของZK-Rollup (ZKR)เธอส่ง ZK-Proof บน Ethereum ซึ่งได้รับการตรวจสอบ หากเธอไม่ส่งข้อมูลการทำธุรกรรมทั้งหมดบน Ethereum แม้ว่าพิสูจน์ของเธอจะพิสูจน์ว่าการเปลี่ยนสถานะทั้งหมดที่เกิดขึ้นใน rollup ถูกต้อง ผู้ใช้ rollup อาจไม่ทราบถึงยอดคงเหลือในบัญชีปัจจุบันของตน พิสูจน์ที่ส่งมาไม่ได้สะท้อนสถานะปัจจุบันเพราะลักษณะ Zero-Knowledge ของมัน
ตัวอย่างอนุยาดที่คล้ายกันมีอยู่ใน Optimistic Rollup (OPR)การตั้งค่าที่ Alice ส่งการอ้างอิงบน Ethereum แต่ไม่มีผู้ร่วมกิจกรรมใด ๆ ของ OPR สามารถท้าทายได้เพราะข้อมูลการทำธุรกรรมไม่สามารถใช้ได้ และด้วยเหตุนี้พวกเขาไม่สามารถคำนวณหรือท้าทายการอ้างอิง
เพื่อต้านการเกิดภาวะดังกล่าว การออกแบบ OPR และ ZKR กำหนดให้ผู้ดำเนินการส่งรายละเอียดการทำธุรกรรมทั้งหมดEthereumเรียกว่า 'calldata' ซึ่งจะทำให้พวกเขาหลบปัญหา DA ในช่วงสั้น ๆ ตัวเลขของธุรกรรมที่เพิ่มขึ้นภายใน rollups จำนวนข้อมูลที่ต้องส่งเข้ามาก็จะเพิ่มขึ้นด้วย จำกัดปริมาณการขยายที่ rollups เหล่านี้สามารถให้ได้
ในทางที่แย่ลง, ความไม่สามารถในการใช้ข้อมูลไม่ใช่เป็นความผิดที่สามารถแยกแยะได้อย่างเฉพาะเจาะจง นี่หมายความว่าผู้เข้าร่วมไม่สามารถพิสูจน์ต่อเพื่อนร่วมทางอื่นได้ว่าชุดข้อมูลบางส่วนหายไป สิ่งนี้เป็นเพราะว่า บ็อบสามารถกระจายว่าบล็อกที่ถูกส่งโดย แอลิซ มีข้อมูลที่หายไป แต่เมื่อ ชาร์ลีสอบถามแอลิซ เธออาจจะให้ข้อมูลให้เขา
เพื่อตอบคำถามนี้ ให้เรากลับมาพิจารณาโครงสร้างบล็อกทั่วไปของบล็อกเชนแบบ Ethereum และประเภทของลูกค้าที่มีอยู่บนเครือข่ายบล็อกเชนใดก็ตาม
บล็อกสามารถแบ่งเป็นส่วนหลักสองส่วนได้:
ในโปรโตคอลบล็อกเชนแบบดั้งเดิม โหนดทั้งหมดถูกพิจารณาว่าเป็นโหนดเต็มที่ซิงค์บล็อกทั้งหมดและตรวจสอบการเปลี่ยนสถานะทั้งหมด พวกเขาต้องใช้ทรัพยากรจำนวนมากเพื่อตรวจสอบความถูกต้องของธุรกรรมและเก็บบล็อก อย่างไรก็ตาม ด้านบวกคือ โหนดเหล่านี้ไม่สามารถทำให้มีการยอมรับธุรกรรมที่ไม่ถูกต้องใด ๆ
อาจมีโหนดอีกคลาสหนึ่งที่ไม่มีทรัพยากร (หรือไม่ต้องการใช้จ่าย) เพื่อตรวจสอบทุกธุรกรรม แต่พวกเขาสนใจที่จะทราบสถานะปัจจุบันของบล็อกเชนเป็นหลักและธุรกรรมบางอย่างที่เกี่ยวข้องกับพวกเขาจะรวมอยู่ในห่วงโซ่หรือไม่ ตามหลักการแล้วไคลเอนต์ขนาดเล็กเหล่านี้ควรได้รับการปกป้องจากการติดตามห่วงโซ่ที่มีธุรกรรมที่ไม่ถูกต้อง สิ่งนี้เป็นไปได้จริงโดยใช้สิ่งที่เรียกว่าหลักฐานการฉ้อโกง ข้อความเหล่านี้เป็นข้อความที่รวบรัดซึ่งแสดงให้เห็นว่าเนื้อหาบล็อกเฉพาะมีธุรกรรมที่ไม่ถูกต้อง โหนดเต็มใด ๆ สามารถสร้างหลักฐานการฉ้อโกงดังกล่าวได้และไคลเอนต์แสงจึงไม่จําเป็นต้องไว้วางใจว่าโหนดเต็มโดยเฉพาะนั้นซื่อสัตย์ พวกเขาเพียงแค่ต้องตรวจสอบให้แน่ใจว่าพวกเขาเชื่อมต่อกับเครือข่ายซุบซิบที่รับรองว่าหากมีการป้องกันการฉ้อโกงสําหรับส่วนหัวของบล็อกพวกเขาจะได้รับมัน
อย่างไรก็ตาม มีปัญหาหนึ่งกับระบบนี้: ถ้าผู้ผลิตบล็อกไม่เปิดเผยข้อมูลทั้งหมดที่อยู่ข้างหลังบล็อก ในกรณีนี้ โหนดเต็มจะปฏิเสธบล็อกโดยชัดเจนเพราะในมุมมองของพวกเขา มันไม่ใช่บล็อกถ้ามันไม่มาพร้อมกับร่างบล็อก แต่ลูกค้าแบบเบา สามารถได้รับสายหัวและไม่มีวิธีที่จะสังเกตว่าข้อมูลสิ่งนั้นหายไป ในเวลาเดียวกัน โหนดเต็มไม่สามารถสร้างพิสูจน์การประมาณเพราะพวกเขาจะขาดข้อมูลที่จำเป็นในการสร้างพิสูจน์การประมาณ
เพื่อต้านการกระทำนี้เราต้องมีกลไกสำหรับไคลเอนต์เบาที่จะตรวจสอบความพร้อมในการใช้ข้อมูล สิ่งนี้จะทำให้ผู้ผลิตบล็อกที่ซ่อนข้อมูลไม่สามารถหลบหนีได้โดยทำให้ไคลเอนต์เบาเชื่อ นอกจากนี้มันยังจะทำให้ผู้ผลิตบล็อกต้องเปิดเผยส่วนข้อมูลบางส่วน ทำให้เครือข่ายทั้งหมดสามารถเข้าถึงบล็อกทั้งหมดในลักษณะการทำงานร่วมกัน
ให้เราดำเนินการลึกลงไปอีกเล็กน้อยในปัญหาด้วยตัวอย่าง สมมติว่าผู้ผลิตบล็อก Alice สร้างบล็อก B ด้วยธุรกรรม tx1, tx2, …, txn ของเครือง. ให้เราสมมติว่า tx1 เป็นธุรกรรมที่ไม่ดี หาก tx1 ถูกกระจาย โหนดเต็มรู้สามารถตรวจสอบว่าเป็นธุรกรรมที่ไม่ดีและส่งไปยังไคลเอ็นต์เบาเป็นพิสูจน์การต้มโกงที่จะทราบทันทีว่าบล็อกไม่ยอมรับ อย่างไรก็ตาม หาก Alice ต้องการซ่อน tx1 เธอเปิดเผยส่วนหัวและข้อมูลธุรกรรมทั้งหมดยกเว้น tx1 โหนดเต็มไม่สามารถตรวจสอบความถูกต้องของ tx1 ได้
เราอาจคิดว่าวิธีแก้ปัญหาง่ายๆคือถ้าลูกค้าเบาทั้งหมดเพียงแค่สุ่มตัวอย่างธุรกรรมแบบสุ่มและหากพวกเขาพบว่าตัวอย่างของพวกเขาพร้อมใช้งานพวกเขาสามารถมั่นใจได้ว่าบล็อกนั้นพร้อมใช้งาน ให้โหนดแสงค้นหาธุรกรรมใดธุรกรรมหนึ่งแบบสุ่มอย่างสม่ําเสมอ ความน่าจะเป็นที่ไคลเอ็นต์ light แบบสอบถาม tx1 คือ 1/n ดังนั้นด้วยความน่าจะเป็นอย่างท่วมท้นอลิซจึงสามารถหลอกลูกค้าเบา ๆ ให้ยอมรับธุรกรรมที่เป็นอันตรายได้ กล่าวอีกนัยหนึ่งลูกค้าที่เบาที่สุดจะถูกหลอก โหนดแบบเต็มจึงไม่สามารถพิสูจน์ได้ในลักษณะใด ๆ ว่า tx1 ไม่พร้อมใช้งาน น่าเสียดายที่การเพิ่มจํานวนตัวอย่างไม่ได้ทําให้ดีขึ้นมากนัก
การแก้ปัญหานี้อยู่ที่การนำความจำเพียงเข้าไปในบล็อก มีชุดหนังสือที่มีความอุดมคติในทฤษฎีการเขียนโค้ดทั่วไปและเขียนโค้ดลบที่สามารถช่วยเราในปัญหานี้
สรุปโดยรวมการเข้ารหัสการลบช่วยให้เราสามารถขยายข้อมูล n ชิ้นใด ๆ เป็นข้อมูล 2n ชิ้นโดยที่ n ชิ้นจาก 2n พอสมควรที่จะสร้างข้อมูลเดิม (พารามิเตอร์สามารถปรับแต่งได้ แต่ที่นี่เราพิจารณาเพื่อความเรียบง่าย)
หากเราบังคับผู้ผลิตบล็อกให้เข้ารหัสการทำธุรกรรม tx1, tx2, …, txn แล้วเพื่อซ่อนการทำธุรกรรมเดียว จะต้องซ่อนชุดข้อมูล n+1 ชิ้นเนื่องจากข้อมูล n ชิ้นเพียงพอที่จะสร้างชุดการทำธุรกรรมทั้งหมด ในกรณีนี้ จำนวนคำถามคงที่ทำให้ไคลเอนต์แสงมีความมั่นใจสูงมากว่าว่าข้อมูลพื้นฐานที่จำเป็นมีจริง
ไม่ แม้ว่าเทคนิคง่าย ๆ นี้จะทำให้การซ่อนเรื่องที่มีความยากลำบากมากขึ้น แต่ก็ยังเป็นไปได้ว่าผู้ผลิตบล็อกเพียงแค่ทำการเข้ารหัสการลบข้อมูลอย่างไม่ถูกต้องโดยเจตนา อย่างไรก็ตาม โหนดเต็มสามารถที่จะตรวจสอบว่าการเข้ารหัสการลบข้อมูลนี้ถูกต้องหรือไม่ และหากไม่ถูกต้อง มันสามารถพิสูจน์ได้ว่าแก่ลูกค้าแสง นี่เป็นประเภทหนึ่งของการป้องกันการทุจริยะเช่นเดียวกับในกรณีของธุรกรรมที่มีปฏิกิริยาที่ไม่ดีข้างต้น ที่น่าสนใจคือ จะต้องมีโหนดเต็มที่ซื่อสัตย์เพียงหนึ่งตัวของลูกค้าแสงเพื่อให้แน่ใจได้ว่าหากบล็อกนั้นมีความชั่วร้าย แล้วมันจะได้รับการป้องกันการทุจริยะ นี้ทำให้แน่ใจว่าลูกค้าแสงสามารถเข้าถึงโซ่ที่ไม่มีธุรกรรมที่ชั่วร้ายโดยมีความน่าจะเป็นสูงมาก
แต่มีสิ่งหนึ่งที่ต้องระวัง หากทำอย่างง่าย ขนาดของบทพิสูจน์การฉ้อโกงบางส่วนอาจอยู่ในลำดับของขนาดของบล็อกเอง การสมมติฐานเกี่ยวกับทรัพยากรที่เรามีในไคลเอ็นต์แสงห้ามเราใช้การออกแบบเช่นนี้ มีการปรับปรุงในเรื่องนี้โดยใช้เทคนิคการเขียนรหัสการลบหลายมิติที่ลดขนาดของบทพิสูจน์การฉ้อโกง ทั้งยังเสียบางส่วนของขนาดการสัญญา โดยเราจะไม่พูดถึงเรื่องนี้เพื่อความกระชับกระดาษนี้มีการวิเคราะห์อย่างละเอียด
ปัญหาของวิธีการที่สร้างขึ้นจากการป้องกันการฉ้อโกงคือไคลเอ็นต์แบบไฟล์เล็กไม่มั่นใจในบล็อกใด ๆ ที่ยังไม่ได้รับการป้องกันการฉ้อโกง นอกจากนี้พวกเขายังคงวางความไว้วางใจในบล็อกโหนดเต็มของตนเองว่าจะซื่อสัตย์ โหนดที่ซื่อสัตย์ก็ต้องได้รับสิทธิในการตรวจสอบบล็อกอย่างต่อเนื่อง
เราให้ความสำคัญที่นี่ในระบบที่รับรองว่าหากการเข้ารหัสบล็อกไม่ถูกต้อง โหนดเต็มสามารถตรวจจับและให้พยานให้ไคลเอนต์แสงว่าทำให้เชื่อว่าพฤติกรรมผิดพลาด อย่างไรก็ตามในส่วนถัดไป เราจะพิจารณาการเข้ารหัสบล็อกที่รับรองว่าสามารถสร้างเข้าสู่โซ่ได้เฉพาะการเข้ารหัสที่ถูกต้องเท่านั้น นี้ถูกลบออกเพราะไม่จำเป็นต้องมีพยานการประท้วงที่พิสูจน์ข้อผิดพลาดในการเข้ารหัส โซลูชันที่มีพยานความถูกต้องเหล่านี้ทำให้แอปพลิเคชันสามารถใช้ระบบโดยไม่ต้องรอพยานประท้วงเหล่านี้จากโหนดเต็ม
เร็ว ๆ นี้การสัญญาณพหุนามได้รับความสนใจที่มีชีวิตชีวาจากพื้นที่บล็อกเชน การสัญญาณพหุนามเหล่านี้โดยเฉพาะการสัจจะขนาดคงที่ KZG/Kate ตั้งใจในพหุนาม, สามารถใช้ในการออกแบบระบบ DA ที่เรียบร้อยโดยไม่ต้องใช้การพิสูจน์การฉ้อโกง โดยสรุป KZG commitments ช่วยให้เราสามารถที่จะทำการยืนยันตัวแปรหลายตัวด้วยการใช้ single elliptic curve group element อันเป็นเป็นหลักการของโพลินอมิแอล นอกจากนี้ ระบบยังสนับสนุนให้เราสามารถพิสูจน์ที่จุด i ของโพลินอมิแอล φ มีค่าเท่ากับ φ(i) โดยใช้ constant-sized witness ได้โดยที่ระบบยืนยันตัวแปรนี้มีความสามารถทางคำนวณในการผูกพันและยังเป็น homomorphic ทำให้เราสามารถหลีกเลี่ยงการพิสูจน์การฉ้อโกงอย่างเรียบร้อย
เราบังคับผู้ผลิตบล็อกให้เอาข้อมูลการทำธุรกรรมเดิมและเรียงลำดับในเมทริกซ์ 2 มิติขนาด n x m มันใช้การโพลิโนเมียลโปรเลชันเพื่อขยายคอลัมน์ของขนาด n เป็นคอลัมน์ของขนาด 2n แต่ละแถวของเมทริกซ์ที่ขยายนี้จะสร้างการสัญญาโพลิโนเมียลและส่งการสัญญาเหล่านี้เป็นส่วนหนึ่งของหัวบล็อก ภาพร่างของบล็อกถูกแสดงด้านล่าง
ไคลเอนต์แสงจะสอบถามเซลล์ใด ๆ ของเมทริกซ์ขยายนี้เพื่อรับพยานซึ่งช่วยให้สามารถตรวจสอบได้ทันทีกับส่วนหัวของบล็อก หลักฐานการเป็นสมาชิกขนาดคงที่ทําให้การสุ่มตัวอย่างมีประสิทธิภาพมาก ลักษณะที่เป็นเนื้อเดียวกันของความมุ่งมั่นทําให้แน่ใจว่าการพิสูจน์จะตรวจสอบเฉพาะในกรณีที่บล็อกถูกสร้างขึ้นอย่างถูกต้องและการแก้ไขพหุนามช่วยให้มั่นใจได้ว่าตัวอย่างที่ประสบความสําเร็จจํานวนคงที่หมายความว่าข้อมูลนั้นพร้อมใช้งานด้วยความน่าจะเป็นสูงมาก
การแสดงผังของบล็อก
รายละเอียดที่ดีของโครงการพร้อมกับการปรับปรุงและการประมาณค่าใช้จ่ายเพิ่มเติมอยู่นอกขอบเขตของบทความนี้ อย่างไรก็ตามเราต้องการชี้แจงว่า ถึงแม้เราจะพูดถึงโครงการ 2 มิติที่นี่ การรับประกันที่เหมือนกันสามารถให้ได้ด้วยโครงการ 1 มิติเช่นกัน ที่มีขนาดหัวเรื่องเล็กกว่า ต่อความสามารถในการประมาณค่าแบบขนานและความประสิทธิภาพของไคลเอ็นต์เบา เราจะลึกลงไปในนั้นมากขึ้นในบทความต่อไป
การลบรหัสมิติสูงและการสังซึก KZG ไม่ใช่เพียงวิธีเดียวในการแก้ปัญหา DA ยังมีวิธีอื่น ๆ ที่เราข้ามไปที่นี่เช่นเดียวกันต้นไม้เมอร์เคิลรหัส, ต้นไม้การเข้ารหัสแบบซ้อน, FRI, และวิธีการที่ใช้ STARK อย่างไรก็ตาม แต่ละวิธีมีข้อดีและข้อเสีย
ที่ Avail เราได้ทำงานกับการแก้ปัญหาความพร้อมในการใช้ข้อมูลโดยใช้ความมุ่งมั่นของ KZG commitments ในโพสต์ภายหลัง เราจะพูดถึงรายละเอียดการนำมาใช้วันนี้และวิธีที่เรามีเป้าหมายที่จะเปลี่ยนแปลงพื้นที่ปัญหา DA สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Avail ติดตามเราได้ที่Twitterและเข้าร่วมกับเราDiscord server.
บทความนี้ถูกพิมพ์ใหม่จาก [Gateทีม Avail]. ลิขสิทธิ์ทั้งหมดเป็นของผู้เขียนต้นฉบับ [Avail Team]. หากมีข้อความที่ไม่เห็นด้วยกับการพิมพ์ซ้ำนี้ กรุณาติดต่อ [GateGate Learn] ทีม และพวกเขาจะดำเนินการในทันที
คำปฏิเสธความรับผิด: มุมมองและความคิดเห็นที่แสดงในบทความนี้เป็นเพียงของผู้เขียนเท่านั้น และไม่เป็นการให้คำแนะนำในการลงทุนใด ๆ
การแปลบทความเป็นภาษาอื่น ๆ ถูกดำเนินการโดยทีม Gate Learn หากไม่ได้กล่าวถึงการคัดลอก การกระจาย หรือการลอกเลียนบทความที่ถูกแปล ถือเป็นการละเมิดกฎหมาย