لقد كنت أفكر في الاهتمام داخل عالم العملات الرقمية بشكل مختلف منذ صباح هذا اليوم. الجميع في هذا المجال يتصارع على نفس الثواني الخمس عشرة من شريط تمرير شخصٍ ما. يبدو أن Dusk لا تتصارع على الإطلاق تقريبًا، وهذا ما جعلني أتوقف وألقي نظرة أقرب.
معظم سلاسل الخصوصية تطارد الاهتمام بأكبر ادعاء يمكنها تقديمه. تبدو وثائق Dusk جافة تقريبًا مقارنةً بذلك، أقرب إلى وثيقة امتثال منها إلى عرضٍ ترويجي. لا وعود بالقدرة على التغلب على المنظمين في لعبتهم الخاصة. مجرد Moonlight وPhoenix، يقومان بهدوء بمهمتين مختلفتين.
وهذا ما شدني. عادةً ما تكافئ عقلية السوق داخل العملات الرقمية من يصرخ بثقة أعلى، لا من يكون قد حل بالفعل الجزء الأصعب. يبدو أن Dusk تراهن على العكس؛ أنه عندما يحتاج الحجم المؤسسي الحقيقي في النهاية إلى مسار خصوصية متوافق، فإن من بنى هذا خلال الدورة وخصّص وقته لشرح الحالات الطرفية بدلًا من مطاردة السرديات سيكونون الوحيدين المستعدين.
لا أعرف إن كانت هذه الرهينة ستؤتي ثمارها. الاهتمام لا ينتظر حتى يثبت التصميم المعماري نفسه.
لكنها نوعٌ غريب من الثقة: بناءٌ على طلبٍ لم يظهر بعد بشكل كامل.
ما زلت أفكر في «Dusk» هذا المساء، وظهر أمر آخر أثناء تنقيبي في المستندات. إذا كانت «Phoenix» تخفي قيم المعاملات افتراضيًا، فكيف يقوم أي شخص فعليًا بمراجعتها.
اتضح أن الإجابة هي «مفاتيح العرض». ليست هي نفس فكرة «مفتاح العرض» التي يذكرها الناس عادةً عند مزامنة المحافظ. ما نتحدث عنه هنا هو الإفصاح الانتقائي؛ حيث يمكن لمالك المعاملة أن يمنح مفتاح عرض محددًا إلى مدقق أو جهة تنظيمية، لتمكين تلك الجهة وحدها من فك تفاصيل المعاملة دون تعريض أي شيء للشبكة الأوسع.
أعاد ذلك صياغة سؤال الخصوصية بالكامل بالنسبة لي. ليست المسألة «الخصوصية مقابل الشفافية». بل هي «خصوصية مع باب مُتحكَّم فيه» مدمج داخلها. لكن الباب لا يفيد إن لم يَختر أحدٌ فتحه بالطريقة الصحيحة. يمكن للبروتوكول توليد المفتاح وفرض أن عملية فك التشفير تعمل كما صُممت. ليس له أي رأي في من يستلم ذلك المفتاح، ومتى يتم إصداره، أو ما إذا كانت العملية المحيطة به موثوقة أصلًا.
إذًا، التكنولوجيا تحل النصف التشفيري من مسألة الإفصاح. أما النصف المؤسسي—أي من يملك سلطة طلب المفتاح وتحته ما الشروط—فما يزال بالكامل خارج السلسلة (off-chain).
وهذا الجزء هو الذي يزعجني قليلًا. يمكن لآلية إفصاح انتقائي مُصمَّمة بإتقان أن تكون موجودة داخل عملية مُدارَة بشكل سيئ.
لا أعتقد أن هذا يجعلها أقل فائدة. فقط يعني أن المشكلات الصعبة لم تختفِ. لقد انتقلت.
تبويب المستندات لا يزال مفتوحًا. إلى القسم التالي.
لم تكن غلطة أنسم هي الفشل في تسمية شريك لِجيف. بل كانت التعامل مع جدار الولايات المتحدة لدى Hyperliquid كمشكلة تخص التبسيط/التجاوز في الوصول، بينما هو في الحقيقة مشكلة إفصاح.
الجانب الأميركي لا يسأل عمّا إذا كانت المنصّة تعمل؛ بل يسأل عمّا الذي تعرفه المنصّة.
لا تستطيع Hyperliquid الإجابة عن ذلك دون كشف الأرصدة والهوية وسِجلات المعاملات التي لم تُصمَّم أبدًا لتُشارك بشكل انتقائي. لم يَبْنِ Dusk جسرًا أسرع إلى الجهات التنظيمية. لقد أنشأ نظامًا يكون فيه الإفصاح أصيلًا ومحدودًا ومشفّرًا.
تلتزم Phoenix بتسجيل كل رصيد كملاحظةٍ مُشفّرة، وليس كعنوانٍ بنصّ واضح، وتتيح حزمة W3sper SDK لأي تطبيق تضمين نموذج الملكية الذي يراعي الخصوصية بدون إعادة بناء دوائر المعرفة الصفرية من الصفر.
يجلس Zedger فوق ذلك: تتحول بيانات الاعتماد الخاصة بالهوية والقيود التنظيمية إلى عبارات قابلة للإثبات داخل البرهان، لا إلى وثائق خام تُسلَّم لشريك. تُثبت الملكية عبر دوائر معرفة صفرية تُخرج الحقيقة دون تسريب السجلّ الأساسي. وهذا يغيّر مجمل الحديث.
لا تقوم مؤسسة من نوع Dusk بتسليم قاعدة بيانات والاعتماد على أن الجهة التنظيمية ستثق بالشريك. بل تُثبت الالتزام على السلسلة—قيود الهوية ومشروعية الأصول وتحقق التسوية النهائي—بينما تظل البيانات الخام مشفّرة. تحتاج Hyperliquid إلى شريك أميركي لأن معماريتها تتعامل مع الخصوصية كعائق أمام الامتثال.
يتعامل Dusk مع الخصوصية باعتبارها الشرط المسبق. كان لدى أنسم القدرة على شرح هذا الفرق، وقد استثمر تلك القدرة في المزاوجة/المطابقة.
لا يحتاج السوق إلى إعلان شريك آخر. بل يحتاج إلى بنية تحتية تجعل «من أنت» و«ماذا تملك» يتحولان إلى براهين، لا إلى تعرضات. لقد أنشأ Dusk ذلك بالفعل. السؤال هو ما إذا كان الجمهور مستعدًا لسماع الأمر.
لم أخطط لأن أكون هدفًا للمراقبة. لقد أرسلتُ فقط 312 DUSK إلى مزوّد مقابل خدمة، واستخدمنا Phoenix تمامًا كما هو مقصود: ملاحظات مُشفّرة، وإثبات معرفة معدومة، بدون نصّ عادي على السلسلة.
هناك اكتشفت الأمر: بعد ثلاثة أسابيع، قام ذلك المزوّد بلصق View Key الخاص به في تذكرة دعم عامة لـ“التحقق” من دفعة مختلفة. كانت التذكرة عامة. وكان View Key عامًا. ومن ثم، لم تعد معاملة 312 DUSK الخاصة بي خاصة.
واجهة المستخدم سمّتها “خطأ المستخدم”. لكنها لا تسمّيه بما هو عليه: نقطة فشل واحدة تُسقط خصوصية الجميع الذين دفعوا ذلك العنوان يومًا ما. لأن Phoenix لا يشفّر الرصيد فقط—بل يربط خصوصيتك بـ View Keys لكل طرف قابلته وثقت به من قبل. مزوّد واحد مهمل، لقطة شاشة واحدة، نسخة/لصق واحدة في Discord، وعلاقتك المالية بالكامل مع ذلك الطرف تُفكّ لأي شخص يتعب نفسه ليتفحص.
حسبتُ الأرقام على ذلك المفتاح الذي تم تسريبه: فقد اجتاح 47 ملاحظة عبر 11 محفظة مختلفة في أقل من ثانيتين. التواريخ، والمبالغ، والمذكرات، وعناوين المحافظ—كل شيء مكشوف. وأدركت أن إثبات المعرفة المعدومة لم يفشل. التشفير لم يفشل. الإنسان هو من فشل. لكن النظام لا يملك وسيلة لمنع ذلك الإنسان من أن يصبح مصدر التسريب.
نتحدث عن الخصوصية كخاصية من خصائص السلسلة. لكن في Dusk، الخصوصية تنتقل، وتموت لحظة أن يرتكب أضعف رابط في مخطط معاملاتك خطأ. لا توجد دائرة يمكنها إصلاح ذلك. ولا أي Succinct Attestation يمكنه إنهاء الأمر بعيدًا.
الرياضيات غير قابلة للكسر. الطبقة الاجتماعية ليست كذلك.
لم أفتح محفظتي إلا للمطالبة بـ 12 DUSK من مزاد مكتمل. وهناك رأيت ذلك: 14,208 عملية فك تشفير تجريبية، و3 ملاحظات مطابقة، و2.4 ثانية من معالجة جهاز يَتْحِدول شجرة ميركل قبل أن تظهر الرصيد حتى.
واجهة المستخدم سمّتها “مزامنة”. لكنها لم تكن كذلك بالفعل: بحث أعمى عن الملكية في دفتر حسابات يرفض أن يخبرك بما هو لك.
يجعل Phoenix الأرصدة خاصة عبر جعلها غير قابلة للاكتشاف إلى أن تفك تشفيرها. لم تكن مفتاحي للعرض مفتاحًا؛ بل كان محاولة-وتجربة لمسحٍ عبر آلاف الالتزامات المشفّرة التي لم أكن أملكها، فقط للعثور على الثلاث التي كنت أملكها. مجموعة الملاحظات تنمو مع كل بلوك، لكن كلفة مسحها غير مرئية—لا عدّاد غاز، ولا لوحة معلومات، ولا تحذير.
نولع بإنتاجية الأداء، والنهائية، والشهادات الموجزة. ونتجاهل السؤال الأصعب: كم عدد عمليات فك التشفير الفاشلة التي يجب أن تتحملها محفظتك قبل أن تستطيع أن تثبت لنفسها أنك موجود؟
سألتُ مُتحققًا عن حجم مجموعة الملاحظات الآن. قال: “بحجمٍ يكفي كي يتأذى منه عملاء الضوء.”
في تلك الليلة توقفتُ عن التفكير في الخصوصية كميزة. إنها دين حسابي، وDusk يستوفيه من كل مستخدم في كل مرة يفتح فيها محفظته.
كانت التسوية تُعد احتمالًا. حوّل الشفق ذلك إلى نظرية.
نحن نقف عند حافة أفق الحدث القديم لـ T+2، حيث لم تَكتمل الصفقة بعدُ، لكنها واقعية بالفعل—تراكب بين التسوية والتخلّف، تمنعه يومان من الثقة من الانهيار.
داخل دائرة الشفق، يُحلّ هذا التراكب في كتلة واحدة: أصلٌ ودفعٌ مرتبطان معًا في برهان إثباتٍ صفري المعرفة لا يمكن فصله دون إبطال الكون الذي يصفه.
أتتبّع بنفسي مسار اكتشاف الملاحظة؛ المحفظة تتلمّس عبر شجرة ميركل كما يبحث عقلٌ عن ذكرياته المشفّرة، وأدرك أن الملكية هنا ليست رصيدًا يُعرض، بل سرًّا لا يمكن فك تشفيره إلا من قبل المالك—ولا يتم ذلك إلا بعد إثبات أنه يملك الحق في الاطلاع.
يرى الآخرون—المؤسسات، والجهات التنظيمية، وآليات المقاصة القديمة—المخاطر شيئًا يجب إدارتها عبر أيام؛ أما الشفق فيراها دالة موجية تُنهار في ثوانٍ.
تحت كل ذلك يعمل الاعتماد الموجز Succinct Attestation، طبقة الإجماع التي ترفض أن تكون الحتمية احتمالًا؛ كل بلوك يُختم كأنه نظرية لا يمكن دحضها، بحيث تعني "تمت تسويتها" ما تقول، ولا تعني أبدًا "من المحتمل أن تكون تمت تسويتها".
لا ننتظر التسوية؛ نحن نضغط المستقبل في الحاضر، مستخدمين التشفير لجعل فجوة يومين خيارًا لا قانونًا. وأنا خائف—أو ربما متأكد—أن ما يستبدله الشفق فعليًا ليس جهة المقاصة فحسب، بل الفكرة نفسها التي تقول إن الغد يجب أن يُصدّق قبل أن يصل.
لم أفهم التسوية الذرّية حتى توقفت عن سؤال “كم بسرعة؟” وبدأت أسأل “ماذا يختفي؟”
أول ما يختفي هو دورة تسوية T+2 نفسها: يومان كاملان تُتَّفق فيهما الصفقة لكن لا تُختَم نهائيًا، حيث يتحمل الطرفان مخاطر الطرف المقابل لأن نقل الأصل ونقل المقابل المالي يحدثان كحدثين منفصلين، مع الاعتماد على وسطاء مختلفين في النهاية لإجراء المواءمة.
تتبعت كيف يُدرج تصميم Dusk ذلك ضمن خطوة ذرّية واحدة—فدائرة المعرفة الصفرية تُثبت أن نقل الأصل وتسوية الدفع هما المعاملة نفسها، ومربوطان تشفيرياً بحيث لا يستطيع أي طرف تنفيذ أحدهما دون الآخر، ويُتحقق منهما ويُجعلا نهائيين لحظة تأكيد البلوك.
هذا ليس “مُقصِّراً” للتصفية؛ بل إنه إزالة الوظيفة الجوهرية لغرفة المقاصة نفسها، والفجوة متعددة الأيام التي تستقر فيها المخاطر فعليًا. أجريت المقارنة بنفسي مع دورة قياسية T+2، والفرق ليس فرقاً تدريجياً؛ بل هو فرق بنيوي—يتم ضغط يومين من تعرض الطرف المقابل إلى ما يساويه وقت البلوك، ثوانٍ بدل أيام.
ما منعني من اعتبار ذلك مجرد ادعاء آخر عن “تسوية فورية” هو إدراك أن التسوية الذرّية ليست مجرد سرعة، بل هي القضاء على حالة فشل تتطلب تدخلاً يدوياً حاليًا عندما تُسوّى جهة من الصفقة ولا تُسوّى الجهة الأخرى.
سألت زميلاً يعمل في عمليات ما بعد التداول التقليدية كم تكلف هذه الفجوة فعلياً على أرض الواقع، وكانت الإجابة الصادقة أن فرق المواءمة وُجدت بسببها. لن أتظاهر بأن Dusk أثبت ذلك بعد على حجم مؤسسي—لم يحدث ذلك بعد—لكن الآلية لا تحتاج إلى “قياس” لتكون حقيقية.
فقط نحتاج إلى صفقة واحدة تُثبت أن التسوية الذرّية تجعل فجوة اليومين اختياراً تصميمياً وليست ضرورة تقنية.
شيء جلستُ عليه مدةً أطول مما توقعتُ، ولم تكن تشفيراتُ «داسك» هي ما استوقفني، بل حجمُ الجمهور.
عدتُ تحديدًا إلى تصميم «داسك» لأتتبّع مشكلة مجموعة عدم التمييز: فكرة أن المعاملة المُمَظللة لا تكون خاصةً إلا بقدر حشدِ الملاحظات المتشابهة التي تحيط بها.
إذا بقي التبنّي خفيفًا، فإن الرياضيات لا تكذب، وقد قلت ذلك بصراحة بدلًا من التظاهر بأن التشفير وحده يحل مسألة التعرّض.
ما أعادني إلى الدخول هو «Piecrust»، بيئة التنفيذ القائمة على WASM لدى «داسك»، وكيف تتعامل مع العقود الذكية السرّية بشكل مختلف عن التحويل المُظلَّل البسيط.
نحن لا نخفي الأرصدة هنا فقط؛ بل نخفي أيضًا انتقالات الحالة داخل منطق العقد نفسه، وهذا يعني أن دائرة المعرفة الصفرية يجب أن تُثبت تنفيذ برنامجٍ تم بشكلٍ صحيح دون كشف مُدخلاته أو الخطوات الوسيطة.
جلستُ مع ذلك مدةً لأن ادعاءه الحسابي أصعب بكثير من مجرد إثبات رصيد. ثم هناك جانب الامتثال، وهو الجزء الذي تتجنّبه معظم سلاسل الخصوصية تمامًا: عمل «داسك» في الترخيص مع NPEX ودفعه نحو رموز أمنية مُنظّمة، والذي لا يعمل إلا إذا أمكن للطبقة نفسها من المعرفة الصفرية أن تُثبت الأهلية بشكل انتقائي دون كشف الهوية.
ما زلتُ متشككًا في مدى صمود ذلك أمام الجهات التنظيمية الفعلية بدلًا من الأوراق البيضاء، ولم أرَ حجمًا كافيًا من النشاط المباشر كي أقول إن مجموعة عدم التمييز قد حُلّت. لكن المعمارية على الأقل صادقة بشأن المقايضة: خصوصية تتوسع مع المشاركة، لا خصوصية كضمان ثابت.
وهذا التمييز هو ما فصلها عن عرض “العملة المُظلّلة” المعتاد.
لا يخفي تصميم Dusk معاملاتك؛ بل يخفي حقيقة أنها معاملاتك أنت التي يمكن العثور عليها.
وهذا هو التناقض الذي كان يجذبني باستمرار إلى السؤال نفسه: كيف يُثبت السلسلة صحةَ عملها دون أن تُظهر ما عملت به؟ ظللنا نعود إلى Phoenix، نموذج المعاملات الذي توجد فيه الملاحظات كالتزامات مُشفّرة، ويُثبت فيه الامتلاك عبر دوائر الدليل الصِفري بدلًا من الأرصدة النصّية.
تتبّعتُ مسار اكتشاف الملاحظة بنفسي، عملية المحاولة لفك التشفير باستخدام «مفتاح العرض» مقابل شجرة ميركل، وما لفتني لم يكن ادعاء الخصوصية—بل المفاضلة التي لا يُسوّقها أحد بصوت عالٍ: يجب على كل محفظة أن تحاول فك التشفير مقابل مجموعة متزايدة من الملاحظات فقط لكي تعرف ما الذي تملكه. هذه هي التكلفة الهادئة للسرّية، ويدفعها Dusk مسبقًا حتى لا تضطر السلسلة نفسها إلى ذلك.
ثم يأتي Rusk، طبقة التنفيذ التي تُغلف كل ذلك بما يجب أن يظل قادرًا على اجتياز الإجماع ضمن «Succinct Attestation»، وهو تفرع لإثبات الحصة مُصمّم لتحقيق حسم حتمي بدلًا من تسوية احتمالية.
وجدنا أنفسنا نقارنه أقل بخريطة طريق إيثيريوم التي تتركز على الروّل أب (rollup)، وأكثر بالاندفاع السيبروْبانك القديم: أن الخصوصية والامتثال ليسا نقيضين إذا كانت طبقة الدليل الصِفري معبّرة بما يكفي لإثبات القيود التنظيمية دون كشف البيانات الأساسية.
لم أقتنع بعد بأن ادعاءات الإنتاجية تصمد تحت أحمال المؤسسات الواقعية، وقلت ذلك صراحة عندما دفع أحد الزملاء بالحديث إلى الخلف بشأن لغة «المزامنة فائقة السرعة». لكن الآلية حقيقية وليست «وهج تسويقي» خادعًا، والتمييز بين الأمرين هو ما أبقاني أكتب بدل أن أنصرف.
ما برز هذه المرة لم يكن ضمان خصوصية فينيكس، بل مدى رِقّته لحظة يصبح ملاحظة فينيكس رصيدًا ضمن مونلايت.
تصف وثائق تكامل غسق (Dusk) الخاصة به إيداع مونلايت مباشرًا كحدث محدد وقابل للفهرسة: حدث عقد تحويل غير مُستعاد (غير مُرتجع)، موسوم بموضوع "moonlight"، مع مُستقبِل وقيمة موجبة في LUX.
يحدث هذا الحدث بالطريقة نفسها سواء كانت عملية دخول غسق إلى الحساب قد جاءت من تحويل عام أو من كشف/فكّ ستر ملاحظة فينيكس خاصة. بمجرد أن يصل، يصبح تغيير رصيد قابلًا للإسناد علنًا ومُعلّمًا بطابع زمني وبمبلغ، وبشكل دائم.
الوثائق لا تصف تسريبًا، بل تخبر مُتكاملي الأنظمة بالضبط كيفية فهرسة هذا الأمر عن قصد. لكن هذا يعني أن خصوصية فينيكس تغطي ملاحظة فقط طالما أنها تظل ملاحظة.
في اللحظة التي تتحول فيها، يصبح المبلغ والتوقيت أمرين علنيين وقابلين للاستعلام، بينما تُعاد تعيين سجلّ الملاحظة الذي يقف خلفها إلى الصفر؛ لا يمكن لمُراقب تعقّب أي ملاحظة موّلت الإيداع، لكنه يستطيع مشاهدة كل شيء بدءًا من تلك الكتلة فصاعدًا وبشكل كامل.
لذلك فإن الحد الحقيقي للخصوصية في غسق ليس البروتوكول، بل نقطة التحويل. ما لم أعمله بعد هو ما إذا كان غسق ينشر أي شيء عن أنماط التوقيت أو المبالغ التي تجعل تسلسل "تَحْجِيب ثم صرف" قابلًا للربط (قابلًا للترابط)، مع نفس خطر إزالة إخفاء الهوية الذي تعلّمَه مستخدمو زيكاش (Zcash) وينطبق على أي سلسلة خصوصية لها مخرج عام.
لم أكن أخطط لاختبار ساعة السجن الخاصة بـ DUSK مرة أخرى. لقد فتحت فقط لوحة معلومات مكافآت testnet للمطالبة بالعائد. هناك رأيتها: كان موفّر الإتاحة النهائي الخاص بي بنسبة 99.1% uptime و14 حدث إعادة ضبط للسجن في آخر ثلاثة أشهر.
لوحة المعلومات لم تضع علامة عليها. لقد أضافتها بهدوء إلى السجلّ، بالطريقة التي يخفي بها السيرة الذاتية الفجوات عبر تمديد التواريخ. كل عملية إعادة ضبط أعادت تثبيت StartHeight، وأعادت تشغيل نافذة الحيوية لمدة 28 ساعة قبل أن تنضج النافذة القديمة. لم يكن الموفّر موثوقًا. كان يغسل الغياب عبر العودة.
كنت أُراكم المكافآت من مدقق لم يكن حاضرًا غالبًا، لأن عقوبة تفويت التصويتات تنتهي أسرع مما تفوّته العصور (epochs). المقياس الذي كنت أثق به—الإتاحة—لم يكن يقيس الإتاحة. كان يقيس مدى قدرة المشغّل على تحديث ذريعته (alibi) الخاصة به. في تلك الليلة، لم تكن محادثة صوت DUSK تتناول Phoenix أو Citadel. كانت تتحدث عن مستخدم اسمه Mara يسأل كيف يمكن تدقيق عدد عمليات إعادة ضبط السجن على السلسلة (on-chain). لم يكن لدى أحد جواب نظيف. البيانات موجودة.
الواجهة لا تُظهرها. كنا جميعًا نفوّض إلى مشغّلين لم نرَهم فعليًا يبقون مستيقظين، لأن الرقم الوحيد الذي كان يهم هو الرقم المصمم ليُستغل. الإيقاف/الاقتطاع (Slashing) يعاقب سوء النية. كان السجن يُفترض أن يعاقب الإهمال. لكن عمليًا، يعاقب السجن فقط أولئك الذين ينسون إعادة الدخول قبل أن يلحق بالساعة. لا تحتاج الشبكة إلى مدقق خبيث لكي تفشل.
فهي فقط تحتاج إلى عدد كافٍ من المشغّلين الذين يفهمون أن الغياب مجاني طالما أنك تعود في ارتفاع الكتلة الصحيح. الحسابات واضحة. الإتاحة التي يُبلّغ عنها ليست كذلك.
تابعتُ كيف تمت إزالة مُدقق DUSK من المجموعة النشطة على شبكة الاختبار (testnet). لم يتم اختراقه. لم يتم خصمه. فقط تمت إزالته. كان السبب هو قابلية الإتاحة (liveness): فقد فاتته الكثير من أصوات الجـاهزية النهائية (finality) ضمن نافذة مدتها 28 ساعة.
لقد عمل النظام تمامًا كما صُمّم. هذا ما أقلقني.
لم يفقد المُدقق رصيده المرهون. لم تكن هناك عقوبة تشفيرية. ولا مفتاح خاص مكشوف. فقط خروجٌ هادئ من جولة الإجماع. وهذه هي النقطة التي علقت في ذهني: نافذة الحبس (jailing) تُقاس بالنسبة إلى قيمة StartHeight التي تتم إعادة ضبطها كل مرة يعود فيها المُقدّم (provider) للانضمام. غادر لفترة قصيرة، عد، أعد ضبط الساعة، كرر. يمكن للمشغل غير الموثوق المزمن أن يتفادى الإزالة الدائمة إلى الأبد عبر عدم البقاء دون اتصال مدة كافية لتفعيل العقوبة الكاملة. مسار الإنفاذ (enforcement) الناعم هو المسار الذي فيه الثغرة.
كنتُ أفكر في تلك الثغرة بينما كانت جماعة DUSK تناقش ما إذا كان يجب التعامل مع مُقدمي الجاهزية النهائية (finality providers) كـبنية تحتية أم كشركاء. قال أحدهم في الدردشة: "إذا كانت العقوبة على عدم الاعتمادية هي مهلة (timeout)، فإن عدم الاعتمادية ليست إلا استراتيجية مع خطوات إضافية." لم يضحك أحد. لأن الجميع يعرفون أن مُدققًا يعيد ضبط ساعة حبسه الخاصة لا يخرق القواعد. إنه يُراوغ إيقاع الإنفاذ.
هنا الفجوة بين الأمن التقني والأمن العملي. الزناد التشفيري لإعادة التوقيع المزدوج (double-signing) مطلق، ولا هوادة فيه، وآلي. الزناد الاجتماعي للتكاسل هو آلة حالات (state machine) مع زر إعادة ضبط. أحدهما يحمي الشبكة من الخبث. والآخر يحميها من الإهمال. وفي الوقت الحالي، فإن زر إعادة الضبط في يد المشغل نفسه الذي يُفترض أن يُقيَّده.
"اللعبة في خطر" من المفترض أن تكون أساس الأمن الاقتصادي. لا يملك مقدمو الخدمة النهائية في بابيلون أي شيء منه—ويتحمّل المراهنون تكلفة سوء تصرّفهم.
كنت أظن أن الأمن الاقتصادي يعني أن كل مُحقق نهائي لديه ما يخسره. ثم تتبّعت تسجيل مزوّد الخدمة النهائية في بابيلون—واتّضح لي أن البروتوكول لا يتطلب جَسرةً واحدة (ساتوشي) من الرهن الذاتي للمشاركة.
تذكر وثائق بابيلون ذلك بوضوح: "لا توجد متطلبات للرهان الذاتي لمقدمي الخدمة النهائية". يمكن لأي شخص التسجيل عبر إرسال معاملة تتضمن مفتاحه العام ومعدل العمولة ووصفه. لا يوجد BTC مُقفَل. لا توجد كفالة. لا توجد مخاطر توقيع جزائي على رأس مالهم الخاص. وهذا الجزء هو الذي لم أفصلُه من قبل.
كل سلسلة رئيسية تعمل بإثبات الحصة تتطلب من المُحققين أن يراهنوا بتوكناتهم الخاصة—إيثريوم يتطلب 32 ETH، وكوزموس يتطلب رهنًا ذاتيًا، وسولانا تحتاج SOL. وهذا ينسجم مع الحوافز: إن أسأتَ التصرف تخسر أموالك أنت. بابيلون يقلب ذلك. مقدمو الخدمة النهائية يعرّضون فقط سمعتهم ومكافآتهم المستقبلية للخطر، وليس BTC الخاص بهم. آلية الإيقاف/الخصم كلها—حرق 10% من أموال المُراهنين عند double-sign—لا تمس جيب المُقدّم مباشرةً. المُراهنون هم من يدفع مقابل سوء تصرف المُقدّم.
تؤكد أبحاث التحقيقات أن هذا يخلق مشكلة «الوكيل-الأصيل». إن قام مقدّم الخدمة بمراوغة/خداع (equivocation) فإنه لا يخسر الرهن الذاتي، بل يخسر فقط الرسوم المستقبلية من المُراهنين الذين قد ينسحبون. لكن مع قفل زمني مدته 15 شهرًا وتأخير فك ارتباط مدته 7 أيام، لا يستطيع المُراهنون الانسحاب بسهولة. لدى المقدّم نافذة ليتصرف بشكل سيئ دون عقوبة فورية على رأس المال.
ما لا تعالجه وثائق بابيلون هو ما إذا كان أي مقدّم قد طُلب منه من قبل أن يضع ضمانًا/كفالةً (collateral) بشكل خاص، أو إن كان هذا التصميم قد ورث من نموذج مقدمي الخدمات في كوزموس دون تكييفه مع الثقل الاقتصادي للبيتكوين.
ما أنا متشبّث به: هل تجعل قاعدة بابيلون «لا رهان ذاتي» من الأسهل بدء/تأسيس مجموعة مقدمي الخدمة—أم أنها تخلق نظامًا لا يملك فيه الأشخاص الذين يؤمّنون مليارات من BTC شيئًا يحقّ لهم أن يخسروه؟
لا يزال المالك الذي يملك رصيدًا صفريًا في المبنى يواصل تحصيل الإيجار. تعمل بابل على إعداد مماثل — يمكن لمقدمي خدمات “إثبات الحسم/النهائية” تأمين مراكز مدعومة بالبيتكوين دون أن يضعوا أي بيتكوين بأنفسهم.
كنت أظن أن “الشبكات التي تم تعزيزها بواسطة البيتكوين” تعني أن كل مشغّل لديه مصلحة حقيقية في اللعبة. ثم وجدت صفحة تجنيد بابل — “لا يوجد حد أدنى من البيتكوين مطلوب” لتصبح مقدم خدمات إثبات الحسم.
هذه هي النقطة التي لم أفصلها من قبل. إن مقدم خدمات إثبات الحسم يحتفظ بقوة تصويت الـ BTC المفوّضة ويصوّت في جولات إثبات الحسم. لا يطلب منه أي شيء أن يضع بيتكوين خاصًا به كضمان. تعرضه يأتي بالكامل من عمولة على الأرصدة المفوّضة — وليس من رأس مال يغامر به شخصيًا. قارن ذلك بالإيثيريوم، حيث يضع المشغّلون رأس مالهم الخاص كوسادة تتحمل الخسارة أولًا.
وهناك طبقة ثانية. توضح مستندات بابل فئة “غير مؤهلة” — مشغّلون لم يسجلوا أبدًا لكنهم ما زالوا يتلقون تفويضات. تطبيق الويب لن يسمح للمستخدمين الجدد بتفويضها لهم، لكن التفويضات القائمة بالفعل ما زالت مُسجّلة ومُحتسبة. الفلتر يمنع فقط العلاقات الجديدة. لا يُبطل العلاقات الموجودة.
ما الذي أنا واقف عليه: هل يؤدي إزالة شرط رأس المال إلى خفض حاجز الدخول أمام مجموعة مشغّلين أكثر لا مركزية — أم أنه يعني فقط أن الأشخاص الذين يتخذون قرارات الحسم يمكنهم الانسحاب دون أن يكون على خطّهم أي شيء من أموالهم؟
القطع يحرق. السجن لا يحرق. كان من المفترض أن يكون السجن هو البديل عند التعطل، وقد عمل بشكل جيد من الناحية النظرية—حتى كشف تدقيق أن ساعة السجن نفسها يمكن إعادة ضبطها من قِبل الجهة التي كان من المفترض أن يحدها السجن.
يفصل بابل بين نمطين مختلفين للفشل بشكل كامل. التلاعب بالكلمات/التوقيع المزدوج (Equivocation) يطلق العقوبة بالقطع (Slashing): يتم حرق البيتكوين (BTC) بشكل دائم، لحظة أن تلتقط التشفيرات ذلك. أمّا التعطل فيطلق السجن بدلًا من ذلك—وهو قاعدة حيوية (liveness) تهدف لإزالة مزود من المجموعة النشطة إذا فاته عدد كبير جدًا من أصوات حَصْر/نهائية (finality) داخل نافذة زمنية تقارب 28 ساعة. لا حرق. مجرد إبعاد مؤقت.
هذه هي النقطة التي لم أفصلها من قبل.
وجد تقرير بحثي أمني من OpenZeppelin أن نافذة السجن تُقاس بالنسبة إلى قيمة StartHeight—وأن هذه القيمة تُعاد ضبطها كل مرة يعود فيها مزود نهائية إلى المجموعة النشطة. وهذا أوجد نمطًا قابلاً للاستغلال: ينسحب لفترة قصيرة، ثم يعود قبل أن يؤدي السجن إلى الفعالية مباشرةً، فتتم إعادة ضبط الساعة، ثم يتكرر الأمر إلى ما لا نهاية. يمكن لمزود غير موثوق مزمنًا أن يتفادى السجن إلى الأبد دون أن يظل تقنيًا خارجًا لفترة طويلة كافية ليتم اكتشافه.
هذه فئة مختلفة من المخاطر عن أي شيء في تصميم القطع. يُعاقَب التوقيع المزدوج بواسطة محفز حتمي/قاسٍ من الناحية التشفيرية لا يمكن لأحد التحايل عليه—فمفتاح التعرض يجعل العقوبة تلقائية. أما فرض الحيوية فكان قاعدة أشبه بآلة حالات (state-machine) تعتمد على مؤقت لم يكن أحد قد أكد أنه آمن من نفس الكيان الذي كان من المفترض أن يحده.
غير واضح ما إذا كان هذا الالتفاف المحدد قد كان حيًا على شبكة البث الرئيسية (mainnet) فعلًا، أو تم التقاطه خلال التدقيق قبل النشر—فالتقرير يغطي الآلية لكنه لا يغطي تسلسل زمن التعرض.
ما أفكر فيه: هل من المنطقي اعتبار التوقيع المزدوج والتعطل فئتي مخاطر مختلفتين جوهريًا—لأن إحداهما خبيثة والأخرى ليست كذلك—أم أن هذا يعني فقط أن مسار الإنفاذ «الأكثر ليونة» كان دائمًا هو المكان الذي تختبئ فيه الثغرات الحقيقية؟
قمتُ بفكّ تجميع (decompile) برنامج الصرف (redeem script) الخاص بالخزنة بحثًا عن مخرج للطوارئ. لم يكن هناك أي مخرج. كان هناك فقط التعليمة البرمجية OP_CHECKSEQUENCEVERIFY وارتفاع كتلة سيأتي حتمًا سواء كنت مستعدًا أم لا. لا توجد تجاوزات عبر multisig. لا توجد مفتاح إداري. لا توجد إمكانية إطلاق مبكر يتم تشغيلها بواسطة أوراكل.
عندما تنقر على Unstake، فأنت لا تطلب إذنًا. أنت تشعل فتيلًا يحترق تمامًا بالسرعة التي تنتج بها بلوكات بيتكوين، ولا شيء في هذه الدنيا يمكنه أن يجعله يحترق أسرع.
المشكلة أن السوق لا يتوقف بينما يحترق الفتيل. بعد ستة أيام من فترة فك الارتباط التي مدتها سبعة أيام، ظهرت على الرسم شمعة حمراء بنسبة 12%، ولم أستطع التحرك. لا لأنني تجمّدت. بل لأن سكربت الخزنة كان قد قفل خروجي مسبقًا على طابع زمني لم يأتِ بعد. العائد الذي حققته لم يكن فوائد. كان بدلًا/علاوة جمعتها مقابل بيع حقي في الذعر.
تمت تسعير كل نقطة أساس من ذلك العائد مقابل احتمال أنني سأحتاج إلى سيولة قبل انتهاء مدة الـ timelock، وألا تكون لدي أي طريقة للحصول عليها.
لم تكن دردشة الصوت في تلك الليلة تناقش أسعار الدخول. كانت مليئة بأشخاص يراقبون مؤقتاتهم وهي تنخفض لحظة بلحظة، ويتبادلون لقطات شاشة لمستكشفات الكتل كأنها مجلات غرفة انتظار مستشفى.
الخزنة تؤمّن بيتكوينك. الـ timelock يؤمّن البروتوكول.
تؤمّن الدردشة الجماعية الجزء منك القادر على التحديق في سكين ساقطة دون أن يمسك بها قبل أن ينتهي العدّ التنازلي. لم أتعلم ذلك من الورقة البيضاء. تعلمته من غريب كتب: "تنفّس، block 847,032 آتٍ سواءً كنت مستعدًا أم لا" في محادثة كدتُ لا أنضم إليها.
سكربت الاسترداد واضح وشفاف. أما الاسترداد العاطفي على الجانب الآخر من الـ timelock فليس كذلك.
لم أبحث عن كلمة "الثقة" في الورقة البيضاء. بحثت عن مخرج النجاة، والتجاوز البشري، وسطر الكود الذي يوقف التنفيذ عندما يدرك أحدهم أنه أخطأ. لا يوجد.
مخطط EOTS مرآة بلا رحمة. وقّعت كتلة بصراحة، ثم وقّعت كتلة متعارضة فقط لأراقب كيف تعمل الحسابات. التوقيع الثاني شقّ الأول وأراق المفتاح الخاص على السلسلة كاعتراف لم تكن تعرف أنك تكتبه. لا قاضٍ. لا تصويت. فقط المنحنى يفعل ما تفعله المنحنيات.
لم تبنِ بابل آلية عقاب. لقد بنَت آلة ترسم صورة ذاتية. كل مُدقق يوقّع بشكل صحيح يترك خلفه ليس دليلاً على النزاهة، بل غياب التدمير الذاتي. يظل مفتاحك سريًا فقط طالما أنك تظل منسجمًا مع الحقيقة التي وقّعت عليها أولاً.
هذه هي الانقلابية التي لا يعرف السوق بعد كيف يقيّم ثمنها. سلاسل أخرى تطلب منك الثقة في لجنة. بابل تطلب منك أن تعيش مع النسخة من نفسك التي قد تنكسر تحت شمعة حمراء وتضغط زر الإرسال. نقطة الضعف الوحيدة المتبقية ليست تشفيرية. إنها اللحظة التي تتوقف فيها عن الاعتقاد بأن المرآة ستصمد، وتصبح أنت المهاجم ذاته الذي صُمم البروتوكول ليكشفه.
محادثة صوت المجتمع لا تؤمّن الشبكة. إنها تؤمّن التوقف بين الدافع والفعل. الخزنة تحفظ بيتكوينك. الرياضيات تحفظ المُدققين. محادثة المجموعة تحمل النسخة منك التي لا تزال مستعدة لمواجهة المرآة غدًا. لا أعرف إن كانت بابل تنتصر. أعرف فقط أنها لا تطلب الثقة. إنها تطلب التحمل، والتحمل هو الألفا الوحيد الذي لا يمكن استغلاله أو زراعته.
بحثت عن كلمة "الثقة" في الورقة البيضاء لبابل أربع مرات. وجدتها تمامًا صفرًا.
هذا الرقم لم يتركني أغمض جفني. ليس لأن الثقة غائبة عن البروتوكول. بل لأنها استُبدلت بشيء لم أكن مستعدًا لتسميته.
تتبّعت مخطط توقيع EOTS مقابل موفّر نهائية (finality) على شبكة اختبار قمت بتخريبه عمدًا. وقّع مرة واحدة بصدق، وستظل المفتاح مخفيًا. وقّع مرتين على كتل متضاربة، وستقوم الرياضيات بنشر مفتاحك الخاص على الشبكة. لا هيئة قضائية. لا تصويت على الحوكمة. والعقوبة لا تحتاج إلى قاضٍ لأن الكذبة تحمل جلّادها معها.
أجريت المحاكاة أتوقع وجود عتبة، أو فترة سماح، أو تدخل بشري. لا شيء من ذلك موجود. الاقتصاديات هي ما أوقعني.
المتحقق الذي يوقّع مرتين يفقد الرصيد المرتبط بالإضافة إلى BTC المقتطع. لكن هذه هي تكلفة الفشل في الهجوم. أما تكلفة إطلاقه فهي أن تكون أسرع من الطابع الزمني لبيتكوين أولًا، وهذا يعني إعادة تنظيم دفتر حسابات بقيمة تريليون دولار قبل أن تتفعّل حتى عملية استخراج التوقيع.
لا تُقتطع لمجرد المحاولة. تُقتطع لأنك تحاول وتخسر. هذه هي الجزء الذي لا أستطيع التوقف عن التفكير فيه. بابل لا تمنعك من أن تكون غير صادق. بل تجعل عدم الصدق متماثلًا بنيويًا مع الاعتراف بمجرد أن ترفض إثباتات العمل في بيتكوين أن تتابع فوركك.
معظم السلاسل تبيعك الثقة عبر لجنة. بابل تبيعك الثقة على شكل بديهية: إذا غششت، فستفضحك الرياضيات قبل أن يلاحظ أي إنسان. هذه ليست أمنًا. إنها حتمية.
لا أعلم إن كان السوق قد تسعّر ذلك بعد. أعلم فقط أن كل سلسلة أخرى تطلب منك أن تؤمن. بابل تطلب منك أن تحسب. والحساب أرخص من الإيمان حتى يأتي الوقت الذي لم يعد فيه كذلك.
كنت أريد أن أعرف ما الذي يحدث في الفجوة بين تغيّر الدعم الحقيقي لدى مزوّد الإنهاء (finality provider) وبين قيام البروتوكول بالإقرار بأن التغيير قد حصل. لذلك تتبّعت كيف يعالج مكوّن x/epoching في Babylon فعليًا تفويضًا جديدًا.
رسائل الإيداع والسحب لا تُنفّذ فورًا. فهي تُحمَّل في قائمة انتظار لمدة طول دورة (epoch) كاملة، ثم تُعالج في دفعة واحدة عند الحدّ الفاصل. وحتى يصل ذلك الحدّ، تعكس قوة تصويت الإنهاء في السلسلة اللقطة القديمة، لا اللقطة الحالية. قد يكون مزوّد الإنهاء يفقد تفويضات في الوقت الفعلي، وقد يكون يفرّغ نفسه اقتصاديًا في منتصف الدورة، ومع ذلك لا يزال يصوّت بالوزن الذي كان لديه قبل أن يسحب أي شخص.
هذا ليس خللًا. بل هو المقايضة مقابل تجميع آلاف عمليات التفويض المدعومة ببيتكوين (BTC) في تسوية واحدة بدلًا من معالجة كل عملية على حدة. لكن هذا يعني أن الأمان الاقتصادي-التمويلي الذي يدعم كتلة معيّنة ليس الأمان الموجود الآن. إنه الأمان الذي كان موجودًا وقت آخر نقطة تحقق (checkpoint)، ويُحمَل للأمام على أساس الثقة بأن شيئًا جوهريًا لم يتغيّر بينهما.
استمررت في مقارنتها بكيفية عمل حدّ ائتمان فعليًا. لا يتم تحديث حدّك فور تغيّر دخلك. بل يتم تحديثه ضمن دورة، وفي الفترة بين ذلك، يكون البنك يمدّ الثقة استنادًا إلى رقم يكون بالفعل غير دقيق قليلًا. يفعل Babylon الشيء نفسه مع وزن بيتكوين، فقط مع تشفير أقوى ملفوف حول عدم الدقة.
لا أعتقد أن هذا يُخلّ بالنموذج. إلغاء الربط السريع، بحوالي يومين، يحافظ على هذه النافذة قصيرة مقارنةً بسلاسل PoS النموذجية. لكن «قصيرة» ليست «صفرًا»، والجزء الذي يستحق المراقبة ليس سعر الرمز. بل مدى اتساع نافذة الدورة هذه مع نمو مجموعة المُحققين (validator set).
افترضتُ أن لجنة العهد مجرد إجراء شكلي، من نوع الـ multisig الذي تحتاجه كل بروتوكولات الاستيكينغ في بيتكوين، ولا يقرأ أحد الكود الخاص بها. ولم أتراجع عن افتراضي إلا بعد تتبّع ما يحدث عندما يحاول المُدقِّق إلغاء الربط مبكّرًا.
لا توجد قائمة انتظار لإلغاء الربط بالطريقة التي يتوقعها الناس. عندما تقوم بالاستيكينغ، فإنك لا توقّع وعدًا بالانتظار. بل توقّع معاملة الخروج نفسها مسبقًا، وهي مؤقّتة بوقت محدّد (timelocked)، ومحتفظ بها لدى لجنة العهد قبل أن تتحرّك عملات الـ BTC الخاصة بك أصلًا باتجاه المُدقِّق. لا تقرّر اللجنة ما إذا كنت ستسترد بيتكوينك أم لا. إنها تحتفظ بمعاملةٍ كانت قد حُسمت مسبقًا، وما عليها إلا أن تنتظر الساعة التي حدّدتها التوقيعة.
هذه التفاصيل الواحدة تغيّر حقيقة ما تكونه اللجنة فعلًا. ليست جهةَ حوكمة تتمتّع بسلطة تقديرية. إنها كاتب عدل (موثّق) لقرار اتخذته بالفعل. وظيفتها برمّتها هي رفض أن يكون لديها رأي. في اللحظة التي يبدأ فيها أحد أعضاء العهد بتقييم ما إذا كان خروجك منصفًا، تكون المنظومة قد فشلت بالفعل، لأن العدالة كان من المفترض تسويتها في وقت التوقيع، لا في وقت الاسترداد.
واصلت التفكير في مدى غرابة ذلك خارج نطاق الكود. تقريبًا كل مؤسسة نتعامل معها—بنك، أو مالك عقار، أو محكمة—تحتفظ بالحق في إعادة تفسير حالتك لاحقًا. لجنة بيبلِيون مبنية بحيث لا يكون لديها أي “حالة” لإعادة تفسيرها. لقد جرى إغلاقها بالتوقيع بالفعل.
لا أظن أن ذلك يجعل الخروج المبكر بلا ألم. بل يعني أن الألم تم تسعيره قبل أن تَستيك، وليس تمت المساومة عليه بعد ذلك. بنيةٌ تكون فيها أصعب محادثة قد حدثت بالفعل، بهدوء، في اليوم الذي ضغطت فيه تأكيد.