מהי מכונה וירטואלית של Ethereum (EVM) וכיצד היא פועלת?

Ether (ETH), שהוא המטבע הקריפטו השני בגודלו במונחים של שווי שוק, פופולרי בקרב משקיעי מטבעות קריפטוגרפיים בגלל אסימון ה-ETH המקורי שלו. עם זאת, שפת התכנות המקורית שלה Solidity ו-Ethereum Virtual Machine (EVM) מסייעות להערצה שהיא מקבלת מקהילת המפתחים. למעשה, ה הבלוק ממשיך למשוך יישום מבוזר (DApp) מפתחים בשל הגמישות שלה, המגוון העצום של כלי מפתחים הזמינים ובסיס המשתמשים הגדול של הפלטפורמה.

מהווה את הליבה של ארכיטקטורת הבלוקצ'יין, ה-EVM היא התוכנית שמבצעת את קוד היישום שלה או חוזים חכמים, כפי שהם מכונים, מספקים עבורם סביבת זמן ריצה הפועלת על גבי רשת Ethereum. יתרה מכך, ה-EVM הוא שלם של Turing ובכך יכול להריץ כל תוכנית מקודדת בכל שפת תכנות, ובכך לאפשר למפתחים ליצור בקלות חוזים חכמים ו-DApps מותאמים אישית עבור הצמיחה המתפתחת Web3 חלל. 

בנוסף לפונקציות החשובות הללו, ל-EVM יש גישה לכל הצמתים ברשת, מטפלת בביצוע חוזים חכמים ומטפלת ביעילות בכל העסקאות ב-Ethereum blockchain, מה שהופך אותה לאחת מהמכונות הוירטואליות החזקות ביותר שקיימות כיום.

מהי Ethereum Virtual Machine (EVM) וכיצד היא פועלת?

הוגה ב-2013 על ידי מתכנת ויטליק בוטרין, רשת Ethereum חייבת את הצלחתה הפנומנלית בתור הבלוקצ'יין המועדף על מפתחי DApp ל-Ethereum Virtual Machine (EVM) שעוצב על ידי Gavin Wood במהלך כהונתו ב-Ethereum. EVM נכתב ב-C++ ובאמצעות מהדר LLVM Project, EVM היא מכונת מצבים מיוחדת הפועלת ברציפות ושפעולותיה הבלתי ניתנות לשינוי קובעות את המצב של כל בלוק ב-Ethereum blockchain. 

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

כדי להבין מה עושה מכונה וירטואלית של Ethereum, צריך להסתכל על כל אחת מהפונקציות השונות שהיא משרתת בהבטחת פעולה חלקה של רשת Ethereum. עבור כל קלט שהוא מקבל, ה-EVM מייצר פלט שהוא דטרמיניסטי באופיו ועוקב אחר פונקציה מתמטית במובן הפשוט ביותר. 

פועל כמו מכונת מחסנית שדוחפת ערכים ארעיים אל מחסנית דחיפה וממנה, ל-EVM יש עומק של 1024 פריטים, כאשר כל אחד מהם הוא מילה של 256 סיביות. הוא גם שומר על זיכרון זמני בצורה של מערך בתים, המשתנה בין שתי עסקאות ב-Ethereum blockchain. קודי חוזים חכמים שהורכבו מבוצעים על ידי ה-EVM בצורה של אוסף של 140 קודים סטנדרטיים, בעוד שפעולות מחסניות אחרות ספציפיות לבלוקצ'יין מיושמות גם על ידה.

סכמטיקה של מכונה וירטואלית של Ethereum

לפיכך, ל-EVM יש מצב מכונה שהוא תנודתי מטבעו במהלך עיבוד של כל עסקה ומצב גלובלי או עולמי שמכיל מידע לגבי החשבונות השונים המנוהלים ב-Ethereum blockchain. כל הפעולות נשלטות על ידי קוד ה-EVM, אשר כשלעצמו עבר מספר איטרציות מאז השקת רשת Ethereum ב-2015, מה שהוביל לקיומם של יישומים שונים של ה-EVM הנמצאים כיום בשימוש.

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

מהי המטרה של המכונה הוירטואלית של Ethereum (EVM)?

ה-EVM הפעיל באופן אמין את כל היישומים הפועלים ברשת Ethereum ללא דיווח על זמן השבתה גדול. עבור מפתחים, ה-EVM פועלת כתוכנית הכוללת שמריצה תוכניות הפעלה קטנות יותר הידועות כחוזים חכמים ב-Ethereum, תוך שהיא מספקת להם את החופש לכתוב את החוזים החכמים הללו. מגוון שפות תכנות כולל Solidity, Vyper, Python ו-Yul, בין היתר.

בשל הגמישות הזו שמציעה ה-EVM, הבלוקצ'יין של Ethereum הוליד אלפי DApps ב- מימון מבוזר (DeFi) ו אסימון בלתי -פטריות (NFT) מֶרחָב. כל אחד מה-DApps הללו והחוזים החכמים מהם הם מורכבים מומרים לקוד בתים המוזן ל-EVM ומופץ בין כל הצמתים ברשת Ethereum. כאשר חוזה חכם נפרס, ה-EVM אחראי לתקשורת עם כל הצמתים ולביצוע שינויי מצב כאשר הושג הסכמה.

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

היתרונות של Ethereum Virtual Machine (EVM)

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

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

קדושת התוצאה היא מה שהופך את ה-EVM, בפרט, ואת הבלוקצ'יין של Ethereum באופן כללי למתאימים היטב להתרחבות בת-קיימא של מערכת האקולוגית של DApps והחוזה החכם Ethereum. הוסף לזה את ספריית הקודים הסטנדרטיים הזמינים למפתחים לבחירה, מספר הולך וגדל של תואמי EVM שכבה 2 בלוקצ'יין ומספר רב של מקרי שימוש פוטנציאליים ב-EVM אפשרי, וקל לראות מדוע ה-EVM היא הפלטפורמה המועדפת עבור פיתוח Web3.

החסרונות של Ethereum Virtual Machine (EVM)

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

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

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

העתיד של EVMs

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

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

עם זאת, כאשר פרוטוקול Ethereum השלים בהצלחה את המיזוג בספטמבר 2022, היעד הבא הוא לעבור מ EVM ל-Ethereum WebAssembly (eWASM). תוכנן להיות מאוד מודולרי ובלתי תלוי בפלטפורמה, eWASM נחשב כמחליף המשחקים הבא עבור פרוטוקול Ethereum ויכול להניע בלוקצ'יין אחרים להשתמש בסביבת זמן ריצה זו גם עבור חוזים חכמים. עם זאת, האם eWASMs יחליפו את EVM כמנגנון המהימן ביותר עבור חוזים חכמים היא שאלה שרק הזמן יענה עליה.