原文:《ตึกจั๊กจั่น: การโหวตออนไลน์แบบส่วนตัวโดยใช้ปริศนาล็อคเวลา》โดย Michael Zhu,a16zเรียบเรียง: Kxp, BlockBeatsระบบการลงคะแนนทั้งหมดจำเป็นต้องอาศัยความสมบูรณ์และความโปร่งใสจึงจะมีประสิทธิภาพ บนพื้นผิว blockchain ดูเหมือนจะเป็นแพลตฟอร์มที่เหมาะสำหรับการสร้างระบบเหล่านี้ อันที่จริงแล้ว องค์กรกระจายอำนาจจำนวนมากใช้การลงคะแนนเสียงแบบไม่ได้รับอนุญาตเพื่อแสดงเจตจำนงร่วมกัน บ่อยครั้งในบริบทของการใช้อำนาจทางการเงินที่สำคัญหรือการปรับพารามิเตอร์โปรโตคอลหลัก อย่างไรก็ตาม การลงคะแนนแบบออนไลน์มีข้อเสียบางประการ และปัญหาความเป็นส่วนตัวยังไม่ได้รับการสำรวจอย่างสมบูรณ์สำหรับระบบการลงคะแนน Web3 ซึ่งทำให้เกิดผลกระทบในทางลบ ในโปรโตคอลการลงคะแนนออนไลน์ส่วนใหญ่ที่ใช้อยู่ในปัจจุบัน บัตรลงคะแนนและผลการลงคะแนนจะถูกเปิดเผยต่อสาธารณะอย่างสมบูรณ์ การขาดการคุ้มครองความเป็นส่วนตัวหมายความว่าผลการลงคะแนนมีความเสี่ยงที่จะถูกบิดเบือน ขณะเดียวกันก็นำไปสู่แรงจูงใจที่ไม่สอดคล้องกันสำหรับผู้ลงคะแนน ซึ่งอาจนำไปสู่ผลลัพธ์ที่ไม่เป็นประชาธิปไตยด้วยเหตุนี้ เราจึงเปิดตัว Cicada: ไลบรารี Solidity แบบโอเพนซอร์สใหม่ที่ใช้ประโยชน์จากปริศนาล็อกเวลาและหลักฐานที่ไม่มีความรู้สำหรับการลงคะแนนแบบส่วนตัวบนเครือข่าย เมื่อเปรียบเทียบกับระบบที่มีอยู่แล้ว Cicada มีคุณสมบัติความเป็นส่วนตัวที่ไม่เหมือนใคร ลดการพึ่งพาความไว้วางใจให้เหลือน้อยที่สุด และยังมีประสิทธิภาพมากบนเมนเน็ต Ethereumในเอกสารนี้ เราจะสำรวจสถานะปัจจุบันของความเป็นส่วนตัวในการลงคะแนนเสียง และให้คำแนะนำระดับสูงเกี่ยวกับวิธีการทำงานของ Cicada (การพิสูจน์อย่างเป็นทางการจะตามมา) นอกจากนี้ เรายังสนับสนุนให้นักพัฒนาไปที่ที่เก็บ GitHub เพื่อดูรายละเอียด - Cicada สามารถปรับและขยายได้อย่างยืดหยุ่นสำหรับรูปแบบการลงคะแนนและคุณสมบัติต่างๆ เราหวังว่าจะได้ทำงานร่วมกับชุมชนเพื่อสำรวจความเป็นไปได้เหล่านี้ด้วยกัน### ภาพรวมความเป็นส่วนตัวในการลงคะแนนเสียงในระบบการลงคะแนนใด ๆ (ออนไลน์หรืออื่น ๆ ) เราจำเป็นต้องพิจารณาความเป็นส่วนตัวหลายระดับ การเปิดเผยบัตรลงคะแนนแต่ละใบ การนับคะแนนที่กำลังดำเนินอยู่ และการระบุตัวตนของผู้มีสิทธิเลือกตั้ง ล้วนส่งผลต่อผู้ลงคะแนนเสียงในรูปแบบที่แตกต่างกัน คุณสมบัติความเป็นส่วนตัวที่ต้องการแตกต่างกันไปในแต่ละการลงคะแนน แต่นี่คือบางส่วนที่มักกล่าวถึงในวรรณกรรมการเข้ารหัสและสังคมศาสตร์:**·** ความเป็นส่วนตัวของบัตรลงคะแนน: การลงคะแนนลับ หรือที่เรียกว่า "บัตรลงคะแนนของออสเตรเลีย" เป็นวิธีการปกป้องความเป็นส่วนตัวของผู้ลงคะแนนแต่ละคนในระบบลงคะแนนในโลกแห่งความเป็นจริง และลดการติดสินบนและการบังคับขู่เข็ญ (ในสภาพแวดล้อมข้างต้น เรา อาจต้องใช้กลไกที่ทรงพลังกว่าการลงคะแนนลับ ดูรายละเอียด "ไม่รับ" ด้านล่าง) ความเป็นส่วนตัวในการลงคะแนนเสียงยังสามารถลดอคติทางสังคมที่พึงปรารถนาได้อีกด้วย ผู้คนมีโอกาสน้อยที่จะลงคะแนนเสียงโดยพิจารณาจากความคิดเห็นของผู้อื่นเกี่ยวกับตัวเลือกของพวกเขา**·**ความเป็นส่วนตัวของการนับคะแนน: ระบบการลงคะแนนจำนวนมากซ่อนการนับคะแนนที่กำลังดำเนินอยู่ เช่น จำนวนคะแนนเสียงที่แต่ละตัวเลือกได้รับ ระหว่างการลงคะแนนเสียงของผู้ลงคะแนน เพื่อหลีกเลี่ยงผลกระทบต่อการลงคะแนนเสียงและแรงจูงใจของผู้ลงคะแนน เราได้เห็นสิ่งนี้เกิดขึ้นในโลกแห่งความเป็นจริง ตัวอย่างเช่น วุฒิสมาชิกสหรัฐที่ลงคะแนนในภายหลังมีแนวโน้มที่จะเห็นด้วยกับพรรคของตนมากกว่าวุฒิสมาชิกที่ลงคะแนนก่อนหน้า ในการลงคะแนนแบบถ่วงน้ำหนักโทเค็นบนห่วงโซ่ วาฬยักษ์สามารถรักษาความรู้สึกผิดๆ ของการรักษาความปลอดภัยได้ด้วยการทำให้คู่ต่อสู้นำหน้า (บางคนอาจขี้เกียจเกินไปที่จะลงคะแนนเพราะพวกเขาคิดว่าคนเหล่านี้จะชนะอยู่ดี) จากนั้นจึงลงคะแนนให้ตัวเองที่ ช่วงเวลาสุดท้าย โหวตเพื่อตัดสินผลลัพธ์**·** การไม่เปิดเผยตัวตนของผู้ลงคะแนนเสียง: ในระบบการลงคะแนนในโลกแห่งความเป็นจริงหลายๆ ระบบ การลงคะแนนเสียงของคุณจะถูกเก็บไว้เป็นส่วนตัว แต่ไม่ว่าคุณจะลงคะแนนหรือไม่ก็ตาม คนอื่นมักจะรู้ สิ่งนี้สามารถใช้ป้องกันการฉ้อฉลของผู้มีสิทธิเลือกตั้งได้ เนื่องจากการเผยแพร่บันทึกของผู้ลงคะแนนเสียงจะทำให้ผู้คนสามารถตรวจสอบได้ว่ามีคนลงคะแนนในนามของพวกเขาหรือไม่ อย่างไรก็ตาม บนเครือข่าย เราสามารถใช้การเข้ารหัสแบบดั้งเดิมเพื่อป้องกันการฉ้อโกงผู้มีสิทธิเลือกตั้งในขณะที่ยังคงรักษาความเป็นนิรนาม ตัวอย่างเช่น การใช้ Semaphore คุณสามารถพิสูจน์ด้วยวิธีที่ไม่มีความรู้ว่าคุณเป็นผู้มีสิทธิ์ลงคะแนนเสียงที่มีสิทธิ์และยังไม่ได้ลงคะแนนเสียง**·** ไม่สามารถรับได้: ผู้ลงคะแนนไม่ควรให้ "ใบเสร็จ" ของบัตรลงคะแนนของตนแก่บุคคลที่สามเพื่อพิสูจน์ว่าลงคะแนนเสียงให้ผู้อื่นอย่างไร ซึ่งอาจนำไปสู่การขายบัตรลงคะแนนได้ การต่อต้านการบีบบังคับเป็นคุณสมบัติที่เกี่ยวข้องอย่างใกล้ชิดอีกประการหนึ่ง ป้องกันไม่ให้บุคคลถูกบังคับให้ลงคะแนนในทางใดทางหนึ่ง คุณสมบัติเหล่านี้มีความน่าสนใจเป็นพิเศษในสภาพแวดล้อมที่มีการกระจายอำนาจ ซึ่งอำนาจในการลงคะแนนสามารถกลายเป็นของเหลวได้ผ่านตลาดสัญญาอัจฉริยะ น่าเสียดายที่คุณสมบัติเหล่านี้ยากที่จะบรรลุ แท้จริงแล้ว Juels et al. ชี้ให้เห็นว่าคุณสมบัติเหล่านี้ไม่สามารถทำได้ในการตั้งค่าที่ไม่ได้รับอนุญาตหากไม่มีฮาร์ดแวร์ที่เชื่อถือได้Cicada ให้ความสำคัญกับความเป็นส่วนตัวในการนับคะแนนเสียงอย่างต่อเนื่อง อย่างไรก็ตาม (ดังที่เราจะกล่าวถึงในภายหลัง) สามารถใช้ร่วมกับหลักฐานการเป็นสมาชิกของกลุ่มที่ไม่มีความรู้สำหรับการไม่เปิดเผยตัวตนของผู้ลงคะแนนเสียงและความเป็นส่วนตัวของบัตรลงคะแนน### จั๊กจั่น: โหวตนับความเป็นส่วนตัวโดยใช้ Homomorphic Timelock Puzzlesเพื่อให้ได้ความเป็นส่วนตัวในการนับคะแนนเสียงอย่างต่อเนื่อง Cicada ยืมการเข้ารหัสดั้งเดิมที่ไม่เคย (เท่าที่เราทราบ) มาใช้บนเครือข่ายประการแรก ปริศนาล็อกเวลา (Rivest, Shamir, Wagner, 1996) เป็นปริศนาเข้ารหัสซึ่งความลับจะถูกเปิดเผยได้ก็ต่อเมื่อผ่านช่วงเวลาที่กำหนดไว้ล่วงหน้าไปแล้วเท่านั้น โดยเฉพาะอย่างยิ่ง โดยการดำเนินการบางอย่างซ้ำๆ เท่านั้น การคำนวณที่ไม่สามารถเทียบเคียงได้เหล่านี้คือ ใช้ในการไขปริศนา ปริศนา Timelock มีประโยชน์ในบริบทของการลงคะแนนเพื่อความเป็นส่วนตัวในการนับคะแนนเสียง: ผู้ใช้สามารถส่งคะแนนเสียงของพวกเขาเป็นปริศนา Timelock เพื่อให้คะแนนเสียงของพวกเขายังคงเป็นส่วนตัวในระหว่างกระบวนการลงคะแนน แต่สามารถเข้าถึงได้หลังจากเปิดเผยการลงคะแนนแล้ว ซึ่งแตกต่างจากโครงสร้างการลงคะแนนส่วนตัวอื่นๆ ส่วนใหญ่ สิ่งนี้ทำให้ความเป็นส่วนตัวในการนับบัตรลงคะแนนสามารถทำได้โดยไม่ต้องพึ่งพาหน่วยงานทางสถิติ (เช่น เจ้าหน้าที่การเลือกตั้งที่นับกระดาษหรือบัตรลงคะแนนดิจิทัล) การเข้ารหัสเกณฑ์ : ทุกคนสามารถไขปริศนาไทม์ล็อกเพื่อให้แน่ใจว่าผลลัพธ์จะถูกเปิดเผยหลังจากการลงคะแนนประการที่สอง ปริศนาล็อกเวลาแบบโฮโมมอร์ฟิก (Malavolta Thyagarajan, 2019) มีคุณสมบัติเพิ่มเติมที่การคำนวณบางอย่างสามารถดำเนินการกับค่าที่เข้ารหัสด้วยความรู้เกี่ยวกับคีย์ลับ การถอดรหัสปริศนา หรือการใช้แบ็คดอร์ โดยเฉพาะอย่างยิ่ง ปริศนาไทม์ล็อกโฮโมมอร์ฟิคเชิงเส้นช่วยให้เราสามารถรวมปริศนาเข้าด้วยกันเพื่อสร้างปริศนาใหม่ที่มีผลรวมของค่าลับของปริศนาดั้งเดิมตามที่ผู้เขียนรายงานชี้ให้เห็น ปริศนาล็อกเวลาแบบโฮโมมอร์ฟิกเชิงเส้นเหมาะอย่างยิ่งสำหรับการลงคะแนนส่วนตัว: การลงคะแนนเสียงสามารถเข้ารหัสเป็นปริศนาได้ และสามารถรวมกันแบบโฮโมมอร์ฟิคเพื่อให้ได้ปริศนาที่เข้ารหัสสถิติขั้นสุดท้าย ซึ่งหมายความว่าต้องใช้การคำนวณเพียงครั้งเดียวในการเปิดเผยผลคะแนนสุดท้าย แทนที่จะต้องแก้ปริศนาที่ไม่ซ้ำกันสำหรับการโหวตแต่ละครั้ง#### ระบบใหม่: ประสิทธิภาพและการแลกเปลี่ยนสำหรับรูปแบบการลงคะแนนที่สามารถนำไปใช้ได้จริงบนเครือข่าย มีหลายปัจจัยที่ต้องพิจารณา ประการแรก ผู้โจมตีอาจพยายามบิดเบือนผลการลงคะแนนโดยส่งบัตรลงคะแนนที่เข้ารหัสไม่ถูกต้อง ตัวอย่างเช่น เราอาจคาดหวังให้ปริศนาล็อกเวลาของบัตรลงคะแนนแต่ละใบเข้ารหัสค่าบูลีน: "1" สำหรับมติที่ลงคะแนน และ "0" สำหรับคัดค้าน ผู้สนับสนุนที่กระตือรือร้นอาจพยายามใช้รหัสเช่น "100" เพื่อเพิ่มพลังในการลงคะแนนที่มีประสิทธิภาพเราสามารถป้องกันการโจมตีนี้ได้โดยการกำหนดให้ผู้ลงคะแนนต้องส่งหลักฐานที่ไม่มีความรู้นอกเหนือไปจากการส่งบัตรลงคะแนนเอง อย่างไรก็ตาม การพิสูจน์ที่ไม่มีความรู้เป็นศูนย์อาจมีราคาแพงในการคำนวณ เพื่อรักษาต้นทุนการมีส่วนร่วมของผู้มีสิทธิเลือกตั้งให้ต่ำที่สุดเท่าที่จะเป็นไปได้ การพิสูจน์ควร (1) คำนวณอย่างมีประสิทธิภาพในฝั่งไคลเอ็นต์ และ (2) ตรวจสอบบนเครือข่ายอย่างมีประสิทธิภาพเพื่อให้การพิสูจน์มีประสิทธิภาพมากที่สุดเท่าที่จะเป็นไปได้ เราใช้โปรโตคอล sigma แบบกำหนดเอง นี่คือการพิสูจน์ที่ไม่มีความรู้ซึ่งออกแบบมาสำหรับความสัมพันธ์เชิงพีชคณิตเฉพาะ ไม่ใช่ระบบการพิสูจน์ทั่วไป สิ่งนี้ช่วยเร่งเวลาการพิสูจน์ได้อย่างมาก: สำหรับแล็ปท็อปทั่วไป ใช้เวลาเพียง 14 มิลลิวินาทีในการสร้างการพิสูจน์ความถูกต้องของบัตรลงคะแนนใน Pythonแม้ว่ากระบวนการตรวจสอบของโปรโตคอล sigma นี้มีแนวคิดที่เรียบง่าย แต่จริงๆ แล้วต้องใช้การดำเนินการเอกซ์โปเนนเชียลแบบโมดูโลขนาดใหญ่หลายครั้ง รูปแบบโฮโมมอร์ฟิกเชิงเส้นของ Malavolta และ Thyagarajan ใช้การเข้ารหัสแบบ Paillier ดังนั้นการดำเนินการเลขชี้กำลังเหล่านี้จะดำเนินการแบบโมดูโลบางโมดูลัส RSA N^2 สำหรับ N ที่มีขนาดใหญ่พอสมควร การดำเนินการยกกำลังเหล่านี้เป็นสิ่งต้องห้ามในโซ่ EVM ส่วนใหญ่ (ต้องใช้ก๊าซหลายล้านก้อน) เพื่อลดต้นทุนนี้ จั๊กจั่นจึงใช้เลขยกกำลัง ElGamal แทน ซึ่งยังคงให้โฮโมมอร์ฟิซึ่มแบบเติม แต่ทำงานบนโมดูลัสที่เล็กกว่า (N แทน N^2)ข้อเสียประการหนึ่งของการใช้ ElGamal คือต้องใช้ลอการิทึมที่ไม่ต่อเนื่องอย่างละเอียดถี่ถ้วนเพื่อถอดรหัสสถิติ ดังนั้นจึงควรใช้เฉพาะเมื่อจำนวนสุดท้ายที่คาดไว้ค่อนข้างน้อย (เช่น น้อยกว่า 2^32 หรือประมาณ 4.3 ล้านโหวต) ในรูปแบบดั้งเดิมของ Paillier สามารถถอดรหัสได้อย่างมีประสิทธิภาพโดยไม่คำนึงถึงขนาดของสถิติการเลือกโมดูลัส RSA N ยังเกี่ยวข้องกับการแลกเปลี่ยน วิธีการของเราใช้โมดูลัส 1024 บิตเพื่อปรับปรุงประสิทธิภาพของก๊าซ แม้ว่าค่านี้จะสูงกว่าโมดูลัส RSA สูงสุดสำหรับการแยกตัวประกอบ (ซึ่งก็คือ 829 บิต) แต่ก็ต่ำกว่าขนาด 2048 บิตที่แนะนำโดยทั่วไปสำหรับการเข้ารหัสหรือการเซ็นชื่อ RSA อย่างไรก็ตาม ในใบสมัครของเรา เราไม่ต้องการการรักษาความปลอดภัยระยะยาว: เมื่อการเลือกตั้งสิ้นสุดลง จะไม่มีความเสี่ยงหาก N ในอนาคตถูกแยกตัวประกอบ หลังจาก timelock หมดอายุ มีเหตุผลที่จะใช้โมดูลัสที่ค่อนข้างเล็ก โดยสมมติว่าสถิติและการโหวตจะกลายเป็นแบบสาธารณะ (สิ่งนี้สามารถอัปเดตได้อย่างง่ายดายในอนาคตหากอัลกอริทึมการแยกตัวประกอบดีขึ้น)#### การไม่เปิดเผยชื่อและการมีสิทธิ์ของผู้มีสิทธิเลือกตั้งดังที่กล่าวไว้ข้างต้น จั๊กจั่นให้ความเป็นส่วนตัวในการนับคะแนนโหวตอย่างต่อเนื่อง - ปริศนาตัวจับเวลาจะเก็บคะแนนไว้เป็นความลับระหว่างการลงคะแนน อย่างไรก็ตาม บัตรลงคะแนนแต่ละใบยังเป็นปริศนาล็อกเวลา ซึ่งเข้ารหัสภายใต้พารามิเตอร์สาธารณะเดียวกัน ซึ่งหมายความว่าสามารถถอดรหัสสถิติได้ (โดยการคำนวณที่จำเป็น) เช่นเดียวกับที่แต่ละคะแนนสามารถลงคะแนนได้กล่าวอีกนัยหนึ่ง Cicada รับประกันความลับของบัตรลงคะแนนในระหว่างการลงคะแนนเท่านั้น หากผู้สังเกตการณ์ที่อยากรู้อยากเห็นต้องการถอดรหัสบัตรลงคะแนนของผู้มีสิทธิเลือกตั้งรายใดรายหนึ่ง พวกเขาสามารถทำได้หลังจากปิดการเลือกตั้งเช่นกัน ค่าใช้จ่ายในการถอดรหัสบัตรลงคะแนนหนึ่งใบจะเท่ากับค่าใช้จ่ายในการถอดรหัสคะแนนสุดท้าย ดังนั้นการถอดรหัสบัตรลงคะแนนทั้งหมดที่มีผู้ลงคะแนน n คนต้องใช้ O(n) อย่างไรก็ตาม การลงคะแนนทั้งหมดเหล่านี้สามารถถอดรหัสแบบขนานได้ (สมมติว่ามีคอมพิวเตอร์เพียงพอ) ในกระบวนการที่ใช้เวลาพอๆ กับการถอดรหัสการนับคะแนนสุดท้ายสำหรับบางแบบสำรวจ อาจไม่เหมาะ แม้ว่าเราจะพอใจกับความเป็นส่วนตัวในการนับคะแนนชั่วคราว แต่เราอาจต้องการความเป็นส่วนตัวในการลงคะแนนเสียงอย่างถาวร เพื่อให้บรรลุเป้าหมายนี้ เราสามารถรวม Cicada เข้ากับโปรโตคอลการมีสิทธิ์ลงคะแนนเสียงที่ไม่ระบุตัวตนผ่านหลักฐานการเป็นสมาชิกกลุ่มแบบไม่มีความรู้ ด้วยวิธีนี้ แม้ว่าบัตรลงคะแนนจะไม่เป็นความลับอีกต่อไป บัตรลงคะแนนจะเปิดเผยเฉพาะวิธีการลงคะแนนเท่านั้น ซึ่งมีการเปิดเผยในการนับคะแนนแล้วในพื้นที่เก็บข้อมูลของเรา เรามีตัวอย่างสัญญาที่ใช้ Semaphore สำหรับการไม่เปิดเผยตัวตนของผู้มีสิทธิเลือกตั้ง โปรดทราบว่าสัญญาของ Cicada ไม่ได้ตั้งสมมติฐานเกี่ยวกับการกำหนดหรือการบังคับใช้คุณสมบัติผู้มีสิทธิเลือกตั้ง โดยเฉพาะอย่างยิ่ง คุณสามารถแทนที่ Semaphore ด้วย Semacaulk หรือ ZK Proof of State#### หน่วยงานนับคะแนนหนึ่งในเป้าหมายแรกของเราในการออกแบบ Cicada คือการหลีกเลี่ยงการพึ่งพาหน่วยงานนับคะแนน: คะแนนส่วนตัวจำนวนมากต้องการหน่วยงานนับคะแนนกึ่งน่าเชื่อถือ (หรือคณะกรรมการที่ทำงานร่วมกันผ่านการคำนวณหลายฝ่ายที่ปลอดภัย) ที่รับและรวบรวมคะแนน ในบริบทของบล็อกเชน หมายความว่าแผนการเหล่านี้ไม่สามารถดำเนินการผ่านสัญญาอัจฉริยะเพียงอย่างเดียว แต่ต้องมีการแทรกแซงและความไว้วางใจจากมนุษย์ในระบอบการปกครองส่วนใหญ่ หน่วยงานทางสถิติจะได้รับความไว้วางใจในแง่ของความสมบูรณ์ (ไม่สามารถควบคุมการนับคะแนนเสียงได้) แต่ก็ต้องยังคงทำงานอยู่ - หากออฟไลน์อยู่ จะไม่สามารถคำนวณผลลัพธ์สุดท้ายได้ และผลการลงคะแนนจะหยุดชะงักอย่างไม่มีกำหนด ในบางระบบ หน่วยงานทางสถิติยังได้รับความไว้วางใจให้รักษาความเป็นส่วนตัวอีกด้วย นั่นคือพวกเขารู้คะแนนเสียงของผู้มีสิทธิเลือกตั้งแต่ละคน แต่เผยแพร่ผลลัพธ์โดยไม่เปิดเผยข้อมูลนี้แม้ว่าหน่วยงานทางสถิติจะมีเหตุผล (และจำเป็น) ในสถานการณ์จริงหลายๆ สถานการณ์ แต่หน่วยงานเหล่านี้ไม่เหมาะอย่างยิ่งในบริบทของบล็อกเชน ซึ่งเป้าหมายของเราคือลดความไว้วางใจให้เหลือน้อยที่สุดและรับรองการต่อต้านการเซ็นเซอร์### บทสรุปจั๊กจั่นสำรวจทิศทางต่างๆ มากมายในด้านความเป็นส่วนตัวในการลงคะแนนออนไลน์และเสริมการวิจัยที่กำลังดำเนินอยู่โดยกลุ่มอื่นๆ ตามที่กล่าวไว้ข้างต้น Cicada ช่วยเสริมเทคโนโลยีการเป็นสมาชิกกลุ่มที่ไม่ระบุชื่อ เช่น Semaphore, ZK Proof-of-storage และ Rate-Limiting nullifiers จั๊กจั่นยังสามารถใช้ร่วมกับเครื่องตรวจสอบหลักฐานในแง่ดีที่เสนอโดยทีม Nouns Vortex เพื่อลดภาระของผู้มีสิทธิเลือกตั้งนอกจากนี้ เรามีโอกาสที่จะปรับแต่ง Cicada ให้รองรับรูปแบบการลงคะแนนที่แตกต่างกัน (เช่น การลงคะแนนแบบถ่วงน้ำหนัก การลงคะแนนแบบกำลังสอง) ในขณะที่รูปแบบที่ซับซ้อนมากขึ้นอาจมีราคาแพงในการคำนวณสำหรับ Ethereum mainnet แต่อาจเป็นไปได้ในเครือข่ายเลเยอร์ 2 ของ ด้วยเหตุนี้ เรายินดีรับคำแนะนำสำหรับทิศทางในอนาคตของจั๊กจั่น
a16z: คำอธิบายโดยละเอียดเกี่ยวกับหลักการทำงานของโครงการโหวต Cicada บนเครือข่าย ZK
原文:《ตึกจั๊กจั่น: การโหวตออนไลน์แบบส่วนตัวโดยใช้ปริศนาล็อคเวลา》โดย Michael Zhu,a16z
เรียบเรียง: Kxp, BlockBeats
ระบบการลงคะแนนทั้งหมดจำเป็นต้องอาศัยความสมบูรณ์และความโปร่งใสจึงจะมีประสิทธิภาพ บนพื้นผิว blockchain ดูเหมือนจะเป็นแพลตฟอร์มที่เหมาะสำหรับการสร้างระบบเหล่านี้ อันที่จริงแล้ว องค์กรกระจายอำนาจจำนวนมากใช้การลงคะแนนเสียงแบบไม่ได้รับอนุญาตเพื่อแสดงเจตจำนงร่วมกัน บ่อยครั้งในบริบทของการใช้อำนาจทางการเงินที่สำคัญหรือการปรับพารามิเตอร์โปรโตคอลหลัก อย่างไรก็ตาม การลงคะแนนแบบออนไลน์มีข้อเสียบางประการ และปัญหาความเป็นส่วนตัวยังไม่ได้รับการสำรวจอย่างสมบูรณ์สำหรับระบบการลงคะแนน Web3 ซึ่งทำให้เกิดผลกระทบในทางลบ ในโปรโตคอลการลงคะแนนออนไลน์ส่วนใหญ่ที่ใช้อยู่ในปัจจุบัน บัตรลงคะแนนและผลการลงคะแนนจะถูกเปิดเผยต่อสาธารณะอย่างสมบูรณ์ การขาดการคุ้มครองความเป็นส่วนตัวหมายความว่าผลการลงคะแนนมีความเสี่ยงที่จะถูกบิดเบือน ขณะเดียวกันก็นำไปสู่แรงจูงใจที่ไม่สอดคล้องกันสำหรับผู้ลงคะแนน ซึ่งอาจนำไปสู่ผลลัพธ์ที่ไม่เป็นประชาธิปไตย
ด้วยเหตุนี้ เราจึงเปิดตัว Cicada: ไลบรารี Solidity แบบโอเพนซอร์สใหม่ที่ใช้ประโยชน์จากปริศนาล็อกเวลาและหลักฐานที่ไม่มีความรู้สำหรับการลงคะแนนแบบส่วนตัวบนเครือข่าย เมื่อเปรียบเทียบกับระบบที่มีอยู่แล้ว Cicada มีคุณสมบัติความเป็นส่วนตัวที่ไม่เหมือนใคร ลดการพึ่งพาความไว้วางใจให้เหลือน้อยที่สุด และยังมีประสิทธิภาพมากบนเมนเน็ต Ethereum
ในเอกสารนี้ เราจะสำรวจสถานะปัจจุบันของความเป็นส่วนตัวในการลงคะแนนเสียง และให้คำแนะนำระดับสูงเกี่ยวกับวิธีการทำงานของ Cicada (การพิสูจน์อย่างเป็นทางการจะตามมา) นอกจากนี้ เรายังสนับสนุนให้นักพัฒนาไปที่ที่เก็บ GitHub เพื่อดูรายละเอียด - Cicada สามารถปรับและขยายได้อย่างยืดหยุ่นสำหรับรูปแบบการลงคะแนนและคุณสมบัติต่างๆ เราหวังว่าจะได้ทำงานร่วมกับชุมชนเพื่อสำรวจความเป็นไปได้เหล่านี้ด้วยกัน
ภาพรวมความเป็นส่วนตัวในการลงคะแนนเสียง
ในระบบการลงคะแนนใด ๆ (ออนไลน์หรืออื่น ๆ ) เราจำเป็นต้องพิจารณาความเป็นส่วนตัวหลายระดับ การเปิดเผยบัตรลงคะแนนแต่ละใบ การนับคะแนนที่กำลังดำเนินอยู่ และการระบุตัวตนของผู้มีสิทธิเลือกตั้ง ล้วนส่งผลต่อผู้ลงคะแนนเสียงในรูปแบบที่แตกต่างกัน คุณสมบัติความเป็นส่วนตัวที่ต้องการแตกต่างกันไปในแต่ละการลงคะแนน แต่นี่คือบางส่วนที่มักกล่าวถึงในวรรณกรรมการเข้ารหัสและสังคมศาสตร์:
· ความเป็นส่วนตัวของบัตรลงคะแนน: การลงคะแนนลับ หรือที่เรียกว่า "บัตรลงคะแนนของออสเตรเลีย" เป็นวิธีการปกป้องความเป็นส่วนตัวของผู้ลงคะแนนแต่ละคนในระบบลงคะแนนในโลกแห่งความเป็นจริง และลดการติดสินบนและการบังคับขู่เข็ญ (ในสภาพแวดล้อมข้างต้น เรา อาจต้องใช้กลไกที่ทรงพลังกว่าการลงคะแนนลับ ดูรายละเอียด "ไม่รับ" ด้านล่าง) ความเป็นส่วนตัวในการลงคะแนนเสียงยังสามารถลดอคติทางสังคมที่พึงปรารถนาได้อีกด้วย ผู้คนมีโอกาสน้อยที่จะลงคะแนนเสียงโดยพิจารณาจากความคิดเห็นของผู้อื่นเกี่ยวกับตัวเลือกของพวกเขา
**·**ความเป็นส่วนตัวของการนับคะแนน: ระบบการลงคะแนนจำนวนมากซ่อนการนับคะแนนที่กำลังดำเนินอยู่ เช่น จำนวนคะแนนเสียงที่แต่ละตัวเลือกได้รับ ระหว่างการลงคะแนนเสียงของผู้ลงคะแนน เพื่อหลีกเลี่ยงผลกระทบต่อการลงคะแนนเสียงและแรงจูงใจของผู้ลงคะแนน เราได้เห็นสิ่งนี้เกิดขึ้นในโลกแห่งความเป็นจริง ตัวอย่างเช่น วุฒิสมาชิกสหรัฐที่ลงคะแนนในภายหลังมีแนวโน้มที่จะเห็นด้วยกับพรรคของตนมากกว่าวุฒิสมาชิกที่ลงคะแนนก่อนหน้า ในการลงคะแนนแบบถ่วงน้ำหนักโทเค็นบนห่วงโซ่ วาฬยักษ์สามารถรักษาความรู้สึกผิดๆ ของการรักษาความปลอดภัยได้ด้วยการทำให้คู่ต่อสู้นำหน้า (บางคนอาจขี้เกียจเกินไปที่จะลงคะแนนเพราะพวกเขาคิดว่าคนเหล่านี้จะชนะอยู่ดี) จากนั้นจึงลงคะแนนให้ตัวเองที่ ช่วงเวลาสุดท้าย โหวตเพื่อตัดสินผลลัพธ์
· การไม่เปิดเผยตัวตนของผู้ลงคะแนนเสียง: ในระบบการลงคะแนนในโลกแห่งความเป็นจริงหลายๆ ระบบ การลงคะแนนเสียงของคุณจะถูกเก็บไว้เป็นส่วนตัว แต่ไม่ว่าคุณจะลงคะแนนหรือไม่ก็ตาม คนอื่นมักจะรู้ สิ่งนี้สามารถใช้ป้องกันการฉ้อฉลของผู้มีสิทธิเลือกตั้งได้ เนื่องจากการเผยแพร่บันทึกของผู้ลงคะแนนเสียงจะทำให้ผู้คนสามารถตรวจสอบได้ว่ามีคนลงคะแนนในนามของพวกเขาหรือไม่ อย่างไรก็ตาม บนเครือข่าย เราสามารถใช้การเข้ารหัสแบบดั้งเดิมเพื่อป้องกันการฉ้อโกงผู้มีสิทธิเลือกตั้งในขณะที่ยังคงรักษาความเป็นนิรนาม ตัวอย่างเช่น การใช้ Semaphore คุณสามารถพิสูจน์ด้วยวิธีที่ไม่มีความรู้ว่าคุณเป็นผู้มีสิทธิ์ลงคะแนนเสียงที่มีสิทธิ์และยังไม่ได้ลงคะแนนเสียง
· ไม่สามารถรับได้: ผู้ลงคะแนนไม่ควรให้ "ใบเสร็จ" ของบัตรลงคะแนนของตนแก่บุคคลที่สามเพื่อพิสูจน์ว่าลงคะแนนเสียงให้ผู้อื่นอย่างไร ซึ่งอาจนำไปสู่การขายบัตรลงคะแนนได้ การต่อต้านการบีบบังคับเป็นคุณสมบัติที่เกี่ยวข้องอย่างใกล้ชิดอีกประการหนึ่ง ป้องกันไม่ให้บุคคลถูกบังคับให้ลงคะแนนในทางใดทางหนึ่ง คุณสมบัติเหล่านี้มีความน่าสนใจเป็นพิเศษในสภาพแวดล้อมที่มีการกระจายอำนาจ ซึ่งอำนาจในการลงคะแนนสามารถกลายเป็นของเหลวได้ผ่านตลาดสัญญาอัจฉริยะ น่าเสียดายที่คุณสมบัติเหล่านี้ยากที่จะบรรลุ แท้จริงแล้ว Juels et al. ชี้ให้เห็นว่าคุณสมบัติเหล่านี้ไม่สามารถทำได้ในการตั้งค่าที่ไม่ได้รับอนุญาตหากไม่มีฮาร์ดแวร์ที่เชื่อถือได้
Cicada ให้ความสำคัญกับความเป็นส่วนตัวในการนับคะแนนเสียงอย่างต่อเนื่อง อย่างไรก็ตาม (ดังที่เราจะกล่าวถึงในภายหลัง) สามารถใช้ร่วมกับหลักฐานการเป็นสมาชิกของกลุ่มที่ไม่มีความรู้สำหรับการไม่เปิดเผยตัวตนของผู้ลงคะแนนเสียงและความเป็นส่วนตัวของบัตรลงคะแนน
จั๊กจั่น: โหวตนับความเป็นส่วนตัวโดยใช้ Homomorphic Timelock Puzzles
เพื่อให้ได้ความเป็นส่วนตัวในการนับคะแนนเสียงอย่างต่อเนื่อง Cicada ยืมการเข้ารหัสดั้งเดิมที่ไม่เคย (เท่าที่เราทราบ) มาใช้บนเครือข่าย
ประการแรก ปริศนาล็อกเวลา (Rivest, Shamir, Wagner, 1996) เป็นปริศนาเข้ารหัสซึ่งความลับจะถูกเปิดเผยได้ก็ต่อเมื่อผ่านช่วงเวลาที่กำหนดไว้ล่วงหน้าไปแล้วเท่านั้น โดยเฉพาะอย่างยิ่ง โดยการดำเนินการบางอย่างซ้ำๆ เท่านั้น การคำนวณที่ไม่สามารถเทียบเคียงได้เหล่านี้คือ ใช้ในการไขปริศนา ปริศนา Timelock มีประโยชน์ในบริบทของการลงคะแนนเพื่อความเป็นส่วนตัวในการนับคะแนนเสียง: ผู้ใช้สามารถส่งคะแนนเสียงของพวกเขาเป็นปริศนา Timelock เพื่อให้คะแนนเสียงของพวกเขายังคงเป็นส่วนตัวในระหว่างกระบวนการลงคะแนน แต่สามารถเข้าถึงได้หลังจากเปิดเผยการลงคะแนนแล้ว ซึ่งแตกต่างจากโครงสร้างการลงคะแนนส่วนตัวอื่นๆ ส่วนใหญ่ สิ่งนี้ทำให้ความเป็นส่วนตัวในการนับบัตรลงคะแนนสามารถทำได้โดยไม่ต้องพึ่งพาหน่วยงานทางสถิติ (เช่น เจ้าหน้าที่การเลือกตั้งที่นับกระดาษหรือบัตรลงคะแนนดิจิทัล) การเข้ารหัสเกณฑ์ : ทุกคนสามารถไขปริศนาไทม์ล็อกเพื่อให้แน่ใจว่าผลลัพธ์จะถูกเปิดเผยหลังจากการลงคะแนน
ประการที่สอง ปริศนาล็อกเวลาแบบโฮโมมอร์ฟิก (Malavolta Thyagarajan, 2019) มีคุณสมบัติเพิ่มเติมที่การคำนวณบางอย่างสามารถดำเนินการกับค่าที่เข้ารหัสด้วยความรู้เกี่ยวกับคีย์ลับ การถอดรหัสปริศนา หรือการใช้แบ็คดอร์ โดยเฉพาะอย่างยิ่ง ปริศนาไทม์ล็อกโฮโมมอร์ฟิคเชิงเส้นช่วยให้เราสามารถรวมปริศนาเข้าด้วยกันเพื่อสร้างปริศนาใหม่ที่มีผลรวมของค่าลับของปริศนาดั้งเดิม
ตามที่ผู้เขียนรายงานชี้ให้เห็น ปริศนาล็อกเวลาแบบโฮโมมอร์ฟิกเชิงเส้นเหมาะอย่างยิ่งสำหรับการลงคะแนนส่วนตัว: การลงคะแนนเสียงสามารถเข้ารหัสเป็นปริศนาได้ และสามารถรวมกันแบบโฮโมมอร์ฟิคเพื่อให้ได้ปริศนาที่เข้ารหัสสถิติขั้นสุดท้าย ซึ่งหมายความว่าต้องใช้การคำนวณเพียงครั้งเดียวในการเปิดเผยผลคะแนนสุดท้าย แทนที่จะต้องแก้ปริศนาที่ไม่ซ้ำกันสำหรับการโหวตแต่ละครั้ง
ระบบใหม่: ประสิทธิภาพและการแลกเปลี่ยน
สำหรับรูปแบบการลงคะแนนที่สามารถนำไปใช้ได้จริงบนเครือข่าย มีหลายปัจจัยที่ต้องพิจารณา ประการแรก ผู้โจมตีอาจพยายามบิดเบือนผลการลงคะแนนโดยส่งบัตรลงคะแนนที่เข้ารหัสไม่ถูกต้อง ตัวอย่างเช่น เราอาจคาดหวังให้ปริศนาล็อกเวลาของบัตรลงคะแนนแต่ละใบเข้ารหัสค่าบูลีน: "1" สำหรับมติที่ลงคะแนน และ "0" สำหรับคัดค้าน ผู้สนับสนุนที่กระตือรือร้นอาจพยายามใช้รหัสเช่น "100" เพื่อเพิ่มพลังในการลงคะแนนที่มีประสิทธิภาพ
เราสามารถป้องกันการโจมตีนี้ได้โดยการกำหนดให้ผู้ลงคะแนนต้องส่งหลักฐานที่ไม่มีความรู้นอกเหนือไปจากการส่งบัตรลงคะแนนเอง อย่างไรก็ตาม การพิสูจน์ที่ไม่มีความรู้เป็นศูนย์อาจมีราคาแพงในการคำนวณ เพื่อรักษาต้นทุนการมีส่วนร่วมของผู้มีสิทธิเลือกตั้งให้ต่ำที่สุดเท่าที่จะเป็นไปได้ การพิสูจน์ควร (1) คำนวณอย่างมีประสิทธิภาพในฝั่งไคลเอ็นต์ และ (2) ตรวจสอบบนเครือข่ายอย่างมีประสิทธิภาพ
เพื่อให้การพิสูจน์มีประสิทธิภาพมากที่สุดเท่าที่จะเป็นไปได้ เราใช้โปรโตคอล sigma แบบกำหนดเอง นี่คือการพิสูจน์ที่ไม่มีความรู้ซึ่งออกแบบมาสำหรับความสัมพันธ์เชิงพีชคณิตเฉพาะ ไม่ใช่ระบบการพิสูจน์ทั่วไป สิ่งนี้ช่วยเร่งเวลาการพิสูจน์ได้อย่างมาก: สำหรับแล็ปท็อปทั่วไป ใช้เวลาเพียง 14 มิลลิวินาทีในการสร้างการพิสูจน์ความถูกต้องของบัตรลงคะแนนใน Python
แม้ว่ากระบวนการตรวจสอบของโปรโตคอล sigma นี้มีแนวคิดที่เรียบง่าย แต่จริงๆ แล้วต้องใช้การดำเนินการเอกซ์โปเนนเชียลแบบโมดูโลขนาดใหญ่หลายครั้ง รูปแบบโฮโมมอร์ฟิกเชิงเส้นของ Malavolta และ Thyagarajan ใช้การเข้ารหัสแบบ Paillier ดังนั้นการดำเนินการเลขชี้กำลังเหล่านี้จะดำเนินการแบบโมดูโลบางโมดูลัส RSA N^2 สำหรับ N ที่มีขนาดใหญ่พอสมควร การดำเนินการยกกำลังเหล่านี้เป็นสิ่งต้องห้ามในโซ่ EVM ส่วนใหญ่ (ต้องใช้ก๊าซหลายล้านก้อน) เพื่อลดต้นทุนนี้ จั๊กจั่นจึงใช้เลขยกกำลัง ElGamal แทน ซึ่งยังคงให้โฮโมมอร์ฟิซึ่มแบบเติม แต่ทำงานบนโมดูลัสที่เล็กกว่า (N แทน N^2)
ข้อเสียประการหนึ่งของการใช้ ElGamal คือต้องใช้ลอการิทึมที่ไม่ต่อเนื่องอย่างละเอียดถี่ถ้วนเพื่อถอดรหัสสถิติ ดังนั้นจึงควรใช้เฉพาะเมื่อจำนวนสุดท้ายที่คาดไว้ค่อนข้างน้อย (เช่น น้อยกว่า 2^32 หรือประมาณ 4.3 ล้านโหวต) ในรูปแบบดั้งเดิมของ Paillier สามารถถอดรหัสได้อย่างมีประสิทธิภาพโดยไม่คำนึงถึงขนาดของสถิติ
การเลือกโมดูลัส RSA N ยังเกี่ยวข้องกับการแลกเปลี่ยน วิธีการของเราใช้โมดูลัส 1024 บิตเพื่อปรับปรุงประสิทธิภาพของก๊าซ แม้ว่าค่านี้จะสูงกว่าโมดูลัส RSA สูงสุดสำหรับการแยกตัวประกอบ (ซึ่งก็คือ 829 บิต) แต่ก็ต่ำกว่าขนาด 2048 บิตที่แนะนำโดยทั่วไปสำหรับการเข้ารหัสหรือการเซ็นชื่อ RSA อย่างไรก็ตาม ในใบสมัครของเรา เราไม่ต้องการการรักษาความปลอดภัยระยะยาว: เมื่อการเลือกตั้งสิ้นสุดลง จะไม่มีความเสี่ยงหาก N ในอนาคตถูกแยกตัวประกอบ หลังจาก timelock หมดอายุ มีเหตุผลที่จะใช้โมดูลัสที่ค่อนข้างเล็ก โดยสมมติว่าสถิติและการโหวตจะกลายเป็นแบบสาธารณะ (สิ่งนี้สามารถอัปเดตได้อย่างง่ายดายในอนาคตหากอัลกอริทึมการแยกตัวประกอบดีขึ้น)
การไม่เปิดเผยชื่อและการมีสิทธิ์ของผู้มีสิทธิเลือกตั้ง
ดังที่กล่าวไว้ข้างต้น จั๊กจั่นให้ความเป็นส่วนตัวในการนับคะแนนโหวตอย่างต่อเนื่อง - ปริศนาตัวจับเวลาจะเก็บคะแนนไว้เป็นความลับระหว่างการลงคะแนน อย่างไรก็ตาม บัตรลงคะแนนแต่ละใบยังเป็นปริศนาล็อกเวลา ซึ่งเข้ารหัสภายใต้พารามิเตอร์สาธารณะเดียวกัน ซึ่งหมายความว่าสามารถถอดรหัสสถิติได้ (โดยการคำนวณที่จำเป็น) เช่นเดียวกับที่แต่ละคะแนนสามารถลงคะแนนได้
กล่าวอีกนัยหนึ่ง Cicada รับประกันความลับของบัตรลงคะแนนในระหว่างการลงคะแนนเท่านั้น หากผู้สังเกตการณ์ที่อยากรู้อยากเห็นต้องการถอดรหัสบัตรลงคะแนนของผู้มีสิทธิเลือกตั้งรายใดรายหนึ่ง พวกเขาสามารถทำได้หลังจากปิดการเลือกตั้งเช่นกัน ค่าใช้จ่ายในการถอดรหัสบัตรลงคะแนนหนึ่งใบจะเท่ากับค่าใช้จ่ายในการถอดรหัสคะแนนสุดท้าย ดังนั้นการถอดรหัสบัตรลงคะแนนทั้งหมดที่มีผู้ลงคะแนน n คนต้องใช้ O(n) อย่างไรก็ตาม การลงคะแนนทั้งหมดเหล่านี้สามารถถอดรหัสแบบขนานได้ (สมมติว่ามีคอมพิวเตอร์เพียงพอ) ในกระบวนการที่ใช้เวลาพอๆ กับการถอดรหัสการนับคะแนนสุดท้าย
สำหรับบางแบบสำรวจ อาจไม่เหมาะ แม้ว่าเราจะพอใจกับความเป็นส่วนตัวในการนับคะแนนชั่วคราว แต่เราอาจต้องการความเป็นส่วนตัวในการลงคะแนนเสียงอย่างถาวร เพื่อให้บรรลุเป้าหมายนี้ เราสามารถรวม Cicada เข้ากับโปรโตคอลการมีสิทธิ์ลงคะแนนเสียงที่ไม่ระบุตัวตนผ่านหลักฐานการเป็นสมาชิกกลุ่มแบบไม่มีความรู้ ด้วยวิธีนี้ แม้ว่าบัตรลงคะแนนจะไม่เป็นความลับอีกต่อไป บัตรลงคะแนนจะเปิดเผยเฉพาะวิธีการลงคะแนนเท่านั้น ซึ่งมีการเปิดเผยในการนับคะแนนแล้ว
ในพื้นที่เก็บข้อมูลของเรา เรามีตัวอย่างสัญญาที่ใช้ Semaphore สำหรับการไม่เปิดเผยตัวตนของผู้มีสิทธิเลือกตั้ง โปรดทราบว่าสัญญาของ Cicada ไม่ได้ตั้งสมมติฐานเกี่ยวกับการกำหนดหรือการบังคับใช้คุณสมบัติผู้มีสิทธิเลือกตั้ง โดยเฉพาะอย่างยิ่ง คุณสามารถแทนที่ Semaphore ด้วย Semacaulk หรือ ZK Proof of State
หน่วยงานนับคะแนน
หนึ่งในเป้าหมายแรกของเราในการออกแบบ Cicada คือการหลีกเลี่ยงการพึ่งพาหน่วยงานนับคะแนน: คะแนนส่วนตัวจำนวนมากต้องการหน่วยงานนับคะแนนกึ่งน่าเชื่อถือ (หรือคณะกรรมการที่ทำงานร่วมกันผ่านการคำนวณหลายฝ่ายที่ปลอดภัย) ที่รับและรวบรวมคะแนน ในบริบทของบล็อกเชน หมายความว่าแผนการเหล่านี้ไม่สามารถดำเนินการผ่านสัญญาอัจฉริยะเพียงอย่างเดียว แต่ต้องมีการแทรกแซงและความไว้วางใจจากมนุษย์
ในระบอบการปกครองส่วนใหญ่ หน่วยงานทางสถิติจะได้รับความไว้วางใจในแง่ของความสมบูรณ์ (ไม่สามารถควบคุมการนับคะแนนเสียงได้) แต่ก็ต้องยังคงทำงานอยู่ - หากออฟไลน์อยู่ จะไม่สามารถคำนวณผลลัพธ์สุดท้ายได้ และผลการลงคะแนนจะหยุดชะงักอย่างไม่มีกำหนด ในบางระบบ หน่วยงานทางสถิติยังได้รับความไว้วางใจให้รักษาความเป็นส่วนตัวอีกด้วย นั่นคือพวกเขารู้คะแนนเสียงของผู้มีสิทธิเลือกตั้งแต่ละคน แต่เผยแพร่ผลลัพธ์โดยไม่เปิดเผยข้อมูลนี้
แม้ว่าหน่วยงานทางสถิติจะมีเหตุผล (และจำเป็น) ในสถานการณ์จริงหลายๆ สถานการณ์ แต่หน่วยงานเหล่านี้ไม่เหมาะอย่างยิ่งในบริบทของบล็อกเชน ซึ่งเป้าหมายของเราคือลดความไว้วางใจให้เหลือน้อยที่สุดและรับรองการต่อต้านการเซ็นเซอร์
บทสรุป
จั๊กจั่นสำรวจทิศทางต่างๆ มากมายในด้านความเป็นส่วนตัวในการลงคะแนนออนไลน์และเสริมการวิจัยที่กำลังดำเนินอยู่โดยกลุ่มอื่นๆ ตามที่กล่าวไว้ข้างต้น Cicada ช่วยเสริมเทคโนโลยีการเป็นสมาชิกกลุ่มที่ไม่ระบุชื่อ เช่น Semaphore, ZK Proof-of-storage และ Rate-Limiting nullifiers จั๊กจั่นยังสามารถใช้ร่วมกับเครื่องตรวจสอบหลักฐานในแง่ดีที่เสนอโดยทีม Nouns Vortex เพื่อลดภาระของผู้มีสิทธิเลือกตั้ง
นอกจากนี้ เรามีโอกาสที่จะปรับแต่ง Cicada ให้รองรับรูปแบบการลงคะแนนที่แตกต่างกัน (เช่น การลงคะแนนแบบถ่วงน้ำหนัก การลงคะแนนแบบกำลังสอง) ในขณะที่รูปแบบที่ซับซ้อนมากขึ้นอาจมีราคาแพงในการคำนวณสำหรับ Ethereum mainnet แต่อาจเป็นไปได้ในเครือข่ายเลเยอร์ 2 ของ ด้วยเหตุนี้ เรายินดีรับคำแนะนำสำหรับทิศทางในอนาคตของจั๊กจั่น