Binance Square
冷毅
142 منشورات

冷毅

9 تتابع
12 المتابعون
21 إعجاب
منشورات
·
--
صاعد
“تم إثباته، لماذا لا يزال لا يمكنني الدخول؟”🤪🤪🤪 عندما قرأتُ عملية Dusk Citadel 2، خطرت لي هذه الفكرة: يحصل المستخدم على الـ license من License Provider، ثم يولّد إثباتًا؛ وبعد قيام عقد Citadel بالتحقق، فإنه يسجّل فقط session العامة، بينما يبقى قرار السماح بالدخول بيد Service Provider. هذا جعلني أُعيد فهم طبقة الهوية لدى @Dusk. يقدّم إثبات Citadel “أن هذه الشهادة صالحة تشفيريًا هذه المرة”، لكنه لا يُجيب لطرف الخدمة على سؤال “هل سيقبلها اليوم أم لا”. العملية الرسمية واضحة: يختار طرف الخدمة بنفسه أي LP يثق به، وأي سمات يقبلها، ويحدد ما إذا كانت جلسة session منتهية أو تم إلغاؤها، كما يقرر ما إذا كان يمكن إعادة استخدام cookie. بمعنى آخر، طبقة الإثبات تقدّم حقائق، بينما طبقة الصلاحيات تحتفظ بالسلطة التقديرية. وعندما يتم وضع الاثنين في صفحة واحدة، فمن السهل على المستخدم أن يظنهما نتيجة واحدة. المجال الضاغط محدد جدًا: مستثمر قد أثبت أنه يستوفي مؤهلًا ما، ثم عند الانتقال إلى تطبيق آخر يتم رفضه. قد لا تكون المشكلة أن الشهادة غير صالحة، بل أن القوائم البيضاء للـ LP أو أوقات الانتهاء أو قواعد إعادة الاستخدام تختلف بين طرفي الخدمة. سيتوجّه المستخدم أولًا للشك في @Dusk_Foundation ، بينما يحتاج المطورون وخدمة العملاء إلى تفسير اختلاف سياسات الصلاحيات؛ ومع أن القواعد غير منشورة، فإن حماية الخصوصية تخفي الحدود التي تقع عندها المسؤولية.👻 لذلك عند تقييم Citadel، لا أنظر فقط إلى مقدار المعلومات التي تخفيها البراهين عديمة المعرفة، بل أيضًا إلى ما إذا كان طرف الخدمة ينشر قائمة الثقة، وشروط الإلغاء، وقواعد إعادة استخدام الجلسات. فهي تُبقي السمات خارج السلسلة، لكنها لا تتولى توحيد سياسات الصلاحيات عبر التطبيق. وبالنسبة إلى $DUSK ، فإن النضج لا يتجلى في نجاح التحقق مرة واحدة فحسب، بل في قدرة المستخدم على معرفة من رفضه عند تعطل الشهادة، وعلى أي بند من القواعد استند الرفض.#dusk 😖
“تم إثباته، لماذا لا يزال لا يمكنني الدخول؟”🤪🤪🤪 عندما قرأتُ عملية Dusk Citadel 2، خطرت لي هذه الفكرة: يحصل المستخدم على الـ license من License Provider، ثم يولّد إثباتًا؛ وبعد قيام عقد Citadel بالتحقق، فإنه يسجّل فقط session العامة، بينما يبقى قرار السماح بالدخول بيد Service Provider.
هذا جعلني أُعيد فهم طبقة الهوية لدى @Dusk. يقدّم إثبات Citadel “أن هذه الشهادة صالحة تشفيريًا هذه المرة”، لكنه لا يُجيب لطرف الخدمة على سؤال “هل سيقبلها اليوم أم لا”. العملية الرسمية واضحة: يختار طرف الخدمة بنفسه أي LP يثق به، وأي سمات يقبلها، ويحدد ما إذا كانت جلسة session منتهية أو تم إلغاؤها، كما يقرر ما إذا كان يمكن إعادة استخدام cookie.
بمعنى آخر، طبقة الإثبات تقدّم حقائق، بينما طبقة الصلاحيات تحتفظ بالسلطة التقديرية. وعندما يتم وضع الاثنين في صفحة واحدة، فمن السهل على المستخدم أن يظنهما نتيجة واحدة.
المجال الضاغط محدد جدًا: مستثمر قد أثبت أنه يستوفي مؤهلًا ما، ثم عند الانتقال إلى تطبيق آخر يتم رفضه. قد لا تكون المشكلة أن الشهادة غير صالحة، بل أن القوائم البيضاء للـ LP أو أوقات الانتهاء أو قواعد إعادة الاستخدام تختلف بين طرفي الخدمة. سيتوجّه المستخدم أولًا للشك في @Dusk ، بينما يحتاج المطورون وخدمة العملاء إلى تفسير اختلاف سياسات الصلاحيات؛ ومع أن القواعد غير منشورة، فإن حماية الخصوصية تخفي الحدود التي تقع عندها المسؤولية.👻
لذلك عند تقييم Citadel، لا أنظر فقط إلى مقدار المعلومات التي تخفيها البراهين عديمة المعرفة، بل أيضًا إلى ما إذا كان طرف الخدمة ينشر قائمة الثقة، وشروط الإلغاء، وقواعد إعادة استخدام الجلسات. فهي تُبقي السمات خارج السلسلة، لكنها لا تتولى توحيد سياسات الصلاحيات عبر التطبيق. وبالنسبة إلى $DUSK ، فإن النضج لا يتجلى في نجاح التحقق مرة واحدة فحسب، بل في قدرة المستخدم على معرفة من رفضه عند تعطل الشهادة، وعلى أي بند من القواعد استند الرفض.#dusk 😖
·
--
في المجتمع، أكثر جملة يمكن أن تُبالغ في الحديث عن @Dusk_Foundation ليست "إنه يولي الخصوصية أهمية"، بل تحويل "يمكن البناء" مباشرةً إلى "تم الإطلاق بالفعل". عندما عدتُ إلى مراجعة صفحة Overview الرسمية وصفحة Market Infrastructure، لاحظتُ أن فقرة حالات الاستخدام كانت تبدأ عمدًا بعبارة "Some example use cases Dusk was designed for"، ثم أُضيف لاحقًا أن التطبيقات المختلفة يمكن أن تُنفَّذ بطرق مختلفة، وأن Dusk يوفّر لبنات بروتوكول ومسار التنفيذ. هذا التقييد في الحقيقة يرسم حدودًا لانتشار الرسالة داخل المجتمع. عندما يحوّل البعض "الأوراق المالية المرمّزة، وDeFi للمؤسسات، والمدفوعات الخاصة" إلى منتجات جاهزة عند إعادة مشاركتها، يخلط المستخدم العادي بين قدرة البنية، ونشر التطبيق، والتبنّي الحقيقي كأنها شيء واحد. قد يكون المُصدِر ما يزال يضع قواعد الأهلية، وقد يكون المطوّر لم ينجز سوى العقد الذكي، بينما يفهم المستخدم ذلك بالفعل على أنه "سوق قابل للاستخدام" $DUSK . وما إن يدخل هذا الفارق المعلوماتي إلى نقاشات التداول حتى تصبح التوقعات الخاطئة أكثر من مجرد مشكلة صياغة. أكثر السيناريوهات إرباكًا هو: أن يُختصر وصف المشروع في جملة مثل "Dusk يدعم سيناريو ماليًا معينًا"، ثم يبدأ الآخرون بالسؤال عن نقطة الدخول، والأصول القابلة للتداول، والجهة المسؤولة، ولا يبقى أمام المجتمع إلا مواصلة سدّ الثغرات بالدعاية. ومع مرور الوقت، يختلط التقدّم الحقيقي للمنتج مع التصوّرات غير المُتحقَّقة. لذلك، حين أقيم جودة التثقيف المجتمعي في @Dusk_Foundation ، لا أنظر إلى من يكتب حالات الاستخدام بأكبر قدر من الضخامة، بل إلى من يستطيع التمييز بين "ما الذي يمكن أن يقدمه البروتوكول" و"أي تطبيق تم تنفيذه بالفعل" و"أي جوانب من التبنّي ما تزال بحاجة إلى دليل". في المرة القادمة التي أرى فيها #dusk بكلمات كبيرة، سأبحث أولًا عن اسم النشر، والعملية المعلنة، والسجل القابل للتحقق؛ فشرح الحدود بوضوح يحمي المشروع أكثر من كتابة المستقبل على أنه حاضر. {future}(DUSKUSDT)
في المجتمع، أكثر جملة يمكن أن تُبالغ في الحديث عن @Dusk ليست "إنه يولي الخصوصية أهمية"، بل تحويل "يمكن البناء" مباشرةً إلى "تم الإطلاق بالفعل". عندما عدتُ إلى مراجعة صفحة Overview الرسمية وصفحة Market Infrastructure، لاحظتُ أن فقرة حالات الاستخدام كانت تبدأ عمدًا بعبارة "Some example use cases Dusk was designed for"، ثم أُضيف لاحقًا أن التطبيقات المختلفة يمكن أن تُنفَّذ بطرق مختلفة، وأن Dusk يوفّر لبنات بروتوكول ومسار التنفيذ. هذا التقييد في الحقيقة يرسم حدودًا لانتشار الرسالة داخل المجتمع.
عندما يحوّل البعض "الأوراق المالية المرمّزة، وDeFi للمؤسسات، والمدفوعات الخاصة" إلى منتجات جاهزة عند إعادة مشاركتها، يخلط المستخدم العادي بين قدرة البنية، ونشر التطبيق، والتبنّي الحقيقي كأنها شيء واحد. قد يكون المُصدِر ما يزال يضع قواعد الأهلية، وقد يكون المطوّر لم ينجز سوى العقد الذكي، بينما يفهم المستخدم ذلك بالفعل على أنه "سوق قابل للاستخدام" $DUSK . وما إن يدخل هذا الفارق المعلوماتي إلى نقاشات التداول حتى تصبح التوقعات الخاطئة أكثر من مجرد مشكلة صياغة.
أكثر السيناريوهات إرباكًا هو: أن يُختصر وصف المشروع في جملة مثل "Dusk يدعم سيناريو ماليًا معينًا"، ثم يبدأ الآخرون بالسؤال عن نقطة الدخول، والأصول القابلة للتداول، والجهة المسؤولة، ولا يبقى أمام المجتمع إلا مواصلة سدّ الثغرات بالدعاية. ومع مرور الوقت، يختلط التقدّم الحقيقي للمنتج مع التصوّرات غير المُتحقَّقة.
لذلك، حين أقيم جودة التثقيف المجتمعي في @Dusk ، لا أنظر إلى من يكتب حالات الاستخدام بأكبر قدر من الضخامة، بل إلى من يستطيع التمييز بين "ما الذي يمكن أن يقدمه البروتوكول" و"أي تطبيق تم تنفيذه بالفعل" و"أي جوانب من التبنّي ما تزال بحاجة إلى دليل". في المرة القادمة التي أرى فيها #dusk بكلمات كبيرة، سأبحث أولًا عن اسم النشر، والعملية المعلنة، والسجل القابل للتحقق؛ فشرح الحدود بوضوح يحمي المشروع أكثر من كتابة المستقبل على أنه حاضر.
·
--
إذا كانت كل صفقة من مراكز أي جهة مُدرجة علنًا، فهل سيصبح السوق أكثر شفافية أم أن ذلك سيدفع المشترين الحقيقيين إلى التراجع؟ عندما فكرت في هذا السؤال، كان همّي الحقيقي هو الخط الذي يجب على صُناع السوق والجهات المُصدِرة حمايته: ما هي الإشارات الكافية لتكوين السعر، وأي تفاصيل إذا انكشفت ستُفشي المراكز. عندما اطلعت على وصف <0>Market Infrastructure</0> الخاص بـ @Dusk_Foundation لاحظت أنه يقسم السوق الخاضع للتنظيم إلى طلبين: التنسيق العام والبيانات المحمية، كما أن الوثيقة تكتب أهداف <0>institutional DeFi</0> بوضوح: إشارات السوق العامة مع حماية المراكز الخاصة. وبالربط مع طبقة البروتوكول، يوفر Moonlight حسابات عامة وبيانات سلسلة عامة، بينما تتولى Phoenix معالجات الإثباتات بالمعرفة الصفرية التعامل مع التحويلات السرّية. جعلني هذا الترتيب أغيّر حكمي: الخصوصية ليست مجرد تفضيل للمستخدم، بل هي تصميم لبنية السوق؛ يجب أن تكون عروض الأسعار وحالات التسوية وقواعد الأصول قابلة للرؤية، لكن مراكز المؤسسات والأطراف المقابلة ومسارات التمويل لا ينبغي أن تُبث تلقائيًا. تظهر الضغوط عندما تَرقّ السيولة. افترض أن مؤسسة ما أنهت للتو تخصيصًا كبيرًا وأن العنوان والمبلغ يمكن تتبعهما؛ قد يغيّر المُراجِحون الأسعار مُبكرًا، مما يجعل المشترين اللاحقين يختارون الترقب. لكن إذا كانت التطبيقات تُخفي السعر وقابلية التنفيذ وحالة التسوية، في حين لا يستطيع صانعو السوق تحديد المخاطر، فقد يبدو السوق هادئًا بينما يفقد القدرة على إجراء التداول. لذلك عند تقييمي @Dusk_Foundation لا أسأل فقط إن كان بإمكانه إخفاء تحويل واحد، فهذا لا يعني أن السيولة قد حُلّت؛ سأرى أيضًا ما إذا كان من الممكن لتطبيق مالي $DUSK أن يعلن إشارات سوقية كافية كي يستمر اكتشاف السعر، دون تحويل مراكز المؤسسة إلى بثٍ لحظي. ليست مسألة اختبار Dusk إلى أي مدى تكون الخصوصية عميقة، بل ما إذا كان السوق سيبقى قابلًا للتداول عندما توجد الخصوصية. #dusk {spot}(DUSKUSDT)
إذا كانت كل صفقة من مراكز أي جهة مُدرجة علنًا، فهل سيصبح السوق أكثر شفافية أم أن ذلك سيدفع المشترين الحقيقيين إلى التراجع؟ عندما فكرت في هذا السؤال، كان همّي الحقيقي هو الخط الذي يجب على صُناع السوق والجهات المُصدِرة حمايته: ما هي الإشارات الكافية لتكوين السعر، وأي تفاصيل إذا انكشفت ستُفشي المراكز. عندما اطلعت على وصف <0>Market Infrastructure</0> الخاص بـ @Dusk لاحظت أنه يقسم السوق الخاضع للتنظيم إلى طلبين: التنسيق العام والبيانات المحمية، كما أن الوثيقة تكتب أهداف <0>institutional DeFi</0> بوضوح: إشارات السوق العامة مع حماية المراكز الخاصة. وبالربط مع طبقة البروتوكول، يوفر Moonlight حسابات عامة وبيانات سلسلة عامة، بينما تتولى Phoenix معالجات الإثباتات بالمعرفة الصفرية التعامل مع التحويلات السرّية. جعلني هذا الترتيب أغيّر حكمي: الخصوصية ليست مجرد تفضيل للمستخدم، بل هي تصميم لبنية السوق؛ يجب أن تكون عروض الأسعار وحالات التسوية وقواعد الأصول قابلة للرؤية، لكن مراكز المؤسسات والأطراف المقابلة ومسارات التمويل لا ينبغي أن تُبث تلقائيًا.

تظهر الضغوط عندما تَرقّ السيولة. افترض أن مؤسسة ما أنهت للتو تخصيصًا كبيرًا وأن العنوان والمبلغ يمكن تتبعهما؛ قد يغيّر المُراجِحون الأسعار مُبكرًا، مما يجعل المشترين اللاحقين يختارون الترقب. لكن إذا كانت التطبيقات تُخفي السعر وقابلية التنفيذ وحالة التسوية، في حين لا يستطيع صانعو السوق تحديد المخاطر، فقد يبدو السوق هادئًا بينما يفقد القدرة على إجراء التداول. لذلك عند تقييمي @Dusk لا أسأل فقط إن كان بإمكانه إخفاء تحويل واحد، فهذا لا يعني أن السيولة قد حُلّت؛ سأرى أيضًا ما إذا كان من الممكن لتطبيق مالي $DUSK أن يعلن إشارات سوقية كافية كي يستمر اكتشاف السعر، دون تحويل مراكز المؤسسة إلى بثٍ لحظي. ليست مسألة اختبار Dusk إلى أي مدى تكون الخصوصية عميقة، بل ما إذا كان السوق سيبقى قابلًا للتداول عندما توجد الخصوصية. #dusk
·
--
تمّ التحقق
غالبًا ما يُكتب الربط عبر السلاسل على أنه: «وجود مخرج إضافي يعني سيولة إضافية»، لكن عندما أعيد قراءة توضيح التعاون بين @Dusk_Foundation وNPEX وChainlink، وجدت بدلًا من ذلك أنه توقّف عند حدود التحكم الخاصة بـCCIP. إذ تتعامل الأطراف مع ذلك كطبقة للتشغيل البيني للربط عبر السلاسل لأصول خاضعة للتنظيم، مع الحفاظ في الوقت نفسه على ملكية عقود الرموز، والحدود السرعـية (الـrate limits)، وصلاحيات الترقية. هذا التفصيل غيّر تقديري. فالمؤسسات لا تريد نسخ الأوراق المالية إلى شبكات أكثر، بل تريد—عند توسيع نطاق الوصول—أن تعرف من يستطيع تعديل القواعد، ومن يمكنه إيقاف السيولة، ومن يتحمل مسؤولية حالة الأصول. وبالنسبة للرموز العادية قد يكون فشل الربط عبر السلاسل مجرد تأخير في عملية تحويل واحدة، لكن بالنسبة للأوراق المالية الخاضعة للتنظيم، بمجرد أن تصبح السيطرة وحدود الامتثال غير واضحة، فإن إضافة المزيد من السلاسل تزيد أيضًا من تكلفة التفسير. أما السيناريو المزعج حقًا فيظهر عندما يكون الأصل مُصدَرًا بالفعل على DuskEVM ويرغب المستثمرون في استخدامه على شبكة أخرى، لكن تتعرض عملية الربط عبر السلاسل لحالة شاذة أو تُفعِّل حدًا سرعيًا. عندها يجب على جهة الإصدار أن تقرر إما إيقاف التحويلات الجديدة، أو انتظار تأكيد الحالة، أو بدء عملية تصحيح. كل خيار من هذه الخيارات يؤثر على ترتيب أموال المستثمرين واستمرارية السوق. وإذا كانت السيطرة موزعة بين عدة جهات مشاركة في عملية الربط (الجسور)، فلن يعرف المستثمرون لأي سجل ينبغي الوثوق. وفي المقابل، إذا كانت جهة الإصدار تمتلك جميع المفاتيح، فسيكون على السوق مواجهة اعتماد جديد على مركزية. لذلك، لا تتمثل قيمة CCIP فقط في ربط الشبكات، بل كذلك في إظهار مسؤولية التحكم على الملأ. البيان الرسمي يمكنه أن يثبت أن @Dusk_Foundation وNPEX يتبنيان هذه المعايير، لكنه لا يثبت أن كل نوع من الأوراق المالية قد تم تحقيقه دون احتكاك عبر الربط بين السلاسل. بالنسبة إلى $DUSK ، تتمثل النقاط الجديرة بالملاحظة لاحقًا في ما إذا كانت صلاحيات الحد السرعي والإيقاف والترقية ستُكتب بشكل علني ضمن قواعد كل أصل. @Dusk إذا أرادت نقل الأسواق المالية إلى المزيد من الشبكات، فعليها أولًا أن تجعل السوق يعرف من سيظل مسؤولًا بعد أن ينتقل الأصل خارج الشبكة. #dusk {spot}(DUSKUSDT)
غالبًا ما يُكتب الربط عبر السلاسل على أنه: «وجود مخرج إضافي يعني سيولة إضافية»، لكن عندما أعيد قراءة توضيح التعاون بين @Dusk وNPEX وChainlink، وجدت بدلًا من ذلك أنه توقّف عند حدود التحكم الخاصة بـCCIP. إذ تتعامل الأطراف مع ذلك كطبقة للتشغيل البيني للربط عبر السلاسل لأصول خاضعة للتنظيم، مع الحفاظ في الوقت نفسه على ملكية عقود الرموز، والحدود السرعـية (الـrate limits)، وصلاحيات الترقية. هذا التفصيل غيّر تقديري. فالمؤسسات لا تريد نسخ الأوراق المالية إلى شبكات أكثر، بل تريد—عند توسيع نطاق الوصول—أن تعرف من يستطيع تعديل القواعد، ومن يمكنه إيقاف السيولة، ومن يتحمل مسؤولية حالة الأصول. وبالنسبة للرموز العادية قد يكون فشل الربط عبر السلاسل مجرد تأخير في عملية تحويل واحدة، لكن بالنسبة للأوراق المالية الخاضعة للتنظيم، بمجرد أن تصبح السيطرة وحدود الامتثال غير واضحة، فإن إضافة المزيد من السلاسل تزيد أيضًا من تكلفة التفسير.

أما السيناريو المزعج حقًا فيظهر عندما يكون الأصل مُصدَرًا بالفعل على DuskEVM ويرغب المستثمرون في استخدامه على شبكة أخرى، لكن تتعرض عملية الربط عبر السلاسل لحالة شاذة أو تُفعِّل حدًا سرعيًا. عندها يجب على جهة الإصدار أن تقرر إما إيقاف التحويلات الجديدة، أو انتظار تأكيد الحالة، أو بدء عملية تصحيح. كل خيار من هذه الخيارات يؤثر على ترتيب أموال المستثمرين واستمرارية السوق. وإذا كانت السيطرة موزعة بين عدة جهات مشاركة في عملية الربط (الجسور)، فلن يعرف المستثمرون لأي سجل ينبغي الوثوق. وفي المقابل، إذا كانت جهة الإصدار تمتلك جميع المفاتيح، فسيكون على السوق مواجهة اعتماد جديد على مركزية. لذلك، لا تتمثل قيمة CCIP فقط في ربط الشبكات، بل كذلك في إظهار مسؤولية التحكم على الملأ.

البيان الرسمي يمكنه أن يثبت أن @Dusk وNPEX يتبنيان هذه المعايير، لكنه لا يثبت أن كل نوع من الأوراق المالية قد تم تحقيقه دون احتكاك عبر الربط بين السلاسل. بالنسبة إلى $DUSK ، تتمثل النقاط الجديرة بالملاحظة لاحقًا في ما إذا كانت صلاحيات الحد السرعي والإيقاف والترقية ستُكتب بشكل علني ضمن قواعد كل أصل. @Dusk إذا أرادت نقل الأسواق المالية إلى المزيد من الشبكات، فعليها أولًا أن تجعل السوق يعرف من سيظل مسؤولًا بعد أن ينتقل الأصل خارج الشبكة. #dusk
·
--
#dusk $DUSK @Dusk_Foundation كنت أعتقد سابقًا أن بإمكان عقدٍ ما، بعد نشره على البلوكشين، أن يصبح كل ما تبقى هو مجرد استدعاء الدوال عبر التطبيق، لكنني عند متابعة دليل <a>دوسك DuskVM Quickstart</a> الخاص بـ @Dusk اكتشفت تفصيلًا يمكن أن يُنسى بسهولة: نفس مصدر Rust يُنتج ملفّي WASM، أحدهما هو عقدٌ حقيقي يُنفَّذ على السلسلة، والآخر هو محرّك بيانات (Data Driver) يُستخدم من جانب التطبيق للترميز وفك الترميز. هذا ليس مجرد تجميع الملف مرتين؛ فنسخة السلسلة هي التي تحدد كيف تتغير الحالة، ونسخة ما قبل السلسلة هي التي تحدد كيف يحول الواجهة الأمامية عبارة مثل “تغيير الكمية إلى 42” إلى معاملات/معلمات يفهمها البروتوكول، كما أنها هي التي تحدد أيضًا ما إذا كان بإمكان إرجاع النتيجة أن يُعاد تحويله إلى بيانات يمكن للإنسان قراءتها. @Dusk_Foundation كما أنه يضع المخرجات في مسارات مختلفة ويوفر فحوص verify للتأكد من أن كليهما متطابقان من حيث التحقق مع تجزئة (hash) العقد. والمقصود الحقيقي الذي يحتاجه المطور هو الحفاظ على زوج من الواجهات التي يجب أن تبقى متزامنة. أكثر الحالات إزعاجًا هي عندما تكون العقود قد نُشرت بالفعل وأن المعاملات يمكن تنفيذها، لكن التطبيق يرسل طلبات وهو يحمل محرّك بيانات قديمًا؛ عندها قد يرى المستخدم فشلًا في ترميز المعلمات، أو قد ينجح الاستدعاء لكن تكون الصفحة قد فسّرت النتيجة بشكل خاطئ. وعندما لا يظهر خطأ واضح على السلسلة، يُضطر المطور لإعادة فحص كود المصدر وإصدارات البناء وسجلات النشر من جديد. والوقت الذي تم توفيره في البداية سيتحول لاحقًا إلى تكلفة تحديد المشكلة على عاتق مزود التكامل والمستخدمين معًا. لذلك، عندما أنظر إلى تجربة تطوير DUSK، لن أكتفي بسؤال: “هل يمكن تشغيل عقد Rust؟”. تصميم DuskVM ثنائي المخرجات يجعل الحدود بين تنفيذ السلسلة وفهم التطبيق أكثر وضوحًا، وفي الوقت نفسه يذكّر الفريق بأن “نجاح النشر” لا يعني بالضرورة “اكتمال التكامل”. لاحقًا سأنظر ما إذا كان المشروع يترك معًا سجلات قابلة للتحقق تشمل إصدار محرّك البيانات وتجزيء العقد وخطوات النشر؛ وهذه هي الخطوة الحاسمة كي ينتقل Dusk من حالة “يعمل” إلى حالة “يمكن صيانته”. {spot}(DUSKUSDT)
#dusk $DUSK @Dusk كنت أعتقد سابقًا أن بإمكان عقدٍ ما، بعد نشره على البلوكشين، أن يصبح كل ما تبقى هو مجرد استدعاء الدوال عبر التطبيق، لكنني عند متابعة دليل <a>دوسك DuskVM Quickstart</a> الخاص بـ @Dusk اكتشفت تفصيلًا يمكن أن يُنسى بسهولة: نفس مصدر Rust يُنتج ملفّي WASM، أحدهما هو عقدٌ حقيقي يُنفَّذ على السلسلة، والآخر هو محرّك بيانات (Data Driver) يُستخدم من جانب التطبيق للترميز وفك الترميز. هذا ليس مجرد تجميع الملف مرتين؛ فنسخة السلسلة هي التي تحدد كيف تتغير الحالة، ونسخة ما قبل السلسلة هي التي تحدد كيف يحول الواجهة الأمامية عبارة مثل “تغيير الكمية إلى 42” إلى معاملات/معلمات يفهمها البروتوكول، كما أنها هي التي تحدد أيضًا ما إذا كان بإمكان إرجاع النتيجة أن يُعاد تحويله إلى بيانات يمكن للإنسان قراءتها. @Dusk كما أنه يضع المخرجات في مسارات مختلفة ويوفر فحوص verify للتأكد من أن كليهما متطابقان من حيث التحقق مع تجزئة (hash) العقد. والمقصود الحقيقي الذي يحتاجه المطور هو الحفاظ على زوج من الواجهات التي يجب أن تبقى متزامنة. أكثر الحالات إزعاجًا هي عندما تكون العقود قد نُشرت بالفعل وأن المعاملات يمكن تنفيذها، لكن التطبيق يرسل طلبات وهو يحمل محرّك بيانات قديمًا؛ عندها قد يرى المستخدم فشلًا في ترميز المعلمات، أو قد ينجح الاستدعاء لكن تكون الصفحة قد فسّرت النتيجة بشكل خاطئ. وعندما لا يظهر خطأ واضح على السلسلة، يُضطر المطور لإعادة فحص كود المصدر وإصدارات البناء وسجلات النشر من جديد. والوقت الذي تم توفيره في البداية سيتحول لاحقًا إلى تكلفة تحديد المشكلة على عاتق مزود التكامل والمستخدمين معًا. لذلك، عندما أنظر إلى تجربة تطوير DUSK، لن أكتفي بسؤال: “هل يمكن تشغيل عقد Rust؟”. تصميم DuskVM ثنائي المخرجات يجعل الحدود بين تنفيذ السلسلة وفهم التطبيق أكثر وضوحًا، وفي الوقت نفسه يذكّر الفريق بأن “نجاح النشر” لا يعني بالضرورة “اكتمال التكامل”. لاحقًا سأنظر ما إذا كان المشروع يترك معًا سجلات قابلة للتحقق تشمل إصدار محرّك البيانات وتجزيء العقد وخطوات النشر؛ وهذه هي الخطوة الحاسمة كي ينتقل Dusk من حالة “يعمل” إلى حالة “يمكن صيانته”.
·
--
صاعد
#dusk $DUSK @Dusk_Foundation كنتُ في السابق عند القيام بالمدفوعات على السلسلة اعتدتُ أن أدرج رقم الطلب ضمن حقل memo بشكلٍ عفوي، لكن بعد قراءة مستند Transaction Lifecycle الخاص بـ @Dusk_Foundation اكتشفت أن هذا الأسلوب لا يمكن نقله مباشرةً. وذلك لأن بيانات معاملات Dusk تكون في علاقة اختيارٍ أحادي بين memo واستدعاء العقد ونشر العقد وblob، ولا يمكن لـ memo أن يُفترض أنه يُرفق تلقائيًا مع حمولات أخرى. وهذا الاختلاف سيؤثر بشكل مباشر على طريقة توصيل نظام الدفع. إذا كان التاجر يريد استلام المدفوعات وفي الوقت نفسه استدعاء عقد لإتمام العملية، فلن يستطيع افتراض أن بإمكانه الاستمرار في وضع رقم الطلب في memo داخل نفس معاملة الدفع. على العميل أولًا أن يحدد المهمة الرئيسية لهذه المعاملة، ثم يَصمم سجلًا موثوقًا آخر لربط الطلب. أما سيناريو ضغط الحمل (pressure场景) فهو محدد بالفعل: فبعد أن يقدّم المستخدم معاملة دفع تتضمن فعل استدعاء عقد، يعرض الواجهة الأمامية أنها أُرسلت، لكن الخلفية تُطابق الطلبات اعتمادًا على memo. النتيجة أن المبلغ يصل، لكن رقم الطلب لا يظهر كما هو متوقع، فيضطر مركز خدمة العملاء إلى البحث يدويًا عن المعاملة. قد لا تكون المشكلة أن Dusk “فقدت” البيانات، بل ربما أن جهة التكامل فرضت عادات معاملات سلسلة أخرى بشكلٍ جامد على Dusk. لذلك عند النظر إلى تكامل دفع DUSK الآن، لن أكتفي بسؤال ما إذا كان التحويل يمكن أن ينجح فقط؛ بل سأؤكد أولًا ما إذا كانت المعاملة تحمل memo أم استدعاء عقد، ثم سأتحقق مما إذا كان ربط الطلبات يمكن مراجعته بشكل مستقل. @Dusk_Foundation قد كتب حدود الـ payload بوضوح، لكن الأهم هو ما إذا كانت الأمثلة ستُمكن المطورين من تجنب هذا الاستخدام الخاطئ مسبقًا—وهو الأمر الذي يستحق التحقق أكثر عندما يدخل Dusk سيناريوهات الدفع الواقعية. {spot}(DUSKUSDT)
#dusk $DUSK @Dusk كنتُ في السابق عند القيام بالمدفوعات على السلسلة اعتدتُ أن أدرج رقم الطلب ضمن حقل memo بشكلٍ عفوي، لكن بعد قراءة مستند Transaction Lifecycle الخاص بـ @Dusk اكتشفت أن هذا الأسلوب لا يمكن نقله مباشرةً. وذلك لأن بيانات معاملات Dusk تكون في علاقة اختيارٍ أحادي بين memo واستدعاء العقد ونشر العقد وblob، ولا يمكن لـ memo أن يُفترض أنه يُرفق تلقائيًا مع حمولات أخرى. وهذا الاختلاف سيؤثر بشكل مباشر على طريقة توصيل نظام الدفع. إذا كان التاجر يريد استلام المدفوعات وفي الوقت نفسه استدعاء عقد لإتمام العملية، فلن يستطيع افتراض أن بإمكانه الاستمرار في وضع رقم الطلب في memo داخل نفس معاملة الدفع. على العميل أولًا أن يحدد المهمة الرئيسية لهذه المعاملة، ثم يَصمم سجلًا موثوقًا آخر لربط الطلب. أما سيناريو ضغط الحمل (pressure场景) فهو محدد بالفعل: فبعد أن يقدّم المستخدم معاملة دفع تتضمن فعل استدعاء عقد، يعرض الواجهة الأمامية أنها أُرسلت، لكن الخلفية تُطابق الطلبات اعتمادًا على memo. النتيجة أن المبلغ يصل، لكن رقم الطلب لا يظهر كما هو متوقع، فيضطر مركز خدمة العملاء إلى البحث يدويًا عن المعاملة. قد لا تكون المشكلة أن Dusk “فقدت” البيانات، بل ربما أن جهة التكامل فرضت عادات معاملات سلسلة أخرى بشكلٍ جامد على Dusk. لذلك عند النظر إلى تكامل دفع DUSK الآن، لن أكتفي بسؤال ما إذا كان التحويل يمكن أن ينجح فقط؛ بل سأؤكد أولًا ما إذا كانت المعاملة تحمل memo أم استدعاء عقد، ثم سأتحقق مما إذا كان ربط الطلبات يمكن مراجعته بشكل مستقل. @Dusk قد كتب حدود الـ payload بوضوح، لكن الأهم هو ما إذا كانت الأمثلة ستُمكن المطورين من تجنب هذا الاستخدام الخاطئ مسبقًا—وهو الأمر الذي يستحق التحقق أكثر عندما يدخل Dusk سيناريوهات الدفع الواقعية.
·
--
صاعد
#termmax @termmax في حين أن هناك أموالًا بالفعل داخل هذا الـVault، إلا أن الأوامر لا تزال لا تُسَرَّع في الزيادة. في البداية كنت أنسب هذا الظاهرة إلى نقص احتياجات الاقتراض، لكن بعد الاطلاع على مستندات TermMax Curator وجملة “maximum supply limits for orders” أدركت أن للأوامر نفسها سقفًا بشريًا (حدًا أقصى). هذا الحد يتم ضبطه على مستوى الأمر نفسه وليس على إجمالي رصيد الـVault. ويمكن لـCurator أن يقيّد كمية الإمداد القصوى لِـlending order بعينه، لذلك حتى لو ظلت الأموال راكدة داخل الـVault فقد لا تتمكن من الاستمرار في الدخول إلى نفس السوق. رؤية الرصيد لا يزال قائمًا لا تعني بالضرورة أن الاستراتيجية فقط تنتظر المقترضين؛ فقد يكون الأمر قد وصل بالفعل إلى السقف. لهذه الآلية منطقٌ معقول: عندما يصبح السوق فجأة أكثر سخونة، لا داعي لأن يدفع Curator كامل التمويل إلى عرض واحد، لكن إذا كان الحد منخفضًا جدًا فقد يؤدي ذلك إلى بقاء الأموال عاطلة وتفويت الفرصة على المودعين لإتمام الصفقات، أما إذا كان مرتفعًا جدًا فقد تتضخم المخاطر التعرضية لتركيز الأموال في سوق واحد. يقوم Curator بتعديل المخاطر، بينما قد لا يعرف المودعون في أي اتجاه تم لف هذا القرص. سيناريو الضغط يكون عندما تتدفق فجأة احتياجات الاقتراض؛ عندها يصل الأمر إلى الحد أولًا، بينما لا يزال هناك رصيد داخل الـVault. قد يعتقد المستخدمون خطأً أن السوق لا يملك طلبًا، وبعد أن يتم رفع الحد قد تندفع الأموال مرة أخرى في أكثر الأوقات ازدحامًا، فتكون المخاطر التي تتحملها الأطراف في البداية وفي النهاية غير متطابقة. لذلك عندما أنظر إلى Vault الخاص بـ@termmax لا أكتفي بمراقبة إجمالي الأصول ومنحنى العائد، بل سأفحص أولًا لكل أمر: maximum supply limit، والأموال غير المستثمرة، وسجلات تغييرات الحد. بالنسبة لكفاءة رأس المال في الـVaults المرتبطة بـTMX، فالتركيز الأساسي لا يكون في ما إذا كانت الأموال قد دخلت الـVault أم لا، بل في سبب توقفها عند هذا الحد. #TermMax
#termmax @TermMax في حين أن هناك أموالًا بالفعل داخل هذا الـVault، إلا أن الأوامر لا تزال لا تُسَرَّع في الزيادة. في البداية كنت أنسب هذا الظاهرة إلى نقص احتياجات الاقتراض، لكن بعد الاطلاع على مستندات TermMax Curator وجملة “maximum supply limits for orders” أدركت أن للأوامر نفسها سقفًا بشريًا (حدًا أقصى). هذا الحد يتم ضبطه على مستوى الأمر نفسه وليس على إجمالي رصيد الـVault. ويمكن لـCurator أن يقيّد كمية الإمداد القصوى لِـlending order بعينه، لذلك حتى لو ظلت الأموال راكدة داخل الـVault فقد لا تتمكن من الاستمرار في الدخول إلى نفس السوق. رؤية الرصيد لا يزال قائمًا لا تعني بالضرورة أن الاستراتيجية فقط تنتظر المقترضين؛ فقد يكون الأمر قد وصل بالفعل إلى السقف. لهذه الآلية منطقٌ معقول: عندما يصبح السوق فجأة أكثر سخونة، لا داعي لأن يدفع Curator كامل التمويل إلى عرض واحد، لكن إذا كان الحد منخفضًا جدًا فقد يؤدي ذلك إلى بقاء الأموال عاطلة وتفويت الفرصة على المودعين لإتمام الصفقات، أما إذا كان مرتفعًا جدًا فقد تتضخم المخاطر التعرضية لتركيز الأموال في سوق واحد. يقوم Curator بتعديل المخاطر، بينما قد لا يعرف المودعون في أي اتجاه تم لف هذا القرص. سيناريو الضغط يكون عندما تتدفق فجأة احتياجات الاقتراض؛ عندها يصل الأمر إلى الحد أولًا، بينما لا يزال هناك رصيد داخل الـVault. قد يعتقد المستخدمون خطأً أن السوق لا يملك طلبًا، وبعد أن يتم رفع الحد قد تندفع الأموال مرة أخرى في أكثر الأوقات ازدحامًا، فتكون المخاطر التي تتحملها الأطراف في البداية وفي النهاية غير متطابقة. لذلك عندما أنظر إلى Vault الخاص بـ@TermMax لا أكتفي بمراقبة إجمالي الأصول ومنحنى العائد، بل سأفحص أولًا لكل أمر: maximum supply limit، والأموال غير المستثمرة، وسجلات تغييرات الحد. بالنسبة لكفاءة رأس المال في الـVaults المرتبطة بـTMX، فالتركيز الأساسي لا يكون في ما إذا كانت الأموال قد دخلت الـVault أم لا، بل في سبب توقفها عند هذا الحد. #TermMax
·
--
صاعد
#dusk $DUSK @Dusk_Foundation كنتُ سابقًا أعتاد أن أعتبر إنشاء الحساب الخطوةَ الأخيرة قبل الإرسال، لكنني عندما قرأت قسم “Signing transactions directly” في @Dusk_Foundation أدركتُ أن هذا الحكم يحتاج إلى تصحيح. يوفّر W3sper منشئَ معاملات، لكنه ليس محفظةً كاملة، لذلك فإن الملف الشخصي Profile الذي تم إنشاؤه حديثًا لا يملك Bookkeeper متزامنًا، كما أن الرصيد وحالة nonce اللازمة للمعاملة لم تكن قد أُعدّت بعد. وعندما نظرتُ إلى مثال التوقيع المباشر في W3sper كانت أول فكرة خطرت لي: بما أن Profile قد أُنشئ، فلماذا لا يمكن إرسال معاملة $DUSK مباشرة؟ ثم انتبهتُ لاحقًا إلى هذه الحدود التي يسهل التغاضي عنها في الوثيقة. بالنسبة للمطورين، يعني هذا أن هناك عملًا إضافيًا يجب إنجازه بين “يمكن إنشاء حساب” و“أصبح بالإمكان إرسال معاملة”، بما في ذلك تخزين المفاتيح القابل للاسترجاع، ومزامنة حالة Treasury، والحفاظ على Bookkeeper. وإذا غاب أيٌّ من هذه الطبقات، فقد لا يقدّم الكود رسائل خطأ سهلة الفهم. تخيّل فريقًا يطلق خدمة دفع آلي ثم يستخدم Profile جديدًا لتحويل الأموال مباشرة؛ في الاختبارات قد لا يرى سوى فشل قراءة الرصيد أو رسالة تفيد بأن nonce غير موجود، لكن عند النشر قد يبحث من يتتبّع المشكلة أولًا عن خلل في العقدة أو الشبكة، بينما يتحمّل المستخدم الذي ينتظر الدفع التأخير الزمني. لذلك، عندما أقيم W3sper الآن، لا أسأل فقط عمّا إذا كان يستطيع تركيب معاملة، بل أنظر أولًا إلى ما إذا كانت الأمثلة تشرح بوضوح المراحل الثلاث: إنشاء الحساب، ومزامنة الحالة، ثم المعاملة القابلة للإرسال. W3sper لا يخفي قدرات المحفظة، بل يضع جزءًا من مسؤولية إدارة الحالة على الطرف المدمج. وبالنسبة للنظام البيئي للمطورين في @Dusk_Foundation ، فإن السؤال الحقيقي الذي يحتاج إلى التحقق هو: هل يستطيع فريق جديد، قبل أول محاولة لإرسال معاملة، أن يكتشف بنفسه أن Bookkeeper لديه لم يصبح جاهزًا بعد.#dusk {future}(DUSKUSDT)
#dusk $DUSK @Dusk كنتُ سابقًا أعتاد أن أعتبر إنشاء الحساب الخطوةَ الأخيرة قبل الإرسال، لكنني عندما قرأت قسم “Signing transactions directly” في @Dusk أدركتُ أن هذا الحكم يحتاج إلى تصحيح. يوفّر W3sper منشئَ معاملات، لكنه ليس محفظةً كاملة، لذلك فإن الملف الشخصي Profile الذي تم إنشاؤه حديثًا لا يملك Bookkeeper متزامنًا، كما أن الرصيد وحالة nonce اللازمة للمعاملة لم تكن قد أُعدّت بعد. وعندما نظرتُ إلى مثال التوقيع المباشر في W3sper كانت أول فكرة خطرت لي: بما أن Profile قد أُنشئ، فلماذا لا يمكن إرسال معاملة $DUSK مباشرة؟ ثم انتبهتُ لاحقًا إلى هذه الحدود التي يسهل التغاضي عنها في الوثيقة.

بالنسبة للمطورين، يعني هذا أن هناك عملًا إضافيًا يجب إنجازه بين “يمكن إنشاء حساب” و“أصبح بالإمكان إرسال معاملة”، بما في ذلك تخزين المفاتيح القابل للاسترجاع، ومزامنة حالة Treasury، والحفاظ على Bookkeeper. وإذا غاب أيٌّ من هذه الطبقات، فقد لا يقدّم الكود رسائل خطأ سهلة الفهم. تخيّل فريقًا يطلق خدمة دفع آلي ثم يستخدم Profile جديدًا لتحويل الأموال مباشرة؛ في الاختبارات قد لا يرى سوى فشل قراءة الرصيد أو رسالة تفيد بأن nonce غير موجود، لكن عند النشر قد يبحث من يتتبّع المشكلة أولًا عن خلل في العقدة أو الشبكة، بينما يتحمّل المستخدم الذي ينتظر الدفع التأخير الزمني.

لذلك، عندما أقيم W3sper الآن، لا أسأل فقط عمّا إذا كان يستطيع تركيب معاملة، بل أنظر أولًا إلى ما إذا كانت الأمثلة تشرح بوضوح المراحل الثلاث: إنشاء الحساب، ومزامنة الحالة، ثم المعاملة القابلة للإرسال. W3sper لا يخفي قدرات المحفظة، بل يضع جزءًا من مسؤولية إدارة الحالة على الطرف المدمج. وبالنسبة للنظام البيئي للمطورين في @Dusk ، فإن السؤال الحقيقي الذي يحتاج إلى التحقق هو: هل يستطيع فريق جديد، قبل أول محاولة لإرسال معاملة، أن يكتشف بنفسه أن Bookkeeper لديه لم يصبح جاهزًا بعد.#dusk
·
--
صاعد
#termmax @termmax في أغلب الأحيان، ما يتم التقليل من شأنه ليس سعر الفائدة نفسه، بل الفترة التي يتم فيها حبس رأس المال حتى تاريخ الاستحقاق. عندما اطلعت على تعريف السوق ذي الفائدة الثابتة، لاحظت حقلًا بسيطًا جدًا: بالإضافة إلى رمز الدين والضمانات، يجب أن يكون هناك تاريخ استحقاق واضح (Maturity Date). يمكن استرداد رمز الدين (Debt Token) بواسطة FT عند الاستحقاق بالقيمة الاسمية، وهذا يضع نقطة حساب نهائية لعائد المقرضين؛ لكن قبل حلول ذلك اليوم، تظل FT التي بحوزة المقرضة/المستثمر أصلًا سوقيًا يحمل مدة متبقية. يُقال “ثابت” لكن ذلك لم يجعل الخروج المبكر بسعر ثابت. وهذا يغيّر منطق قرار المقرضين. افترض أن معدلات السوق ترتفع فجأة؛ حينئذٍ سيكون لدى الأموال الجديدة استعداد لعائد أعلى مقابل الإقراض، بينما لا تتغير القيمة الاسمية لـ FT القديم، لكن المدة المتبقية تجعلها أقل جاذبية في السوق. إذا تمسّك الحائز بالانتظار حتى الاستحقاق، سيحصل على القيمة الاسمية المتفق عليها مسبقًا؛ أما إذا احتاج إلى نقد في الوقت المناسب، فلا بد أن يقبل بإعادة تسعير السوق للوقت المتبقي. ما يتم تسعيره فعليًا ليس رمز الدين فحسب، بل الانتظار ذاته. كما يتأثر المقترضون. قد تكون FT القريبة من الاستحقاق أقرب إلى القيمة الاسمية، أما FT الآجلة فتحتاج إلى خصم أكبر لتعويض الانتظار وتغيرات الفائدة. يبدو أن السوق كله يسميه “سعر فائدة ثابت”، لكن في الواقع، ترتّب الفترات المختلفة من آجال الأموال تجربة سيولة مختلفة تمامًا. يتحمل المقرض تكلفة الزمن، ويتحمل المقترض فرق التمويل الناتج عن اختيار الأجل. لذلك، عندما أنظر إلى تصميم الاستحقاق لـ @termmax ، لا أظن أنه سيعامل تاريخ الاستحقاق (Maturity Date) كمجرد يوم تسوية. إنها أقرب إلى خط يفصل بين ضمان يقينية العائد والسيولة المالية. $TMX السوق/الأسواق ذات الصلة التي تلي ذلك تستحق التحقق من السعر الحقيقي للصفقات والعمق/السيولة الفعلية لـ FT عبر فترات آجال مختلفة المتبقية؛ لا يمكن اعتبار الفائدة الثابتة مجرد وعد جميل يتم الوفاء به فقط في يوم الاستحقاق إذا لم يكن هذان الأمران واضحين.#TermMax
#termmax @TermMax في أغلب الأحيان، ما يتم التقليل من شأنه ليس سعر الفائدة نفسه، بل الفترة التي يتم فيها حبس رأس المال حتى تاريخ الاستحقاق.
عندما اطلعت على تعريف السوق ذي الفائدة الثابتة، لاحظت حقلًا بسيطًا جدًا: بالإضافة إلى رمز الدين والضمانات، يجب أن يكون هناك تاريخ استحقاق واضح (Maturity Date). يمكن استرداد رمز الدين (Debt Token) بواسطة FT عند الاستحقاق بالقيمة الاسمية، وهذا يضع نقطة حساب نهائية لعائد المقرضين؛ لكن قبل حلول ذلك اليوم، تظل FT التي بحوزة المقرضة/المستثمر أصلًا سوقيًا يحمل مدة متبقية. يُقال “ثابت” لكن ذلك لم يجعل الخروج المبكر بسعر ثابت.
وهذا يغيّر منطق قرار المقرضين. افترض أن معدلات السوق ترتفع فجأة؛ حينئذٍ سيكون لدى الأموال الجديدة استعداد لعائد أعلى مقابل الإقراض، بينما لا تتغير القيمة الاسمية لـ FT القديم، لكن المدة المتبقية تجعلها أقل جاذبية في السوق. إذا تمسّك الحائز بالانتظار حتى الاستحقاق، سيحصل على القيمة الاسمية المتفق عليها مسبقًا؛ أما إذا احتاج إلى نقد في الوقت المناسب، فلا بد أن يقبل بإعادة تسعير السوق للوقت المتبقي. ما يتم تسعيره فعليًا ليس رمز الدين فحسب، بل الانتظار ذاته.
كما يتأثر المقترضون. قد تكون FT القريبة من الاستحقاق أقرب إلى القيمة الاسمية، أما FT الآجلة فتحتاج إلى خصم أكبر لتعويض الانتظار وتغيرات الفائدة. يبدو أن السوق كله يسميه “سعر فائدة ثابت”، لكن في الواقع، ترتّب الفترات المختلفة من آجال الأموال تجربة سيولة مختلفة تمامًا. يتحمل المقرض تكلفة الزمن، ويتحمل المقترض فرق التمويل الناتج عن اختيار الأجل.
لذلك، عندما أنظر إلى تصميم الاستحقاق لـ @TermMax ، لا أظن أنه سيعامل تاريخ الاستحقاق (Maturity Date) كمجرد يوم تسوية. إنها أقرب إلى خط يفصل بين ضمان يقينية العائد والسيولة المالية. $TMX السوق/الأسواق ذات الصلة التي تلي ذلك تستحق التحقق من السعر الحقيقي للصفقات والعمق/السيولة الفعلية لـ FT عبر فترات آجال مختلفة المتبقية؛ لا يمكن اعتبار الفائدة الثابتة مجرد وعد جميل يتم الوفاء به فقط في يوم الاستحقاق إذا لم يكن هذان الأمران واضحين.#TermMax
·
--
“هل انتهت المعاملة بالفعل، لكن الصفحة لم تتغير بعد؟”——إذا قيلت هذه العبارة في لوحة محفظة أو في الخلفية الخاصة بسوق تداول، فعادةً ليست مشكلة المستخدم، بل أن النظام التقط الحدث بشكل خاطئ أو فاتته الإشارة. واجهة HTTP الخاصة بـ @Dusk_Foundation تضع اشتراك أحداث العقد ضمن المسار /on/contracts:<contract_id>/<method>. يتم استخدام GET لإضافة الاشتراك وDELETE لإلغائه، ولا بد من الاعتماد على Rusk-Session-Id للحفاظ على الجلسة. يبدو الأمر كأنه تفاصيل واجهة برمجية، لكن في رأيي فهو في الحقيقة يذكّر بشيء واحد: الإشعارات الفورية نفسها ليست دفتر الأستاذ. عندما يكون الاتصال طبيعيًا، تقوم المحفظة بتحديث الرصيد عبر الأحداث، ويقوم سوق التداول بتقديم عملية التجميع أو حالة الطلب عبر الأحداث. لكن بعد انقطاع الاتصال، لا تستطيع الجلسة إلا مساعدتك في استعادة علاقة الاشتراك، ولا يمكنها إثبات أنه لم يتم تفويت أي شيء في الوسط. الجزء الذي تم تفويته—لا يزال يجب الرجوع إليه من جديد في حالة البلوكات والمعاملات وحالة العقد ثم معالجته. أتخيل سيناريو محددًا. تم بالفعل نشر تحويل DUSK الخاص بالمستخدم على السلسلة. وانقطع اتصال الاستماع لدى سوق التداول تمامًا لبضع دقائق. لا مشكلة في السجل الموجود على السلسلة، لكن الرصيد لم يُحدَّث. عند قيام المستخدم بإرسال مرة أخرى، قد تظهر في الخلفية سجلات انتظار معالجة مزدوجة. ما يراه فريق خدمة العملاء هو “لم يصل المبلغ”، وما يواجهه فريق العمليات هو تعويض عبر الأحداث مع مطابقة يدوية. هذا يجعل لدي متطلبًا إضافيًا لواجهة أحداث @Dusk_Foundation . كتابة نقطة إدخال الاشتراك في الوثائق هي مجرد الخطوة الأولى، أما الذي يحدد جودة التكامل حقًا فهو ما إذا كانت المحفظة وسوق التداول يمكنهما—بعد إعادة الاتصال—استعادة السياق عبر session، ثم سد الفجوة باستخدام حالة السلسلة على نحو موثوق. $DUSK يجب أن يحمل تدفق الأصول الحقيقي، والإشعارات الفورية وظيفتها التنبيه فقط؛ وفي النهاية يجب أن يكون هناك مسار آخر للتحقق والمراجعة. #dusk {spot}(DUSKUSDT)
“هل انتهت المعاملة بالفعل، لكن الصفحة لم تتغير بعد؟”——إذا قيلت هذه العبارة في لوحة محفظة أو في الخلفية الخاصة بسوق تداول، فعادةً ليست مشكلة المستخدم، بل أن النظام التقط الحدث بشكل خاطئ أو فاتته الإشارة.

واجهة HTTP الخاصة بـ @Dusk تضع اشتراك أحداث العقد ضمن المسار /on/contracts:<contract_id>/<method>. يتم استخدام GET لإضافة الاشتراك وDELETE لإلغائه، ولا بد من الاعتماد على Rusk-Session-Id للحفاظ على الجلسة. يبدو الأمر كأنه تفاصيل واجهة برمجية، لكن في رأيي فهو في الحقيقة يذكّر بشيء واحد: الإشعارات الفورية نفسها ليست دفتر الأستاذ.

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

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

هذا يجعل لدي متطلبًا إضافيًا لواجهة أحداث @Dusk . كتابة نقطة إدخال الاشتراك في الوثائق هي مجرد الخطوة الأولى، أما الذي يحدد جودة التكامل حقًا فهو ما إذا كانت المحفظة وسوق التداول يمكنهما—بعد إعادة الاتصال—استعادة السياق عبر session، ثم سد الفجوة باستخدام حالة السلسلة على نحو موثوق. $DUSK يجب أن يحمل تدفق الأصول الحقيقي، والإشعارات الفورية وظيفتها التنبيه فقط؛ وفي النهاية يجب أن يكون هناك مسار آخر للتحقق والمراجعة. #dusk
·
--
صاعد
#termmax @termmax رأيت أنه في Vault تتم كتابة كلٍّ من Curator Fee وProtocol Fee في نفس الوقت. سأطرح سؤالًا أولًا: هل هاتان الدفعتان تُخصمان من مبلغي الأساسي (الأصل)، أم أنهما تُسحبان قبل أن أحصل على العوائد؟ الفرق بينهما يبدو دقيقًا، لكن عند وضعه فعليًا في صفحة الإيداع، فإنه يؤثر مباشرةً على ما إذا كنت سأجرؤ على وضع أصولي هناك. يوضح مُودعو TermMax أن النطاق مكتوب بشكل أضيق: يتم تطبيق هاتين الرسوم فقط على العوائد السلبية الناتجة عن الأصول غير المستغلة، ولا يتم خصمها مباشرةً من المبلغ المودَع. كما أن الرسوم مُدرجة بالفعل في share price ولا يحتاج المستخدم إلى المطالبة بها يدويًا أو دفعها مرةً أخرى. بمعنى آخر، سعر الحصص في الصفحة هو نتيجة مُخصمَة من الرسوم أصلًا. لا يحتاج المستخدم إلى النقر للتأكيد مرة ثانية، لكن لا يمكنه أيضًا خلط “العائد الإجمالي” مع الحصص التي زادت بالفعل لديه. أعتقد أن فائدة هذا التصميم هي أن الرسوم لا تكون مخفية داخل اقتطاع مفاجئ عند سحبٍ واحد. والمشكلة أيضًا تكمن هنا. إذا كانت أصول الـ Vault لا تُستخدم من قبل الاستراتيجيات لفترة طويلة من الوقت، فقد تبدو الأرباح وكأنها تزيد تدريجيًا، بينما سيستمر Curator والبروتوكول في أخذ الرسوم من جزء العوائد السلبية. وإذا ضعفت أداء الاستراتيجية، فقد يتوقف share price أو حتى ينخفض، عندها سيدرك المستخدم أن عبارة “نفرض رسومًا فقط على العوائد” لا تعني تلقائيًا أن رأس المال لا يملك فرصة للتراجع. لذلك عند النظر إلى قواعد الرسوم في @termmax ، لا أعتبرها “رسومًا زهيدة” لمجرد أنها “تُحصّل فقط على العوائد”. لقد أوضحت لمن تُفرض الرسوم، لكنها لم تضع ضمانًا بنتيجة الاستراتيجية. أما الـ Vaults المرتبطة بـ termmax، فأكثر ما ينبغي أن يُعلن لاحقًا هو: تغيّر العائد الإجمالي، والرسوم السليـمتان، وتغير share price النهائي، حتى يستطيع المُودعون حساب أين ذهبت تلك الأموال بالضبط.#TermMax
#termmax @TermMax رأيت أنه في Vault تتم كتابة كلٍّ من Curator Fee وProtocol Fee في نفس الوقت. سأطرح سؤالًا أولًا: هل هاتان الدفعتان تُخصمان من مبلغي الأساسي (الأصل)، أم أنهما تُسحبان قبل أن أحصل على العوائد؟ الفرق بينهما يبدو دقيقًا، لكن عند وضعه فعليًا في صفحة الإيداع، فإنه يؤثر مباشرةً على ما إذا كنت سأجرؤ على وضع أصولي هناك.
يوضح مُودعو TermMax أن النطاق مكتوب بشكل أضيق: يتم تطبيق هاتين الرسوم فقط على العوائد السلبية الناتجة عن الأصول غير المستغلة، ولا يتم خصمها مباشرةً من المبلغ المودَع. كما أن الرسوم مُدرجة بالفعل في share price ولا يحتاج المستخدم إلى المطالبة بها يدويًا أو دفعها مرةً أخرى. بمعنى آخر، سعر الحصص في الصفحة هو نتيجة مُخصمَة من الرسوم أصلًا. لا يحتاج المستخدم إلى النقر للتأكيد مرة ثانية، لكن لا يمكنه أيضًا خلط “العائد الإجمالي” مع الحصص التي زادت بالفعل لديه.
أعتقد أن فائدة هذا التصميم هي أن الرسوم لا تكون مخفية داخل اقتطاع مفاجئ عند سحبٍ واحد. والمشكلة أيضًا تكمن هنا. إذا كانت أصول الـ Vault لا تُستخدم من قبل الاستراتيجيات لفترة طويلة من الوقت، فقد تبدو الأرباح وكأنها تزيد تدريجيًا، بينما سيستمر Curator والبروتوكول في أخذ الرسوم من جزء العوائد السلبية. وإذا ضعفت أداء الاستراتيجية، فقد يتوقف share price أو حتى ينخفض، عندها سيدرك المستخدم أن عبارة “نفرض رسومًا فقط على العوائد” لا تعني تلقائيًا أن رأس المال لا يملك فرصة للتراجع.
لذلك عند النظر إلى قواعد الرسوم في @TermMax ، لا أعتبرها “رسومًا زهيدة” لمجرد أنها “تُحصّل فقط على العوائد”. لقد أوضحت لمن تُفرض الرسوم، لكنها لم تضع ضمانًا بنتيجة الاستراتيجية. أما الـ Vaults المرتبطة بـ termmax، فأكثر ما ينبغي أن يُعلن لاحقًا هو: تغيّر العائد الإجمالي، والرسوم السليـمتان، وتغير share price النهائي، حتى يستطيع المُودعون حساب أين ذهبت تلك الأموال بالضبط.#TermMax
·
--
لقد كدت أعتبر APR لاقتراض الرقم @termmax هو التكلفة النهائية. وعندما فتحت شرح الرسوم الرسمي، ما أوقفني هو الجزء في الصيغة الخاص بـ“days to maturity / 365”: مبلغ القرض يكون مطابقًا للعروض، لكن المدة تختلف، فتتغير رسوم المعاملة تبعًا لذلك. عادةً ما تعرض صفحة السوق APR في أكثر مكان ظاهرًا، بينما تُخبئ المدة في زاوية أخرى. شخصٌ يقارن سوقًا واحدًا بدل سوقين: يرى نفس الفائدة فيظن أن المصروفات متقاربة؛ لكن ما يتم احتسابه فعليًا هو أيضًا مدة بقاء هذه الأموال على ذمّة الصفقة. كلما طالت المدة، صار عنصر الوقت أمرًا لا يمكن تجنبه. عندما تكون السيولة ضيقة، لا يكون الفرق مجرد رقم بعد الفاصلة، بل خطة السداد نفسها. تخيّلت سيناريو عمليًا. كان المستخدم مستعجلًا لاقتراض مبلغ، فوجد عرضين متقاربين، فاختار ببساطة الخيار الأطول مدة. بعد تأكيد المعاملة اكتشف أن معدل الفائدة لم يتغير، لكن الرسوم التي تم خصمها في النهاية كانت مختلفة. لم يكن هناك خطأ في الحساب؛ هو فقط حين قارن كان ينظر إلى رقم العائد السنوي فقط، دون أن يضع تاريخ الاستحقاق ضمن “الدفتر”. لقد تم سحب المال بالفعل، وفرصة المقارنة لا يمكن تكرارها. الآن عندما أفتح عرض @termmax ، أبدأ بعرض إجمالي الرسوم وتاريخ الاستحقاق، ثم أرى APR في النهاية. إذا كانت TMX تريد مساعدة المستخدمين على تقليل هذا النوع من المقارنات “تبدو محسوبة لكنها ناقصة”، فأنفع تنبيه ليس تضخيم الفائدة مرة أخرى، بل عرض مبلغ القرض والمدة والرسوم النهائية للمعاملة في سطر واحد قبل التأكيد. #TermMax
لقد كدت أعتبر APR لاقتراض الرقم @TermMax هو التكلفة النهائية. وعندما فتحت شرح الرسوم الرسمي، ما أوقفني هو الجزء في الصيغة الخاص بـ“days to maturity / 365”: مبلغ القرض يكون مطابقًا للعروض، لكن المدة تختلف، فتتغير رسوم المعاملة تبعًا لذلك.

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

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

الآن عندما أفتح عرض @TermMax ، أبدأ بعرض إجمالي الرسوم وتاريخ الاستحقاق، ثم أرى APR في النهاية. إذا كانت TMX تريد مساعدة المستخدمين على تقليل هذا النوع من المقارنات “تبدو محسوبة لكنها ناقصة”، فأنفع تنبيه ليس تضخيم الفائدة مرة أخرى، بل عرض مبلغ القرض والمدة والرسوم النهائية للمعاملة في سطر واحد قبل التأكيد. #TermMax
·
--
هل ما نقص من DUSK في المحفظة بعد فشل العملية يُعتبر كأنك صرفت أموالًا بلا فائدة؟👻؟ عندما فتحت صفحة Tokenomics الخاصة بـ Dusk، رأيت قاعدة سهلة جدًا أن تُفوّت: إذا استُهلك الغاز بالكامل في عملية ما، فسيتم التراجع (Rollback)، لكن الغاز الذي تم استهلاكه بالفعل لن يُعفى منه—يتم تحصيل رسومه مع ذلك. كلمة “فشل” التي يتكلم بها المستخدمون قد تعني على السلسلة واحدًا من نتيجتين على الأقل. حد الغاز (Gas limit) يحدد أقصى قدر من العمل يمكن لهذه الاستدعاء القيام به، وسعر الغاز (Gas price) هو ثمن كل وحدة من العمل. تُحسب التكلفة بناءً على الاستهلاك الفعلي؛ وما لم يُستخدم لا يُخصم. هذه القواعد بحد ذاتها ليست مشكلة. المشكلة أن المحفظة غالبًا ما تعطيك فقط عبارة واحدة بخلفية حمراء ونص أبيض: “Failed”. سابقًا كنت بالتأكيد ألوم المستخدمين لأنهم لم يتركوا رسومًا كافية. الآن وقد عدت أنظر من جديد، هل المنتج يشرح سبب الفشل بوضوح؟ هذا هو ما يحدد مباشرة ما إذا كان المستخدم سيتحمّس لمحاولة ثانية أم لا. هل السبب أن حجم العمل غير كافٍ؟ أم مشكلة صلاحيات؟ أم معطيات (Parameters) خاطئة؟ أم حالة الشبكة؟ طريقة التعامل تختلف تمامًا. لنضرب مثالًا على ذلك. شخص استخدم كمية صغيرة من DUSK لتشغيل عقد (Contract)، لكنه وضع Gas limit منخفضًا جدًا. فشلت المعاملة: نقص الرصيد حصل، لكن حالة السلسلة لم تتغير. ثم حاول مرة أخرى ودفع رسومًا إضافية. إذا كانت الجذور في كتابة المعلمات بشكل خاطئ، فستستمر الرسوم في الاحتراق في كل مرة. لذلك لا أرى أن آلية غاز Dusk يمكن اختزالها ببساطة إلى “حتى الفشل يجب أن يُحسب عليه رسوم”. البروتوكول أوضح بالفعل حدود ما يتم إرجاعه عند عدم استخدام الغاز وما يتم تحصيله عند استهلاكه. ما يحتاجه المنتج هو ترجمة هذه الحدود إلى لغة يفهمها الناس. @Dusk_Foundation إذا كان بإمكانها عرض كلًا من gas limit والإنفاق الفعلي وسبب الفشل معًا داخل سجل الفشل، فستقل طبقة واحدة من سوء الفهم حول شرط الاستخدام الخاص بـ $DUSK . #dusk {spot}(DUSKUSDT)
هل ما نقص من DUSK في المحفظة بعد فشل العملية يُعتبر كأنك صرفت أموالًا بلا فائدة؟👻؟

عندما فتحت صفحة Tokenomics الخاصة بـ Dusk، رأيت قاعدة سهلة جدًا أن تُفوّت: إذا استُهلك الغاز بالكامل في عملية ما، فسيتم التراجع (Rollback)، لكن الغاز الذي تم استهلاكه بالفعل لن يُعفى منه—يتم تحصيل رسومه مع ذلك. كلمة “فشل” التي يتكلم بها المستخدمون قد تعني على السلسلة واحدًا من نتيجتين على الأقل.

حد الغاز (Gas limit) يحدد أقصى قدر من العمل يمكن لهذه الاستدعاء القيام به، وسعر الغاز (Gas price) هو ثمن كل وحدة من العمل. تُحسب التكلفة بناءً على الاستهلاك الفعلي؛ وما لم يُستخدم لا يُخصم. هذه القواعد بحد ذاتها ليست مشكلة. المشكلة أن المحفظة غالبًا ما تعطيك فقط عبارة واحدة بخلفية حمراء ونص أبيض: “Failed”.

سابقًا كنت بالتأكيد ألوم المستخدمين لأنهم لم يتركوا رسومًا كافية. الآن وقد عدت أنظر من جديد، هل المنتج يشرح سبب الفشل بوضوح؟ هذا هو ما يحدد مباشرة ما إذا كان المستخدم سيتحمّس لمحاولة ثانية أم لا. هل السبب أن حجم العمل غير كافٍ؟ أم مشكلة صلاحيات؟ أم معطيات (Parameters) خاطئة؟ أم حالة الشبكة؟ طريقة التعامل تختلف تمامًا.

لنضرب مثالًا على ذلك. شخص استخدم كمية صغيرة من DUSK لتشغيل عقد (Contract)، لكنه وضع Gas limit منخفضًا جدًا. فشلت المعاملة: نقص الرصيد حصل، لكن حالة السلسلة لم تتغير. ثم حاول مرة أخرى ودفع رسومًا إضافية. إذا كانت الجذور في كتابة المعلمات بشكل خاطئ، فستستمر الرسوم في الاحتراق في كل مرة.

لذلك لا أرى أن آلية غاز Dusk يمكن اختزالها ببساطة إلى “حتى الفشل يجب أن يُحسب عليه رسوم”. البروتوكول أوضح بالفعل حدود ما يتم إرجاعه عند عدم استخدام الغاز وما يتم تحصيله عند استهلاكه. ما يحتاجه المنتج هو ترجمة هذه الحدود إلى لغة يفهمها الناس. @Dusk إذا كان بإمكانها عرض كلًا من gas limit والإنفاق الفعلي وسبب الفشل معًا داخل سجل الفشل، فستقل طبقة واحدة من سوء الفهم حول شرط الاستخدام الخاص بـ $DUSK . #dusk
·
--
@termmax يوجد في ذلك range order شيء صغير وغير ملفت للنظر من نوع مفتاح تبديل، وكلما نظرت إليه أكثر شعرت أنه يجب الانتباه له. في البداية ظننت أن المنحنى مجرد عرض أسعار معلن على السلسلة، يراه الجميع ويمكن لأي شخص أن يستند إليه. لكن بعد الاطلاع على الوثائق رأيت جملة تقول: يمكن لمن يقوم بإعداد/تقديم الطلب استخدام toggle لإيقافه مؤقتًا، ثم فتحه عندما تكون ظروف السوق مناسبة. عندها تجمّدت لحظة——فهذا المنحنى ليس وعدًا بالاقتراض الفعّال في أي وقت. هذا التصميم بحد ذاته ليس خطأ. من الذي يقترض المال ولا يُسمح له أن يخاف من المخاطر؟ عندما لا يكون السوق مناسبًا، من الطبيعي أن ينكمش رأسه ويُعلّق. لكن المشكلة تكمن هنا: الفائدة التي يراها المقترض، والحد/السقف المتاح للإقراض—قد لا تتطابق إلا لجزء من الثانية مع السيولة التي يمكن فعليًا أن تُنجز صفقة على أساسها في الواقع. طالما أن مُقدّم/مُنشئ الطلب لديه مساحة لإدارة الأمور بشكل نشط، يصبح على المقترض أن يتحمّل احتمال انقطاع خطة التمويل بشكل مفاجئ. تخيّلت المشهد. شخص ينظر إلى ذلك المنحنى في الصفحة، يحسب قيمة الضمان، ويُكمل الرصيد في المحفظة، ثم ينتظر تأكيد الصفقة—وعندها يجد أن الطلب متوقف/معلّق. لا يوجد تخليص/تصفية، ولا يوجد عطل في العقد، وحتى لا يوجد من يتعمّد الأذى. ببساطة: أنت تظن أنك ترى “سعرًا/عرضًا”، بينما في الحقيقة هو مجرد رغبة الطرف الآخر التي يمكنه سحبها في أي لحظة. لذلك أنا الآن عندما أفتح range order، لا أنظر أولًا إلى مدى جمال رسم المنحنى. أبحث أولًا عن: ما السعة الحالية؟ ومتى تم تحديثها؟ وهل يضيء مفتاح الإيقاف أم لا؟ بصراحة، يجب على $TMX أن تجعل المقترض يثق بأن عبارة “يمكن اقتراضه الآن” هي حقيقة. وإذا كان المستخدم ما زال يعتبر المنحنيات التاريخية كأنها أموال تنتظر دوره، فهناك نقص بسيط في الشفافية—ما زال ينقص “جرعة” واحدة. #TermMax
@TermMax يوجد في ذلك range order شيء صغير وغير ملفت للنظر من نوع مفتاح تبديل، وكلما نظرت إليه أكثر شعرت أنه يجب الانتباه له.
في البداية ظننت أن المنحنى مجرد عرض أسعار معلن على السلسلة، يراه الجميع ويمكن لأي شخص أن يستند إليه. لكن بعد الاطلاع على الوثائق رأيت جملة تقول: يمكن لمن يقوم بإعداد/تقديم الطلب استخدام toggle لإيقافه مؤقتًا، ثم فتحه عندما تكون ظروف السوق مناسبة. عندها تجمّدت لحظة——فهذا المنحنى ليس وعدًا بالاقتراض الفعّال في أي وقت.

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

تخيّلت المشهد. شخص ينظر إلى ذلك المنحنى في الصفحة، يحسب قيمة الضمان، ويُكمل الرصيد في المحفظة، ثم ينتظر تأكيد الصفقة—وعندها يجد أن الطلب متوقف/معلّق.
لا يوجد تخليص/تصفية، ولا يوجد عطل في العقد، وحتى لا يوجد من يتعمّد الأذى. ببساطة: أنت تظن أنك ترى “سعرًا/عرضًا”، بينما في الحقيقة هو مجرد رغبة الطرف الآخر التي يمكنه سحبها في أي لحظة.

لذلك أنا الآن عندما أفتح range order، لا أنظر أولًا إلى مدى جمال رسم المنحنى. أبحث أولًا عن: ما السعة الحالية؟ ومتى تم تحديثها؟ وهل يضيء مفتاح الإيقاف أم لا؟
بصراحة، يجب على $TMX أن تجعل المقترض يثق بأن عبارة “يمكن اقتراضه الآن” هي حقيقة. وإذا كان المستخدم ما زال يعتبر المنحنيات التاريخية كأنها أموال تنتظر دوره، فهناك نقص بسيط في الشفافية—ما زال ينقص “جرعة” واحدة.

#TermMax
·
--
كنتُ أمس في وقت متأخر أفتح الكمبيوتر في غرفة المكتب لأول مرة وأرى مثال Dusk Connect يظهر فيه availableProviders[0]، فتفاجأتُ حتى توقفتُ عن الكتابة للحظة. عندما يتم اكتشاف عدة محافظ متوافقة في الوقت نفسه وبدون providerId، يمكن للكود أن يختار أول محفظة. وحتى عند تقديم اقتراحات لجهة المنتج في نفس الصفحة، يظل المقصود هو أن يختار المستخدم المحفظة بنفسه. في السابق كنتُ أعتبر اكتشاف الـ provider مجرد ميزة تقنية لتوفير وقت التكيّف. لكنني الآن أرى أنه لا يزال يقوم بتوزيع صلاحية محددة جدًا: هل يقرر dApp من أي محفظة يبدأ المستخدم، أم أن الاختيار يُترك للمراحل التي تسبق التوقيع؟ بالنسبة لفِرَق المحافظ، فإن الاكتشاف المفتوح يمنع ترميز إضافة بعينها كمدخل ثابت. وبالنسبة للمستخدمين، الأهم هو ما إذا كان بإمكانهم رؤية المحفظة والشبكة والحساب المحددين حاليًا. إن السيناريو السيئ ليس مبالغًا فيه. ففي المتصفح مثبّت محفظتان متوافقتان: واحدة لأصول الشبكة الرئيسية، وأخرى لاستخدام الاختبار أو حسابات الفريق. وفي أحد التطبيقات، تم اختيار المحفظة الأولى تلقائيًا لتقليل خطوة واحدة؛ وعندها لا يكتشف المستخدم أن الحساب غير صحيح إلا بعد الوصول إلى صفحة التوقيع. يُعد رفض المعاملة شيئًا محظوظًا نسبيًا؛ والأسوأ أن ينجز المستخدم تفويضًا كان ينبغي ألا ينجزه في بيئة خاطئة، ولا يتذكر لاحقًا سوى عبارة: “Dusk Wallet اتصل بالحساب الخاطئ”. تتحمل تكلفة ذلك المستخدم وموظفي الدعم، بينما الشخص الذي أجراه الاختيار التلقائي غالبًا لا يكون حاضرًا. لذلك لم أعد أعتبر اكتشاف محافظ متعددة في Dusk Connect مجرد قدرة واجهة برمجية. @Dusk_Foundation الشيء الحقيقي الذي يجب حمايته هو: بعد الاكتشاف، هل ما زال حق الاختيار بيد المستخدم. $DUSK كلما زادت التطبيقات التي تستخدمها، زادت رغبتي في أن تظهر شاشة الاتصال بوضوح provider والشبكة والحساب، وأن تُمنح فرصة مرئية لتغيير الاختيار عند الاختيار التلقائي. #dusk
كنتُ أمس في وقت متأخر أفتح الكمبيوتر في غرفة المكتب لأول مرة وأرى مثال Dusk Connect يظهر فيه availableProviders[0]، فتفاجأتُ حتى توقفتُ عن الكتابة للحظة. عندما يتم اكتشاف عدة محافظ متوافقة في الوقت نفسه وبدون providerId، يمكن للكود أن يختار أول محفظة. وحتى عند تقديم اقتراحات لجهة المنتج في نفس الصفحة، يظل المقصود هو أن يختار المستخدم المحفظة بنفسه.
في السابق كنتُ أعتبر اكتشاف الـ provider مجرد ميزة تقنية لتوفير وقت التكيّف. لكنني الآن أرى أنه لا يزال يقوم بتوزيع صلاحية محددة جدًا: هل يقرر dApp من أي محفظة يبدأ المستخدم، أم أن الاختيار يُترك للمراحل التي تسبق التوقيع؟ بالنسبة لفِرَق المحافظ، فإن الاكتشاف المفتوح يمنع ترميز إضافة بعينها كمدخل ثابت. وبالنسبة للمستخدمين، الأهم هو ما إذا كان بإمكانهم رؤية المحفظة والشبكة والحساب المحددين حاليًا.
إن السيناريو السيئ ليس مبالغًا فيه. ففي المتصفح مثبّت محفظتان متوافقتان: واحدة لأصول الشبكة الرئيسية، وأخرى لاستخدام الاختبار أو حسابات الفريق. وفي أحد التطبيقات، تم اختيار المحفظة الأولى تلقائيًا لتقليل خطوة واحدة؛ وعندها لا يكتشف المستخدم أن الحساب غير صحيح إلا بعد الوصول إلى صفحة التوقيع. يُعد رفض المعاملة شيئًا محظوظًا نسبيًا؛ والأسوأ أن ينجز المستخدم تفويضًا كان ينبغي ألا ينجزه في بيئة خاطئة، ولا يتذكر لاحقًا سوى عبارة: “Dusk Wallet اتصل بالحساب الخاطئ”. تتحمل تكلفة ذلك المستخدم وموظفي الدعم، بينما الشخص الذي أجراه الاختيار التلقائي غالبًا لا يكون حاضرًا.
لذلك لم أعد أعتبر اكتشاف محافظ متعددة في Dusk Connect مجرد قدرة واجهة برمجية. @Dusk الشيء الحقيقي الذي يجب حمايته هو: بعد الاكتشاف، هل ما زال حق الاختيار بيد المستخدم. $DUSK كلما زادت التطبيقات التي تستخدمها، زادت رغبتي في أن تظهر شاشة الاتصال بوضوح provider والشبكة والحساب، وأن تُمنح فرصة مرئية لتغيير الاختيار عند الاختيار التلقائي. #dusk
·
--
وبنفس اسم DUSK، ربما لا تكون الفاصلة العشرية متطابقة بعد الآن 🤔🤔 كنتُ من قبل أتعامل مباشرةً مع decimals كحقل يهتم به المطورون فقط. حتى قرأت من جديد صفحة Tokenomics الخاصة بـ @Dusk_Foundation ، اكتشفت أنه تحت اسم DUSK نفسه، عند الانتقال إلى سلاسل مختلفة قد لا تكون الفاصلة العشرية هي نفسها. DUSK على الشبكة الرئيسية هو 9 أرقام عشرية، بينما DUSK على ERC20 وBEP20 فهو 18 رقمًا عشرِيًا. يتم ترقيم الشبكة الرئيسية باستخدام LUX، حيث يساوي 1 DUSK = 1,000,000,000 LUX؛ أما نسخ Ethereum وBSC فتظل ملتزمة بمعيار 18 رقمًا عشرِيًا. يبدو أن هذا الاختلاف يشغل سطرًا واحدًا فقط في المستند، لكنه يؤثر مباشرةً على الترحيل والإيداع والسحب وعرض الرصيد. المستخدم لا يعرف إلا نفس وسم <$DUSK >؛ لكن يجب على محفظة النظام والأنظمة البرمجية أولًا أن تفهم على أي سلسلة ينتمي، وأي معيار يعتمد. السيناريو السيئ هو أن يكون لدى بعض الجهات المتصلة تعاملٌ مع الأصول عبر السلاسل كأنها نفس مجموعة الأعداد الصحيحة؛ فتبدو أرصدة الصفحة طبيعية، لكن عند الإرسال أو التحويل فعليًا تظهر فروقات في الكمية. قد يظن المستخدم أن أمواله أقل، بينما يحتاج فريق التشغيل للعودة للتأكد من وحدات القياس والسلسلة والعقد الأصلية. المستند يوجّه حاملي ERC20/BEP20 إلى دليل ترحيل الشبكة الرئيسية، وقد أوضح بالفعل أنها ليست مسألة يمكن إخفاؤها بتقريب واجهة المستخدم. قد لا يضمن ذلك أن كل جهة اتصال ستخطئ، لكنه يذكّر بأن نظام <$DUSK > البيئي يجب أن يضع السلسلة والمعيار وdecimals جنبًا إلى جنب مع تأكيد المستخدم قبل أن يَحصل على الموافقة. إذا كانت @Dusk_Foundation قادرة على ضمان عرض هذه الحقول دائمًا مع الأصل، فلن تترك تجربة #dusk عبر السلاسل اختلافات الوحدات لتخمين المستخدم. 💰💰
وبنفس اسم DUSK، ربما لا تكون الفاصلة العشرية متطابقة بعد الآن 🤔🤔
كنتُ من قبل أتعامل مباشرةً مع decimals كحقل يهتم به المطورون فقط.

حتى قرأت من جديد صفحة Tokenomics الخاصة بـ @Dusk ، اكتشفت أنه تحت اسم DUSK نفسه، عند الانتقال إلى سلاسل مختلفة قد لا تكون الفاصلة العشرية هي نفسها.

DUSK على الشبكة الرئيسية هو 9 أرقام عشرية، بينما DUSK على ERC20 وBEP20 فهو 18 رقمًا عشرِيًا.

يتم ترقيم الشبكة الرئيسية باستخدام LUX، حيث يساوي 1 DUSK = 1,000,000,000 LUX؛ أما نسخ Ethereum وBSC فتظل ملتزمة بمعيار 18 رقمًا عشرِيًا. يبدو أن هذا الاختلاف يشغل سطرًا واحدًا فقط في المستند، لكنه يؤثر مباشرةً على الترحيل والإيداع والسحب وعرض الرصيد. المستخدم لا يعرف إلا نفس وسم <$DUSK >؛ لكن يجب على محفظة النظام والأنظمة البرمجية أولًا أن تفهم على أي سلسلة ينتمي، وأي معيار يعتمد.

السيناريو السيئ هو أن يكون لدى بعض الجهات المتصلة تعاملٌ مع الأصول عبر السلاسل كأنها نفس مجموعة الأعداد الصحيحة؛ فتبدو أرصدة الصفحة طبيعية، لكن عند الإرسال أو التحويل فعليًا تظهر فروقات في الكمية. قد يظن المستخدم أن أمواله أقل، بينما يحتاج فريق التشغيل للعودة للتأكد من وحدات القياس والسلسلة والعقد الأصلية. المستند يوجّه حاملي ERC20/BEP20 إلى دليل ترحيل الشبكة الرئيسية، وقد أوضح بالفعل أنها ليست مسألة يمكن إخفاؤها بتقريب واجهة المستخدم.

قد لا يضمن ذلك أن كل جهة اتصال ستخطئ، لكنه يذكّر بأن نظام <$DUSK > البيئي يجب أن يضع السلسلة والمعيار وdecimals جنبًا إلى جنب مع تأكيد المستخدم قبل أن يَحصل على الموافقة. إذا كانت @Dusk قادرة على ضمان عرض هذه الحقول دائمًا مع الأصل، فلن تترك تجربة #dusk عبر السلاسل اختلافات الوحدات لتخمين المستخدم. 💰💰
·
--
هل تعتقد أن رسوم المعاملة تذهب كلها إلى عمال المناجم؟ نظام المكافآت هذا من Dusk قد يجعل حساباتك كلها تتبخر كنت أقرأ من قبل مقولات مثل “الرسوم تدخل في مكافأة الكتلة”، وغالبًا كنت أعتبرها أمرًا مسلّمًا به. في النهاية هذا يُعطى لعمال المناجم، وما شأن ذلك بي؟ إلى أن قرأت بجدية صفحة Tokenomics الخاصة بـ @Dusk، واكتشفت أنني كنت أبسط الموضوع أكثر من اللازم. المبلغ #dusk الذي تدفعه كل معاملة لا ينتهي فقط في جيب من قام بالتجميع/التعبئة. يذكر المستند بوضوح: مكافأة كل كتلة = DUSK المُصدَر حديثًا + رسوم المعاملات. مُنشئ الكتلة يحصل أولًا على 70%، ثم يمكنه—بحد أقصى—الحصول على 10% إضافية، لكن هذه الـ10% ليست مجانية؛ تعتمد على ما إذا كانت credits الموجودة في الشهادة تحقق الحد المطلوب. إذا لم تحقق؟ يتم تدمير هذا الجزء مباشرةً، ولا يحصل عليه أي أحد. لذلك، الرسوم ليست “راتبًا ثابتًا يصل تلقائيًا”. هي أقرب إلى حافز أداء بشروط. بالنسبة لمشغلي العقد هل تظن أنها صفقة رابحة لأنك تشارك في الإجماع فقط؟ هذا ساذج جدًا. إن كانت credits في الشهادة تستوفي الشروط من عدمه، فهذا يحدد مباشرةً كم نقطة إضافية يمكنك الحصول عليها أو إن كنت ستنتهي بصفر. وبالنسبة للمستخدمين الـ gas الذي تدفعه لا يتجه مباشرةً إلى شخصية واحدة بعينها، بل يُجزّأ ويُوزّع، وحتى يُتلف. من يحصل على كم؟ يعتمد على لعبة المصالح والمعادلات بين كل من التوليد والتحقق والبناء طويل الأمد. ما أكثر سيناريو محرج؟🥶 يضع مشغلو العقد ميزانياتهم على أساس “أقصى ما يمكن الحصول عليه وهو 10%”، ثم يستأجرون الأجهزة ويدفعون فواتير الكهرباء—لكن في النهاية لا تحقق الشهادة الشروط. الشبكة تعمل بشكل طبيعي وتكتمل معاملات المستخدمين، لكن توقعات دخلك تخيب. النظام يحرق الـ10% الإضافية في لحظة. فأيّ طرف يُنسب إليه ذلك؟ تذكر: النِسَب، وفهم الحوافز فهمًا حقيقيًا—شيئان مختلفان تمامًا. بصراحة تصميم مكافأة الكتل الخاصة بـ$DUSK لا يستطيع أن يثبت أن الشبكة ستزدهر بالضرورة، لكنه على الأقل يوضح نقطة واحدة: لم يقوموا بتغليف الحوافز كعائد ثابت تُظهره لك. ليس هذا خبرًا سيئًا بالضرورة؛ لكن الخبر السيئ هو أنك الآن إذا سألت عشرة من مشغلي العقد “كيف تُحسب credits وكم تم تدميرها؟” فمن المحتمل أن تسعة لن يستطيعوا الإجابة. وإذا استطاعت @Dusk_Foundation فعل شيء في المستقبل، فإني سأقيّم الأمر أعلى: أن تُتاح لأي شخص في أي وقت إمكانية التحقق من حالة تحقيق credits لمكافآت الكتل وبيانات التدمير. لا يرغب المشاركون في الاستمرار في تقديم الخدمة إلا عندما يعرفون بوضوح ما الذي يقدمون من أجله بالفعل. وإلا—كلما حسبت أدقّ، زادت خيبة الأمل.🤔
هل تعتقد أن رسوم المعاملة تذهب كلها إلى عمال المناجم؟ نظام المكافآت هذا من Dusk قد يجعل حساباتك كلها تتبخر
كنت أقرأ من قبل مقولات مثل “الرسوم تدخل في مكافأة الكتلة”، وغالبًا كنت أعتبرها أمرًا مسلّمًا به. في النهاية هذا يُعطى لعمال المناجم، وما شأن ذلك بي؟

إلى أن قرأت بجدية صفحة Tokenomics الخاصة بـ @Dusk، واكتشفت أنني كنت أبسط الموضوع أكثر من اللازم.

المبلغ #dusk الذي تدفعه كل معاملة لا ينتهي فقط في جيب من قام بالتجميع/التعبئة.

يذكر المستند بوضوح: مكافأة كل كتلة = DUSK المُصدَر حديثًا + رسوم المعاملات. مُنشئ الكتلة يحصل أولًا على 70%، ثم يمكنه—بحد أقصى—الحصول على 10% إضافية، لكن هذه الـ10% ليست مجانية؛ تعتمد على ما إذا كانت credits الموجودة في الشهادة تحقق الحد المطلوب. إذا لم تحقق؟ يتم تدمير هذا الجزء مباشرةً، ولا يحصل عليه أي أحد.

لذلك، الرسوم ليست “راتبًا ثابتًا يصل تلقائيًا”. هي أقرب إلى حافز أداء بشروط.

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

وبالنسبة للمستخدمين
الـ gas الذي تدفعه لا يتجه مباشرةً إلى شخصية واحدة بعينها، بل يُجزّأ ويُوزّع، وحتى يُتلف. من يحصل على كم؟ يعتمد على لعبة المصالح والمعادلات بين كل من التوليد والتحقق والبناء طويل الأمد.

ما أكثر سيناريو محرج؟🥶
يضع مشغلو العقد ميزانياتهم على أساس “أقصى ما يمكن الحصول عليه وهو 10%”، ثم يستأجرون الأجهزة ويدفعون فواتير الكهرباء—لكن في النهاية لا تحقق الشهادة الشروط.

الشبكة تعمل بشكل طبيعي وتكتمل معاملات المستخدمين، لكن توقعات دخلك تخيب. النظام يحرق الـ10% الإضافية في لحظة. فأيّ طرف يُنسب إليه ذلك؟

تذكر: النِسَب، وفهم الحوافز فهمًا حقيقيًا—شيئان مختلفان تمامًا.

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

ليس هذا خبرًا سيئًا بالضرورة؛ لكن الخبر السيئ هو أنك الآن إذا سألت عشرة من مشغلي العقد “كيف تُحسب credits وكم تم تدميرها؟” فمن المحتمل أن تسعة لن يستطيعوا الإجابة.

وإذا استطاعت @Dusk فعل شيء في المستقبل، فإني سأقيّم الأمر أعلى: أن تُتاح لأي شخص في أي وقت إمكانية التحقق من حالة تحقيق credits لمكافآت الكتل وبيانات التدمير.

لا يرغب المشاركون في الاستمرار في تقديم الخدمة إلا عندما يعرفون بوضوح ما الذي يقدمون من أجله بالفعل.
وإلا—كلما حسبت أدقّ، زادت خيبة الأمل.🤔
·
--
صاعد
اللحظات التي تؤذي المستخدم أكثر عندما تكون الأصول مُنظَّمة 😅، ليست لحظة الرفض نفسها هي المشكلة، بل أن الناس بعد الرفض لا يوضحون بدقة أين كان الخطأ. رأيت في صفحة Assets & Regulations لدى @Dusk أن فحوصات التناقل تُدرج كبند مستقل ضمن المتطلبات: يجب إظهار سبب واضح للفشل، والأفضل محاكاة أو التحقق قبل الإرسال. هذه التفاصيل تحوّل “القبول” من مجرد تذكرة دخول لمرة واحدة إلى قواعد مستمرة تُطبق على كل عملية تناقل. الأحكام المذكورة في الوثائق ليست عامة: من يمكنه الحيازة، ومن يمكنه الاستلام، وما هي التناقلات التي يجب أن تفشل—كل ذلك يتغير بحسب فئة الأصل أو المكان أو الاختصاص القضائي. بالنسبة إلى المُصدِر، تقلّل القواعد مخاطر عدم التطابق؛ وبالنسبة إلى المستثمر، الأهم فعلًا هو معرفة قبل النقر على التأكيد إن كان سيتم اعتراضه، وكذلك السبب المحدد وراء التقييد. غالبًا ما يحدث هذا في سيناريوهات الضغط بعد أن يعتقد المستخدم أنه أكمل جميع الخطوات: تمر الحسابات بفحوص الأهلية السابقة، ثم عند محاولة التناقل إلى عنوان آخر يتلقى إشعار فشلًا غامضًا. قد لا تكون الأصول قد فُقدت بالضرورة، ولا يعني ذلك أن السلسلة غير طبيعية بالضرورة، لكن المستخدم سيلوم المنصّة أولًا، بينما يحتاج الدعم إلى شرح يدوي لقيود كان ينبغي عرضها مسبقًا. ميزة $DUSK ليست في جعل جميع عمليات التناقل تمر، بل في تمكين الرفض الضروري من أن يكون متوقعًا وقابلًا للتفسير قبل التوقيع. والأمر @Dusk_Foundation الذي يجب فحصه لاحقًا فعلًا هو ما إذا كانت التطبيق قادرًا على وضع القواعد ونتائج المحاكاة وأسباب الفشل قبل التوقيع، بدل ترك ذلك حتى بعد إرسال العملية.#dusk
اللحظات التي تؤذي المستخدم أكثر عندما تكون الأصول مُنظَّمة 😅، ليست لحظة الرفض نفسها هي المشكلة، بل أن الناس بعد الرفض لا يوضحون بدقة أين كان الخطأ.
رأيت في صفحة Assets & Regulations لدى @Dusk أن فحوصات التناقل تُدرج كبند مستقل ضمن المتطلبات: يجب إظهار سبب واضح للفشل، والأفضل محاكاة أو التحقق قبل الإرسال.
هذه التفاصيل تحوّل “القبول” من مجرد تذكرة دخول لمرة واحدة إلى قواعد مستمرة تُطبق على كل عملية تناقل. الأحكام المذكورة في الوثائق ليست عامة: من يمكنه الحيازة، ومن يمكنه الاستلام، وما هي التناقلات التي يجب أن تفشل—كل ذلك يتغير بحسب فئة الأصل أو المكان أو الاختصاص القضائي. بالنسبة إلى المُصدِر، تقلّل القواعد مخاطر عدم التطابق؛ وبالنسبة إلى المستثمر، الأهم فعلًا هو معرفة قبل النقر على التأكيد إن كان سيتم اعتراضه، وكذلك السبب المحدد وراء التقييد.
غالبًا ما يحدث هذا في سيناريوهات الضغط بعد أن يعتقد المستخدم أنه أكمل جميع الخطوات: تمر الحسابات بفحوص الأهلية السابقة، ثم عند محاولة التناقل إلى عنوان آخر يتلقى إشعار فشلًا غامضًا. قد لا تكون الأصول قد فُقدت بالضرورة، ولا يعني ذلك أن السلسلة غير طبيعية بالضرورة، لكن المستخدم سيلوم المنصّة أولًا، بينما يحتاج الدعم إلى شرح يدوي لقيود كان ينبغي عرضها مسبقًا. ميزة $DUSK ليست في جعل جميع عمليات التناقل تمر، بل في تمكين الرفض الضروري من أن يكون متوقعًا وقابلًا للتفسير قبل التوقيع. والأمر @Dusk الذي يجب فحصه لاحقًا فعلًا هو ما إذا كانت التطبيق قادرًا على وضع القواعد ونتائج المحاكاة وأسباب الفشل قبل التوقيع، بدل ترك ذلك حتى بعد إرسال العملية.#dusk
·
--
صاعد
كنت في السابق أعتبر “الرصيد غير كافٍ سيتم إيقافه تلقائيًا” تجربة سيئة، لكن بعد قراءة إعادة فحص حادث الربط الخاص بالرقم @Dusk_Foundation فهمت أن الإيقاف المبكر قد يكون أقرب إلى المسؤولية تجاه الأصول. الكتابة في إعادة الفحص مباشرة جدًا: النسخة الجديدة من “الـ桥” لا تُبقي سوى أقل قدر تشغيلي من الرصيد في جهة التوقيع. فإذا انخفض إلى حد معيّن يتم الإيقاف، ثم لا يستأنف إلا بعد أن يقوم المحفظ الباردة بتزويد يدوي. أما “الـ桥” القديمة فقد وضعت التوقيع ومعالجة الأحداث والاتصال بالشبكة في المسار نفسه؛ وبعد تعرض محفظة التوقيع لوصول غير مُصرح به، لم يكن على المهاجم حتى لمس إجماع Dusk لكي يتمكن من استخدام أموال موجودة داخل الـ桥. هذا الحد ليس مجرد مفتاح تبديل لحدود عادية. بما أن خدمة الربط بين السلاسل تنقل أصول المستخدمين نيابةً عنهم، فلا يجوز أن يكون شعار “استمرار الخدمة” قبل “توفير أموال أكثر في المحفظة الساخنة”. الجهة التشغيلية تحصل على نافذة خسارة أصغر؛ أما المستخدمون الذين ينتظرون الترحيل، فهم يدفعون وقتًا حقيقيًا. عند تقلبات السوق، يقوم عدد كبير من المستخدمين بالترحيل في الوقت نفسه. وعندما تتوقف الـ桥 بسبب الرصيد المنخفض، قد لا تفشل معاملات المستخدمين، لكنها قد تتعثر في طابور انتظار تزويد الرصيد. وإذا كانت الصفحة تكتفي بعبارة “قيد الصيانة”، فلن يستطيع المستخدم معرفة إن كانت الأموال لم تصل، أم أن الطلب لم يُعالج، أم أن النظام نفسه قد فعّل تحكمًا في المخاطر بشكل مقصود. أنا أُقرّ بأن $DUSK يمنح جزءًا من قابلية الاستخدام للعزل وكبح الخسائر، لكن هذا لا يعني أن مخاطر الربط قد اختفت. للتحقق من جدوى هذا إعادة الهيكلة، ينبغي النظر فيما إذا كان @Dusk_Foundation قادرًا على الاستمرار في نشر عدد مرات الإيقاف والتكلفة الزمنية لاستعادة التشغيل، وكيف تمت في النهاية معالجة الطلبات المتراكمة.#dusk
كنت في السابق أعتبر “الرصيد غير كافٍ سيتم إيقافه تلقائيًا” تجربة سيئة، لكن بعد قراءة إعادة فحص حادث الربط الخاص بالرقم @Dusk فهمت أن الإيقاف المبكر قد يكون أقرب إلى المسؤولية تجاه الأصول.
الكتابة في إعادة الفحص مباشرة جدًا: النسخة الجديدة من “الـ桥” لا تُبقي سوى أقل قدر تشغيلي من الرصيد في جهة التوقيع. فإذا انخفض إلى حد معيّن يتم الإيقاف، ثم لا يستأنف إلا بعد أن يقوم المحفظ الباردة بتزويد يدوي. أما “الـ桥” القديمة فقد وضعت التوقيع ومعالجة الأحداث والاتصال بالشبكة في المسار نفسه؛ وبعد تعرض محفظة التوقيع لوصول غير مُصرح به، لم يكن على المهاجم حتى لمس إجماع Dusk لكي يتمكن من استخدام أموال موجودة داخل الـ桥.
هذا الحد ليس مجرد مفتاح تبديل لحدود عادية. بما أن خدمة الربط بين السلاسل تنقل أصول المستخدمين نيابةً عنهم، فلا يجوز أن يكون شعار “استمرار الخدمة” قبل “توفير أموال أكثر في المحفظة الساخنة”. الجهة التشغيلية تحصل على نافذة خسارة أصغر؛ أما المستخدمون الذين ينتظرون الترحيل، فهم يدفعون وقتًا حقيقيًا.
عند تقلبات السوق، يقوم عدد كبير من المستخدمين بالترحيل في الوقت نفسه. وعندما تتوقف الـ桥 بسبب الرصيد المنخفض، قد لا تفشل معاملات المستخدمين، لكنها قد تتعثر في طابور انتظار تزويد الرصيد. وإذا كانت الصفحة تكتفي بعبارة “قيد الصيانة”، فلن يستطيع المستخدم معرفة إن كانت الأموال لم تصل، أم أن الطلب لم يُعالج، أم أن النظام نفسه قد فعّل تحكمًا في المخاطر بشكل مقصود.
أنا أُقرّ بأن $DUSK يمنح جزءًا من قابلية الاستخدام للعزل وكبح الخسائر، لكن هذا لا يعني أن مخاطر الربط قد اختفت. للتحقق من جدوى هذا إعادة الهيكلة، ينبغي النظر فيما إذا كان @Dusk قادرًا على الاستمرار في نشر عدد مرات الإيقاف والتكلفة الزمنية لاستعادة التشغيل، وكيف تمت في النهاية معالجة الطلبات المتراكمة.#dusk
·
--
اشتريت “توكنات أبل”، فما الذي اشتريته بالضبط؟ كنت أظن أن أكبر سوء فهم بشأن توكنات الأسهم هو ما إذا كانت الأسعار ستنفصل عن السوق الفوري. لكن بعد قراءة الإيضاح القانوني الخاص بـ Ondo Stocks، اتضح أن سوء الفهم الأكبر في الحقيقة هو التالي: حين ترى $TSLAon 、$AAPLon ، يعتقد كثيرون أنهم أصبحوا مساهمين في تسلا أو أبل. لكن الحقيقة ليست بهذه البساطة. وفقًا للإفصاح الصادر عن الجهة المُصدِرة، فإن هذه الفئة من التوكنات هي أوراق مالية هيكلية مُصدَرة من شركة ذات غرض خاص (SPV) مسجلة في جزر العذراء البريطانية (BVI). وبالنسبة إلى الأسهم المقابلة، فإن الجهة المُصدِرة تحتفظ بها عبر وسيط حفظٍ خاضع للرقابة. أما حامل التوكن فيحصل على حق اقتصادي مرتبط بسعر الأصل الأساسي وتوزيعات الأرباح وإجراءات الشركة، وليس الاسم الموجود في خانة سجل المساهمين. الفرق بين هذين الأمرين لا يظهر عادةً للناس في الحياة اليومية. عندما تتحرك السوق صعودًا وهبوطًا، تمنح التوكنات بالفعل تعرّضًا اقتصاديًا مشابهًا لما يملكه حامل سهم، كما تُحتسب التوزيعات ضمن العائد. لكن عند مواجهة أمور مثل التصويت أو الإفصاح عن المعلومات أو قرارات الشركة، لن تنتقل الحقوق إلى محفظتك مع التوكن. والجهة المُصدِرة تكتب الأمر بوضوح شديد: يمكن للحامل استرداد النقد أو عملة مستقرة وفقًا لقيمة الأصل الأساسي في ذلك الوقت، لكن دون حقوق تصويت المساهمين أو حقوق الحصول على المعلومات أو غيرها من حقوق المساهمين. وأعتقد أن هذا هو بالضبط ما ينبغي أن توضحَه توكنات الأسهم بوضوح. على السلسلة يمكن تبسيط عمليات البيع والشراء والتحويل والتسوية، لكنها لم تمحِ “المسألة القانونية المتمثلة في من هو المساهم”. هي فقط تعيد تغليف جزء من النتائج الاقتصادية التي كانت تُحمل عادةً ضمن حسابات الوسطاء، في صورة ورقة قابلة للتحويل. لذلك، في المرة القادمة عندما أرى عبارة “الأسهم الأمريكية على السلسلة”، لن أنظر أولًا إلى عدد الأصول الجديدة التي قد تكون مُغرية. سأطرح أولًا ثلاث مسائل: من الذي يستحق عليه سداد هذه الأموال لي؟ ومن الذي يحفظ الأصل الأساسي؟ وعندما نصطدم بتوزيعات الأرباح أو تجزئة الأسهم أو الاندماج والاستحواذ، فكيف يحدد العقد بالضبط طريقة تسليم النتائج إليّ؟ عندما تتضح هذه الأمور، ستعرف عندها إن كنت تشتري “أسهمًا” أو “تعرضًا للسعر”، أم أنك في الحقيقة تشتري منتجًا ماليًا آخر.
اشتريت “توكنات أبل”، فما الذي اشتريته بالضبط؟
كنت أظن أن أكبر سوء فهم بشأن توكنات الأسهم هو ما إذا كانت الأسعار ستنفصل عن السوق الفوري. لكن بعد قراءة الإيضاح القانوني الخاص بـ Ondo Stocks، اتضح أن سوء الفهم الأكبر في الحقيقة هو التالي: حين ترى $TSLAon 、$AAPLon ، يعتقد كثيرون أنهم أصبحوا مساهمين في تسلا أو أبل.
لكن الحقيقة ليست بهذه البساطة. وفقًا للإفصاح الصادر عن الجهة المُصدِرة، فإن هذه الفئة من التوكنات هي أوراق مالية هيكلية مُصدَرة من شركة ذات غرض خاص (SPV) مسجلة في جزر العذراء البريطانية (BVI).
وبالنسبة إلى الأسهم المقابلة، فإن الجهة المُصدِرة تحتفظ بها عبر وسيط حفظٍ خاضع للرقابة. أما حامل التوكن فيحصل على حق اقتصادي مرتبط بسعر الأصل الأساسي وتوزيعات الأرباح وإجراءات الشركة، وليس الاسم الموجود في خانة سجل المساهمين.
الفرق بين هذين الأمرين لا يظهر عادةً للناس في الحياة اليومية. عندما تتحرك السوق صعودًا وهبوطًا، تمنح التوكنات بالفعل تعرّضًا اقتصاديًا مشابهًا لما يملكه حامل سهم، كما تُحتسب التوزيعات ضمن العائد. لكن عند مواجهة أمور مثل التصويت أو الإفصاح عن المعلومات أو قرارات الشركة، لن تنتقل الحقوق إلى محفظتك مع التوكن.
والجهة المُصدِرة تكتب الأمر بوضوح شديد: يمكن للحامل استرداد النقد أو عملة مستقرة وفقًا لقيمة الأصل الأساسي في ذلك الوقت، لكن دون حقوق تصويت المساهمين أو حقوق الحصول على المعلومات أو غيرها من حقوق المساهمين.
وأعتقد أن هذا هو بالضبط ما ينبغي أن توضحَه توكنات الأسهم بوضوح. على السلسلة يمكن تبسيط عمليات البيع والشراء والتحويل والتسوية، لكنها لم تمحِ “المسألة القانونية المتمثلة في من هو المساهم”. هي فقط تعيد تغليف جزء من النتائج الاقتصادية التي كانت تُحمل عادةً ضمن حسابات الوسطاء، في صورة ورقة قابلة للتحويل.
لذلك، في المرة القادمة عندما أرى عبارة “الأسهم الأمريكية على السلسلة”، لن أنظر أولًا إلى عدد الأصول الجديدة التي قد تكون مُغرية. سأطرح أولًا ثلاث مسائل: من الذي يستحق عليه سداد هذه الأموال لي؟ ومن الذي يحفظ الأصل الأساسي؟ وعندما نصطدم بتوزيعات الأرباح أو تجزئة الأسهم أو الاندماج والاستحواذ، فكيف يحدد العقد بالضبط طريقة تسليم النتائج إليّ؟
عندما تتضح هذه الأمور، ستعرف عندها إن كنت تشتري “أسهمًا” أو “تعرضًا للسعر”، أم أنك في الحقيقة تشتري منتجًا ماليًا آخر.
سجّل الدخول لاستكشاف المزيد من المُحتوى
انضم إلى مُستخدمي العملات الرقمية حول العالم على Binance Square
⚡️ احصل على أحدث المعلومات المفيدة عن العملات الرقمية.
💬 موثوقة من قبل أكبر منصّة لتداول العملات الرقمية في العالم.
👍 اكتشف الرؤى الحقيقية من صنّاع المُحتوى الموثوقين.
البريد الإلكتروني / رقم الهاتف
خريطة الموقع
تفضيلات ملفات تعريف الارتباط
شروط وأحكام المنصّة