קווים מנחים לביקורת פרוטוקולי Staking

קווים מנחים לביקורת פרוטוקולי Staking

זמן קריאה: 6 דקות

בבלוג זה, תיארנו את הרעיון של פרוטוקולי החזקה בנזילות והנחיות ביקורת לפרוטוקולי החזקה. ההנחיות מכסות מגוון של נקודות פגיעות כגון מנגנוני משיכה, שגיאות עיגול, שיחות חיצוניות, לוגיקת עמלות, לולאות, מבנים, משך הימור וכו'. פוסט בבלוג זה יהווה התייחסות שימושית לביקורת פרוטוקולי הימור ויכול לעזור לך לזהות באגים פוטנציאליים .

מהי החזקה בנזילות?

החזקה בנזילות מאפשרת למשתמשים להמר את אחזקותיהם במטבעות הקריפטו ולהרוויח תגמולים מבלי להקריב נזילות. במקום לנעול את המטבעות שלהם לתקופה קצובה, המשתמשים יכולים לקבל אסימון נוזלי המייצג את הנכסים שלהם. ניתן לסחור באסימון הזה או להשתמש בו כמו כל מטבע קריפטוגרפי אחר, מה שמאפשר למשתמשים להשתמש בנכסים שלהם כרצונם, תוך שהם עדיין מרוויחים תגמולים.

הנחיות לביקורת פרוטוקולי Staking PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

לדוגמה, יש לך 100 ETH שאתה רוצה להמר ברשת Ethereum. במקום לנעול את ה-ETH שלך לתקופה קצובה, אתה יכול להשתמש בשירות הבטחת נזילות כמו Lido כדי להמר את ה-ETH שלך ולקבל בתמורה אסימון נוזלי בשם stETH. עם stETH, אתה עדיין יכול לסחור או להשתמש ב-ETH שלך בהימור תוך כדי צבירת תגמולים.

בואו נתחיל בביקורת חוזי הימור:

בדוק את כל מפרטי הביקורת הזמינים לפני שמתחילים עם קוד החוזה. זה יכול להיות בצורת נייר לבן, קבצי README או משהו אחר. אלה יתנו לך מושג מה יכיל קוד החוזה.

כאשר מסתכלים על מסמך מפרט הביקורת עבור חוזה ההימור, חפש את הנקודות הבאות:

  • סוגי עמלות מבוססות וחישוביהם.
  • מנגנון תגמולים עבור אסימונים
  • סמכויות הבעלים
  • האם החוזה יחזיק ב-ETH?
  • אילו אסימונים יחזיק החוזה?
  • חוזה מקורי ממנו הוא מזולג

בדוק שהמפרט תואם לקוד. התחל עם עמלות וטוקונומיקה, ולאחר מכן אימות סמכות הבעלים. בדוק שכל ערכי התגמולים והעמלות תואמים לתיעוד.

נקודות פגיעות לחפש?

1. מנגנון משיכה מתגמול:

בדוק שמנגנון התגמולים האסימונים מיושם בצורה נכונה ושהתגמולים מחולקים בצורה הוגנת ופרופורציונלית לכל המשתתפים. פרויקטים יכולים לחלק תגמולים בשתי דרכים: או אוטומטית, על בסיס תקופתי, או על פי בקשה של המשתמשים עצמם. ניתן ליישם ולהתאים פונקציית משיכה בהתאם להיגיון העסקי של הפרוטוקול.
להלן מספר מחסומים:

  • בדוק אם משתמש כלשהו יכול למשוך יותר מהתגמול שלו + סכום ההימור שלו.
  • בדוק את הצפה/יתר בחישוב הכמות
  • בדוק אם לפרמטרים מסוימים יכולה להיות השפעה שלילית על התגמולים במהלך החישוב.
  • אם נעשה שימוש ב-block.timestamp או block.number בפונקציה זו. בדוק אם ניתן לנצל אותו בכל דרך שהיא.

2. היגיון בתשלום:

אם ההפקדה והמשיכה כפופים לעמלה כלשהי, ודא שאף משתמש אחד לא יכול לעקוף את העמלה. בנוסף, היו ערניים לכל בעיה פוטנציאלית של הצפה או זרימת יתר. רק המנהל או הבעלים צריכים להיות מורשים לשנות את הגדרות העמלות. כמו כן יש לוודא כי נקבע סף לעמלות מקסימליות, המונע מהמנהל להעמידו על סכום גבוה מדי.

3. מנגנון ההטבעה/שריפה של LP Token:

ודא אם מנגנוני ההטבעה והשריפה יושמו כהלכה. פונקציית צריבה צריכה להפוך את כל שינויי המצב שנעשו על ידי פונקציית מנטה. בנוסף, חשוב לוודא שמשתמשים מקבלים את הכמות המתאימה של אסימונים במהלך ההימור הראשון, כשהבריכה ריקה.

ניתן לאמת מתמטית את ההיגיון של פונקציות טביעה ושריפה כדי לחשוף כל פגיעות נסתרת. כמו כן, ההיצע הכולל של אסימוני LP שהוטבעו לא יעלה על הנכסים המוחזקים.

4. שגיאות עיגול:

למרות שטעויות עיגול קלות מסוימות הן בדרך כלל בלתי נמנעות ואינן מדאיגות, הן יכולות לגדול באופן משמעותי כאשר ניתן להכפיל אותן. חפש מקרי קצה שבהם אפשר להרוויח משגיאות עיגול על ידי היערכות חוזרת ונשנית.

כדי לקבוע אם שגיאות עיגול יכולות להצטבר לכמות ניכרת על פני פרק זמן ממושך, אנו יכולים לחשב מתמטית את טווח שגיאות העיגול האפשריות.

5. משך ההימור:

ודא שחישובי משך ההימור בחוזה עולים בקנה אחד עם ההיגיון העסקי שצוין. ודא שמשתמשים לא יכולים לממש תגמולים לפני תום משך ההימור על ידי עקיפת בדיקות משך הזמן. כמו כן, בדוק אם ניתן לנצל את משך ההימור על ידי תוקף כדי לקבל תגמולים נוספים.

6. שיחות חיצוניות וטיפול באסימונים:

רוב השיחות החיצוניות יהיו לחוזים הסמליים. לכן, עלינו לקבוע אילו סוגי אסימונים יטפל בחוזה ההימור. חיוני לבדוק שיחות חיצוניות עבור שגיאות והתקפות כניסה חוזרות. אסימונים דפלציוניים או אסימונים עם דמי העברה, כגון Safemoon, יכולים להוות בעיה אם ההיגיון שלהם אינו מיושם כהלכה.

7. בדיקות מניפולציות במחיר:

מניפולציה של מחירים באמצעות הלוואת פלאש היא אחת הפריצות השכיחות ביותר לפרויקטים של DeFi. ייתכנו מצבים שבהם שחקנים זדוניים יכולים להשתמש בהלוואות פלאש כדי לתמרן מחירים במהלך החזקה או ביטול כמות גדולה של אסימונים. סקור בקפידה את פונקציות ההימור וההסרה כדי להימנע מתרחישי קצה שעלולים לגרום להתקפות מניפולציות מבוססות הלוואות בזק ואובדן כספים של משתמשים אחרים.

8. כמה בדיקות נוספות:

  • לולאות: אם ההיגיון של החוזה כרוך בלולאה על מערכים, חשוב לוודא שלא תחרוג ממגבלת הגז החסימה. זה יכול להתרחש כאשר גודל המערך גדול מאוד, לכן עליך לחקור אילו פונקציות עשויות להגדיל את גודל המערך והאם משתמש כלשהו יכול לנצל אותו כדי לגרום להתקפת DoS. בדוק את זה לדווח.
  • דרכים: חוזי הימור משתמשים בסוג struct כדי לאחסן נתוני משתמשים או מאגר. בעת הצהרה או גישה למבנה בתוך פונקציה, חשוב לציין אם להשתמש ב"זיכרון" או "אחסון". זה עשוי לעזור לנו לחסוך קצת דלק. למידע נוסף, אנא עיין למאמר זה.
  • ריצה קדמית: חפש תרחישים שבהם שחקנים זדוניים עלולים להפעיל כל עסקה מקדימה לטובתם.
  • בדיקות נראות פונקציה/בקרת גישה: כל פונקציה שהוכרזה כחיצונית או ציבורית יכולה להיות גישה לכל אחד. לכן, חשוב לוודא ששום תפקיד ציבורי לא יכול לבצע פעולות רגישות כלשהן. חיוני לוודא שפרוטוקול ההימור הטמיע בקרות מתאימות כדי למנוע גישה בלתי מורשית הן למטבעות המוחזקים והן לתשתית המערכת.
  • סיכוני ריכוזיות: חשוב לא לתת לבעלים סמכויות מוגזמות. אם כתובת המנהל נפגעת, זה עלול לגרום נזק משמעותי לפרוטוקול. ודא שהרשאות הבעלים או המנהל מתאימות וודא שלפרוטוקול יש תוכנית לטיפול במצבים שבהם המפתחות הפרטיים של מנהל המערכת דלפים.
  • טיפול ב-ETH / WETH: חוזים כוללים לרוב היגיון ספציפי לטיפול ב-ETH. לדוגמה, כאשר msg.value > 0, חוזה עשוי להמיר ETH ל-WETH ועדיין לאפשר ל-WETH להתקבל ישירות. כאשר משתמש מציין WETH כמטבע אך שולח ETH עם הקריאה, זה יכול לשבור אינוריאנטים מסוימים ולהוביל להתנהגות שגויה.

עד כה, דנו בפרוטוקולי החזקה של נזילות ובהנחיות הביקורת לפרוטוקולים כאלה. בקצרה, הימור ב-Liquidity מאפשר למשתמשים לזכות בפרסי הימורים מבלי להקריב נזילות. תיארנו את הנקודות הפגיעות בחוזי ההימור שאליהם המבקרים חייבים לשים לב, כגון מנגנוני משיכה, היגיון עמלות, מנגנון הטבעה/שריפת אסימון LP, שגיאות עיגול, משך הימור, שיחות חיצוניות ובדיקות מניפולציות במחיר. 

אנו ממליצים למבקרים לבחון מסמכי מפרטי ביקורת, להתאים מפרטים לקוד ולבדוק עמלות ואימות טוקונומי. אנו ממליצים גם על בדיקות נוספות כגון לולאה על מערכים, ציון זיכרון או אחסון עבור נתונים מסוג struct ותרחישים קדמיים. קווים מנחים אלה יהיו שימושיים לביקורת פרוטוקולי הימור ויעזרו לזהות באגים פוטנציאליים.


11 צפיות

בול זמן:

עוד מ קווילהש