تخطي إلى المحتوى
سجّل الدخول باستخدام Zcash
متوسط - 7 دقائق
TL;DR
- سجّل الدخول عبر إثبات أنك تتحكم في عنوان Zcash، بدلًا من استخدام كلمة مرور
- هناك تصميمان مستخدمان: توقيع تحدٍّ، أو إرسال دفعة محمية مع رمز داخل المذكرة
- لأن العناوين المحمية تُخفي الرصيد والسجل، فإن إثبات التحكم لا يكشف معلوماتك المالية
- هذا النمط ما يزال في مراحله المبكرة. لا يوجد معيار مُعتمد بعد، كما أن التطبيقات لا تعمل بشكل متبادل فيما بينها
لمن هذا؟
- المطورون الذين يريدون تسجيل دخول بدون كلمة مرور من دون جمع بيانات شخصية
- المستخدمون الذين يفضّلون عدم تسليم عنوان بريدهم الإلكتروني لكل موقع
- أي شخص يريد تسجيل الدخول من دون ربط سجله المالي بحساب
المشكلة
معظم خيارات تسجيل الدخول تسرّب شيئًا ما:
- كلمات المرور والبريد الإلكتروني ينشئان حسابًا مرتبطًا بهويتك، وكلاهما ينتهي به المطاف ضمن بيانات التسريبات
- تسجيل الدخول الاجتماعي يُخبر مزود الهوية بكل مكان تسجّل فيه الدخول ومتى
- تسجيل الدخول بالمحفظة على السلاسل الشفافة أسوأ مما يبدو. ربط المحفظة قد يمنح الموقع رصيدك الكامل وسجل معاملاتك بالكامل، بشكل دائم
في العادة، أنت تختار بين السهولة والإفصاح.
لماذا Zcash؟
تفصل Zcash بين إثبات التحكم وكشف الوضع المالي:
- العناوين المحمية تُبقي الأرصدة وسجل المعاملات خاصين، لذا فإن إثبات أنك تملك أحدها لا يقول شيئًا عمّا تملكه
- المذكرات المشفرة يمكن أن تحمل رمز تسجيل دخول يُستخدم مرة واحدة بشكل خاص داخل المعاملة
- Viewing keys تتيح الإفصاح الانتقائي، بحيث يمكن منح التطبيق صلاحية قراءة لما يحتاجه بالضبط ولا شيء أكثر
كيف يعمل
ظهر نهجان. وكلاهما ينتهي بأن يحتفظ التطبيق بمعرّف ثابت لك ومن دون كلمة مرور.
النهج 1: توقيع تحدٍّ
- يُنشئ التطبيق تحديًا عشوائيًا للاستخدام مرة واحدة
- توقّع محفظتك ذلك التحدي بالمفتاح الكامن وراء عنوانك
- يتحقق التطبيق من التوقيع ويسجّلك للدخول
لا يتم بث أي شيء، لذلك لا توجد رسوم ولا حاجة لانتظار block. المواصفة ذات الصلة هي ZIP 304, Sapling Address Signatures، وهي ما تزال مسودة، لذا يختلف دعم المحافظ لتوقيع الرسائل.
النهج 2: أثبت ذلك عبر دفعة محمية
- يُنشئ التطبيق رمزًا يُستخدم مرة واحدة ويعرض طلب دفع
- ترسل معاملة محمية صغيرة مع ذلك الرمز داخل المذكرة
- يراقب التطبيق المذكرة، ويطابق الرمز، ثم يسجّلك للدخول
هذا يعمل مع المحافظ التي تدعم المذكرات بالفعل اليوم، وهي معظمها. والمقابل هو أنه يكلّف رسوم شبكة وتنتظر التأكيد.
الحفاظ على خصوصية العنوان
ليس على التطبيق أن يخزّن عنوانك لكي يتعرّف عليك. بعض التطبيقات تُجري له hash مع قيمة خاصة بالتطبيق، بحيث يرى كل موقع معرّفًا مختلفًا لكنه ثابت للمستخدم نفسه. هذا يمنع المواقع من مقارنة البيانات فيما بينها لربط حساباتك.
المفاضلات
من المهم فهمها قبل أن تبني عليه أو تعتمد عليه.
| التحدي الموقّع | دفعة محمية |
|---|
| التكلفة | مجاني | رسوم شبكة لكل تسجيل دخول |
| السرعة | فوري | ينتظر التأكيد |
| دعم المحافظ | محدود، ZIP 304 ما يزال مسودة | واسع، يحتاج فقط إلى المذكرات |
| هل يترك سجلًا على السلسلة | لا | نعم، توجد معاملة |
قيود مشتركة:
- لا توجد استعادة للحساب افتراضيًا. فقدان المفتاح يعني فقدان الحساب، ما لم يصمم التطبيق مسارًا للاستعادة
- إعادة استخدام العنوان قد تربطك. استخدام العنوان نفسه عبر مواقع كثيرة يعيد إنشاء مشكلة التتبع، ولهذا السبب تهم المعرّفات الخاصة بالتطبيق
- لا يوجد معيار مُعتمد. لكل مشروع آليته الخاصة، لذلك فإن تسجيل الدخول المبني لأحدها لا يعمل مع الآخر
- ليس إخفاءً للهوية بحد ذاته. فهو يخفي معلوماتك المالية عن التطبيق، لكن التطبيق لا يزال قادرًا على إنشاء ملف تعريفي لما تفعله بمجرد دخولك
أخطاء شائعة يجب تجنبها
- إعادة استخدام رمز التحدي. يجب أن يكون كل رمز للاستخدام مرة واحدة وأن تنتهي صلاحيته بسرعة، وإلا يمكن إعادة استخدام الرمز الذي تم التقاطه
- مطالبة المستخدمين بإرسال مبلغ ذي قيمة لتسجيل الدخول. الدفعة هي وسيلة إثبات، لذلك يجب أن يكون المبلغ ضئيلًا جدًا
- تخزين العنوان الخام عندما يكون المعرّف الخاص بالتطبيق كافيًا لأداء المهمة نفسها
- افتراض أن توقيع الرسائل يعمل في كل مكان. تحقّق من المحافظ التي يملكها مستخدموك فعلًا
- التعامل مع المذكرة على أنها سر بعد وقوع الحدث. هي تثبت أن المرسل قام بالفعل، لكنها ليست كلمة مرور
مشاريع تستكشف هذا
تم بناء هذه المشاريع ضمن مسار Zcash Login في ZecHub Hackathon 3.0. وهي تجارب أكثر من كونها منتجات مكتملة، وتُظهر كيف يمكن بناء الفكرة نفسها بطرق مختلفة جدًا.
- ZecAuth - بروتوكول ربط محفظة لـ Zcash، بروح مشابهة لما يفعله WalletConnect في أماكن أخرى. يعرض التطبيق رمز QR أو رابط
zecauth:// يحمل تحديًا بالإضافة إلى القدرات التي يطلبها، مثل تسجيل الدخول أو طلبات الدفع أو صلاحية العرض. لا توجد معاملة، ولا رسوم، ولا تفاعل مع السلسلة. ويأتي معه توصيف بروتوكول مكتوب إلى جانب الشيفرة
- ZShield - يحوّل عنوانًا محميًا إلى W3C DID وهوية OpenID Connect. يُنشئ المتصفح زوج مفاتيح، ويصدر الخادم nonce عبر واجهة بأسلوب ZIP 304، ثم توقّعه المحفظة، ويُرجع الخادم JWT. وبما أن النتيجة متوافقة مع OIDC، يمكن للتطبيقات القائمة استخدامها من دون تكامل مخصص
- ZecPass - يثبت الملكية عبر مذكرة موقّعة، ومبني بحيث لا يتعلم التطبيق عنوان المستخدم مطلقًا. يشتق hash ضمن نطاق التطبيق لاستخدامه كمعرّف ثابت، ويُبقي التحديات أحادية الاستخدام ومقيّدة زمنيًا، ويوفّر زر React جاهزًا للإضافة مع مكتبة تحقق لـ Node
- Portal - تسجيل دخول عبر إرسال معاملة محمية مع رمز يُستخدم مرة واحدة داخل المذكرة، ويعمل على mainnet. ويُعاد استخدام التدفق نفسه لفتح المحتوى المدفوع ولإرسال أو استقبال الأموال من خلال رابط
- ZcashMe - يستخدم دفعة محمية كإثبات للهوية، ويركز على الفجوة بين سطح المكتب والهاتف المحمول بحيث لا يتطلب تسجيل الدخول على الحاسوب المحمول إضافة متصفح
- ZBooks - أداة للمحاسبة والمدفوعات تتعامل مع تسجيل الدخول باستخدام Zcash باعتباره مكوّن مصادقة قابلًا لإعادة الاستخدام بدلًا من كونه المنتج نفسه، وتقرأ بيانات الخزينة عبر Unified Full Viewing Key
صفحات ذات صلة