الخلاصة

  • يفصل draft-templeman-scitt-measurement-capsule-00 بين الإعلان والملاحظة الخارجية والفارق، ويثبت أن الكبسولة لا تمنح سلطة تنفيذ.
  • حالة UNCHECKABLE ليست فشلاً ولا نجاحاً ولا صفراً ولا غياباً؛ والقراءة الجزئية لا تثبت عدم وجود الشيء.
  • يثبت كل من تجزئة المحتوى وإدراج Merkle والتوقيع وإيصال الشفافية والطابع الزمني دعوى مختلفة. أما القرار التشغيلي فيحتاج إلى أصيل وسياسة ونطاق وطريق اعتراض مستقل.

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

هذا هو الحد الذي يعالجه Declared-versus-Observed Measurement Capsules. في 2 أكتوبر 2026 عرض Datatracker المراجعة 00 كـ Individual Submission نشطة، أودعت في 27 سبتمبر وتنتهي في 31 مارس 2027. ينوي النص حالة Experimental، ولا يملك IETF stream أو Area Director مسؤولاً. فهو ليس RFC أو إجماعاً أو اعتماداً أو شهادة تشغيل.

تسجل الكبسولة ما قرأه measurer مستقل عن الموضوع والفعل: bytes الإعلان، observation من مصدر آخر، differential منظم، digests للمصادر، حالة القياس، الوقت والحدود. وتملك authority_state معنى وحيداً: قياس فقط، بلا سلطة تنفيذ.

لكل جانب من المقارنة مصدر وحدود

الإعلان artefact محدد، لا اسم دائم. يجب حفظ نسخته ومكانه ووقت جلبه ونوعه وdigest. قد يعرض registry نسخة حديثة بينما يقدم cache نسخة قديمة، أو يرى credential مختلف view مختلفاً.

الملاحظة هي أيضاً فعل إنتاج: vantage، identity، request، parser، timeout وclock. فحص signature ليس كقراءة operator API، وstate proof ليس كإعادة تشغيل evaluation. ينبغي ألا تتحول قراءة من مكان واحد ووقت واحد إلى حقيقة عالمية.

لذلك تقول INCONSISTENT إن عبارتين تختلفان، لا أيهما صادقة. قد يكون الإعلان قديماً أو observation قديمة، وقد يصفان نطاقين مختلفين. ويبقى differential بيانات لا حكماً.

يحافظ evidence ladder على هذا الحد. proof مُتحقق مقابل state commitment في block header لا يثبت أن header فُحص مقابل consensus. وOPERATOR_API جواب من المشغل لا proof مستقل. لا يجوز رفع label لإنتاج score أكثر حزماً.

UNCHECKABLE يحمي المقام

إذا انقطعت pagination أو مُنع الوصول أو فشل identity check أو تعذر تقييم proof، فالنتيجة UNCHECKABLE. يمنع draft تحويلها إلى pass أو fail أو zero أو حذف. ولا يجوز NOT_LISTED إلا بعد complete read.

حذف الصفوف غير المقروءة يرفع النسبة اصطناعياً، واعتبارها صفراً يخفضها اصطناعياً. المطلوب فصل eligible وattempted وcomplete وuncheckable.

ويختار issuer سكان batch أيضاً. قد ينتقي موضوعات يُرجح اختلافها؛ فتكون كل كبسولة صحيحة ويكون aggregate مضللاً. لذلك يجب إعلان inclusion rule وعد المستبعد حسب السبب، وألا تقارن counts بين batches ذات قواعد مختلفة.

منع ألفاظ القرار لا يغني عن سجل قرار

يحظر schema، عدا authority_state، أسماءً مثل decision وallow وreject وapprove وadmit وpermit وenforcement وgate، ويحظر قيماً صريحة للسماح والمنع. الغرض ألا تُستهلك الكبسولة كبوابة.

يعترف النص بأن denylist ناقصة، لأن المرادفات لا تنتهي. الحماية الفعلية تقع عند consumer. إن ربط platform حالة INCONSISTENT بالرفض فعليها إصدار record آخر يحدد principal المخول وpolicy version والthreshold والscope والاستثناء والمدة والإشعار والappeal.

توقيع measurer لا ينقل إليه مسؤولية الخسارة التي يسببها المنع. حتى إن كانت المؤسسة نفسها تقيس وتقرر، يجب بقاء الدورين وإيصالين منفصلين.

طبقات التحقق لا تندمج في حقيقة واحدة

يُحسب capsule_id بـ SHA-256 فوق RFC 8785 JCS bytes بعد حذف الحقل نفسه. تحفظ الملفات bytes الدقيقة، ثم تُرتب IDs وتدخل RFC 9162 Merkle Tree Hash. يثبت audit path membership في batch.

يربط COSE_Sign1 issuer key وprotected headers بالpayload أو Hash Envelope. ويمكن لـ SCITT Transparency Service تسجيل Signed Statement وإرجاع Receipt، بينما يقيد timestamp زمن وجود commitment وفق proof الخاص به.

يثبت hash المحتوى، وMerkle العضوية، وsignature من وقّع، وReceipt التسجيل، وtimestamp الزمن. لا يثبت أي منها calibration أو completeness أو independence أو endorsement أو عدالة العينة أو شرعية العقوبة.

ويحذر draft من أن key صحيحة قد توقّع records كاذبة. إذا سُرقت signing key أو request credential أمكن إعادة توقيع history مزورة؛ ولا يكشفها إلا anchor أقدم تحت سيطرة مستقلة.

الإشارة إلى أثر لا تنقل نتيجته

يمكن لـ effect_reference الإشارة إلى Signed Statement من profile آخر عبر digest للbytes المسجلة، من دون نسخ outcome. وهكذا يمكن وصل approval وexecution وthird-party measurement من غير جعل issuers سلطة واحدة.

لا يثبت approval وقوع الأثر، ولا يثبت action receipt postcondition، ولا تلغي measurement التفويض، ولا يحكم transparency log بين السجلات. يقوم consumer بالربط ثم يصدر قراره الخاص.

لم يملأ prototype هذا الحقل بعد؛ فهو proposal وليس interoperability report.

التصحيح يضيف تاريخاً ولا يصلح الأثر وحده

لا تُعدل capsule. ينشئ correction كبسولة وbatch جديدين، ويشير إلى record السابق مع before وafter والسبب. يبقى القديم قابلاً للاسترجاع. كما يغير تبدل canonicalization أو Merkle البناء IDs حتى إن لم يتغير معنى القياس.

يحفظ ذلك ما رآه decision maker وقت الفعل، لكنه يعني أن الخطأ لا يُسحب ببساطة. يحتاج الموضوع إلى correction/exclusion route، ويحتاج consumer إلى إعادة حساب score وgate وتسجيل rollback.

تصحيح ظاهر في log مع credential لا يزال ملغى ليس إنصافاً. append-only يحفظ الذاكرة؛ ولا يملك سلطة الإصلاح.

digest وحده لا يحمي السر الصغير

يحمل sources digests فقط، لكن قيمة خاصة منخفضة entropy يمكن تخمينها بتجريب الاحتمالات. يوصي draft بـ blinding ويقر أن prototype لا يطبقه.

كما يوصي بقياس surfaces المنشورة للآلات، وعدم إرسال credentials، والتوقف في MCP عند discovery. قد يزيد ذلك UNCHECKABLE، وهو أفضل من جمع أعمق بلا تفويض.

implementation واحد لا يثبت ecosystem

يذكر النص أن مؤسسة المؤلف بنت 13,184 capsule في ثمانية batches وسبعة kinds، مع OpenTimestamps وRekor وbrowser verifier وchecker لا يشارك builder code. هذه author-reported claims.

الchecker من المؤسسة نفسها، والنص يقول إنه ليس independent implementation. ولا يزال COSE_Sign1 وSCITT registration وeffect_reference وblinded digests غير منفذة.

تطلب التجربة implementation من طرف آخر، وإعادة حساب IDs/roots، وتسجيل batch لدى service مستقل، وتحقق طرف ثالث من Receipt، وربط issuers مختلفين، وتصحيحاً لا يفقد التاريخ. إن لم يحدث شيء خلال مراجعتين، يعد المؤلف بسحب draft. هذه نتيجة قابلة للفحص، بخلاف عدد داخلي وحده.