למה הארנק שלכם מציג העברה שמעולם לא שלחתם: עסקאות בערך אפס והרעלת כתובות
עסקה יוצאת לא מוכרת אינה אומרת אוטומטית שהארנק שלכם נפרץ. למדו מה באמת מוכיחים רישומים בסכום אפס, כתובות דומות למראה ותנועות אמיתיות של נכסים.
מה הרשומה הזאת מוכיחה לגבי הארנק שלי?
אם ההיסטוריה מציגה פתאום ששלחתם 0 USDT לכתובת לא מוכרת, הרשומה לבדה אינה מוכיחה שמישהו השיג גישה למפתח הפרטי שלכם. צד שלישי יכול ליצור סוגים מסוימים של רישומי העברת טוקנים בכמות אפס הנושאים את הכתובת שלכם, בלי החתימה שלכם ובלי הרשאה להוציא סכום גדול מאפס. הרשומה יכולה להופיע בבלוקצ'יין אף שמעולם לא יזמתם אותה.
השאלות המועילות ממוקדות יותר: באיזה נכס מדובר? כמה הועבר בפועל? מי הגיש את העסקה? מה אישר הוצאה אמיתית כלשהי?
- אירוע טוקן בכמות אפס אינו מוכיח שחתמתם או הוצאתם דבר. בטוקן אמיתי, כמות מדויקת של אפס פירושה שבאותה העברה לא הועברו טוקנים.
- העברה תחת שם טוקן מוכר אינה מזהה את הנכס. חוזה לא קשור יכול להשתמש באותו שם ובאותו סמל.
- תשלום נכנס זעיר יכול להיות אמיתי ובה בעת לשתול בהיסטוריה כתובת שולח מטעה.
- תנועה יוצאת מאומתת ולא מוסברת של נכסים אמיתיים מחייבת בדיקה. אל תבטלו אותה רק משום ששדה אחר מציג אפס.
מדריך זה עוסק ב-Ethereum, ב-BNB Smart Chain (BSC) וברשתות דומות המשתמשות בחוזי טוקנים בסגנון Ethereum. הדוגמאות הן רישומים מומצאים ופשוטים במכוון, לא צילומי מסך או ממצאים לגבי ארנק מסוים.
ראשית, זהו איזה שדה מציג אפס
אנשים משתמשים בביטוי עסקה בערך אפס לתיאור כמה דברים שונים. רק אחת מהתצוגות הבאות אומרת שכמות הטוקנים היא אפס:
- כמות טוקנים: 0 USDC. בחוזה USDC האמיתי, כמות מדויקת של אפס פירושה שההעברה הזאת אינה מזיזה USDC.
- ערך העסקה: 0 ETH. לעסקה הראשית לא צורף ETH. טוקנים עדיין יכולים לעבור, ופעולות חוזה עדיין יכולות להתבצע.
- ערך מוערך: $0.00. הממשק מציג שווי במטבע רגיל. הדבר אינו קובע את כמות הטוקנים.
ב-BSC, שדה המטבע המקורי של הרשת משתמש בדרך כלל ב-BNB במקום ETH. אינטראקציה עם חוזה בעלת ערך מקורי אפס יכולה להעביר טוקנים, לשנות הרשאות הוצאה או להפעיל פעולות אחרות. הערך המקורי נפרד מנתוני הקלט של העסקה.
סכום חיובי קטן עשוי להתעגל ל-$0.00. גם נכס שאין לו תמחור אמין עלול לקבל תצוגת שווי לא מועילה. הציגו את כמות הטוקנים בדיוק מלא; אפילו כמות מוצגת של 0.00 יכולה להסתיר סכום חיובי קטן יותר. שינוי בשווי התיק אינו תיעוד אמין של יחידות שנכנסו לחשבון או יצאו ממנו.
אפס הוא כמות טוקנים מותרת, ולכן אפס לבדו אינו מוכיח מתקפה. כתובות דומות ופרטי תשלום מועתקים הם רמזים שכדאי לבדוק.
למה שני שדות 'מאת' עשויים להיות שונים
היסטוריית הארנק יכולה לשלב מידע משכבות שונות:
- העסקה: ההוראה החתומה שנשלחה לרשת. בעסקת Ethereum רגילה, שדה מאת הראשי מזהה את החשבון החותם.
- אירוע הטוקן: רישום שחוזה פולט במהלך הביצוע. לאירוע Transfer יש שדות משלו של מאת, אל וכמות.
- שורת ההיסטוריה: הצגת המידע בארנק או בסייר הבלוקים. היא עשויה לסמן אירוע כ-OUT משום שהאירוע מציין את כתובתכם כשולחת.
שני שדות ה'מאת' הללו אינם שקולים. הופעת כתובתכם בתוך אירוע אינה חתימה מהארנק שלכם. חוזה זדוני יכול להכניס את כתובתכם לנתוני אירוע, אבל הדבר אינו הופך את היומן שלו ליומן של חוזה הטוקן האמיתי. לכן החוזה שפלט את האירוע הוא חלק חיוני מהראיות.
בדומה לכך, גיבוב עסקה מזהה עסקה; הוא אינו מוכיח את הסכמתכם. עסקה שנכללה וסומנה Success מצביעה על כך שהביצוע החיצוני שלה לא בוטל. אין בכך אישור לטוקן, לנמען או למטרה.
חמש דוגמאות מוסברות מהיסטוריית העסקאות
דוגמה 1: העברה יוצאת של אפס טוקנים שלא חתמתם עליה
רישום היסטוריה: OUT · 0 USDC · מהכתובת שלכם לכתובת לא מוכרת ודומה למראה.
- מאת בעסקה: חשבון לא קשור הגיש את העסקה.
- מאת באירוע הטוקן: האירוע מציין את כתובתכם.
- חוזה הטוקן שפלט את האירוע: חוזה USDC האמיתי ברשת הזאת.
- כמות הטוקנים המדויקת: אפס.
מה זה מוכיח: חוזה הטוקן האמיתי רשם העברה בכמות אפס תוך ציון כתובתכם. בהעברה הזאת לא עבר USDC. הדבר אינו מוכיח שהארנק חתם על העסקה, שלקורא יש הרשאה להוציא סכום חיובי או שהמפתח נגנב.
איך זה קורה: ERC-20, תקן הטוקנים הנפוץ, מחייב גם העברות בכמות אפס לפלוט אירועי Transfer. במימושים נפוצים, פונקציית ההעברה המואצלת transferFrom בודקת אם הכמות המבוקשת גדולה מההרשאה של הקורא. אפס אינו גדול מהרשאה של אפס. בכפוף לכללים האחרים של החוזה, הקריאה יכולה להצליח גם בלי אישור קודם.
זו אינה הבטחה כללית לגבי כל טוקן. חוזים מסוימים יכולים להטיל מגבלות נוספות.
מה לבדוק הלאה: בדקו את שאר העסקה. שורת אפס מתארת רק את אותה שורה; פעולה אחרת עשויה להשפיע אחרת. אם מדובר ברישום הרעלה בודד, בלי הוצאות חשודות או שינויים בהרשאות, התגובה המתאימה היא להימנע מהכתובת שנשתלה, ולא להניח שיש להחליף את הארנק.
דוגמה 2: עסקה מזויפת שמציגה כמות טוקנים גדולה
רישום היסטוריה: OUT · 2,500 USDC · מהכתובת שלכם לכתובת לא מוכרת.
- סמל הטוקן המוצג: USDC.
- החוזה שפלט את האירוע: חוזה לא קשור, לא USDC אמיתי.
- הכמות שדווחה באירוע: 2,500.
- תנועת USDC אמיתי בעסקה הזאת: אין.
מה זה מוכיח: חוזה אחר פלט רישום שמוצג תחת התווית USDC. הדבר אינו מוכיח ש-2,500 USDC אמיתיים יצאו מחשבונכם.
עסקה מזויפת בארנק יכולה להיות נתוני בלוקצ'יין אמיתיים עם פירוש מטעה. תוקפים יכולים להעתיק את שם הטוקן ואת סמלו ולפלוט אירועים הדומים לתשלומים קודמים שלכם, כולל הסכומים. חוזים לא תקניים יכולים גם לפלוט רישומי העברה שאינם תואמים לשינויים ביתרות שלהם עצמם.
מה לבדוק הלאה: זהו את הרשת ואת החוזה המדויק שפלט את האירוע. השוו את כתובתו לפרטי החוזה של המנפיק באותה רשת, שהושגו ממקור עצמאי. סמל מוכר, לוגו או תווית אימות של קוד המקור אינם מספיקים כדי לאמת את זהות המנפיק.
דוגמה 3: תשלום אמיתי זעיר מכתובת דומה למראה
רישום היסטוריה: IN · 0.000001 USDC · מכתובת לא מוכרת לכתובתכם.
נניח שחוזה הטוקן האמיתי מאשר את ההעברה ויתרת הטוקנים שלכם גדלה בסכום הזעיר הזה. כאן הגיעו טוקנים אמיתיים. קבלתם לא חייבה אתכם לאשר את השולח, ואינה מעניקה לו סמכות להוציא כספים.
המלכודת היא הכתובת. ראו את הדוגמאות המומצאות הבאות, המחולקות ברווחים כדי שכל תו יהיה גלוי. בכתובות אמיתיות אין רווחים; קבוצות האמצע המודגשות שונות:
נמען מאומת: 0x7a2f 1111 2222 3333 4444 5555 6666 7777 8888 9c4d
כתובת שנשתלה: 0x7a2f aaaa bbbb cccc dddd eeee ffff 0000 1111 9c4d
ממשק שמציג רק את ההתחלה והסוף עלול להציג את שתיהן כ-0x7a2f...9c4d.
מה זה מוכיח: מישהו שלח לכם סכום קטן מהכתובת הזאת. אין בכך הוכחה שהשולח הוא הנמען הקבוע שלכם או חשבון שבשליטתכם. התאמת התווים הגלויים אינה מוכיחה בעלות.
מה לבדוק הלאה: השיגו את כתובת היעד הרצויה מאיש קשר שאומת בנפרד או מדף החשבון המהימן של הנמען. השוו את הכתובת כולה. הרעלת כתובות מנסה להפוך רישום שנשתל בהיסטוריה לכתובת שתבחרו בתשלום מאוחר יותר. ההפסד עלול להתרחש אחר כך, כשאתם מאשרים העברה תקינה לחלוטין ליעד שגוי.
דוגמה 4: אפס ETH, אבל 2,500 טוקנים אמיתיים יוצאים
כותרת העסקה: Value · 0 ETH.
- ערך המטבע המקורי שצורף לקריאה: 0 ETH.
- העברת טוקנים אמיתיים: 2,500 USDC מהכתובת שלכם.
- שינוי יתרת USDC שנגרם מהעסקה: ירידה של 2,500 USDC.
- סטטוס ביצוע: Success.
מה זה מוכיח: בדוגמה הזאת יצא USDC אמיתי. האפס מתאר את ה-ETH שצורף לקריאה. הוא אינו מתאר את העברת ה-USDC ואינו שולל עלויות גז.
מה עדיין לא ידוע: מדוע התשלום התבצע והאם התכוונתם אליו. ייתכן שהוא נוגע להחלפה, הפקדה, פעולה מתוזמנת, תשלום לכתובת שגויה או הוצאה ללא הרשאה. התאימו אותו לפעולה שביצעתם וליעד שהתכוונתם אליו לפני שתסווגו אותו.
דוגמה 5: טוקנים אמיתיים יוצאים, אך חשבון אחר הגיש את העסקה
רישום היסטוריה: OUT · 500 USDC אמיתיים · יעד לא מוכר.
נניח שהעסקה המוצלחת הפחיתה את יתרת ה-USDC האמיתי שלכם ב-500, אך שדה המאת הראשי שלה מציין אדם אחר.
מה זה מוכיח: הטוקנים הועברו. שולח העסקה השונה אינו הופך את התנועה למזויפת.
מי שקיבל בעבר הרשאת הוצאה יכול להשתמש בהרשאת טוקנים בלי לבקש מכם לחתום על עסקה חדשה בכל משיכה. יש טוקנים שתומכים גם בחתימות permit, שמאשרות הרשאה באמצעות הודעה חתומה שצד אחר יכול להגיש. חשבונות חכמים וארנקים מואצלים מאפשרים דרכים נוספות למישהו אחר להגיש פעולה מורשית.
מה לבדוק הלאה: בדקו את הגורם המורשה להוציא, את ההרשאה המתאימה או האישור החתום ואת פעולת הארנק. אם החיוב נותר לא מוסבר, התייחסו אליו כאירוע אבטחה. הראיות עשויות להצביע על אישור מזיק, חתימה מטעה או שליטה בחשבון שנפגעה; השורה לבדה אינה מבדילה ביניהם.
בעסקה רגילה שנחתמה ישירות, הכתובת שלכם בשדה המאת הראשי היא ראיה לחתימה תקפה של החשבון. היא עדיין אינה מוכיחה שהבנתם את הפעולה, שהתכוונתם לנמען הזה או שיזמתם אותה אישית. שדה מאת של אירוע טוקן מספק ראיה חלשה בהרבה.
מה באמת נמדד ב-270 מיליון ניסיונות ההרעלה
ניתוח בן שנתיים של פעילות ב-Ethereum וב-BSC, מ-July 1, 2022 עד June 30, 2024, זיהה כ-270 מיליון רישומי העברה מרעילים שכוונו ל-17 מיליון כתובות.
הרישומים נחלקו לשלוש קטגוריות:
- 147.7 מיליון העברות בערך אפס.
- 118.4 מיליון העברות של טוקנים מזויפים.
- 4.0 מיליון העברות זעירות.
אלה היו רישומי העברה בתוך כ-18.2 מיליון עסקאות, משום שתוקפים יכולים לאגד רישומים יחד. כתובות שהותקפו אינן שקולות למספר האנשים, הארנקים שנפרצו או הקורבנות שאיבדו כסף.
הניתוח זיהה 6,633 העברות מוצלחות שהניבו לתוקפים לפחות $83.8 מיליון בסך הכול. חלק מהקורבנות שילמו יותר מפעם אחת. הזיהוי התמקד במטבעות יציבים נבחרים, ולכן אומדן ההפסד הוא גבול תחתון בתחום הזה, ולא סך ההפסדים לכל הטוקנים או הרשתות.
המסקנה המעשית היא שבדיקת סכומי אפס בלבד מחמיצה חלק משמעותי מהמתקפה. רשומות מזויפות יכולות לחקות תשלום משמעותי, והעברה נכנסת זעירה יכולה להעביר טוקנים אמיתיים תוך הצגת כתובת מסוכנת.
איך לבדוק את הרשומה המסוימת שלכם
- פתחו את העסקה ברשת הנכונה. השתמשו באפשרות סייר הבלוקים בארנק או בסייר מוכר כגון Etherscan או BscScan. בדקו את מצב העסקה. קריאת פרטי עסקאות ציבוריים אינה מחייבת חיבור ארנק, אישור טוקנים, חתימה על הודעה או הזנת ביטוי שחזור.
- זהו את הנכס האמיתי. הבחינו בין ETH או BNB המקוריים של הרשת לבין טוקן המשתמש באותו שם. בטוקנים, בדקו את הרשת המדויקת ואת החוזה שפלט את האירוע מול מקור מהימן של המנפיק.
- קראו את הכמות בדיוק מלא. הפרידו את כמות הטוקנים מערך העסקה במטבע המקורי ומאומדן השווי במטבע רגיל.
- הפרידו בין שולח העסקה לשולח האירוע. בחשבון חכם בדקו גם את פעולת הארנק ואת הרשאותיה. העובדה שמישהו אחר שילם גז אינה מוכיחה שנכסיכם לא הועברו.
- סקרו את העסקה כולה. בדקו את כל תנועות הטוקנים, העברות המטבע המקורי ושינויי ההרשאות הרלוונטיים. אם הסייר מציג שינויי יתרה ברמת העסקה, השתמשו בהם כדי להתאים את התוצאה. יתרה שלא השתנתה היום היא ראיה חלשה יותר: הפקדות מאוחרות או העברות מקזזות יכולות להסתיר תנועה קודמת.
- אמתו את היעד באופן עצמאי. השתמשו בפרטי התשלום המהימנים של הנמען או ברשומה בפנקס כתובות שאימתתם בעבר. שורת היסטוריה חדשה היא ראיה שיש לבדוק, לא הוכחה ליעד הנכון.
אם הסייר אינו מבהיר את התוצאה, מסרו לצוות התמיכה הרשמי של ספק הארנק את הרשת ואת גיבוב העסקה הציבורי. תארו את הפעולה שציפיתם לה, אם הייתה כזאת. הפרטים האלה מסייעים להבחין בין פעולה לא מוכרת אך מכוונת לבין הוצאה בלתי מוסברת, בלי לחשוף את הסודות השולטים בארנק.
מה לעשות אחרי הבדיקה
אם מצאתם רק רשומת הרעלה בודדת
הסתירו את הספאם או דווחו עליו אם הארנק תומך בכך, והימנעו משימוש בכתובות שבו. הסתרת שורה משנה את הממשק; היא אינה מוחקת את היסטוריית הבלוקצ'יין או מבטלת הרשאות.
העברת אפס יכולה להתרחש גם כשההרשאה היא אפס, ולכן הרשומה לבדה אינה סיבה לבטל את כל האישורים או להעביר את כל הכספים. ייתכן שאין שום הרשאת הוצאה הקשורה לרשומה הזאת שאפשר להסיר. לעולם אל תשתמשו באתר שמפורסם על ידי טוקן או בקישור שחזור מאדם זר כדי ״לנקות״ את הארנק.
אם מצאתם הרשאת הוצאה חשודה
השתמשו במסלול המהימן לניהול אישורים בארנק כדי לבדוק ולבטל את ההרשאה הרלוונטית. ניתוק אתר מהארנק אינו מבטל אישורי טוקנים קיימים בשרשרת. הביטול מטפל בהרשאה הזאת; הוא אינו מתקן מפתח פרטי שנגנב.
אם נכסים אמיתיים הועברו בלי שהתכוונתם
שמרו את גיבוב העסקה, הרשת, הנכס שנפגע והכתובות הרלוונטיות. בדקו חתימות, אישורים ופעולות ארנק אחרונות דרך ערוצי התמיכה הרשמיים.
אם יש ראיות שביטוי השחזור או המפתח הפרטי שלכם נחשפו, צרו ארנק חדש עם ביטוי שחזור חדש במכשיר מהימן, ותכננו בקפידה את העברת הנכסים שנותרו. חשבון אחר שנגזר מהביטוי שנחשף אינו פותר את החשיפה. אם כספים נעלמים אוטומטית, אל תמשיכו להפקיד כסף לגז: מנגנון ריקון אוטומטי עשוי לקחת אותו.
אם חתמתם במודע על תשלום אך העתקתם יעד מורעל, תעדו את ההבדל הזה. ייתכן שהתשלום נחתם ובוצע כהלכה אך הגיע לנמען הלא נכון. תוצאה כזאת אינה מוכיחה כשלעצמה שהמפתח הפרטי שלכם נגנב.
שאלות נפוצות על עסקאות לא מוכרות
האם התוקף גרם לי לשלם גז?
בתרחיש הרעלה רגיל, התוקף מגיש את העסקה ומשלם את עמלת הרשת. עצם ציון כתובתכם באירוע טוקן אינו מחייב את חשבונכם. אולם עסקאות ממומנות וחשבונות חכמים פירושם שזהות משלם העמלה לבדה אינה מוכיחה שהפעולה הייתה תמימה. בדקו את ההשפעות בפועל.
מה אם העסקה נכשלה?
העברת טוקנים שבוטלה לא השלימה את ההעברה, אף שעדיין עשויה להיגבות עמלת גז. אם הארנק משתמש בהאצלת חשבון, בדקו זאת בנפרד: Ethereum יכול לשמר האצלה גם אם הביצוע המאוחר יותר נכשל. האצלה לא מוכרת מחייבת בדיקה.
האם ארנק חומרה ימנע הרעלת כתובות?
הוא מספק מקום נוסף לבדוק את היעד לפני החתימה. הוא אינו יכול להפוך יעד שבשליטת תוקף לנכון אם תאשרו אותו. השוו את הכתובת המלאה בצג החתימה המהימן עם פרטי נמען שאומתו באופן עצמאי.
האם אפשר למנוע מזרים להוסיף רשומות כאלה?
בדרך כלל אי אפשר למנוע מצדדים שלישיים לשלוח נכסים או ליצור רישומים רלוונטיים הכוללים כתובת ציבורית. מסננים בארנקים ובסיירים יכולים לצמצם את המוצג. שמרו נמענים מאומתים ובדקו את כתובת היעד המלאה לפני התשלום; הסתרת רשומות בערך אפס בלבד אינה מזהה כל גרסה של טוקן מזויף או העברה זעירה.
