اعتماد و امنیت

یک تراکنش رمزارزی چه زمانی واقعاً پرداخت‌شده است؟

سه بررسی لازم برای اطمینان از پرداخت تتر: آدرس قرارداد، تغییر موجودی و نهایی‌شدن تراکنش — به‌همراه مدیریت پرداخت ناقص و دیرهنگام.

این نوشته پیش‌نویس است و هنوز منتشر نشده. محتوای آن ممکن است ناقص یا در حال بازنویسی باشد.

مشتری می‌گوید پرداخت کردم و اسکرین‌شات هم می‌فرستد. در کیف پول شما هم یک اعلان آمده. سفارش را ارسال کنید؟

هنوز نه. بین «تراکنش ارسال شد» و «پول مال شماست» سه بررسی فاصله است، و هر سه با هم لازم‌اند.

راهنماهای فارسی درباره تتر تقلبی تشخیص کم نیستند، اما تقریباً همه‌شان برای مصرف‌کننده نوشته شده‌اند: کسی که در یک معامله حضوری می‌خواهد کلاه سرش نرود. این راهنما برای فروشگاهی نوشته شده که روزانه سفارش پردازش می‌کند و به یک رویه تکرارپذیر نیاز دارد، نه به توصیه «مراقب باشید».

سه چیزی که باید بررسی شود

هر پرداخت رمزارزی که دریافت می‌کنید باید از این سه فیلتر رد شود. اگر یکی از آن‌ها را رد نکند، پرداخت انجام نشده — فارغ از اینکه چه چیزی در کیف پول یا اسکرین‌شات مشتری دیده می‌شود.

۱. توکن درست است؟ آدرس قرارداد توکن با آدرس رسمی تتر می‌خواند یا نه. ۲. موجودی واقعاً تغییر کرده؟ نه اینکه فقط یک اعلان یا یک ردیف در تاریخچه ظاهر شده باشد. ۳. تراکنش نهایی شده؟ روی زنجیره به وضعیت برگشت‌ناپذیر رسیده یا هنوز در انتظار است.

بیشتر کلاهبرداری‌های این حوزه فیلتر اول یا دوم را رد نمی‌کنند. بیشتر اشتباه‌های صادقانه — و ضررهای واقعی فروشگاه‌ها — سر فیلتر سوم اتفاق می‌افتد.

۱. آدرس قرارداد توکن

این مهم‌ترین بررسی است و کمترین توجه را می‌گیرد.

روی هر بلاکچینی، هر کسی می‌تواند توکنی بسازد و اسمش را USDT بگذارد. نام و نماد توکن، فیلدهای آزادی هستند که سازنده قرارداد انتخاب می‌کند. کیف پول شما هم همان نامی را نشان می‌دهد که در قرارداد نوشته شده. پس دیدن کلمه USDT در کیف پول، هیچ چیزی را ثابت نمی‌کند.

تنها چیزی که جعل‌شدنی نیست، آدرس قرارداد است.

شبکهآدرس قرارداد رسمی تتر
TRON (TRC20)TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t
BNB Smart Chain (BEP20)0x55d398326f99059fF775485246999027B3197955

این دو آدرس را می‌توانید در TronScan و BscScan جست‌وجو کنید و مشخصات توکن، عرضه کل و تعداد دارندگان را ببینید.

یک نکته که باعث سردرگمی می‌شود و تقریباً هیچ‌جا گفته نشده: روی BNB Smart Chain، همین آدرس در BscScan با نام Binance-Peg BSC-USD نمایش داده می‌شود، نه «Tether USD». این طبیعی است و به معنای تقلبی‌بودن نیست — تتر روی این شبکه به‌صورت پل‌شده عرضه می‌شود.

در عین حال، روی همان شبکه توکن‌های دیگری هم وجود دارند که دقیقاً خودشان را Tether USD می‌نامند اما آدرس قرارداد کاملاً متفاوتی دارند؛ نسخه‌های پل‌شده از مسیرهای دیگر. این‌ها لزوماً کلاهبرداری نیستند و ممکن است ارزش واقعی هم داشته باشند، اما همان توکنی نیستند که درگاه شما انتظارش را دارد و به‌عنوان پرداخت شمرده نمی‌شوند.

این دقیقاً نشان می‌دهد چرا نام توکن معیار بی‌فایده‌ای است: توکن معتبر شما اسمی دارد که «Tether» نیست، و توکنی که به دردتان نمی‌خورد دقیقاً «Tether USD» نام دارد.

رویه عملی: به‌جای اینکه به نام توکن نگاه کنید، تراکنش را در بلاک‌اکسپلورر باز کنید و آدرس قرارداد را با جدول بالا مقایسه کنید. اگر نخواند، پرداخت را نپذیرید — حتی اگر عدد درست باشد و اسم درست باشد.

۲. تغییر موجودی، نه اعلان کیف پول

بیشتر کلاهبرداری‌هایی که به اسم «تتر فیک» یا «تتر فلش» شناخته می‌شوند، در همین نقطه شکست می‌خورند.

سازوکارشان ساده است: کاری می‌کنند که چیزی شبیه یک تراکنش موفق در برابر چشم شما ظاهر شود. یک اسکرین‌شات دستکاری‌شده، یک اعلان از اپلیکیشنی که مشتری کنترلش می‌کند، یا یک ردیف در تاریخچه که در واقعیت روی زنجیره ثبت نشده.

پاسخ، یک قاعده ساده است که همیشه جواب می‌دهد:

موجودی کیف پول را قبل و بعد از تراکنش مقایسه کنید. اگر عدد موجودی بالا نرفته، پولی نیامده. هیچ اعلان، اسکرین‌شات یا رسیدی این را نقض نمی‌کند.

و مهم‌تر: این بررسی را در بلاک‌اکسپلورر انجام دهید، نه در اپلیکیشنی که مشتری به شما نشان می‌دهد. اکسپلورر داده را از خود زنجیره می‌خواند و کسی نمی‌تواند نمایش آن را برای شما دستکاری کند. اپلیکیشن روی گوشی مشتری این تضمین را ندارد.

به همین دلیل، تتر تقلبی تشخیص در عمل کار سختی نیست — به شرطی که منبع درستی را نگاه کنید. تمام دشواری این موضوع از این می‌آید که مردم به‌جای زنجیره، به نمایشگر نگاه می‌کنند.

«تتر فلش» دقیقاً چیست؟

عبارتی که زیاد شنیده می‌شود و کمتر توضیح داده شده. منظور، تراکنشی است که برای مدت کوتاهی در بعضی رابط‌ها دیده می‌شود اما هیچ‌وقت روی زنجیره تثبیت نمی‌شود، یا اصلاً از ابتدا وجود خارجی نداشته و فقط در یک اپلیکیشن دستکاری‌شده نمایش داده می‌شود.

نکته مهم این است که این یک «حمله» به کیف پول شما نیست. کسی چیزی را هک نکرده و قرار هم نیست دارایی موجود شما را ببرد. تنها هدف، این است که شما کالا یا خدمت را تحویل بدهید به اعتماد چیزی که روی صفحه دیده‌اید.

پس ضرر شما همیشه به اندازه چیزی است که تحویل داده‌اید، و تنها دفاع لازم، همان قاعده بالاست: تا موجودی در اکسپلورر بالا نرفته، چیزی تحویل ندهید.

۳. نهایی‌شدن تراکنش و تعداد تأییدیه

دو فیلتر قبلی جلوی کلاهبرداری را می‌گیرند. این یکی جلوی ضرر ناشی از عجله را می‌گیرد، و برای یک فروشگاه پرتراکنش مهم‌تر است.

دیدن تراکنش در اکسپلورر یعنی شبکه آن را پذیرفته و در یک بلاک قرار داده. این با «برگشت‌ناپذیر است» یکی نیست. تا وقتی بلاک به وضعیت نهایی نرسیده، در تئوری امکان بازآرایی زنجیره وجود دارد و آن تراکنش می‌تواند از تاریخ حذف شود.

اینجاست که تایید تراکنش بلاکچین معنا پیدا می‌کند: هر بلاک تازه‌ای که روی بلاک تراکنش شما ساخته می‌شود، یک تأییدیه است و برگرداندن آن را سخت‌تر می‌کند.

TRON (TRC20)BNB Smart Chain (BEP20)
زمان تولید بلاکحدود ۳ ثانیهحدود ۳ ثانیه
معیار نهایی‌شدنرسیدن به وضعیت solidifiedسازوکار نهایی‌شدن سریع
زمان تقریبی تا قطعیتحدود ۵۷ ثانیه (۱۹ بلاک)حدود ۲ ثانیه

چند نکته که در جدول جا نمی‌شود:

عدد ثابتی برای «چند تأییدیه کافی است» وجود ندارد. به ارزش سفارش بستگی دارد. برای یک سفارش ده دلاری، انتظار برای قطعیت کامل بیشتر از ارزش ریسک هزینه دارد. برای یک سفارش چندهزار دلاری، عجله کردن گران‌ترین تصمیم ممکن است.

دو شبکه را با یک آستانه نسنجید. چون سازوکار نهایی‌شدنشان متفاوت است، «۱۲ تأییدیه» روی این دو شبکه دو معنای کاملاً متفاوت دارد. مقایسه کامل این تفاوت در تفاوت TRC20 و BEP20 آمده است.

سیاست خودتان را از قبل بنویسید. مثلاً: زیر فلان مبلغ، بعد از دیده‌شدن تراکنش ارسال می‌کنیم؛ بالای آن، تا قطعیت صبر می‌کنیم. تصمیم‌گیری موردی در لحظه‌ای که مشتری منتظر است، همان جایی است که اشتباه رخ می‌دهد.

خلاصه اینکه تایید تراکنش بلاکچین یک وضعیت دودویی نیست؛ یک طیف است که از «دیده شد» تا «برگشت‌ناپذیر است» ادامه دارد، و شما تصمیم می‌گیرید روی کدام نقطه از این طیف، ریسک را بپذیرید.

پرداخت ناقص و پرداخت دیرهنگام

این دو حالت کلاهبرداری نیستند و در عمل بیشتر از کلاهبرداری اتفاق می‌افتند — ولی تقریباً هیچ راهنمایی به آن‌ها نپرداخته است.

پرداخت ناقص یعنی مشتری مبلغی کمتر از فاکتور فرستاده. معمولاً هم دلیلش سوءنیت نیست: کارمزد شبکه را از مبلغ کم کرده، یا عدد را اشتباه تایپ کرده، یا نرخ در فاصله ساخت فاکتور و پرداخت تکان خورده.

کار درست این است که فاکتور در وضعیت «پرداخت ناقص» بماند و مشتری بتواند مابه‌التفاوت را به همان آدرس بفرستد. سیستم باید مجموع دریافتی روی آن آدرس را بسنجد، نه تک‌تک تراکنش‌ها را. اگر تفاوت ناچیز است، می‌توانید مبلغ دریافت‌شده را بپذیرید و فاکتور را تأییدشده علامت بزنید — این باید یک تصمیم آگاهانه شما باشد، نه رفتار خودکار سیستم.

مدیریت درست پرداخت ناقص ارز دیجیتال تفاوت بین یک مشتری ناراضی و یک سفارش تکمیل‌شده است. اگر فاکتور به‌محض دریافت مبلغ کمتر منقضی شود، مشتری پولی فرستاده که سفارشی بابتش ندارد، و شما باید دستی برگردانیدش.

پرداخت بیش از مبلغ حالت دیگری است: مبلغ اضافه باید ثبت و در جزئیات تراکنش دیده شود تا بتوانید طبق فرآیند بازپرداخت خودتان برش گردانید.

پرداخت دیرهنگام یعنی مشتری بعد از انقضای فاکتور پرداخت کرده. پول روی زنجیره است و به آدرسی رسیده که متعلق به همان فاکتور بوده. این پول گم نمی‌شود، اما نیاز به رسیدگی دستی دارد — و یکی از دلایلی است که مهلت فاکتور نباید بی‌جهت کوتاه باشد.

اگر پرداختی یکی از بررسی‌ها را رد نکرد

داشتن یک رویه از قبل، تفاوت بین یک مورد حل‌شده و یک بحث طولانی با مشتری است.

اول، چیزی تحویل ندهید و چیزی هم اتهام نزنید. بخش بزرگی از این موارد اشتباه صادقانه‌اند: شبکه اشتباه، مبلغ اشتباه، یا صرافی‌ای که برداشت را دیر پردازش کرده. برخورد اولیه شما باید فرض را بر اشتباه بگذارد، نه بر تقلب.

دوم، شناسه تراکنش (TxID) را از مشتری بخواهید، نه اسکرین‌شات. با شناسه تراکنش می‌توانید خودتان در اکسپلورر همه چیز را ببینید: آدرس قرارداد، مبلغ دقیق، آدرس مقصد و وضعیت. اسکرین‌شات هیچ‌کدام از این‌ها را ثابت نمی‌کند و اصلاً به همین دلیل فرستاده می‌شود.

سوم، مشخص کنید کدام فیلتر رد نشده، چون راه‌حل هرکدام فرق دارد:

  • قرارداد نمی‌خواند → توکن اشتباه یا شبکه اشتباه. پول معمولاً هنوز در اختیار مشتری است.
  • موجودی تغییر نکرده → تراکنشی روی زنجیره ثبت نشده. چیزی برای پیگیری وجود ندارد.
  • هنوز نهایی نشده → فقط باید صبر کنید. این یک مشکل نیست.
  • مبلغ کمتر است → همان حالت پرداخت ناقص که بالاتر توضیح داده شد.

چهارم، همه چیز را ثبت کنید. شناسه تراکنش، آدرس، مبلغ و زمان. اگر بعداً اختلافی پیش بیاید، تنها چیزی که به کارتان می‌آید همین سوابق است، و بازسازی‌شان بعد از چند هفته تقریباً غیرممکن می‌شود.

با همین چهار قدم، تتر تقلبی تشخیص از یک نگرانی مبهم تبدیل می‌شود به یک رویه چنددقیقه‌ای که هر کسی در تیم پشتیبانی شما می‌تواند اجرا کند — و همین، تفاوت بین یک فروشگاه حرفه‌ای و یک فروشگاه در معرض ریسک است.

چطور این بررسی‌ها خودکار می‌شوند

انجام دستی این سه بررسی برای پنج سفارش در روز شدنی است. برای پنجاه سفارش نیست، و دقیقاً همان‌جاست که خطا رخ می‌دهد.

کاری که یک درگاه پرداخت انجام می‌دهد این است که هر سه فیلتر را روی هر فاکتور، بدون استثنا، اجرا کند:

  • فقط تراکنش‌هایی را می‌پذیرد که از آدرس قرارداد رسمی آمده باشند. توکنی با نام مشابه و قرارداد متفاوت، اصلاً به‌عنوان پرداخت شمرده نمی‌شود.
  • تغییر موجودی روی زنجیره را ملاک می‌گیرد، نه هیچ اعلان یا ورودی دیگری.
  • تا نهایی‌شدن تراکنش، فاکتور را پرداخت‌شده اعلام نمی‌کند و وب‌هوک نمی‌فرستد.

نتیجه‌اش این است که وضعیتی که در سیستم فروشگاه شما می‌نشیند، از قبل هر سه بررسی را گذرانده است.

یک هشدار برای توسعه‌دهنده‌ها: اگر از طریق API وصل می‌شوید، هیچ‌وقت وضعیت «پرداخت شد» را بدون بررسی امضای وب‌هوک نپذیرید. یک درخواست جعلی به آدرس وب‌هوک شما، اگر امضا بررسی نشود، دقیقاً همان کاری را می‌کند که یک اسکرین‌شات جعلی با یک اپراتور بی‌دقت می‌کند.

جزئیات این کار در راهنمای اتصال با API و وب‌هوک آمده است. برای دیدن اینکه این بررسی‌ها در کدام نقطه از مسیر پرداخت انجام می‌شوند، درگاه پرداخت تتر را ببینید، و اگر می‌خواهید کل سرویس را مرور کنید، درگاه پرداخت ارز دیجیتال نقطه شروع است.