حسابرسیهای هوش مصنوعی که Biatec Wallet منتشر میکند یک نقص حیاتی در امضای مبادله را آشکار کرد
Biatec Wallet، کیف پول مرورگری متنباز Algorand، حسابرسیهای امنیتی اجراشده با هوش مصنوعی را در مخزن گیتهاب خود منتشر میکند. حسابرسی اوت ۲۰۲۶ یک نقص حیاتی امضای کور در مبادلهها یافت و اصلاح آن اکنون در کیف پول مستقرشده عرضه میشود.
رد حسابرسی که ماشینها نوشتهاند
در مه ۲۰۲۱، پروژهای که امروز Biatec Wallet نام دارد نخستین نسخه عمومی خود را عرضه کرد: ساختن کیف پول، محافظت از آن با گذرواژه و مشاهده اطلاعات پایه حساب — همه درون یک تب مرورگر. پنج سال بعد، همان پایگاه کد، که زیر برند Biatec1 تغییر نام داده و گسترش یافته، هنوز کاملاً در مرورگر اجرا میشود و رویهای نامعمول برای یک کیف پول کوچک اجتماعی در پیش گرفته است: انتشار گزارشهای تاریخدار حسابرسی امنیتی که مدلهای هوش مصنوعی نوشتهاند، مستقیماً در مخزن عمومی گیتهاب2 و در کنار فهرستی زنده از هر خطری که این حسابرسیها یافتهاند.
تازهترین گزارش، به تاریخ ۴ اوت، با هشداری آغاز میشود که بیشتر پروژهها ترجیح میدهند آن را زیر خاک پنهان کنند: «نتیجه اصلی منفی است: این حسابرسی یک یافته با شدت بحرانی و یک یافته با شدت بالا ثبت میکند که هر دو مسیرهایی واقعبینانه به از دست رفتن کامل داراییهای یک حساباند.» هر دو یافته در قابلیت مبادله قرار دارند — تنها جایی در کیف پول که کلید خصوصی کاربر لحظهای در معرض خروجی یک سرور راه دور قرار میگیرد — و شیوه یافتن و رفع آنها معیار منصفانهای است از آنچه این نوع برنامه حسابرسی خودمنتشرشده میتواند و نمیتواند تضمین کند.
کیف پولی که هرگز به کلیدهای شما دست نمیزند
Biatec Wallet یک کیف پول Algorand رایگان، متنباز و غیرحضانتی است که Scholtz & Company, jsa. مستقر در براتیسلاوا، اسلواکی (شناسه شرکت ۵۱ ۸۸۲ ۲۷۲، شماره مالیات بر ارزش افزوده SK2120828105) آن را ساخته و زیر برند Biatec توسعه داده است. غیرحضانتی یعنی هیچ شخص ثالثی هرگز کلیدهای خصوصی را در اختیار ندارد: نه سرور پشتیبان وجود دارد، نه فرم ثبتنام و نه KYC، و فایل کیف پول با AES-256 رمزنگاری و در IndexedDB خودِ مرورگر ذخیره میشود. گذرواژه فقط بهصورت محلی برای رمزنگاری و رمزگشایی به کار میرود — هیچجا فرستاده نمیشود، حتی به زیرساخت خود Biatec — و کیف پول پنج دقیقه پس از آخرین فعالیت خود را قفل میکند و کلید رمزگشاییشده را از حافظه پاک میکند. پروژه خود را نخستین کیف پول متنباز Algorand معرفی میکند؛ گزارشهای خبری نشان میدهد کیف پول رسمی Algorand تنها در ژوئن ۲۰۲۱، یک ماه پس از نخستین نسخه عمومی AWallet، کاملاً متنباز شد.
آزمودنش تنها یک مرورگر و انتخاب یک گذرواژه میخواهد: wallet.biatec.io3 را باز کنید — README پروژه دامنه قدیمیتر a-wallet.net را آینه منسوخِ همان استقرار معرفی میکند — نامی برای کیف پول و یک گذرواژه برگزینید (برنامه دستکم دوازده نویسه با ترکیب حروف بزرگ و کوچک، عدد و نویسههای ویژه را توصیه میکند) و فایل کیف پول همانجا بهصورت محلی ساخته میشود. برنامه بهطور پیشفرض روی شبکه اصلی و متصل به نودهای عمومی AlgoNode اجرا میشود و تنظیماتی هم برای تغییر ارائهدهنده دارد — از جمله نود Algorand خودِ Biatec و زیرساخت ایندکسر.
برنامه حسابرسی چگونه کار میکند
این فرایند در فایلی به نام ai-audit-instructions.md مدون شده است: تایپ عبارت «do new audit» در مخزن، یک دور تازه بررسی با یک مدل هوش مصنوعی را به راه میاندازد؛ مدل باید همانگونه عمل کند که «یک شرکت حرفهای حسابرسی قرارداد هوشمند و امنیت کیف پول» عمل میکند — شکگرا، ستیزهجو و دقیق در تعیین شدت، بهگونهای که هر یافته به مسیر فایل و شماره خط مشخصی گره بخورد. هر گزارش، کامیت مورد حسابرسی، مدل اجراکننده و نسخه دستورالعمل بهکاررفته را ثبت میکند؛ فهرست ریسکها هم هر یافته را برای همیشه با خود حمل میکند، هیچ ردیفی را حذف نمیکند و ردیفهای بستهشده را برای ردیابی نگه میدارد.
| مفهوم | پیامد در دنیای واقعی |
|---|---|
| شش گزارش میان ۹ ژوئیه و ۴ اوت ۲۰۲۶، اجراشده با سه مدل هوش مصنوعی متفاوت (sonnet-5، fable-5، grok-4-5) | هیچ مدل واحدی این برنامه را تعریف نمیکند؛ انتظار میرود هر دور، یافتههای پیشین را در برابر کد منبع کنونی دوباره بررسی کند |
| دور ۴ اوت ۲۱4 کامیت و ۴۸ فایل (+۲,۴۰۷/−۵۶۴ خط) را از گزارش پیشین بررسی کرد | بازبینی محدود به دیف است — هر چرخه انتشار بررسی میشود، نه فقط قابلیتهای تازه |
| پویش وابستگیها ۱۵5 هشدار را آشکار کرد (۰ بحرانی، ۹ بالا، ۴ متوسط، ۲ پایین) | کیف پول با درخت وابستگیای عرضه میشود که هشدارهای شناختهشده با شدت بالا دارد، اما هیچکدام بحرانی نیست |
| فهرست ریسک پس از ۴ اوت ۲۰ ریسک فنی باز را میشمارد | دفتر کل منتشرشده خودِ پروژه میگوید دو دوجین ریسک در سطح کد هنوز حل نشده است |
| تستهای E2E با Cypress و تستهای زنده (Ledger، WalletConnect، یک مبادله واقعی) اجرا نشدند | یافتههای بحرانی و بالا در کد ایستا ردیابی شدهاند، نه در برابر یک استقرار در حال اجرا اثبات شدهاند |
یافته: مبادلههایی که کورکورانه امضا میشوند
یافته بحرانی، با شناسه AW-2026-043، به همان بخشی از کیف پول مربوط است که طبق طراحی ناچار است لحظهای به یک غریبه اعتماد کند. وقتی کاربر داراییای را با دارایی دیگر مبادله میکند، کیف پول از یک تجمیعکننده — Deflex، Folks Router یا Biatec Router — میخواهد مسیر را محاسبه کند و تراکنشهای امضانشده معامله را برگرداند. کیف پول آن تراکنشها را رمزگشایی میکند و مستقیم با کلید خصوصی خام حساب امضایشان میکند. آنچه حسابرسی ردیابی کرد این است که هیچیک از این سه مسیر هیچچیز را درباره تراکنشهای عرضهشده از سوی سرور اعتبارسنجی نمیکرد: نه اینکه فرستنده خودِ حساب کاربر است، نه گیرنده یا مبلغ را با نرخ نمایشدادهشده میسنجید و نه حتی genesis ID شبکه را — و تراکنشها هرگز پیش از امضا به کاربر نشان داده نمیشوند. کاربر یک دکمه Execute میزند و دستهای مبهم از تراکنشهای راه دور با کلید او امضا میشود.
ریسک اینجا به سازوکار تراکنشهای Algorand گره خورده است. یک تراکنش امضاشده میتواند فراتر از «پرداخت X به Y» میدانهای دیگری هم داشته باشد: میدان closeRemainderTo حساب را میبندد و تمام موجودی ALGO آن — یا در انتقال دارایی، کل دارایی توکن — را به هر نشانی که در میدان آمده سرازیر میکند، و میدان rekeyTo اختیار امضای حساب را به کلیدی کاملاً دیگر منتقل میکند. در Algorand، بازکلیدگذاری به حساب اجازه میدهد اختیار امضای خود را به کلید دیگری واگذار کند؛ دفتر کل آنگاه ثبت میکند که در واقع کدام کلید امضا کرده است. یک API تجمیعکننده آلوده یا مخرب میتوانست دقیقاً چنین تراکنشی برگرداند و کیف پول بیصدا آن را امضا و ارسال میکرد — با دور زدن هشدارهای سرخ بستن حساب و بازکلیدگذاری که یک اصلاح پیشین (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 aggregator transaction validation»). تابع کمکی مشترک تازهای به نام assertSwapTransactionSafe اکنون پیش از امضای هر یک از این سه تجمیعکننده روی هر تراکنش اجرا میشود و اگر فرستنده با حساب متصل همخوان نباشد یا هر تراکنشی میدان بازکلیدگذاری یا بستن حساب داشته باشد، کل دسته را رد میکند. در سمت ARC-60 هم بررسی تازه domainMatchesSessionOrigin دامنه ادعاشده را با نام میزبانِ طرف واقعی نشست WalletConnect مقایسه میکند، نه با محتوای خودِ درخواست.
این اصلاح روی شاخه master و در کیف پول مستقرشده حضور دارد: پیامهای ردِ این نگهبان در بسته فشردهشده جاوااسکریپتی که a-wallet.net ارائه میدهد وجود دارد و تأیید میکند کد اعتبارسنجی در همان چیزی عرضه شده که کاربران واقعاً اجرا میکنند؛ هر دو دامنه هم یک نسخه را ارائه میدهند (36221a6، ۱۳ اوت). آنچه هنوز رخ نداده، تأیید این اصلاح از سوی همان برنامهای است که باگ را یافته بود. تازهترین مدخل فهرست ریسک، خودِ حسابرسی ۴ اوت است که کامیت قدیمیتری را بررسی کرده بود؛ کامیت اعتبارسنجی جداگانه و در همان روز آمد و هیچ گزارش حسابرسی بعدی در مخزن نیست که AW-2026-043 و AW-2026-044 را بهعنوان بستهشده دوباره بررسی کند.
این وضعیت تأییدنشده را باید در برابر ماهیت واقعی این برنامه سنجید. حسابرسیها را مدلهای هوش مصنوعی و بر پایه شرح وظیفه خودِ پروژه انجام میدهند؛ در هیچیک از شش گزارش نام هیچ شرکت امنیتی مستقلی نیامده و مخزن هیچ نسخه برچسبخوردهای منتشر نمیکند — بیلدها مستقیم از خط لوله CI/CD بیرون میآیند — پس هیچ مرحله گواهیدهی انتشار وجود ندارد که بتوان به آن تکیه کرد. خودِ گزارش ۴ اوت هم صریح میگوید یافتههای اصلیاش در کد منبع ایستا ردیابی شدهاند و در برابر یک استقرار در حال اجرا اثبات نشدهاند. بهعنوان یک آزمایش شفافیت، این برنامه واقعاً نامعمول است — بیشتر کیف پولها خلاصه حسابرسیها را منتشر میکنند، نه فایلهای خامِ «این ماه چه یافتیم». اما بهعنوان یک تضمین امنیتی مستقل، هنوز تازهترین اصلاحات خودش را هم پوشش نمیدهد.
پروژهای اجتماعی که خودش را تأمین مالی میکند
بر پایه پرسشهای متداول Biatec، این پروژه مستقل از Algorand Inc. و بنیاد Algorand است و از هیچیک بودجه جاری نمیگیرد، اما کمکهای مالی اجتماعی xGov را بهصورت موردی جذب کرده است. مخزن xGov مبلغ ۱۰,۰۰۰ ALGO برای خودِ AWallet و ۶۰,۰۰۰ ALGO برای زمانبند پرداخت آن را در وضعیت Approved ثبت کرده است؛ دو پیشنهاد سال ۲۰۲۴ — درخواست پسرو برای ۳۶,۹۱۲ ALGO و یک پروژه هویت درونزنجیرهای با ۱۴۸,۹۹۹ ALGO — در وضعیت Final فهرست شدهاند. خودِ پروژه در چکیده پیشنهاد پسرو مینویسد که AWallet «یکی از پیشرفتهترین کیف پولهای Algorand» است.
رد پای مالی پشت این ادعا کوچک است. نشانی اهدای منتشرشده ۲۵.۶ ALGO و حدود ۱.۰۳ USDT در زنجیره دارد؛ دیسکورد پروژه ۴۱۱ عضو دارد که هنگام این بررسی ۷ نفرشان آنلاین بودند؛ پربازدیدترین پست اجتماعی اخیر درباره این کیف پول، در Bluesky، تنها یک لایک دارد. خودِ توسعه هم راکد نیست: آخرین پوش به مخزن ۱۵ اوت بوده، مخزن ۶۷۲ ستاره دارد و دو مشارکتکننده اصلی آن بهترتیب ۵۴۶ و ۶۲ کامیت ثبت کردهاند.
خواننده باید یک نقطه تمرکز را هم در نظر بگیرد: صفحه مبادله کیف پول، در کنار دو روتر ثالث، از تجمیعکننده خودِ Biatec هم عبور میکند و Biatec همچنین نود Algorand و زیرساخت ایندکسری را که کیف پول میتواند به آن وصل شود اداره میکند. هیچیک از اینها بهخودیخود مشکل نیست — طراحی غیرحضانتی یعنی کیف پول فقط چیزی را امضا میکند که کاربر تأیید کرده — اما حسابرسی ۴ اوت دقیقاً نشان میدهد چرا لایه تجمیعکننده همان مرز اعتمادی است که اهمیت دارد، و روتر خودِ تیم درست روی همان مرز نشسته است.
همین شرکت اسلواکی مجموعهابزار گستردهتری حول Algorand ساخته است: درگاه پرداخت رایگان و متنبازی که به پذیرندگان اجازه میدهد ALGO، USDC یا USDT را مستقیم به حساب خود دریافت کنند، بدون واسطه مالی و بدون نیاز به حساب کیف پول؛ یک سامانه رأیگیری متنباز؛ و چارچوب استیبلکوین ملی Stabilitas که این رسانه پیشتر گزارش داده بود از ۲۰۲۳ متوقف مانده است. برنامه حسابرسی این کیف پول، با هر محدودیتی که داشته باشد، همان بخشی از این مجموعه است که تیم در آن کار خود را به قابلبازرسیترین شکل نشان میدهد.
منابع
- Biatec Wallet3 (a-wallet.net همان نسخه را ارائه میدهد)
- مخزن گیتهاب scholtz/wallet2 — README، دستورالعملهای حسابرسی، فهرست ریسک، گزارشهای حسابرسی، validate.ts، arc60.ts
- پرسشهای متداول کیف پول6
- تغییرات کیف پول7
- صفحه اهدا8
- پیشنهادهای xGov شماره ۹، ۹۰، ۱۹۹، ۲۰۰9
- Biatec Wallet - Algorand Community Wallet10
- Biatec Wallet - Algorand Community Wallet11
- Biatec12
- raw.githubusercontent.com13
- raw.githubusercontent.com14
- raw.githubusercontent.com15
- History for src/scripts/aggregators/validate.ts - scholtz/wallet · GitHub16
- Biatec Wallet - Algorand Community Wallet17
- بهترین کیف پولهای Algorand در ۲۰۲۶: جاهای امن برای استیکینگ ALGO - Coin Bureau18
- Biatec Wallet - Algorand Community Wallet19
۳ رقم این گزارش بررسی شده است.دیدن همهٔ بررسیها
منابع
- 1Biatec biatec.io↩
- 2مخزن عمومی گیتهاب github.com↩
- 3wallet.biatec.io wallet.biatec.io↩
- 6پرسشهای متداول کیف پول a-wallet.net↩
- 7تغییرات کیف پول a-wallet.net↩
- 8صفحه اهدا a-wallet.net↩
- 9پیشنهادهای xGov شماره ۹، ۹۰، ۱۹۹، ۲۰۰ github.com↩
- 10Biatec Wallet - Algorand Community Wallet a-wallet.net↩
- 11Biatec Wallet - Algorand Community Wallet wallet.biatec.io↩
- 12Biatec biatec.io↩
- 13raw.githubusercontent.com/scholtz/wallet/master/src/scripts/aggregators/biatec.ts raw.githubusercontent.com↩
- 14raw.githubusercontent.com/scholtz/wallet/master/audits/risk-registry.md raw.githubusercontent.com↩
- 15raw.githubusercontent.com/scholtz/wallet/master/src/scripts/aggregators/types.ts raw.githubusercontent.com↩
- 16History for src/scripts/aggregators/validate.ts - scholtz/wallet · GitHub github.com↩
- 17Biatec Wallet - Algorand Community Wallet a-wallet.net↩
- 18بهترین کیف پولهای Algorand در ۲۰۲۶: جاهای امن برای استیکینگ ALGO - Coin Bureau coinbureau.com↩
- 19Biatec Wallet - Algorand Community Wallet wallet.biatec.io↩