原文 : 《إنشاء Cicada: التصويت الخاص عبر السلسلة باستخدام ألغاز قفل الوقت》 بواسطة Michael Zhu , a16z
تجميع: Kxp ، BlockBeats
يجب أن تعتمد جميع أنظمة التصويت على النزاهة والشفافية حتى تكون فعالة. ظاهريًا ، يبدو أن blockchain هو المنصة المثالية لبناء هذه الأنظمة. في الواقع ، تم اعتماد التصويت غير المرخص من قبل العديد من المنظمات اللامركزية للتعبير عن الإرادة الجماعية ، غالبًا في سياق ممارسة سلطة مالية كبيرة أو تعديل معايير البروتوكول الرئيسية. ومع ذلك ، فإن التصويت على السلسلة له بعض العيوب ، ولم يتم استكشاف مشكلات الخصوصية بشكل كامل لأنظمة التصويت Web3 ، مما أحدث تأثيرًا سلبيًا عليه. في معظم بروتوكولات التصويت على السلسلة المستخدمة اليوم ، تكون بطاقات الاقتراع ونتائج التصويت علنية بالكامل. يعني الافتقار إلى حماية الخصوصية أن نتائج التصويت عرضة للتلاعب ، بينما تؤدي أيضًا إلى حوافز غير متسقة للناخبين ، مما قد يؤدي إلى نتائج غير ديمقراطية.
تحقيقًا لهذه الغاية ، نطلق Cicada: مكتبة Solidity جديدة ومفتوحة المصدر تستفيد من ألغاز timelock وإثباتات المعرفة الصفرية للتصويت الخاص على السلسلة. بالمقارنة مع الأنظمة الحالية ، يتمتع Cicada بخصوصية فريدة من نوعها ، ويقلل من الاعتماد على الثقة ، كما أنه فعال للغاية على شبكة Ethereum mainnet.
في هذه الورقة ، نقوم بمسح الحالة الحالية لخصوصية التصويت ونقدم مقدمة رفيعة المستوى لكيفية عمل Cicada (ستتبع البراهين الرسمية). نشجع أيضًا المطورين على التوجه إلى مستودع GitHub للحصول على التفاصيل - يمكن تعديل Cicada بمرونة وتوسيع نطاقها لمخططات وميزات التصويت المختلفة. نتطلع إلى العمل مع المجتمع لاستكشاف هذه الاحتمالات معًا.
نظرة عامة على خصوصية التصويت
في أي نظام تصويت (على السلسلة أو غير ذلك) ، نحتاج إلى النظر في العديد من مستويات الخصوصية المختلفة. إن الإفصاح عن بطاقات الاقتراع الفردية ، وعمليات فرز الأصوات الجارية ، وهوية الناخبين كلها تؤثر على الناخبين بطرق مختلفة. تختلف خصائص الخصوصية المرغوبة من تصويت إلى تصويت ، ولكن فيما يلي بعض العناصر التي يتم تناولها غالبًا في أدبيات التشفير والعلوم الاجتماعية:
** · ** خصوصية الاقتراع: التصويت السري ، المعروف أيضًا باسم "الاقتراع الأسترالي" ، هو وسيلة لحماية خصوصية الناخبين الأفراد في أنظمة التصويت في العالم الحقيقي وتقليل الرشوة والإكراه (على التسلسل في البيئة المذكورة أعلاه ، نحن قد تحتاج إلى آلية أكثر قوة من التصويت السري ، انظر "بدون إيصال" أدناه للحصول على التفاصيل). يمكن لخصوصية التصويت أيضًا أن تقلل من تحيز الرغبة الاجتماعية - يقل احتمال تصويت الناس بناءً على ما يعتقده الآخرون في خياراتهم.
** · ** خصوصية فرز الأصوات: تخفي العديد من أنظمة التصويت عمليات فرز الأصوات الجارية ، أي عدد الأصوات التي حصل عليها كل خيار أثناء تصويت الناخبين لتجنب التأثير على الإقبال وحوافز الناخبين. لقد رأينا هذا يحدث في العالم الحقيقي: على سبيل المثال ، أعضاء مجلس الشيوخ الأمريكي الذين يصوتون لاحقًا هم أكثر عرضة للانحياز إلى حزبهم من أعضاء مجلس الشيوخ الذين صوتوا في وقت سابق. في التصويت المرجح على السلسلة ، يمكن للحيتان العملاقة الحفاظ على إحساسها الزائف بالأمان من خلال إبقاء خصومها في المقدمة (قد يكون بعض الناس كسالى جدًا للتصويت لأنهم يعتقدون أن هؤلاء الأشخاص سيفوزون على أي حال) ، ثم يصوتون لأنفسهم في اللحظة الأخيرة أصوات لتحديد النتيجة.
** · ** إخفاء هوية الناخب: في العديد من أنظمة التصويت الواقعية ، يظل تصويتك سريًا ، ولكن غالبًا ما يكون صوتك معروفًا للآخرين سواء صوتت أم لا. يمكن أن يكون هذا بمثابة حماية ضد تزوير الناخبين ، لأن نشر سجلات الأشخاص الذين صوتوا سيسمح للناس بالتحقق مما إذا كان شخص ما قد صوت باسمهم. ومع ذلك ، يمكننا استخدام أساسيات التشفير على السلسلة لمنع تزوير الناخبين مع الحفاظ على إخفاء الهوية - على سبيل المثال ، باستخدام Semaphore ، يمكنك إثبات أنك ناخب مؤهل ولم تصوت بعد.
** · ** عدم الاستلام: يجب على الناخبين عدم تقديم "إيصال" بأصواتهم لطرف ثالث لإثبات كيفية الإدلاء بأصواتهم لشخص ما ، مما قد يؤدي إلى بيع بطاقة الاقتراع. مقاومة الإكراه هي خاصية أخرى وثيقة الصلة ، تمنع إجبار أي شخص على التصويت بطريقة معينة. هذه الخصائص جذابة بشكل خاص في البيئة اللامركزية ، حيث يمكن أن تصبح قوة التصويت سائلة من خلال سوق العقود الذكية. لسوء الحظ ، يصعب تحقيق هذه الخصائص. في الواقع ، يشير Juels et al. إلى أنه من المستحيل تحقيق هذه الخصائص في بيئة بدون إذن بدون أجهزة موثوقة.
يركز برنامج Cicada على خصوصية عدد الأصوات المستمر ، ومع ذلك (كما سنناقش لاحقًا) ، يمكن استخدامه جنبًا إلى جنب مع إثبات عضوية مجموعة عدم المعرفة لإخفاء هوية الناخب وخصوصية الاقتراع.
الزيز: عد الأصوات الخصوصية باستخدام أحاجي Timelock المتجانسة
لتحقيق خصوصية عد الأصوات المستمرة ، يستعير Cicada أساسيات التشفير التي لم يتم استخدامها (على حد علمنا) على السلسلة.
أولاً ، لغز قفل الوقت (Rivest، Shamir، Wagner، 1996) عبارة عن لغز تشفير لا يمكن الكشف عن أسراره إلا بعد انقضاء فترة زمنية محددة مسبقًا - وبشكل أكثر تحديدًا ، فقط من خلال التنفيذ المتكرر لحسابات معينة. تستخدم لحل الألغاز. تعد ألغاز Timelock مفيدة في سياق التصويت لخصوصية عدد الأصوات المستمر: يمكن للمستخدمين إرسال أصواتهم كألغاز timelock ، بحيث تظل أصواتهم خاصة أثناء عملية التصويت ، ولكن يمكن الوصول إليها بعد الكشف عن التصويت. على عكس معظم هياكل الاقتراع الخاصة الأخرى ، يتيح ذلك تحقيق خصوصية عد الاقتراع دون الاعتماد على الوكالات الإحصائية (مثل العاملين في الانتخابات الذين يعدون الأوراق أو بطاقات الاقتراع الرقمية) ، أو تشفير العتبة (يجب أن تتعاون العديد من الأطراف الموثوقة لفك تشفير الرسالة) أو أي طرف موثوق به آخر : يمكن لأي شخص حل لغز timelock لضمان الكشف عن النتيجة بعد التصويت.
ثانيًا ، يحتوي لغز timelock المتماثل (Malavolta Thyagarajan ، 2019) على خاصية إضافية تتمثل في إمكانية إجراء بعض الحسابات على القيم المشفرة مع معرفة المفتاح السري أو فك تشفير اللغز أو استخدام باب خلفي. على وجه الخصوص ، يسمح لنا لغز timelock الخطي بدمج الألغاز معًا لإنشاء لغز جديد يحتوي على مجموع القيم السرية للألغاز الأصلية.
كما يشير مؤلفو الورقة ، فإن ألغاز timelock الخطية مناسبة بشكل خاص للتصويت الخاص: يمكن ترميز الأصوات على أنها ألغاز ، ويمكن دمجها بشكل متماثل للحصول على ألغاز ترميز الإحصائيات النهائية. هذا يعني أنه يلزم إجراء عملية حسابية واحدة فقط لكشف النتيجة النهائية ، بدلاً من حل لغز فريد لكل صوت.
النظام الجديد: الكفاءة والمقايضات
بالنسبة لنظام التصويت الذي يمكن تطبيقه عمليًا على السلسلة ، هناك العديد من العوامل التي يجب مراعاتها. أولاً ، قد يحاول المهاجم التلاعب بنتائج التصويت من خلال تقديم بطاقات اقتراع مشفرة بشكل غير صحيح. على سبيل المثال ، قد نتوقع أن يقوم لغز timelock لكل بطاقة اقتراع بترميز قيمة منطقية: "1" لدقة التصويت ، و "0" معارضة. قد يحاول المؤيد المتحمّس استخدام رمز مثل "100" لزيادة قوته التصويتية الفعالة.
يمكننا منع هذا الهجوم من خلال مطالبة الناخبين بتقديم دليل عدم المعرفة بالإضافة إلى تقديم ورقة الاقتراع نفسها. ومع ذلك ، يمكن أن تكون أدلة عدم المعرفة الصفرية باهظة الثمن من الناحية الحسابية - للحفاظ على تكلفة مشاركة الناخبين منخفضة قدر الإمكان ، يجب أن تكون البراهين (1) محسوبة بكفاءة من جانب العميل و (2) التحقق منها بكفاءة على السلسلة.
لجعل الإثبات فعالاً قدر الإمكان ، نستخدم بروتوكول سيجما المخصص. هذا إثبات عدم المعرفة مصمم لعلاقات جبرية محددة ، وليس نظام إثبات عام. يعمل هذا على تسريع أوقات الإثبات بشكل كبير: على جهاز كمبيوتر محمول جاهز ، يستغرق الأمر 14 مللي ثانية فقط لتوليد إثبات صحة الاقتراع في Python.
على الرغم من أن عملية التحقق من بروتوكول سيجما هذا بسيطة من الناحية المفاهيمية ، إلا أنها تتطلب في الواقع العديد من العمليات الأسية الكبيرة. يستخدم مخطط Malavolta و Thyagarajan الخطي المتجانس تشفير Paillier ، لذلك سيتم تنفيذ هذه العمليات الأسية بمقياس بعض معامل RSA N ^ 2. بالنسبة إلى N كبير إلى حد معقول ، فإن عمليات الأُس هذه تحظر معظم سلاسل EVM (تتطلب ملايين الغاز). لتقليل هذه التكلفة ، يستخدم Cicada بدلاً من ذلك الأس ElGamal ، والذي لا يزال يوفر تماثل الشكل الإضافي ، ولكنه يعمل على معامل أصغر (N بدلاً من N ^ 2).
أحد الجوانب السلبية لاستخدام الجمال هو أنه يتطلب لوغاريتمات منفصلة شاملة لفك تشفير الإحصائيات (لاحظ أن هذا يتم خارج السلسلة ويتم التحقق منه بكفاءة على السلسلة). لذلك ، يجب استخدامه فقط إذا كان العدد النهائي المتوقع صغيرًا نسبيًا (على سبيل المثال ، أقل من 2 ^ 32 ، حوالي 4.3 مليون صوت). في المخطط الأصلي المستند إلى Paillier ، يمكن فك تشفيره بكفاءة بغض النظر عن حجم الإحصائيات.
يتضمن اختيار معامل RSA N أيضًا مقايضات. تستخدم طريقتنا معاملًا من 1024 بت لتحسين كفاءة الغاز. في حين أن هذا أعلى بكثير من الحد الأقصى لمعامل RSA للعوامل (وهو 829 بت) ، إلا أنه أقل من حجم 2048 بت الموصى به عمومًا لتشفير RSA أو التوقيع. ومع ذلك ، في تطبيقنا ، لا نحتاج إلى أمان طويل المدى: بمجرد انتهاء الانتخابات ، لا يوجد خطر إذا تم تضمين N في المستقبل. بعد انتهاء صلاحية القفل الزمني ، من المعقول استخدام معامل صغير نسبيًا ، بافتراض أن الإحصائيات والأصوات ستصبح علنية. (يمكن أيضًا تحديث هذا بسهولة في المستقبل إذا تحسنت خوارزمية العوامل.)
إخفاء الهوية وأهلية التصويت
كما هو مذكور أعلاه ، يوفر Cicada خصوصية حصيلة التصويت المستمرة - يحافظ لغز timelock على سرية التعداد أثناء التصويت. ومع ذلك ، فإن كل بطاقة اقتراع هي أيضًا أحجية timelock ، مشفرة وفقًا لنفس المعايير العامة. هذا يعني أنه مثلما يمكن فك تشفير الإحصائيات (عن طريق إجراء الحسابات اللازمة) ، يمكن كذلك لكل تصويت.
بعبارة أخرى ، يضمن السيكادا سرية الاقتراع فقط أثناء التصويت. إذا أراد مراقب فضولي فك شفرة اقتراع ناخب معين ، فيمكنه فعل ذلك بعد إغلاق الاقتراع أيضًا. تكلفة فك تشفير أي بطاقة اقتراع واحدة هي نفس تكلفة فك تشفير الحصيلة النهائية ، لذا فإن فك تشفير بطاقة اقتراع عدد ناخبين يتطلب عمل O (n). ومع ذلك ، يمكن فك تشفير كل هذه الأصوات بالتوازي (بافتراض وجود أجهزة كمبيوتر كافية) في عملية تستغرق نفس القدر من الوقت لفك تشفير الحصيلة النهائية.
بالنسبة لبعض استطلاعات الرأي ، قد لا يكون هذا مثاليًا. في حين أننا سعداء بخصوصية فرز الأصوات المؤقتة ، فقد نرغب في الحصول على خصوصية تصويت دائمة. لتحقيق ذلك ، يمكننا الجمع بين Cicada وبروتوكول أهلية الناخب المجهول من خلال إثبات عدم المعرفة بعضوية المجموعة. بهذه الطريقة ، حتى لو تم رفع السرية عن أوراق الاقتراع ، فإنها ستكشف فقط عن كيفية تصويت شخص ما ، وهو ما تم الكشف عنه بالفعل في الفرز.
في مستودعنا ، نقدم مثالاً لعقد يستخدم Semaphore لإخفاء هوية الناخب. لاحظ أن عقد Cicada نفسه لا يقدم أي افتراضات حول تحديد أو إنفاذ أهلية الناخب. على وجه الخصوص ، يمكنك استبدال Semaphore بـ Semacaulk أو ZK Proof of State.
وكالة عد الأصوات
كان أحد أهدافنا الأولى عند تصميم Cicada هو تجنب الاعتماد على وكالات فرز الأصوات: تتطلب العديد من الأصوات الخاصة وكالة فرز شبه موثوقة (أو لجنة تتعاون عبر حساب آمن متعدد الأحزاب) تتلقى الأصوات وتجمعها. في سياق blockchain ، هذا يعني أنه لا يمكن تنفيذ هذه المخططات من خلال العقود الذكية وحدها ، ولكنها تتطلب بعض التدخل البشري والثقة.
في معظم الأنظمة ، تكون الوكالات الإحصائية موثوقة من حيث النزاهة (لا يمكنها التلاعب بعد الأصوات) ، ولكن يجب أن تظل نشطة أيضًا - إذا كانت غير متصلة بالإنترنت ، فلا يمكن حساب النتائج النهائية وتتوقف نتائج التصويت إلى أجل غير مسمى. في بعض الأنظمة ، تكون الوكالات الإحصائية موثوقة أيضًا في الحفاظ على الخصوصية. أي أنهم يعرفون تصويت كل ناخب ، لكنهم ينشرون النتائج دون الكشف عن هذه المعلومات.
في حين أن الوكالات الإحصائية معقولة (وضرورية) في العديد من سيناريوهات العالم الحقيقي ، إلا أنها ليست مثالية في سياق blockchain ، حيث يتمثل هدفنا في تقليل الثقة وضمان مقاومة الرقابة.
خاتمة
يستكشف Cicada العديد من الاتجاهات في مجال خصوصية التصويت على السلسلة ويكمل البحث المستمر من قبل مجموعات أخرى. كما هو مذكور أعلاه ، يكمل Cicada تقنيات عضوية المجموعة المجهولة مثل Semaphore وإثبات التخزين ZK ومبطلات الحد من المعدل. يمكن أيضًا دمج Cicada مع مدقق الإثبات المتفائل الذي اقترحه فريق Nouns Vortex لتقليل عبء الغاز على الناخبين.
أيضًا ، لدينا الفرصة لضبط Cicada لدعم مخططات التصويت المختلفة (مثل التصويت الموزون ، التصويت التربيعي) ، في حين أن المخططات الأكثر تعقيدًا قد تكون باهظة الثمن من الناحية الحسابية لشبكة Ethereum mainnet ، فقد تكون ممكنة على شبكات الطبقة الثانية من. مع وضع ذلك في الاعتبار ، نرحب بأي اقتراحات للاتجاه المستقبلي لـ Cicada.
شاهد النسخة الأصلية
المحتوى هو للمرجعية فقط، وليس دعوة أو عرضًا. لا يتم تقديم أي مشورة استثمارية أو ضريبية أو قانونية. للمزيد من الإفصاحات حول المخاطر، يُرجى الاطلاع على إخلاء المسؤولية.
a16z: شرح مفصل لمبدأ العمل لمشروع تصويت الزيز على سلسلة ZK
原文 : 《إنشاء Cicada: التصويت الخاص عبر السلسلة باستخدام ألغاز قفل الوقت》 بواسطة Michael Zhu , a16z
تجميع: Kxp ، BlockBeats
يجب أن تعتمد جميع أنظمة التصويت على النزاهة والشفافية حتى تكون فعالة. ظاهريًا ، يبدو أن blockchain هو المنصة المثالية لبناء هذه الأنظمة. في الواقع ، تم اعتماد التصويت غير المرخص من قبل العديد من المنظمات اللامركزية للتعبير عن الإرادة الجماعية ، غالبًا في سياق ممارسة سلطة مالية كبيرة أو تعديل معايير البروتوكول الرئيسية. ومع ذلك ، فإن التصويت على السلسلة له بعض العيوب ، ولم يتم استكشاف مشكلات الخصوصية بشكل كامل لأنظمة التصويت Web3 ، مما أحدث تأثيرًا سلبيًا عليه. في معظم بروتوكولات التصويت على السلسلة المستخدمة اليوم ، تكون بطاقات الاقتراع ونتائج التصويت علنية بالكامل. يعني الافتقار إلى حماية الخصوصية أن نتائج التصويت عرضة للتلاعب ، بينما تؤدي أيضًا إلى حوافز غير متسقة للناخبين ، مما قد يؤدي إلى نتائج غير ديمقراطية.
تحقيقًا لهذه الغاية ، نطلق Cicada: مكتبة Solidity جديدة ومفتوحة المصدر تستفيد من ألغاز timelock وإثباتات المعرفة الصفرية للتصويت الخاص على السلسلة. بالمقارنة مع الأنظمة الحالية ، يتمتع Cicada بخصوصية فريدة من نوعها ، ويقلل من الاعتماد على الثقة ، كما أنه فعال للغاية على شبكة Ethereum mainnet.
في هذه الورقة ، نقوم بمسح الحالة الحالية لخصوصية التصويت ونقدم مقدمة رفيعة المستوى لكيفية عمل Cicada (ستتبع البراهين الرسمية). نشجع أيضًا المطورين على التوجه إلى مستودع GitHub للحصول على التفاصيل - يمكن تعديل Cicada بمرونة وتوسيع نطاقها لمخططات وميزات التصويت المختلفة. نتطلع إلى العمل مع المجتمع لاستكشاف هذه الاحتمالات معًا.
نظرة عامة على خصوصية التصويت
في أي نظام تصويت (على السلسلة أو غير ذلك) ، نحتاج إلى النظر في العديد من مستويات الخصوصية المختلفة. إن الإفصاح عن بطاقات الاقتراع الفردية ، وعمليات فرز الأصوات الجارية ، وهوية الناخبين كلها تؤثر على الناخبين بطرق مختلفة. تختلف خصائص الخصوصية المرغوبة من تصويت إلى تصويت ، ولكن فيما يلي بعض العناصر التي يتم تناولها غالبًا في أدبيات التشفير والعلوم الاجتماعية:
** · ** خصوصية الاقتراع: التصويت السري ، المعروف أيضًا باسم "الاقتراع الأسترالي" ، هو وسيلة لحماية خصوصية الناخبين الأفراد في أنظمة التصويت في العالم الحقيقي وتقليل الرشوة والإكراه (على التسلسل في البيئة المذكورة أعلاه ، نحن قد تحتاج إلى آلية أكثر قوة من التصويت السري ، انظر "بدون إيصال" أدناه للحصول على التفاصيل). يمكن لخصوصية التصويت أيضًا أن تقلل من تحيز الرغبة الاجتماعية - يقل احتمال تصويت الناس بناءً على ما يعتقده الآخرون في خياراتهم.
** · ** خصوصية فرز الأصوات: تخفي العديد من أنظمة التصويت عمليات فرز الأصوات الجارية ، أي عدد الأصوات التي حصل عليها كل خيار أثناء تصويت الناخبين لتجنب التأثير على الإقبال وحوافز الناخبين. لقد رأينا هذا يحدث في العالم الحقيقي: على سبيل المثال ، أعضاء مجلس الشيوخ الأمريكي الذين يصوتون لاحقًا هم أكثر عرضة للانحياز إلى حزبهم من أعضاء مجلس الشيوخ الذين صوتوا في وقت سابق. في التصويت المرجح على السلسلة ، يمكن للحيتان العملاقة الحفاظ على إحساسها الزائف بالأمان من خلال إبقاء خصومها في المقدمة (قد يكون بعض الناس كسالى جدًا للتصويت لأنهم يعتقدون أن هؤلاء الأشخاص سيفوزون على أي حال) ، ثم يصوتون لأنفسهم في اللحظة الأخيرة أصوات لتحديد النتيجة.
** · ** إخفاء هوية الناخب: في العديد من أنظمة التصويت الواقعية ، يظل تصويتك سريًا ، ولكن غالبًا ما يكون صوتك معروفًا للآخرين سواء صوتت أم لا. يمكن أن يكون هذا بمثابة حماية ضد تزوير الناخبين ، لأن نشر سجلات الأشخاص الذين صوتوا سيسمح للناس بالتحقق مما إذا كان شخص ما قد صوت باسمهم. ومع ذلك ، يمكننا استخدام أساسيات التشفير على السلسلة لمنع تزوير الناخبين مع الحفاظ على إخفاء الهوية - على سبيل المثال ، باستخدام Semaphore ، يمكنك إثبات أنك ناخب مؤهل ولم تصوت بعد.
** · ** عدم الاستلام: يجب على الناخبين عدم تقديم "إيصال" بأصواتهم لطرف ثالث لإثبات كيفية الإدلاء بأصواتهم لشخص ما ، مما قد يؤدي إلى بيع بطاقة الاقتراع. مقاومة الإكراه هي خاصية أخرى وثيقة الصلة ، تمنع إجبار أي شخص على التصويت بطريقة معينة. هذه الخصائص جذابة بشكل خاص في البيئة اللامركزية ، حيث يمكن أن تصبح قوة التصويت سائلة من خلال سوق العقود الذكية. لسوء الحظ ، يصعب تحقيق هذه الخصائص. في الواقع ، يشير Juels et al. إلى أنه من المستحيل تحقيق هذه الخصائص في بيئة بدون إذن بدون أجهزة موثوقة.
يركز برنامج Cicada على خصوصية عدد الأصوات المستمر ، ومع ذلك (كما سنناقش لاحقًا) ، يمكن استخدامه جنبًا إلى جنب مع إثبات عضوية مجموعة عدم المعرفة لإخفاء هوية الناخب وخصوصية الاقتراع.
الزيز: عد الأصوات الخصوصية باستخدام أحاجي Timelock المتجانسة
لتحقيق خصوصية عد الأصوات المستمرة ، يستعير Cicada أساسيات التشفير التي لم يتم استخدامها (على حد علمنا) على السلسلة.
أولاً ، لغز قفل الوقت (Rivest، Shamir، Wagner، 1996) عبارة عن لغز تشفير لا يمكن الكشف عن أسراره إلا بعد انقضاء فترة زمنية محددة مسبقًا - وبشكل أكثر تحديدًا ، فقط من خلال التنفيذ المتكرر لحسابات معينة. تستخدم لحل الألغاز. تعد ألغاز Timelock مفيدة في سياق التصويت لخصوصية عدد الأصوات المستمر: يمكن للمستخدمين إرسال أصواتهم كألغاز timelock ، بحيث تظل أصواتهم خاصة أثناء عملية التصويت ، ولكن يمكن الوصول إليها بعد الكشف عن التصويت. على عكس معظم هياكل الاقتراع الخاصة الأخرى ، يتيح ذلك تحقيق خصوصية عد الاقتراع دون الاعتماد على الوكالات الإحصائية (مثل العاملين في الانتخابات الذين يعدون الأوراق أو بطاقات الاقتراع الرقمية) ، أو تشفير العتبة (يجب أن تتعاون العديد من الأطراف الموثوقة لفك تشفير الرسالة) أو أي طرف موثوق به آخر : يمكن لأي شخص حل لغز timelock لضمان الكشف عن النتيجة بعد التصويت.
ثانيًا ، يحتوي لغز timelock المتماثل (Malavolta Thyagarajan ، 2019) على خاصية إضافية تتمثل في إمكانية إجراء بعض الحسابات على القيم المشفرة مع معرفة المفتاح السري أو فك تشفير اللغز أو استخدام باب خلفي. على وجه الخصوص ، يسمح لنا لغز timelock الخطي بدمج الألغاز معًا لإنشاء لغز جديد يحتوي على مجموع القيم السرية للألغاز الأصلية.
كما يشير مؤلفو الورقة ، فإن ألغاز timelock الخطية مناسبة بشكل خاص للتصويت الخاص: يمكن ترميز الأصوات على أنها ألغاز ، ويمكن دمجها بشكل متماثل للحصول على ألغاز ترميز الإحصائيات النهائية. هذا يعني أنه يلزم إجراء عملية حسابية واحدة فقط لكشف النتيجة النهائية ، بدلاً من حل لغز فريد لكل صوت.
النظام الجديد: الكفاءة والمقايضات
بالنسبة لنظام التصويت الذي يمكن تطبيقه عمليًا على السلسلة ، هناك العديد من العوامل التي يجب مراعاتها. أولاً ، قد يحاول المهاجم التلاعب بنتائج التصويت من خلال تقديم بطاقات اقتراع مشفرة بشكل غير صحيح. على سبيل المثال ، قد نتوقع أن يقوم لغز timelock لكل بطاقة اقتراع بترميز قيمة منطقية: "1" لدقة التصويت ، و "0" معارضة. قد يحاول المؤيد المتحمّس استخدام رمز مثل "100" لزيادة قوته التصويتية الفعالة.
يمكننا منع هذا الهجوم من خلال مطالبة الناخبين بتقديم دليل عدم المعرفة بالإضافة إلى تقديم ورقة الاقتراع نفسها. ومع ذلك ، يمكن أن تكون أدلة عدم المعرفة الصفرية باهظة الثمن من الناحية الحسابية - للحفاظ على تكلفة مشاركة الناخبين منخفضة قدر الإمكان ، يجب أن تكون البراهين (1) محسوبة بكفاءة من جانب العميل و (2) التحقق منها بكفاءة على السلسلة.
لجعل الإثبات فعالاً قدر الإمكان ، نستخدم بروتوكول سيجما المخصص. هذا إثبات عدم المعرفة مصمم لعلاقات جبرية محددة ، وليس نظام إثبات عام. يعمل هذا على تسريع أوقات الإثبات بشكل كبير: على جهاز كمبيوتر محمول جاهز ، يستغرق الأمر 14 مللي ثانية فقط لتوليد إثبات صحة الاقتراع في Python.
على الرغم من أن عملية التحقق من بروتوكول سيجما هذا بسيطة من الناحية المفاهيمية ، إلا أنها تتطلب في الواقع العديد من العمليات الأسية الكبيرة. يستخدم مخطط Malavolta و Thyagarajan الخطي المتجانس تشفير Paillier ، لذلك سيتم تنفيذ هذه العمليات الأسية بمقياس بعض معامل RSA N ^ 2. بالنسبة إلى N كبير إلى حد معقول ، فإن عمليات الأُس هذه تحظر معظم سلاسل EVM (تتطلب ملايين الغاز). لتقليل هذه التكلفة ، يستخدم Cicada بدلاً من ذلك الأس ElGamal ، والذي لا يزال يوفر تماثل الشكل الإضافي ، ولكنه يعمل على معامل أصغر (N بدلاً من N ^ 2).
أحد الجوانب السلبية لاستخدام الجمال هو أنه يتطلب لوغاريتمات منفصلة شاملة لفك تشفير الإحصائيات (لاحظ أن هذا يتم خارج السلسلة ويتم التحقق منه بكفاءة على السلسلة). لذلك ، يجب استخدامه فقط إذا كان العدد النهائي المتوقع صغيرًا نسبيًا (على سبيل المثال ، أقل من 2 ^ 32 ، حوالي 4.3 مليون صوت). في المخطط الأصلي المستند إلى Paillier ، يمكن فك تشفيره بكفاءة بغض النظر عن حجم الإحصائيات.
يتضمن اختيار معامل RSA N أيضًا مقايضات. تستخدم طريقتنا معاملًا من 1024 بت لتحسين كفاءة الغاز. في حين أن هذا أعلى بكثير من الحد الأقصى لمعامل RSA للعوامل (وهو 829 بت) ، إلا أنه أقل من حجم 2048 بت الموصى به عمومًا لتشفير RSA أو التوقيع. ومع ذلك ، في تطبيقنا ، لا نحتاج إلى أمان طويل المدى: بمجرد انتهاء الانتخابات ، لا يوجد خطر إذا تم تضمين N في المستقبل. بعد انتهاء صلاحية القفل الزمني ، من المعقول استخدام معامل صغير نسبيًا ، بافتراض أن الإحصائيات والأصوات ستصبح علنية. (يمكن أيضًا تحديث هذا بسهولة في المستقبل إذا تحسنت خوارزمية العوامل.)
إخفاء الهوية وأهلية التصويت
كما هو مذكور أعلاه ، يوفر Cicada خصوصية حصيلة التصويت المستمرة - يحافظ لغز timelock على سرية التعداد أثناء التصويت. ومع ذلك ، فإن كل بطاقة اقتراع هي أيضًا أحجية timelock ، مشفرة وفقًا لنفس المعايير العامة. هذا يعني أنه مثلما يمكن فك تشفير الإحصائيات (عن طريق إجراء الحسابات اللازمة) ، يمكن كذلك لكل تصويت.
بعبارة أخرى ، يضمن السيكادا سرية الاقتراع فقط أثناء التصويت. إذا أراد مراقب فضولي فك شفرة اقتراع ناخب معين ، فيمكنه فعل ذلك بعد إغلاق الاقتراع أيضًا. تكلفة فك تشفير أي بطاقة اقتراع واحدة هي نفس تكلفة فك تشفير الحصيلة النهائية ، لذا فإن فك تشفير بطاقة اقتراع عدد ناخبين يتطلب عمل O (n). ومع ذلك ، يمكن فك تشفير كل هذه الأصوات بالتوازي (بافتراض وجود أجهزة كمبيوتر كافية) في عملية تستغرق نفس القدر من الوقت لفك تشفير الحصيلة النهائية.
بالنسبة لبعض استطلاعات الرأي ، قد لا يكون هذا مثاليًا. في حين أننا سعداء بخصوصية فرز الأصوات المؤقتة ، فقد نرغب في الحصول على خصوصية تصويت دائمة. لتحقيق ذلك ، يمكننا الجمع بين Cicada وبروتوكول أهلية الناخب المجهول من خلال إثبات عدم المعرفة بعضوية المجموعة. بهذه الطريقة ، حتى لو تم رفع السرية عن أوراق الاقتراع ، فإنها ستكشف فقط عن كيفية تصويت شخص ما ، وهو ما تم الكشف عنه بالفعل في الفرز.
في مستودعنا ، نقدم مثالاً لعقد يستخدم Semaphore لإخفاء هوية الناخب. لاحظ أن عقد Cicada نفسه لا يقدم أي افتراضات حول تحديد أو إنفاذ أهلية الناخب. على وجه الخصوص ، يمكنك استبدال Semaphore بـ Semacaulk أو ZK Proof of State.
وكالة عد الأصوات
كان أحد أهدافنا الأولى عند تصميم Cicada هو تجنب الاعتماد على وكالات فرز الأصوات: تتطلب العديد من الأصوات الخاصة وكالة فرز شبه موثوقة (أو لجنة تتعاون عبر حساب آمن متعدد الأحزاب) تتلقى الأصوات وتجمعها. في سياق blockchain ، هذا يعني أنه لا يمكن تنفيذ هذه المخططات من خلال العقود الذكية وحدها ، ولكنها تتطلب بعض التدخل البشري والثقة.
في معظم الأنظمة ، تكون الوكالات الإحصائية موثوقة من حيث النزاهة (لا يمكنها التلاعب بعد الأصوات) ، ولكن يجب أن تظل نشطة أيضًا - إذا كانت غير متصلة بالإنترنت ، فلا يمكن حساب النتائج النهائية وتتوقف نتائج التصويت إلى أجل غير مسمى. في بعض الأنظمة ، تكون الوكالات الإحصائية موثوقة أيضًا في الحفاظ على الخصوصية. أي أنهم يعرفون تصويت كل ناخب ، لكنهم ينشرون النتائج دون الكشف عن هذه المعلومات.
في حين أن الوكالات الإحصائية معقولة (وضرورية) في العديد من سيناريوهات العالم الحقيقي ، إلا أنها ليست مثالية في سياق blockchain ، حيث يتمثل هدفنا في تقليل الثقة وضمان مقاومة الرقابة.
خاتمة
يستكشف Cicada العديد من الاتجاهات في مجال خصوصية التصويت على السلسلة ويكمل البحث المستمر من قبل مجموعات أخرى. كما هو مذكور أعلاه ، يكمل Cicada تقنيات عضوية المجموعة المجهولة مثل Semaphore وإثبات التخزين ZK ومبطلات الحد من المعدل. يمكن أيضًا دمج Cicada مع مدقق الإثبات المتفائل الذي اقترحه فريق Nouns Vortex لتقليل عبء الغاز على الناخبين.
أيضًا ، لدينا الفرصة لضبط Cicada لدعم مخططات التصويت المختلفة (مثل التصويت الموزون ، التصويت التربيعي) ، في حين أن المخططات الأكثر تعقيدًا قد تكون باهظة الثمن من الناحية الحسابية لشبكة Ethereum mainnet ، فقد تكون ممكنة على شبكات الطبقة الثانية من. مع وضع ذلك في الاعتبار ، نرحب بأي اقتراحات للاتجاه المستقبلي لـ Cicada.