كشفت عمليات التدقيق في الذكاء الاصطناعي التي أجرتها "بياتيك ووتش" عن وجود عيب خطير في توقيع الصفقات.
سجل تدقيق مكتوب بواسطة الآلات
في مايو 2021، أطلق المشروع الذي بات يُسمى الآن Biatec Wallet أول نسخة عامة منه: إنشاء محفظة، وحمايتها بكلمة مرور، وعرض معلومات الحساب الأساسية — وكل ذلك داخل علامة تبويب في المتصفح. بعد خمس سنوات، لا يزال نفس الأساس البرمجي، الذي أعيدت تسميته وتوسيع نطاقه تحت العلامة التجارية Biatec، يعمل بالكامل في المتصفح، وقد تبنى ممارسة غير مألوفة بالنسبة إلى محفظة مجتمعية صغيرة: وهو ينشر تقارير مراجعة أمنية مؤرخة، مكتوبة بواسطة نماذج الذكاء الاصطناعي، مباشرةً في مستودعه العام على GitHub، إلى جانب سجل حي لكل المخاطر التي كشفتها تلك المراجعات.
يبدأ التقرير الأحدث، المؤرخ 4 أغسطس، بتحذير يفضل معظم المشاريع دفنه: "النتيجة الرئيسية سلبية: هذا التدقيق يثير نتيجة واحدة حاسمة وواحدة عالية، وكلاهما يمثلان مسارين واقعيين لخسارة كاملة لأموال الحساب". وتكمن كلاهما في ميزة التبادل - وهو المكان الوحيد في المحفظة الذي يُعرّض مفتاح المستخدم الخاص لفترة وجيزة لبيانات خادم بعيد - وكيف تم العثور عليهما وإصلاحهما هو مقياس عادل لما يمكن أن يضمنه هذا النوع من برامج التدقيق المنشورة ذاتيًا وما لا يمكنه ضمانه.
محفظة لا تلمس مفاتيحك أبداً
Biatec Wallet هو محفظة مفتوحة المصدر، غير خاضعة للوصاية، تم إنشاؤها من قبل Scholtz & Company، jsa. من براتيسلافا، سلوفاكيا (رقم الشركة 51 882 272، رقم ضريبة القيمة المضافة SK2120828105)، وتم تطويرها تحت العلامة التجارية Biatec. تعني "غير خاضعة للوصاية" أنه لا يمتلك أي طرف ثالث أبداً المفاتيح الخاصة: لا يوجد خادم خلفي، ولا يوجد نموذج تسجيل، ولا يوجد KYC، ويتم تشفير ملف المحفظة باستخدام AES-256 وتخزينه في IndexedDB الخاص بالمستعرض. تُستخدم كلمة المرور محلياً فقط للتشفير والفك التشفير — ولا يتم نقلها إلى أي مكان، بما في ذلك البنية التحتية الخاصة بـ Biatec — وتتم قفل المحفظة نفسها بعد خمس دقائق من آخر نشاط، مما يمحو المفتاح المفكك من الذاكرة. يصف المشروع نفسه بأنه أول محفظة مفتوحة المصدر لـ Algorand؛ وتُظهر تغطية الأخبار أن محفظة Algorand الرسمية لم تصبح مفتوحة المصدر بالكامل إلا في يونيو 2021، أي بعد شهر من الإصدار العام الأول لـ AWallet.
يستلزم تجربة الأمر متصفحًا وخيارًا لرمز المرور: افتح wallet.biatec.io — يحدد ملف README الخاص بالمشروع نطاق a-wallet.net الأقدم كنسخة مكررة من نفس الإصدار — اختر اسم محفظة ورمز مرور (توصي التطبيق بوجود اثني عشر حرفًا أو أكثر من الأحرف الكبيرة والصغيرة والأرقام والأحرف الخاصة)، ويتم إنشاء ملف المحفظة محليًا. يعمل التطبيق افتراضيًا على mainnet، ويُوجّه إلى العُقد العامة الخاصة بـ AlgoNode، مع إعدادات للتبديل بين مقدمي الخدمة — بما في ذلك عقدة Algorand الخاصة بـ Biatec وindexer الخاصة بها.
كيف يعمل برنامج التدقيق
تم تدوين هذه العملية في ملف يُسمى ai-audit-instructions.md: عند كتابة "do new audit" في المستودع، يتم تشغيل عملية فحص جديدة من قبل نموذج ذكاء اصطناعي، والذي يجب أن يتصرف كما لو كان "شركة تدقيق احترافية للذكاء الاصطناعي/أمان المحافظ"، متشككة، معادية، ودقيقة بشأن خطورة النتائج، مع ربط كل نتيجة بمسارات ملفات وأرقام سطور محددة. يسجل كل تقرير التزامية تم تدقيقها، والنموذج الذي أجرى التدقيق، وإصدار التعليمات المستخدم؛ ويحمل سجل المخاطر كل نتيجة إلى الأبد، دون حذف الصفوف أبداً، ويحتفظ بالصفحات المغلقة لتسهيل التتبع.
| المفهوم | التطبيق في العالم الحقيقي |
| - ستة تقارير بين 9 يوليو و4 أغسطس 2026، أجراها ثلاثة نماذج ذكاء اصطناعي مختلفة (sonnet-5، fable-5، grok-4-5) | لا يحدد أي نموذج واحد البرنامج؛ من المتوقع أن يعيد كل تمرير التحقق من النتائج السابقة مقابل المصدر الحالي |
| - استعرضت دورة 4 أغسطس 21 تعديلًا و48 ملفًا (+2,407/−564 سطرًا) منذ التقرير السابق | يقتصر الاستعراض على نطاق الاختلاف — يتم فحص كل دورة إصدار، وليس فقط الميزات الرئيسية الجديدة |
| - كشف فحص الاعتماديات عن 15 تنبيهًا (0 حرجة، 9 عالية، 4 متوسطة، 2 منخفضة) | يتم تشغيل المحفظة مقابل شجرة اعتماديات تحتوي على تنبيهات عالية الخطورة معروفة، ولا توجد منها حرجة |
| - لم يتم تشغيل الاختبارات السابقة للاطلاق (E2E) والعملية (Ledger، WalletConnect، والتبادل الفعلي | يتم تتبع النتائج الحرجة والبالغة الخطورة في المصدر الثابت، وليس إظهارها مقابل نشر قيد التشغيل |
النتيجة: تم توقيع الصفقات المتبادلة دون إشراف
تتعلق النتيجة الحرجة، المسجلة تحت الرقم AW-2026-043، بالجزء الوحيد من المحفظة الذي يجب، بحكم تصميمه، أن يثق بجهة غريبة للحظة. فعندما يقوم المستخدم بتبديل أحد الأصول بأخرى، تطلب المحفظة من مجمع (Deflex، أو Folks Router، أو Biatec Router) حساب المسار وإرجاع المعاملات غير الموقعة للصفقة. وتقوم المحفظة بتفسير تلك المعاملات وتوقيعها مباشرةً باستخدام المفتاح الخاص الخام للحساب. وما تتبينه المراجعة هو أن أيًا من المسارات الثلاث لم يصدق على أي شيء بشأن المعاملات التي قدمها الخادم: ليس أن المرسل هو حساب المستخدم نفسه، ولا أن المستلم أو المبلغ مطابقين للاقتباس المعروض، ولا حتى معرف إنشاء الشبكة — ولا يتم عرض المعاملات على المستخدم قبل التوقيع. ويضغط المستخدم على زر "تنفيذ" واحد، ويتم توقيع مجموعة غير شفافة من المعاملات البعيدة بمفتاحه الخاص.
تتصل المخاطر بخصوصية كيفية عمل معاملات Algorand. يمكن للمعاملة الموقعة أن تتضمن حقولاً تتجاوز "الدفع X إلى Y": فالحقل "closeRemainderTo" يغلق الحساب، ويحوله إلى أي عنوان يحدده الحقل، ويحوله إلى أي عنوان يحدده الحقل، وفي حال نقل الأصول، فإنه يحول كامل رصيد التوكنات إلى أي عنوان يحدده الحقل، كما أن الحقل "rekeyTo" ينقل سلطة التوقيع على الحساب إلى مفتاح مختلف تماماً. في Algorand، تسمح "إعادة المفتاح" (rekeying) (الميزة في Algorand التي تتيح للحساب تفويض سلطة التوقيع إلى مفتاح مختلف، بحيث يمكن التحكم بعدة عناوين مختلفة) للحساب بتفويض سلطة التوقيع إلى مفتاح مختلف؛ ثم يسجل السجل المفتاح الذي يوقع فعلياً. قد يعيد واجهة برمجة التطبيقات (API) المجمعة المخترقة أو الضارة معاملةً مثل هذه بالضبط، ويسجّل المحفظة وتوقيعها وتقديمها بصمت، متجاوزةً تحذيرات "closeRemainderTo" و"rekeyTo" الحمراء التي أضافتها إصلاحية سابقة (AW-2026-001) إلى كل سطح توقيع آخر في التطبيق.
النتيجة الثانية: فحص النطاق الذي يثق بالمهاجم
يتمثل الاستنتاج الرئيسي، AW-2026-044، في ميزة التوقيع العشوائي ARC-60 الجديدة. يوسع ARC-60 من WalletConnect — بروتوكول رمز الاستجابة السريعة (QR) الذي يتيح لتطبيق ويب الاتصال بالمحفظة وطلب التوقيع دون الحاجة إلى الاحتفاظ بالأسرار — بحيث يمكن لتطبيق DApp متصل أن يطلب توقيعًا للتحقق من صحة البيانات العشوائية، وهو الأساس لتدفقات تسجيل الدخول بدون كلمة مرور. تعرض المحفظة المجال المطالب به والغرض منه ومعاينة كاملة للبيانات قبل التوقيع. كشف التدقيق عن أن فحص ربط المجال كان ذاتيًا: فكل من المجال المطالب به و"authenticatorData" المخصصة لشهادة صحته، هما جزء من نفس الطلب الذي يسيطر عليه DApp، ويتم فحصهما فقط ضد بعضهما البعض، وليس ضد نظيره في جلسة WalletConnect الفعلية. وبالتالي، يمكن لتطبيق DApp ضار الحصول على توقيع صالح مرتبط بأي مجال يختاره — وهو بالضبط تسجيل الدخول المزيف الذي تقول تعليقات المصدر الخاصة بالميزة أنه يمنعه.
ما هو موجود في الكود الحالي - وما لم يتم التحقق منه بعد
تم إصلاح المشكلة في اليوم نفسه الذي نُشر فيه التقرير (النسخة 0b3947e، 'feat: enhance ARC-60 security and DEX مصادقة المعاملات"). الآن، يتم تشغيل مساعد جديد مشترك، assertSwapTransactionSafe، على كل معاملة قبل توقيع أي من المجمّعات الثلاث، مما يرفض الدفعة بأكملها إذا لم يتطابق المرسل مع الحساب المتصل، أو إذا كانت أي معاملة تحتوي على حقل إعادة المفتاح أو حقل الإغلاق. من جانب ARC-60، يقارن فحص جديد يُسمى domainMatchesSessionOrigin المجال المطالب به باسم المضيف لزميل جلسة WalletConnect الفعلي بدلاً من الحمولة الخاصة بالطلب.
تم إصلاح المشكلة في الإصدار الرئيسي وفي المحفظة المنشورة: رسائل رفض الحارس موجودة في حزمة جافا سكريبت المصغرة التي تقدمها a-wallet.net، مما يؤكد أن رمز التحقق يرسل في ما يقوم به المستخدمون بتشغيله بالفعل، وكلا النطاقين يقدمان نفس الإصدار (36221a6، 13 أغسطس). ما لم يحدث بعد هو التحقق من الإصلاح من قبل البرنامج الذي اكتشف الخطأ. أحدث إدخال في سجل المخاطر هو مراجعة 4 أغسطس نفسها، التي استعرضت دمجًا سابقًا؛ جُمعت دمج التحقق بشكل منفصل في نفس اليوم، ولا توجد تقارير مراجعة لاحقة في المستودع لإعادة تأكيد إغلاق AW-2026-043 وAW-2026-044.
يجب النظر في هذا الوضع غير المؤكد مقابل ماهية البرنامج فعلياً. تُجرى عمليات التدقيق بواسطة نماذج الذكاء الاصطناعي بموجب الاختصاصات الخاصة بالمشروع، دون ذكر أي شركة أمنية مستقلة في أي من التقارير الستة، ولا ينشر المستودع أي إصدارات مرقمة - بل يتم إطلاق الإصدارات مباشرةً من خط أنابيب CI/CD - لذا لا توجد خطوة لإصدار الشهادات للاعتماد عليها. ويُوضح تقرير 4 أغسطس نفسه أن النتائج الرئيسية تم تتبعها في المصدر الثابت، دون إثباتها مقابل نشرة قيد التشغيل. وبوصفه تجربة شفافية، فإن البرنامج غير مسبوق حقاً - فمعظم المحافظ تنشر ملخصات التدقيق، وليس ملفات "ما وجدناه هذا الشهر" الخامة. وبوصفه ضماناً أمنياً مستقلاً، فإنه لا يغطي بعدً الإصلاحات الأخيرة الخاصة به.
مشروع مجتمعي يمول نفسه
وفقًا لأسئلة وأجوبة AWallet، فإنها مستقلة عن Algorand Inc. ومؤسسة Algorand، ولا تتلقى تمويلًا مستمرًا من أي منهما، لكنها تلقت منحًا مجتمعية لمرة واحدة xGov. ويظهر في مستودع xGov 10,000 ALGO لـ AWallet نفسها و60,000 ALGO لمخطط الدفع الخاص بها كمنح معتمدة؛ ويتم إدراج مقترحين لعام 2024 — طلب استرجاعي لـ 36,912 ALGO ومشروع هوية على السلسلة (on-chain) لـ 148,999 ALGO — كنهائيتين. وتصف مقدمة المقترح الاسترجاعي AWallet بأنها 'واحدة من أكثر المحافظ تقدمًا على Algorand'.
إن البصمة المالية وراء هذا الادعاء ضئيلة. ويحتوي عنوان التبرع المنشور على 25.6 ALGO وحوالي 1.03 USDT على السلسلة؛ ويضم سيرفر المشروع على "ديسكورد" 411 عضوًا، و7 منهم متصلون في وقت إجراء الفحص. وأكثر مشاركة اجتماعية حديثة ظهورا حول المحفظة، على "بلو سكاي"، حصلت على إعجاب واحد. والعملية التنموية نفسها ليست راكدة: تم تحديث المستودع في 15 أغسطس، ويحمل 672 نجمة، ويساهم مساهمان رئيسيان فيه بـ 546 و62 عملية دمج على التوالي.
نقطة تركيز واحدة ينبغي للقارئ أن يضعها في الاعتبار: يمر شاشة التبادل في المحفظة عبر مجمع بيانات Biatec الخاص إلى جانب المجمعين من الطرف الثالث، كما تدير Biatec أيضًا بنية حلقة Algorand ومؤشرها التي يمكن للمحفظة الاتصال بها. لا يمثل أي من ذلك مشكلة في حد ذاته — إذ يعني التصميم غير الخاضع للوصاية أن المحفظة لا توقّع سوى ما يوافق عليه المستخدم — لكن مراجعة 4 أغسطس تُظهر بالتحديد لماذا يمثل طبقة المجمع هو حدود الثقة المهمة، ويقع مجمع الفريق الخاص مباشرةً على هذه الحدود.
قامت نفس الشركة السلوفاكية ببناء مجموعة أدوات أوسع حول Algorand: بوابة دفع مجانية ومفتوحة المصدر تتيح للتجار قبول ALGO أو USDC أو USDT مباشرة في حساباتهم الخاصة دون الحاجة إلى وسيط مالي أو حساب محفظة، ونظام تصويت مفتوح المصدر، وإطار Stabilitas national-stablecoin، والذي وجد هذا المصدر أنه متوقف منذ عام 2023. وبرنامج التدقيق الخاص بالمحفظة، مهما كانت قيوده، هو الجزء من تلك المجموعة الذي يُظهر فيه الفريق عمله بأكثر الطرق قابلية للتدقيق.
المصدر
- Biatec Wallet (يخدم a-wallet.net نفس البنية)
- مستودع scholtz/wallet على GitHub — README، تعليمات التدقيق، سجل المخاطر، تقارير التدقيق، validate.ts، arc60.ts
- أسئلة وأجوبة عن المحفظة
- سجل تغييرات المحفظة
- صفحة التبرعات
- مقترحات xGov 9 و90 و199 و200
- Biatec Wallet - المحفظة المجتمعية لـ Algorand
- Biatec Wallet - المحفظة المجتمعية لـ Algorand
- Biatec
- raw.githubusercontent.com
- raw.githubusercontent.com
- raw.githubusercontent.com
- التاريخ لـ src/scripts/aggregators/validate.ts - scholtz/wallet · GitHub
- Biatec Wallet - المحفظة المجتمعية لـ Algorand
- أفضل محافظ Algorand في عام 2026: أماكن آمنة للاستثمار في ALGO - Coin Bureau
- Biatec Wallet - المحفظة المجتمعية لـ Algorand
Source: https://www.a-wallet.net/