
السلسلة: Zcash من المبادئ الأولى . المقال 0 . المرساة الجمهور: مبتدئون تمامًا. لا يُفترض أي إلمام بالتشفير، أو البلوكشين، أو الرياضيات. ما الذي ستخرج به: نموذج ذهني صحيح لكيفية إخفاء Zcash لمن دفع لمن، وكم كان المبلغ، مع الاستمرار في تمكين العالم كله من التحقق من أنه لم يتم تزوير أي أموال أو إنفاقها مرتين.
كل مقال لاحق في هذه السلسلة يقرّب العدسة إلى جزء واحد من الآلة التي أنت على وشك التعرف عليها. لذلك إذا بدت لك كلمة هنا تقريبية أو غير دقيقة تمامًا، فهذا جيد. فهذه إشارة إلى أننا سنعود إليها ونشرحها كما ينبغي.
تخيّل أن كشف حسابك البنكي مُعلّق بمسمار على جدار في ساحة البلدة. إلى الأبد. يمكن لأي شخص (مالك منزلك، أو صاحب عملك، أو غريب، أو صاحب عمل مستقبلي، أو حكومة) أن يقرأ كل دفعة إيجار، وكل فاتورة طبية، وكل تبرع، وكل فنجان قهوة، وأن يتتبع بدقة إلى من أرسلت المال ومن الذي أرسل المال إليك.
هذا ليس افتراضًا كابوسيًا من خيال مظلم. هذا تقريبًا هو الشكل الذي تعمل به Bitcoin.
غالبًا ما تُوصَف Bitcoin بأنها "مجهولة الهوية"، لكنها ليست كذلك. إنها مستعارة الهوية: اسمك ليس موجودًا في السجل، لكن كل معاملة، وكل مبلغ، وكل رابط بين العناوين هو أمر عام ودائم. لقد وُجد مجال كامل يُسمى "تحليل السلاسل" فقط من أجل إزالة هذا الستار الرقيق من الاستعارة وربط العناوين بأشخاص حقيقيين. وما إن يرتبط أحد عناوينك بك، ينكشف تاريخك المالي بالكامل.
تم بناء Zcash للإجابة عن سؤال خادع الصعوبة:
هل يمكن أن نمتلك مالًا خاصًا بالكامل، يُخفي المُرسل والمُستقبل والمبلغ، مع الاستمرار في السماح لأي شخص بالتحقق من أن القواعد قد تم الالتزام بها؟
هذان الهدفان يتعارضان مع بعضهما. فالسجل العام قابل للتحقق لأن الجميع يستطيعون رؤيته. أما الخصوصية فتعني أن لا أحد يستطيع رؤيته. فكيف يمكن للعامة التحقق من شيء لا يُسمح لهم بالنظر إليه؟
حل هذه المفارقة هو القصة الكاملة لهذه السلسلة. فلنبدأ.
قبل أي شيء آخر، دعنا نوضح سوء فهم شائعًا: Zcash ليست "العملة الخاصة". إنها عملة توفّر الخصوصية كخيار. لقد بدأت حياتها في الأصل كتفرع من Bitcoin، وتحمل نظامين متوازيين على نفس البلوكشين.
| العالم الشفاف | العالم المحمي | |
|---|---|---|
| الخصوصية | عام، تمامًا مثل Bitcoin | خاص |
| تبدأ العناوين بـ | t... | z... أو u... |
| المُرسل / المُستقبل / المبلغ | مرئي للجميع | مخفي عن الجميع |
| التقنية الأساسية | سجل عام على نمط Bitcoin | التزامات تشفيرية + براهين عدم المعرفة |
بل ويمكن للأموال أن تعبر الحدود بينهما: نقل الأموال إلى داخل العالم المحمي يسمى shielding، وإعادتها إلى الخارج يسمى deshielding.
العالم الشفاف هو "Bitcoin التي لديك بالفعل فكرة عامة عنها". أما العالم المحمي فهو الذي يحتوي على كل ذلك التشفير الجميل، وهو العالم الوحيد الذي تهتم به هذه السلسلة.

إليك الصورة الذهنية الوحيدة التي ينبغي حملها معك خلال بقية المقال. سنعود إليها باستمرار.
تخيّل وجود لوحة إعلانات عامة ضخمة يراها كل من على الأرض في جميع الأوقات.
استلام المال يعني أن شخصًا ما يثبت ظرفًا مختومًا معتمًا على اللوحة. داخل الظرف يوجد كمية المال التي يحتويها وسر لا يستطيع قراءته إلا المستلم، لأن الظرف مقفل بمفتاح ذلك المستلم الشخصي. يرى العالم كله أن ظرفًا قد ظهر. ولا يستطيع أحد غير المالك رؤية ما بداخله.
اللوحة لا تكف إلا عن النمو. لا تُنزع الأظرف أبدًا ولا تُمحى. بل تُثبَّت أظرف جديدة فوقها، إلى الأبد.
إنفاق المال يعني الوقوف خلف ستار، وإثبات "أنا أملك أحد الأظرف غير المنفقة على هذه اللوحة، ويحق لي فتحه"، ثم إسقاط رمز إبطال فريد في صندوق "المنفَق" العام وتثبيت أظرف جديدة لمن تدفع لهم.
ذلك الطقس الصغير (تثبيت رمز إبطال، وتثبيت أظرف جديدة، وكل ذلك من خلف ستار) هو دفعة Zcash. وكل ما عدا ذلك مجرد تفاصيل.
والآن دعنا نعطي تلك العناصر أسماءها الحقيقية.
هذه المصطلحات الخمسة هي المفردات الكاملة لـ Zcash المحمية. تعلّمها باعتبارها قصة، لا باعتبارها مسردًا، وسترسخ في ذهنك.
| في القصة | المصطلح الحقيقي في Zcash | ما هو فعليًا |
|---|---|---|
| محتويات الظرف (المبلغ + المالك + سر) | Note | "العملة" الخاصة: جزء من القيمة يخص شخصًا ما |
| الظرف المختوم المعتم على اللوحة | Note commitment | ختم تشفيري يثبت وجود ظرف مع إخفاء ما بداخله |
| لوحة الإعلانات نفسها | Note commitment tree | سجل يُضاف إليه فقط لكل Note تم إنشاؤها على الإطلاق |
| رمز الإبطال في صندوق "المنفَق" | Nullifier | علامة فريدة تعني "لقد تم الآن إنفاق هذه Note" |
| السحر الذي يحدث "خلف الستار" | Zero-knowledge proof | برهان على أن عملية الإنفاق كلها صحيحة، من دون كشف أي شيء منها |
إذا لم تتذكر شيئًا آخر من هذا المقال، فتذكر هذا الجدول. فكل ما يلي هو مجرد تفسير لسبب وجوب أن يُصاغ كل جزء بهذه الطريقة.
هذا هو الجزء الذي تتجاوزه معظم الشروحات، وهو بالضبط الجزء الذي يفصل بين "لقد حفظت بعض الكلمات" و"أنا أفهم التصميم." كل واحد من الأجزاء الخمسة موجود لحل مشكلة محددة واحدة.
يمكن فتح ظرف عادي بالبخار. أما التزام الملاحظة المشفّر فلا يمكن ذلك. تخيّله ظرفًا مختومًا سحريًا، معتمًا بالكامل، وله قوتان خارقتان:
كيف يمكن لختم أن يحقق الأمرين معًا في الوقت نفسه؟ هذا سؤال حقيقي وله جواب. وهو موضوع المقالة 3 (الالتزامات). في الوقت الحالي، تقبّل الظرف بوصفه سحريًا وواصل التقدّم.
عندما تنفق ملاحظة، فإنك تنشر المُبطِل الخاص بها، أي "رمز الإبطال." يُحتسب هذا الرمز انطلاقًا من الملاحظة نفسها و مفتاحك السري. وهذه الوصفة تمنح ثلاث خصائص في آن واحد، وكل واحدة منها مهمة:
هذه الخاصية الثالثة هي قلب خصوصية Zcash، وتستحق قسمًا مستقلًا أدناه.
كل شيء يحدث خلف ستار، وما تقدّمه للعالم بعد ذلك هو برهان معرفة صفرية، وهو نوع من الشهادات غير القابلة للتزوير. وهو يشهد بصمت على كل ما يلي دفعة واحدة:
المعجزة هي أن البرهان لا يكشف أيًا من هذه الحقائق. لا المبلغ، ولا العناوين، ولا أي ظرف هو المقصود. إنه يكتفي بإقناعك بأن كل العبارات أعلاه صحيحة. وكيف يكون ذلك ممكنًا أصلًا هو موضوع المقالة 5 (براهين المعرفة الصفرية)، الذروة في هذه السلسلة.
الملاحظة تولد، ثم تعيش على اللوح، وفي النهاية تموت، والأهم من ذلك أن ولادتها وموتها يبدوان غير مرتبطين لأي شخص يراقب.

لنشاهد Alice تدفع إلى Bob، مع تمييز كل خطوة عامة وخاصة.

لاحظ هذا اللاتناظر الذي يجعل الخصوصية تعمل:
كيف يعرف Bob أصلًا أنه تلقى دفعة؟ ملاحظته مشفّرة إلى مفتاحه. وهو يمسح اللوح باستمرار، ولا تنفتح له إلا الأظرف الخاصة به، كما لو أنه يملك المفتاح الوحيد الذي يلائم مجموعة محددة من الأقفال. الآلية الكامنة وراء ذلك هي مفاتيح العرض، وهو موضوع لاحق.
| حقيقة عن الدفعة | مرئية للعامة؟ |
|---|---|
| حدوث معاملة محمية ما | نعم |
| أنها التزمت بكل القواعد (لا تزوير، لا إنفاق مزدوج) | نعم (عبر البرهان) |
| من أرسل المال | مخفي |
| من استلم المال | مخفي |
| كم كان المبلغ المرسل | مخفي |
| أي ملاحظة سابقة تم إنفاقها | مخفي |
هذا هو حل المفارقة الواردة في القسم 1. فالعامة يتحققون من القواعد لا من المحتويات. لم تعد قابلية التحقق والخصوصية في صراع، لأن برهان المعرفة الصفرية يتيح لك فحص الأولى من دون المساس بالثانية.
إذا فهمت هذه الفكرة الواحدة، فأنت تفهم لماذا يتمتع Zcash بالخصوصية. اقرأها ببطء.
لذلك يرى المراقب الخارجي سيلًا من الأظرف التي تظهر وسيلًا من رموز الإبطال التي تظهر، لكنه لا يستطيع مطابقتها ببعضها. لا يمكنه أن يقول: "رمز الإبطال الذي أُلقي اليوم يقابل الظرف الذي ثُبّت في مارس الماضي." هذا الرابط موجود فقط داخل المعرفة السرية لمالك الملاحظة، ويؤكد برهان المعرفة الصفرية أن الرابط صحيح من دون كشفه.
هذا الرابط المقطوع هو الشيء الذي تتغذى عليه شركات تحليل السلاسل في Bitcoin، وهو الشيء الذي يتعمد Zcash قطعه.
اختبر حدسك: لو كان المُبطِلات تُحتسب بدلًا من ذلك فقط من الملاحظة نفسها (من دون أي مفتاح سري)، فأي واحدة من الخصائص الثلاث في القسم 5 كانت ستنهار، ولماذا كان ذلك سيدمّر الخصوصية بهدوء؟ (الإجابة في النهاية.)
هذا نموذج ذهني، وليس المواصفة. ولإبقائه مناسبًا للمبتدئين، قمنا بتبسيط عدة أمور واقعية بهدوء: مرّ Zcash بعدة تصاميم محمية مختلفة (Sprout، ثم Sapling، والآن Orchard)؛ ويمكن للمعاملات الحقيقية أن تنفق وتُنشئ عدة notes دفعة واحدة؛ و"اللوح" هو تقنيًا نوع محدد من الأشجار، وليس لوحة دبابيس حرفية؛ كما أن توازن القيمة يُفرَض باستخدام بعض الضبط المحاسبي التشفيري الإضافي. لا يغيّر أيّ من هذه التفاصيل القصة التي تعلّمتها للتو؛ بل يصقلها. سنعيد الدقة تدريجيًا، مقالًا بعد مقال، وسنوضح ذلك بجلاء كلما فعلنا.
يكسب المحتوى التعليمي الجيد الثقة عندما يصرّح بما تركه خارجًا. وهذا القسم هو ذلك الوعد.
كل عبارة "سنعود إلى هذا" أعلاه هي خيط. إليك أين يُغلق كل واحد منها:

| النهاية المفتوحة من هذا المقال | أين تُحسم |
|---|---|
| كيف يمكن لظرف مختوم أن يكون مخفيًا وفي الوقت نفسه غير قابل للتزوير؟ | المقال 3: commitments |
| من أين تأتي المفاتيح والوصفات السرية؟ | المقالان 1 و2: الحقول والمنحنيات |
| ما هو "اللوح" بالضبط؟ | المقال 4: أشجار Merkle |
| كيف يمكنك إثبات شيء مع عدم كشف أي شيء؟ | المقال 5: براهين المعرفة الصفرية |
| كيف تتركب القطع الخمس كلها معًا في Zcash الحقيقي؟ | المقال 6: البروتوكول المحمي |
أصبحت الخريطة الآن بين يديك. وما تبقى من السلسلة يملأ تفاصيلها.
| المصطلح | المعنى المبسط بالإنجليزية العادية |
|---|---|
| Note | وحدة قيمة خاصة، وهي ما يعادل العملة المعدنية أو الورقة النقدية في Zcash |
| Note commitment | ختم تشفيري يثبت وجود note دون كشفها |
| Note commitment tree | السجل العام القابل للإلحاق فقط لجميع note commitments |
| Nullifier | علامة فريدة تدل على "الإنفاق" تُنشَر عند استخدام note، وتمنع الإنفاق المزدوج |
| Zero-knowledge proof | برهان على أن عبارة ما صحيحة مع عدم كشف أي شيء يتجاوز صحة تلك العبارة |
| Shielding / deshielding | نقل الأموال إلى / خارج العالم الخاص المحمي |
| Viewing Key | المفتاح الذي يمكّن المالك من اكتشاف وقراءة notes الموجّهة إليه |
هل Zcash خاص دائمًا؟
لا. تنطبق الخصوصية على العالم المحمي (z.../u... addresses). أما المعاملات الشفافة (t...) فهي عامة، مثل Bitcoin.
إذا كان كل شيء مخفيًا، فما الذي يمنع شخصًا ما من طباعة أموال مجانية؟ برهان المعرفة الصفرية. فهو يفرض رياضيًا أن تكون مخرجات كل معاملة مدعومة بمدخلات حقيقية وغير منفقة، مع إبقاء المبالغ سرية.
هل يمكن إنفاق note نفسها مرتين؟ لا. إنفاق note ينشر nullifier الخاص بها؛ وأي محاولة ثانية ستنشر nullifier المطابق نفسه، وهو موجود بالفعل في سلة "المنفَق"، لذلك ترفضه الشبكة.
هل يمكن للجهات الخارجية ربط مرسل بمستقبل؟ لا. لا يمكن لأي شخص مطابقة commitment (ولادة note) مع nullifier (وفاة note) من دون المعرفة السرية الخاصة بالمالك.
لو كان nullifier يُحتسب فقط من note، من دون مفتاح سري، لكان أي شخص قادرًا على حسابه، مما يكسر الخاصية رقم 1 (أن المالك وحده يستطيع الإنفاق). والأسوأ من ذلك أن nullifier سيصبح عندها قابلًا للاشتقاق مباشرة من المعلومات العامة عن note، وهو ما قد يتيح للمراقبين ربط nullifier مرة أخرى بـ commitment الخاص بها، فيكسر الخاصية رقم 3 ويفكك خصوصية النظام كله بهدوء. المفتاح السري هو ما يجعل رمز الإبطال في آنٍ واحد حكرًا عليك وحدك وغير قابل للربط.
المقال 1 . الحقول المنتهية: ذلك النظام العددي الغريب والجميل حيث تلتف الحسابات "دائريًا"، والسبب الذي يجعل كل قطعة من التشفير في هذه السلسلة تعيش هناك. سنبدأ، كما نفعل دائمًا، بالحدس، ومن دون صيغ حتى تصبح مستحقة.
جزء من سلسلة Zcash from First Principles لـ ZecHub. مرخّص تحت CC BY-SA 4.0.