يمكن للغدة النخامية أخذ فرق (diff) شيفرة والتحقق مما إذا كان يتعارض مع مواصفة مقبولة قبل دمج هذا التغيير. لقد غيّر ذلك التفصيل طريقتي في التفكير عند البحث عن بروتوكول مثل Dusk، لأن قراءة ما يُفترض أن تفعله الأنظمة لا تأخذك إلا إلى منتصف الطريق. بنى Dusk الغدة النخامية بعد معالجة الانحراف عن المواصفات داخليًا، حيث قد تتوقف القرارات والمصطلحات والتنفيذ تدريجيًا عن التطابق مع تطور قاعدة الشيفرة. تقوم الأداة بفهرسة هذه النية المسجلة، ويمكنها الإبلاغ عن تغييرات في التنفيذ تتعارض معها، وتتبع المناطق ذات الصلة المتأثرة عندما تتغير إحدى القرارات. كما أنها حتمية (deterministic) افتراضيًا. بالنسبة إليّ، هذا يوفّر اختبار ضغط مفيدًا لأبحاث البروتوكول: إذا كنت أستنتج نتيجة من ادعاء معماري، فأنا أريد طريقة لملاحظة متى تحركت الشيفرة بينما لم يتحرك الادعاء. يمكن لمواصفة أن تصف النظام المقصود. يحدد التنفيذ ما إذا كان هذا الوصف لا يزال صحيحًا. تلك الفجوة تستحق التحقق. @Dusk $DUSK #dusk
إن إنذار الدخان يكون أقل طمأنة إذا قمت باختباره مرة واحدة فقط. وهكذا تقريبًا بدأت بالنظر في أعمال Dusk المتعلقة بـ AEGIS. كانت العناوين تتحدث عن موجة المعالجة، لكن التفاصيل الأكثر هدوءًا التي لاحظتها تأتي بعد الإصلاحات. قامت AEGIS بإصدار إصلاحات لـ 39 ملاحظة تدقيق، بما في ذلك 7 تم تصنيفها على أنها حرجة. لكن إغلاق الملاحظة ليس سوى لحظة واحدة في عمل المدقق. كما أضاف Dusk تغطية لاختبارات الانحدار مبنية على أنماط الفشل الفعلية التي تم اكتشافها خلال التدقيق. وبالنسبة لقضايا رسوم Phoenix والاسترداد، شملت الاختبارات محاولات التضخم، ومسارات تجاوز السعة، والتلاعب بالرسوم. أجد ذلك أكثر فائدة من التعامل مع عبارة «تمت المعالجة» باعتبارها الحالة النهائية. يمكن أن يعود الخلل المُصلح لاحقًا عبر إعادة الهيكلة أو تغييرات الاعتماديات أو مسار كود آخر. يضمن اختبار الانحدار بقاء حالة الفشل القديمة داخل عملية التحقق. كما قام Dusk بتجميع الأعمال اللاحقة حسب السبب الجذري، حيث كانت عدة ملاحظات في الواقع أعراضًا مختلفة لنفس المشكلة الكامنة. هذه هي الطبقة التي كنت سأراقبها بصفتِي مدققًا. يسجل التقرير ما كان خاطئًا. والأقوى من ذلك هو مجموعة اختبارات تستمر في السؤال عمّا إذا كان قد عاد. @Dusk $DUSK #dusk
إصدار جديد. أوقف العقدة. استبدل الملفات التنفيذية. ثم تحقّق مما إذا كان كل ما حمّلته صحيحًا فعلًا. هذا هو النوع من إجراءات الصيانة التي افترضت أن مشغّلي Dusk كان عليهم فقط إدارتها بعناية. لكن مسار مُثبّت العقدة الأحدث غيّر تفصيلًا واحدًا أعتقد أنه أهم مما يبدو. لقد قَسَّمت ترقية الإصدار 0.5.22 عملية التحديث بحيث يتم تجهيز بدائل التالف قبل استبدال الملفات المباشرة والتحقق منها. تتبع إجراءات ترقية Dusk الترتيب نفسه: يقوم المُثبّت بتنزيل ملفات Rusk وملفات المحفظة المدعومة، ويقوم بفحصها، ولا يتوقف بعد ذلك خدمة Rusk قيد التشغيل. كما يحافظ على حالة السلسلة للمشغّل ومفاتيح الإجماع وعمليات تجاوز الخدمات المقصودة، بدلًا من التعامل مع الترقية كأنها تثبيت عقدة جديد. تبقى الخدمة متوقفة بعد ذلك حتى يتمكّن المشغّل من مراجعة الإعداد المُعاد إنشاؤه، وتشغيل Rusk عمدًا، والتأكد من تقدم الأقران وارتفاع الكتلة قبل اعتبار المهمة قد اكتملت. إنها معلم تشغيل صغير لكنه مفيد. تبدأ نافذة الترقية الآن بعد أن يصبح الاستبدال جاهزًا، وليس بينما ما زال المشغّل يكتشف إن كان قابلًا للاستخدام. بالنسبة للبنية التحتية التي يُفترض أن تظل متاحة، فإن هذا الترتيب يستحق أكثر من مجرد أمرٍ مناسب آخر. @Dusk $DUSK #dusk
وضع حزمة على عتبة الباب يختلف عن مطاردة شاحنة التوصيل. ظللت أعود إلى ذلك عندما نظرت إلى تغيّرٍ أكثر هدوءًا داخل TermMax V2. أصبحت أوامر الحد متاحة عبر كل أسواق TermMax. يمكن للمقرض تحديد أقل معدل يرغب في قبوله، بينما يمكن للمقترض تعيين الحد الأقصى. إذا كانت السيولة ضعيفة أو أن السعر الحالي ببساطة لا يستحق الاستحواذ عليه، لا يضطر المتداول إلى عبور ما هو موجود هناك الآن. يمكنه نشر شروطه الخاصة والانتظار حتى يتولى شخص ما الجانب الآخر. أعتقد أن هذا يصبح أكثر أهمية مع نمو حجم المركز، لأن التنفيذ الفوري قد يصبح مكلفًا عندما لا تستطيع السيولة المتاحة استيعاب الأمر بشكل نظيف. الميزة الواضحة هي تنفيذ الصفقة. أما غير الواضحة فهي القدرة على رفض صفقة سيئة دون مغادرة السوق بالكامل. لم تكن V1 تقدم أوامر الحد إلا في مجموعة فرعية من الأسواق. أما جعلها متاحة على مستوى السوق بالكامل فيحوّل الصبر إلى خيار تنفيذ فعلي بدل أن يكون شيئًا يديره المتداول خارج البروتوكول. ليس كل مركز يحتاج إلى أخذه الآن. أحيانًا تكون أفضل أداة للتداول هي معدل أنت مستعد للانتظار عليه. @TermMax #TermMax
تمنح DuskVM كل عقدٍ مخزن وسيطات بحجم 64 كيلوبايت. وهذا تفصيلٌ بنّاءٌ أكثر إفصاحًا بكثير من عبارة «يدعم Rust وWASM». في البداية قرأتُ تنفيذ WASM الأصلي على أنه بابٌ مفتوح نوعًا ما. عند النظر عن كثب، لدى DuskVM حدٌّ محدد يجب على كل عقدٍ احترامه. يجب أن يكشف العقد عن argbuf، وهو المكان الذي تُوضَع فيه بيانات الاستدعاء (call data). كما تتبع الدوال المعروضة اصطلاح DuskVM fn foo(u32) -> u32؛ حيث يُستخدمَت القيمة الواردة لوصف عدد البايتات التي يجب قراءتها، وتصف قيمة الإرجاع المخرجات التي يجب كتابتها مرةً أخرى. ولا تقوم DuskVM بتصحيح إدخال العقد من أجله. لا يزال العقد الذكي مسؤولًا عن التحقق مما يدخل إلى ذلك المخزن ومعالجته بأمان. وهذا هو اختبار الضغط الذي سأفرضه على من يختارون المسار الأصلي عند بناء الحلول. إن جعل Rust يترجم إلى WASM لا يثبت بنفسه إلا القليل. لا يزال العقد بحاجة إلى التصرف بشكل صحيح عند حد ABI الخاص بـ DuskVM في كل مرة تعبر فيها بيانات خارجية ذلك الحد. يوفر التنفيذ الأصلي للمطوّرين وصولًا مباشرًا إلى قدرات Dusk L1. لكن مخزن الـ 64 كيلوبايت هو المكان الذي تصبح فيه البنية المجردة هندسةً شائعة جدًا: تأتي البايتات، وعلى عقدك أن يعرف بالضبط ماذا يفعل بها. @Dusk $DUSK #dusk
وهذا يجعل تاريخ الاستحقاق أكثر تعقيدًا مما يبدو للوهلة الأولى. قرأت مبدئيًا تدفق التصفية لدى TermMax على أنه مألوف إلى حد ما: تصل الديون إلى الاستحقاق، وتتعرض المراكز غير المسددة للتصفية، ويغطي الضمان ما لم يسدده المقترضون. لكن الآلية لا تنتهي بالضرورة عند هذا الحد. عندما يفشل المقترض في سداد الدفعة، يفتح TermMax نافذة تصفية مدتها ساعتان. وإذا بقيت الديون غير مسددة أو تمت تصفيتها جزئيًا فقط بعد انقضاء تلك النافذة، تبدأ التسوية بالتسليم الفعلي ويمكن أن يضم صندوق الاسترداد كلًا من الأصل الأساسي والضمان. ثم يقوم حاملو FT بعد ذلك بإجراء الاسترداد بنسبةٍ من ذلك الصندوق المختلط. بالنسبة للباحث، أعتقد أن هذا يغيّر ما يستحق الاهتمام عند مقارنة أسواق ذات أسعار فائدة ثابتة. الاكتفاء بالنظر إلى قيمة الاستحقاق الموعودة يغفل الحالة التي قد يدخلها النظام عندما لا يمكن للتصفية إنهاء الدين بالكامل. النتيجة النهائية لم تعد مجرد “سداد” مقابل “تعثر”. يمكن أن تتغير تركيبة ما يدعم الاسترداد. وتبرز هذه النقطة بشكل خاص عند دراسة أسواق قد يتصرف فيها الضمان بشكل مختلف جدًا عن أصل الدين تحت الضغط. لذلك، يمتلك استحقاق TermMax متغيرًا آخر يستحق النمذجة: ما الذي يمكن أن يكون موجودًا فعليًا في صندوق الاسترداد إذا نفدت القدرة من المسار المعتاد للتصفية؟ يخبرك السعر الثابت بالاقتصاديات المجدولة. ويخبرك التسليم الفعلي لماذا يستحق مسار الفشل نموذجًا مستقلًا. @TermMax #TermMax
إن شراء تذكرة حفلة موسيقية والحصول فعليًا على التذكرة حدثان مختلفان. كنت أسترجع هذا الفرق وأنا أتأمل كيف يتعامل Dusk مع التداول الخاضع للتنظيم، لأن تنفيذ صفقة مطابقة لا يعني نهاية سير العمل أيضًا. لا يزال يتعين على الأصل الوصول إلى أحد الطرفين، وعلى الدفع الوصول إلى الطرف الآخر. يوفر DuskDS حتمية نهائية (deterministic finality) تحت تلك العملية، بينما صُممت البنية السوقية لدى Dusk لتنسيق شقّ الأصل وشقّ الدفع من أجل تسوية على نمط “تسليم مقابل دفع”. وهذا يفسر أيضًا سبب لفت انتباهي عمل NPEX بما يتجاوز مجرد العنوان الرئيسي الخاص بالتجزئة (tokenization). يصف Dusk التعاون حول الإصدار والتداول والإفصاح والتسوية باعتبارها سير عمل مترابطًا. بالنسبة للمتداول، الطبقة الأهدأ هي ما يحدث بعد أن تقول الأوامر “تم.” إذا كانت حركة الأصل والدفع ما زالت تعيشان في أنظمة غير مترابطة، فإن مخاطر التسوية والمطابقة لا تختفي لمجرد أن الصفقة انتقلت إلى البلوكشين. لذلك كنت سأراقب مسار التسوية عن كثب مثلما أراقب واجهة التداول. التنفيذ هو ما يجذب الانتباه. أما الاكتمال فهو ما يجعل الصفقة واقعية. @Dusk $DUSK #dusk
افتح صفحة الأمان. ابحث عن أسماء عمليات التدقيق. افتح تبويبًا آخر فقط لمعرفة ما الذي تمّت مراجعته فعليًا. هذه الروتينية هي ما جعلني أنتبه إلى أن درجة TermMax في مراجعة الجودة لعملية DeFiSafety وصلت إلى 93%. لقد رأيت ما يكفي من صفحات الأمان حيث تكون الشارات أسهل في العثور عليها من الأدلة الموجودة خلفها. هنا، توجد نتيجة خارجية للتحقق منها. حصلت TermMax على تقييم PASS من DeFiSafety عبر تقييم PQR الخاص بها. وبالنسبة لجهة التحقق، فهذا يغيّر المهمة قليلًا. “يُؤخذ الأمان على محمل الجد” مجرد ادعاء. المراجعة الخارجية التي تحظى بدرجة تمنحك شيئًا ملموسًا يمكن مساءلته. يمكنك مقارنة لغة الأمان الخاصة بالبروتوكول نفسه بتقييم نظر في جودة عملياته ووصل إلى نتيجة قابلة للقياس. ومع ذلك، لا يعني ذلك أن TermMax خالية من المخاطر. لا يمكن لدرجة 93% أن تضمن أبدًا أن العقود المستقبلية أو مدخلات الأوراكل أو التغييرات التشغيلية لن تفشل. هذا ليس ما تثبته هذه الأرقام. لكنها تمنح التحقق نقطة انطلاق أكثر صعوبة من الاكتفاء بنصوص التسويق. وأعتقد أن هذا هو الفتح المفيد. لم يعد لدى المُحقق مجرد مجموعة من ادعاءات الأمان لفرزها. الآن توجد معايير منشورة بجانبها. 93% ليست نهاية التدقيق. إنها تجعل جولة التدقيق التالية أكثر رسوخًا. @TermMax #TermMax
يتأخر العقدة. تحقق من الارتفاع. تحقق من الأقران. استعد الحالة. ثم اقضِ وقتًا أطول في مراقبتها وهي تلحق بالركب. افترضت أن نوع التعافي هذا يعني إعادة بناء أجزاء كبيرة من السلسلة أكثر مما هو ضروري. جعلني مسار fast-sync الخاص بـ Dusk أنظر إلى صيانة العقد بشكل مختلف. يتضمن مُثبّت العقدة الآن download_state لبيئة mainnet وtestnet. بالنسبة لعقدة Rusk افتراضية، يمكنها جلب لقطة حالة منشورة واستبدال حالة السلسلة المحلية وقاعدة البيانات. ثم يعيد المشغّل تشغيل Rusk ويتحقق أن ارتفاع البلوك يتحرك باتجاه آخر نقطة في الشبكة الحالية. ما لفت انتباهي هو ما تتركه العملية دون مساس. لا يقوم fast-sync باستبدال مفاتيح إجماع العقدة أو إعداداتها. لذلك، ليس التعافي تلقائيًا إعادة بناء كاملة للعقدة. هذا فتح عملي لشخص يُتوقع منه الحفاظ على توفر البنية التحتية. عندما تصبح الحالة المحلية غير صالحة، يكون لدى المشغّل مسار مدعوم للعودة إلى السلسلة المباشرة دون البدء بإعداد كل شيء مرة أخرى. لا توجد ميزة مبهرة هنا. فقط مهمة صيانة يمكن أن تصبح أقل إيلامًا بشكل ملحوظ عندما يحدث خطأ ما. @Dusk $DUSK #dusk
كنت أظن أن الجزء المزعج في التداول بسعر ثابت هو فقط العثور على السعر الذي تريده. ثم لاحظت ما الذي تغيّره TermMax في V2. كانت المشكلة الأصعب هي التنفيذ المُجزّأ. قد يكون لدى المتداول سيولة متروكة في أوامر نطاقات curator، وسيولة أخرى في أوامر محددة فردية (limit) — وكانت هذه مصادر منفصلة. لذلك كان الحصول على ملء أفضل يعني تنفيذ جزء من أعمال التوجيه بنفسك. قارن بين الأوامر. حدّد أين توجد السيولة المفيدة. تعامل معها بشكل منفصل. تزيل V2 هذه القطعة الصغيرة من التجميع اليدوي للسوق. عندما يُقرض المتداول أو يقترض، تقوم أوامر Unified Orders بسحب السيولة المتاحة من نطاقات curator ومن أوامر limit الفردية في ذلك السوق، ثم تجمع التنفيذ في معاملة واحدة. اقتباس واحد. توقيع واحد. يحدث التوجيه تحت السطح. أنا أحب هذا لأنه يعالج مشكلة غير لامعة إلى حد ما. تحسين البنية التحتية للسوق لا يكون دائمًا استراتيجية أخرى أو أصلًا آخر. أحيانًا يكون الأمر ببساطة هو إزالة قرار كان على المتداول ألا يحتاج أبدًا إلى اتخاذه يدويًا. لا يزال المتداول يقرر ما إذا كان السعر والمركز منطقيين. يقوم TermMax V2 فقط بإيقاف عملية إعادة بناء خريطة السيولة قبل تنفيذ هذا القرار. إنها مواصفة عمل أكثر وضوحًا بكثير للشخص على الطرف الآخر من الشاشة. @TermMax #TermMax
وأعتقد أن هذا هو المكان الذي يصبح فيه وصف Dusk ببساطة بـ “بلوكشين خاص” غير دقيق بما يكفي. عندما نظرت إلى ما يمكن للباحث فعليًا فحصه، لاحظت أن Dusk لا يجعل قابلية الملاحظة خيارًا مطلقًا بين كل شيء أو لا شيء. يوفّر Moonlight للشبكة نموذج معاملات عام قائم على الحسابات، بينما تتولى Phoenix التعامل مع عمليات التحويل المُشفّاة. لا يزال المستكشف الرسمي يعرض معلومات الشبكة العامة مثل الكتل والعقود والـ provisioners والرسوم واستخدام الغاز، ويمكنه تحديد أنواع المعاملات والبيانات الوصفية المتاحة. ترسم Phoenix الحدود بشكل أكثر تحديدًا. بالنسبة إلى عمليات التحويل المُشفّاة، لا يتم كشف المرسل أو المستقبل أو المبلغ المحوّل للمراقبين العاديين. لذلك يمكن للباحث ما زال فحص البنية المرئية للشبكة دون أن يتلقى تلقائيًا خريطة لكل علاقة مالية سرّية تقف خلفها. هذا التباين مفيد لي أكثر من معادلة الخصوصية بسلسلة غير شفافة. تحتاج الأبحاث إلى إشارات يمكن ملاحظتها. أحيانًا تكون السرية المالية بحاجة إلى أن تبقى بعض الحقول خارج تلك الإشارات. تتيح نماذج المعاملات في Dusk أن يتعايش الشرطان على الشبكة نفسها، ما يعني أن دراسة النشاط لا تتطلب بالضرورة تحويل كل تفاصيل تحويلات المستخدمين إلى مواد بحثية علنية. @Dusk $DUSK #dusk
تذكرة القطار هي في الأساس وعد صغير مرتبط بوجهة وبوقت. عند التدقيق في TermMax، أعتقد أن رمزها ذو السعر الثابت يؤدي عملاً مفاهيميًا أكبر مما يوحي به العنوان «الإقراض بسعر ثابت». يمثل الرمز FT الحق في استرداد القيمة الاسمية لمركز دين عند الاستحقاق. يبدو ذلك أشبه بتفاصيل البنية التحتية. بالنسبة للمشتري، فهذا يغيّر ما الذي يتم شراؤه فعليًا. أنت لا تقوم فقط بإيداع أصل ومشاهدة رقم APY يستقر على لوحة المعلومات. إن المطالبة محددة الأجل نفسها مُرقمنة. احتفظ بـ FT حتى تاريخ الاستحقاق ويمكن استرداده مقابل القيمة الأساسية التي يمثّلها. يصفه البروتوكول بمصطلحات السند الصفري القسيمة. أجد ذلك أكثر أهمية من مجرد تسمية «السعر الثابت» وحدها. فبمجرد أن توجد مطالبة مستقبلية كرمز، يمكن لـ TermMax أيضًا استخدام FT تلك في أماكن أخرى خلال دورة حياة القرض. يستطيع المقترضون شراء FTs المقابلة قبل الاستحقاق واستخدامها لسداد الدين، بدل التعامل مع المركز على أنه شيء يختفي فقط في تاريخ الاستحقاق. لذا فإن الجزء الأكثر هدوءًا هنا هو ترميز الأجل نفسه. يتم تضمين تاريخ الاستحقاق، وحق الاسترداد، واقتصاديات السعر الثابت في شيء يمكن للبروتوكول بالفعل أن يحركه عبر السوق. بالنسبة للمشتري، يجعل ذلك المنتج أسهل للفهم. ليس «ما العائد الذي تتم إعلانه اليوم؟» بل أقرب إلى: «ما هي المطالبة التي أشتريها، وماذا تصبح عند الاستحقاق؟» هذا الفرق صغير على مستوى الواجهة. هيكليًا، يؤدي الكثير من العمل. @TermMax #TermMax
اعتدت أن أظن أن المعاملات السرّية على السلسلة تترك المدققين أمام خيارين سيّئين. إما نشر المعاملة علنًا، أو فقد القدرة على فحصها. أجبرني فينيكس على إعادة التفكير في ذلك. يُبقي نموذج المعاملات المُشفّرة لدى Dusk الأموال في ملاحظات مُشفّرة، ويستخدم إثباتات المعرفة الصفرية لإثبات صحة التحويل دون الكشف علنًا عن المبلغ أو الأطراف وراءه. لكن “الخاص” لا يعني أنه غير قابل للقراءة إلى الأبد. تدعم فينيكس مفاتيح العرض، لذا يمكن كشف معلومات المعاملة بشكل انتقائي عندما تتطلب اللوائح أو عمليات التدقيق ذلك. أعتقد أن هذا التمييز يحل مشكلة محددة جدًا بالنسبة للمدقق. لا يحتاج الجمهور إلى وراثة مستوى رؤية المدقق لمجرد أن هناك تدقيقًا يجب أن يحدث. يمكن أن تبقى معاملة فينيكس مُخفّاة عن المراقبين العاديين بينما يمكن لشخص لديه مفتاح العرض المناسب الوصول إلى المعلومات اللازمة للمراجعة. تلك علاقة أنظف بين السرّية والإشراف من مجرد عرض كل حركة مالية منذ اليوم الأول. بالنسبة للمدقق، لا يتمثل الارتياح في تقليل الأدلة. بل في الحصول على الأدلة دون أن يُطلب من الجميع الآخر تلقيها أيضًا. @Dusk $DUSK #dusk
إذا كنت تدير بنية تحتية لتطبيق يحتاج إلى بيانات سلسلة تاريخية، فإن عبارة “شغّل مُصدّقًا” ليست تلقائيًا الوصف الوظيفي الصحيح. في البداية وضعت تشغيل عقد Dusk ضمن تلك الفئة المعتادة. وعند النظر عن كثب، اتضح أن ذلك كان مبسطًا جدًا. يمتلك Dusk وضع أرشفة لـ Rusk يحتفظ بالفهارس التاريخية المؤكدة إلى جانب الحالة العادية للسلسلة. يمكن للتطبيقات الاستعلام عن هذا الأرشيف للحصول على نشاط Moonlight التاريخي والأحداث المؤكدة. لكن مشغّل الأرشيف لا يتعين عليه الرهان أو المشاركة في الإجماع. يؤدي هذا الفرق إلى تغيير كيفية تصنيفي للدور. يوصي Dusk في الواقع بالحفاظ على بنية API الخاصة بالإنتاج منفصلة عن مهام مُوفّر الموارد (provisioner). يمكن عندها أن تبقى أحمال الاستعلام وصيانة الأرشيف بعيدًا عن العقدة المسؤولة عن الإجماع. لذلك يمكن أن يكون المشغّل مفيدًا لطبقة التطبيقات دون أن يصبح تلقائيًا مُصدّقًا. هذه وظيفة أضيق بكثير من “تأمين الشبكة”، لكنها ليست بسيطة. ما يزال يتعين وجود مكان موثوق للاستعلام منه عن الأرصدة التاريخية والأحداث ونشاط المعاملات. على Dusk، تشغيل العقدة ليس دورًا واحدًا فقط بإعدادات مختلفة. يمكن لمشغّل الأرشيف أن يكون يدير ذاكرة السلسلة للتطبيقات بينما يتولى المُوفّرون (provisioners) الإجماع في مكان آخر. @Dusk $DUSK #dusk
إن الكاميرا الرائعة قد تصبح مزعجة بسرعة إذا كانت كل عدسة تحتاج إلى محول مُصنَّع يدويًا. راودتني فكرة مشابهة عندما نظرت عن كثب إلى DuskVM. العقود الذكية السرّية هي العنوان الأبرز بلا شك، لكنني كنت أعود باستمرار إلى شيء أقل بهرجًا: مُحرّكات البيانات. بالنسبة لمنشئ يقوم بشحن تطبيق Dusk أصلي، فإن كتابة العقد ليست سوى جزء من المهمة. ما حول التطبيق ما زال يجب أن يفهم كيفية تنسيق المدخلات، وتفسير المخرجات، وتحويل طرق العقد إلى شيء يمكن للمستخدم التفاعل معه فعليًا. لقد دمجت Dusk عمل الترجمة هذا في أدواتها. يمكن لـ Forge إنشاء صادرات ABI والـ schemas ومحرّكات البيانات من Rust مُشروح، بينما تتولى تلك المحرّكات ترميز بيانات العقد وفك ترميزها. بعد ذلك يمكن لـ Dusk Connect تحميل المحرّك عندما يجهّز dApp أصلي استدعاءات ويكتب. أعتقد أن هذه الطبقة تستحق اهتمامًا أكبر تحديدًا لأن المستخدمين ينبغي ألا يلحظوها تقريبًا. يمكن للمبدع أن يبذل جهدًا أقل في إعادة بناء نفس البنية من العقد إلى الواجهة، وأن يوجه انتباهًا أكبر إلى ما يفترض أن يفعله التطبيق. قد تكون الخصوصية هي ما يجعل Dusk يلفت الانتباه أولًا. لكن على المبدعين أيضًا شحن شيء يمكن للناس استخدامه، وهذه القطع الهادئة هي ما يساعد عقود native DuskVM على الانتقال من كود قابل للتنفيذ إلى واجهة فعلية. @Dusk $DUSK #dusk
افتح تطبيقًا. انتقل إلى محفظة منفصلة. ارجع مرة أخرى. وافق. كرر. تلك الحلقة الصغيرة تصبح قديمة بسرعة. عند إلقاء نظرة عن كثب على مكدس محفظة Dusk، أعتقد أن هذه هي المرحلة التي تهم أكثر من مجرد ادعاء واسع آخر حول الخصوصية. لدى Dusk الآن إضافة متصفح رسمية للتخزين الذاتي مصممة للاتصال مباشرةً بالتطبيقات المتوافقة. يمكن للتطبيق أن يطلب الوصول إلى الحساب والتوقيعات والمعاملات، بينما يحتفظ المستخدم بالموافقة داخل المحفظة. وما لفت انتباهي هو ما يضعه Dusk خلف ذلك التدفق المألوف. تُدير المحفظة نفسها كلًا من DUSK العام والمشفّر. لذا فإن استخدام نموذج خصوصية Dusk لا يتطلب بالضرورة قبول تجربة محفظة غريبة تمامًا في البداية. هذا يغيّر قراءتي للإصدار. الخصوصية مفيدة على مستوى البروتوكول. لكن بالنسبة للمستخدم، يجب أن تنجو أيضًا من التكرار الممل عند التعامل فعليًا مع التطبيقات. إضافة محفظة يمكنها التعامل مع طلبات الاتصال مع دعم مسارات المعاملات العامة والمشفّرة لـ Dusk تُزيل واحدة من تلك الانحرافات المتكررة. لا أود توسيع ذلك ليصبح ادعاءً بالاعتماد. الانطلاقة الفعلية أبسط. يحتوي مكدس خصوصية Dusk الآن على واجهة محفظة موجهة للمستخدم يمكن للتطبيقات المتوافقة الاتصال بها، بدلًا من ترك الخصوصية شيئًا يواجهه المستخدمون غالبًا في الخلفية تحت الواجهة. @Dusk $DUSK #dusk
وهنا يتوقف معدل الاقتراض عن كونه مجرد تفصيل صغير. كنت أتعامل مع أعمال خزنة بابل بشكل أساسي باعتبارها مسألة حفظ للأصول. هل يمكن لِـ BTC الأصلي دعم الاقتراض دون أن يتم تغليفه أو ربطه عبر الجسور أو تسليمه إلى أمين حفظ؟ يضيف تكامل Aegis المخطط تمييزًا آخر. ستوفّر Babylon Trustless Bitcoin Vaults هيكل الضمانات على شكل BTC الأصلي. وسيوفر Aave v4 سوق الاقتراض. وستضيف Aegis ائتمانًا بسعر ثابت. يُتوقع أن يتوفر المنتج في الربع الرابع من عام 2026، وذلك رهناً بالتطوير والاختبار. لذلك فهذا ليس أداة تداول مباشرة بعد. لكن التصميم يغيّر ما يمكن للمتداول معرفته قبل نشر رأس المال المقترض. يمكن أن يصبح الدين بسعر متغير أكثر تكلفة بينما ما تزال الصفقة مفتوحة. وهذا يجعل تكلفة التمويل جزءًا متحركًا إضافيًا بجانب الدخول والخروج وتقلبات السوق. أما السعر الثابت فسيحوّل هذا الغموض إلى رقم محدد مسبقًا. يمكن للمتداول مقارنة التكلفة التمويلية الكاملة مقابل الاستخدام المقصود لسيولة العملة المستقرة قبل الالتزام بـ BTC. أعتقد أن هذا تباين أكثر حدّة من مجرد القول إن بيتكوين تصبح «منتِجة». ستظل الـ BTC أصلية ومحتفظًا بها ذاتيًا، بينما ستحمل الديون معدلًا يمكن التنبؤ به لفترة محددة. إحدى الخيارات تحافظ على هيكل الأصل. والأخرى تجعل الالتزام أسهل في التسعير. إذا وصل المنتج المخطط إلى مرحلة الإنتاج كما هو موصوف، فلن تمنح بابل للمتداولين فقط طريقةً للاقتراض دون تحويل BTC لديهم. بل ستمنحهم أيضًا تكلفة تمويل يمكنهم إدراجها داخل حساب الصفقة قبل أن توجد الصفقة نفسها. @BabylonLabs_io $BABY #baby
كنتُ أفترض سابقًا أن عدم تطابق حالة العقدة مشكلة من نوع الكل أو لا شيء. تختلف قيمة تجزئة التطبيق، فتتوقف العقدة عن التقدم، ويظل المشغّل يتساءل ما إذا كانت قاعدة البيانات بأكملها قد أصبحت غير موثوقة. يمنحك بابلون هذه عملية تحقق بوحدة أصغر. يقوم أمر module-hash-by-height بتوليد تجزئة تشفيرية لكل وحدة من وحدات التطبيق عند ارتفاع بلوك محدد. بدلًا من مقارنة تجزئة نهائية واحدة لا تؤكد سوى أن هناك خطأ ما، يمكن للمشغّل تضييق نطاق الاختلاف إلى جزء الحالة الذي تسبب فيه. هذه الفَرْقية تهم أكثر في Babylon Genesis مما ستهم به على سلسلة Cosmos عادية. إذ تحمل قاعدة بياناتها حالة مخصّصة منفصلة لعميل Bitcoin الخفيف، وBTC staking، وcheckpointing، والنهائية (finality)، ووحدات بروتوكول أخرى تنسّق النشاط عبر Bitcoin وبابلون. إن عدم التطابق داخل إحدى هذه المجالات لا يفسر نفسه من خلال تجزئة التطبيق على المستوى الأعلى. لكن التشخيص لا يزال محكومًا بحدود. يجب أن يظل الارتفاع المستهدف متاحًا بدلًا من حذفه (pruned)، ويجب إيقاف الخفي (daemon) قبل فحص قاعدة البيانات. ومع ذلك، أعتقد أن هذه صفقة تشغيلية أفضل من التعامل مع كل تناقض في الحالة كسبب يدفع إلى الشك في كل شيء مرة واحدة. يمكن للمشغّل الحفاظ على الارتفاع، وإيقاف العقدة، ومقارنة بصمات الوحدات، وتوجيه التحقيق إلى المكان الذي حدث فيه اختلاف الحالة فعليًا. تخلق بنية بابلون عبر الشبكات حدودًا أكثر للحفاظ عليها. يجعل هذا الأمر تلك الحدود مرئية عندما يتعطل شيء ما. @BabylonLabs_io $BABY #baby
يقوم المُودِع بتوقيع تفويض BABY، ويرى أن المعاملة تم تأكيدها، ويفترض بشكل طبيعي أن الرهان نشط. قرأتُ هذا التأكيد بالطريقة نفسها في البداية. إن آلية الرهن المُؤطَّرة زمنيًا (epochised) لدى Babylon تمنحها معنى أضيق. يُعترف بالتفويض فورًا، لكنه يدخل في قائمة انتظار تنفيذ مُؤجَّل. لا تتغير قوة المُتحقق حتى يغلق العصر الحالي، وتُعالج رسائل الرهن المُجدولة معًا. يأتي هذا الحد كل 360 كتلة، أي ما يقارب ساعة عند زمن كتلة قدره 10 ثوانٍ. حتى ذلك الحين، يبقى BABY سائلًا. يخلق ذلك حالةً وسطى غير معتادة. توجد تعليمات الرهن على السلسلة، لكن الرموز ليست مقفلة بعد، ولم تبدأ المكافآت. إذا قام المُودِع بنقل هذا الرصيد أو إنفاقه قبل انتهاء العصر، فقد تفشل الطلبية المؤكدة عندما يصل التنفيذ أخيرًا. لذلك، فإن أول تأكيد ليس دليلًا على تفويض نشط. إنه أقرب إلى طلب تم قبوله بانتظار التسوية. بالنسبة للمُودِع، يغيّر هذا طريقة قراءة علامة الاختيار الخضراء. يؤكد أن Babylon استلمت التعليمات. ولا يؤكد بعد أن المُتحقق اكتسب قوة التصويت أو أن رأس المال دخل في الرهن. أعتقد أن هذا تمييز مفيد لأن تأكيد المعاملة عادةً ما يشعر بأنه نهائي. هنا، يفصل البروتوكول عمدًا بين قبول الرسالة وتفعيل الحالة، بحيث تحدث تغييرات المُتحقق معًا عند حدٍ حتمي. وبالتالي، يحتوي رهن BABY على لحظتين تستحقان المتابعة. يُقدِّم المُودِع التفويض الآن. ويجعل البروتوكول ذلك واقعًا عند إغلاق العصر. @BabylonLabs_io $BABY #baby
وهذا هو المكان الذي تتوقف فيه عملية شراء BABY عن كونها قرارَ تعرّضٍ بسيط. لاحظت أن نموذج الـ staking يطلب من المشتري إصدار حكمٍ ثانٍ تقريبًا فورًا. ليس فقط ما إذا كان ينبغي تملّك الرمز. بل أي مُحقِّق (validator) يجب أن يتحمل المخاطر المفوَّضة. غالبًا ما يتم تقديم الـ staking الخاصة بـ BABY على أنها عوائد. ميكانيكيًا، تساعد هذه الرموز أيضًا في تأمين Babylon Genesis، ما يعني أن العائد مرتبط بسلوك المُحقِّق. حالة العيب محددة. يمكن أن يتم خصم جزءٍ (slashing) من مُحقق بسبب التوقيع المزدوج، أي أن يوقّع كتلتين مختلفتين في نفس الارتفاع. إذا حدث ذلك، يتم خصم 5% من BABY المفوض، ويُعاد الـ 95% المتبقي إلى المفوِّض. وهذا أضيق من تحذير مخاطر staking غير محدد. لا يزال المال مُعرّضًا للخطر. لذلك لن أقارن مُحقّقي Babylon باستخدام العمولة والعوائد المعروضة وحدهما. تُسجَّل أحداث الـ slashing على السلسلة (on-chain)، ما يمنح المشتري شيئًا أكثر فائدة لفحصه من ملف مُحققٍ مُصقول. وهذا يخلق تمييزًا أعتقد أن مشتري BABY ينبغي أن يبقوه واضحًا. يمنح الاحتفاظ بـ BABY تعرّضًا للرمز. أما staking BABY فيخصص جزءًا من هذا رأس المال إلى مُحقِّق مُسمّى، ويقبل عقوبة محددة إذا فشل سلوكه في التوقيع. العائد ليس فائدة تظهر بجانب رصيدٍ خامد. إنه تعويض عن وضع الرموز داخل عملية الأمان الخاصة بالشبكة. لذلك تبدو BABY أقل شَبَهًا بأداة عائد سلبي بمجرد تفويضها. تصبح ضمانًا أمنيًا بشرط عيبٍ قابل للقراءة. @BabylonLabs_io $BABY #baby