

אחת הבעיות של Ethereum, או כל בלוקצ'יין, היא שהוא גדל בגודלו עם הזמן. משמעות הדבר היא עלייה במורכבות הקוד שלו ובדרישות האחסון שלו.
בלוקצ'יין חייב לשמור את כל הנתונים לאורך ההיסטוריה שלו, אשר צריכים להיות מאוחסנים על ידי כל הלקוחות ולהוריד על ידי לקוחות חדשים. זה מוביל לעלייה מתמדת בעומס הלקוח ובזמן הסנכרון.
יתרה מכך, מורכבות הקוד עולה עם הזמן מכיוון ש"קל יותר להוסיף פיצ'ר חדש מאשר להסיר ישן", כתב ויטאליק בוטרין בבלוג שלו.
לכן, Buterin מאמין שמפתחים צריכים לפעול באופן אקטיבי לבלימת מגמות גדלות אלה תוך שמירה על קביעות Ethereum. לפיכך, Buterin הציגה את The Purge – תוכנית עם שלושה חלקים שמטרתם לפשט את הבלוקצ'יין ולהפחית את עומס הנתונים שלו.
חלק 1: תפוגת ההיסטוריה
צומת Ethereum מסונכרן במלואו דורש כעת כ-1.1 TB של שטח אחסון עבור לקוח הביצוע. זה דורש עוד כמה מאות גיגה-בייט ללקוח הקונצנזוס. לדברי בוטרין, רוב הנתונים הללו הם היסטוריה, כמו נתונים על בלוקים היסטוריים, עסקאות וקבלות, שרבים מהם בני מספר שנים. כדי לאחסן את כל ההיסטוריה הזו, שטח הדיסק הנדרש ממשיך לגדול במאות גיגה-בייט מדי שנה.
בוטרין מאמין שניתן לפתור את הבעיה על ידי משהו שנקרא תפוגת היסטוריה.
כל בלוק ב-blockchain מצביע על הקודם באמצעות קישור hash. משמעות הדבר היא שהסכמה על החסימה הנוכחית מעידה על קונצנזוס על ההיסטוריה.
לדברי בוטרין, כל עוד יש לרשת הסכמה על החסימה הנוכחית, כל נתון היסטורי קשור יכול להינתן על ידי שחקן יחיד באמצעות הוכחת מרקל, המאפשרת לכל אחד לאמת את תקינותו. זה אומר שבמקום שכל צומת יאחסן את כל הנתונים, כל צומת יכול לאחסן אחוז קטן מהנתונים, מה שמפחית את דרישות האחסון.
Buterin מציע בעצם לאמץ את מודל הפעולה של רשתות טורנט, כאשר כל משתתף מאחסן ומפיץ רק חלק קטן מהנתונים המאוחסנים ומופצים על ידי הרשת.
Ethereum כבר נקטה צעדים לצמצום דרישות האחסון – למידע מסוים יש כעת תאריך תפוגה. לדוגמה, קוביות קונצנזוס מאוחסנות במשך שישה חודשים וכתמים מאוחסנים למשך 18 ימים.
EIP-4444 הוא צעד נוסף בכיוון הזה – הוא שואף להגביל את תקופת האחסון עבור בלוקים היסטוריים וקבלות לשנה אחת. המטרה ארוכת הטווח, לעומת זאת, היא שתהיה תקופה קבועה אחת, כמו 18 ימים, שבמהלכה כל צומת צריך לאחסן הכל ואז הנתונים הישנים מאוחסנים בצורה מבוזרת ברשת עמית לעמית.
חלק 2: תפוגת המדינה
לדברי בוטרין, הסרת הצורך של לקוחות לאחסן את כל ההיסטוריה אינה פותרת לחלוטין את בעיית דרישות האחסון הנפיחות. הסיבה לכך היא שלקוח צריך להגדיל את קיבולת האחסון שלו בכ-50 ג'יגה-בייט מדי שנה בגלל "הצמיחה המתמשכת למדינה: יתרות וחסרונות בחשבון, קוד חוזה ואחסון חוזה."
ניתן ליצור אובייקט מצב חדש בשלוש דרכים – על ידי יצירת חשבון חדש, על ידי שליחת ETH לחשבון חדש ועל ידי הגדרת חריץ אחסון רדום בעבר. ברגע שנוצר אובייקט מצב, הוא נמצא במצב לנצח.
Buterin מאמינה שהפתרון לפקיעה אוטומטית של אובייקטי מדינה לאורך זמן צריך להיות יעיל, ידידותי למשתמש וידידותי למפתחים. המשמעות היא שהפתרון לא צריך לדרוש כמויות גדולות של חישוב, שמשתמשים לא צריכים לאבד את הגישה לאסימונים שלהם אם הם משאירים אותם ללא נגיעה במשך שנים, והמפתחים לא יפריעו מאוד בתהליך.
בוטרין מציע שני סוגים של "פתרונות ידועים פחות גרועים":
- פתרונות חלקיים לתפוגת המדינה
- הצעות תפוגה של מדינה המבוססות על תקופת כתובת.
תוקף מצב חלקי
הצעות תפוגה חלקיות של המדינה פועלות על בסיס העיקרון של חלוקת המדינה ל"נתחים". זה ידרוש מכולם לאחסן את "מפה ברמה העליונה" שחלקים ממנה ריקים או לא ריקים לנצח. הנתונים בתוך הנתחים מאוחסנים רק אם ניגשו אליהם לאחרונה. מנגנון "תחיית המתים" מאפשר לכל אחד להחזיר את הנתונים בחתיכה אם הם לא מאוחסנים על ידי מתן הוכחה למה היו הנתונים.
תפוגה של מצב מבוסס-תקופת כתובת
תפוגה של מדינה מבוססת תקופת כתובת מציעה רשימה הולכת וגדלה של עצי מדינה במקום רק אחד שמאחסן את כל המדינה. כל מצב שנקרא או נכתב מתעדכן לעץ המצב העדכני ביותר. עץ מדינה ריק חדש מתווסף אחת לתקופה, שיכולה להיות שנה.
בתרחיש זה, עצי המדינה הישנים יותר קפואים וצמתים מלאים צריכים לאחסן רק את שני העצים האחרונים. אם אובייקט מדינה הופך לחלק מעץ שפג תוקפו, ניתן לקרוא אותו או לכתוב אותו, אך העסקה תדרוש הוכחת מרקל עבורו. לאחר העסקה, הוא יתווסף בחזרה לעץ האחרון.
ניקוי תכונה
עם הזמן, כל הפרוטוקולים הופכים למורכבים, לא משנה כמה פשוט התחילו.
בוטרין כתב:
"אם אנחנו לא רוצים שהאת'ריום ייכנס לחור שחור של מורכבות הולכת וגוברת, אנחנו צריכים לעשות אחד משני דברים: (i) להפסיק לבצע שינויים ו לאבן את הפרוטוקול(ii) להיות מסוגל למעשה לְהַסִיר תכונות ו לְהַפחִית מוּרכָּבוּת."
לפי Buterin, ניקוי המורכבות של Ethereum דורש מספר תיקונים קטנים, כמו הסרת ה-OPCODE SELFDESTRUCT, הסרת סוגי טרנזקציות ישנות וועדות שרשרת משואות, רפורמה ב-LOG ועוד. Buterin גם הציע לפשט את מכניקת הגז, להסיר את יכולת הצפייה בגז ושיפורים לניתוח סטטי.