เครื่องเสมือน Ethereum (Ethereum Virtual Machine (EVM))
โดยสรุป: เครื่องเสมือน Ethereum หรือ Ethereum Virtual Machine (EVM) คือเครื่องเสมือนแบบ “Turing complete” ที่เป็นสภาพแวดล้อมการทำงานให้กับสัญญาอัจฉริยะแต่ละสัญญาบน Ethereum EVM…
เครื่องเสมือน Ethereum หรือ Ethereum Virtual Machine (EVM) คือเครื่องเสมือนแบบ “Turing complete” ที่เป็นสภาพแวดล้อมการทำงานให้กับสัญญาอัจฉริยะแต่ละสัญญาบน Ethereum EVM ช่วยให้มั่นใจได้ว่าโค้ดที่นักพัฒนานำขึ้นใช้งานจะถูกประมวลผลตามที่ตั้งใจไว้ และทำงานในลักษณะเดียวกันทุกประการบนทุกโหนดของเครือข่าย
ทำไมจึงสำคัญ
นักพัฒนาเขียนสัญญาอัจฉริยะด้วยภาษาอย่าง Solidity หรือ Vyper แล้วคอมไพล์เป็นไบต์โค้ด (bytecode) ที่ EVM ใช้รัน โหนดเต็มรูปแบบทุกโหนดจะประมวลผลไบต์โค้ดเดียวกันด้วยอินพุตเดียวกัน และต้องได้ผลลัพธ์เดียวกัน นี่คือวิธีที่เครือข่ายเห็นพ้องกันเรื่องยอดคงเหลือและสถานะของสัญญา โดยไม่ต้องไว้วางใจเซิร์ฟเวอร์ใดเซิร์ฟเวอร์หนึ่ง “Turing complete” หมายความว่าในทางทฤษฎี EVM สามารถรันโปรแกรมใดก็ได้ แต่ในทางปฏิบัติ ทุกการดำเนินการมีค่าแก๊ส และทุกธุรกรรมมีขีดจำกัดแก๊ส โปรแกรมจึงไม่สามารถวนลูปไม่รู้จบจนทำให้เครือข่ายติดขัดได้ บล็อกเชนอื่นอีกจำนวนมากเข้ากันได้กับ EVM (EVM-compatible) กล่าวคือรันไบต์โค้ดประเภทเดียวกันและใช้รูปแบบที่อยู่ 0x แบบเดียวกัน สิ่งนี้ช่วยให้นักพัฒนานำโค้ดกลับมาใช้ซ้ำได้ แต่ก็เป็นเหตุผลที่ศูนย์ซื้อขายขอให้คุณเลือกเครือข่ายให้ถูกต้องเมื่อฝากหรือถอน
ตัวอย่าง
นักพัฒนารายหนึ่งเขียนสัญญาโทเคนด้วย Solidity คอมไพล์ แล้วนำไบต์โค้ดขึ้นใช้งานบน Ethereum ต่อมาเมื่อผู้ใช้เรียกฟังก์ชันโอนของสัญญา EVM บนแต่ละโหนดจะรันโค้ดชุดเดียวกันนั้น ตรวจสอบยอดคงเหลือของผู้ส่ง และอัปเดตยอดคงเหลือของทั้งสองฝ่าย หากโค้ดเกิดข้อผิดพลาดหรือแก๊สหมด EVM จะย้อนกลับการเปลี่ยนแปลงทั้งหมด