تخطي إلى المحتوى الرئيسي

كيفية بناء تطبيقات الخصوصية على إيثيريوم باستخدام إثباتات المعرفة الصفرية

إثباتات المعرفة الصفرية
الخصوصية
فيليب كراوس
EF Builder Growth
12 مايو 2026
6 دقيقة للقراءة

إيثيريوم علنية بشكل جذري حسب التصميم. كل عنوان، ورصيد، ومعاملة، واستدعاء عقد، وحدث مرئي لأي شخص لديه مستكشف الكتل. هذه الشفافية مفيدة عندما تريد القابلية للتحقق. لكنها تمثل مشكلة عندما يحتاج المستخدمون إلى التصويت، أو المطالبة، أو السحب، أو إثبات العضوية دون ربط كل إجراء بنفس المحفظة.

العضوية المجهولة هي النمط القابل لإعادة الاستخدام الذي يشغل فئة كبيرة من تطبيقات الخصوصية على إيثيريوم. يقوم الأشخاص بالتسجيل أولاً، ثم يثبتون لاحقًا انتمائهم إلى المجموعة دون الكشف عن هويتهم كأعضاء. إثبات المعرفة الصفرية هو الجسر بين محفظة التسجيل والمحفظة الفاعلة، وهذا الجسر لا يكشف عمن عبره.

يتغير المنتج المحيط، لكن هيكل الخصوصية يبقى كما هو.

النمط، مشروحًا من خلال التصويت المجهول

يتكون النمط من ثلاثة أجزاء. التزام يسجل كل عضو. وشجرة ميركل تحول هذه الالتزامات إلى حشد. وإثبات ومُبطل يسمحان لعضو واحد بالتصرف مرة واحدة دون الكشف عن العضو الذي تصرف.

الخطوة الأولى: التسجيل

ينشئ كل ناخب قيمتين خاصتين خارج السلسلة، السر والمُبطل. يقوم الناخب بتجزئة هذه القيم إلى التزام عام، ثم يسجل هذا الالتزام على السلسلة.

الالتزام هو سجل التسجيل العام. السر والمُبطل هما الملاحظة الخاصة التي يحتاجها الناخب لاحقًا. إذا فُقدت الملاحظة، فلن يتمكن الناخب من إثبات العضوية. وإذا سُربت، فقد يتمكن شخص آخر من التصويت نيابة عن المستخدم.

نظرًا لأن الالتزام عبارة عن تجزئة، لا يمكن للمراقبين استعادة القيم الخاصة بداخله. يقول الالتزام "شخص ما قام بالتسجيل" دون الكشف عمن سيستخدم هذا التسجيل لاحقًا.

الخطوة الثانية: بناء الحشد

مع تسجيل المزيد من الناخبين، يجمع التطبيق التزاماتهم في شجرة ميركل. تضغط شجرة ميركل قائمة طويلة من القيم في تجزئة واحدة، تسمى الجذر. قم بتغيير أي قيمة في القائمة وستتغير التجزئة، لذا يعمل الجذر كملخص واضح التلاعب للمجموعة بأكملها.

تلك الشجرة هي مجموعة المجهولية الخاصة بك. إذا كان هناك عشرة مستخدمين في الشجرة، يمكن للمراقب تضييق نطاق إجراء لاحق إلى واحد من هؤلاء العشرة. وإذا كان هناك عشرة آلاف مستخدم في الشجرة، فسيكون من الصعب جدًا ربط الإجراء بشخص واحد. عادةً ما يكون التطبيق الخاص الذي يحتوي على مجموعة مجهولية صغيرة غير خاص جدًا، حتى لو كان علم التشفير صحيحًا.

الخطوة الثالثة: التصرف كمجهول

عندما يفتح الاستطلاع، يجب ألا يصوت الناخب من نفس المحفظة التي سجلت الالتزام. التصويت من محفظة التسجيل سيربط الصوت مباشرة بمسجل الالتزام ويلغي عمل الخصوصية. بدلاً من ذلك، ينشئ الناخب إثبات المعرفة الصفرية. يتم ترميز البيان كدائرة تقول: "أعرف القيم الخاصة التي تنتج التزامًا مسجلاً، وأنا أكشف عن تجزئة المُبطل الصحيحة لهذا الاستطلاع."

يقنع الإثبات عقد المتحقق بأن البيان صحيح. ولا يكشف عن السر، أو المُبطل، أو أي التزام تم استخدامه.

المُبطل هو ما يمنع التصويت المزدوج. إلى جانب الإثبات، ينشر الناخب تجزئة المُبطل. يخزن عقد التصويت تلك التجزئة بعد قبول الصوت. إذا تم استخدام نفس الملاحظة الخاصة مرة أخرى لنفس الاستطلاع، فإنها تنتج نفس تجزئة المُبطل، ويرفض العقد الصوت الثاني. بالاقتران مع الإثبات، يترك هذا العقد يعرف فقط أن ناخبًا مسجلاً ما قد تصرف مرة واحدة، وليس من هو.

البوابة القابلة لإعادة الاستخدام

يعمل نفس زوج الإثبات والمُبطل إلى ما هو أبعد من التصويت. جرد قصة التصويت وما ستحصل عليه هو بوابة خصوصية لوظائف العقد الذكي.

قبل تشغيل الوظيفة، يتحقق العقد من جذر ميركل، ويتحقق من الإثبات، ويؤكد أن تجزئة المُبطل لم يتم استخدامها، ويربط المدخلات العامة بالتطبيق الصحيح، أو السلسلة، أو الاستطلاع، أو المطالبة، أو السحب. إذا نجحت هذه الفحوصات، فإنه يضع علامة على المُبطل كمُستخدم ويشغل بقية الوظيفة.

ضع تلك البوابة أمام تصويت وستحصل على تصويت مجهول. ضعها أمام مطالبة إسقاط جوي وستحصل على مطالبات مجهولة. ضعها أمام وظيفة سحب وستحصل على جوهر تدفق سحب على غرار الخلاط. نفس شجرة الالتزام، ونفس فكرة المُبطل، ونفس نمط الإثبات. ما يتغير هو جسم الوظيفة ومنطق التطبيق المحيط.

ماذا يعمل وأين

عادة ما يحدث العمل الخاص خارج السلسلة. يخزن المستخدم الملاحظة، ويبني تطبيق العميل الشاهد ويشغل المُثبِت لإنتاج الإثبات. يتتبع المفهرس الالتزامات وجذور ميركل. ينشر المُجمِّع عملية المستخدم على السلسلة ويرعى مدير الدفع لـ ERC-4337 الغاز، لذلك لا تحتاج المحفظة الجديدة إلى ETH من محفظة المستخدم المعروفة أولاً.

يحدث التنفيذ العام على السلسلة. يتحقق عقد المتحقق من الإثبات. يتحقق عقد التطبيق من الجذور الصالحة والمُبطلات غير المستخدمة، ويخزن تجزئة المُبطل، ويشغل الإجراء العام.

تجربة المستخدم الحساسة هي التعامل مع الملاحظات. تعامل مع السر والمُبطل مثل المفاتيح. لا تضعها في التحليلات، أو السجلات، أو عناوين URL، أو تقارير الأخطاء، أو القياس عن بعد العادي من جانب الخادم. بمجرد تسرب الملاحظة، تختفي الخصوصية، بغض النظر عن مدى قوة الإثبات.

تطور الأدوات لمواكبة الاحتياجات

لا تحتاج إلى كتابة علم التشفير الأساسي يدويًا. المسار الشائع هو كتابة الدائرة بلغة المعرفة الصفرية عالية المستوى، وإنشاء متحقق Solidity، واستدعاء ذلك المتحقق من عقد التطبيق.

تعتمد حزمة التقنيات المناسبة على المهمة. يُعد Circom مع snarkjs مسارًا راسخًا لدوائر مستوى التطبيق. ويُعد Noir مع Barretenberg مسارًا أحدث وصديقًا للمطورين. بينما Halo2 و gnark هما مكتبتا دوائر منخفضة المستوى. تثبت الأجهزة الافتراضية للمعرفة الصفرية (zkVMs) مثل RISC Zero أو SP1 البرامج العادية، ولكن قد يكون إثباتها أكثر تكلفة من دائرة مخصصة صغيرة.

بالنسبة للعضوية المجهولة، ابحث عن بروتوكول موجود قبل كتابة دائرتك الخاصة. يجمع Semaphore عضوية المجموعة ومنع الاستخدام المزدوج القائم على المُبطل في عقود ومكتبات JavaScript. بالنسبة للتصويت الخاص والحوكمة، يُعد MACI هو المسار المتخصص لأنه يضيف خصائص مكافحة التواطؤ. غالبًا ما تكون البروتوكولات الناضجة أكثر أمانًا من الدوائر الجديدة.

الإثبات ليس كافيًا

حتى الإثبات المثالي يفشل إذا كان تدفق المحفظة يسرب الرابط. سجل من المحفظة أ وتصرف لاحقًا من المحفظة أ، ويمكن لأي شخص يراقب ربط المعاملات. قم بتمويل المحفظة ب من المحفظة أ قبل التصرف مباشرة، وتخلق معاملة التمويل تلك نفس المشكلة.

لهذا السبب تهم المُجمِّعات ومديرو الدفع. يجب أن تكون المحفظة الفاعلة جديدة، ولا ينبغي أن تحتاج إلى تلقي ETH من محفظة يحاول المستخدم فصلها عن الإجراء.

نفس المشكلة موجودة خارج السلسلة. يمكن أن يؤدي إرسال معاملات التسجيل والإجراء من نفس عنوان IP، أو مزود RPC، أو الجلسة إلى إضعاف الخصوصية التي توفرها الدائرة. يمكن للواجهات الأمامية أن تسرب البيانات من خلال التحليلات، والتخزين المحلي، وسجلات الدعم. يخفي إثبات المعرفة الصفرية القيم داخل الإثبات. لكنه لا يخفي كل شيء حول المعاملة.

المدخلات العامة هي مكان آخر تفشل فيه تطبيقات الخصوصية. أي شيء يتم تمييزه كعام في الدائرة، أو يتم إصداره كحدث، أو يتم تضمينه في بيانات الاستدعاء، أو يتم تخزينه بواسطة العقد يكون مرئيًا. راجع المدخلات العامة بنفس العناية التي تراجع بها التحكم في الوصول على عقد Solidity.

ما يغيره هذا بالنسبة للبناة

الخصوصية على إيثيريوم قابلة للتطبيق والإطلاق. يمكن للبناة تجميع القطع في تطبيقات حقيقية. تتكون حزمة التقنيات من دائرة للبيان الخاص، ومتحقق لفحص الإثبات، وعقد تطبيق للقواعد العامة، ومفهرس لبيانات ميركل، ومُجمِّع بالإضافة إلى مدير دفع لتقديم غير قابل للربط ورعاية الغاز.

الأجزاء الصعبة هي تصميم المنتج، وإدارة المفاتيح، وسلامة البيانات الوصفية، وعمليات التدقيق، وتنمية مجموعة المجهولية. أخطئ في أي منها وستختفي الخصوصية التي وفرها الإثبات.

قراءة إضافية

  1. إثباتات المعرفة الصفرية (ethereum.org) (opens in a new tab)
  2. وثائق Semaphore (opens in a new tab)
  3. وثائق MACI (opens in a new tab)
  4. وثائق Circom (opens in a new tab)
  5. وثائق Noir (opens in a new tab)
  6. كتاب Halo2 (opens in a new tab)
  7. وثائق gnark (opens in a new tab)
  8. وثائق RISC Zero (opens in a new tab)
  9. وثائق SP1 (opens in a new tab)
  10. EIP-4337: تجريد الحساب عبر عقد EntryPoint (opens in a new tab)

آخر تحديث للصفحة: 28 مايو 2026