الادعاء
تقدّم شهادة Signet ادعاءً واحدًا محدودًا وقويًا: أن حائز المفتاح الخاص لعنوان معيّن وقّع رسالة تحدٍّ معيّنة في وقت معيّن. لا أكثر. إنها إثبات للتحكم في مفتاح، لا للهوية.
ثابت دون الحاجة إلى الثقة بأي طرف
- أنتج هذا العنوان هذا التوقيع على رسالة التحدي هذه.
- كان الموقِّع حائزًا للمفتاح الخاص وقت التوقيع.
- كانت بصمة الشهادة موجودة بحلول وقت الترسيخ على السلسلة.
غير ثابت
- هوية الموقِّع.
- أن التحكم حصري، أو أن المفتاح لم يُشارَك ولم يُستخدم تحت الإكراه.
- أن الموقِّع عميل لدى الجهة الطالبة، فربط الهوية مسؤولية إجراءات KYC لدى الجهة الطالبة.
كيف يُثبَت
تُصدر الجهة الطالبة رسالة تحدٍّ تتضمن رقمًا عشوائيًا يُستخدم مرة واحدة (nonce) ومرتبطًا بذلك الطلب وحده. يوقّع الطرف المقابل البايتات الدقيقة لرسالة التحدي بمحفظته. نتحقق من التوقيع مقابل العنوان على سلسلة الكتل الصحيحة، ثم نحسب بصمة الشهادة الناتجة ونرسّخ تلك البصمة على السلسلة ضمن دفعة Merkle، باستخدام عقد Stamper نفسه المستخدم في جميع منتجات عائلة BA، فتتحقق منه أداة التحقق العامة دون أي تعديل.
يجعل الرقم العشوائي إعادة الاستخدام مستحيلة: لا يمكن نقل توقيع على رسالة تحدي طلبٍ ما إلى طلب آخر. نتحقق من رسالة التحدي المحفوظة بايتًا ببايت، ولا نستخدم أبدًا نسخة مُعاد عرضها.
التشفير لكل سلسلة
لكل سلسلة معيار توقيع خاص بها. صُممت طبقة التحقق بحيث تُضاف السلاسل الجديدة دون المساس بما هو قائم.
| سلسلة الكتل | المعيار | طريقة التحقق |
|---|---|---|
| Ethereum و EVM | EIP-191 personal_sign | استرداد الموقِّع دون اتصال |
| محافظ العقود الذكية | EIP-1271 | استدعاء isValidSignature على السلسلة |
| Bitcoin (SegWit / Taproot) | BIP-322 | دون اتصال |
| Bitcoin (P2PKH القديم) | BIP-137 signmessage | دون اتصال |
| Litecoin، Dogecoin، Zcash (t1) | BIP-137 مع البادئة الخاصة بالشبكة | دون اتصال |
| Solana | ed25519 | دون اتصال |
| Polkadot, Kusama | sr25519 / ed25519 | دون اتصال |
| TRON | TronWeb signMessageV2 (وكذلك تطبيق TRON على Ledger) | استرداد الموقِّع دون اتصال |
التحقق الذاتي
تُصدِّر كل شهادة حزمة إثبات مكتفية ذاتيًا. يمكن لأي شخص التحقق منها مقابل السلاسل العامة، دون حساب ودون الحاجة إلى الثقة بـ BA | Signet:
signatureتوقيع صالح علىchallengeبواسطةaddressعلى سلسلة الكتل المذكورة. وهذا وحده يُثبت التحكم في المفتاح.- إعادة حساب
SHA-256لملف JSON المعياري للشهادة؛ ويجب أن يساويcontentHash(ورقة Merkle). - طيّ الورقة باستخدام
merkleProof(keccak256، أزواج مرتّبة)؛ ويجب أن تساوي النتيجةmerkleRoot. - استدعاء
timestamps(merkleRoot)على عقد Stamper على Polygon؛ والقيمة غير الصفرية هي الوقت الذي كانت الشهادة موجودة بحلوله. - اختياريًا، التحقق من إثبات OpenTimestamps مقابل كتلة Bitcoin.
ما نحفظه
الطرف المقابل ليس عميلًا لدينا وليس لديه حساب. نجمع الحد الأدنى: العنوان، ورسالة التحدي، والتوقيع، والطابع الزمني، ومرجع الجهة الطالبة. لا نطلب أبدًا مفتاحًا خاصًا أو عبارة استرداد ولا نقبلهما. لا توصيف قائم على عنوان IP بما يتجاوز ما يتطلبه منع إساءة الاستخدام. تُحفظ البيانات بوصفها سجل امتثال للجهة الطالبة، وتُحذف عند الطلب.