مصدر: نويمي جلايسر، a16z crypto
في مجال التشفير، هناك دائمًا تحدي واحد، وهو كيفية ربط المفاتيح المشفرة (مثل المفتاح العام) بشكل صحيح بهوية محددة (مثل شخص ما أو منظمة). المفتاح في وجود طريقة علنية وموحدة لعرض العلاقة بين الهوية والمفتاح العام، حتى يمكن للجميع استخدام هذه المفاتيح العامة بثقة لتشفير المعلومات.
إذا لم يكن هناك علاقة واضحة بهذا الشكل، فقد يتعذر على الآخرين تحديد من ينتمي فعلًا إلى مفتاح عام معين، مما قد يؤدي إلى إرسال المعلومات المشفرة إلى الشخص الخطأ وبالتالي يتسبب في تسريب المعلومات أو نتائج أخرى جسيمة. في Web3، هذه المشكلة ما تزال قائمة.
بالنسبة للمشكلة المذكورة أعلاه، هناك حالياً ثلاثة حلول: دليل المفتاح العام، التشفير القائم على الهوية (IBE)، والتشفير القائم على التسجيل (RBE). تتمتع هذه الطرق الثلاثة بمزايا مختلفة فيما يتعلق بالمجهولية والتفاعلية والكفاءة. على سبيل المثال، يتطلب IBE أساس ثقة قوي، ولكن في بعض الحالات، يظهر IBE أداءً أفضل في المجهولية والكفاءة. يهدف هذا المقال إلى استكشاف تطبيقات هذه الطرق الثلاثة في كتلة السلسلة، ومقارنة مزاياها وعيوبها.
ثلاث طرق
عمومًا، الطريقة الشائعة لربط المفتاح السري بمعلومات الهوية هي استخدام البنية التحتية للمفتاح العام (PKI)، حيث يكون الجزء الأساسي مجلد مفتاح عام. في هذه الطريقة، يحتاج الشخص الذي يرسل المعلومات إلى التفاعل مع جهة ثالثة موثوق بها (وهي الجهة التي تدير هذا الدليل، وعادة ما تكون السلطة الراجحة لمنح الشهادات) لإرسال المعلومات المشفرة.
ومع ذلك، في بيئة Web2، يتطلب الحفاظ على هذا الدليل العام تكلفة عالية وعمليات معقدة. بالإضافة إلى ذلك، يواجه المستخدمون خطر إساءة استخدام السلطة من قبل جهات إصدار الشهادات.
提出了一些替代方案,以解决البنية التحتية للمفتاح العام(PKI)存在的问题。在1984年,Adi Shamir 提出了基于身份的التشفير(IBE),其中一方的标识(例如电话号码、电子邮件或ENS域名)可以直接用作مفتاح عام。这种方法消除了维护مفتاح عام目录的需要,但引入了一个新的问题:必须依赖一个受信任的第三方(المفتاح السري生成器)来生成المفتاح الخاص。
في عام 2001، قدم Dan Boneh و Matthew Franklin أول بنية IBE عملية، ولكن هذه التقنية لم تحظى بانتشار واسع، وتستخدم بشكل رئيسي في بعض النظم البيئية المغلقة مثل بيئات النشر الخاصة بالشركات أو الحكومات. قد يكون أحد أسباب عدم انتشار IBE على نطاق واسع هو الاعتماد على افتراض الثقة القوي، أي الثقة في توليد المفتاح السري من قبل جهة ثالثة.
ومع ذلك، وكما سيتم مناقشته في هذا النص فيما بعد، يمكن حل مشكلة الثقة هذه عن طريق الاعتماد على أطول موثوق به (وهو عدد قانوني من المشاركين)، ويمكن لتكنولوجيا سلسلة الكتل تحقيق ذلك بسهولة.
مزايا وعيوب
عند مقارنة هذه الخطط العديدة للتشفير، يجب أن نأخذ في الاعتبار العديد من العوامل المختلفة، وأنا أقوم بعمل اثنين من الافتراضات حيال هذا.
المستخدمون لن يقوموا بتحديث أو إلغاء المفتاح السري الخاص بهم: وهذا يعني أنه من المفترض في المناقشة أن المفتاح السري الخاص بكل مستخدم هو ثابت ولا يتغير.
العقود الذكية لا تستخدم أي خدمات توافر البيانات خارج السلسلة (DAS) أو بيانات الكتلة: وهذا يعني أن العقد الذكي يعتمد تمامًا على بيانات داخل السلسلة، دون الحاجة إلى خدمات بيانات خارج السلسلة أو تخزين بيانات إضافي.
دليل المفتاح العام
任何人都可以通过调用العقد الذكي,将一个没有被别人占用的 ID 也就是 (id, pk) 条目添加到داخل السلسلة目录中。
البنية التحتية الرئيسية للمفتاح العام هي العقد الذكي المستخدم للحفاظ على الدليل الذي يربط بين هوية (ID) ومفتاحها العام المقابل. يتم نشر هذا الدليل علنًا ولا يعتمد على طرف ثالث مركزي. على سبيل المثال ، ENS يحتفظ بمطابقة اسم النطاق (أي الهوية) مع بيانات ميتا ذات الصلة ، بما في ذلك العنوان المحلَّل لهذا الاسم (يمكن توصيل المفتاح العام من خلال هذه العناوين المرتبطة). ENS هو نظام أكثر تعقيدًا ، حيث يسجل ليس فقط المفتاح العام بل يخزن أيضًا بيانات ميتا أخرى. وظيفة البنية التحتية الرئيسية للمفتاح العام هي نسبيًا أبسط: يحتاج العقد الذكي فقط إلى الحفاظ على قائمة تسجيل لكل هوية مع المفتاح العام المقابل.
عندما يرغب المستخدم في تسجيل هويته، يحتاج في البداية إلى إنشاء زوج من المفتاح العام والمفتاح الخاص (أو استخدام المفتاح السري الذي تم بالفعل إنشاؤه)، ثم إرسال معرف هويته والمفتاح العام إلى العقد الذكي (ربما مع دفع رسوم معينة). سيقوم العقد الذكي بالتحقق مما إذا كان هذا المعرف قد تم تسجيله بالفعل من قبل شخص آخر. إذا لم يكن هناك تسجيل، سيقوم العقد الذكي بإضافة هذا المعرف والمفتاح العام إلى الدليل. بمجرد الانتهاء من التسجيل، يمكن لأي شخص الاستعلام العقد الذكي للحصول على المفتاح العام المقابل لمعرف معين، من أجل تشفير الرسائل المرسلة إلى هذا المستخدم. إذا كان المرسل قد قام بتشفير الرسائل إلى هذا المستخدم مسبقًا ولديه بالفعل المفتاح العام الخاص به، فلن يكون هناك حاجة لطلب المفتاح العام من العقد الذكي مرة أخرى. بعد الحصول على المفتاح العام، يمكن للمرسل استخدامه كالمعتاد لتشفير الرسائل، ثم إرسال الرسالة المشفرة إلى المستلم، الذي بدوره سيستخدم المفتاح الخاص المقابل لفك تشفير الرسالة واستعادة النص الأصلي.
دعونا نلقي نظرة على مزايا وعيوب هذه الطريقة:
مزايا وعيوب التشفير غير التفاعلي: عملية فك التشفير لا تتطلب تفاعل مع الأطراف الأخرى، بحيث يمكن للشخص الذي يقوم بفك التشفير أن يكمل العملية بمفرده. غير موجز (Not succinct): قد يكون النظام غير موجز في بعض الجوانب، مما قد يعني تعقيدًا عاليًا، وحجم بيانات كبير، أو حاجة لمزيد من الموارد. الشفافية: قد يكون النظام شافٍ في بعض الجوانب، مما يعني أن العمليات مفتوحة وقابلة للفحص. التشفير التفاعلي: قد تتطلب عملية التشفير التفاعل مع الأطراف الأخرى إلى حد ما، مما يزيد من التعقيد. هوية عشوائية: يمكن للمستخدمين اختيار أو استخدام أي هوية عشوائية دون قيود محددة للتنسيق أو القواعد. الراسل غير مجهول: قد لا يتمكن هوية الراسل من البقاء مجهولة تمامًا في النظام.
التشفير القائم على الهوية (IBE)
يتم تمثيل هوية المستخدم بواسطة مفتاحهم العام، وهذا يعني أن المفتاح العام ليس فقط للتشفير، بل يمكن أن يكون أيضًا معرفًا فريدًا للمستخدم. ومع ذلك، يتطلب هذا الأسلوب الاعتماد على طرف ثالث أو أكثر يمكن الوثوق بهم، حيث يقومون بتوليد وتوزيع المفتاح السري. بالإضافة إلى ذلك، يجب على هؤلاء الجهات الثالثة الاحتفاظ بالمفتاح السري الرئيسي طوال دورة حياة النظام، ويمكن استخدام هذا المفتاح الرئيسي في بعض الحالات لفك التشفير أو إجراءات أخرى مهمة.
في نظام IBE، لا يقوم المستخدم بإنشاء زوج من المفاتيح العامة والخاصة بنفسه كما في أنظمة التشفير التقليدية. بدلاً من ذلك، يحتاج المستخدم إلى التسجيل باستخدام مولد مفاتيح سري موثوق. يحتوي مولد المفتاح السري على زوج من المفاتيح الرئيسية (تتضمن المفتاح الخاص الرئيسي msk والمفتاح العام الرئيسي mpk). عندما يقدم المستخدم هويته، سيقوم مولد المفتاح السري باستخدام المفتاح الخاص الرئيسي msk وهويته لحساب مفتاح خاص خاص به. يجب توصيل المفتاح الخاص الذي تم إنشاؤه بشكل آمن إلى المستخدم، وعادة ما يتم ذلك باستخدام بروتوكول تبادل المفتاح السري لإنشاء هذه القناة الآمنة.
بالنسبة للمرسل، فإن نظام IBE يبسط عملية التشفير. يحتاج المرسل فقط إلى تنزيل المفتاح العام الرئيسي لمولد المفتاح السري (MPK) مرة واحدة، ثم يمكنه استخدام الهوية لتشفير الرسائل. بالنسبة للمستلم، فإن فك التشفير سهل أيضًا. يمكن للمستخدمين المسجلين استخدام المفتاح الخاص الذي تم إرساله إليهم بواسطة مولد المفتاح السري لفك التشفير للرسائل المشفرة التي تم استلامها.
يجب الاحتفاظ بالمفتاح الرئيسي لمولد المفتاح السري (MSK) لفترة طويلة لأنه يحتاج إلى إنشاء مفاتيح خاصة جديدة باستمرار خلال تشغيل النظام. هذا يختلف عن بعض أنظمة SNARK التي تنشأ خلال عملية التثبيت الموثوق بها ولكن يمكن حذفها بعد الانتهاء من التثبيت. وفي نظام IBE، لا يمكن حذف المفتاح الرئيسي للمولد السري كما هو الحال في SNARK بعد التهيئة الأولية.
即使主المفتاح الخاص(msk)保管得当,每个注册用户仍然需要信任密钥生成器不会读取他们的消息。这是因为密钥生成器可以随时保存一份用户المفتاح الخاص的副本,或者利用主المفتاح الخاص重新计算出用户的المفتاح الخاص。
يمكن أن يوفر مُنشِّئ المفتاح السري مفتاحًا خاصًا غير صحيح أو محدودًا للمستخدم، ويمكن أن يفك تشفير معظم الرسائل ولكن لا يمكنه فك تشفير رسائل معينة محددة التي تم تعيينها بواسطة مُنشِّئ المفتاح السري. هذا يعني أن مُنشِّئ المفتاح السري لديه القدرة على التحكم في قدرة المستخدم على فك تشفير الرسائل، مما قد يؤدي إلى درجة معينة من التحكم أو القيود على اتصالات المستخدم.
ميزات على داخل السلسلة وعيوب: التخزين الثابت / الحد الأدنى: يحتاج النظام إلى كتلة داخل السلسلة إلى كمية تخزين صغيرة أو ثابتة، ولا يزيد مع مرور الوقت. افتراض الثقة القوي: يعتمد النظام على جهة ثالثة أو أكثر موثوق بها، مما يعني أنه يجب أن يكون هناك ثقة قوية في هذه الأطراف. إذا تم تدمير هذه الأطراف أو أصبحت غير موثوقة، فإن أمان النظام سيكون مهددًا. العدم التفاعلي للتشفير: عملية التشفير لا تتطلب تفاعل مع الأطراف الأخرى، ويمكن للمرسل إكمال عملية التشفير بشكل مستقل. الإرسال المجهول: يمكن للنظام الحفاظ على هوية المرسل مجهولة، مما يحمي الخصوصية. معرف أي: يمكن للمستخدمين اختيار معرف أو استخدام أي معرف، دون تقييد بتنسيق أو قواعد معينة.
التشفير (RBE)
مثل IBE ، في هذا النظام ، يعمل هوية المستخدم (مثل عنوان البريد الإلكتروني أو رقم الهاتف) كمفتاح عام لهم. ولكن على عكس IBE ، لم يعد هذا النظام يعتمد على طرف ثالث موثوق به أو مجموعة من quorum لإدارة المفتاح السري. بدلاً من ذلك ، تم استبدال هذا الطرف الثالث الموثوق به بمشرف المفتاح.
سأناقش في هذا القسم طريقة بناء RBE فعالة، لأنها، بحسب معرفتي، لها ميزة ملحوظة مقارنة بالطرق الأخرى المستخدمة لبناء RBE الفعال، وهي أنه يمكن نشرها داخل السلسلة الكتلية، لأنها تعتمد على الحواسيب الزوجية بدلاً من الحواسيب الشبكية.
في نظام RBE ، ينشئ كل مستخدم مفتاحًا سريًا (بما في ذلك المفتاح العام والمفتاح الخاص) الخاص به. يحتاج المستخدمون أيضًا إلى حساب قيم تحديث معينة (مشار إليها في الرسم باعتبارها a) بناءً على مفتاحهم الخاص وسلسلة مرجعية عامة (CRS). تُستخدم هذه القيم التحديثية في عمليات أخرى في النظام. وجود سلسلة مرجعية عامة (CRS) يعني أن إعداد النظام ليس بدون ثقة تامة. ومع ذلك ، تستخدم عملية إنشاء CRS طريقة بناء القوة المسماة بـ tau. يمكن لهذه الطريقة البنائية القيام بها على السلسلة من خلال تعاون عدة أطراف. طالما أن هناك مشاركًا واحدًا على الأقل صادقًا ، فإن CRS هذه آمنة.
تم تكوين العقد الذكي لمستخدمي الكمية المتوقعة N ، حيث يتم تقسيم هؤلاء المستخدمين إلى مجموعات مختلفة في دلاء مختلفة. عندما يقوم المستخدمون بالتسجيل في النظام ، يحتاجون إلى إرسال هويتهم الشخصية والمفتاح العام وقيمة التحديث إلى العقد الذكي. سيقوم العقد الذكي بالحفاظ على مجموعة من المعلمات العامة pp ، وهذه المعلمات العامة مختلفة عن سلسلة المرجع العامة (CRS) المذكورة سابقًا. يمكن فهم pp على أنها موجز موجز لمفاتيح العام المسجلة في النظام. عندما يستقبل العقد الذكي طلب تسجيل المستخدم ، سيقوم بفحص قيمة التحديث للتحقق من صحتها. بمجرد تحقق الصحة ، سيقوم العقد الذكي بضرب مفتاح المستخدم العام في دلاء pp المعنية. يعادل هذا الإجراء إدراج مفتاح عام للمستخدم الجديد في مجموعة المعلمات العامة في النظام لاستخدامه في العمليات التالية.
في نظام الكتلة المعتمد على التشفير (RBE) ، يحتاج المستخدمون إلى الاحتفاظ ببعض المعلومات محليًا تستخدم لمساعدتهم في فك تشفير الرسائل. عندما يتم تسجيل مستخدم جديد في نفس المجموعة التي ينتمون إليها ، يجب تحديث هذه المعلومات. يمكن للمستخدمين متابعة سلسلة الكتل لتحديث هذه المعلومات يدويًا ، أو يمكن للعقود الذكية توفير معلومات حديثة حول المستخدمين الجدد المسجلين حديثًا ، بحيث يمكن للمستخدمين الحصول على هذه التحديثات بانتظام لضمان أن معلومات فك تشفيرهم هي الأحدث.
في هذا النظام ، يحتاج المرسل فقط إلى قيام شيئين:
تحميل سلسلة المرجع العمومية (CRS): هذا مطلوب فقط للتنزيل مرة واحدة، وبعد ذلك لا يلزم تحديثه مرة أخرى.
تحميل المعلمات العامة: يحتاج المرسل إلى تنزيل المعلمات العامة الأحدث بين الحين والآخر. بالنسبة للمرسل، فإن الأمر المهم هو أن تحتوي هذه المعلمات العامة على مفتاح عام للمستلم، دون الحاجة إلى تنزيل الإصدار الأحدث في كل مرة، بل يكفي أن يعثر على مفتاح عام للمستلم.
ثم ، يمكن للمرسل استخدام CRS المحمّل والمعلمات العامة ومعرّف هوية المستلم ، لتشفير الرسالة وإرسالها إلى المستلم. هذا يعني أن المرسل لا يحتاج إلى تحديث البيانات بشكل متكرر ، بل يجب فقط التأكد من وجود مفتاح عام للمستلم في المعلمات العامة.
عندما يتلقى المستخدم رسالة مشفرة، فإنه سيقوم أولاً بفحص المعلومات المساعدة المخزنة محليًا لديه، ليتحقق مما إذا كان هناك قيمة تتوافق مع شرط ما (مثل القيمة التي تمت المصادقة عليها)، إذا لم يجد المستخدم قيمة تتوافق مع الشرط محليًا، فهذا يعني أنهم بحاجة إلى الحصول على أحدث معلومات التحديث من العقد الذكي، بمجرد أن يجد المستخدم قيمة مساعدة مناسبة، يمكنهم استخدام هذه القيمة مع المفتاح الخاص الخاص بهم لفك تشفير النص المشفر الذي تم استلامه، وبالتالي استعادة الرسالة الأصلية.
من الواضح أن هذا الحل أكثر تعقيداً من الحلول الأخرى الاثنين. ومع ذلك، فإنه يتطلب أقل تخزين داخل السلسلة من دليل المفاتيح العامة ويتجنب أيضًا افتراض الثقة القوية في IBE.
المعلمات الموجزة:
لديها تشفير تفاعلي معين:
فك تشفير تفاعلي معين:
المرسل مجهول:
الشفافية:
مجموعة الهوية المحدودة:
مستلم مجهول: