בניית מערכת חלוקת עמלות לפרוטוקול שלך

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

שירותי פיתוח בלוקצ'יין

שאלות נפוצות

העבודות האחרונות

  • פיתוח אתר חברה B2B ADVANCE
    פיתוח אתר חברה B2B ADVANCE
    1482
  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1336
  • פיתוח אתר עבור BELFINGROUP
    פיתוח אתר עבור BELFINGROUP
    1035
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1294
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    738
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1032

בניית מערכת חלוקת עמלות לפרוטוקול שלך

תארו לעצמכם: פרוטוקול ה-DeFi שלכם מייצר 100 אלף דולר בעמלות מדי יום, אבל מחזיקי הטוקנים לא מקבלים כלום. Uniswap V3 התמודדה עם זה לפני הפעלת מתג העמלות — הממשל הפנה חלק מהעמלות לאוצר, מה שדרש מערכת אמינה לאיסוף, צבירה וחלוקה. אנחנו בונים מערכות כאלה במפתח מלא עם אופטימיזציית גז ואבטחה בראש. Synthetix StakingRewards — תבנית הייחוס שאנחנו מתאימים לארכיטקטורה שלך.

שתי תבניות חלוקה: Push לעומת Pull

למה חלוקת Pull עדיפה על Push?

חלוקת Push — שליחה לכולם. החוזה צובר עמלות ומפעיל מעת לעת את distribute(), שעובר על רשימת המחזיקים ומעביר לכל אחד את חלקו. פשוט להבנה, מורכב ליישום: לולאה בלתי מוגבלת היא וקטור קלאסי לניצול גז. עם 10,000 מחזיקים, העסקה חורגת ממגבלת הגז של הבלוק (דורשת כ-3 מיליון גז במקום 150 אלף טיפוסיים).

מקובל רק במערכות עם מגבלה מפורשת על מספר משתתפים ועיבוד בקבוצות (pagination). ברוב המקרים, זו הבחירה הלא נכונה. חלוקת Pull מפחיתה את עלויות הגז לתביעות פי 4, קריטי כשמתרחבים לאלפי מחזיקים.

חלוקת Pull — משתמשים תובעים בעצמם. החוזה שומר על rewardPerTokenStored — תגמול מצטבר ליחידת stake מאז ההשקה. בכל הפקדה/משיכה/תביעה, הוא מעדכן את userRewardPerTokenPaid עבור המשתמש הספציפי. תגמול = (rewardPerTokenStored - userRewardPerTokenPaid) * balance.

זו המתמטיקה מ-Synthetix StakingRewards — אחת התבניות המועתקות ביותר ב-DeFi. תכונה מרכזית: מורכבות גז O(1) לתביעה, בלתי תלויה במספר המחזיקים.

function earned(address account) public view returns (uint256) {
    return (
        (balanceOf[account] * (rewardPerToken() - userRewardPerTokenPaid[account])) / 1e18
    ) + rewards[account];
}

אנחנו משתמשים בתבנית זו כבסיס לרוב מערכות חלוקת העמלות.

מאפיין חלוקת Push חלוקת Pull
גז לתביעה ~200,000 + O(N) ~50,000 O(1)
בעיה עם 10,000 מחזיקים חורגת מהמגבלה עלייה מינימלית
מורכבות באגים גבוהה (חזרות, frontrun) בינונית (מתמטיקה)
מדרגיות ירודה מצוינת

איסוף עמלות והמרה

איך להמיר עמלות ללא הפסד?

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

חוזה FeeCollector — אוסף עמלות מכל חוזי המקור. מופעל מעת לעת על ידי keeper (Chainlink Automation, Gelato) או כל משתמש.

המרה דרך DEX — החלפת עמלות שנצברו לטוקן היעד דרך Uniswap V3. חשוב: המרת נפח גדול בבת אחת יוצרת השפעת מחיר והזדמנויות MEV. פתרון: להמיר בקבוצות קטנות באמצעות החלפות מכוונות TWAP או להשתמש ב-Cow Protocol להחלפות מוגנות MEV. זה מפחית החלקה ב-20-30%.

חלוקה במספר טוקנים — לפעמים עדיף לא להמיר אלא לחלק בטוקני העמלה המקוריים. Curve מחלקת טוקני 3CRV LP (סל stablecoin) במקום להמיר. זה יקר יותר ליישום (staking עם תגמולים מרובים) אבל שומר על ערך ללא החלקה.

חלוקה רב-ערוצית

לעתים רחוקות כל העמלה הולכת רק למחזיקים. תכנית טיפוסית:

נמען חלק מנגנון
מחזיקי טוקן 40-60% חלוקת Pull, rewardPerToken
אוצר 20-30% העברה ישירה ל-multisig
קרן ביטוח 10-20% צבירה לכיסוי חובות אבודים
שריפה 5-10% function earned(address account) public view returns (uint256) { return ( (balanceOf[account] * (rewardPerToken() - userRewardPerTokenPaid[account])) / 1e18 ) + rewards[account]; }

הפרופורציות נקבעות דרך פרמטרים בשליטת הממשל עם timelock. חוזה FeeDistributor קורא את הפרופורציות הנוכחיות בכל קריאה ל-token.burn().

מודל veToken (Vote-Escrowed)

Curve הציגה מודל שבו כדי לקבל עמלות, חייבים לנעול CRV עד 4 שנים. ככל שהנעילה ארוכה יותר, כך יותר veCRV, וחלק העמלות גדול יותר. זה מיישר אינטרסים: מחזיקים לטווח ארוך מקבלים יותר. היישום מורכב יותר מ-staking בסיסי — דורש חישוב דעיכה של כוח הצבעה, checkpoints תקופתיים, אינטגרציה עם הצבעות gauge.

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

מה כלול

  • ביקורת ארכיטקטורה קיימת ובחירת תבנית אופטימלית (pull/push/hybrid).
  • פיתוח חוזים חכמים: FeeCollector, FeeDistributor, Staking (עם הגנת reentrancy, בדיקות OpenZeppelin).
  • אינטגרציה עם DEX להמרה (Uniswap V3, Cow Protocol).
  • כתיבת בדיקות (Foundry, fuzz, fork tests) המכסות מקרי קצה.
  • פריסה ואימות חוזים ב-Etherscan.
  • תיעוד לממשל ולמבקרים.
  • תמיכה לאחר השקה (ניטור, תיקונים חמים).

אנחנו מבטיחים ללא פגיעויות reentrancy או frontrunning. ניסיון הצוות: 7+ שנים בבלוקצ'יין, 50+ חוזים חכמים, 5 שנים בשוק. צרו קשר לביקורת ארכיטקטורה — נעריך את הפרויקט שלכם תוך יום אחד. הזמינו פיתוח מערכת חלוקת עמלות – קבלו ייעוץ ארכיטקטורה.

אילו סיכונים מסתירה חלוקת Push?

חלוקת Push עם מספר גדול של מחזיקים יכולה לחרוג ממגבלת הגז של הבלוק, וגם חשופה להתקפות frontrunning ברגע קריאת distribute(). לפרוטוקולים גדולים, חלוקת Pull בטוחה יותר.

תהליך והערכות זמנים

עיצוב (2-3 ימים). קביעת חוזי מקור, טוקן יעד, פרופורציות חלוקה, מנגנון keeper להמרה תקופתית.

פיתוח (5-8 ימים). חוזה FeeCollector + FeeDistributor + Staking. בדיקות עם Foundry: חישוב נכון של earned() תחת שינוי בהיצע הכולל, טיפול נכון בהפקדה/משיכה באותו בלוק כמו distribute().

בדיקות אינטגרציה. Fork test עם בריכת Uniswap V3 אמיתית לאימות המרת עמלות. Fuzz tests על מתמטיקת החלוקה — מקרי קצה עם יתרות קטנות או גדולות מאוד.

מערכת בסיסית (חלוקת pull, טוקן תגמול אחד, איסוף תקופתי) — שבוע אחד. עם המרת DEX ותגמולים מרובים — 1.5-2 שבועות. מנגנון veToken — תוספת של 2-3 שבועות. העלות מחושבת באופן אישי לפי מורכבות וביקורת נדרשת.