บทนำเกี่ยวกับการเข้ารหัสที่ใช้ในการลงทะเบียน

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

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

ปัจจุบันมีวิธีแก้ปัญหาที่เป็นไปได้สามวิธี สองวิธีคลาสสิกคือไดเรกทอรีคีย์สาธารณะและการเข้ารหัสตามข้อมูลประจําตัว ประการที่สามคือการเข้ารหัสตามการลงทะเบียนซึ่งจนกระทั่งเมื่อไม่นานมานี้เป็นทฤษฎีทั้งหมด วิธีการทั้งสามมีการแลกเปลี่ยนที่แตกต่างกันระหว่างการไม่เปิดเผยตัวตนการโต้ตอบและประสิทธิภาพซึ่งอาจดูเหมือนชัดเจนในตอนแรก แต่การตั้งค่าบล็อกเชนแนะนําความเป็นไปได้และข้อ จํากัด ใหม่ ๆ เป้าหมายของโพสต์นี้คือการสํารวจพื้นที่การออกแบบนี้และเปรียบเทียบแนวทางเหล่านี้เมื่อปรับใช้บนบล็อกเชน เมื่อผู้ใช้ต้องการความโปร่งใสและไม่เปิดเผยตัวตนโครงการ RBE ที่ใช้งานได้จริงคือผู้ชนะที่ชัดเจนนั่นคือการเอาชนะสมมติฐานความไว้วางใจที่แข็งแกร่งของการเข้ารหัสตามข้อมูลประจําตัว แต่มีค่าใช้จ่าย

การเข้ารหัสสามวิธีโดยสั้น

วิธีการแบบคลาสสิกในการเชื่อมโยงคีย์การเข้ารหัสกับข้อมูลประจําตัวคือโครงสร้างพื้นฐานคีย์สาธารณะ (PKI) โดยมีไดเรกทอรีคีย์สาธารณะเป็นหัวใจสําคัญ วิธีการนี้กําหนดให้ผู้ส่งที่มีศักยภาพโต้ตอบกับบุคคลที่สามที่เชื่อถือได้ (ผู้ดูแลไดเรกทอรีหรือผู้ออกใบรับรอง) เพื่อส่งข้อความ นอกจากนี้ในการตั้งค่า web2 การบํารุงรักษาไดเรกทอรีนี้อาจมีค่าใช้จ่ายสูงน่าเบื่อและ error prone, และผู้ใช้เสี่ยงต่อการการละเมิดโดยหน่วยงานออกใบรับรอง.

นักเขียนรหัสได้แนะนำทางเลือกเพื่อหลีกเลี่ยงปัญหากับ PKI ในปี 1984,Adi Shamir แนะนำ การเข้ารหัสตามข้อมูลประจําตัว (IBE) ซึ่งตัวระบุของฝ่ายต่างๆ เช่น หมายเลขโทรศัพท์ อีเมล ENS ชื่อโดเมน ทําหน้าที่เป็นคีย์สาธารณะ สิ่งนี้ช่วยลดความจําเป็นในการรักษาไดเรกทอรีคีย์สาธารณะ แต่มีค่าใช้จ่ายในการแนะนําบุคคลที่สามที่เชื่อถือได้ (ตัวสร้างคีย์) Dan Boneh และ Matthew Franklin ให้ การสร้าง IBE ที่ใช้ได้จริงครั้งแรกในปี 2001 แต่ IBE ยังไม่ได้รับการใช้ที่แพร่หลาย ยกเว้นในระบบนิเวศปิดเช่น บริษัท หรือการติดตั้งของรัฐบาลอาจเป็นเพราะสมมติฐานความไว้วางใจที่แข็งแกร่ง ข้อสันนิษฐานนี้สามารถแก้ไขได้บางส่วนโดยอาศัยองค์ประชุมที่เชื่อถือได้ของฝ่ายต่างๆ แทน ซึ่งบล็อกเชนสามารถอํานวยความสะดวกได้อย่างง่ายดาย)

อีกตัวเลือกหนึ่งคือการเข้ารหัสที่ใช้การลงทะเบียน (RBE) ถูกproposed ใน พ.ศ.2561 RBE ยังคงรักษาสถาปัตยกรรมทั่วไปเช่นเดียวกับ IBE แต่แทนที่เครื่องกําเนิดคีย์ที่เชื่อถือได้ด้วย "ภัณฑารักษ์หลัก" ที่โปร่งใสซึ่งดําเนินการคํานวณข้อมูลสาธารณะเท่านั้น (โดยเฉพาะจะสะสมคีย์สาธารณะเป็น "ย่อย" ที่เปิดเผยต่อสาธารณะ) ความโปร่งใสของภัณฑารักษ์หลักนี้ทําให้การตั้งค่าบล็อกเชน — ซึ่งสัญญาอัจฉริยะสามารถเติมเต็มบทบาทของภัณฑารักษ์ — เหมาะอย่างยิ่งสําหรับ RBE RBE เป็นทฤษฎีจนถึงปี 2022 เมื่อผู้เขียนร่วมของฉันและฉันแนะนํา การสร้าง RBE ที่มีประสิทธิภาพในการใช้งานครั้งแรก.

การประเมินการตัดสินใจ

พื้นที่ออกแบบนี้ซับซ้อน และการเปรียบเทียบแผนการนี้ต้องพิจารณามุมมองหลายมิติ หากต้องการให้ง่ายขึ้น ฉันจะทำสมมติฐานสองอย่าง

  1. ผู้ใช้ไม่ได้อัพเดตหรือเพิกถอนคีย์ของพวกเขา
  2. สัญญาอัจฉริยะไม่ใช้บริการการให้ข้อมูลจากภายนอก (DAS) หรือข้อมูลบล็อบ

ฉันจะพูดถึงที่สิ้นสุดว่าแต่ละข้อพิจารณาเพิ่มเติมเหล่านี้สามารถมีผลต่อทางเลือกสามอย่างที่เรามีได้อย่างไร

โดยชื่อของหน่วยงาน

สรุป: ใครก็ตามสามารถเพิ่มรายการ (id, pk) เข้าสู่ตารางบนเชื่อมโยง (ไดเรกทอรี) โดยเรียกใช้สัญญาอัจฉริยะ หากยังไม่ได้รับการเรียกเก็บ

ระบบ PKI แบบกระจายคือสัญญาอัจฉริยะที่รักษารายการบุคคลและคีย์สาธารณะที่เกี่ยวข้องทะเบียน Ethereum Name Service (ENS) รักษาการแมปชื่อโดเมน ("ข้อมูลประจําตัว") และข้อมูลเมตาที่เกี่ยวข้อง รวมถึงที่อยู่ที่พวกเขาแก้ไข (จากธุรกรรมที่สามารถรับคีย์สาธารณะได้) PKI แบบกระจายอํานาจจะให้ฟังก์ชันการทํางานที่ง่ายกว่า: รายการที่รักษาโดยสัญญาจะจัดเก็บเฉพาะคีย์สาธารณะที่สอดคล้องกับแต่ละ ID

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

มาดูคุณสมบัติของวิธีนี้กัน

ด้านลบของบัญชี:

  • ไม่กระชับ ไดเรกทอรีคีย์เต็มต้องถูกเก็บไว้บนเชื่อมโยงเสมอ เพื่อให้สามารถใช้ได้เสมอสำหรับทุกคน (โปรดจำไว้ในขณะนี้เรากำลังสมมุติว่าไม่มี DAS) สำหรับ ~900Kชื่อโดเมนที่ไม่ซ้ำกันที่ลงทะเบียนใน ENS ในขณะที่เขียนข้อความนี้นี่หมายถึงพื้นที่จัดเก็บที่คงทนเกือบ 90MB หน่วยงานที่ลงทะเบียนต้องชำระค่าเก็บข้อมูลที่รายการของพวกเขาใช้ไปประมาณ 65K gas (ปัจจุบันประมาณ $1 - ดูการประเมินประสิทธิภาพด้านล่าง)
  • การเข้ารหัสแบบโต้ตอบค่อนข้าง ผู้ส่งจําเป็นต้องอ่านห่วงโซ่เพื่อดึงคีย์สาธารณะของผู้ใช้ แต่ถ้าเป็นครั้งแรกที่ผู้ส่งเข้ารหัสข้อความไปยังผู้ใช้รายนั้น (โปรดจําไว้ว่าเราสมมติว่าผู้ใช้ไม่ได้อัปเดตหรือเพิกถอนคีย์ของพวกเขา)
  • ไม่ระบุชื่อผู้ส่ง เมื่อคุณดึงคีย์สาธารณะของใครบางคน คุณจะเชื่อมโยงตัวเองกับผู้รับ ซึ่งบ่งชี้ว่าคุณมีความสัมพันธ์บางอย่างกับพวกเขา ลองนึกภาพตัวอย่างเช่นคุณดึงคีย์สาธารณะสําหรับ WikiLeaks: สิ่งนี้อาจสร้างความสงสัยว่าคุณกําลังรั่วไหลของเอกสารลับ ปัญหานี้อาจได้รับการแก้ไขด้วย "การรับส่งข้อมูลที่ครอบคลุม" (ดึงคีย์ชุดใหญ่ซึ่งส่วนใหญ่คุณไม่ได้ตั้งใจจะใช้) หรือในทํานองเดียวกันโดยการเรียกใช้โหนดแบบเต็มหรือด้วยการดึงข้อมูลส่วนตัว (PIR)

ด้านบวกคือ:

  • การถอดรหัสแบบไม่ต้องปฏิสัมพันธ์ ผู้ใช้ถอดรหัสข้อความด้วยกุญแจลับที่เก็บไว้ในเครื่องของตนเอง ดังนั้นไม่ต้องมีการปฏิสัมพันธ์ใด ๆ
  • โปร่งใส รายชื่อผู้ใช้และคีย์ทั้งหมดเป็นสาธารณะอย่างสมบูรณ์ ดังนั้น ไม่ว่าใครก็สามารถตรวจสอบได้ว่าพวกเขาได้ลงทะเบียนถูกต้องหรือไม่
  • ตั้งค่า ID อย่างอิสระ โดเมนของ ID ไม่ได้ถูกจำกัดไว้ล่วงหน้าโดยการสร้าง; ในทฤษฎีแล้ว ID สามารถเป็นได้สตริงอย่างสุ่ม (สูงสุดตามข้อจำกัดที่บังคับในการนำไปใช้งานและเก็บรักษาของสัญญาที่ระบุเจาะจง)

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

(Threshold) การเข้ารหัสด้วย Identity-Based Encryption (IBE)

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

ใน IBE ผู้ใช้ไม่ได้สร้างคู่คีย์ของตนเอง แต่ลงทะเบียนด้วยตัวสร้างคีย์ที่เชื่อถือได้แทน เครื่องกําเนิดคีย์มีคู่คีย์ "ต้นแบบ" (msk, mpk ในรูป) กําหนด ID ของผู้ใช้ตัวสร้างคีย์จะใช้คีย์ลับหลัก msk และ ID เพื่อคํานวณคีย์ลับสําหรับผู้ใช้ คีย์ลับนั้นจะต้องสื่อสารกับผู้ใช้ผ่านช่องทางที่ปลอดภัย (ซึ่งสามารถสร้างได้ด้วย โปรโตคอลแลกเปลี่ยนคีย์).

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

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

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

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

หากผู้ใช้ยอมรับการสมมติความเชื่อนี้ (threshold) IBE มาพร้อมกับประโยชน์มากมาย:

  • การจัดเก็บข้อมูลบนเชื่อมต่ออย่างต่อเนื่อง/ขั้นต่ำ ที่จำเป็นต้องเก็บข้อมูลบนเชื่อมต่ออย่างต่อเนื่อง บนเส้นทางเดียวกัน คือ กุญแจสาธารณะต้นฉบับ (กลุ่มองค์ประกอบเดียว) ที่จำเป็นต้องเก็บบนเชื่อมต่ออย่างต่อเนื่อง น้อยกว่าการจัดเก็บข้อมูลบนเชื่อมต่ออย่างต่อเนื่อง บนเส้นทางเดียวกันสำหรับไดเรกทอรีกุญแจสาธารณะบนเชื่อมต่ออย่างต่อเนื่อง สำหรับ Boneh-Franklin IBE บนเส้นโค้ง BN254 นี้หมายถึงการเพิ่มพื้นที่การจัดเก็บบนเชื่อมต่ออย่างต่อเนื่องเพียง 64 ไบต์ ในระหว่างขั้นตอนการตั้งค่า ทำให้บริการต้องใช้เพียง 40K gas เท่านั้น
  • การเข้ารหัสแบบไม่โต้ตอบ ผู้ส่งต้องการคีย์สาธารณะหลักเท่านั้น (ซึ่งจะดาวน์โหลดครั้งเดียวเมื่อเริ่มต้น) และ ID ของผู้รับเพื่อเข้ารหัสข้อความ สิ่งนี้ตรงกันข้ามกับไดเร็กทอรีคีย์สาธารณะซึ่งจะต้องดึงคีย์สําหรับผู้ใช้ใหม่ทุกคนที่ต้องการสื่อสารด้วย
  • การถอดรหัสแบบไม่ต้องป้อนข้อมูลใดๆ เพิ่มเติม อีกครั้ง ผู้ใช้ใช้กุญแจลับที่เก็บไว้ในเครื่องเพื่อถอดรหัสข้อความ
  • ผู้ส่ง-ไม่ระบุชื่อ ผู้ส่งไม่ต้องเรียกคืนข้อมูลของผู้รับใด ๆ จากเครือข่าย ในกรณีของทะเบียนกุญแจสาธารณะ ผู้ส่งต้องทำการติดต่อกับสัญญาในวิธีที่ขึ้นอยู่กับผู้รับ
  • ชุด ID อย่างสมบูรณ์. เช่นในทะเบียนคีย์สาธารณะ IDs สามารถเป็นสตริงอย่างสมบูรณ์

แต่!

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

เมื่อคุณอาจต้องการใช้ (threshold) IBE บ้าง? หากมีบุคคลที่สามที่เชื่อถือได้หรือมีการให้บริการ และผู้ใช้พร้อมที่จะเชื่อให้กับพวกเขา IBE ให้ความสามารถในพื้นที่มากกว่า (และจึงถูกกว่า) ตัวเลือกเมื่อเทียบกับทะเบียนกุญแจบนโซน

การเข้ารหัสที่ขึ้นอยู่กับการลงทะเบียน (RBE)

สรุป: คล้ายกับ IBE การรับรองตัวตนของผู้ใช้เป็นกุญแจสาธารณะของพวกเขา แต่คนที่ไว้วางใจ/คอร์เริ่มที่ไว้วางใจถูกแทนที่ด้วยตัวสะสมที่โปร่งใส (เรียกว่า "ผู้รักษากุญแจ")

ในส่วนนี้ ฉันจะพูดถึงการสร้าง RBE ที่มีประสิทธิภาพจากกระดาษของฉันตั้งแต่ไม่เหมือน (เพื่อความรู้ของฉัน) only other practical construction, ณ ขณะนี้สามารถใช้งานได้บนบล็อกเชน (โดยใช้การจับคู่แบบที่ใช้เครื่องหมายกำกับแทนการใช้ตาราง). เมื่อฉันพูดถึง “RBE” ฉันหมายถึงการสร้างนี้เฉพาะอย่างไรก็ตามคำบางคำอาจจะเป็นความจริงของ RBE โดยทั่วไป

ใน RBE ผู้ใช้จะสร้างคู่คีย์ของตัวเองและคํานวณ "ค่าอัปเดต" (a ในรูป) ที่ได้มาจากคีย์ลับและสตริงอ้างอิงทั่วไป (CRS) แม้ว่าการมี CRS หมายความว่าการตั้งค่านั้นไม่น่าเชื่อถืออย่างสมบูรณ์ แต่ CRS ก็เป็น powers-of-tauconstruction, ซึ่งสามารถคำนวณร่วมกันบนเชืองและปลอดภัยตราบเท่าที่มีการมีส่วนร่วมที่ซื่อสัตย์แค่คนเดียว

สัญญาอัจฉริยะถูกตั้งค่าสําหรับจํานวนผู้ใช้ที่คาดหวัง N ซึ่งจัดกลุ่มเป็นบัคเก็ต เมื่อผู้ใช้ลงทะเบียนในระบบระบบจะส่ง ID คีย์สาธารณะและอัปเดตค่าไปยังสัญญาอัจฉริยะ สัญญาอัจฉริยะรักษาชุดของพารามิเตอร์สาธารณะ pp (แตกต่างจาก CRS) ซึ่งถือได้ว่าเป็น "ย่อย" ที่รวบรัดของคีย์สาธารณะของทุกฝ่ายที่ลงทะเบียนในระบบ เมื่อได้รับคําขอลงทะเบียนจะทําการตรวจสอบค่าการอัปเดตและคูณคีย์สาธารณะลงในบัคเก็ตที่เหมาะสมของ pp

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

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

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

เห็นได้ชัดว่าโครงการนี้ซับซ้อนกว่าอีกสองโครงการ แต่ต้องใช้พื้นที่เก็บข้อมูลแบบ on-chain น้อยกว่าไดเรกทอรีคีย์สาธารณะในขณะที่หลีกเลี่ยงสมมติฐานความไว้วางใจที่แข็งแกร่งของ IBE

  • พารามิเตอร์ที่รวบรัด ขนาดของพารามิเตอร์ที่จะจัดเก็บแบบ on-chain เป็นแบบ sublinear ในจํานวนผู้ใช้ สิ่งนี้มีขนาดเล็กกว่าพื้นที่เก็บข้อมูลทั้งหมดที่จําเป็นสําหรับไดเร็กทอรีคีย์สาธารณะ (เชิงเส้นในจํานวนผู้ใช้) แต่ก็ยังไม่คงที่และแย่กว่าเมื่อเทียบกับ IBE
  • การเข้ารหัสแบบประมาณการโต้ตอบ ในการส่งข้อความ ผู้ส่งต้องมีสำเนาของพารามิเตอร์สาธารณะซึ่งประกอบด้วยผู้รับที่ต้องการ นั่นหมายความว่าจะต้องอัปเดตพารามิเตอร์ในบางจุดหลังจากผู้รับที่ตั้งใจลงทะเบียน แต่ไม่จำเป็นต้องอัปเดตสำหรับผู้รับที่ตั้งใจทุกครั้งที่ลงทะเบียน เนื่องจากการอัปเดตหนึ่งครั้งอาจรวมถึงคีย์ของผู้รับหลายราย โดยรวมแล้ว การส่งข้อความเป็นรูปแบบที่มีการโต้ตอบมากกว่า IBE แต่น้อยกว่าไดเรกทอรี
  • การถอดรหัสแบบโต้ตอบค่อนข้าง เช่นเดียวกับกรณีการเข้ารหัสผู้รับต้องการสําเนาของข้อมูลเสริมที่ "ตรงกับ" เวอร์ชันของพารามิเตอร์สาธารณะที่ใช้สําหรับการเข้ารหัส โดยเฉพาะอย่างยิ่งทั้งพารามิเตอร์สาธารณะและบัคเก็ต aux จะได้รับการอัปเดตเมื่อใดก็ตามที่ผู้ใช้ใหม่ลงทะเบียนในบัคเก็ตนั้นและค่าที่สามารถถอดรหัสข้อความเข้ารหัสคือค่าที่สอดคล้องกับเวอร์ชัน pp ที่ใช้ในการเข้ารหัส เช่นเดียวกับการอัปเดตพารามิเตอร์สาธารณะผู้ใช้สามารถตัดสินใจดึงการอัปเดต aux เป็นระยะ ๆ เท่านั้นยกเว้นเมื่อการถอดรหัสล้มเหลว ซึ่งแตกต่างจากการอัปเดตพารามิเตอร์สาธารณะการดึงการอัปเดต aux บ่อยขึ้นจะไม่ทําให้ข้อมูลรั่วไหลโดยเนื้อแท้
  • ผู้ส่งเป็นไม่ทราบชื่อ ดังเช่นในกรณีของไดเรกทอรี ผู้ส่งสามารถเข้ารหัสข้อความได้โดยสมบูรณ์เอง (หากมีพารามิเตอร์ที่อัปเดต) โดยไม่ต้องสอบถามข้อมูลเฉพาะผู้รับ ข้อมูลที่อ่านจากโซ่เมื่อจำเป็น จะไม่ขึ้นอยู่กับผู้รับที่ตั้งใจ (เพื่อลดการสื่อสาร ผู้ส่งสามารถขอเฉพาะ pp bucket ที่เฉพาะเจาะจงได้ ซึ่งจะเป็นการรั่วไหลข้อมูลบางส่วน)
  • ใส แม้ว่าระบบจะต้องได้รับการตั้งค่าโดยใช้พิธีการตั้งค่าที่เชื่อถือได้ (อาจแจกจ่ายและ / หรือจัดการภายนอก) ซึ่งส่งออก CRS ที่เจาะทะลุ แต่ก็ไม่ได้พึ่งพาฝ่ายที่เชื่อถือได้หรือองค์ประชุมเมื่อการตั้งค่าเสร็จสมบูรณ์: แม้ว่าจะอาศัยบุคคลที่สามที่ประสานงาน (สัญญา) แต่ก็มีความโปร่งใสอย่างสมบูรณ์และทุกคนสามารถเป็นผู้ประสานงานหรือตรวจสอบว่าพวกเขาประพฤติตนอย่างซื่อสัตย์โดยยืนยันการเปลี่ยนสถานะ (นั่นคือเหตุผลที่สามารถทําได้ ดําเนินการเป็นสัญญาอัจฉริยะ) นอกจากนี้ผู้ใช้สามารถขอหลักฐานการเป็นสมาชิกที่รวบรัด (ไม่ใช่) เพื่อตรวจสอบว่าพวกเขา (หรือคนอื่น ๆ ) ลงทะเบียน / ไม่ได้ลงทะเบียนในระบบ สิ่งนี้ตรงกันข้ามกับกรณี IBE ซึ่งเป็นเรื่องยากสําหรับฝ่าย / ฝ่ายที่เชื่อถือได้ที่จะพิสูจน์ว่าพวกเขาไม่ได้แอบเปิดเผยคีย์ถอดรหัส (ให้กับตัวเองโดยการทําสําเนาลับหรือให้คนอื่น) ในทางกลับกันไดเรกทอรีคีย์สาธารณะมีความโปร่งใสอย่างสมบูรณ์
  • ตั้งค่า ID ที่ถูกจํากัด ฉันได้อธิบายรุ่น "พื้นฐาน" ของการก่อสร้าง RBE ในการกําหนดอย่างโปร่งใสว่า ID อยู่ในบัคเก็ตใดรหัสจะต้องมีการเรียงลําดับแบบสาธารณะและกําหนดได้ หมายเลขโทรศัพท์สามารถสั่งซื้อได้ แต่การสั่งซื้อสตริงโดยพลการนั้นไม่ราบรื่นหากเป็นไปไม่ได้เนื่องจากจํานวนถังอาจมีขนาดใหญ่มากหรือไม่มีขอบเขต สิ่งนี้อาจถูกแก้ไขโดยการเสนอสัญญาแยกต่างหากซึ่งคํานวณการทําแผนที่ดังกล่าวหรือโดยการนําวิธีการแฮชนกกาเหว่าที่เสนอใน งานที่ตามมานี้.

ด้วยส่วนขยาย:

  • ผู้รับที่ไม่ระบุชื่อ รูปแบบสามารถขยายได้เพื่อไม่ให้ข้อความเข้ารหัสเปิดเผยตัวตนของผู้รับ

คุณต้องการใช้ RBE เมื่อใด RBE ใช้ที่เก็บข้อมูลแบบ on-chain น้อยกว่ารีจิสทรีแบบ on-chain ในขณะเดียวกันก็หลีกเลี่ยงสมมติฐานความน่าเชื่อถือที่แข็งแกร่งที่ IBE ต้องการ เมื่อเทียบกับรีจิสทรี RBE ยังให้การรับประกันความเป็นส่วนตัวที่แข็งแกร่งกว่าแก่ผู้ส่ง อย่างไรก็ตามเนื่องจาก RBE เพิ่งกลายเป็นตัวเลือกที่ทํางานได้สําหรับการจัดการคีย์เราจึงไม่แน่ใจว่าสถานการณ์ใดจะได้รับประโยชน์มากที่สุดจากการรวมกันของคุณสมบัตินี้ กรุณา ให้ฉันทราบหากคุณมีความคิดใด ๆ

เปรียบเทียบประสิทธิภาพ

ฉันประเมินค่าใช้จ่าย (ณ วันที่ 30 กรกฎาคม ค.ศ. 2024) ในการนำแต่ละวิธีสามชั้นเข้าบัญชีบนเครือข่ายสมุดบันทึก Colab นี้. ผลลัพธ์สำหรับความสามารถของระบบประมาณ ~900K ผู้ใช้ (จำนวนของunique domain names registered in ENS at the time of this writingแสดงในตารางด้านล่าง

PKI ไม่มีค่าติดตั้งและค่าลงทะเบียนต่ําต่อผู้ใช้ในขณะที่ IBE มีค่าติดตั้งเล็กน้อยและการลงทะเบียนฟรีต่อผู้ใช้จริง RBE มีค่าใช้จ่ายในการติดตั้งที่สูงขึ้นและยังมีค่าใช้จ่ายในการลงทะเบียนที่สูงอย่างไม่คาดคิดแม้ว่าจะต้องใช้พื้นที่จัดเก็บแบบ on-chain ต่ําก็ตาม

ค่าลงทะเบียนที่ส่วนใหญ่ (ในสมมติฐานว่าการคำนวณทำบน L2) มาจากความจำเป็นที่ผู้เข้าร่วมต้องอัปเดตพารามิเตอร์สาธารณะในการเก็บรักษาในพื้นที่ถาวร ซึ่งเพิ่มค่าลงทะเบียนสูง

แม้ว่า RBE จะมีราคาแพงกว่าทางเลือกอื่น แต่การวิเคราะห์นี้แสดงให้เห็นว่าสามารถปรับใช้บนเมนเน็ต Ethereum ได้ในปัจจุบันโดยไม่มีสมมติฐานความน่าเชื่อถือที่อาจมีความเสี่ยงของ PKI หรือ IBE และนั่นคือก่อนการเพิ่มประสิทธิภาพเช่นการปรับใช้อินสแตนซ์หลายอินสแตนซ์ที่เล็กกว่า (และถูกกว่า) หรือใช้ข้อมูล blob เนื่องจาก RBE มีข้อได้เปรียบเหนือไดเรกทอรีคีย์สาธารณะและ IBE ในรูปแบบของการไม่เปิดเผยตัวตนที่แข็งแกร่งขึ้นและสมมติฐานความน่าเชื่อถือที่ลดลงจึงอาจน่าสนใจสําหรับผู้ที่ให้ความสําคัญกับความเป็นส่วนตัวและการตั้งค่าที่ไม่น่าเชื่อถือ


Noemi Glaeserเป็นนักศึกษาปริญญาเอกในสาขาวิทยาการคอมพิวเตอร์ที่มหาวิทยาลัยเมริแลนด์และสถาบันแม็กซ์แพลงค์เพื่อความปลอดภัยและความเป็นส่วนตัวและเป็นนักวิจัยระหว่างฤดูร้อนของ a16z crypto ในปี '23 เธอเป็นผู้ได้รับทุนสนับสนุนการวิจัยระดับบัณฑิตศึกษาจาก NSF และเป็นนักวิจัยระหว่างฤดูร้อนที่ NTT Research ก่อนหน้านี้


ภาคผนวก: ข้อควรพิจารณาเพิ่มเติม

การจัดการการอัปเดต/การเพิกถอนคีย์

ในกรณีที่มีไดเรกทอรีคีย์สาธารณะ การจัดการการอัปเดตและการเพิกถอนคีย์เป็นเรื่องง่าย: เพื่อเพิกถอนคีย์ ฝ่ายหนึ่งจะขอให้สัญญาลบคีย์นั้นออกจากไดเรกทอรี ในการอัปเดตคีย์ รายการ (id, pk) จะถูกเขียนทับด้วยคีย์ใหม่เป็น (id, pk’)

สําหรับการเพิกถอนใน IBE Boneh และ Franklin แนะนําให้ผู้ใช้อัปเดตคีย์ของตนเป็นระยะ (เช่น ทุกสัปดาห์) และผู้ส่งจะรวมช่วงเวลาปัจจุบันไว้ในสตริงข้อมูลประจําตัวเมื่อเข้ารหัส (เช่น "Bob <สัปดาห์ปัจจุบัน>") เนื่องจากลักษณะการเข้ารหัสแบบไม่โต้ตอบผู้ส่งจึงไม่มีทางรู้ได้ว่าผู้ใช้จะเพิกถอนคีย์เมื่อใดดังนั้นการอัปเดตบางช่วงเวลาจึงมีอยู่จริง Boldyreva, Goyal และ Kumar ให้ กลไกการเพิกถอนที่มีประสิทธิภาพมากขึ้น โดยอ้างอิง “Fuzzy” IBE ซึ่งต้องใช้สองคีย์สําหรับการถอดรหัส: คีย์ "ข้อมูลประจําตัว" และคีย์ "เวลา" เพิ่มเติม ด้วยวิธีนี้จะต้องอัปเดตเฉพาะคีย์เวลาเป็นประจํา คีย์เวลาของผู้ใช้จะถูกสะสมในต้นไม้ไบนารีและผู้ใช้สามารถใช้โหนดใดก็ได้ตามเส้นทาง (ในกรณีพื้นฐานจําเป็นต้องใช้รูทเท่านั้นและเป็นส่วนเดียวที่เผยแพร่โดยตัวสร้างคีย์) การเพิกถอนคีย์ทําได้โดยการไม่เผยแพร่การอัปเดตสําหรับผู้ใช้รายใดรายหนึ่งอีกต่อไป (การลบโหนดตามเส้นทางของผู้ใช้รายนั้นจากต้นไม้) ซึ่งในกรณีนี้ขนาดของการอัปเดตจะเพิ่มขึ้น แต่ไม่เกินลอการิทึมในจํานวนผู้ใช้

การสร้าง RBE ที่มีประสิทธิภาพของเราไม่พิจารณาการอัปเดตและการถอดถอนงานติดตามผลให้คอมไพล์เลอร์ที่สามารถ “อัพเกรด” โปรแกรมของเราเพื่อเพิ่มความสามารถเหล่านี้

การย้ายข้อมูลออกจากเชื่อมต่อ DAS

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

คำเตือน:

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

บทนำเกี่ยวกับการเข้ารหัสที่ใช้ในการลงทะเบียน

ขั้นสูง8/29/2024, 10:12:48 AM
บทความนี้ให้การวิเคราะห์เชิงลึกเกี่ยวกับความท้าทายที่เกี่ยวข้องกับการเชื่อมโยงข้อมูลประจําตัวกับคีย์สาธารณะในการเข้ารหัสคีย์สาธารณะและเสนอวิธีแก้ปัญหาสามวิธี: ไดเรกทอรีคีย์สาธารณะการเข้ารหัสตามข้อมูลประจําตัว (IBE) และการเข้ารหัสตามการลงทะเบียน (RBE) มันกล่าวถึงการประยุกต์ใช้โซลูชันเหล่านี้ในเทคโนโลยีบล็อกเชนรวมถึงผลกระทบต่อการไม่เปิดเผยตัวตนการโต้ตอบและประสิทธิภาพ บทความนี้ยังสํารวจข้อดีและข้อ จํากัด ของแต่ละวิธีเช่นการพึ่งพารากฐานความไว้วางใจที่แข็งแกร่งของ IBE และการเพิ่มประสิทธิภาพข้อกําหนดการจัดเก็บข้อมูลแบบ on-chain ของ RBE เมื่อเปรียบเทียบวิธีการเหล่านี้ผู้อ่านจะได้รับความเข้าใจที่ดีขึ้นเกี่ยวกับความท้าทายและการแลกเปลี่ยนที่เกี่ยวข้องกับการสร้างระบบที่ปลอดภัยและกระจายอํานาจ

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

ปัจจุบันมีวิธีแก้ปัญหาที่เป็นไปได้สามวิธี สองวิธีคลาสสิกคือไดเรกทอรีคีย์สาธารณะและการเข้ารหัสตามข้อมูลประจําตัว ประการที่สามคือการเข้ารหัสตามการลงทะเบียนซึ่งจนกระทั่งเมื่อไม่นานมานี้เป็นทฤษฎีทั้งหมด วิธีการทั้งสามมีการแลกเปลี่ยนที่แตกต่างกันระหว่างการไม่เปิดเผยตัวตนการโต้ตอบและประสิทธิภาพซึ่งอาจดูเหมือนชัดเจนในตอนแรก แต่การตั้งค่าบล็อกเชนแนะนําความเป็นไปได้และข้อ จํากัด ใหม่ ๆ เป้าหมายของโพสต์นี้คือการสํารวจพื้นที่การออกแบบนี้และเปรียบเทียบแนวทางเหล่านี้เมื่อปรับใช้บนบล็อกเชน เมื่อผู้ใช้ต้องการความโปร่งใสและไม่เปิดเผยตัวตนโครงการ RBE ที่ใช้งานได้จริงคือผู้ชนะที่ชัดเจนนั่นคือการเอาชนะสมมติฐานความไว้วางใจที่แข็งแกร่งของการเข้ารหัสตามข้อมูลประจําตัว แต่มีค่าใช้จ่าย

การเข้ารหัสสามวิธีโดยสั้น

วิธีการแบบคลาสสิกในการเชื่อมโยงคีย์การเข้ารหัสกับข้อมูลประจําตัวคือโครงสร้างพื้นฐานคีย์สาธารณะ (PKI) โดยมีไดเรกทอรีคีย์สาธารณะเป็นหัวใจสําคัญ วิธีการนี้กําหนดให้ผู้ส่งที่มีศักยภาพโต้ตอบกับบุคคลที่สามที่เชื่อถือได้ (ผู้ดูแลไดเรกทอรีหรือผู้ออกใบรับรอง) เพื่อส่งข้อความ นอกจากนี้ในการตั้งค่า web2 การบํารุงรักษาไดเรกทอรีนี้อาจมีค่าใช้จ่ายสูงน่าเบื่อและ error prone, และผู้ใช้เสี่ยงต่อการการละเมิดโดยหน่วยงานออกใบรับรอง.

นักเขียนรหัสได้แนะนำทางเลือกเพื่อหลีกเลี่ยงปัญหากับ PKI ในปี 1984,Adi Shamir แนะนำ การเข้ารหัสตามข้อมูลประจําตัว (IBE) ซึ่งตัวระบุของฝ่ายต่างๆ เช่น หมายเลขโทรศัพท์ อีเมล ENS ชื่อโดเมน ทําหน้าที่เป็นคีย์สาธารณะ สิ่งนี้ช่วยลดความจําเป็นในการรักษาไดเรกทอรีคีย์สาธารณะ แต่มีค่าใช้จ่ายในการแนะนําบุคคลที่สามที่เชื่อถือได้ (ตัวสร้างคีย์) Dan Boneh และ Matthew Franklin ให้ การสร้าง IBE ที่ใช้ได้จริงครั้งแรกในปี 2001 แต่ IBE ยังไม่ได้รับการใช้ที่แพร่หลาย ยกเว้นในระบบนิเวศปิดเช่น บริษัท หรือการติดตั้งของรัฐบาลอาจเป็นเพราะสมมติฐานความไว้วางใจที่แข็งแกร่ง ข้อสันนิษฐานนี้สามารถแก้ไขได้บางส่วนโดยอาศัยองค์ประชุมที่เชื่อถือได้ของฝ่ายต่างๆ แทน ซึ่งบล็อกเชนสามารถอํานวยความสะดวกได้อย่างง่ายดาย)

อีกตัวเลือกหนึ่งคือการเข้ารหัสที่ใช้การลงทะเบียน (RBE) ถูกproposed ใน พ.ศ.2561 RBE ยังคงรักษาสถาปัตยกรรมทั่วไปเช่นเดียวกับ IBE แต่แทนที่เครื่องกําเนิดคีย์ที่เชื่อถือได้ด้วย "ภัณฑารักษ์หลัก" ที่โปร่งใสซึ่งดําเนินการคํานวณข้อมูลสาธารณะเท่านั้น (โดยเฉพาะจะสะสมคีย์สาธารณะเป็น "ย่อย" ที่เปิดเผยต่อสาธารณะ) ความโปร่งใสของภัณฑารักษ์หลักนี้ทําให้การตั้งค่าบล็อกเชน — ซึ่งสัญญาอัจฉริยะสามารถเติมเต็มบทบาทของภัณฑารักษ์ — เหมาะอย่างยิ่งสําหรับ RBE RBE เป็นทฤษฎีจนถึงปี 2022 เมื่อผู้เขียนร่วมของฉันและฉันแนะนํา การสร้าง RBE ที่มีประสิทธิภาพในการใช้งานครั้งแรก.

การประเมินการตัดสินใจ

พื้นที่ออกแบบนี้ซับซ้อน และการเปรียบเทียบแผนการนี้ต้องพิจารณามุมมองหลายมิติ หากต้องการให้ง่ายขึ้น ฉันจะทำสมมติฐานสองอย่าง

  1. ผู้ใช้ไม่ได้อัพเดตหรือเพิกถอนคีย์ของพวกเขา
  2. สัญญาอัจฉริยะไม่ใช้บริการการให้ข้อมูลจากภายนอก (DAS) หรือข้อมูลบล็อบ

ฉันจะพูดถึงที่สิ้นสุดว่าแต่ละข้อพิจารณาเพิ่มเติมเหล่านี้สามารถมีผลต่อทางเลือกสามอย่างที่เรามีได้อย่างไร

โดยชื่อของหน่วยงาน

สรุป: ใครก็ตามสามารถเพิ่มรายการ (id, pk) เข้าสู่ตารางบนเชื่อมโยง (ไดเรกทอรี) โดยเรียกใช้สัญญาอัจฉริยะ หากยังไม่ได้รับการเรียกเก็บ

ระบบ PKI แบบกระจายคือสัญญาอัจฉริยะที่รักษารายการบุคคลและคีย์สาธารณะที่เกี่ยวข้องทะเบียน Ethereum Name Service (ENS) รักษาการแมปชื่อโดเมน ("ข้อมูลประจําตัว") และข้อมูลเมตาที่เกี่ยวข้อง รวมถึงที่อยู่ที่พวกเขาแก้ไข (จากธุรกรรมที่สามารถรับคีย์สาธารณะได้) PKI แบบกระจายอํานาจจะให้ฟังก์ชันการทํางานที่ง่ายกว่า: รายการที่รักษาโดยสัญญาจะจัดเก็บเฉพาะคีย์สาธารณะที่สอดคล้องกับแต่ละ ID

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

มาดูคุณสมบัติของวิธีนี้กัน

ด้านลบของบัญชี:

  • ไม่กระชับ ไดเรกทอรีคีย์เต็มต้องถูกเก็บไว้บนเชื่อมโยงเสมอ เพื่อให้สามารถใช้ได้เสมอสำหรับทุกคน (โปรดจำไว้ในขณะนี้เรากำลังสมมุติว่าไม่มี DAS) สำหรับ ~900Kชื่อโดเมนที่ไม่ซ้ำกันที่ลงทะเบียนใน ENS ในขณะที่เขียนข้อความนี้นี่หมายถึงพื้นที่จัดเก็บที่คงทนเกือบ 90MB หน่วยงานที่ลงทะเบียนต้องชำระค่าเก็บข้อมูลที่รายการของพวกเขาใช้ไปประมาณ 65K gas (ปัจจุบันประมาณ $1 - ดูการประเมินประสิทธิภาพด้านล่าง)
  • การเข้ารหัสแบบโต้ตอบค่อนข้าง ผู้ส่งจําเป็นต้องอ่านห่วงโซ่เพื่อดึงคีย์สาธารณะของผู้ใช้ แต่ถ้าเป็นครั้งแรกที่ผู้ส่งเข้ารหัสข้อความไปยังผู้ใช้รายนั้น (โปรดจําไว้ว่าเราสมมติว่าผู้ใช้ไม่ได้อัปเดตหรือเพิกถอนคีย์ของพวกเขา)
  • ไม่ระบุชื่อผู้ส่ง เมื่อคุณดึงคีย์สาธารณะของใครบางคน คุณจะเชื่อมโยงตัวเองกับผู้รับ ซึ่งบ่งชี้ว่าคุณมีความสัมพันธ์บางอย่างกับพวกเขา ลองนึกภาพตัวอย่างเช่นคุณดึงคีย์สาธารณะสําหรับ WikiLeaks: สิ่งนี้อาจสร้างความสงสัยว่าคุณกําลังรั่วไหลของเอกสารลับ ปัญหานี้อาจได้รับการแก้ไขด้วย "การรับส่งข้อมูลที่ครอบคลุม" (ดึงคีย์ชุดใหญ่ซึ่งส่วนใหญ่คุณไม่ได้ตั้งใจจะใช้) หรือในทํานองเดียวกันโดยการเรียกใช้โหนดแบบเต็มหรือด้วยการดึงข้อมูลส่วนตัว (PIR)

ด้านบวกคือ:

  • การถอดรหัสแบบไม่ต้องปฏิสัมพันธ์ ผู้ใช้ถอดรหัสข้อความด้วยกุญแจลับที่เก็บไว้ในเครื่องของตนเอง ดังนั้นไม่ต้องมีการปฏิสัมพันธ์ใด ๆ
  • โปร่งใส รายชื่อผู้ใช้และคีย์ทั้งหมดเป็นสาธารณะอย่างสมบูรณ์ ดังนั้น ไม่ว่าใครก็สามารถตรวจสอบได้ว่าพวกเขาได้ลงทะเบียนถูกต้องหรือไม่
  • ตั้งค่า ID อย่างอิสระ โดเมนของ ID ไม่ได้ถูกจำกัดไว้ล่วงหน้าโดยการสร้าง; ในทฤษฎีแล้ว ID สามารถเป็นได้สตริงอย่างสุ่ม (สูงสุดตามข้อจำกัดที่บังคับในการนำไปใช้งานและเก็บรักษาของสัญญาที่ระบุเจาะจง)

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

(Threshold) การเข้ารหัสด้วย Identity-Based Encryption (IBE)

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

ใน IBE ผู้ใช้ไม่ได้สร้างคู่คีย์ของตนเอง แต่ลงทะเบียนด้วยตัวสร้างคีย์ที่เชื่อถือได้แทน เครื่องกําเนิดคีย์มีคู่คีย์ "ต้นแบบ" (msk, mpk ในรูป) กําหนด ID ของผู้ใช้ตัวสร้างคีย์จะใช้คีย์ลับหลัก msk และ ID เพื่อคํานวณคีย์ลับสําหรับผู้ใช้ คีย์ลับนั้นจะต้องสื่อสารกับผู้ใช้ผ่านช่องทางที่ปลอดภัย (ซึ่งสามารถสร้างได้ด้วย โปรโตคอลแลกเปลี่ยนคีย์).

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

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

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

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

หากผู้ใช้ยอมรับการสมมติความเชื่อนี้ (threshold) IBE มาพร้อมกับประโยชน์มากมาย:

  • การจัดเก็บข้อมูลบนเชื่อมต่ออย่างต่อเนื่อง/ขั้นต่ำ ที่จำเป็นต้องเก็บข้อมูลบนเชื่อมต่ออย่างต่อเนื่อง บนเส้นทางเดียวกัน คือ กุญแจสาธารณะต้นฉบับ (กลุ่มองค์ประกอบเดียว) ที่จำเป็นต้องเก็บบนเชื่อมต่ออย่างต่อเนื่อง น้อยกว่าการจัดเก็บข้อมูลบนเชื่อมต่ออย่างต่อเนื่อง บนเส้นทางเดียวกันสำหรับไดเรกทอรีกุญแจสาธารณะบนเชื่อมต่ออย่างต่อเนื่อง สำหรับ Boneh-Franklin IBE บนเส้นโค้ง BN254 นี้หมายถึงการเพิ่มพื้นที่การจัดเก็บบนเชื่อมต่ออย่างต่อเนื่องเพียง 64 ไบต์ ในระหว่างขั้นตอนการตั้งค่า ทำให้บริการต้องใช้เพียง 40K gas เท่านั้น
  • การเข้ารหัสแบบไม่โต้ตอบ ผู้ส่งต้องการคีย์สาธารณะหลักเท่านั้น (ซึ่งจะดาวน์โหลดครั้งเดียวเมื่อเริ่มต้น) และ ID ของผู้รับเพื่อเข้ารหัสข้อความ สิ่งนี้ตรงกันข้ามกับไดเร็กทอรีคีย์สาธารณะซึ่งจะต้องดึงคีย์สําหรับผู้ใช้ใหม่ทุกคนที่ต้องการสื่อสารด้วย
  • การถอดรหัสแบบไม่ต้องป้อนข้อมูลใดๆ เพิ่มเติม อีกครั้ง ผู้ใช้ใช้กุญแจลับที่เก็บไว้ในเครื่องเพื่อถอดรหัสข้อความ
  • ผู้ส่ง-ไม่ระบุชื่อ ผู้ส่งไม่ต้องเรียกคืนข้อมูลของผู้รับใด ๆ จากเครือข่าย ในกรณีของทะเบียนกุญแจสาธารณะ ผู้ส่งต้องทำการติดต่อกับสัญญาในวิธีที่ขึ้นอยู่กับผู้รับ
  • ชุด ID อย่างสมบูรณ์. เช่นในทะเบียนคีย์สาธารณะ IDs สามารถเป็นสตริงอย่างสมบูรณ์

แต่!

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

เมื่อคุณอาจต้องการใช้ (threshold) IBE บ้าง? หากมีบุคคลที่สามที่เชื่อถือได้หรือมีการให้บริการ และผู้ใช้พร้อมที่จะเชื่อให้กับพวกเขา IBE ให้ความสามารถในพื้นที่มากกว่า (และจึงถูกกว่า) ตัวเลือกเมื่อเทียบกับทะเบียนกุญแจบนโซน

การเข้ารหัสที่ขึ้นอยู่กับการลงทะเบียน (RBE)

สรุป: คล้ายกับ IBE การรับรองตัวตนของผู้ใช้เป็นกุญแจสาธารณะของพวกเขา แต่คนที่ไว้วางใจ/คอร์เริ่มที่ไว้วางใจถูกแทนที่ด้วยตัวสะสมที่โปร่งใส (เรียกว่า "ผู้รักษากุญแจ")

ในส่วนนี้ ฉันจะพูดถึงการสร้าง RBE ที่มีประสิทธิภาพจากกระดาษของฉันตั้งแต่ไม่เหมือน (เพื่อความรู้ของฉัน) only other practical construction, ณ ขณะนี้สามารถใช้งานได้บนบล็อกเชน (โดยใช้การจับคู่แบบที่ใช้เครื่องหมายกำกับแทนการใช้ตาราง). เมื่อฉันพูดถึง “RBE” ฉันหมายถึงการสร้างนี้เฉพาะอย่างไรก็ตามคำบางคำอาจจะเป็นความจริงของ RBE โดยทั่วไป

ใน RBE ผู้ใช้จะสร้างคู่คีย์ของตัวเองและคํานวณ "ค่าอัปเดต" (a ในรูป) ที่ได้มาจากคีย์ลับและสตริงอ้างอิงทั่วไป (CRS) แม้ว่าการมี CRS หมายความว่าการตั้งค่านั้นไม่น่าเชื่อถืออย่างสมบูรณ์ แต่ CRS ก็เป็น powers-of-tauconstruction, ซึ่งสามารถคำนวณร่วมกันบนเชืองและปลอดภัยตราบเท่าที่มีการมีส่วนร่วมที่ซื่อสัตย์แค่คนเดียว

สัญญาอัจฉริยะถูกตั้งค่าสําหรับจํานวนผู้ใช้ที่คาดหวัง N ซึ่งจัดกลุ่มเป็นบัคเก็ต เมื่อผู้ใช้ลงทะเบียนในระบบระบบจะส่ง ID คีย์สาธารณะและอัปเดตค่าไปยังสัญญาอัจฉริยะ สัญญาอัจฉริยะรักษาชุดของพารามิเตอร์สาธารณะ pp (แตกต่างจาก CRS) ซึ่งถือได้ว่าเป็น "ย่อย" ที่รวบรัดของคีย์สาธารณะของทุกฝ่ายที่ลงทะเบียนในระบบ เมื่อได้รับคําขอลงทะเบียนจะทําการตรวจสอบค่าการอัปเดตและคูณคีย์สาธารณะลงในบัคเก็ตที่เหมาะสมของ pp

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

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

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

เห็นได้ชัดว่าโครงการนี้ซับซ้อนกว่าอีกสองโครงการ แต่ต้องใช้พื้นที่เก็บข้อมูลแบบ on-chain น้อยกว่าไดเรกทอรีคีย์สาธารณะในขณะที่หลีกเลี่ยงสมมติฐานความไว้วางใจที่แข็งแกร่งของ IBE

  • พารามิเตอร์ที่รวบรัด ขนาดของพารามิเตอร์ที่จะจัดเก็บแบบ on-chain เป็นแบบ sublinear ในจํานวนผู้ใช้ สิ่งนี้มีขนาดเล็กกว่าพื้นที่เก็บข้อมูลทั้งหมดที่จําเป็นสําหรับไดเร็กทอรีคีย์สาธารณะ (เชิงเส้นในจํานวนผู้ใช้) แต่ก็ยังไม่คงที่และแย่กว่าเมื่อเทียบกับ IBE
  • การเข้ารหัสแบบประมาณการโต้ตอบ ในการส่งข้อความ ผู้ส่งต้องมีสำเนาของพารามิเตอร์สาธารณะซึ่งประกอบด้วยผู้รับที่ต้องการ นั่นหมายความว่าจะต้องอัปเดตพารามิเตอร์ในบางจุดหลังจากผู้รับที่ตั้งใจลงทะเบียน แต่ไม่จำเป็นต้องอัปเดตสำหรับผู้รับที่ตั้งใจทุกครั้งที่ลงทะเบียน เนื่องจากการอัปเดตหนึ่งครั้งอาจรวมถึงคีย์ของผู้รับหลายราย โดยรวมแล้ว การส่งข้อความเป็นรูปแบบที่มีการโต้ตอบมากกว่า IBE แต่น้อยกว่าไดเรกทอรี
  • การถอดรหัสแบบโต้ตอบค่อนข้าง เช่นเดียวกับกรณีการเข้ารหัสผู้รับต้องการสําเนาของข้อมูลเสริมที่ "ตรงกับ" เวอร์ชันของพารามิเตอร์สาธารณะที่ใช้สําหรับการเข้ารหัส โดยเฉพาะอย่างยิ่งทั้งพารามิเตอร์สาธารณะและบัคเก็ต aux จะได้รับการอัปเดตเมื่อใดก็ตามที่ผู้ใช้ใหม่ลงทะเบียนในบัคเก็ตนั้นและค่าที่สามารถถอดรหัสข้อความเข้ารหัสคือค่าที่สอดคล้องกับเวอร์ชัน pp ที่ใช้ในการเข้ารหัส เช่นเดียวกับการอัปเดตพารามิเตอร์สาธารณะผู้ใช้สามารถตัดสินใจดึงการอัปเดต aux เป็นระยะ ๆ เท่านั้นยกเว้นเมื่อการถอดรหัสล้มเหลว ซึ่งแตกต่างจากการอัปเดตพารามิเตอร์สาธารณะการดึงการอัปเดต aux บ่อยขึ้นจะไม่ทําให้ข้อมูลรั่วไหลโดยเนื้อแท้
  • ผู้ส่งเป็นไม่ทราบชื่อ ดังเช่นในกรณีของไดเรกทอรี ผู้ส่งสามารถเข้ารหัสข้อความได้โดยสมบูรณ์เอง (หากมีพารามิเตอร์ที่อัปเดต) โดยไม่ต้องสอบถามข้อมูลเฉพาะผู้รับ ข้อมูลที่อ่านจากโซ่เมื่อจำเป็น จะไม่ขึ้นอยู่กับผู้รับที่ตั้งใจ (เพื่อลดการสื่อสาร ผู้ส่งสามารถขอเฉพาะ pp bucket ที่เฉพาะเจาะจงได้ ซึ่งจะเป็นการรั่วไหลข้อมูลบางส่วน)
  • ใส แม้ว่าระบบจะต้องได้รับการตั้งค่าโดยใช้พิธีการตั้งค่าที่เชื่อถือได้ (อาจแจกจ่ายและ / หรือจัดการภายนอก) ซึ่งส่งออก CRS ที่เจาะทะลุ แต่ก็ไม่ได้พึ่งพาฝ่ายที่เชื่อถือได้หรือองค์ประชุมเมื่อการตั้งค่าเสร็จสมบูรณ์: แม้ว่าจะอาศัยบุคคลที่สามที่ประสานงาน (สัญญา) แต่ก็มีความโปร่งใสอย่างสมบูรณ์และทุกคนสามารถเป็นผู้ประสานงานหรือตรวจสอบว่าพวกเขาประพฤติตนอย่างซื่อสัตย์โดยยืนยันการเปลี่ยนสถานะ (นั่นคือเหตุผลที่สามารถทําได้ ดําเนินการเป็นสัญญาอัจฉริยะ) นอกจากนี้ผู้ใช้สามารถขอหลักฐานการเป็นสมาชิกที่รวบรัด (ไม่ใช่) เพื่อตรวจสอบว่าพวกเขา (หรือคนอื่น ๆ ) ลงทะเบียน / ไม่ได้ลงทะเบียนในระบบ สิ่งนี้ตรงกันข้ามกับกรณี IBE ซึ่งเป็นเรื่องยากสําหรับฝ่าย / ฝ่ายที่เชื่อถือได้ที่จะพิสูจน์ว่าพวกเขาไม่ได้แอบเปิดเผยคีย์ถอดรหัส (ให้กับตัวเองโดยการทําสําเนาลับหรือให้คนอื่น) ในทางกลับกันไดเรกทอรีคีย์สาธารณะมีความโปร่งใสอย่างสมบูรณ์
  • ตั้งค่า ID ที่ถูกจํากัด ฉันได้อธิบายรุ่น "พื้นฐาน" ของการก่อสร้าง RBE ในการกําหนดอย่างโปร่งใสว่า ID อยู่ในบัคเก็ตใดรหัสจะต้องมีการเรียงลําดับแบบสาธารณะและกําหนดได้ หมายเลขโทรศัพท์สามารถสั่งซื้อได้ แต่การสั่งซื้อสตริงโดยพลการนั้นไม่ราบรื่นหากเป็นไปไม่ได้เนื่องจากจํานวนถังอาจมีขนาดใหญ่มากหรือไม่มีขอบเขต สิ่งนี้อาจถูกแก้ไขโดยการเสนอสัญญาแยกต่างหากซึ่งคํานวณการทําแผนที่ดังกล่าวหรือโดยการนําวิธีการแฮชนกกาเหว่าที่เสนอใน งานที่ตามมานี้.

ด้วยส่วนขยาย:

  • ผู้รับที่ไม่ระบุชื่อ รูปแบบสามารถขยายได้เพื่อไม่ให้ข้อความเข้ารหัสเปิดเผยตัวตนของผู้รับ

คุณต้องการใช้ RBE เมื่อใด RBE ใช้ที่เก็บข้อมูลแบบ on-chain น้อยกว่ารีจิสทรีแบบ on-chain ในขณะเดียวกันก็หลีกเลี่ยงสมมติฐานความน่าเชื่อถือที่แข็งแกร่งที่ IBE ต้องการ เมื่อเทียบกับรีจิสทรี RBE ยังให้การรับประกันความเป็นส่วนตัวที่แข็งแกร่งกว่าแก่ผู้ส่ง อย่างไรก็ตามเนื่องจาก RBE เพิ่งกลายเป็นตัวเลือกที่ทํางานได้สําหรับการจัดการคีย์เราจึงไม่แน่ใจว่าสถานการณ์ใดจะได้รับประโยชน์มากที่สุดจากการรวมกันของคุณสมบัตินี้ กรุณา ให้ฉันทราบหากคุณมีความคิดใด ๆ

เปรียบเทียบประสิทธิภาพ

ฉันประเมินค่าใช้จ่าย (ณ วันที่ 30 กรกฎาคม ค.ศ. 2024) ในการนำแต่ละวิธีสามชั้นเข้าบัญชีบนเครือข่ายสมุดบันทึก Colab นี้. ผลลัพธ์สำหรับความสามารถของระบบประมาณ ~900K ผู้ใช้ (จำนวนของunique domain names registered in ENS at the time of this writingแสดงในตารางด้านล่าง

PKI ไม่มีค่าติดตั้งและค่าลงทะเบียนต่ําต่อผู้ใช้ในขณะที่ IBE มีค่าติดตั้งเล็กน้อยและการลงทะเบียนฟรีต่อผู้ใช้จริง RBE มีค่าใช้จ่ายในการติดตั้งที่สูงขึ้นและยังมีค่าใช้จ่ายในการลงทะเบียนที่สูงอย่างไม่คาดคิดแม้ว่าจะต้องใช้พื้นที่จัดเก็บแบบ on-chain ต่ําก็ตาม

ค่าลงทะเบียนที่ส่วนใหญ่ (ในสมมติฐานว่าการคำนวณทำบน L2) มาจากความจำเป็นที่ผู้เข้าร่วมต้องอัปเดตพารามิเตอร์สาธารณะในการเก็บรักษาในพื้นที่ถาวร ซึ่งเพิ่มค่าลงทะเบียนสูง

แม้ว่า RBE จะมีราคาแพงกว่าทางเลือกอื่น แต่การวิเคราะห์นี้แสดงให้เห็นว่าสามารถปรับใช้บนเมนเน็ต Ethereum ได้ในปัจจุบันโดยไม่มีสมมติฐานความน่าเชื่อถือที่อาจมีความเสี่ยงของ PKI หรือ IBE และนั่นคือก่อนการเพิ่มประสิทธิภาพเช่นการปรับใช้อินสแตนซ์หลายอินสแตนซ์ที่เล็กกว่า (และถูกกว่า) หรือใช้ข้อมูล blob เนื่องจาก RBE มีข้อได้เปรียบเหนือไดเรกทอรีคีย์สาธารณะและ IBE ในรูปแบบของการไม่เปิดเผยตัวตนที่แข็งแกร่งขึ้นและสมมติฐานความน่าเชื่อถือที่ลดลงจึงอาจน่าสนใจสําหรับผู้ที่ให้ความสําคัญกับความเป็นส่วนตัวและการตั้งค่าที่ไม่น่าเชื่อถือ


Noemi Glaeserเป็นนักศึกษาปริญญาเอกในสาขาวิทยาการคอมพิวเตอร์ที่มหาวิทยาลัยเมริแลนด์และสถาบันแม็กซ์แพลงค์เพื่อความปลอดภัยและความเป็นส่วนตัวและเป็นนักวิจัยระหว่างฤดูร้อนของ a16z crypto ในปี '23 เธอเป็นผู้ได้รับทุนสนับสนุนการวิจัยระดับบัณฑิตศึกษาจาก NSF และเป็นนักวิจัยระหว่างฤดูร้อนที่ NTT Research ก่อนหน้านี้


ภาคผนวก: ข้อควรพิจารณาเพิ่มเติม

การจัดการการอัปเดต/การเพิกถอนคีย์

ในกรณีที่มีไดเรกทอรีคีย์สาธารณะ การจัดการการอัปเดตและการเพิกถอนคีย์เป็นเรื่องง่าย: เพื่อเพิกถอนคีย์ ฝ่ายหนึ่งจะขอให้สัญญาลบคีย์นั้นออกจากไดเรกทอรี ในการอัปเดตคีย์ รายการ (id, pk) จะถูกเขียนทับด้วยคีย์ใหม่เป็น (id, pk’)

สําหรับการเพิกถอนใน IBE Boneh และ Franklin แนะนําให้ผู้ใช้อัปเดตคีย์ของตนเป็นระยะ (เช่น ทุกสัปดาห์) และผู้ส่งจะรวมช่วงเวลาปัจจุบันไว้ในสตริงข้อมูลประจําตัวเมื่อเข้ารหัส (เช่น "Bob <สัปดาห์ปัจจุบัน>") เนื่องจากลักษณะการเข้ารหัสแบบไม่โต้ตอบผู้ส่งจึงไม่มีทางรู้ได้ว่าผู้ใช้จะเพิกถอนคีย์เมื่อใดดังนั้นการอัปเดตบางช่วงเวลาจึงมีอยู่จริง Boldyreva, Goyal และ Kumar ให้ กลไกการเพิกถอนที่มีประสิทธิภาพมากขึ้น โดยอ้างอิง “Fuzzy” IBE ซึ่งต้องใช้สองคีย์สําหรับการถอดรหัส: คีย์ "ข้อมูลประจําตัว" และคีย์ "เวลา" เพิ่มเติม ด้วยวิธีนี้จะต้องอัปเดตเฉพาะคีย์เวลาเป็นประจํา คีย์เวลาของผู้ใช้จะถูกสะสมในต้นไม้ไบนารีและผู้ใช้สามารถใช้โหนดใดก็ได้ตามเส้นทาง (ในกรณีพื้นฐานจําเป็นต้องใช้รูทเท่านั้นและเป็นส่วนเดียวที่เผยแพร่โดยตัวสร้างคีย์) การเพิกถอนคีย์ทําได้โดยการไม่เผยแพร่การอัปเดตสําหรับผู้ใช้รายใดรายหนึ่งอีกต่อไป (การลบโหนดตามเส้นทางของผู้ใช้รายนั้นจากต้นไม้) ซึ่งในกรณีนี้ขนาดของการอัปเดตจะเพิ่มขึ้น แต่ไม่เกินลอการิทึมในจํานวนผู้ใช้

การสร้าง RBE ที่มีประสิทธิภาพของเราไม่พิจารณาการอัปเดตและการถอดถอนงานติดตามผลให้คอมไพล์เลอร์ที่สามารถ “อัพเกรด” โปรแกรมของเราเพื่อเพิ่มความสามารถเหล่านี้

การย้ายข้อมูลออกจากเชื่อมต่อ DAS

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

คำเตือน:

  1. บทความนี้ถูกพิมพ์ซ้ำจาก [ a16zcrypto] ลิขสิทธิ์ทั้งหมดเป็นของผู้เขียนต้นฉบับ [โนเอมิ เกลเซอร์ ]. หากมีการคัดค้านในการพิมพ์ฉบับนี้ กรุณาติดต่อGate Learnทีม และพวกเขาจะดูแลมันโดยรวดเร็ว
  2. คำประกาศความรับผิด: มุมมองและความคิดเห็นที่แสดงในบทความนี้เป็นสิ่งที่เป็นของผู้เขียนเท่านั้น และไม่เป็นการให้คำแนะนำทางการลงทุนใดๆ
  3. การแปลบทความเป็นภาษาอื่น ๆ ถูกดำเนินการโดยทีม Gate Learn ห้ามคัดลอก แจกจ่าย หรือลอกเลียนแบบบทความที่ถูกแปลนี้ นอกเส้นทางที่ระบุไว้
Empieza ahora
¡Registrarse y recibe un bono de
$100
!
It seems that you are attempting to access our services from a Restricted Location where Gate.io is unable to provide services. We apologize for any inconvenience this may cause. Currently, the Restricted Locations include but not limited to: the United States of America, Canada, Cambodia, Cuba, Iran, North Korea and so on. For more information regarding the Restricted Locations, please refer to the User Agreement. Should you have any other questions, please contact our Customer Support Team.