#dusk $DUSK قبل فترة من حوافز اختبار Dusk، واجهتني خطوة التحقق من مصدر الأموال وتم رفض الإيداع. وقتها كنتُ مستعدًا تمامًا، حتى جهزتُ سجلات عناوين المعاملات لستة أشهر—كنت ألعب Zcash من قبل وأعرف نوعًا مشابهًا من إثباتات الامتثال؛ مجرد إرسال لقطات شاشة كان يستغرق 20 دقيقة، وحرق الغاز كان قرابة 0.1 وحدة عملة، والأهم أنني كشفت كامل أرصدة عنواني لجهة التحقق. كلما واجهت متطلبات من هذا النوع كنتُ أتعب جدًا. في النهاية، في محفظة Dusk نقرتُ ثلاث مرات فقط، وتجاوزت عملية التحقق خلال دقيقتين—حتى إن جهة التحقق لم ترَ كم عملة اختبارية بقيت في عنواني.
كان فهمي السابق لـ Dusk مقتصرًا على أنها “بلوكشين خصوصية”. وكنت أظن، مثلها مثل سلاسل مجهولة أخرى، أنها للتعامل مع الخصوصية تتخلى عن إمكانية التدقيق. أمضيت قرابة ساعتين أتصفح كود Rust الخاص بنموذج معاملات Phoenix، حتى حَكَّت عيني من شدة التركيز، ثم اتضح لي أن تصميمها فعلاً يضرب في نقطة الألم.
لم تُنشئ أي مفتاح “كلّه علني/كلّه مجهول” على طريقة الأبيض والأسود. بدلًا من ذلك، في طبقة إثباتات zk-SNARKs، نفذت تصميم “شهادة تشفير قابلة للتحقق” (VEP)، وباستخدام خوارزمية Plookup تم ضغط حجم نص الإثبات الفردي إلى أقل من 1KB. سلاسل ZK الخصوصية الأخرى التي تقدم إثباتات مشابهة تحتاج على الأقل لتوليد إثباتات بحجم 10KB أو أكثر، والتهيئة/التحقق يستغرق عشرات الثواني. أما التحقق على السلسلة في Dusk فيحتاج فقط إلى 2 ميلي ثانية: إذا كنت تريد إثبات أن الأموال جاءت من بورصة/تبادل شرعي، فأنت تولّد إثباتًا موجّهًا لهذه عملية الإيداع فقط، دون الحاجة إلى كشف العنوان الكامل أو إجمالي الرصيد أو أي سجلات معاملات أخرى. بل ولا حتى يلزم إخبارهم بعنوان الاستلام لديك. يومها كان الغاز الذي استهلكته أثناء توليد الإثبات 0.0003 DUSK فقط، أرخص من التحويل العادي. جهة التحقق تستطيع التحقق على السلسلة عبر استدعاء عقد (كونتراكت) للتحقق، وحتى خطوات رفع لقطات الشاشة استغنت عنها. وعند تصفح معرّف المعاملة في متصفح البلوكشين، سترى أن المعاملة تحتوي فقط على تجزئة الإثبات، ولا يوجد أي جزء بيانات بنص صريح.
سابقًا، كانت جميع سلاسل الخصوصية عالقة في مأزق “إن أردت الخصوصية فلن تتمكن من الامتثال، وإن التزمت بالامتثال ستفقد الخصوصية”. أما تصميم Dusk فيعيد زمام التحكم بالخصوصية بالكامل للمستخدم: إذا أردت إخفاء المعاملة فلن يجد أحد أي نص صريح على السلسلة، وإذا أردت تقديم إثبات امتثال فلن تعرض إلا الحد الأدنى من المعلومات الضرورية للطرف الآخر، ولا يتسرب أي مقدار زائد من الخصوصية.
هل مررتم أنتم أيضًا بموقف محرج عندما تضطرون لكشف كل الأرصدة فقط من أجل الحصول على تحقق/اعتماد على السلسلة؟ @Dusk
كان فهمي السابق لـ Dusk مقتصرًا على أنها “بلوكشين خصوصية”. وكنت أظن، مثلها مثل سلاسل مجهولة أخرى، أنها للتعامل مع الخصوصية تتخلى عن إمكانية التدقيق. أمضيت قرابة ساعتين أتصفح كود Rust الخاص بنموذج معاملات Phoenix، حتى حَكَّت عيني من شدة التركيز، ثم اتضح لي أن تصميمها فعلاً يضرب في نقطة الألم.
لم تُنشئ أي مفتاح “كلّه علني/كلّه مجهول” على طريقة الأبيض والأسود. بدلًا من ذلك، في طبقة إثباتات zk-SNARKs، نفذت تصميم “شهادة تشفير قابلة للتحقق” (VEP)، وباستخدام خوارزمية Plookup تم ضغط حجم نص الإثبات الفردي إلى أقل من 1KB. سلاسل ZK الخصوصية الأخرى التي تقدم إثباتات مشابهة تحتاج على الأقل لتوليد إثباتات بحجم 10KB أو أكثر، والتهيئة/التحقق يستغرق عشرات الثواني. أما التحقق على السلسلة في Dusk فيحتاج فقط إلى 2 ميلي ثانية: إذا كنت تريد إثبات أن الأموال جاءت من بورصة/تبادل شرعي، فأنت تولّد إثباتًا موجّهًا لهذه عملية الإيداع فقط، دون الحاجة إلى كشف العنوان الكامل أو إجمالي الرصيد أو أي سجلات معاملات أخرى. بل ولا حتى يلزم إخبارهم بعنوان الاستلام لديك. يومها كان الغاز الذي استهلكته أثناء توليد الإثبات 0.0003 DUSK فقط، أرخص من التحويل العادي. جهة التحقق تستطيع التحقق على السلسلة عبر استدعاء عقد (كونتراكت) للتحقق، وحتى خطوات رفع لقطات الشاشة استغنت عنها. وعند تصفح معرّف المعاملة في متصفح البلوكشين، سترى أن المعاملة تحتوي فقط على تجزئة الإثبات، ولا يوجد أي جزء بيانات بنص صريح.
سابقًا، كانت جميع سلاسل الخصوصية عالقة في مأزق “إن أردت الخصوصية فلن تتمكن من الامتثال، وإن التزمت بالامتثال ستفقد الخصوصية”. أما تصميم Dusk فيعيد زمام التحكم بالخصوصية بالكامل للمستخدم: إذا أردت إخفاء المعاملة فلن يجد أحد أي نص صريح على السلسلة، وإذا أردت تقديم إثبات امتثال فلن تعرض إلا الحد الأدنى من المعلومات الضرورية للطرف الآخر، ولا يتسرب أي مقدار زائد من الخصوصية.
هل مررتم أنتم أيضًا بموقف محرج عندما تضطرون لكشف كل الأرصدة فقط من أجل الحصول على تحقق/اعتماد على السلسلة؟ @Dusk
