🔐 دانشکدهٔ ۴ · انتقال امن و تعامل با قراردادها
شبکهها، آدرسها و انتقال بیخطا
Networks, addresses & error-free transfers
پیشنیازها: عبارت بازیابی، کلید خصوصی و امضای تراکنش
📚 آموزش در سه سطح
از سطح ساده شروع کنید؛ اگر روشن بود، سطح بعد را بخوانید. سطح مناسب شما ذخیره میشود.
🌱 توضیح ساده
یک توکن مثل USDT فقط روی یک بلاکچین وجود ندارد. تتر نسخههای جداگانهای روی شبکههای مختلف منتشر کرده است، از جمله TRC-20 روی ترون، ERC-20 روی اتریوم و BEP-20 روی BNB Smart Chain. این نسخهها نام یکسان دارند اما مثل سه جادهٔ جدا هستند: نامهای که با پست یک کشور فرستاده میشود، به صندوق پستی کشور دیگر نمیرسد. فرستنده و گیرنده باید دقیقاً روی یک شبکه توافق کنند.
آدرس هم مثل شمارهٔ حساب است، اما بسیار طولانی و بدون نام صاحب. یک حرف اشتباه یعنی پول به جای دیگری میرود و تراکنش بلاکچین برگشتناپذیر است؛ بانکی وجود ندارد که آن را لغو کند. برخی صرافیها برای ارزهایی مثل XRP، XLM یا TON علاوه بر آدرس یک «ممو» یا «تگ» هم میخواهند؛ مثل شمارهٔ واحد در یک ساختمان مشترک.
قاعدهٔ طلایی این درس ساده است: اولین بار که به یک آدرس جدید مبلغ قابل توجهی میفرستید، ابتدا یک مقدار کوچک آزمایشی بفرستید، رسیدنش را تأیید کنید و بعد مبلغ اصلی را بفرستید. کارمزد یک تراکنش اضافه، بیمهٔ ارزانی در برابر از دست دادن کل مبلغ است.
📘 توضیح متوسط
قالب آدرسها نشانهٔ خوبی است اما کافی نیست. آدرسهای ترون با حرف T شروع میشوند. آدرسهای اتریوم و BNB Smart Chain هر دو با 0x و ۴۰ کاراکتر هگز شروع میشوند و قالبشان کاملاً یکسان است؛ یعنی کیف پول یا صرافی ممکن است ارسال ERC-20 به آدرسی را که فقط برای BEP-20 اعلام شده، بدون خطا بپذیرد. بیتکوین قالبهای متفاوتی دارد: 1 (قدیمی)، 3 (P2SH)، bc1q (SegWit بومی) و bc1p (Taproot).
کارمزد هر شبکه با سکهٔ بومی همان شبکه پرداخت میشود. برای ارسال USDT روی ترون به TRX (یا منابع Energy و Bandwidth)، روی اتریوم به ETH و روی BNB Smart Chain به BNB نیاز دارید. یکی از رایجترین گیر کردنها این است که کاربر USDT دارد اما سکهٔ بومی برای کارمزد ندارد و نمیتواند هیچ تراکنشی بفرستد. کارمزد هر شبکه در زمانهای مختلف تغییر میکند و باید آن را لحظهٔ ارسال در کیف پول یا مرورگر بلاکچین بررسی کرد.
ممو یا تگ برای این است که صرافی برای هزاران کاربر از یک آدرس مشترک استفاده میکند و فقط با همین شناسه میفهمد واریز مال کیست. اگر ممو را فراموش کنید، دارایی به آدرس صرافی میرسد اما به حساب شما ثبت نمیشود؛ بازگرداندن آن به پشتیبانی صرافی، ارائهٔ شناسهٔ تراکنش و گاهی کارمزد بازیابی بستگی دارد و تضمینی ندارد. هنگام انتقال بین دو کیف شخصی معمولاً ممو لازم نیست.
🔬 توضیح تخصصی
مسمومسازی آدرس (Address Poisoning) از عادت کپی کردن آدرس از تاریخچهٔ تراکنشها سوءاستفاده میکند. مهاجم با تولید انبوه کلید، آدرسی میسازد که چند کاراکتر اول و آخرش با آدرسی که شما معمولاً به آن پول میفرستید یکی است. سپس یک انتقال با مقدار صفر، مقدار بسیار کم یا یک توکن جعلی همنام از این آدرس به کیف شما میفرستد تا در تاریخچهتان کنار تراکنشهای واقعی بنشیند. بسیاری از کیفها آدرس را به شکل کوتاهشده مثل 0xA1b2…9fE3 نمایش میدهند و کاربر بیدقت، آدرس جعلی را کپی میکند.
نکتهٔ ظریف: خودِ تراکنش آزمایشی میتواند نشانهای برای مهاجم باشد. رباتها زنجیره را پایش میکنند و چند ثانیه پس از ارسال آزمایشی شما، یک انتقال مسموم از آدرس مشابه به کیفتان میفرستند تا وقتی برای ارسال مبلغ اصلی دوباره از تاریخچه کپی میکنید، آدرس جعلی را بردارید. پس تست با مبلغ کم کافی نیست؛ برای ارسال اصلی هم آدرس را از منبع اصلی (دفترچهٔ آدرس ذخیرهشده یا صفحهٔ واریز گیرنده) بردارید و کل آدرس را، نه فقط ابتدا و انتها، مقایسه کنید.
لایههای دفاعی مکمل: لیست سفید برداشت (Withdrawal Whitelist) در صرافیها با تأخیر زمانی برای آدرس جدید؛ دفترچهٔ آدرس در کیف پول؛ آدرسهای دارای چکسام مثل EIP-55 در اتریوم (حروف بزرگ و کوچک) و bech32 در بیتکوین که خطای تایپی را تشخیص میدهند اما در برابر آدرس شبیهسازیشدهای که خودش معتبر است هیچ کمکی نمیکنند؛ و بررسی آدرس روی صفحهٔ کیف سختافزاری. اگر ERC-20 را به آدرس EVM خودتان روی BNB Smart Chain فرستادهاید، چون کلید همان کلید است، با افزودن شبکهٔ درست به کیف پول دارایی را میبینید؛ اما اگر مقصد آدرس صرافی بوده، بازیابی کاملاً به تصمیم صرافی بستگی دارد.
🌍 مثال واقعی: از دست رفتن ۱٬۱۵۵ WBTC با مسمومسازی آدرس — ۳ مهٔ ۲۰۲۴
در ۳ مهٔ ۲۰۲۴ یک کاربر اتریوم هنگام انتقال، به جای آدرس مورد نظرش، ۱٬۱۵۵ WBTC (بیتکوین توکنیزهشده روی اتریوم) را به آدرسی فرستاد که مهاجم با ابتدا و انتهای مشابه ساخته و پیشتر با یک تراکنش بیارزش در تاریخچهٔ او جا داده بود. ارزش این مبلغ در آن زمان حدود ۶۸ میلیون دلار گزارش شد.
این مورد استثنایی پایان متفاوتی داشت: پس از پیگیری عمومی و پیامهای آنچین، مهاجم حدود یک هفته بعد معادل وجوه را بازگرداند. اما چنین بازگشتی استثناست، نه قاعده؛ درس این رویداد این است که حتی کاربران حرفهای با یک کپی از تاریخچه همهچیز را از دست میدهند. جزئیات تراکنشها در Etherscan قابل بررسی است.
🔤 واژگان تخصصی
بلاکچینی که نسخهٔ مشخصی از توکن روی آن صادر شده و انتقال روی آن ثبت میشود.
مثال: USDT روی ترون (TRC-20) با USDT روی اتریوم (ERC-20) دو قرارداد جداگانه روی دو زنجیرهٔ مستقل است.
شناسهٔ اضافه که صرافی با آن واریز به آدرس مشترک را به حساب کاربر خاصی نسبت میدهد.
مثال: واریز XRP به صرافی بدون Destination Tag، به حساب شما ثبت نمیشود.
حملهای که با جا دادن تراکنش از آدرسی شبیه به آدرس آشنا در تاریخچه، کاربر را به کپی آدرس جعلی وادار میکند.
مثال: دریافت انتقال صفر USDT از آدرسی که ۴ کاراکتر اول و آخرش با آدرس صرافی شما یکی است.
ارسال مقدار کم پیش از مبلغ اصلی برای اطمینان از درستی شبکه، آدرس و ممو.
مثال: ارسال ۱۰ USDT پیش از ارسال ۲٬۰۰۰ USDT به آدرس جدید.
تنظیمی در صرافی که برداشت را فقط به آدرسهای از پیش تأییدشده مجاز میکند.
مثال: حتی اگر رمز حساب لو برود، مهاجم نمیتواند به آدرس خودش برداشت کند مگر پس از دورهٔ انتظار افزودن آدرس.
🔑 نکات کلیدی
- توکن همنام روی شبکههای مختلف، داراییهای جدا روی زنجیرههای جداست؛ شبکهٔ فرستنده و گیرنده باید یکی باشد.
- کارمزد با سکهٔ بومی شبکه پرداخت میشود؛ بدون TRX یا ETH یا BNB، USDT روی آن شبکه حرکت نمیکند.
- برای واریز به صرافی، ممو یا تگ را هر بار از صفحهٔ واریز بخوانید و فراموش نکنید.
- هرگز آدرس را از تاریخچهٔ تراکنشها کپی نکنید؛ از منبع اصلی یا دفترچهٔ آدرس بردارید و کل آن را مقایسه کنید.
- برای آدرس جدید ابتدا تراکنش آزمایشی بفرستید؛ اما برای ارسال اصلی دوباره آدرس را از منبع اصلی بردارید.
⚠️ اشتباهات رایج
- انتخاب ارزانترین شبکه در صفحهٔ برداشت بدون بررسی اینکه گیرنده آن شبکه را پشتیبانی میکند؛ اشتباه است چون دارایی به آدرسی میرسد که گیرنده آن را نمیبیند.
- بررسی فقط چند کاراکتر اول و آخر آدرس؛ اشتباه است چون مسمومسازی آدرس دقیقاً همین بخشها را جعل میکند.
- جا انداختن ممو هنگام واریز به صرافی؛ اشتباه است چون بازیابی آن به پشتیبانی وابسته و زمانبر و بدون تضمین است.
- تصور اینکه چون کیف پول خطا نداد، شبکه درست است؛ اشتباه است چون آدرسهای اتریوم و BNB Smart Chain قالب یکسان دارند.
🛠 تمرین عملی: بازرسی یک انتقال در مرورگر بلاکچین
- در بخش جستوجوی تراکنش آزمایشگاه یک تراکنش واقعی بیتکوین را باز کنید و آدرس ورودی، آدرس خروجی و نوع آدرس (1، 3، bc1q یا bc1p) را یادداشت کنید.
- در کیف پول آزمایشی خود (بدون پول واقعی) آدرس دریافت را روی شبکهٔ آزمایشی Sepolia ببینید و تفاوت آن را با یک آدرس ترون (شروع با T) بنویسید.
- یک آدرس 0x نمونه را در دو مرورگر Etherscan و BscScan جستوجو کنید و توضیح دهید چرا قالب در هر دو معتبر است.
- یک فهرست بازبینی پنجمرحلهای پیش از ارسال بنویسید: شبکه، کل آدرس، ممو، سکهٔ کارمزد، تراکنش آزمایشی.
✅ معیار درستی: فهرست بازبینی شما شامل منبع گرفتن آدرس (نه تاریخچه)، مقایسهٔ کل آدرس و بررسی ممو است و میتوانید توضیح دهید چرا ERC-20 و BEP-20 آدرس یکسان دارند.
🔒 در هیچ تمرینی از سرمایهٔ واقعی، عبارت بازیابی (Seed Phrase)، کلید خصوصی یا اتصال کیف پول اصلی استفاده نکنید.
📝 آزمون تطبیقی
هر بار ۵ سؤال از بانک ۹ سؤالی این درس انتخاب میشود؛ سؤالهایی که قبلاً اشتباه زدهاید زودتر برمیگردند. حدنصاب قبولی ۸۰٪ (۴ از ۵) است و درس بعد با قبولی باز میشود.
✍️ پرسش تشریحی
یک روال استاندارد پیش از ارسال (Pre-flight Checklist) برای انتقال رمزارز به آدرس جدید طراحی کنید و توضیح دهید هر مرحله در برابر کدام خطا یا حمله محافظت میکند.
بعد از نوشتن، پاسخ خود را با این معیارها بسنجید
خودارزیابی: هر نکتهای را که پاسخ شما بهروشنی پوشش داده علامت بزنید.
🤖 دستیار آموزشی
دستیار آفلاین آکادمی: پاسخها فقط از متن درسها و واژگان همین آکادمی پیدا میشوند و منبع هر پاسخ نشان داده میشود. هوش مصنوعی مولد نیست، حدس نمیزند و هیچ سیگنال خرید و فروشی نمیدهد.
📎 منابع مطالعاتی
- Tether — official site (supported blockchains)
- ethereum.org — Security and scam prevention
- EIP-55 — Mixed-case checksum address encoding
- mempool.space — Documentation
🏁 معیار تسلط بر این درس: بتوانید برای هر انتقال، شبکه و آدرس و ممو را بدون خطا بررسی کنید، نیاز به سکهٔ بومی را پیشبینی کنید و نشانههای مسمومسازی آدرس را در تاریخچهٔ کیف تشخیص دهید.