GPT
S

slither-audited-smart-contracts

קוד פתוח

mwritescodemit2022-05-16

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

  • 1,129הורדות בחודש
  • 61לייקים

מה זה

כל רשומה מכילה כתובת חוזה ברשת הראשית של איתריום, קוד מקור שטוח בסולידיטי, בייטקוד שנמשך ישירות מהרשת ותוצאת ניתוח סטטי של הכלי Slither. הנתונים מתבססים על רשימת חוזים מאומתים ממאגר Smart Contract Sanctuary ומאתר Etherscan, כשהבייטקוד נשלף באמצעות Web3.py דרך Infura. במקרים שבהם הבייטקוד לא היה זמין, השדה מכיל פשוט מחרוזת ריקה.

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

מתאים ל

  • סיווג חולשות אבטחה בקוד

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

  • יצירת קוד סולידיטי

    אימון מודלי שפה לכתיבת חוזים חכמים המבוססים על עשרות אלפי חוזים אמיתיים שאומתו ברשת איתריום.

  • סיווג מבוסס רשתות ראייה

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

איפה זה נופל

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

שאלות
נפוצות

האם מותר להשתמש במאגר לפיתוח מוצר מסחרי?

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

האם יש במאגר תוכן או הערות בעברית?

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

איך נאספו ונוצרו התוויות של החוזים?

החוקרים אספו חוזים ממאגר Smart Contract Sanctuary ומ־Etherscan, שטחו את הקוד והריצו עליו את כלי הניתוח Slither. הכלי איתר 38 סוגי חולשות שמופו לתשע קטגוריות על בסיס תקני אבטחה ידועים כמו DASP ורישום SWC.

מה ההבדל בין המאגר הזה למאגרי חוזים דומים?

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

איך טוענים

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

from datasets import load_dataset

ds = load_dataset("mwritescode/slither-audited-smart-contracts")

הרישיון

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

  • שימוש מסחרי
  • שינוי הקוד
  • הפצה מחדש

הרישיון המלא ב־Hugging Face ↗