a16z: كيف يستخدم Cicada ألغاز timelock وإثباتات المعرفة الصفرية لتمكين التصويت على السلسلة

Cicada له خصائص خصوصية جديدة ، ويقلل من افتراضات الثقة ، وهو فعال بما يكفي لاستخدامه على شبكة Ethereum mainnet.

** بقلم: **** مايكل تشو **

** بقلم: Lynn، MarsBit **

تعتمد جميع أنظمة التصويت التي تعمل بأي طريقة مجدية على النزاهة والشفافية. ظاهريًا ، هذا يجعل blockchain منصة مثالية لبناء هذه الأنظمة - في الواقع ، تبنت العديد من المنظمات اللامركزية التصويت بدون إذن كوسيلة للتعبير عن النوايا الجماعية ، وغالبًا ما تستخدم ثروة هائلة أو تعديل معايير البروتوكول الرئيسية في حالة. لكن التصويت على السلسلة له أيضًا عيوب ، فالخصوصية لا تزال غير مستكشفة وغير مطورة ، وهو أمر غير جيد لأنظمة التصويت Web3 - في معظم بروتوكولات التصويت على السلسلة المستخدمة حاليًا ، تكون نتائج الاقتراع ونتائج التصويت عامة تمامًا. بدون الخصوصية ، يمكن التلاعب بنتائج التصويت بسهولة ، كما أن حوافز الناخبين غير متوازنة ، مما قد يؤدي إلى نتائج غير ديمقراطية.

لهذا السبب أطلقنا Cicada: مكتبة Solidity جديدة ومفتوحة المصدر تستفيد من ألغاز timelock وإثباتات المعرفة الصفرية لتمكين التصويت الخاص على السلسلة. بالمقارنة مع الأنظمة الحالية ، لدى Cicada خصائص خصوصية جديدة ، وتقليل افتراضات الثقة ، وهي فعالة بما يكفي لاستخدامها على شبكة Ethereum mainnet.

في هذا المنشور ، نقوم بمسح حالة خصوصية التصويت وتقديم وصف عالي المستوى لكيفية عمل Cicada (الأدلة الرسمية قادمة). نشجع أيضًا المطورين على التحقق من مستودع GitHub - يمكن تعديل Cicada وتوسيعه بعدة طرق لدعم مخططات وميزات التصويت المختلفة ، ونأمل في العمل مع المجتمع لاستكشاف هذه الاحتمالات.

مسح موجز لاستطلاعات الرأي الخاصة

في أي نظام تصويت (على السلسلة أو غير ذلك) ، هناك العديد من مستويات الخصوصية المختلفة التي يجب مراعاتها. يؤثر الإفصاح عن بطاقات الاقتراع الفردية ، وعمليات التعداد ، وهويات الناخبين على دوافع الناخبين بطرق مختلفة. تعتمد خصائص الخصوصية الضرورية على سياق التصويت. عدد قليل يظهر بشكل متكرر في أدبيات التشفير والعلوم الاجتماعية:

  • خصوصية الاقتراع: تم تطوير بطاقات الاقتراع السرية ، والمعروفة أيضًا باسم "بطاقات الاقتراع الأسترالية" ، لأنظمة التصويت في العالم الحقيقي كطريقة للحفاظ على تفضيلات الناخبين الفرديين وتخفيف الرشوة والإكراه (مجموعة على سلسلة ، قد تتطلب خاصية أقوى من ورقة الاقتراع الخصوصية - راجع "عدم الاستلام" أدناه). يمكن لخصوصية التصويت أيضًا أن تخفف من تحيز الرغبة الاجتماعية - فالشخص لديه ضغط أقل للتصويت بناءً على ما يعتقده الآخرون في خياراتهم.
  • خصوصية عمليات العد قيد التقدم: تخفي العديد من أنظمة التصويت عمليات التعداد الجارية ، أو عدد الأصوات التي تم الإدلاء بها بالفعل لكل خيار ، بينما لا يزال الناخبون يدلون بأصواتهم ، لتجنب التأثير على الإقبال وحوافز الناخبين. لقد رأينا هذا يحدث في العالم الحقيقي ؛ على سبيل المثال ، أعضاء مجلس الشيوخ الأمريكي الذين يصوتون لاحقًا هم أكثر عرضة للانحياز إلى حزبهم من أعضاء مجلس الشيوخ الذين صوتوا في وقت سابق. وعلى السلسلة: في التصويت المرجح بالرمز ، يمكن للحيتان تهدئة خصومهم إلى شعور زائف بالأمان من خلال إبقائهم في المقدمة (قد يكون البعض كسولًا جدًا للتصويت ، على افتراض أنهم سيفوزون على أي حال) ، ثم يدلون بأصواتهم في في اللحظة الأخيرة تعال وقرر النتيجة.
  • إخفاء هوية الناخب: في العديد من أنظمة التصويت في العالم الحقيقي ، لا يكون تصويتك علنيًا ، لكن حقيقة أنك صوتت غالبًا ما تكون علنية. هذا مهم لمنع تزوير الناخبين ، لأن نشر سجلات الناخبين يسمح للأشخاص بالتحقق مما إذا كان الآخرون قد صوتوا باسمهم. على الرغم من ذلك ، يمكننا منع تزوير الناخبين عبر السلسلة مع الحفاظ على المجهولية باستخدام بدائل التشفير - على سبيل المثال ، مع Semaphore ، يمكنك إثبات عدم معرفتك أنك ناخب صالح لم تصوت بعد.
  • عدم إمكانية الاستلام: يقدم الناخبون الأفراد "إيصالًا" بأصواتهم لإثبات كيفية تصويتهم لطرف ثالث ، مما قد يؤدي بخلاف ذلك إلى بيع التذاكر. من الخصائص التي ترتبط ارتباطًا وثيقًا ولكن أقوى هي مقاومة الإكراه ، والتي تمنع أي شخص من إجبار الناخبين على التصويت بطريقة معينة. هذه الخصائص جذابة بشكل خاص في البيئة اللامركزية ، حيث يمكن جعل حقوق التصويت سائلة من خلال أسواق العقود الذكية. لسوء الحظ ، من الصعب أيضًا تنفيذها - في الواقع ، يشير Juels et al. إلى أنه مستحيل في بيئة غير مصرح بها بدون أجهزة موثوقة.

يركز برنامج Cicada على خصوصية العد أثناء الرحلة ، ولكن (كما نناقش لاحقًا) يمكن دمجه مع إثباتات عضوية المجموعة الصفرية المعرفة لتحقيق إخفاء هوية الناخب وخصوصية الاقتراع.

تقديم Cicada: خصوصية عد الأصوات من مشكلة Timelock Homomorphic

لتحقيق خصوصية عد الأصوات المستمر ، يستفيد Cicada من أساسيات التشفير التي (على حد علمنا) لم يتم استخدامها مطلقًا على السلسلة من قبل.

أولاً ، لغز قفل الوقت (Rivest ، Shamir ، Wagner ، 1996) عبارة عن أحجية مشفرة تحتوي على سر لا يمكن الكشف عنه إلا بعد انقضاء فترة زمنية محددة مسبقًا - وبشكل أكثر تحديدًا ، يمكن تكرار اللغز عن طريق القيام ببعض الأشياء غير حسابات موازية لفك تشفير. تعد ألغاز Timelocked مفيدة في سياق التصويت لتحقيق الخصوصية في تشغيل الإحصائيات: يمكن للمستخدمين إرسال أصواتهم على شكل ألغاز مثبتة في الوقت بحيث تظل سرية أثناء عملية التصويت ولكن يمكن الكشف عنها بعد التصويت. على عكس معظم هياكل التصويت الخاصة الأخرى ، فإن هذا يمكّن الخصوصية الإحصائية من العمل دون الاعتماد على الوكالات الإحصائية (مثل العاملين في الانتخابات الذين يعدون الأوراق أو بطاقات الاقتراع الرقمية) ، أو تشفير العتبة (يجب أن تتعاون العديد من الأطراف الموثوقة لفك تشفير الرسالة) ، أو أي أطراف أخرى موثوقة: يمكن لأي شخص حل لغز القفل الزمني لضمان الكشف عن النتيجة بعد التصويت.

ثانيًا ، يحتوي لغز Timelock المتماثل (Malavolta Thyagarajan ، 2019) على خاصية إضافية تتمثل في إمكانية إجراء بعض الحسابات على القيم المشفرة بمعرفة المفتاح السري أو فك تشفير اللغز أو استخدام باب خلفي. على وجه الخصوص ، يسمح لنا لغز timelock المتماثل خطيًا بدمج الألغاز معًا لإنتاج لغز جديد يلخص مجموع القيم السرية للغز الأصلي.

كما يشير مؤلفو الورقة البحثية ، فإن ألغاز timelock ذات الشكل الخطي هي بدائية مناسبة بشكل خاص للتصويت الخاص: يمكن ترميز الأصوات على أنها ألغاز ، ويمكن دمجها بشكل متماثل للحصول على ألغاز عد نهائية مشفرة. هذا يعني أنه يلزم إجراء عملية حسابية واحدة فقط للكشف عن النتيجة النهائية ، بدلاً من حل لغز فريد لكل تصويت.

هيكل جديد: الكفاءة والمفاضلات

هناك العديد من القضايا التي يجب مراعاتها حتى يكون نظام التصويت عمليًا على السلسلة. أولاً ، قد يحاول المهاجم التلاعب بالأصوات عن طريق الإدلاء بورقة اقتراع مشفرة بشكل غير صحيح. على سبيل المثال ، قد نرغب في ترميز لغز timelock لكل بطاقة اقتراع كقيمة منطقية: "1" للاقتراح الذي يتم التصويت عليه ، و "0" للرفض. قد يحاول مؤيد الاقتراح المتحمسين كتابة شيء مثل "100" لتوسيع قوتهم التصويتية الفعالة.

يمكننا منع هذا الهجوم من خلال جعل الناخب يقدم دليلًا صريحًا على صحة التصويت مع التصويت نفسه. ومع ذلك ، فإن إثباتات انعدام المعرفة باهظة التكلفة من الناحية الحسابية - للحفاظ على تكلفة مشاركة الناخبين منخفضة قدر الإمكان ، يجب أن تكون البراهين (1) قابلة للحساب من جانب العميل بكفاءة و (2) يمكن التحقق منها بكفاءة على السلسلة.

لجعل البراهين فعالة قدر الإمكان ، نستخدم بروتوكول سيجما المخصص - البراهين الصفرية المعرفة المصممة لعلاقات جبرية محددة ، بدلاً من نظام إثبات عام. هذا يجعل وقت المثل سريعًا للغاية: يستغرق إنشاء إثبات صحة الاقتراع في Python 14 مللي ثانية على جهاز كمبيوتر محمول جاهز للاستخدام.

في حين أن المدقق لبروتوكول سيجما بسيط من الناحية المفاهيمية ، فإنه يتطلب عددًا كبيرًا من الأسي المعياري. يستخدم مخطط Malavolta و Thyagarajan الخطي المتجانس تشفير Paillier ، لذلك ستؤدي هذه الأسيات إلى إجراء modulo N ^ 2 لبعض وحدات RSA N. بالنسبة للأحجام المعقولة من N ، يعد الأس مكلفًا للغاية (ملايين الغاز) في معظم سلاسل EVM. لتقليل التكاليف ، يستخدم Cicada Exponential ElGamal - لا يزال Exponential ElGamal يوفر تماثلات مضافة ، ولكنه يعمل على وحدات أصغر (N بدلاً من N ^ 2).

أحد الجوانب السلبية لاستخدام ElGamal هو أن الخطوة الأخيرة لفك تشفير العد تتطلب إجبار السجل المنفصل بوحشية (لاحظ أن هذا يتم خارج السلسلة ويتم التحقق منه بشكل فعال على السلسلة). لذلك ، لا يعمل إلا إذا كان العدد النهائي المتوقع للأصوات صغيرًا إلى حد ما (قل أقل من 2 ^ 32 ، أو حوالي 4.3 مليون صوت). في المخطط الأصلي المستند إلى Paillier ، يمكن فك تشفير التهم بكفاءة بغض النظر عن حجمها.

يتضمن اختيار معامل RSA N أيضًا مقايضات. يستخدم تطبيقنا معامل 1024 بت لكفاءة الغاز. في حين أن هذا أعلى بكثير من أكبر معامل RSA تم تحليله علنًا على الإطلاق (829 بت) ، إلا أنه أقل من الحجم الموصى به بشكل شائع وهو 2048 بت لتشفير RSA أو التوقيع. ومع ذلك ، فإن طلبنا لا يتطلب أمانًا طويل المدى: بمجرد انتهاء الانتخابات ، لا يوجد خطر إذا تم اعتبار N في المستقبل. من المعقول استخدام معامل صغير نسبيًا ، على افتراض أن العد والأصوات يتم الإعلان عنها بعد انتهاء صلاحية قفل الوقت. (يمكن أيضًا تحديث هذا بسهولة في المستقبل إذا تحسنت خوارزمية التحلل.)

عدم الكشف عن هويته وأهلية الناخبين

كما هو مذكور أعلاه ، يوفر Cicada خصوصية عدد مرات التشغيل - وهي خاصية ألغاز مغلقة زمنيًا تحافظ على خصوصية عدد الأصوات أثناء التصويت. ومع ذلك ، فإن كل بطاقة اقتراع فردية هي أيضًا أحجية timelock ، المشفرة وفقًا لنفس المعايير العامة. هذا يعني أنه مثلما يمكن فك تشفير العد (عن طريق إجراء الحسابات اللازمة) ، يمكن كذلك لكل تصويت. بعبارة أخرى ، يضمن Cicada خصوصية الاقتراع فقط أثناء التصويت - إذا رغب المراقبون الفضوليون في فك تشفير بطاقة اقتراع ناخب معين ، يمكنهم فعل ذلك. يعد فك تشفير أي بطاقة اقتراع فردية مكلفًا مثل فك تشفير العد النهائي ، لذلك يتطلب الأمر ، بسذاجة ، عمل O (n) لفك تشفير بطاقة الاقتراع بالكامل مع عدد ناخبين. ولكن يمكن فك تشفير كل هذه الأصوات بالتوازي (بافتراض وجود عدد كافٍ من الآلات) ، مع أخذ نفس القدر من وقت ساعة الحائط الذي يستغرقه فك التشفير النهائي.

بالنسبة لبعض الأصوات ، قد لا يكون هذا مرغوبًا فيه. بينما يسعدنا إجراء خصوصية عد الأصوات مؤقتًا ، فقد نرغب في خصوصية التصويت إلى أجل غير مسمى. لتحقيق ذلك ، يمكننا الجمع بين Cicada وبروتوكول أهلية ناخب مجهول ، يتم إنشاء مثيل له بإثباتات عضوية مجموعة انعدام المعرفة. بهذه الطريقة ، حتى لو رفعت السرية عن بطاقة الاقتراع ، فإن كل ما تكشفه هو أن شخصًا ما صوت بهذه الطريقة - ونحن نعلم ذلك بالفعل من الفرز.

في مستودعنا ، نقوم بتضمين مثال على عقد يستخدم Semaphore لإخفاء هوية الناخب. لاحظ ، مع ذلك ، أن عقد Cicada نفسه لا يقدم أي افتراضات حول كيفية تحديد أهلية الناخب أو فرضها. على وجه الخصوص ، يمكنك استبدال Semaphore بـ Semacaulk أو ZK Proof of State (كما هو مقترح هنا وهنا).

هيئة الإحصاء

كانت إحدى أولوياتنا الأولى في تصميم Cicada هي تجنب الحاجة إلى وكالة إحصائية: تتطلب العديد من هياكل التصويت الخاصة وكالة إحصائية شبه موثوقة (أو لجنة مفوضة ، منسقة عبر حساب آمن متعدد الأحزاب) لتلقي الأصوات وتجميعها. في سياق blockchain ، هذا يعني أنه لا يمكن تنفيذ هذه المخططات من خلال العقود الذكية وحدها ، مما يتطلب بعض التدخل البشري والثقة.

في معظم الهياكل ، لا يمكن الوثوق بسلطات الفرز فيما يتعلق بالنزاهة (لا يمكنها التلاعب في فرز الأصوات) ، ولكنها موثوق بها من أجل الحيوية - إذا كانت غير متصلة بالإنترنت ، فلا يمكنها حساب النتيجة النهائية ، مما يؤدي إلى تأخير التصويت إلى أجل غير مسمى. في بعض الهياكل ، يتم الوثوق بهم أيضًا في الحفاظ على الخصوصية - أي أنهم يعرفون كيف يصوت كل فرد ، ولكن من المتوقع أن ينشروا نتائج التصويت دون الكشف عن هذه المعلومات.

في حين أن السلطات الإحصائية هي افتراض معقول (وضروري) في العديد من سيناريوهات العالم الحقيقي ، فهي ليست مثالية في بيئة blockchain ، حيث يتمثل هدفنا في تقليل الثقة وضمان مقاومة الرقابة.

يستكشف Cicada أحد الاتجاهات العديدة في مجال خصوصية التصويت على السلسلة ويكمل الكثير من الأبحاث التي تجريها مجموعات أخرى. كما ذكرنا سابقًا ، يرتبط Cicada ارتباطًا وثيقًا بتقنيات عضوية المجموعة المجهولة مثل إشارات ZK وإثبات تخزين ZK ومبطلات حد المعدل. يمكن لـ Cicada أيضًا دمج مدقق الإثبات المتفائل الذي اقترحه فريق Nouns Vortex لتقليل عبء الغاز على الناخبين.

هناك أيضًا فرصة لتكييف Cicada لدعم مخططات التصويت المختلفة (مثل التصويت الموزون ، والتصويت التربيعي) - قد تكون المخططات الأكثر تعقيدًا مكلفة للغاية من الناحية الحسابية بالنسبة إلى Ethereum mainnet ، ولكنها قد تكون عملية في L2. مع وضع ذلك في الاعتبار ، نرحب بمساهماتك وشوكك واقتراحاتك حول المكان الذي يجب أن تأخذ فيه Cicada بعد ذلك.

  • شكر وتقدير: تم تطوير السيكادا بالاشتراك مع جوزيف بونو. بفضل Andrew Hall للحصول على معلومات أساسية عن الخلفية التاريخية لخصوصية التصويت. شكرًا أيضًا لروبرت هاكيت على ملاحظاته حول هذه المقالة. شكر خاص لستيفاني زين على التحرير. *
شاهد النسخة الأصلية
المحتوى هو للمرجعية فقط، وليس دعوة أو عرضًا. لا يتم تقديم أي مشورة استثمارية أو ضريبية أو قانونية. للمزيد من الإفصاحات حول المخاطر، يُرجى الاطلاع على إخلاء المسؤولية.
  • أعجبني
  • تعليق
  • مشاركة
تعليق
0/400
لا توجد تعليقات
  • تثبيت
تداول العملات الرقمية في أي مكان وفي أي وقت
qrCode
امسح لتنزيل تطبيق Gate.io
المنتدى
بالعربية
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • ไทย
  • Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)