كيف تضيف رقمين لا يُسمح لك برؤيتهما
سُئلت هذا في عطلة نهاية الأسبوع وقدمت إجابة سيئة، لذلك ذهبت وقرأت بشكل صحيح.
يستخدم Hedger التشفير المتماثل (homomorphic encryption) بناءً على ElGamal على ECC. النسخة المبسطة مما يقدمه هذا هي: يمكنك إجراء عمليات حسابية على القيم المُشفّرة دون فك تشفيرها أولًا.
لذلك يمكن للعقد الذي يحوز على رصيدين مُشفّرين أن يُنتج المجموع المُشفّر بشكل صحيح، دون أن يتعلم أيًّا من الرقمين أو المجموع.
هذا يبدو كحيلة سحرية وليس كذلك. إنها خاصية لكيفية بنية التشفير، ويمتلك ElGamal هذه الخاصية للضرب، والتي تقابل الإضافة في الأس. وقد كان ذلك معروفًا منذ الثمانينيات.
لماذا تجمعه مع براهين المعرفة الصفرية بدلًا من استخدام أحدهما وحده.
لأن التشفير المتماثل يخبرك أن المعادلات يُمكن إجراؤها على قيم مخفية. لكنه لا يخبرك أن الشخص الذي يقوم بها فعل ذلك بأمانة، ولا أن المُدخلات كانت صحيحة أصلًا. هذا ما تفعله البراهين.
لذا فكل بدائيّة تتعامل مع جانب: إحداهما للحسابات السرّية، والأخرى للتحقق من الصحة بشكل قابل للإثبات، ولا تعوّض إحداهما الأخرى. أغلب أنظمة الخصوصية تعتمد على البراهين وحدها وتدفع ثمن ذلك بتعقيد الدوائر، لأنك عندها تثبت عبارات عن حسابات كان يجب أيضًا إخفاؤها.
تنبيه الصراحة: مخططات التشفير المتماثل ليست مجانية. إنها جزئية التماثل، وليست التشفير المتماثل الكامل (fully homomorphic encryption) الذي يكتب عنه الناس مقالات متحمسة. والفرق هو أن المخطط الجزئي يدعم عمليات معيّنة بدل حساب تعسفي. وهذه القيود بالضبط هي سبب أنها سريعة بما يكفي لتعمل في المتصفح خلال أقل من ثانيتين.
وهذا هو المقايضة التي كنت سأختارها أيضًا. الاستخدام العام وغير قابل للاستعمال لا يفيد أحدًا.
#dusk @Dusk $DUSK