الموجز
يسمح دليل المعرفة الصفرية لأحد الطرفين (المدقق) تحديد صحة المعلومات المقدمة من الطرف الآخر (المُثبت) دون معرفة محتوى المعلومات. على سبيل المثال، قد ترغب Binance (بينانس) في إثبات دعم أموال المستخدمين في الاحتياطي دون الكشف عن أرصدة المستخدمون الأفراد.
قد يمكن إنشاء "إثبات الاحتياطي" باستخدام شجرة Merkle التي تحمي من تزييف البيانات الداخلية، في هذه الحالة، وإجمالي صافي أرصدة العملاء، والتزامات منصة التداول تجاه مستخدميها. كما يمكن دمجها بدليل المعرفة الصفرية (بروتوكول إثبات المعرفة الصفرية) الذي يضمن قيام المستخدمين بالتحقق من أن أرصدتهم تشكل جزءًا من رصيد أصول المستخدم دون معرفة أرصدة الأفراد.
المقدمة
في ظل أحداث السوق، أصبح أمن أصول العملات الرقمية المحتجزة أمرًا بالغ الأهمية. يقدّر مستخدمو سلاسل البلوكشين، وبشدة، الشفافية والانفتاح ولكنهم يحبذون أيضًا الخصوصية والسرية، وهذا من شأنه أن يخلق معضلة عند إثبات احتياطيات الأموال التي يحتفظ بها الأمناء. وفي أغلب الحالات، توجد مقايضة بين الشفافية والثقة وسرية البيانات.
مع ذلك، لا يجب أن تكون هذه الحالة. من خلال دمج بروتوكولات إثبات المعرفة الصفرية مثل دليل المعرفة الصفرية (zk-SNARKs) باستخدام أشجار Merkle، يمكننا إيجاد حل فعال لكافة الأطراف.
ما هو إثبات المعرفة الصفرية؟
يسمح دليل المعرفة الصفرية لأحد الطرفين (المدقق) تحديد صحة المعلومات المقدمة من الطرف الآخر (المُثبت) دون معرفة محتوى المعلومات. لنلقِ نظرة على مثال.
لديك خزنة مغلقة وأنت فقط من تعلم طريقة فتحها. في هذا المثال بالتحديد، لا يمكن أخذ الخزنة أو دفعها أو فتحها بأي طريقة أخرى بخلاف معرفة الرقم السري. وهذه الحقيقة موثقة ومعروفة وتمّ التحقق منها من خلال أصدقائك المشاركين في التجربة.
تخبر صديقك أنك تعرف الرقم السري، ولكنك لا ترغب في إخباره بالرقم أو فتح الصندوق أمامه. توجد فتحة في أعلى الصندوق يستطيع صديقك وضع ملحوظة من خلالها. لتحويل ذلك إلى إثبات المعرفة الصفرية، يجب ألا يمتلك صديقك معلومات إضافية حول العملية بخلاف المعلومات المذكورة.
يمكنك أن تثبت لصديقك أنك تعرف الرقم السري من خلال فتح الصندوق، ومن خلال إخباره ما كان مكتوبًا في الملحوظة، ومن ثمّ إغلاق الصندوق مرة أخرى. ولم تكشف في أي وقت من الأوقات عن الرقم السري.
للمزيد من الأمثلة الأكثر تقدمًا، يُرجى الاطلاع على المقالة التالية، ما هو إثبات المعرفة الصفرية؟ وكيف يؤثر على سلسلة البلوكشين؟.
لماذا نستخدم إثبات المعرفة الصفرية؟
إثباتات المعرفة الصفرية مناسبة لإثبات شيء ما دون الكشف عن معلومات أو تفاصيل حساسة. قد تكون هذه الحالة إذا كنت لا ترغب في تقديم معلومات مالية أو شخصية يمكن استخدامها بطريقة غير مناسبة.
في مجال العملات الرقمية، بإمكانك إثبات أن تمتلك مفتاح خاص دون الكشف عنه أو التوقيع على شئ ما إلكترونيًا. قد ترغب منصة تداول العملات الرقمية إثبات حالة الاحتياطيات الخاصة بها دون الكشف عن معلومات سرية حول المستخدمين، بما في ذلك أرصدة حسابات الأفراد.
في هذه الحالات (وغيرها من الأمثلة)، قد يستخدم إثبات المعرفة الصفرية خوارزميات تأخذ مدخلات البيانات وتوفر إجابة "صواب" أم "خطأ" كمخرجات.
تعريف إثباتات المعرفة الصفرية باستخدام مصطلحات تقنية
يتبع إثبات المعرفة الصفرية، بعبارة تقنية، هيكل محدد من المعايير المعينة. قد تعرفنا من قبل على أدوار المُثبت والمدقق، ولكن يوجد أيضًا ثلاثة معايير يجب أن يتناولها إثبات المعرفة الصفرية:
الإكمال. إذا كانت المعلومات صحيحة، سيقتنع المدقق بالإثبات المقدم، دون الحاجة إلى أي معلومات أخرى أو التحقق.
السلامة. إذا كانت المعلومات خاطئة، لن يقتنع المدقق بحقيقة المعلومات الواردة في الإثبات المقدم.
المعرفة الصفرية. إذا كانت المعلومات صحيحة، لن يعلم المدقق بأي معلومات بخلاف صحة المعلومة فقط.
ما هو دليل المعرفة الصفرية؟
دليل المعرفة الصفرية (حجة المعرفة الموجزة غير التفاعلية للمعرفة الصفرية) هي بروتوكول إثبات يتبع مبادئ المعرفة الصفرية المحددة مسبقًا. في ضوء استخدام دليل المعرفة الصفرية، يمكنك إثبات معرفتك بقيمة التجزئة الأصلية (كما هو موضح في ما يلي) دون الكشف عن ماهيتها. بإمكانك أيضًا إثبات صحة المعاملة دون الكشف عن أي معلومات حول مبالغ محددة أو قيم أو عناوين معنية.
يُستخدم دليل المعرفة الصفرية ويتم التطرق إليه في مجال البلوكشين والعملات الرقمية. ولكنك قد تتساءل لماذا يقوم شخص ما باستخدام دليل المعرفة الصفرية في حين أنه يستطيع استخدام طريق زوج المفاتيح الخاصة والعامة من أجل تأمين المعلومات، إلا أنّه في الخيار الثاني، لن نتمكن من تطبيق الدليل الرياضي لضمان عدم تضمين أرصدة بقيمة سالبة ومبلغ شجرة Merkle.
في حالة احتياطيات منصات التداول، نرغب في إثبات دعم أرصدة العملاء بنسبة 1:1 دون الإعلان عن محددات الهوية وأرصدة كل حساب. علاوة على ذلك، جعلت تقنيات دليل المعرفة الصفرية من تزييف البيانات أمرًا مستبعدًا.
ما هي شجرة Merkle؟
يتطلب تقديم الأموال المجمعة لحسابات مستخدمي Binance (بينانس) استخدام مجموعة كبيرة من البيانات. وتتمثل إحدى طرق تقديم هذا الكم الهائل من البيانات بالتشفير في استخدام شجرة Merkle، يمكن تخزين قدر هائل من المعلومات ضمنها بكفاءة، كما أن طبيعتها المشفرة تجعل إمكانية التحقق من سلامتها أمرًا سهلًا.
دوال التجزئة
لتشفير المدخلات بإيجاز، تعتمد شجرة Merkle على استخدام دوال التجزئة. باختصار، التجزئة هي عملية الحصول على مخرجات ثابتة دائمًا من مدخلات لأحجام متباينة. بعبارة أخرى، عندما يتم تجزئة مدخلات بأي طول من خلال خوارزمية، فسوف يتم الحصول على مخرجات بطول ثابت.
ما دامت المدخلات تظل كما هي، ستظل المخرجات كما هي أيضًا. ويعني ذلك أننا نأخذ كميات هائلة من بيانات المعاملات ونقوم بتجزئتها إلى مخرجات قابلة للتحكم. ستختلف المخرجات جذريًا في حالة تغيير المدخلات.
على سبيل المثال، يمكننا أخذ المحتوى الخاص بـ 100 كتاب وإدخاله في دالة التجزئة "فهرس تجزئة 256"، ومن ثم الحصول على شئ يشبه ما يلي كمخرجات:
801a9be154c78caa032a37b4a4f0747f1e1addb397b64fa8581d749d704c12ea
إذا قمنا بتغير حرف واحد من المدخلات (100 كتاب)، ستكون قيمة التجزئة مختلفة تمامًا، مثل ما يلي:
abc5d230121d93a93a25bf7cf54ab71e8617114ccb57385a87ff12872bfda410
يمثل ذلك خاصية مهمة لدوال التجزئة حيث إنها تسمح بسهولة التحقق من دقة البيانات. إذا قام أي شخص بنسخ عملية تجزئة الـ 100 كتاب باستخدام خوارزمية فهرس تجزئة 256، سيحصل على قيمة التجزئة ذاتها كمخرجات. إذا كانت المخرجات مختلفة، يمكننا التأكيد يقينًا أنه تم تغيير المدخلات. ويعني ذلك أنه لا حاجة إلى التحقق فرديًا أو يدويًا من الاختلافات بين المدخلات التي قد تتطلب جهدًا كبيرًأ.
أشجار Merkle في عالم العملات الرقمية
عند تخزين بيانات المعاملة على سلسلة البلوكشين، يتم تقديم كل معاملة جديدة من خلال دالة تجزئة، التي تحقق قيم تجزئة فريدة. تخيل أنه لدينا ثماني معاملات (A إلى H) التي نقوم بتجزئتها فرديًا للحصول على مخرجات خضعت للتجزئة. وهذا ما نسميه بعُقد أوراق Merkle. في الصورة الموضحة بالأسفل، يمكنك رؤية قيمة تجزئة فريدة لكل حرف: (hA) لـ (A)، و(hB) لـ (B)، و(hC) لـ C، وما إلى ذلك.
يمكننا أخذ زوج من المخرجات التي خضعت للتجزئة، ودمجهما معًا، ومن ثم الحصول على مخرجات مجزأة جديدة. ومن خلال تجزئة قيم التجزئة (hA) و(hB) معًا، على سبيل المثال، سنحصل على مخرجات مجزأة جديدة تُعرف باسم فرع Merkle. يُرجى ملاحظة أنه في كل مرة يتم الحصول فيها على مخرجات جديدة، فهي تأتي مصحوبة بطول وحجم ثابتين، وفقًا لدالة التجزئة المستخدمة.
ولدينا الآن بيانات لمعاملتين (أي A و B) مجتمعين في قيمة تجزئة واحدة (hAB). يُرجى ملاحظة أنه إذا قمنا بتغيير أي معلومات من A أو B وتكرار العملية، ستختلف قيمة التجزئة (hAB) الخاصة بنا تمامًا.
وتستمر العملية حيث نقوم بدمج أزواج جديدة لقيم التجزئة من أجل تجزئتهم مرة أخرى (يُرجى الإطلاع على الصورة التالية). نقوم بتجزئة (hAB) مع (hCD) للحصول على قيمة تجزئة (hABCD) والقيام بالعملية ذاتها مع (hEF) و (hGH) للحصول على (hEFGH). في النهاية، نحصل على تجزئة تمثل المخرجات التي تمت تجزئتها في جميع قيم التجزئة الخاصة بالعمليات السابقة. بعبارة أخرى، مخرجات hABCDEFGH التي خضعت للتجزئة تمثل كافة المعلومات التي تأتي قبلها.
يُسمى الرسم البياني المحدد أعلاه "شجرة Merkle"، والمخرجات المُجزأة hABCDEFGH هي "جذر Merkle". ونستخدم جذور Merkle في أقسام تخزين الكتل، حيث إنها تلخص بالتشفير كافة المعاملات في كتلة واحدة بطريقة موجزة. يمكننا أيضًا التحقق سريعًا مما إذا كان قد تم التلاعب بالبيانات أو تغييرها داخل الكتلة.
القيود المفروضة على أشجار Merkle
لنعد إلى النموذج السابق عن احتياطيات منصات التداول المركزية. تود منصة التداول المركزية إثبات دعم بنسبة 1:1 لجميع أصول عملائها وإنشاء شجرة Merkle التي تقوم بتجزئة معرفات المستخدمين لعملائها معًا مع صافي حيازتهم من الأصول (وخصم الأصول والالتزامات) عند مستوى الرمز المميز. بمجرد إتمام عملية التحرير (والتوقيع لإثبات الملكية على جذر Merkle المقدم)، لن يكون لدى المستخدم طريقة للتحقق من صحة شجرة Merkle دون الوصول إلى مدخلاتها.
قد تغفل المنصة عن تضمين بعض المدخلات. قد يسمح ذلك بإنشاء حسابات وهمية بأرصدة سالبة لتبديل إجمالي الالتزامات. على سبيل المثال، على الرغم من أن إجمالي أصول العملاء قد يبلغ 1,000,000$، قد يتم إضافة حساب وهمي برصيد تبلغ قيمته 500,000$-. قد ينتج ذلك عن إنشاء مستهدف احتياطيات يبلغ 500,000$ فقط.
تختلف حالة إثبات الاحتياطي من جذر Merkle في كتلة ما، إذ يستطيع المستخدمون الاطلاع على جميع المعاملات التي تتضمنها الكتلة على مستكشف سلسلة البلوكشين، إلا أنّ منصة التداول المركزية لن ترغب في الإفصاح عن رصيد كل حساب لأسباب أمنية وأسباب أخرى تتعلق بخصوصية البيانات، ولن يكون العملاء سعداء بالإعلان عن أرصدة حساباتهم. في هذه الحالة، لا تستطيع منصة التداول المركزية إثبات أن أرصدة العملاء يصل مجموعها إلى المبلغ الإجمالي الصحيح دون أن تجعل أرصدة المستخدمين الآخرين ظاهرة.
ويتمثل أحد الحلول الذي قد تفكر منصات التداول باعتماده في استخدام مدقق خارجي موثوق به. يستطيع المدقق التحقق من حسابات الأفراد والاحتياطيات قبل التصديق على صحة جذر Merkle المُقدم. ومع ذلك، بالنسبة للمستخدمين، تتطلب هذه الطريقة الثقة في المدقق والبيانات المستخدمة لعملية التدقيق. لا ينبغي عليك الاعتماد على طرف خارجي إذا كنت تثق في صحة البيانات.
دمج دليل المعرفة الصفرية مع أشجار Merkle
تمثل المشكلة السابقة حالة مثالية لاستخدام دليل المعرفة الصفرية، إذ إننا نود إثبات أن الاحتياطيات تشمل التزامات المستخدم بالكامل ولم يتم تزييفها. مع ذلك، لبعض الأسباب المتعلقة بالخصوصية والأمان، لا نود إطلاع المدقق على المجموع المحدد لأرصدة واحتياطيات المستخدم.
من خلال استخدام دليل المعرفة الصفرية، يمكن لمنصة التداول إثبات أن مجموعات الأرصدة الخاصة بعُقد أوراق شجرة Merkle (أي أرصدة حسابات المستخدمين) تساهم في إجمالي رصيد أصول مستخدمين منصة التداول الذي تمت المطالبة به. يستطيع كل مستخدم الوصول بسهولة إلى عقدة الأوراق الخاصة به إذ إنها متضمنة في العملية. يساهم دليل المعرفة الصفرية أيضًا في ضمان أن شجرة Merkle التي تم الحصول عليها لا تتضمن مستخدمين لديهم أرصدة بإجمالي صافي أصول سالبة (التي قد تعني تزييف البيانات بما أنّ جميع القروض تتمتع بضمانات زائدة). ويتم أيضًا استخدام حساب الوضع العالمي لمنصة Binance (بينانس)، أي قائمة بإجمالي صافي الرصيد الخاص بكل أصل يمتلكه كل مستخدم Binance (بينانس).
لنلقِ نظرة على كيفية تعامل Binance (بينانس) مع الموقف. للبدء، تحدد Binance (بينانس) القيود على الحوسبة التي ترغب في إثباتها وتحديدها باعتبارها دائرة قابلة للبرمجة. في ما يلي مجموعة من القيود الثلاثة التي تستخدمها Binance (بينانس) في نموذجها.
بالنسبة لكل مجموعة رصيد للمستخدم، (عُقدة أوراق شجر Merkle)، تضمن الدائرة الخاصة بنا ما يلي:
تضمين أرصدة أصول المستخدم في حساب مبلغ إجمالي صافي أرصدة المستخدم مع Binance (بينانس).
إجمالي صافي رصيد المستخدم أكبر من الصفر أو يساويه.
يعد تغيير جذر شجرة Merkle صالح (أي لا يستخدم معلومات مزيفة) بعد تحديث معلومات المستخدم لتجزئة عقد الأوراق.
بإمكان Binance (بينانس) بعد ذلك توليد إثبات دليل المعرفة الصفرية لبناء شجرة Merkle وفقًا للدائرة. ويتضمن ذلك قيام منصة التداول بتنفيذ عمليات حسابية ثقيلة من أجل تجزئة معرفات هوية المستخدمين والأرصدة مع ضمان اجتياز الإثبات القيود.
سيقوم المدقق بفحص الإثبات (والكود مفتوح المصدر الذي تم تحريره علانية) ليقتنع أنه تم تنفيذ عملية الحوسبة مع استيفاء كافة القيود. تستغرق حوسبة التحقق وقتًا قصيرًا للغاية مقارنةً بوقت الإثبات.
في كل إثبات لعملية تحرير الاحتياطيات، تقوم منصة التداول بنشر ما يلي:
1. إثبات Merkle الخاص بكل مستخدم
2. إثبات دليل المعرفة الصفرية والمدخلات العامة (تجزئة قائمة بإجمالي صافي الرصيد لكل أصل وجذر Merkle) للدائرة لكافة المستخدمين.
بإمكان الأطراف المهتمين التحقق من إثبات Merkle، مما يضمن أن مساهمة أرصدة الأفراد الخاصة بهم في جذر شجرة Merkle. كما يستطيعون التحقق من إثبات دليل المعرفة الصفرية لضمان استيفاء عملية إنشاء شجرة Merkle لكافة القيود المحددة في الدائرة. للمزيد من الشرح التفصيلي لحلول دليل المعرفة الصفرية وأدائها، يُرجى الرجوع إلى المدونة، كيف يساهم دليل المعرفة الصفرية في تحسين نظام إثبات الاحتياطي.
أفكار ختامية
يقدم دليل المعرفة الصفرية التقنية اللازمة لضمان تكامل البيانات وخصوصيتها في نفس الوقت. يجب أن يساعد استخدامه لإثبات الاحتياطي وتعزيز شفافية منصة التداول المركزية في بناء الثقة في مجال سلاسل البلوكشين. بالنسبة للكثيرين، قد طال انتظار هذا التطور وقد أتى في وقت حاسم بالنسبة لمنصات التداول المركزية.
هذه هي النسخة الأولى من دليل المعرفة الصفرية، ونتطلع إلى تلقي ملاحظات المجتمع حتى نتمكن من مواصلة تحسين النظام.