خطای Checksum چیست؟ راهنمای تشخیص رمزنگاری
خطای مجموع بررسی به این معنی است که دادهها در یک آزمون ریاضی شکست خوردهاند. در ارزهای دیجیتال، این آزمون بسیار ضعیفتر از آن چیزی است که اکثر کاربران تصور میکنند. EIP-55 اتریوم تقریباً یک غلط املایی را در هر چهار هزار مورد تشخیص میدهد. Base58Check بیت کوین حدود هزار برابر قویتر است. Bech32 از این هم قویتر است. با این حال، هیچ یک از این مجموعهای بررسی از کیف پول در برابر حملهای که در سال ۲۰۲۵، ۷۱۳ میلیون دلار از کیف پولهای شخصی را از بین برد، محافظت نمیکنند، زیرا آدرس مخربی که در کلیپ بورد یا در تاریخچه تراکنشها قرار دارد، خود یک رشته معتبر و عبور دهنده مجموع بررسی است. این همان خطای مجموع بررسی است، چرا کیف پولهای ارز دیجیتال آن را نشان میدهند و چرا یک عبور بدون خطا، دلیلی بر ایمنی نیست.
پاسخ کوتاه به خطاهای چک سام در ارزهای دیجیتال
خطای مجموع کنترلی به کاربر میگوید که یک آدرس، یک فایل یا یک عبارت بازیابی با تست یکپارچگی داخلی آن مطابقت ندارد. کیف پول، صرافی یا نصبکننده به دلیل اشتباه تایپ شدن یک بیت، تایپ اشتباه یک کاراکتر یا دستکاری دادهها از عمل کردن خودداری میکند. در حوزه ارزهای دیجیتال، این خطا غلطهای املایی و خرابی تصادفی را تشخیص میدهد. این خطا آدرس کاملاً تایپ شدهای را که مهاجم کنترل میکند، تشخیص نمیدهد. بزرگترین خسارت ثبت شده کیف پول در سال ۲۰۲۵، ۵۰ میلیون دلار USDT در ماه دسامبر، از یک قربانی ناشی شد که آدرسی را با یک مجموع کنترلی کاملاً معتبر کپی میکرد و آدرس به سادگی متعلق به یک کلاهبردار بود.
چک سام (checksum) واقعاً چیست (و چیست نیست)
یک چکسام را به عنوان یک رسید کوچک برای یک بسته بسیار بزرگتر در نظر بگیرید، یک بلوک داده که با یک محاسبه شناخته شده به چند بایت هش شده است. فرستنده چکسام اصلی را ضمیمه میکند. گیرنده همان محاسبه را اجرا میکند، یک چکسام جدید دریافت میکند و مقایسه میکند. تطابق به معنای حفظ یکپارچگی دادهها است. عدم تطابق به معنای خرابی دادهها در جایی است: یک بیت وارونه در RAM، قطع زودهنگام دانلود، یک کاراکتر اشتباه تایپی. عدم تطابق همان چیزی است که کیف پولها و نصبکنندهها به عنوان خطای چکسام علامتگذاری میکنند. مقادیر چکسام محاسبه شده با مقدار مورد انتظار متصل به دادههای اصلی (مقدار ذخیره شدهای که فرستنده منتشر کرده بود) مطابقت نداشتند. هیچ خطای دادهای عبور نکرد، زیرا تشخیص خطای اولیه و بررسیهای یکپارچگی انجام شد.
از نظر مکانیکی، چکسامهای کلاسیک، حسابی هستند، نه رمزنگاری. سادهترین نوع، دادهها را به کلمات خرد میکند و جمع مکمل یک را اجرا میکند (ترفند "مکمل ۱" که در چکسام TCP/IP اینترنتی معتبر از سال ۱۹۸۸ استفاده میشد). کمی فانتزیتر، برابری طولی، الگوریتم فلچر و CRCها (بررسیهای افزونگی چرخهای) هستند که همگی خویشاوندان نزدیک یکدیگرند. بررسی افزونگی چرخهای سریع و برای خطاهای انتقال خوب است. برای یکپارچگی فایلهای مدرن، انتخاب غالب Adler-32 (سریع، بدون رمزنگاری) یا MD5 یا SHA (کندتر، بسیار قویتر) است. ابزارهای نرمافزاری مانند `sha256sum`، `md5sum` و HashCheck روشی هستند که اکثر کاربران در واقع یک تأیید را اجرا میکنند.
مرز اینجاست. یک چکسام میتواند ثابت کند که دادهها به طور تصادفی در سطح بایت خراب یا دستکاری نشدهاند. نه بیشتر. نمیتواند ثابت کند چه کسی دادهها را ایجاد کرده است. SHA-256، یک هش رمزنگاری، بسیار قویتر از CRC است. هنوز هم نویسنده بودن را اثبات نمیکند؛ به همین دلیل، ناشر هش را با یک کلید خصوصی امضا میکند. کاربران کریپتو همیشه این دو را با هم اشتباه میگیرند. «آدرس از اعتبارسنجی چکسام عبور کرده است» با «آدرس متعلق به شخص مناسب است» یکسان نیست. هر کسی میتواند یک آدرس معتبر اتریوم یا بیتکوین ایجاد کند. فقط دارنده کلید خصوصی وجوه را کنترل میکند. تأیید چکسام تأیید میکند که آدرس به درستی شکل گرفته است. به کیف پول چه کسی اشاره دارد؟ این یک سوال متفاوت با پاسخی متفاوت است.

نحوه عملکرد الگوریتمهای کنترلی رمزنگاری: EIP-55، Base58Check، Bech32
سه طرح واقعی بر ارزهای دیجیتال خرد تسلط دارند و هر کدام با اولویت متفاوتی طراحی شدهاند.
EIP-55 یک چکسام ترکیبی اتریوم است. ویتالیک بوترین و الکس ون د سانده آن را در 14 ژانویه 2016 پیشنهاد دادند. این روش با کوچک کردن آدرس، هش کردن رشته کوچک با Keccak-256 و سپس دوباره بزرگ کردن حروف هگز (A تا F) بر اساس بیتهای آن هش کار میکند. فقط 15 حرف هگز در یک آدرس معمولی میتوانند حروف کوچک خود را برعکس کنند و تقریباً 15 بیت چک مؤثر به این طرح میدهند. EIP-1191 که در مارس 2018 پیشنهاد شد، EIP-55 را با شناسه زنجیره گسترش میدهد تا یک چکسام آدرس در اتریوم و در یک زنجیره فورک مانند Rootstock با هم برخورد نکنند.
Base58Check طرح قدیمی بیتکوین است. این طرح یک جمع کنترلی ۴ بایتی را به انتهای آدرس رمزگذاری شده اضافه میکند که به عنوان ۴ بایت اول SHA-256 دوگانه از بایت نسخه به علاوهی بار داده محاسبه میشود. پیشوند "۱" در آدرس P2PKH مربوط به بایت نسخه 0x00 است؛ پیشوند "۳" در آدرس P2SH مربوط به 0x05 است. خود الفبای Base58، 0، O، I و l را که از نظر بصری گیجکننده هستند، حذف میکند. پیادهسازی منطق جمع کنترلی برای Base58Check یک فراخوانی SHA-256 واحد و به دنبال آن یک مقایسه ۴ بایتی است.
Bech32 (BIP-173) طرح آدرس SegWit از Pieter Wuille و Greg Maxwell است که در سال ۲۰۱۷ منتشر شد. کد BCH شش کاراکتری آن، تشخیص هر خطایی که تا چهار کاراکتر را تحت تأثیر قرار میدهد را تضمین میکند و نرخ خطای کشف نشده را برای خرابیهای طولانیتر، زیر یک در میلیارد نگه میدارد. یک یافته ظریف در سال ۲۰۲۰ (که درج یا حذف یک 'q' قبل از یک 'p' نهایی میتواند مجموع مقابلهای را حفظ کند) انگیزه BIP-350 Bech32m را ایجاد کرد که Taproot (نسخه شاهد ۱) اکنون از آن استفاده میکند.
| طرح | سال | مثال آدرس | اندازه را بررسی کنید | تشخیص غلط املایی معمولی |
|---|---|---|---|---|
| EIP-55 / EIP-1191 | ۲۰۱۶ / ۲۰۱۸ | `0xAbCd...EfGh` | حدود ۱۵ بیت | ~۹۹.۹۷٪ (۱ از ۴۰۰۰ خطا) |
| بررسی پایه ۵۸ (P2PKH) | ۲۰۰۹ | «۱A۱zP۱...» | ۳۲ بیت | ~۹۹.۹۹۹۹۹۹۹۸٪ |
| بررسی پایه ۵۸ (P2SH) | ۲۰۱۲ | «3J98t1...» | ۳۲ بیت | ~۹۹.۹۹۹۹۹۹۹۸٪ |
| Bech32 (سگویت نسخه ۰) | ۲۰۱۷ | «bc1q...» | حدود ۳۰ بیت | ≥۹۹.۹۹۹۹۹۹۹۹٪ در خطاهای ۴ کاراکتری |
| Bech32m (تاپ روت) | ۲۰۲۰ | «bc1p...» | حدود ۳۰ بیت | همان، درج qp را برطرف میکند |
جدول مهمترین جفت اعداد مقاله است. آنها را به عنوان بودجه طراحی در نظر بگیرید، نه تضمینهای امنیتی.
چرا EIP-55 فقط یک غلط املایی را در هر ۴۰۰۰ غلط املایی تشخیص میدهد؟
مشخصات EIP-55 نرخ شکست را به صراحت بیان میکند: احتمال اینکه یک غلط املایی تصادفی در یک آدرس اتریوم از مجموع بررسی عبور کند، 0.0247 درصد یا حدود یک در 4049 است. این یک اشکال نیست. این چیزی است که 15 بیت بررسی موثر برای شما به ارمغان میآورد. این طرح یک بهروزرسانی در سال 2016 بود که به گونهای طراحی شده بود که با فرمت آدرس هگز 40 کاراکتری موجود سازگار باشد. هزینه سازگاری، قدرت تشخیص.
برای جریانهای عملی کیف پول، این معمولاً خوب است. کاربری که یک بار آدرس را تایپ یا پیست میکند، در صورت اشتباه، به احتمال زیاد لو میرود. کاربری که ده بار پشت سر هم همان آدرس مسموم را پیست میکند، هر بار از چکسام عبور میکند، زیرا آدرس معتبر است. شکاف هزار برابری با Base58Check بیت کوین و گام بعدی به Bech32، دلیلی است که تجربه کاربری جدی کیف پول، تأیید آدرس اتریوم را به عنوان مسئولیت کاربر به جای پروتکل در نظر میگیرد.
خطاهای چک سام خارج از رمزنگاری: WinRAR، BIOS، سیستم عامل، هارد دیسک
بیشتر افرادی که عبارت «خطای مجموع کنترلی» را در گوگل تایپ میکنند، کاربر ارزهای دیجیتال نیستند. آنها به WinRAR، یا صفحه بوت گیر کرده کامپیوتر یا یک NAS آشفته خیره شدهاند. واژگان یکسان. اما ریسکهای کاملاً متفاوت.
WinRAR نمونهی کلاسیک آن است. شما یک فایل .rar را دانلود میکنید، آن را استخراج میکنید، یک پنجرهی عدم تطابق CRC دریافت میکنید. فایل آرشیو خراب است. معمولاً علت آن چیزهای پیش پا افتادهای است: دانلود مختل شده، انتقال وایفای ناقص، وجود سکتور خراب روی دیسک، و گاهی اوقات بدافزاری که در حین انتقال به فایل آسیب رسانده است. دوباره از منبع دانلود کنید. CHKDSK را اجرا کنید. اگر کاملاً مجبور به نجات فایل هستید، گزینهی «keep broken files» در WinRAR یک کپی جزئی از محتویات را استخراج میکند.
خطای بررسی BIOS یا CMOS در هنگام بوت شدن کامپیوتر تقریباً همیشه به دلیل خالی شدن باتری سکهای CR2032 روی مادربرد است. گاهی اوقات یک بهروزرسانی ناموفق میانافزار، NVRAM را خراب میکند. گاهی اوقات کاربر یک قطعه رم را بیرون میکشد و اثر انگشت سختافزاری ذخیره شده دیگر مطابقت ندارد. باتری را تعویض کنید. تنظیمات پیشفرض را بارگذاری کنید. دستگاه بوت میشود.
ZFS و Btrfs وقتی یک هارد دیسک بلوکی را برمیگرداند که با هش ذخیره شده مطابقت ندارد، خطاهای checksum ایجاد میکنند. این خطاها به معنای واقعی کلمه هدف طراحی هستند: bitrot خاموش بالاخره ظاهر میشود.
موردی که باید یک کاربر ارزهای دیجیتال را عصبی کند، خطای بررسی مجموع فریمور در یک کیف پول سختافزاری است. بوتلودر Trezor امضای فریمور را در هر بوت دوباره تأیید میکند. عنصر امن Ledger نیز همین کار را انجام میدهد. «امضای نامعتبر» یا «خطای ناشناخته (0x6984)» Ledger در زمان نصب، دستگاهی است که با صدای بلند به شما میگوید فریموری که میبیند با آنچه کلید ریشه آن انتظار دارد مطابقت ندارد. متوقف شوید. از برق بکشید. دوباره از URL فروشندهای که میتوانید از حفظ بخوانید، دانلود کنید. هر کسی که از این هشدار عبور کند، از درِ ورودی یک حمله زنجیره تأمین عبور کرده است.
چه زمانی خطای checksum به معنای دستکاری است و چه زمانی اینطور نیست؟
بینش جامع در این مقاله. چکسامها به خوبی خرابیهای تصادفی را تشخیص میدهند. آنها هیچ کاری علیه مهاجمی که عمداً یک آدرس معتبر انتخاب کرده است، انجام نمیدهند.
گزارش جرایم کریپتویی Chainalysis، کل سرقتهای کریپتو در سال ۲۰۲۵ را ۳.۴ میلیارد دلار اعلام کرده است که ۱.۵ میلیارد دلار آن مربوط به هک Bybit است. کیف پولهای شخصی ۷۱۳ میلیون دلار را در حدود ۸۰،۰۰۰ قربانی در حدود ۱۵۸،۰۰۰ حادثه از دست دادهاند. تقریباً هیچ یک از این خسارات ناشی از چکسامهای نامعتبر ناشی از تایپ نبوده است، زیرا صرافیها و کیف پولها این چکسامها را در فیلد ورودی برمیگردانند. این سرقتها از دو حملهای رخ داده است که چکسامهای معتبر نمیتوانند جلوی آنها را بگیرند.
اولین مورد، مسمومیت آدرس است. مهاجم یک تراکنش داست کوچک را از یک آدرس تازه تولید شده که برای به اشتراک گذاشتن چند کاراکتر اول و آخر از طرف مقابل قربانی که مرتباً با آن سر و کار دارد، مهندسی شده است، ارسال میکند. دفعه بعد که قربانی آدرسی را از تاریخچه تراکنشها کپی میکند، آدرس جعلی در بالای لیست قرار دارد. آدرس دارای یک جمع کنترلی کاملاً معتبر است. کیف پول سبز نشان داده میشود. وجوه به مهاجم میرسد. یک آمار Chainalysis که توسط کارنگی ملون ذکر شده است، تعداد تلاشهای مسمومیت آدرس در سال ۲۰۲۵ را ۲۷۰ میلیون مورد اعلام میکند که ۱۷ میلیون قربانی بالقوه را هدف قرار داده است. حادثه ۲۰ دسامبر ۲۰۲۵ که در آن یک معاملهگر ۵۰ میلیون دلار USDT از دست داد، تقریباً ۲۶ دقیقه پس از ارسال یک تراکنش آزمایشی کوچک توسط قربانی رخ داد. این آزمایش آنها را نجات نداد، زیرا آدرس مسموم شده قبلاً در تاریخچه ثبت شده بود.
مورد دوم، ربایندگان کلیپبورد هستند. بدافزارهایی مانند کمپین GitVenom که توسط کسپرسکی مستند شده است، بیسروصدا هر آدرس کریپتویی را که در کلیپبورد کپی شده باشد، با آدرسی که توسط مهاجم کنترل میشود، تعویض میکند. ضررهای تخمینی فقط از GitVenom در اواخر سال ۲۰۲۴ در بین قربانیان در برزیل، ترکیه و روسیه تقریباً به ۴۸۵۰۰۰ دلار رسید. باز هم، آدرس جایگزین شده دارای یک چکسام معتبر است. کیف پول چیزی برای علامتگذاری ندارد. دادههای حیاتی، مقصد یک انتقال بزرگ، از لایه یکپارچگی عبور میکنند زیرا هرگز تغییر نکرده یا خراب نشدهاند. با چیزی به همان اندازه معتبر جایگزین شدهاند.
| حمله ۲۰۲۵ | مکانیسم | آیا چکسام آن را متوقف کرد؟ |
|---|---|---|
| مسمومیت آدرس (50 میلیون دلار USDT، 20 دسامبر 2025) | آدرس جعلی مشابه در تاریخچه تراکنشها | خیر — آدرس جعلی دارای یک مجموع کنترلی معتبر EIP-55 است. |
| ربایندگان کلیپبورد (GitVenom، حدود ۴۸۵ هزار دلار) | بدافزار جایگزین آدرس کپی شده میشود | خیر - آدرس جایگزین معتبر است |
| کلاهبرداریهای ربات MEV با تم ChatGPT (بیش از 30 اتریوم، بیش از 100 قربانی) | قرارداد پیشنهادی هوش مصنوعی، کیف پول را خالی میکند | خیر - چکسام چیزی برای تأیید قصد قرارداد ندارد. |
| کلاهبرداریهای گسترده با کمک هوش مصنوعی | ۴.۵ برابر سودآورتر از طرحهای سنتی | خیر - به مهندسی اجتماعی متکی است، نه به غلطهای املایی |
سبز بودن مجموع بررسی به این معنی است که آدرس به درستی شکل گرفته است. این به این معنی نیست که آدرس متعلق به شماست. این تمایز مهمترین چیزی است که یک کاربر ارزهای دیجیتال میتواند از این مقاله برداشت کند.
عبارت اولیه BIP-39: چرا کلمات معتبر هنوز در مجموع مقابلهای رد میشوند؟
عبارات بازیابی BIP-39 همچنین دارای یک مجموع مقابلهای هستند و این موضوع در طول بازیابی افراد را شگفتزده میکند. این طرح چند بیت آخر SHA-256 را روی آنتروپی کیف پول به کلمه آخر عبارت رمزگذاری میکند. یک عبارت بازیابی ۱۲ کلمهای فقط ۴ بیت مجموع مقابلهای دارد. یک عبارت بازیابی ۲۴ کلمهای ۸ بیت دارد. برای ۱۲ کلمه، این بدان معناست که فقط حدود یک انتخاب تصادفی کلمه آخر از هر شانزده کلمه، اعتبارسنجی را با موفقیت پشت سر میگذارد. عبارت «من مطمئنم که عبارت بازیابی من درست است اما کیف پول آن را رد میکند» به طور قطع یک اشتباه تایپی در عبارت قبلی یا کلمه اشتباه از لیست ۲۰۴۸ کلمهای BIP-39 است.
بخش سختافزاری سختگیرانهتر است. ترزور و لجر امضاهای میانافزار را در هر بوت از طریق کد عنصر امن، نه در میزبان، دوباره تأیید میکنند. عدم تطابق امضا به عنوان دستکاری در نظر گرفته میشود و میانافزار از اجرا خودداری میکند. این رفتار صحیح است. هر کسی که خطای مجموع بررسی یا امضای میانافزار را از یک کیف پول سختافزاری مشاهده کند، باید آن را به عنوان یک هشدار در نظر بگیرد، نه یک نقص فنی.

نحوه تأیید و رفع خطای checksum: بهترین شیوهها
چک لیست کوتاه است. در اکثر کیف پولها و صرافیها یکسان است.
آدرس اتریوم. از کانال تأیید شده طرف مقابل (پروفایل منتشر شده آنها، نه دایرکت تلگرام) کپی کنید. پیست کنید. بگذارید کیف پول اعتبارسنجی شود. ۱ دلار را به عنوان یک تراکنش آزمایشی ارسال کنید. منتظر تأیید باشید. سپس کل مبلغ را ارسال کنید. کراکن به طور پیشفرض هر آدرس اتریوم ذخیره شده را به شکل EIP-55 ذخیره میکند. بایننس و کوینبیس قبل از اینکه هرگونه ارسالی به زنجیره برسد، ورودیهای نامعتبر با مجموع کنترلی را در مرحله ارسال برمیگردانند. متامسک به طور پیشفرض روی EIP-55 است و در مورد آدرسهای ویرایش شده دستی هشدار نشان میدهد. از نظر تاریخی، تمام حروف کوچک را نیز میپذیرفت، که چندین مشکل گیتهاب باز سالها از آن شکایت داشتند.
آدرس بیتکوین. وقتی طرف مقابل از فرمتهای قدیمی «Bech32» (`bc1...`) پشتیبانی میکند، آن را به فرمتهای قدیمی «1...` و «3...`» ترجیح دهید. قدرت تشخیص خطا به طور معناداری بالاتر است و اشتباه خواندن فرمت آدرس دشوارتر است.
دانلود فایل. فایل باینری کیف پول، تصویر فریمور کیف پول سختافزاری، ISO لینوکس. هش SHA-256 را به صورت محلی محاسبه کنید. با مقدار امضا شده ناشر مقایسه کنید، نه با نسخه چاپ شده در کنار لینک دانلود. یک مرد میانی که صفحه دانلود را کنترل میکند میتواند هر دو را جابجا کند. از هر فایل تأیید شدهای که واقعاً به آن اعتماد دارید، یک نسخه پشتیبان تهیه کنید. تشخیص خطاها بعداً بسیار آسانتر است وقتی یک نسخه سالم و شناخته شده روی یک فلش مموری یا یک نسخه چاپی کاغذی قرار دارد.
خطای چک سام یا امضای فریمور کیف پول سختافزاری. دور نزنید. دوباره از آدرس اینترنتی (URL) مستند فروشنده دانلود کنید. یک کابل دیگر را امتحان کنید. یک پورت USB دیگر را امتحان کنید. Ledger Live یا Trezor Suite را مجدداً راهاندازی کنید. اگر خطا ادامه داشت، به پشتیبانی فروشنده ایمیل بزنید. جستجوی عبارت "رفع مشکل Ledger 0x6984" در انجمنهای شخص ثالث، جایی است که مهاجمان منتظر میمانند.
یک جمله را به خاطر داشته باشید. یک چکسام موفق ثابت میکند که دادهها به طور تصادفی خراب نشدهاند. این ثابت نمیکند که دادهها همان چیزی هستند که شما میخواستید برای آن ارسال کنید.