אינטגרציית Snapshot: היכן נשבר ספירת הקולות ב-DAO
אינטגרציית Snapshot בצורתה הטיפוסית נראית כך: ההצבעה מוציאה מחוץ לרשת, ומשקל הקול מחושב לפי תמונת מצב (snapshot) של היתרות בבלוק מסוים — וכמעט תמיד בדיוק כאן ספירת הקולות ב-DAO מתפצלת מהתפלגות ההשפעה בפועל.
סף הכניסה נמוך, ולכן לסקר מגיעות כתובות שכבר אינן מחזיקות בטוקן ברגע החישוב, ואלה שקיבלו אותו מאוחר יותר נשארים בלי קול. הטעות אינה באחסון הקולות, אלא בנקודת הצילום.
האצלת קולות מוסיפה שבר שני. אם תמונת המצב מתעדת רק את היתרה בכתובת, שרשרת הנציגים ותת-הנציגים נספרת חלקית: המשקל נספר למי שהעביר את הטוקנים, ולא למי שמנהל אותם, או שהוא עובר פעמיים — דרך כתובת הבעלים ודרך החוזה המצבר.
ארנקים בסטייקינג ובאסקרו — מקרה נפרד: הטוקנים בתמונת המצב קיימים, אך זכויות ההצבעה עבורם אינן נספרות.
מכאן מתחיל ערעור על תוצאות ההצבעה. כל עוד לא נקבע איזה בלוק להיחשב כנקודת ההתחלה וכיצד להתיר האצלה, את הקוורום מחשבים בשתי דרכים ומקבלים שתי תוצאות שונות. חישוב חוזר מראה שחלק מהקולות נאספו לפי תמונת מצב מיושנת של היתרות, וההחלטה מוחזרת לאחור — מחיר המחלוקת גבוה מהמחלוקת עצמה.
אנו מפרקים כיצד זה נסגר: בחירת נקודת הצילום, כללי ההאצלה ומערכת הבדיקות שאנו מריצים לפני פרסום התוצאות.
מה משתנה לאחר העברת ההצבעות מחוץ לרשת
העברת ההצבעה מחוץ לרשת מסירה את המחסום המרכזי של המודל עם טרנזקציה לכל קול. ב-Snapshot הקול הופך להודעה חתומה: המחזיק מאשר את הבחירה בארנק, והמשקל מחושב לפי תמונת מצב של היתרות בבלוק נתון. הקוורום, הספים וכללי ההאצלה מוגדרים בהגדרות המרחב — עבור כל DAO בנפרד, בלי שינויים בקוד.
עלות ההשתתפות עבור מחזיק הטוקן
ברשת כל קול הוא טרנזקציה נפרדת, והעמלה שלה זהה עבור חלק של מאות טוקנים ושל מיליונים. מחזיק קטן משלם את אותו המחיר כמו גדול, ולרוב פשוט לא מצביע. לאחר העברה מחוץ לרשת ההשתתפות אינה דורשת טרנזקציה: שיעור ההשתתפות של משתתפי ה-DAO עולה בעיקר בזכות אלה שסף הכניסה חסם בעבר.
אלה שאינם רוצים לעקוב אחר כל סדר יום מאצילים את הקול למשתתף פעיל — המשקל נשאר בפרוטוקול ואינו הולך לאיבוד.
מהירות הספירה ושקיפות התוצאה
הקולות מצברים לפי אסטרטגיות חלוקת המשקל מיד עם הגעתם — תוצאת ביניים נראית בזמן אמת, ולא לאחר איסוף ידני. התוצאה נקבעת לפי תמונת מצב של היתרות: העברת טוקנים לאחר תחילת ההצבעה כבר אינה משנה את המשקל, ולכן התרחיש "העברתי את החלק לפני הספירה" אינו עובד. כל משתתף יכול לבדוק את המדגם — הכתובות, המשקלות והחתימות פומביים.
בנפרד נעלם סוג הכשלים "הקול לא נספר": אין צורך להמתין לאישור בלוק ולחזור על השליחה. כל משתתף משחזר את הספירה לפי הנתונים הפתוחים ומשווה אותה לתוצאה המפורסמת.
אינטגרציית Snapshot: פורמטים של חיבור ומגבלות
החיבור אפשרי בשלוש דרכים, והן נבדלות לא בנוחות, אלא בכמה פעולות נשארות בידי האדם. הבחירה תלויה בתדירות שבה משתנים פרמטרי המרחב ובמי בדיוק מחזיק בנכסים.
| אפשרות | מתי מתאימה | מה נשאר ידני |
|---|---|---|
| הגדרה דרך ממשק השירות | הפעלת הצבעות בלי פיתוח משלך | שינויי הגדרות, חלק מהבדיקות של הרכב המשתתפים |
| חיבור ישיר לחשבון שלך | נדרשים ממשק עצמאי ולוגיקת ספירה עצמאית | חתימות, מגבלות בקשות, ניתוח תקלות |
| הצבעה מחוץ לרשת, ביצוע ברשת | ההחלטה צריכה להתבצע מעצמה לאחר הקוורום | מודול מבצע ובדיקת הרשאותיו |
חישוב משקל הקול לפי סוגי נכסים שונים
המשקל מחושב לפי תמונת מצב של היתרה ברגע תחילת ההצבעה, ולא ברגע הגשת הקול. טוקן נייטיב, טוקנים בתקן ERC-20, NFT וטוקני נזילות דורשים אסטרטגיות שונות: עבור נזילות נלקחת החלקה במאגר, עבור NFT — הכמות או עצם סימן הבעלות. בלי זה ניתן להעביר את אותו נכס דרך כמה ארנקים ולספור אותו פעמיים.
הקישור בין תוצאת ההצבעה לביצוע
תוצאת ההצבעה היא הודעות חתומות, ולא טרנזקציות, ולכן ההחלטה מבוצעת בשלב נפרד. אנו מגדירים את הקוורום, ההשהיה לפני הביצוע והרשאות המבצע כך שלא ניתן לבטל החלטה שהתקבלה בלי הצבעה חדשה.
אם אין צורך באוטומציה, התוצאה מועברת לחתימה מרובה באופן ידני — איטי יותר, אך השליטה נשארת בידי חוג מצומצם.
שלבי ההטמעה: מביקורת ועד העברת השליטה
הטמעת הצבעה אינה התקנת כלי, אלא העברת תהליך קבלת ההחלטות למעגל שקוף. לכן שלבי ההטמעה מתחילים בביקורת הממשל ומסתיימים בהעברת השליטה לצוות הלקוח יחד עם התקנונים. להלן — כיצד בנויה העבודה מהפירוק הראשון ועד לתפעול עצמאי.
- ביקורת הממשל. מפרקים מי כיום מקבל החלטות, היכן מתועדים הקולות וכיצד מחושב המשקל: מחזיקי הטוקן, האצלה, תרומה למאגר הנזילות. בפלט — מפת תפקידים ופערים בין התקנון לפרקטיקה בפועל.
- תרשים חלוקת הזכויות. מתאמים למי יש זכויות ניהול, מי יוצר הצעות, מי רק מצביע. שינוי אסטרטגיית הספירה וביטול הצעות עוברים לחתימה מרובה — מכשיר אחד שנפרץ לא ישכתב את הכללים.
- הגדרת מרחבים. יוצרים מרחב ב-Snapshot, מחברים אסטרטגיות ספירה, מגדירים את הסף להגשת הצעה, את משך ההצבעה, את הקוורום ואת חלון ה-snapshot שלפיו נק�עות היתרות.
- מעגל בדיקות. עותק של המרחב ברשת בדיקה: מריצים האצלה, יציאה חלקית מהמאגר, הצבעה על גבול הקוורום וניסיון מניפולציה בהעברת טוקנים לאחר ה-snapshot.
- הצבעת פיילוט. החלטה אמיתית אחת מועברת במקביל לסדר הישן ומשווים את התוצאות — הפער נראה לפני שהמעגל הופך לעיקרי.
- העברת השליטה. מעבירים את הזכויות לכתובות הלקוח, מוציאים הרשאות בשמות מפורשים, מתעדים הוראות למנהלים.
בדיקת נכונות הספירה
שיטת ההשוואה נבנית על הצבעות היסטוריות: מחשבים אותן מחדש לפי האסטרטגיות החדשות ומשווים לתוצאות בפועל. פערים מפרקים לפי סיבות — הגירת טוקנים, העברות מאוחרות, משיכת נזילות.
תקנון תגובה לתקלות
לפני העברת השליטה מתעדים מי ובאילו מועדים עוצר את ההצבעה בעת שגיאה באסטרטגיה או פגיעה במפתח המנהל, כיצד מבוטלת הצעה ולאן מקצים את האירוע.
קונפיגורציות, תקנונים ותיעוד בפלט
פיתוח האינטגרציה מסתיים לא בהדגמה של הצבעה עובדת, אלא בהעברת ארטיפקטים שלפיהם צוות הלקוח ממשיך לעבוד בלעדינו. החבילה נכנסת למאגר ולבסיס הידע הפנימי.
תרשים הזכויות ורמות הגישה
- קובצי הקונפיגורציה של מרחב Snapshot: מערך אסטרטגיות חישוב המשקל, סף הקוורום, חלון ההצבעה וכללי אימות ההצעות — עם אפשרות לעריכה בלי בנייה מחדש.
- תרשים התפקידים: מי יוצר הצעות, מי משנה את הגדרות המרחב, מי חותם על החלטות, אילו פעולות דורשות שתי חתימות.
- מדיניות גישה: למי מוציאים זכויות ניהול, לפי איזה עיקרון מבטלים, כיצד מנהלים רשימת משתתפים עם זכות פרסום.
- תיאור אסטרטגיות הספירה: איזה משקל נותן כל נכס, באיזו גובה בלוק נק�ע החתך, כיצד נספרת ההאצלה.
הוראות למשתתפי ההצבעה
- עבור המחזיק: חיבור הארנק, חתימה על הודעה במקום טרנזקציה, בדיקת המשקל שנזקף לפני אישור הקול.
- עבור המנהל: כיצד להגיש הצעה, לקבוע מועדים, להפעיל מחדש את ההצבעה, מה לעשות בעת פער בתוצאות.
- ניתוח תקלות: הקול לא נזקף, המשקל השתנה לאחר החתך, הארנק אינו נתמך.
במסמך נפרד מובא תקנון העדכונים: סדר בדיקת האסטרטגיות החדשות, מי מאשר שינוי בהגדרות הקוורום, כיצד מוחזר עדכון כושל.
מקרה בוחן: כיצד הפסיקו לאבד קולות של משתתפים
הלקוח — ארגון אוטונומי מבוזר עם כמה אלפי מחזיקי טוקן והצבעה ב-Snapshot. ההחלטות התקבלו לפי תמונת מצב של היתרות, אך הקישור "snapshot — האצלה — חתימת הקול" לא הוגדר: חלק מהמשתתפים ראו שהמשקל שלהם לא נספר ודרשו לבחון מחדש את התוצאות.
מה היה לפני השינוי
תמונת המצב של היתרות נקבעה ברגע פרסום ההצעה, והעברות טוקנים והחלפת נציג בתוך חלון ההצבעה לא טופלו — החתימה עברה, אך לספירה נכנס ערך משקל מיושן. התוצאות נאספו ידנית: ייצוא רשימת החתימות, השוואת כתובות עם האצלה, השלמת הקוורום.
לפני השינוי: 6-7% מהקולות שהוגשו לא נספרו, ניתוח התוצאות ארך עד 11 ימים, שלוש מתוך עשר הצבעות הסתיימו במחלוקת ובבחינה מחדש.
מה התקבל לאחר ההפעלה
אסטרטגיית הספירה נקשר למספר הבלוק וספירת ההאצלה הועברה לרגע קביעת תמונת המצב, והחתימות החלו להיבדק אוטומטית עם הגעתן. הקוורום נספר עם סגירת החלון, הדוח על הקולות נוצר בלי השוואה ידנית — המהנדס מתחבר רק לניתוח אנומליות.
שיעור הקולות שלא נספרו ירד מתחת ל-0.5%, הזמן מהגשת ההצעה ועד התוצאה התקצר ל-5 ימים, תוצאות שנויות במחלוקת עם בחינה מחדש — אפס. המשתתפים הפסיקו לערער על הקוורום, והדיון חזר לתוכן ההצעות.
במה נבדלת הצבעה מחוץ לרשת מהצבעה ברשת הראשית?
ההבדל המרכזי — היכן נק�עת עובדת ההצבעה. במצב מחוץ לרשת המשתתף חותם על הודעה בארנקו: החתימה במקום פעולה מאשרת את זכות ההצבעה, אך אינה משנה את מצב הרשת ואינה דורשת עמלה על טרנזקציה. המשקל מחושב לפי תמונת מצב של היתרות בבלוק הנבחר, ולכן התוצאה נראית תוך דקות, ולא לאחר אישור בלוקים.
ברשת הראשית הקול הוא טרנזקציה. היא נרשמת במצב החוזה, לא ניתן לבטל או לשכתב אותה, אך כל פעולה עולה למשתתף בעמלת רשת ובזמן המתנה. מכאן הפריסה: סקרים המוניים ברשת אינם משתלמים, והביצוע של החלטות — רק שם.
| קריטריון | הצבעה מחוץ לרשת | הצבעה ברשת הראשית |
|---|---|---|
| פעולת המשתתף | חתימת ארנק | טרנזקציה עם עמלה |
| ספירת המשקל | תמונת מצב של היתרות בבלוק | מצב החוזה הנוכחי |
| היכן נשמרת התוצאה | חתימות והתוצאה הנספרת | מצב החוזה |
| זמן עד לתוצאה | דקות | תלוי בעומס הרשת |
| מתי בוחרים | סקרים, החלטות הצבעה, סינון יוזמות | תשלומים מהאוצר, החלפת פרמטרים, העברת זכויות |
Snapshot מכסה את הסכימה הראשונה: הצבעה מחוץ לרשת, ורישום ההחלטה ברשת הראשית נעשה בטרנזקציה נפרדת. היבריד כזה נותן דיון זול ותוצאה ניתנת לאימות — המשתתפים אינם משלמים על כל קול, ובמקביל הביצוע והמחבר שלו נשארים ברשת.
ספקות טכניים לפני הפעלת ההצבעה
השאלות שמהנדסים שואלים לפני הכנסת ההצבעה למעגל העבודה עוסקות לעיתים רחוקות בכלי עצמו — לרוב בחיבור למה שכבר עובד. להלן תשובות להתנגדויות שצצות כמעט בכל פרויקט.
האם זה תואם לניהול שכבר פרוס?
כן. הצבעה מחוץ לרשת (Snapshot) קוראת את חלוקת הזכויות בבלוק נבחר ברשת ואינה דורשת להמיר חוזים קיימים או לשנות את מודל הספירה. ניהול שכבר פרוס נשאר מקור המשקלות, והספירה נעשית מחוץ לשרשרת — אין צורך לבנות מחדש ולהעביר דבר.
כיצד נספרים טוקנים מואצלים?
המשקלות נלקחים מהמצב בבלוק מסוים: המצביע מקבל את סכום היתרה של עצמו וכל מה שהועבר לו, והמעביר מאבד את המשקל ואינו יכול להצביע שוב. ההאצלה נקשרת לכתובת, ולכן משתתף אחד יכול להחזיק במשקלות של כמה מחזיקים — חשוב лишь שתמונת המצב תיפול לחלון שבו ההאצלה הייתה פעילה.
מה מגן מפני מניפולציה?
תמונת המצב נעשית לפי בלוק קודם, ולא לפי הנוכחי, ולכן אי אפשר לקנות טוקנים נוספים לאחר תחילת ההצבעה ולהשפיע על התוצאה. בנוסף מגבילים את חוג המצביעים בסף זכויות ליצירת הצעה, ואסטרטגיות הספירה מחריגות מאגרים ופוזיציות שאולות, אם הן לא אמורות להשתתף.
מתי בדיוק נסגרת ההצבעה?
רגע הסגירה נקבע במפורש בעת יצירת ההצעה ונספר לפי זמן הבלוקים, ולא לפי שעון השרת, — התוצאה הופכת לשחזורית. לאחר הסגירה חישוב מחדש לפי אותה תמונת מצב נותן תוצאה זהה לכל בודק עצמאי.
נדון במשימה ונחזור עם תוכנית הטמעה
להערכת האינטגרציה עם Snapshot די לתאר את מבנה הממשל הנוכחי: כיצד מתקבלות החלטות, מי משתתף בהן ואילו נכסים נותנים משקל לקול. נפרק את התרשים, נבהיר נקודות שנויות במחלוקת ונחזור עם תוכנית הטמעה ולוחות זמנים לפי שלבים.
מה לשלוח לניתוח:
- תרשים הממשל: מי יוזם הצעות, אילו ספי קוורום ורוב חלים, כמה זמן מוקדש להצבעה;
- רשימת הנכסים: טוקנים, פוזיציות נעולות, חלקים במאגרים, NFT — כל מה שצריך להיספר;
- תפקידי המשתתפים: מחזיקים, נציגים, מועצה או ארנק עם חתימה מרובה, מי מבצע את ההחלטות שהתקבלו;
- כללי ספירת הקולות: לפי היתרה ברגע הקביעה, לפי האצלה או לפי כמה אסטרטגיות בו-זמנית;
- היכן ההצבעה מתקיימת כיום — פורום, צ'אטים, טבלאות ידניות — וכיצד התוצאה הופכת לפעולה;
- דרישות לשקיפות: רשימת קולות פומבית, ייצוא היסטוריה, הרשאות להגדרות המרחב;
- טיוטת מרחב או רשת בדיקה, אם הן כבר קיימות.
תוכנית ההטמעה כוללת הגדרת המרחב ואסטרטגיות ההצבעה, קישור לארנק המבצע, בדיקה ברשת בדיקה, סדר העברת ההצבעות הקיימות והעברת התיעוד לצוות שלכם. הערכת העבודה נשענת על רשימת הנכסים ומספר התפקידים, ולכן דיוק הנתונים הללו משפיע ישירות על לוח הזמנים.
הדיון במשימה תופס שיחה אחת: תארו את המצב בצורה חופשית — נחזור עם תוכנית עבודה והערכה.







