ข้ามไปยังเนื้อหา

ตัวสะสมเชิงการเข้ารหัส

คู่มือที่มุ่งเน้นการตรวจสอบตัวสะสมเชิงการเข้ารหัส ครอบคลุมการออกแบบแบบ RSA และแบบแฮช พยานยืนยันการเป็นสมาชิกและการไม่เป็นสมาชิก การอัปเดตแบบพลวัต การใช้งานในบล็อกเชน และความเสี่ยงในการดำเนินงาน

อัปเดต

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

คำตอบโดยตรง

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

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

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

หลักการทำงาน

  1. กำหนดชุดให้ชัดเจนแม่นยำ ระบุการเข้ารหัสองค์ประกอบแบบมาตรฐาน วิธีจัดการข้อมูลซ้ำ กฎการเรียงลำดับเมื่อเกี่ยวข้อง การแยกโดเมน และเวอร์ชันที่แน่นอนของค่าผูกมัด หลักฐานสำหรับการเข้ารหัสหรือรากสถานะแบบหนึ่งไม่ได้ยืนยันสิ่งใดเกี่ยวกับอีกแบบหนึ่ง

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

  3. แปลงองค์ประกอบเข้าสู่โครงสร้างพีชคณิต ในโครงสร้าง RSA แบบย่อ แต่ละองค์ประกอบ x_i จะถูกแปลงอย่างกำหนดแน่นอนเป็นตัวแทนจำนวนเฉพาะ p_i ที่ไม่ซ้ำกัน เมื่อใช้ g เป็นฐาน ตัวสะสมคือ:

    A = g^(p_1 * p_2 * ... * p_n) mod N

  4. สร้างพยานยืนยันการเป็นสมาชิก สำหรับองค์ประกอบที่แทนด้วย p_i ให้ตัดตัวประกอบนั้นออกจากเลขชี้กำลัง:

    w_i = g^(product of p_j for all j != i) mod N

  5. ตรวจสอบกับตัวสะสมที่ตรงกันทุกประการ ผู้ตรวจสอบตรวจว่าข้อมูลนำเข้าอยู่ในรูปแบบมาตรฐาน แล้วคำนวณ:

    w_i^(p_i) mod N = A

    ภายใต้สมมติฐานความปลอดภัยของรูปแบบ การทำให้สมการนี้เป็นจริงสำหรับองค์ประกอบนอกชุดที่สะสมไว้ควรเป็นไปไม่ได้ในทางปฏิบัติ อย่างไรก็ตาม สมการนี้ไม่ได้ยืนยันว่าองค์ประกอบนั้นเป็นข้อมูลจริงหรือได้รับอนุญาต

  6. ประมวลผลการอัปเดตและการไม่เป็นสมาชิกแยกกัน รูปแบบพลวัตกำหนดว่าการเพิ่มและลบเปลี่ยน A อย่างไร และจะปรับพยานที่ได้รับผลกระทบอย่างไร รูปแบบสากลเพิ่มพยานยืนยันการไม่เป็นสมาชิกและอัลกอริทึมตรวจสอบอีกชุดหนึ่ง การนำไปใช้ต้องปฏิเสธพยานที่ล้าสมัยและการอัปเดตที่ผูกกับสถานะอื่น

  7. เปรียบเทียบโครงสร้างแบบแฮชด้วยต้นทุนจริง ในความหมายกว้าง Merkle Tree คือตัวสะสมแบบแฮชชนิดหนึ่ง รากของมันมีขนาดสั้น แต่หลักฐานการเป็นสมาชิกประกอบด้วยแฮชข้างเคียงตลอดเส้นทาง จึงมีขนาดเพิ่มขึ้นแบบลอการิทึมตามจำนวนใบ รูปแบบตระกูล RSA อาจให้พยานแต่ละชิ้นมีขนาดคงที่ แต่การสร้างหลักฐาน การดูแลพยาน การตั้งค่า และการคำนวณมีต้นทุนต่างกัน

ตัวอย่างการคำนวณ

  • ขนาดของหลักฐาน Merkle Merkle Tree แบบทวิภาคสมดุลที่มีใบ 1,048,576 = 2^20 ใบ ต้องใช้แฮชข้างเคียง 20 ค่าในหนึ่งเส้นทางยืนยันการรวมอยู่ หากแฮชมีขนาด 32 ไบต์ จะเท่ากับ 20 * 32 = 640 bytes ก่อนรวมข้อมูลใบ บิตตำแหน่ง และค่าใช้จ่ายในการทำซีเรียลไลซ์ ส่วนรากยังคงมีขนาด 32 ไบต์
  • ขนาดคงที่ไม่ได้หมายถึงงานคงที่ ในโครงสร้าง RSA แบบย่อ A และ w_i หนึ่งค่ายังคงเป็นองค์ประกอบของกรุปอย่างละหนึ่งตัวเมื่อชุดใหญ่ขึ้น แต่เลขชี้กำลังที่เป็นผลคูณ การสร้างตัวแทนจำนวนเฉพาะ การอัปเดตแบบกลุ่ม และการแจกจ่ายพยานที่ปรับแล้ว อาจยังต้องใช้การคำนวณหรือข้อมูลเสริมจำนวนมาก
  • ตัวสะสม UTXO เปลี่ยนว่าใครต้องเก็บอะไร โหนดที่เก็บสถานะแบบกะทัดรัดสามารถถือตัวสะสมของเอาต์พุตที่ยังไม่ถูกใช้ และตรวจสอบการใช้จ่ายได้ต่อเมื่อได้รับเอาต์พุตพร้อมหลักฐานการเป็นสมาชิกที่เป็นปัจจุบัน ผู้เข้าร่วมรายอื่นยังต้องเก็บสถานะเพียงพอสำหรับสร้างหลักฐานเหล่านั้น และการอัปเดตต้องนำเอาต์พุตที่ใช้แล้วออกพร้อมเพิ่มเอาต์พุตที่สร้างใหม่
  • การเพิกถอนมีขอบเขตเดียวกัน ผู้ถือข้อมูลรับรองสามารถพิสูจน์ว่าตัวระบุยังอยู่ในตัวสะสมสมาชิกที่มีผล หรือใช้รูปแบบสากลพิสูจน์ว่าตัวระบุไม่อยู่ในชุดการเพิกถอน หลักฐานรับรองชุดที่ผู้ออกผูกมัดไว้ ไม่ได้พิสูจน์ว่าผู้ออกใช้นโยบายเพิกถอนที่เป็นธรรมหรือถูกต้อง

ความเสี่ยง

  • ใช้การเข้ารหัสองค์ประกอบที่คลุมเครือหรือไม่เป็นมาตรฐาน ทำให้รายการเชิงตรรกะเดียวกันถูกแปลงเป็นค่าต่างกันได้
  • แปลงองค์ประกอบเป็นตัวแทนจำนวนเฉพาะไม่ถูกต้อง หรือไม่ใช้มาตรการควบคุมการชนกันตามที่รูปแบบกำหนด
  • ไว้วางใจมอดุลัส RSA ที่ฝ่ายตั้งค่าหรือผู้โจมตีอาจทราบการแยกตัวประกอบ
  • ถือว่าพิธีตั้งค่าแบบหลายฝ่ายปลอดภัยโดยไม่ได้ตรวจสอบบันทึก สมมติฐานเกี่ยวกับผู้เข้าร่วม และการผูกพารามิเตอร์
  • อนุญาตให้ผู้ดูแลเปลี่ยนพารามิเตอร์สาธารณะหรือเวอร์ชันตัวสะสมโดยไม่มีกฎการย้ายที่ผ่านการรับรอง
  • ตรวจสอบพยานกับค่าตัวสะสมที่ล้าสมัย ยังไม่ยุติ หรือผู้โจมตีเป็นผู้เลือก
  • ใช้การเพิ่ม การลบ หรือการอัปเดตพยานจากบล็อก ฟอร์ก ยุค หรือเวอร์ชันชุดที่ไม่ถูกต้อง
  • สันนิษฐานว่าพยานยืนยันการเป็นสมาชิกพิสูจน์ความถูกต้อง ความเป็นเจ้าของ การอนุญาต หรือมูลค่าทางเศรษฐกิจขององค์ประกอบด้วย
  • สันนิษฐานว่าค่าผูกมัดขนาดสั้นทำให้ชุดข้อมูลต้นทางพร้อมใช้งานหรือกู้คืนได้
  • สูญเสียข้อมูลหรือบริการที่ต้องใช้สร้างพยานปัจจุบัน จนไม่สามารถใช้สถานะที่ถูกต้องได้
  • ไม่รองรับการไม่เป็นสมาชิก ทั้งที่แอปพลิเคชันพึ่งพาหลักฐานการไม่มีอยู่โดยปริยาย
  • สับสนว่าเส้นทาง Merkle พยาน RSA การเปิดค่าพหุนาม และหลักฐานความถูกต้องเป็นวัตถุที่ใช้แทนกันได้
  • มองข้ามต้นทุนการลบ ปริมาณรับส่งในการปรับพยาน เวลาแฝงในการสร้างหลักฐาน หรือข้อมูลนำเข้าที่มุ่งปฏิเสธการให้บริการ
  • ไม่ผูกหลักฐานเข้ากับโปรโตคอล เชน สัญญา รากสถานะ โดเมน และเวอร์ชันการทำซีเรียลไลซ์
  • พึ่งพาการนำไปใช้เพียงชุดเดียวที่ไม่ผ่านการตรวจสอบหรือเลขคณิตที่สร้างเอง โดยไม่มีเวกเตอร์ทดสอบอิสระ
  • สันนิษฐานว่าความปลอดภัยของ RSA แบบดั้งเดิม แพริ่ง หรือลอการิทึมไม่ต่อเนื่อง ยังต้านทานคอมพิวเตอร์ควอนตัมที่มีศักยภาพต่อวิทยาการเข้ารหัสได้

ความเข้าใจผิดที่พบบ่อย

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

หัวข้อที่เกี่ยวข้อง

แหล่งข้อมูล

การนำทาง

ค้นหาในวิกิ...