نتایج بررسیهای هوش مصنوعی انجام شده توسط Biatec Wallet، یک نقص جدی در امضای مبادله را آشکار کرد.
ردپای حسابرسی که توسط ماشینها نوشته شده است
در ماه مه سال ۲۰۲۱، پروژهٔ اکنون با نام «بیا تک والت» (Biatec Wallet) اولین نسخهٔ عمومی خود را عرضه کرد: ساخت والت، محافظت از آن با رمز عبور، و مشاهدهٔ اطلاعات اولیهٔ حساب کاربری — همه اینها درون یک تب مرورگر. پنج سال بعد، همان کدبنیاد، با نام و برند بیا تک تغییر نام داده و گسترش یافته، همچنان به طور کامل در مرورگر اجرا میشود و برای یک والت کوچکِ جامعهٔ غیرمتمرکز، اقدام غیرمعمولی انجام داده است: گزارشهای بازرسی امنیتی تاریخدار، که توسط مدلهای هوش مصنوعی نوشته شدهاند، را مستقیماً در گیتهاب عمومی آن منتشر میکند و در کنار آن، یک ثبتنام زنده از هر خطری که این بازرسیها یافتهاند، ارائه میدهد.
جدیدترین گزارش، با تاریخ ۴ آگوست، با هشداری آغاز میشود که اکثر پروژهها ترجیح میدهند آن را پنهان کنند: «نتیجه اصلی منفی است: این حسابرسی یک نتیجه بحرانی و یک نتیجه مهم را نشان میدهد که هر دو راهی واقعگرایانه برای از دست دادن کامل وجوه حساب هستند.» هر دو نتیجه در ویژگی «سوآپ» قرار دارند — آن جایی در کیف پول که کلید خصوصی کاربر به طور مختصر در معرض خروجی یک سرور از راه دور قرار میگیرد — و نحوه یافتن و رفع آنها، معیاری عادلانه برای آن چیزی است که این نوع برنامههای حسابرسی منتشر شده توسط خود، میتوانند و ناتوان از تضمین آن هستند.
کیفی که هرگز کلیدهای شما را لمس نمیکند
Biatec Wallet یک کیف پول رایگان، منبع باز و [غیر-حافظهدار] است که توسط Scholtz & Company، jsa. از براتیسلاوا، اسلواکی (شناسه شرکت 51 882 272، شماره مالیاتی SK2120828105) ایجاد شده و تحت برند Biatec توسعه یافته است. «غیر-حافظهدار» به این معناست که هیچ شخص ثالثی هرگز کلیدهای خصوصی را در اختیار ندارد: هیچ سرور بکاند، هیچ فرم ثبتنام و هیچ [KYC](شناخت مشتری — یک الزام قانونی برای خدمات مالی برای تأیید هویت مشتریان، معمولاً با جمعآوری مدارک شناسایی) وجود ندارد و فایل کیف پول با AES-256 رمزگذاری شده و در IndexedDB خود مرورگر ذخیره میشود. رمز عبور فقط به صورت محلی برای رمزگذاری و رمزگشایی استفاده میشود و هرگز به هیچ جایی، از جمله زیرساخت خود Biatec، منتقل نمیشود و کیف پول پنج دقیقه پس از آخرین فعالیت، خود را قفل میکند و کلید رمزگشایی شده را از حافظه پاک میکند. این پروژه خود را اولین کیف پول منبعباز Algorand توصیف میکند؛ گزارشهای خبری نشان میدهد که کیف پول رسمی Algorand تنها در ژوئن ۲۰۲۱، یک ماه پس از اولین نسخه عمومی AWallet، به طور کامل منبعباز شد.
برای امتحان کردن، به یک مرورگر و یک رمز عبور نیاز دارید: wallet.biatec.io را باز کنید — در README پروژه، دامنه قدیمی a-wallet.net به عنوان یک آینهٔ منسوخ از همان استقرار ذکر شده است — یک نام کیف پول و یک رمز عبور انتخاب کنید (برنامه ۱۲ کاراکتر یا بیشتر را که ترکیبی از حروف بزرگ و کوچک، اعداد و کاراکترهای ویژه باشد توصیه میکند) و فایل کیف پول در محلی ایجاد میشود. این برنامه به طور پیشفرض روی mainnet اجرا میشود و به گرههای عمومی Algorand اشاره دارد، با تنظیماتی برای تعویض ارائهدهندگان — از جمله گرهٔ Algorand خود Biatec و زیرساخت indexer
چگونگی اجرای برنامهٔ حسابرسی
این فرآیند در یک فایل به نام ai-audit-instructions.md کدگذاری شده است: تایپ «do new audit» در مخزن، یک بررسی جدید توسط یک مدل هوش مصنوعی را آغاز میکند که باید مانند «یک شرکت حرفهای بازرسی قراردادهای هوشمند/امنیت کیف پول» عمل کند — با شک و تردید، با رویکرد مخالفتآمیز، و با دقت در مورد شدت خطرات، و با این که هر یافته به مسیرهای خاص فایل و شماره خطوط پیوند دارد. هر گزارش، کامیت مورد بازرسی را ثبت میکند، مدلی را که آن را انجام داده، و نسخه دستورالعمل مورد استفاده را ثبت میکند؛ رجیستر ریسک، هر یافته را برای همیشه حفظ میکند، هیچگاه ردیفها را حذف نمیکند و آنهایی که بسته شدهاند را برای ردیابی حفظ میکند.
| مفهوم | پیامد در دنیای واقعی |
| — | — |
| شش گزارش بین ۹ ژوئیه و ۴ اوت ۲۰۲۶، توسط سه مدل هوش مصنوعی مختلف (sonnet-5، fable-5، grok-4-5) تهیه شده است | هیچ مدلی برنامه را تعریف نمیکند؛ از هر مدل انتظار میرود یافتههای پیشین را در برابر منبع جاری دوباره تأیید کند |
| گزارش ۴ اوت، ۲۱ کامیت و ۴۸ فایل (+۲,۴۰۷/−۵۶۴ خط) از گزارش پیشین را بررسی کرد | بررسی در محدوده اختلاف است — هر چرخه انتشار بررسی میشود، نه فقط ویژگیهای جدید |
| اسکن وابستگیها، ۱۵ توصیه امنیتی (۰ بحرانی، ۹ بالا، ۴ متوسط، ۲ کم) را آشکار کرد | کیف پول با یک درخت وابستگی که شامل توصیههای امنیتی با شدت بالا است عرضه میشود، هیچکدام بحرانی نیستند |
| ثبتنام، پس از ۴ اوت، ۲۰ ریسک فنی باز را ثبت کرده است | دفترکل منتشر شدهٔ خود پروژه میگوید دو دوجین ریسک در سطح کد باقی مانده است که حل نشدهاند |
| تستهای E2E و زندهٔ سایپرس (Ledger، [WalletConnect](/glossary/walletconnect "پروتکلی که به یک اپلیکیشن وب اجازه میدهد با اسکن کد QR به یک کیف پول رمزنگاری (مانند Pera یا Defly در Algorand) متصل شود، تا اپلیکیشن بتواند w را بخواند)، یک تبادل واقعی) اجرا نشدند | یافتههای بحرانی و بالا در منبع استاتیک ردیابی شدهاند، نه در برابر یک استقرار در حال اجرا. |
یافته: مبادلات به صورت ناشناس امضا شدند
یافتهٔ مهم، با شمارهٔ AW-2026-043، مربوط به بخشی از کیف پول است که به طور طراحی باید برای لحظهای به یک شخص غریبه اعتماد کند. هنگامی که کاربر یک دارایی را با دارایی دیگری مبادله میکند، کیف پول از یک گردآورنده — Deflex، Folks Router یا Biatec Router — میخواهد مسیر را محاسبه کند و تراکنشهای بدون امضا را برای معامله بازگرداند. کیف پول آن تراکنشها را رمزگشایی میکند و مستقیماً با کلید خصوصی خام حساب، آنها را امضا میکند. آنچه که این بازرسی نشان داد این بود که هیچ یک از این سه مسیر هیچ چیزی دربارهٔ تراکنشهای ارائه شده توسط سرور را تأیید نکرد: نه اینکه فرستنده همان حساب کاربری خود کاربر باشد، نه گیرنده یا مبلغ بر اساس نرخ ارائه شده، و حتی شناسهٔ ژنزی شبکه نیز تأیید نشد — و این تراکنشها هرگز پیش از امضا به کاربر ارائه نمیشوند. کاربر روی یک دکمهٔ «اجرا» کلیک میکند و یک دستهٔ نامشخص از تراکنشهای از راه دور با کلید خود امضا میشود.
این موارد خاص نحوه کارکرد تراکنشهای الگوراند هستند. یک تراکنش امضا شده میتواند فیلدهای فراتر از «پرداخت X به Y» داشته باشد: فیلد «closeRemainderTo» حساب را بست و تمام موجودی ALGO آن را — یا در مورد انتقال دارایی، تمام توکنهای آن را — به هر آدرسی که فیلد نام میبرد، منتقل میکند و فیلد «rekeyTo» اختیار امضای حساب را به کلید دیگری منتقل میکند. در الگوراند، rekeying به یک حساب اجازه میدهد اختیار امضای خود را به یک کلید دیگر واگذار کند؛ سپس دفترکل ثبت میکند که در واقع کدام کلید امضا میکند. یک API گردآورنده آسیبپذیر یا مخرب میتواند دقیقاً چنین تراکنشی را بازگرداند و کیف پول آن را بدون هیچ هشداری امضا و ارسال کند — و از این فرآیند هشدارهای «closeRemainderTo» و «rekey» که در یک رفع نقص پیشین (AW-2026-001) به تمام سطوح امضای دیگر در اپلیکیشن اضافه شده بود، دور بزند.
یافته دوم: بررسی دامنه که به مهاجم اعتماد دارد
یافتهٔ High، AW-2026-044، در ویژگی جدید امضای دادههای دلخواه ARC-60 قرار دارد. ARC-60، WalletConnect — پروتکل کد QR که به یک اپلیکیشن وب اجازه میدهد بدون نیاز به نگهداری کلیدها، به یک کیف پول متصل شود و درخواست امضا کند — را گسترش میدهد، به طوری که یک DApp متصل میتواند درخواست امضای تأییدیه بر دادههای دلخواه کند، که مبنای جریانهای ورود بدون رمز عبور است. کیف پول پیش از امضا، دامنه درخواستدهنده، هدف و پیشنمایشی کامل از دادهها را نمایش میدهد. بررسی نشان داد که بررسی پیوند به دامنه خود-مستند بود: هم دامنه مدعی و هم authenticatorData که قرار است آن را تأیید کند، درون همان درخواست تحت کنترل DApp قرار دارند و تنها در برابر یکدیگر بررسی میشوند، نه در برابر همتای واقعی جلسه WalletConnect. بنابراین یک DApp مخرب میتواند یک امضای معتبر را به هر دامنهای که بخواهد، متصل کند — دقیقاً همان ورود جعلی که خودِ توضیحات منبع این ویژگی میگوید از آن جلوگیری میکند.
آنچه در کد فعلی وجود دارد — و آنچه هنوز تایید نشده است
در همان روزی که گزارش منتشر شد، یک رفععمر منتشر شد (commit 0b3947e، 'feat: enhance ARC-60 security and [DEX](/glossary/decentralized-exchange "یک بازار همتا به همتا که بر روی الگوراند ساخته شده و کاربران در آن بدون نیاز به واسط متمرکز (مانند) تایید معامله، میتوانند به طور مستقیم از کیف پولهای خود با یکدیگر معامله کنند'). یک ابزار کمکی جدید به نام assertSwapTransactionSafe اکنون بر روی هر معامله قبل از آنکه هر یک از سه گردآورنده معامله را امضا کند، اجرا میشود و اگر فرستنده با حساب متصل مطابقت نداشته باشد یا اگر هر معامله فیلد rekey یا close-out داشته باشد، کل دسته را رد میکند. در سمت ARC-60، یک بررسی جدید به نام domainMatchesSessionOrigin دامنه اعلام شده را با نام میز اصلی همتای واقعی جلسه WalletConnect مقایسه میکند، نه با بایتبار درخواست.
رفع مشکل در master و در والت پیادهسازی شده انجام شده است: پیامهای رد گارد در بستهٔ جاوااسکریپت فشردهٔ ارائه شده توسط a-wallet.net وجود دارند که تأیید میکنند کد اعتبارسنجی در همان چیزی که کاربران اجرا میکنند قرار دارد، و هر دو دامنه نسخهٔ یکسانی را ارائه میکنند (36221a6، ۱۳ اوت). آنچه هنوز رخ نداده است، تأیید رفع مشکل توسط برنامهای است که باگ را یافته است. آخرین ورود به رجیستری ریسک، خود بازرسی ۴ اوت است که یک کامیت پیشین را بررسی کرده بود؛ کامیت اعتبارسنجی به طور جداگانه در همان روز ارائه شد و هیچ گزارش بازرسی بعدی در مخزن وجود ندارد که تأیید کند AW-2026-043 و AW-2026-044 به عنوان بسته شده دوباره بررسی شوند.
ارزش آن وضعیت تایید نشده را باید در برابر آنچه که این برنامه در واقع است، سنجید. این بازرسیها توسط مدلهای هوش مصنوعی بر اساس شرح وظایف خودِ پروژه انجام میشود و در هیچیک از شش گزارش، نام هیچ شرکت امنیتی مستقل نامی برده نشده است و این مخزن هیچ نسخهٔ برچسبگذاری شدهای را منتشر نمیکند — نسخهها مستقیماً از خط لوله CI/CD عرضه میشوند — بنابراین هیچ مرحلهٔ صدور گواهی برای تکیه بر آن وجود ندارد. خود گزارش ۴ آگوست صریحاً بیان میکند که یافتههای اصلی آن در منبع استاتیک ردیابی شده است، نه در برابر یک استقرار در حال اجرا. این برنامه به عنوان یک آزمایش شفافیت واقعاً بیسابقهاست — بیشتر کیفها خلاصهٔ بازرسیها را منتشر میکنند، نه فایلهای خام «آنچه ما این ماه پیدا کردهایم». به عنوان یک تضمین امنیتی مستقل، این برنامه هنوز جدیدترین رفععیوب خود را پوشش نمیدهد.
یک پروژه اجتماعی که خود را تأمین مالی میکند
بر اساس پرسشهای متداول (FAQ) آن، بیاتک مستقل از شرکت الگوراند و بنیاد الگوراند است و هیچ بودجه مستمری از هیچ یک از این دو دریافت نمیکند، اما کمکهای مالی یکباره جامعه (xGov) را دریافت کرده است. مخزن xGov، ۱۰۰۰۰ توکن ALGO را برای خود AWallet و ۶۰۰۰۰ توکن ALGO را برای برنامه زمانبندی پرداخت آن به عنوان تأیید شده ثبت کرده است؛ دو پیشنهاد سال ۲۰۲۴ — یک درخواست پسنگرانی به میزان ۳۶۹۱۲ توکن ALGO و یک پروژه هویت درونزنجیرهای به میزان ۱۴۸۹۹۹ توکن ALGO — به عنوان نهایی ثبت شدهاند. درخلاصه پیشنهاد پسنگرانی، چارچوببندی پروژه این است که AWallet «یکی از پیشرفتهترین کیفهای پول در الگوراند» است.
پایگاه مالی این ادعا کوچک است. آدرس اهدایی منتشرشده در زنجیره، ۲۵.۶ ALGO و حدود ۱.۰۳ USDT دارد؛ دیسکورد این پروژه ۴۱۱ عضو دارد که در زمان بررسی، ۷ نفر از آنها آنلاین بودند؛ قابلتوجهترین پست اخیر اجتماعی درباره این والت، در بلوسکی، یک لایک دارد. خود توسعه نیز غیرفعال نیست: این رپو در ۱۵ آگوست آپدیت شده، ۶۷۲ ستاره دارد و دو مشارکتکننده اصلی آن به ترتیب ۵۴۶ و ۶۲ کامیت ثبت کردهاند.
یک نکته کلیدی که خواننده باید در نظر داشته باشد: صفحه تعویض والت در کنار دو روتر شخص ثالث، از طریق گردآورنده (آگرگیتور) خود Biatec نیز عبور میکند و Biatec همچنین زیرساخت گره و ایندکسر Algorand را اجرا میکند که والت میتواند به آن متصل شود. هیچکدام از اینها به خودی خود مشکل نیست — طراحی غیرحافظهسنجی بدان معناست که والت تنها آنچه را که کاربر تأیید میکند، امضا میکند — اما گزارش بازرسی ۴ آگوست نشان میدهد که دقیقاً چرا لایه گردآورنده مرز اعتمادی است که اهمیت دارد و روتر اختصاصی تیم مستقیماً بر آن قرار دارد.
همان شرکت اسلواکی مجموعهای وسیعتر از ابزارها را حول الگوراند ساخته است: یک درگاه پرداخت رایگان و منبعباز که به بازرگانان امکان میدهد تا ALGO، USDC یا USDT را مستقیماً به حساب خود و بدون واسطه مالی و بدون نیاز به حساب کیف پول، دریافت کنند؛ یک سیستم رأیگیری منبعباز؛ و چارچوب Stabilitas national-[stablecoin](/glossary/stablecoin "یک ارز دیجیتال که ارزش آن برای حفظ ثبات طراحی شده است، معمولاً با نرخ ۱:۱ به یک ارز سنتی مانند دلار آمریکا (به عنوان مثال USDC) یا H) متصل است. این برنامهٔ حسابرسی کیف پول، با تمام محدودیتهایش، بخشی از آن مجموعه است که تیم با آن کار خود را به قابلبازرسیترین شکل نشان میدهد.
منبع
- Biatec Wallet (a-wallet.net نسخهٔ یکسانی از آن را ارائه میدهد)
- repository GitHub scholtz/wallet — README، دستورالعملهای بازرسی، ثبتنام ریسک، گزارشهای بازرسی، validate.ts، arc60.ts
- سوالات متداول کیف پول
- changelog کیف پول
- صفحه اهدای کمک
- پیشنهادات xGov 9، 90، 199، 200
- Biatec Wallet - کیف پول جامعهٔ Algorand
- Biatec Wallet - کیف پول جامعهٔ Algorand
- Biatec
- raw.githubusercontent.com
- raw.githubusercontent.com
- raw.githubusercontent.com
- History for src/scripts/aggregators/validate.ts - scholtz/wallet · GitHub
- Biatec Wallet - کیف پول جامعهٔ Algorand
- بهترین کیف پولهای Algorand در سال ۲۰۲۶: مکانهای امن برای استیکینگ ALGO - Coin Bureau
- Biatec Wallet - کیف پول جامعهٔ Algorand
Source: https://www.a-wallet.net/