برنامج الضمان القديم في Yieldly يحرّر ALGO دون أن يقرأ تفاصيل الدفعة
خمس دفعات خلال اثنتين وتسعين ثانية نقلت نحو 390,000 ALGO من خزينة التخزين القديمة في Yieldly، بعد وقت طويل من مطالبة المالكين بسحب أموالهم. ويبدو أن برنامج الضمان الخاص بها يوافق على أي دفعة دون أن يقرأ المستفيد أو المبلغ أو الأصل. ويحتوي الحساب الآن على 0.20107 ALGO.

في صباح 15 أكتوبر 2026، غادرت خمس دفعات حساب عقد تخزين (staking) تابع لـ Yieldly خلال اثنتين وتسعين ثانية. ونقلت مجتمعة نحو 390,377 ALGO من خزينة كان المشروع قد طلب من المستخدمين إفراغها قبل ثلاث سنوات. وكانت الدفعة الأولى بنحو 14,3741 ALGO والأخيرة بنحو 174,763. وقد دفع العقد لأن سجلاته الخاصة كانت قد قُيّدت لها وديعة لم تصل قط، بعملة لم يحتفظ بها أبداً.
هذا الحساب هو الضمان وراء تطبيق التخزين (staking) القديم في Yieldly dapp، حيث كان المالكون يتركون رموزهم لكسب المكافآت. وقد طلب المشروع منهم سحب حصصهم في أبريل 2023 ثم مجدداً في يوليو من العام نفسه. وما كانت الخزينة لا تزال تحتفظ به هو ALGO، وقد بقي فيها خلف برنامج منشور يبدو أنه لا يقرأ المستفيد ولا مبلغ الدفعة التي يوقّعها.
رمز سُكّ قبل ثماني ثوانٍ من إنفاقه
الحساب الذي استلم المال فُتح في ذلك الصباح ومُوّل بـ 12 ALGO. وقد سكّ رمزاً باسم FUEL بلا كسور عشرية ولا دور مدير أو تجميد أو استرداد قسري أو احتياطي. وأرسل منشئه المعروض بأكمله إلى عنوانه الخاص، في تحويل لم يغيّر أي رصيد.
بعد ثماني ثوانٍ، دفع الضمان لذلك الحساب نفسه 3,239,706,903.7436723 YLDY، أي نحو 3.244 مليار رمز، وهو ثلث المعروض البالغ 105 مليارات. ويبدو أن برنامج التخزين (staking) يحتفظ برصيد لكل حساب ويضيف إليه مبلغ أي تحويل دون مقارنة معرّف الأصل. فـ FUEL يُحتسب بوحدات صحيحة وYLDY بأجزاء من المليون، فقُرئ العدد الخام لأحد الرمزين على أنه للآخر.
ولم يكن تقييد ذلك الرصيد يتطلب إرسال أي شيء إلى الضمان. فبرنامج التحقق الذي يسبق مسار الإيداع يعيد النجاح لأي استدعاء يغلق مركزاً، دون قراءة أي وسيط، ما يتيح تجاوز المسار المحمي. ثم يقيّد فرع الإيداع مبلغ الدفعة دون التأكد من وصول المال إلى الحساب الذي يحتفظ بالأموال.
وتتبع عمليات السحب النمط نفسه. فقد سبق كل واحدة من الدفعات الخمس، بنحو ثماني ثوانٍ، أن دفع الحساب نفسه لنفسه المبلغ ذاته، من نحو 14,3746 ALGO وحتى نحو 174,763، في مجموعات لم يتغيّر فيها رصيد أي عنوان. وكانت الودائع مجرد قيود في سجلات العقد الخاصة. أما ALGO التي خرجت فهي رصيد العقد نفسه، لا شيء أدخله المرسل.
خزينة لم تقرأ شيئاً عن الدفعة
الحساب الذي دفع هو توقيع منطقي، أي برنامج صغير لا مفتاح خاص له يمكن سرقته. وقد فتحه منشئ Yieldly بـ 2 ALGO في 5 يونيو 2021. ويبدو أن برنامجه المنشور يوافق على الدفعة وفق ثلاثة شروط. يجب أن تضم المجموعة بين معاملتين وست، وأن تكون الأولى استدعاءً لتطبيق معيّن من Yieldly. ولا يجوز لأي من المعاملتين الأوليين تعيين إعادة مفتاح. ويبدو أنه لا يقرأ أي مستفيد أو مبلغ أو أصل للدفعة التي يوقّعها.
وفي حدود تلك الشروط، كان يمكنه توقيع دفعة بأي حجم، وبأي أصل، إلى أي عنوان. وبهذا القراءة، لا يبدو أن شيئاً احتاج إلى اختراق ولا مفتاحاً احتاج إلى العثور عليه. ويبدو أن البرنامج لا يسأل شيئاً عن هوية من يرسل الدفعة، فاستوى في ذلك غريب ومستخدم سابق. وتعرض صفحة حساب الضمان7 الآن 0.201078 ALGO، أي فوق الحد الأدنى البالغ 0.2 ALGO الذي يبقيه مفتوحاً بقليل.
الـ 400 ألف في العنوان هي دفعة تمت لاحقاً
ذكر المنشور9 الذي أثار الأمر على r/AlgorandOfficial أن عقد التخزين (staking) قد 'اختُرق مقابل 400k10 Algo'، وأشار إلى تدقيق Halborn لعام 2021. وانقسمت الردود بين من يصفه بالاختراق ومن يلقي اللوم على المشغّلين. أما الرقم الذي يقف خلف العنوان، 404,751.14087711 ALGO، فهو تحويل واحد أجرته المحفظة المستلمة بعد أربع دقائق من آخر عملية سحب، وهو أكبر مما أفرجت عنه الخزينة.
إنه مال الخزينة مضافاً إليه حصيلة الرموز المقيّدة. فقد باع الحساب 1,898,163,508.44209812 YLDY إلى حساب عقد مقابل 8,435.73485413 ALGO، وباع 1,341,543,395.30157314 YLDY في بركة Tinyman مقابل 5,934.49038915. وقد درّت البيعتان 14,370.22524316 ALGO. وبإضافة ذلك إلى المبلغ الذي أفرجت عنه الخزينة، يقل المجموع عن 404,751.14087717 المرسلة لاحقاً ببضعة ALGO، وهو فرق لا يسدّه السجل.
أما YLDY نفسها فقيمتها ضئيلة الآن: نحو 2,878 دولاراً من القيمة السوقية، على تداول قدره 13.44 دولاراً في يوم واحد، حتى 19 أكتوبر.
وقد تحركت الدفعة المرسلة لاحقاً مجدداً خلال ساعات. فقد مرّت بحسابين عاديين آخرين، وأرسل آخرهما 220,000 ALGO في 19 أكتوبر. ولا يعود أي من الثلاثة إلى اسم معروف.
التدقيق اختبر شيفرة مختلفة
امتد عمل Halborn من 8 إلى 19 مايو 2021 وشمل عقود اليانصيب في Yieldly. ويقول التقرير18 إنه، في ظل قيود الوقت والموارد، لم تُختبر سوى الجوانب الأكثر جوهرية. ووفقاً للتقرير، فإن إحدى نتائجه الخمس، HAL-02، المصنّفة منخفضة الخطورة، وصفت معاملات لم تمر عبر الوسيط بينما كان الضمان يتوقعها، عند هذا الحد نفسه.
أما البرامج التي دفعت فقد أُطلقت بعد ذلك. فقد حُدّث تطبيقا التخزين (staking) آخر مرة في 2 يوليو 2021، بعد إغلاق العمل، ولم يتغيّر أي منهما منذ ذلك الحين. والاستشهاد بذلك التدقيق كضمان بشأن خزينة التخزين (staking) يضع الثقة في شيفرة لم تكن تعمل في أكتوبر.
بعد ثلاث سنوات من إشعار الإغلاق
طلب Yieldly من المالكين السحب في أبريل 2023، ثم مجدداً في يوليو. وقد جاء في منشور 20 أبريل19: 'اسحب حصتك من التخزين (staking) في Yieldly قبل إخراج التطبيق من الخدمة خلال 30 يوماً،20' وحدّد نهاية مايو موعداً للإيقاف. وطلب إعلان 25 يوليو21 من المستخدمين 'سحب أموالكم من التخزين (staking) في Yieldly قبل الساعة 10 مساءً بتوقيت EST في 26 يوليو22'. وقد جاءت الدفعات الخمس بعد 1,177 يوماً من ذلك الموعد النهائي.
ولم يقل Yieldly شيئاً عن التحويلات. فقناته للإعلانات23 لم تنشر منذ مارس 2024، وتغذيته على Medium24 منذ أبريل 2023، وحسابه على X25 لا يحمل شيئاً بعد يناير 2025.
التطبيق زال؛ والعقود بقيت. فقد ظل الضمان يرسل YLDY في 2025، بما في ذلك 112,376,408.272 رمز في تحويل واحد في 4 أغسطس، ما يعني أن البرنامج كان لا يزال يستجيب لأحدهم. وما كان يحتفظ به أيضاً هو ALGO، وهي التي ذهبت. أما ضمانات التطبيق الأخرى التي تسمّيها البرامج فلا تحتوي الآن على شيء.
المصادر
تم التحقق من 17 رقمًا في هذه القصة. قُرئ منها 6 أرقام مباشرة من السلسلة.عرض كل عمليات التحقق