من فضلك تسجيل الدخول أو تسجيل لتفعل ذلك.

يبدأ تحدي التحقق من التجارب الحاسوبية غالبًا عند محاولة التأكد من خلوها من التلاعب. هنا يأتي دور Kveritas، الأداة الثورية التي تربط النتيجة المنشورة بالرمز الدقيق والأجهزة والوقت الذي تم فيه إنتاجها. يتم توثيق كل ذلك في ملف PDF مشفر وموقع يمكن لأي شخص التحقق منه بسهولة. يعمل Kveritas مع أي لغة برمجة، ولا يتطلب أي تبعيات وقت تشغيل، ويأتي كملف ثنائي ثابت واحد، مما يجعله حلاً قوياً ومرناً.

تعدد المنصات والميزات الأساسية

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

تثبيت Kveritas

لتثبيت Kveritas، يمكنك الاختيار بين استخدام الثنائيات الجاهزة أو البناء من المصدر:

  • الثنائي الجاهز: استخدم الأمر التالي لتنزيل وتنصيب الثنائي المخصص لنظام Linux (amd64):

    curl -fsSL https://github.com/27-GROUP/kveritas-releases/raw/main/bin/kveritas-linux-amd64 -o kveritas && chmod +x kveritas && sudo mv kveritas /usr/local/bin/

    تتوفر ثنائيات أخرى لأنظمة التشغيل kveritas-{linux,darwin,windows}-{amd64,arm64}.

  • البناء من المصدر: إذا كنت تفضل البناء من المصدر، تأكد من تثبيت Go 1.22+ ثم استخدم الأمر: make build.

دليل البدء السريع

لتجربة Kveritas بسرعة، اتبع هذه الأوامر الأساسية:

  • لإنشاء جلسة جديدة (تكون منقحة افتراضيًا): kveritas init
  • لتشغيل أمر تحت إشراف Kveritas (مثال على تشغيل تدريب): kveritas run -- python Train.py --epochs 90
  • لختم الجلسة وإنشاء تقرير PDF موقع: kveritas seal --output report.pdf
  • للتحقق من تقرير PDF: kveritas verify report.pdf (أضف --offline لتخطي الخادم)

خطوط البروتوكول لتوثيق دقيق

لضمان التوثيق الشامل، يمكن طباعة خطوط البروتوكول هذه إلى الإخراج القياسي (stdout) بأي لغة. كل ما يتم التقاطه من خلال هذه الخطوط يرتبط بالسجل الموقع.

  • KVERITAS_METRIC name=<id> value=<float> [step=<label>]: لتسجيل مقياس معين.
  • KVERITAS_PHASE name=<phase>: لتحديد حدود مرحلة معينة (مع لقطة للأجهزة).
  • KVERITAS_CLAIM metric=<id> value=<float>: لتأكيد مطالبة رئيسية.
  • KVERITAS_INPUT src=seed:<value>: لتسجيل بذرة عشوائية.
  • KVERITAS_MODEL params=<int> arch=<name> precision=<fp16>: لتعريف بطاقة نموذجية (تساهم في حساب التكلفة).
  • KVERITAS_WORKLOAD dataset_size=<int> epochs=<float> batch_size=<int> [seq_len=<int>]: لتعريف بطاقة عبء العمل.
  • KVERITAS_ARTIFACT role=model|dataset [name=<ref>] path=<file> visibility=public|private: للمصادقة على نموذج أو مجموعة بيانات.

يُكتشف Kveritas أيضاً المقاييس الشائعة تلقائياً (مثل سجل Keras، وملخص sklearn، والمقاييس المحلية المشابهة)، مما يقلل الحاجة إلى استخدام هذه الخطوط في العمليات البسيطة.

HMCA: تحليل تماسك التنفيذ

HMCA (تماسك التنفيذ) هو مقياس لا يعتمد على النتائج المعلنة. خلال تشغيل العملية، يقوم جهاز أخذ عينات في الخلفية بتسجيل بيانات القياس عن بعد لكل عملية (مثل استخدام وحدة المعالجة المركزية، الذاكرة، مفاتيح السياق، أخطاء الصفحة، تردد وحدة المعالجة المركزية، الإدخال/الإخراج، واستخدام وحدة معالجة الرسومات، الذاكرة، الطاقة، ودرجة الحرارة) بمعدل حوالي 10 هرتز.

عند الختم، يحدد HMCA ما إذا كانت هذه القنوات تتقلب بشكل متماسك كظل لعملية واحدة. فالتشغيل الحقيقي يدفعها جميعاً من نشاط واحد، بينما التتبع المفبرك أو المُعاد تشغيله لا يفعل ذلك. يصدر HMCA حكماً يكون إما PASS (متماسك)، WARN، FAIL (غير متماسك)، أو N/A (لعدم كفاية بيانات القياس عن بعد للحكم). يتم الحكم على العمليات الخفيفة بناءً على النشاط الذي قامت به، ولا تتم معاقبتها أبداً لكونها خفيفة. يقوم مدقق الويب بعرض هذه القنوات بمرور الوقت لتقديم رؤية شاملة.

التصديق على تكلفة الحوسبة

عندما يعلن التشغيل عن بطاقة نموذجية، يقوم Kveritas بإنشاء شهادة تتحقق من عدد عمليات الفلوبس (FLOPs) المعلنة ومقارنتها بما يمكن أن يوفره الجهاز فعلياً.

  • الوقت: تتجاوز عمليات FLOPs المعلنة ذروة استخدام وحدة معالجة الرسومات (GPU) مضروبة في ثواني نشاط وحدة معالجة الرسومات، بالإضافة إلى ذروة استخدام وحدة المعالجة المركزية (CPU) مضروبة في ثواني نشاط نواة وحدة المعالجة المركزية.
  • الطاقة: تتجاوز عمليات FLOPs المعلنة الجول المقاس لوحدة معالجة الرسومات مقسوماً على الحد الأدنى للطاقة لكل FLOP.
  • الذاكرة: تتجاوز الأوزان المعلنة الذاكرة المرصودة لوحدة معالجة الرسومات (حد ناعم).

يتم حساب الوقت المحدد لكل جهاز، مما يغطي العمل سواء تم تشغيله على وحدة معالجة الرسومات أو وحدة المعالجة المركزية أو كليهما. تُعد هذه الحدود متساهلة بما يكفي لضمان مرور العمليات الصادقة. في حال عدم وجود بطاقة أو بيانات قياس عن بعد، يتم تصنيفها كـ N/A. أما الانتهاكات الصارخة فتصنف كـ FABRICATION-IMPOSSIBLE، وتكون ملزمة في التوقيع، مما يضمن أعلى مستويات النزاهة.

الأصل ومستويات الإفصاح

كل عملية تشغيل في Kveritas هي عبارة عن جدول زمني موثّق للقطات، يوثق محتوى المشروع (حالة المصدر في بداية التشغيل، عند كل مرحلة، وعند نهاية التشغيل، بالإضافة إلى التغييرات التي طرأت). يتم ربط هذا المحتوى بهياكل ميركل (Merkle) ويُربط بالتوقيع الرقمي. يمكن للمستخدم تحديد مستوى الإفصاح لكل جلسة، مما يتحكم في كمية المعلومات التي يتم الكشف عنها، مع الالتزام الدائم بنزاهة البيانات.

  • منقح (افتراضي): يتم استخدام kveritas init. يظهر التقرير أسماء مستعارة، بدون أسماء حقيقية أو محتوى.
  • أسماء: استخدم --show-names. يظهر التقرير أسماء الملفات الحقيقية، ولكن بدون المحتوى.
  • مفتوح: استخدم --disclosure open. يظهر التقرير الأسماء الحقيقية بالإضافة إلى حزمة الكود الخارجة.

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

أدلة الكشف الانتقائي

يتيح Kveritas إمكانية إثبات وجود ملف واحد في لقطة موقعة دون الحاجة إلى الكشف عن الملفات الأخرى.

  • لإثبات وجود ملف معين (مثلاً src/train.py) في تقرير:

    kveritas prove report.pdf src/train.py

    للتحقق من هذا الإثبات: kveritas verify-proof kveritas-proof-train.py.json

  • بالنسبة لجلسات الوكيل، يمكن إثبات مطالبة أو مخرجات مسجلة مقابل التجزئة الملتزم بها، مع الحفاظ على بقية المدخلات كالتجزئات فقط:

    kveritas harness-prove session.json 1 --input prompt.txt -o proof.json

    للتحقق من دليل جلسة الوكيل: kveritas verify-harness-proof proof.json

يمكن تحديد المدخلات باستخدام الفهرس أو المعرف --tool-use-id. كما يمكن الكشف عن المطالبات باستخدام --input أو الردود باستخدام --output-content.

حزمة الخروج (Checkout Bundle)

عند استخدام خيار --disclosure open لعملية الختم، يقوم Kveritas بإنشاء ملف report.pdf.kvbundle.zip. يحتوي هذا الملف على محتويات المصدر (المحتوى المُوجه والمُكرر) بالإضافة إلى بيان تفصيلي لكل لقطة، ولكنه لا يتضمن أبداً مجموعات البيانات أو الأوزان. يتم ربط تجزئة هذه الحزمة بالتقرير، ويتم إعادة تجزئة كل ملف عند عملية الاستخراج (checkout) لضمان النزاهة.

لاستخراج محتويات الحزمة إلى مجلد معين:

kveritas checkout report.pdf.kvbundle.zip run_end /tmp/out --report report.pdf

توثيق النتائج المعيارية

يتيح Kveritas التصديق على النتائج المعيارية (benchmark results) دون الحاجة إلى الكشف عن النموذج الأساسي أو البيانات المستخدمة. يسجل المكون الأثري العام (public) تجزئة محتواه، مما يسمح بمطابقته مع مرجع منشور. بينما يسجل المكون الأثري الخاص (private) التزاماً مجزءاً فقط. بالإضافة إلى ذلك، تتحقق عمليات التصديق من تكلفة الحوسبة المستهلكة في التقييم مقابل الحوسبة المطلوبة للتشغيل الفعلي.

جلسات الوكيل المؤمّنة

باستخدام الأمر kveritas init --harness، يتم تسجيل سجل متسلسل ودقيق لإجراءات الوكيل المحدد (على سبيل المثال، تثبيت خطافات Claude Code). يربط كل إدخال الوكيل الفعال ومحتوى الإدخال/الإخراج كتجزئة، بالإضافة إلى موضعه، مما يوفر معلومات شاملة عن الوجود، المحتوى، والنظام. يقوم الخادم بعد ذلك بتوقيع المنشأ والختم.

عند التحقق باستخدام kveritas verify session.json، يتم إعادة حساب السلسلة وتحديد موقع أي تلاعب دقيق في المدخلات، وذلك باستخدام شجرة إسناد مخصصة لكل وكيل، مما يضمن أعلى مستويات الشفافية والأمان.

بروتوكول التشفير

يعتمد Kveritas على بروتوكول تشفير قوي لضمان أمان وسلامة البيانات. تتضمن العملية الخطوات التالية:

  • canonical_json: تمثيل JSON مضغوط ومفاتيح مصنفة لبيانات التوقيع.
  • data_hash: تجزئة SHA-256 لـ canonical_json.
  • payload: سلسلة تتضمن data_hash، رقم عشوائي (nonce)، ووقت التوقيع.
  • signature: توقيع RSA-PSS-SHA256 للحمولة باستخدام مفتاح 4096 بت.
  • visual_pdf_hash: تجزئة SHA-256 لصفحات PDF المرئية قبل علامة الختم.
  • seal_block_hash: تجزئة SHA-256 لختم JSON قبل إدراج تجزئته الخاصة.

يتم تضمين جميع هذه القيم، بالإضافة إلى المفتاح العام ووحدات بايت JSON الأساسية، بعد علامة %%EOF وبين علامتي %%KVERITAS_SEAL_BEGIN%% و %%KVERITAS_SEAL_END%%. تقوم أدوات التحقق بتجزئة canonical_json المخزن مباشرة، مما يجعل عملية التحقق محصنة ضد أي إضافات مستقبلية في الحقول.

الأوامر الأساسية لـ Kveritas

فيما يلي قائمة بالأوامر الرئيسية في Kveritas ووظائفها:

  • init [--local] [--harness] [--disclosure redacted|names|open] [--show-names]: لبدء جلسة جديدة.
  • run -- <cmd>: لتشغيل أمر تحت إشراف Kveritas، مع التقاط القياسات وخطوط البروتوكول.
  • seal [-o path] [--local-key pem]: لتوقيع الجلسة في ملف PDF (مع حزمة عند الكشف المفتوح).
  • verify <report.pdf session.json proof.json> [--offline] [--bundle z] [--paper pdf]: لإجراء فحوصات محلية بالإضافة إلى تدقيق كامل عبر الخادم.
  • prove <report.pdf> <file...> / verify-proof <proof.json>: لإثبات الكشف الانتقائي للملفات.
  • harness-prove <session.json> <index id> / verify-harness-proof <proof.json>: لإثبات مطالبة/إخراج مسجل.
  • checkout <bundle.zip> <dir> [--report r.pdf]: لإعادة بناء ملفات اللقطة.
  • check --claims c.json --report r.pdf / generate-claims --report r.pdf: لفحص أو استخراج المطالبات من التقرير.
  • status / update / clean: لعرض حالة الجلسة، التحديث الذاتي، أو إزالة دليل الجلسة.

التحقق عبر الويب

لتسهيل عملية التحقق، يمكنك تحميل تقرير PDF الخاص بك على الموقع الإلكتروني kveritas.org/verify. يمكن أيضاً تحميل حزمة الخروج ومخطوطة PDF اختيارياً. توفر هذه المنصة التحقق من الختم التشفيري، ورسماً بيانياً للقياس عن بعد لتماسك التنفيذ، والمصدر، والمقاييس، بالإضافة إلى تدقيق كود الذكاء الاصطناعي والتحقق من التقرير. لا يتطلب استخدام هذه الخدمة إنشاء أي حساب.

هيكل المستودع

يتكون هيكل مستودع Kveritas من الأجزاء الرئيسية التالية:

  • cmd/kveritas/: نقطة الدخول لواجهة سطر الأوامر (CLI).
  • server/: خادم التصديق.
  • internal/session/: نماذج البيانات، عمليات الإدخال/الإخراج لـ .kveritas/.
  • internal/runner/: غلاف للعمليات الفرعية، وأداة لأخذ عينات القياس عن بعد.
  • internal/crypto/: تنفيذ RSA-PSS، SHA-256، و JSON المعياري.
  • internal/pdf/: كاتب PDF مستقل.
  • internal/client/: عميل خادم التصديق.
  • internal/hardware/: لقطة للأجهزة + أخذ عينات لكل عملية (Linux).
  • internal/provenance/: لقطات Merkle، الإفصاح، البراهين، والاستخراج.
  • internal/tracer/: خريطة نشاط الملفات/العمليات الفرعية (Linux).
  • internal/harness/: جلسات الوكيل المتسلسلة التجزئة + البراهين.
  • internal/compute/: شهادة تكلفة الحوسبة.
  • internal/hmca/: محلل تماسك التنفيذ.
  • internal/bundle/: تجميع المصدر + التجزئة.

يعتمد Kveritas على تبعيات قليلة جداً؛ spf13/cobra (لـ CLI) و google/uuid (للمعرفات)؛ وكل ما عدا ذلك يعتمد على مكتبة Go القياسية.

المستودعات ذات الصلة

فيما يلي المستودعات المرتبطة بمشروع Kveritas:

  • kveritas-go: هذا المستودع نفسه، والذي يحتوي على واجهة سطر الأوامر وخادم التصديق.
  • kveritas-releases: يحتوي على الثنائيات المسبقة التجهيز لجميع المنصات.

الترخيص

تخضع مكتبات واجهة سطر الأوامر (CLI)، والبروتوكول، ومكونات التحقق في Kveritas للترخيص Apache-2.0. أما خادم التصديق الموجود ضمن دليل server/ فهو مرخص بموجب AGPL-3.0. يتطلب تشغيل نسخة معدلة من الخادم كخدمة شبكة نشر كود المصدر الخاص بك تحت نفس الترخيص، أو الحصول على ترخيص تجاري.

K-Veritas وشعارها علامتان تجاريتان مسجلتان. لا يمنح الترخيص أي حقوق لاستخدام الاسم أو الشعار لتشغيل خدمة تتضمن شهادة K-Veritas الرسمية.

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

تحركات قيادية بارزة تهز قطاع العقارات في آسيا والمحيط الهادئ
سامسونج تستضيف نهائي #PlayGalaxy Cup العالمي في Gamescom 2026

Reactions

0
0
0
0
0
0
بالفعل كان رد فعل لهذا المنصب.

ردود الفعل