Skip to content
כל מדריכי האופציות
חשבונות חכמים ב-Ethereum12 דקות קריאה

חשבונות חכמים ב-Ethereum: UserOperation, bundler וחסות ל-gas

כך UserOperation של ERC-4337 עוברת דרך bundler ו-EntryPoint, כיצד paymaster נותן חסות ל-gas, ומה הקשר בין שחזור חשבון למשמורת.

במדריך הזהחשבון חכם שם כללי הרשאה בקוד החוזה

תקציר קצר

ERC-4337 מאפשר לחשבון חוזה לשלוח UserOperation לפי כללים משלו במסלול נפרד מעסקת EOA. Bundler קורא ל-EntryPoint ו-paymaster עשוי לממן gas. אין בכך הבטחה לשחזור, לעסקאות חינם או להעדר משמורת.

חשבון חכם שם כללי הרשאה בקוד החוזה

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

המדריך לעסקאות Ethereum ממתינות מתאר מסלול EOA שונה מ-ERC-4337. חשבון חכם הוא חוזה שיכול להחזיק נכסים ולהפעיל קריאות.

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

ERC-4337 מגדיר ממשק לאישור ולהפעלה של פעולות, אך לא ארנק מסוים או מדיניות שחזור. Ethereum.org מציג מפתחות גיבוי והרשאות מוגבלות כאפשרויות, לא כתכונות בכל ארנק. השם „ארנק חכם” לבדו לא מגלה מי שולט בו.

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

UserOperation עדיין אינה עסקת Ethereum שנכללה בבלוק

UserOperation מתארת את הפעולה שהחשבון החכם מבקש לבצע. בדרך כלל היא כוללת את כתובת החשבון השולח, nonce של החשבון, נתוני קריאה, חתימה, מגבלות gas ותנאי עמלה. ייתכנו גם פרטי factory ליצירת חשבון או נתוני paymaster לחסות. השדות המדויקים תלויים בגרסת EntryPoint.

במקום לשלוח אותה ישירות לרשת באמצעות eth_sendTransaction, הארנק שולח אותה ל-bundler או relay שתומך ב-RPC של ERC-4337, כמו eth_sendUserOperation. הבקשה עוברת דרך מאגר UserOperation נפרד ממאגר עסקאות EOA.

ה-hash של UserOperation מזהה את הבקשה; לעסקת הרשת שה-bundler יוצר יש hash וקבלה נפרדים. ERC-7769 מגדיר ממשקי RPC לשליחה ולעיון בתוצאות. תשובת bundler עשויה לומר שהבקשה עברה את הבדיקות שלו ונכנסה למאגר שלו.

היא לא מוכיחה שהבקשה נכללה בבלוק או שהפעולה באפליקציה הצליחה.

הפצה ל-bundler אחר תלויה בתשתית ובמדיניות. הבדילו בין אישור קבלה של ספק לבין תוצאה שנרשמה ברשת.

Bundler מדמה את האימות ומכין קריאה לרשת

Bundler מקבל UserOperation, בודק התאמה לגרסת EntryPoint שלו ומדמה את לוגיקת האימות של החשבון ושל paymaster. הוא בודק חתימה, אמון ב-EntryPoint, nonce, gas ותנאי חסות. הוא יכול לדחות פעולה שאינה עומדת בכללים או נכשלת בסימולציה.

מדריך bundler של ERC-4337 מסביר סימולציה והגשת חבילות. לאחר מכן הוא בוחר פעולה תקינה אחת או יותר ויוצר עסקת Ethereum רגילה שקוראת ל-handleOps של EntryPoint. הכללת העסקה בבלוק תלויה עדיין ביצירת בלוקים ובמצב הרשת.

קבלת hash של UserOperation אינה הוכחה לביצוע ברשת הקנונית. מאגר UserOperation נפרד ממאגר EOA, ולא כל ספק רואה בהכרח אותן בקשות. Bundler עשוי לדחות פעולה או לעכב אותה; רשתות, גרסאות EntryPoint ומדיניות נתמכות משתנות.

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

תרשים ללא מילים מציג פעולה חתומה העוברת דרך bundler ו-EntryPoint אל חשבון חכם, כשנותן חסות אופציונלי מממן את הגז
ERC-4337 מפריד בין בקשה חתומה, הגשת bundler, אימות החשבון ומימון גז אופציונלי

EntryPoint בודק הרשאה ואז קורא לחשבון

EntryPoint מקבל את קריאת handleOps מה-bundler וקורא לפונקציית האימות של כל חשבון. החשבון בודק שהקריאה הגיעה דרך EntryPoint מהימן, וכן את החתימה ואת כללי ההרשאה שלו. Nonce של ERC-4337 כולל מפתח בן 192 ביטים ורצף בן 64 ביטים.

EntryPoint מאמת ומקדם את הרצף לכל חשבון ומפתח; החשבון יכול לתת למפתח משמעות מותאמת או להוסיף בדיקות משלו. מדריך EntryPoint של ERC-4337 מסביר את שלבי האימות והביצוע.

Paymaster אופציונלי בודק גם אם הוא מוכן לתת חסות לפעולה.

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

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

Paymaster נותן חסות ל-gas רק אם אישר את הפעולה

אם UserOperation מכילה נתוני paymaster, EntryPoint שואל את החוזה אם הוא מוכן לתת חסות. כך אפליקציה יכולה לכסות עמלות או לאפשר התחלה בלי ETH בחשבון. בחלק מהתכנונים אפשר לשלם באסימונים או להציב תנאי זכאות אחרים; הדבר תלוי בארנק וב-paymaster. חסות אינה מעלימה את העלות.

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

מדריך paymaster של ERC-4337 ו-EIP-4337 מתארים את הבדיקה והסליקה. עמלה שמוצגת כאפס באפליקציה אינה אומרת שאין עלות.

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

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

בדקו בנפרד קריאות מרובות והעמלות שלהן

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

בדוגמה היפותטית, עלות ה-gas בפועל של פעולה בחסות שאושרה היא 0.0012 ETH. ייתכן שהיא תוסדר מפיקדון ה-paymaster אצל EntryPoint ולא מיתרת המשתמש. זהו מספר להמחשה, לא הצעת מחיר עדכנית. העלות בפועל תלויה בכמות ה-gas, בתנאי העמלה וברשת. איגוד אינו בהכרח זול או בטוח יותר.

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

מדריך עמלות Ethereum מסביר את שדות העמלה.

מימוש החשבון קובע שחזור; ERC-4337 אינו קובע אותו

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

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

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

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

בדקו את הפעולה ואת מסלול השליטה לפני שליחה

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

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

אם UserOperation מתעכבת, אל תשתמשו אוטומטית ב„האצה” או „ביטול” של עסקת EOA. חפשו קודם את hash הפעולה ואת הקבלה שלה. אם hash של עסקת bundler ידוע, בדקו גם קבלת בלוק ותוצאת ביצוע. קבלות RPC עשויות להפריד בין העלות וההצלחה של פעולה אחת לבין קבלת כל החבילה.

שאלות נפוצות

Q1האם UserOperation היא אותה פעולה כמו עסקת Ethereum?

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

Q2אם יש paymaster, המשתמש אינו משלם gas?

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

Q3האם ניתן לשחזר ארנק ERC-4337 אחרי אובדן מפתח?

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

מקורות וקריאה נוספת

דיווח על בעיה

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

בדיקה מהירה

סיימת לקרוא? בדוק את עצמך ב־3 שאלות

שאלה 1 / 3

שאלה 01

Bundler החזיר hash של UserOperation. מה הדבר מוכיח לבדו?

בחר תשובה כדי לראות את ההסבר

מילון מונחי אופציות

עסקאות Ethereum ממתינותהסבר על עסקאות Ethereum ממתינות: nonce, החלפה וביטולהבינו מדוע עסקאות Ethereum ממתינות, כיצד ערכי nonce מסדרים את עסקאות החשבון, ומה פעולות ההאצה והביטול בארנק יכולות לעשות ומה לא.עמלות גז ב-Ethereumעמלות גז ב-Ethereum: עמלת בסיס, עמלת עדיפות ומגבלת גזלמדו מה פירוש יחידות גז, מגבלת גז, עמלת בסיס, עמלת עדיפות ועמלה מרבית ב-Ethereum, ואז חשבו את העלות בפועל של עסקה.מדריך לשחזור ארנק קריפטוביטוי שחזור לארנק קריפטו: גיבוי, שחזור וביטוי סיסמהלמדו כיצד ביטוי שחזור קשור למפתחות פרטיים, איך לשמור גיבוי לא מקוון ומדוע ביטוי סיסמה משנה את השחזוריסודות האופציותמה המשמעות של בתוך הכסף, בכסף ומחוץ לכסף?למדו כיצד התוויות בתוך הכסף, בכסף ומחוץ לכסף פועלות בקולים ובפוטים, בעזרת דוגמאות לשווי פנימי ולנקודת איזוןיסודות האופציותמהי אופציית קול?הבינו את יסודות אופציות הקול בעזרת הגדרה פשוטה, דוגמאות למחירי מימוש, חישוב נקודת האיזון וההשפעה האפשרית של הקצאה או מימוש מוקדם בעת הפקיעה