บทนำเกี่ยวกับ Ethereum Virtual Machine (EVM): กลไกที่ขับเคลื่อนสัญญาอัจฉริยะทุกสัญญา
ผมจำได้ว่าครั้งแรกที่ค่าธรรมเนียมแก๊สกินเงินธุรกรรมของผมไปครึ่งหนึ่ง มันเกิดขึ้นในปี 2021 ผมพยายามสร้างเหรียญบน OpenSea และเครือข่ายต้องการเงิน 87 ดอลลาร์เพื่อประมวลผล ในตอนนั้นเองที่ผมตระหนักว่าผมไม่เข้าใจจริงๆ ว่าเกิดอะไรขึ้นเบื้องหลัง ทำไมมันถึงแพงขนาดนั้น? เงินหายไปไหน? อะไรคือสิ่งที่ดำเนินการธุรกรรมของผมจริงๆ? คำตอบของทั้งสามคำถามก็คือสิ่งเดียวกัน: เครื่องเสมือน Ethereum (Ethereum Virtual Machine)
คนส่วนใหญ่ในวงการคริปโตคงเคยได้ยินคำว่า "EVM" มาบ้างแล้ว แต่มีน้อยคนนักที่จะบอกได้ว่ามันทำอะไร ซึ่งนั่นสำคัญมาก เพราะ EVM มีบทบาทสำคัญในการกำหนดรูปแบบการทำงานเกือบทุกอย่างบน Ethereum และบนเครือข่ายกว่า 390 เครือข่ายที่ใช้ดีไซน์เดียวกัน ปัจจุบันมีมูลค่า DeFi มากกว่า 190 พันล้านดอลลาร์อยู่ในเครือข่าย EVM หากคุณเคยใช้ MetaMask แลกเปลี่ยนโทเค็น หรือคลิกปุ่มบน dapp (แอปพลิเคชันแบบกระจายอำนาจ หรือ dapps) EVM ก็กำลังทำงานอยู่เบื้องหลัง โหนดต่างๆ จะดำเนินการสัญญาอัจฉริยะบนเครือข่ายเหล่านั้น และ EVM คือสิ่งที่ทำให้การเรียกใช้งานเหล่านั้นเกิดขึ้นจริง
งั้นเรามาวิเคราะห์กันอย่างจริงจังเลยดีกว่า ไม่ใช่แบบในตำราเรียนนะ แต่เป็นแบบที่ใช้กันจริงๆ
Ethereum Virtual Machine คืออะไร และทำไมจึงมีความสำคัญ
เอาล่ะ มาเริ่มจากเวอร์ชันที่ง่ายที่สุดก่อน คุณรู้จักแอปเครื่องคิดเลขไหม? พิมพ์ 2 + 2 ก็ได้ 4 น่าเบื่อใช่ไหม? ทีนี้ลองนึกภาพเครื่องคิดเลขนั้นทำงานพร้อมกันบนโทรศัพท์ 10,000 เครื่อง ทุกเครื่องจะได้คำตอบเดียวกัน ถ้าเครื่องหนึ่งพยายามบอกว่า "2 + 2 = 5" อีก 9,999 เครื่องจะปฏิเสธทันที ไม่มีใครควบคุมเครื่องคิดเลขได้ ไม่มีใครปิดมันได้ และไม่มีใครโกงมันได้ นั่นคือสิ่งที่ EVM ทำโดยพื้นฐานแล้ว เพียงแต่แทนที่จะเป็นการบ้านคณิตศาสตร์ มันทำงานกับสัญญาอัจฉริยะที่เคลื่อนย้ายเงินจริงไปมา
ผู้เชี่ยวชาญด้านคอมพิวเตอร์เรียกสิ่งนี้ว่าเครื่องสถานะ (State Machine) Ethereum จะติดตามข้อมูลจำนวนมหาศาล เช่น ใครเป็นเจ้าของเหรียญอะไรบ้าง มีสัญญาอัจฉริยะอะไรบ้าง มีอีเธอร์อยู่ในแต่ละที่อยู่เท่าไหร่ และแต่ละสัญญาเก็บข้อมูลอะไรบ้าง ทั้งหมดนี้คือ "สถานะ" คุณส่งธุรกรรม เครื่องสถานะจะประมวลผลธุรกรรมนั้นเทียบกับสถานะปัจจุบัน สถานะใหม่ก็จะปรากฏขึ้น สถานะเก่าบวกกับธุรกรรมจะเท่ากับสถานะใหม่ สูตรบนกระดาษคือ: Y(S, T) = S' เสร็จแล้ว
สิ่งที่น่าทึ่งคือระบบสำรองข้อมูล การทำธุรกรรมของคุณไม่ได้ไปจบลงที่เซิร์ฟเวอร์แห่งเดียวในรัฐเวอร์จิเนีย แต่มันจะผ่านโหนดนับพันทั่วเครือข่าย Ethereum แต่ละโหนดจะคำนวณด้วยตัวเอง และเปรียบเทียบผลลัพธ์ ถ้าตรงกัน ก็ดี สถานะใหม่ก็จะถูกบันทึกในบล็อกเชน ถ้าไม่ตรงกัน เวอร์ชันที่ผิดพลาดก็จะถูกทิ้งไป ผมนึกภาพนักบัญชีนับพันคนกำลังกรอกแบบฟอร์มภาษีเดียวกัน คนหนึ่งเขียนตัวเลขผิด ทุกคนก็จะหยุดและหาข้อผิดพลาดนั้น
และนี่คือสิ่งที่ทำให้มันแตกต่างจากซอฟต์แวร์ทั่วไป ไม่มีใครควบคุม EVM ไม่มีบริษัทอยู่เบื้องหลัง ไม่มีฝ่ายสนับสนุน ไม่มีผู้ดูแลระบบที่สามารถยกเลิกข้อตกลงได้อย่างเงียบๆ ในเวลาตี 2 โค้ดเป็นโอเพนซอร์ส ทำงานได้เหมือนกันบนทุกโหนด และความน่าเชื่อถือมาจากการเห็นพ้องต้องกันในปริมาณมหาศาลมากกว่าการที่บุคคลผู้มีอำนาจคนใดคนหนึ่งบอกว่า "เชื่อฉันสิ"

EVM ทำงานอย่างไร: จาก Solidity สู่การใช้งานจริง
ขออนุญาตอธิบายวงจรชีวิตของสัญญาอัจฉริยะให้ฟัง เพราะเมื่อคุณเห็นลำดับเหตุการณ์ทั้งหมดแล้ว คุณจะเข้าใจ EVM ได้ง่ายขึ้นมาก
ขั้นตอนแรก: คุณเขียนโค้ด Solidity เป็นภาษาโปรแกรมที่นักพัฒนา EVM ประมาณ 90% เลือกใช้ มันยืมไวยากรณ์มาจาก JavaScript: วงเล็บปีกกา ฟังก์ชัน ตัวแปร และอื่นๆ Vyper ก็มีอยู่เช่นกัน (ใกล้เคียงกับ Python มากกว่า และตั้งใจให้เรียบง่ายกว่า) แต่ Solidity ก็เป็นภาษาหลัก นี่คือสิ่งที่ทำให้ผู้เริ่มต้นสะดุด: โค้ดทุกบรรทัดมีค่าใช้จ่ายจริงในการใช้งาน ไม่มีแซนด์บ็อกซ์ ไม่มีทางแก้ไข คุณใช้งานสัญญาที่มีข้อผิดพลาด และข้อผิดพลาดนั้นจะคงอยู่ถาวร เว้นแต่คุณจะสร้างกลไกการอัปเกรดไว้ล่วงหน้า ผมเรียนรู้เรื่องนี้ด้วยประสบการณ์ตรงจากการเห็นเพื่อนนักพัฒนาคนหนึ่งนอนไม่หลับเพราะจุดทศนิยมผิดที่
ขั้นตอนที่สอง: โค้ด Solidity ของคุณจะถูกคอมไพล์เป็นไบต์โค้ด ลองนึกถึงไบต์โค้ดว่าเป็นภาษาเครื่องของ EVM คุณเขียนโค้ดที่มนุษย์อ่านได้ คอมไพเลอร์จะแปลงมันเป็นเลขฐานสิบหกที่ EVM เข้าใจได้ ภายในเลขฐานสิบหกนั้นจะมีโอเปอเรชันโค้ดอยู่ประมาณ 150 ตัว ADD ใช้สำหรับบวก SSTORE ใช้สำหรับบันทึกข้อมูล CALL ช่วยให้สัญญาหนึ่งสื่อสารกับอีกสัญญาหนึ่งได้ โอเปอเรชันโค้ดหนึ่งตัว แทนงานเล็กๆ หนึ่งงาน สัญญาของคุณจะเชื่อมโยงงานเหล่านี้เข้าด้วยกันหลายพันงาน
ขั้นตอนที่สามนี่แหละที่น่าสนใจ มีคนเรียกใช้สัญญาของคุณ ทุกโหนดในเครือข่ายจะรับธุรกรรมนั้น โหลดไบต์โค้ดของคุณ และเริ่มประมวลผลโอเปอเรชันโค้ดตามลำดับ ตัวประมวลผลทำงานบนสแต็ก: ลองนึกภาพกองจานที่คุณสามารถแตะได้เฉพาะจานบนสุดเท่านั้น ใส่ตัวเลขหนึ่งตัว ใส่ตัวเลขอีกตัว ดำเนินการบวก ตัวเลขทั้งสองจะถูกดึงออกจากด้านบน บวกกัน แล้วผลลัพธ์จะถูกส่งกลับเข้าไป ความลึกสูงสุดคือ 1024 รายการ แต่ละรายการกว้าง 256 บิต
ทุกโหนดทำสิ่งนี้ด้วยตัวเอง ใช้ไบต์โค้ดเดียวกัน อินพุตเดียวกัน สถานะเริ่มต้นเดียวกัน จึงได้คำตอบเหมือนกันทุกครั้ง ความสามารถในการคาดเดาได้นี้เองที่เป็นเหตุผลว่าทำไมกลไกฉันทามติของบล็อกเชนจึงทำงานได้ หาก EVM สามารถให้ผลลัพธ์ที่แตกต่างกันในเครื่องต่างๆ โครงสร้างทั้งหมดก็จะพังทลายลง
สถาปัตยกรรม EVM: สแต็ก หน่วยความจำ และพื้นที่จัดเก็บข้อมูล
เครื่อง EVM ประมวลผลข้อมูลในสามระดับ ส่วนนี้สำคัญมากเพราะส่งผลโดยตรงต่อค่าใช้จ่ายในการทำธุรกรรมของคุณ
สแต็ก คือหัวใจหลักในการประมวลผล การคำนวณทั้งหมดเกิดขึ้นที่นี่ ผลักข้อมูลลงสแต็ก ดึงข้อมูลออก ดำเนินการ แล้วทำซ้ำ มันเร็ว ราคาถูก (ประมาณ 3 แก๊สต่อการดำเนินการ) และจะหายไปเมื่อการประมวลผลเสร็จสิ้น รหัสคำสั่งส่วนใหญ่ทำงานโดยตรงกับสแต็ก
หน่วยความจำ เปรียบเสมือนกระดาษทด คุณสามารถอ่านและเขียนข้อมูลลงในตำแหน่งใดก็ได้ ทำให้มีความยืดหยุ่นมากกว่าสแต็กสำหรับสิ่งต่างๆ เช่น สตริงหรืออาร์เรย์ขนาดใหญ่ แต่หน่วยความจำก็จะหายไปหลังจากการทำธุรกรรมเสร็จสิ้น ในแง่ของต้นทุน หน่วยความจำอยู่ตรงกลาง: แพงกว่าสแต็ก แต่ถูกกว่าพื้นที่จัดเก็บข้อมูลมาก หน่วยความจำจะขยายขนาดตามความต้องการ และค่าแก๊สจะเพิ่มขึ้นเป็นกำลังสองตามปริมาณหน่วยความจำที่จัดสรรเพิ่มขึ้น
จากนั้นก็มาถึง เรื่องการจัดเก็บข้อมูล นี่คือส่วนที่แพงที่สุด และก็มีเหตุผลที่ดี การจัดเก็บข้อมูลนั้นถาวร เมื่อสัญญาอัจฉริยะของคุณบันทึกว่าอลิซเป็นเจ้าของโทเค็น 500 โทเค็น ข้อมูลนั้นจะถูกเขียนลงในโครงสร้างข้อมูลแบบทรีของ Ethereum และคงอยู่ตรงนั้น โหนดทุกโหนดในเครือข่ายจะจัดเก็บข้อมูลนั้นไว้ตลอดไป การเขียนข้อมูลใหม่ลงในพื้นที่จัดเก็บข้อมูลมีค่าใช้จ่าย 20,000 gas การอัปเดตมีค่าใช้จ่าย 5,000 gas เพื่อให้เห็นภาพ การโอนอีเธอร์แบบง่ายๆ มีค่าใช้จ่ายรวม 21,000 gas ดังนั้นการเขียนข้อมูลลงในพื้นที่จัดเก็บข้อมูลหนึ่งครั้งจึงมีค่าใช้จ่ายเกือบเท่ากับการทำธุรกรรมพื้นฐานทั้งหมด
| ชั้นข้อมูล | มันใช้งานได้นานแค่ไหน | ค่าใช้จ่ายแก๊ส | มันใช้สำหรับอะไร |
|---|---|---|---|
| ซ้อนกัน | เสียชีวิตหลังการประหารชีวิต | ~3 แก๊สต่อครั้ง | คณิตศาสตร์ ตรรกศาสตร์ การเปรียบเทียบ |
| หน่วยความจำ | หายไปหลังจากทำธุรกรรมเสร็จสิ้น | 3 แก๊ส + ค่าใช้จ่ายในการขยาย | ข้อมูลชั่วคราว, อาร์กิวเมนต์ของฟังก์ชัน |
| พื้นที่จัดเก็บ | ถาวร | 5,000-20,000 แก๊สต่อการเขียนหนึ่งครั้ง | ยอดคงเหลือโทเค็น บันทึกการเป็นเจ้าของ การตั้งค่า |
หากคุณเคยสงสัยว่าทำไมการปรับใช้สัญญาอัจฉริยะจึงมีค่าใช้จ่ายสูง นี่คือเหตุผล การปรับใช้จะเขียนไบต์โค้ดและข้อมูลเริ่มต้นทั้งหมดของสัญญาลงในพื้นที่จัดเก็บ ซึ่งเป็นการดำเนินการที่ต้องใช้ค่าแก๊สถึง 20,000 หน่วยจำนวนมาก
ถ้าฟังดูคุ้นๆ ก็ไม่แปลกใจ เพราะคอมพิวเตอร์ทั่วไปก็ทำงานแบบเดียวกัน หน่วยประมวลผลกลาง (CPU) ทำงานเร็วแต่เล็กมาก เหมือนกับสแต็ก (stack) ส่วน RAM ใหญ่กว่าและทำงานช้ากว่า เหมือนกับหน่วยความจำ ฮาร์ดไดรฟ์เก็บทุกอย่างแต่ใช้เวลามากที่สุดต่อการเขียนข้อมูลแต่ละครั้ง เหมือนกับหน่วยเก็บข้อมูล ผู้สร้าง Ethereum จงใจออกแบบมาแบบนี้ พวกเขาต้องการให้คุณรู้สึกถึงความเจ็บปวดทางการเงินจากการเก็บข้อมูลไว้บนบล็อกเชนตลอดไป เพื่อให้คุณเก็บเฉพาะสิ่งที่จำเป็นต้องเก็บไว้จริงๆ เท่านั้น
ค่าธรรมเนียมก๊าซบน EVM: วิธีการคำนวณราคา Ethereum
ฉันต้องพูดถึงเรื่องแก๊ส เพราะมันเป็นทั้งส่วนที่ชาญฉลาดที่สุดและน่าหงุดหงิดที่สุดของเครื่องลงคะแนนอิเล็กทรอนิกส์ (EVM)
EVM นั้นสมบูรณ์แบบในเชิงทัวริง พูดง่ายๆ ก็คือ มันสามารถประมวลผลอะไรก็ได้ที่คุณป้อนเข้าไป รวมถึงลูปอนันต์ ลองนึกภาพว่ามีคนใช้งานสัญญาที่มี while(true) โดยไม่มีค่าใช้จ่ายในการรัน โหนดทุกโหนดจะติดขัด บล็อกเชนจะหยุดทำงาน จบเกม
ก๊าซ (Gas) ช่วยป้องกันไม่ให้เกิดเหตุการณ์นั้นขึ้น ทุกคำสั่ง (opcode) มีราคา ADD ราคา 3 gas SSTORE ราคา 5,000 หรือ 20,000 gas เมื่อคุณส่งธุรกรรม คุณจะกำหนดงบประมาณ gas หากการคำนวณเสร็จสิ้นโดยใช้งบประมาณน้อยกว่าที่กำหนด คุณจะได้รับเงินคืนสำหรับส่วนที่ไม่ได้ใช้ หากใช้เกินขีดจำกัด ทุกอย่างจะถูกยกเลิก แต่คุณยังคงต้องจ่ายค่า gas ที่ใช้ไป ลูปอนันต์จะทำให้งบประมาณหมดลงและหยุดทำงาน
สิ่งที่หักออกจากกระเป๋าเงินของคุณคือค่าแก๊สที่ใช้คูณด้วยราคาแก๊ส ค่าแก๊สที่ใช้ขึ้นอยู่กับลักษณะการทำธุรกรรมของคุณ ราคาแก๊สจะเปลี่ยนแปลงตามความหนาแน่นของเครือข่าย โดยวัดเป็นหน่วย gwei (หนึ่งในพันล้านของอีเธอร์) ถ้ามีผู้ค้าจำนวนมาก ค่าแก๊สก็จะสูงขึ้น ถ้าวันอาทิตย์เงียบๆ ค่าแก๊สก็จะลดลง
และนี่คือจุดที่เรื่องราวเริ่มน่าสนใจ จำการสร้างเหรียญ NFT มูลค่า 87 ดอลลาร์ของผมในปี 2021 ได้ไหมครับ ตอนนั้นค่าธรรมเนียม Gas อยู่ที่ 100-200 gwei เป็นประจำ ช่วงซัมเมอร์ของ DeFi และกระแส NFT ทำให้เครือข่ายทำงานเต็มประสิทธิภาพ แต่พอมาถึงต้นปี 2026 ราคา Gas เฉลี่ยอยู่ที่ประมาณ 3 gwei เท่านั้น การโอน ETH ขั้นพื้นฐานมีค่าใช้จ่ายประมาณ 0.30 ถึง 0.67 ดอลลาร์ ซึ่งลดลงถึง 96% จากปี 2021
| ปี | ค่าธรรมเนียมการทำธุรกรรมโดยเฉลี่ย | ช่วงราคาแก๊ส | สาเหตุมาจากอะไร |
|---|---|---|---|
| 2021 | ประมาณ 24 ดอลลาร์สหรัฐ | 100-200 กรัม | ความคลั่งไคล้ NFT, การทำฟาร์มผลตอบแทน DeFi |
| 2022 | 5-15 เหรียญสหรัฐ | 30-80 กรัม | ตลาดหุ้นตกต่ำ กิจกรรมลดลง |
| 2023 | 2-8 เหรียญ | 15-40 กรัม | ตลาดหมีเริ่มทรงตัว |
| 2024 | 0.50-2 เหรียญสหรัฐ | 5-15 เกวียน | การอัปเกรด Dencun, EIP-4844 |
| ไตรมาสที่ 1 ปี 2026 | 0.30-0.67 เหรียญสหรัฐ | ~3 เกวียน | การย้ายข้อมูล L2, ธุรกรรมบล็อบ |
อะไรเปลี่ยนไปบ้าง? สองอย่างครับ อย่างแรก การอัปเกรด Dencun ในเดือนมีนาคม 2024 ได้นำ EIP-4844 มาใช้ ซึ่งสร้างพื้นที่จัดเก็บข้อมูลแบบ "blob" สำหรับ rollup ก่อนหน้านี้ เครือข่าย Layer 2 ต้องโพสต์ข้อมูลเป็น calldata บน mainnet ของ Ethereum ซึ่งมีค่าใช้จ่ายสูง Blob เป็นข้อมูลชั่วคราวและถูกกว่ามาก ช่วยลดต้นทุนการโพสต์บน Layer 2 ได้ประมาณ 95% อย่างที่สอง กิจกรรมส่วนใหญ่ได้ย้ายไปยังเครือข่าย Layer 2 แล้ว เมื่อการแลกเปลี่ยน Uniswap ของคุณทำงานบน Arbitrum แทนที่จะเป็น mainnet เลเยอร์พื้นฐานก็จะไม่แออัด
ในเครือข่าย Layer 2 เหล่านั้น การแลกเปลี่ยนอาจมีค่าใช้จ่ายน้อยกว่าหนึ่งเพนนี Arbitrum, Base และ Optimism ต่างก็ใช้ EVM ดังนั้นโค้ด Solidity ของคุณจึงทำงานได้ในลักษณะเดียวกัน เพียงแต่คุณจ่ายค่าธรรมเนียมแก๊สเพียงเศษเสี้ยวเท่านั้น

ความเข้ากันได้ของ EVM: เหตุใดบล็อกเชนกว่า 390 แห่งจึงลอกเลียนแบบพิมพ์เขียวของ Ethereum
นี่คือจุดที่เรื่องราวของ EVM เปลี่ยนจากเรื่องที่น่าสนใจไปสู่เรื่องที่มีความสำคัญอย่างแท้จริงต่ออุตสาหกรรมโดยรวม
เมื่อ BNB Chain เปิดตัว Binance ไม่ได้คิดค้นเครื่องเสมือนใหม่ พวกเขาใช้ EVM แล้วปรับแต่ง Polygon ก็ทำเช่นเดียวกัน Avalanche, Fantom, Cronos, Harmony, Gnosis Chain ก็เช่นกัน แม้แต่แพลตฟอร์ม Layer 2 rollup ที่สร้างขึ้นมาโดยเฉพาะอย่าง Arbitrum และ Optimism ก็ใช้ EVM โดยตรง ผลลัพธ์คือระบบนิเวศของเชนที่รองรับ EVM มากกว่า 390 เชน แม้ว่าจะมีเพียงประมาณ 40-50 เชนเท่านั้นที่มีกิจกรรมประจำวันที่สำคัญ
ทำไมถึงต้องคัดลอก Ethereum แทนที่จะสร้างใหม่ตั้งแต่ต้น? มีสามเหตุผล ซึ่งล้วนเป็นเหตุผลที่ใช้ได้จริง
ประการแรก นักพัฒนาซอฟต์แวร์ มีนักพัฒนา Solidity มากกว่า 20,000 คนทั่วโลก การเปิดตัว EVM chain จะทำให้นักพัฒนาเหล่านั้นสามารถส่งมอบโค้ดได้ตั้งแต่วันแรกโดยไม่ต้องเรียนรู้ภาษาใหม่ Solana ใช้ Rust ส่วน Aptos และ Sui ใช้ Move chain เหล่านั้นต้องสร้างกลุ่มนักพัฒนาขึ้นมาใหม่ตั้งแต่ต้น แต่ EVM chain ช่วยแก้ปัญหานั้นได้อย่างสิ้นเชิง
ประการที่สอง เครื่องมือฟรี MetaMask, Hardhat, Foundry, Ethers.js, OpenZeppelin, Etherscan ชุดเครื่องมือ Ethereum ทั้งหมดนี้ใช้งานได้กับเชน EVM ใดก็ได้โดยไม่ต้องเปลี่ยนแปลงอะไรเลย กระเป๋าเงินเดียวกัน เฟรมเวิร์กการทดสอบเดียวกัน ตัวสำรวจบล็อกเดียวกัน ซึ่งช่วยประหยัดเวลาการทำงานได้หลายปี
ประการที่สาม DeFi เคลื่อนไหวไปพร้อมกับ EVM Uniswap, Aave, Curve, SushiSwap ทั้งหมดนี้ใช้งานอยู่บนเครือข่าย EVM อย่างน้อยห้าเครือข่าย สัญญาต่างๆ ถูกคัดลอกและวางจาก Ethereum ไปยัง Polygon ไปยัง Arbitrum ไปยัง BNB Chain โค้ดเดียวกัน การตรวจสอบเดียวกัน รูปแบบความปลอดภัยเดียวกัน สะพานเชื่อมต่อสภาพคล่อง EVM เป็นเหมือนกาวที่เชื่อมต่อสิ่งเหล่านั้นเข้าด้วยกัน
แต่การคัดลอก EVM หมายความว่าคุณก็คัดลอกปัญหาของมันไปด้วยเช่นกัน การประมวลผลธุรกรรมทีละรายการ คำขนาด 256 บิตบนโปรเซสเซอร์ 64 บิต ซึ่งเพิ่มภาระ ระบบแก๊สที่ใช้งานได้แต่เพิ่มความซับซ้อนที่ VM รุ่นใหม่ๆ ข้ามไป SVM ของ Solana ประมวลผลธุรกรรมแบบขนาน MoveVM มีโมเดลทรัพยากรที่กำจัดบั๊กได้หลายประเภท FuelVM ยืมแนวคิดจากการออกแบบ CPU สมัยใหม่
มีเทคโนโลยีไหนที่ตามทัน EVM ในด้านการใช้งานบ้างไหม? ไม่มีเลย ไม่ใกล้เคียงด้วยซ้ำ เทคโนโลยีที่ดีกว่าบนกระดาษไม่สามารถเอาชนะผลกระทบจากเครือข่ายในโลกแห่งความเป็นจริงได้ EVM มีนักพัฒนามากที่สุด มีโปรโตคอลที่ใช้งานได้จริงมากที่สุด มีรูปแบบโค้ดที่ได้รับการตรวจสอบมากที่สุด และมีร่องรอยจากการถูกแฮ็กและยังคงอยู่รอดมากที่สุด ในโลกของคริปโตเคอร์เรนซี ที่บั๊กเพียงตัวเดียวอาจทำให้สูญเสียเงินจำนวนมหาศาล ร่องรอยจากการถูกแฮ็กจึงมีความสำคัญมากกว่าผลการทดสอบประสิทธิภาพ
สถานะของ Ethereum และวิธีที่ EVM รักษาฉันทามติ
ส่วนนี้จะค่อนข้างซับซ้อนทางเทคนิค แต่มีความสำคัญ เพราะจะอธิบายว่าทำไมโหนด Ethereum จึงต้องการฮาร์ดแวร์จริง และทำไมการบันทึกข้อมูลบนบล็อกเชนจึงมีค่าใช้จ่ายสูงมาก
Ethereum มีตารางค้นหาขนาดใหญ่มาก เพียงแค่ป้อนที่อยู่ใดๆ เข้าไป มันก็จะแสดงยอดคงเหลือของอีเธอร์, nonce (จำนวนธุรกรรม) และสำหรับที่อยู่สัญญา มันก็จะแสดงไบต์โค้ดทั้งหมดพร้อมข้อมูลที่จัดเก็บไว้ทั้งหมด มีที่อยู่หลายล้านรายการ และข้อมูลหลายร้อยกิกะไบต์ นั่นคือสถานะของ Ethereum ในปัจจุบัน
ข้อมูลทั้งหมดจัดเก็บอยู่ในโครงสร้างข้อมูลแบบ Merkle Patricia trie อธิบายง่ายๆ ก็คือ มันเป็นโครงสร้างข้อมูลแบบต้นไม้ โดยแต่ละกิ่งจะมีค่าแฮชเป็นของตัวเอง และค่าแฮชทั้งหมดจะรวมกันเป็นค่าแฮชรากที่ด้านบนสุด ค่าแฮชรากนี้จะอยู่ในส่วนหัวของบล็อกแต่ละบล็อก หากมีการโอนเงิน 0.001 ETH ระหว่างสองกระเป๋าเงิน ค่าแฮชรากก็จะเปลี่ยนแปลงไปโดยสิ้นเชิง ผู้ตรวจสอบความถูกต้องจะตรวจสอบบล็อกโดยการเรียกใช้ธุรกรรมทุกครั้ง คำนวณค่าแฮชรากที่ได้ และเปรียบเทียบ หากค่าแฮชเหมือนกัน บล็อกนั้นก็ใช้ได้ หากค่าแฮชต่างกัน บล็อกนั้นก็จะถูกปฏิเสธ
การใช้งานโหนดหมายถึงการอัปเดตโครงสร้างต้นไม้ทั้งหมดนี้ให้ทันสมัยอยู่เสมอด้วยทุกบล็อก ซึ่งนี่คือปัญหาด้านการขยายขนาดที่ใหญ่ที่สุดของ Ethereum ตัว VM เองนั้นเร็วพออยู่แล้ว แต่สถานะก็ยังคงเพิ่มขึ้นเรื่อยๆ ทุก SSTORE จะเพิ่มใบใหม่เข้าไปในโครงสร้างไทร ทุกสัญญาใหม่จะเพิ่มข้อมูลเข้าไปเรื่อยๆ โครงสร้างต้นไม้ Verkle อาจช่วยแก้ปัญหานี้ได้ ทีมงาน Ethereum ได้พัฒนาโครงสร้างนี้มาหลายปีแล้ว โครงสร้างนี้จะช่วยให้โหนดตรวจสอบบล็อกได้โดยไม่ต้องจัดเก็บสถานะทั้งหมด หาก Verkle เปิดใช้งานได้ การใช้งานโหนดก็จะถูกลงมาก และผู้คนจำนวนมากขึ้นสามารถเข้าร่วมกลุ่มผู้ตรวจสอบความถูกต้องได้
การใช้งาน EVM: สเปคเดียว ลูกค้าหลายราย
คนส่วนใหญ่ไม่รู้ว่า "EVM" เป็นเพียงข้อกำหนด ไม่ใช่โปรแกรม มันเป็นเอกสารที่ระบุว่า "เมื่อได้รับข้อมูลนำเข้าเหล่านี้ ให้สร้างข้อมูลส่งออกเหล่านี้" ใครๆ ก็สามารถสร้างเวอร์ชันของตัวเองได้ในภาษาใดก็ได้ ตราบใดที่มันเป็นไปตามข้อกำหนด
Geth เป็นตัวหลัก เขียนด้วยภาษา Go และทำงานได้บนโหนด Ethereum ส่วนใหญ่ แต่ก็ยังมีตัวเลือกอื่นๆ อีก เช่น Nethermind (C#), Besu (Java สร้างขึ้นสำหรับองค์กร), Erigon (Go ปรับให้เหมาะสมกับดิสก์) และ Reth (Rust สร้างโดย Paradigm) นักพัฒนาหลักต้องการความหลากหลายนี้ ทำไม? เพราะหาก 95% ของโหนดใช้ Geth และ Geth เกิดข้อผิดพลาดร้ายแรง เครือข่ายทั้งหมดก็จะได้รับผลกระทบ แต่ถ้ากระจายไปในห้าไคลเอ็นต์ ข้อผิดพลาดนั้นจะส่งผลกระทบต่อโหนดเพียง 20% เท่านั้น ส่วนที่เหลือก็จะยังคงทำงานได้ต่อไป
เครือข่ายเลเยอร์ 2 เพิ่มลูกเล่นเฉพาะตัวเข้าไป Arbitrum สร้างเวอร์ชันที่ดัดแปลงแล้วเรียกว่า Arbitrum VM Optimism มุ่งเป้าไปที่ "ความเท่าเทียมของ EVM" คือพฤติกรรมที่เหมือนกันทุกไบต์ zkSync Era ไปไกลกว่านั้น มันคอมไพล์ไบต์โค้ด EVM ให้เป็นรูปแบบที่ใช้งานได้กับ zero-knowledge proofs เส้นทางการทำงานภายในแตกต่างกันโดยสิ้นเชิง แต่สำหรับนักพัฒนา Solidity แล้ว มันก็ยังดูเหมือนเดิม ความจริงที่ว่าสถาปัตยกรรมที่แตกต่างกันอย่างสิ้นเชิงกลับแสดงผลออกมาเหมือนกันสำหรับนักพัฒนา เป็นหนึ่งในสิ่งที่ถูกมองข้ามมากที่สุดเกี่ยวกับ EVM อย่างแท้จริง
ในฐานะนักพัฒนา คุณแทบจะไม่สนใจเลยว่าไคลเอนต์ใดจะประมวลผลสัญญาของคุณ คุณเขียน Solidity คอมไพล์เป็นไบต์โค้ด แล้วนำไปใช้งาน ข้อกำหนดรับประกันผลลัพธ์ที่เหมือนกันทุกที่
การพัฒนาสัญญาอัจฉริยะบน EVM: สิ่งที่นักพัฒนาต้องเผชิญจริง ๆ
นักพัฒนาเว็บที่พยายามสร้างเว็บไซต์สำหรับ EVM จะได้รับบทเรียนราคาแพง บั๊กต่างๆ มีค่าใช้จ่ายจริง คุณไม่สามารถแก้ไขบั๊กในระบบที่ใช้งานจริงได้ หากส่งมอบสัญญาที่มีข้อผิดพลาด มันก็จะยังคงมีข้อผิดพลาดต่อไป เว้นแต่คุณจะวางแผนล่วงหน้าไว้แล้ว
Solidity เป็นภาษาโปรแกรมที่ใช้ในการสร้างสัญญา EVM มากกว่า 90% เครื่องมือต่างๆ พัฒนาไปมากแล้ว Hardhat ให้คุณใช้ JavaScript/TypeScript พร้อมปลั๊กอิน ในขณะที่ Foundry ใช้ Rust ทำงานได้เร็วกว่า และให้คุณเขียนการทดสอบด้วย Solidity เองได้ ทั้งสองระบบจะสร้าง EVM ในเครื่องของคุณเอง ทำให้คุณสามารถทดสอบได้โดยไม่ต้องเสียค่าใช้จ่าย ผมแนะนำ Foundry สำหรับโปรเจกต์ใหม่ๆ แต่เมื่อชุดทดสอบของคุณมีมากกว่าร้อยรายการ ความแตกต่างด้านความเร็วก็จะชัดเจนขึ้น
มาตรฐานโทเค็นช่วยให้ระบบนิเวศมีความเป็นระเบียบ ERC-20 ครอบคลุมโทเค็นที่สามารถแลกเปลี่ยนได้ เช่น USDT, LINK, UNI ERC-721 ใช้สำหรับ NFT ERC-1155 จัดการสัญญาหลายโทเค็น ERC-4626 ใช้สำหรับ Yield Vault มาตรฐานทั้งหมดทำงานเหมือนกันบนทุกเชน EVM เขียนสัญญาของคุณเพียงครั้งเดียว แล้วนำไปใช้งานบน Ethereum, Arbitrum, Base, Polygon โค้ดเดียวกัน พฤติกรรมเหมือนกัน
ความปลอดภัย? ค่อนข้างแย่ การโจมตีแบบ Reentrancy ทำให้เงินหลายร้อยล้านดอลลาร์หายไปในช่วงหลายปีที่ผ่านมา การแฮ็ก DAO ในปี 2016 ทำให้ Ethereum แตกออกเป็นสองส่วนเนื่องจากบั๊ก Reentrancy ที่ทำให้ผู้โจมตีสามารถถอนเงินได้หลายครั้งและดูดเงินไป 60 ล้านดอลลาร์ บั๊ก Integer overflow ก็เป็นปัญหาใหญ่จนกระทั่ง Solidity 0.8 เพิ่มการตรวจสอบค่าเริ่มต้นในปี 2021 ข้อผิดพลาดในการควบคุมการเข้าถึงยังคงปรากฏขึ้นในโค้ดที่ได้รับการตรวจสอบจากทีมมืออาชีพ เครื่องมืออย่าง Slither, Mythril และ Certora ตรวจจับบั๊กได้บ้าง แต่ไม่มีอะไรทดแทนการตรวจสอบอย่างละเอียดได้ และแม้แต่การตรวจสอบก็อาจพลาดบางอย่างไปได้ นั่นคือความเป็นจริง
ในปัจจุบัน การใช้งานโทเค็น ERC-20 พื้นฐานมีราคา 5-20 ดอลลาร์บนเมนเน็ต โปรโตคอล DeFi เต็มรูปแบบอาจมีราคาไม่กี่ร้อยดอลลาร์ ส่วนบนเครือข่าย Layer 2 นั้นมีราคาเพียงไม่กี่เพนนี ไม่น่าแปลกใจเลยที่ 65% ของสัญญาใหม่ในปี 2025 จะเกิดขึ้นบน Layer 2
ระบบนิเวศ EVM ในปี 2026: การครอบงำของเลเยอร์ 2 และสิ่งที่จะตามมา
เมื่อสามปีก่อน เครือข่าย Layer 2 มีมูลค่ารวมภายใต้สัญญา (TVL) อยู่ที่ 4 พันล้านดอลลาร์ ตอนนี้เพิ่มขึ้นเป็นกว่า 50 พันล้านดอลลาร์แล้ว เฉพาะ Arbitrum ก็มีถึง 16.6 พันล้านดอลลาร์ Base อยู่ที่ 10 พันล้านดอลลาร์ และ Optimism อยู่ที่ 6 พันล้านดอลลาร์ การเปลี่ยนแปลงนี้เกิดขึ้นเพราะค่าธรรมเนียม Layer 2 ลดลงเหลือเกือบไม่มีเลย ค่าสวอปต่ำกว่าหนึ่งเพนนีในโรลอัพส่วนใหญ่ แม้แต่ค่าธรรมเนียมเมนเน็ตก็ลดลงต่ำกว่าหนึ่งดอลลาร์ ผู้คนเคยพูดว่า Ethereum มีราคาแพงเกินไปและทุกคนควรใช้ Solana แต่ตอนนี้ความคิดนั้นเปลี่ยนไปแล้ว
การแยกบัญชี (ERC-4337) ได้เปลี่ยนแปลงวงการนี้ไปอย่างเงียบๆ ในปี 2025 และ 2026 กระเป๋าเงินดิจิทัลอัจฉริยะช่วยให้ผู้ใช้สามารถชำระค่าธรรมเนียม (gas) ด้วยเหรียญ Stablecoin รวมการทำธุรกรรมหลายอย่างไว้ในธุรกรรมเดียว และกู้คืนบัญชีได้โดยไม่ต้องใช้ Seed Phrase หากคุณเคยเห็นเพื่อนหัวเสียจนเลิกเล่นคริปโตเพราะ MetaMask บังคับให้พวกเขาอนุมัติป๊อปอัพสองครั้งสำหรับการแลกเปลี่ยนเพียงครั้งเดียว คุณจะเข้าใจว่าทำไมเรื่องนี้ถึงสำคัญ ช่องว่างระหว่างกระเป๋าเงินดิจิทัลกับแอปธนาคารทั่วไปกำลังแคบลง
ต่อไปจะเป็นอย่างไร? ผมกำลังจับตาดูหลายอย่างอยู่ EOF (EVM Object Format) ช่วยจัดระเบียบไบต์โค้ด ทำให้การตรวจสอบความถูกต้องถูกลง และเครื่องมือทำงานได้ดีขึ้น งานวิจัยเกี่ยวกับการประมวลผลแบบขนานอาจทำให้ EVM สามารถจัดการธุรกรรมอิสระพร้อมกันได้ แทนที่จะจัดการทีละรายการ ยังอยู่ในช่วงเริ่มต้น แต่ถ้าใช้งานได้จริง ประสิทธิภาพการทำงานจะเพิ่มขึ้นอย่างมากโดยไม่ต้องเปลี่ยนแปลงอะไรสำหรับนักพัฒนา และ Verkle tree ก็ใกล้จะพร้อมใช้งานแล้ว
การแข่งขันนั้นดุเดือดจริง ๆ SVM ของ Solana ช่วยเพิ่มปริมาณงานได้มากขึ้น MoveVM นำเสนอรูปแบบที่ช่วยป้องกันข้อผิดพลาดได้หลายประเภท แต่ลองดูตัวเลขสิ ระบบนิเวศ EVM มีมูลค่าสินทรัพย์รวมใน DeFi (TVL) มากกว่า 190 พันล้านดอลลาร์ ปริมาณการซื้อขาย DEX รายเดือนสูงกว่า 400 พันล้านดอลลาร์ มีนักพัฒนามากกว่า 20,000 คนสร้างอยู่บนระบบนี้ ผ่านการทดสอบมาเกือบ 11 ปีแล้ว VM รุ่นใหม่ ๆ อาจชนะในการทดสอบประสิทธิภาพ แต่ EVM ชนะในทุกสิ่งที่สำคัญจริง ๆ เมื่อมีเงินจริงเข้ามาเกี่ยวข้อง