Máy ảo (VM) là gì và vai trò trong blockchain
Nội dung bài7 phần
Độ khó: Người mới
Máy ảo (virtual machine, VM) trong blockchain là một "máy tính phần mềm" chạy chương trình theo đúng một bộ luật, nên mọi nút trong mạng chạy cùng một đoạn mã đều ra cùng kết quả. Ethereum có EVM, và hợp đồng thông minh chạy bên trong EVM. Bài giải thích máy ảo là gì, EVM làm những việc gì và vì sao thiết kế này liên quan bảo mật.
Nội dung chỉ nhằm giải thích kiến thức, không phải khuyến nghị đầu tư.
Điểm chính
- VM là môi trường chạy mã mà mọi nút trong mạng đều có, kết quả giống nhau với cùng đầu vào.
- Mã hợp đồng được biên dịch ra bytecode, EVM đọc từng lệnh (opcode) và thực hiện.
- Mỗi lệnh tốn gas; hết gas thì thay đổi bị huỷ nhưng gas đã dùng vẫn mất.
- Cách EVM thực thi giải thích vì sao có lỗi như reentrancy.
Máy ảo là gì
Ví dụ đời thường: máy tính tính tiền ở cửa hàng nào cũng cho 2 + 3 = 5, dù hãng máy khác nhau. VM là chiếc "máy tính chuẩn" như vậy cho blockchain: chương trình đưa vào, bộ luật cố định, kết quả không đổi giữa các nút.
Blockchain cần điều này vì hàng nghìn nút phải đồng ý về trạng thái chung (số dư, trạng thái hợp đồng). Nếu mỗi nút tính ra một kết quả riêng, mạng không thể đồng thuận.
EVM: máy ảo của Ethereum
Theo Ethereum.org, Ethereum là một máy trạng thái: trạng thái gồm số dư tài khoản và tình trạng mọi hợp đồng, mỗi giao dịch đưa mạng sang trạng thái mới theo luật cố định. EVM là phần thực hiện việc đó, và mọi nút Ethereum đều chạy nó.
Đặc điểm | Nội dung |
|---|---|
Đầu vào | Bytecode của hợp đồng đã biên dịch |
Cách chạy | Ngăn xếp tối đa 1.024 mục, mỗi mục 256 bit; các lệnh (opcode) đẩy và lấy giá trị ra |
Bộ nhớ tạm | Memory, xoá sau khi chạy xong |
Bộ nhớ ngắn hạn | Transient storage, giữ trong một giao dịch rồi xoá |
Bộ nhớ lâu dài | Storage, dữ liệu của hợp đồng nằm trong trạng thái toàn cục |
Đặc tả | Yellow Paper của Ethereum, có nhiều bản cài đặt |

Người viết hợp đồng dùng ngôn ngữ như Solidity, trình biên dịch đổi ra bytecode, rồi EVM chạy bytecode đó.
Gas: chi phí mỗi bước tính
Mỗi lệnh EVM có giá tính bằng gas, để chương trình chạy mãi hoặc quá nặng không làm tắc mạng. Phí giao dịch bằng lượng gas dùng nhân với giá mỗi đơn vị gas, gồm phí cơ sở (base fee) và tiền típ (priority fee).

Ví dụ số theo Ethereum.org: chuyển 1 ETH thường cần 21.000 gas. Với phí cơ sở 10 gwei và típ 2 gwei, phí là 21.000 × (10 + 2) = 252.000 gwei, tức 0,000252 ETH.
- Người gửi bị trừ 1,000252 ETH, người nhận được 1 ETH.
- Validator nhận 0,000042 ETH tiền típ; 0,00021 ETH phí cơ sở bị đốt.
Quy tắc cần nhớ:
- Đặt gas limit thấp hơn mức cần tối thiểu thì giao dịch bị từ chối trước khi đưa vào khối, không mất gas.
- Hết gas giữa chừng thì EVM huỷ mọi thay đổi, nhưng toàn bộ gas đã cấp vẫn bị tiêu. Ví dụ: đặt gas limit 50.000 cho một lần chuyển đơn giản chỉ dùng 21.000 thì 29.000 được hoàn lại.
VM và bảo mật
- Tất định: cùng đầu vào, cùng kết quả, nên các nút kiểm lại được lẫn nhau. Đây là nền cho độ tin cậy của mạng, xem blockchain bảo mật nhờ đâu.
- Gas giới hạn tính toán: vòng lặp vô tận không làm treo cả mạng, vì hết gas là dừng. Với tấn công làm nghẽn mạng, xem DoS và DDoS.
- Chạy tuần tự, lời gọi ngoài tạm dừng bên gọi: theo Ethereum.org, EVM không chạy các hợp đồng song song; khi hợp đồng A gọi hợp đồng B, A dừng cho đến khi B xong. Kẻ tấn công lợi dụng để B gọi ngược vào A trước khi A cập nhật số dư: lỗi reentrancy, nền của vụ The DAO năm 2016.
- Bất biến sau triển khai: bytecode đã đưa lên chuỗi khó sửa, nên nhu cầu kiểm toán trước khi chạy.
Cách làm: khi dùng ứng dụng
- Khi ví hiện ước tính phí, đọc ba số: gas limit, giá gas, tổng phí.
- Giao dịch thất bại vẫn mất phí gas đã tiêu; đừng thử lại liên tục khi chưa hiểu lỗi.
- Đặt gas limit thấp hơn mức cần sẽ bị từ chối; đặt cao thì phần dư được hoàn.
- Trước khi ký thao tác gọi hợp đồng lạ, xem hợp đồng đó đã được kiểm chưa.
- Hiểu rằng VM chỉ chạy đúng mã; mã sai thì chạy đúng cái sai.
Học tiếp trong khoá Crypto
Các bài học liên quan trong Khoá học Crypto của HODL.VN:
Câu hỏi thường gặp
EVM có phải là một máy tính thật không?
Không. Đó là phần mềm chạy trên mọi nút Ethereum, mô phỏng một máy tính với bộ luật cố định.
Gas là gì?
Đơn vị đo công việc tính toán. Phí giao dịch bằng gas dùng nhân giá mỗi đơn vị gas.
Hết gas thì mất tiền không?
Thay đổi bị huỷ nhưng gas đã dùng vẫn bị tính, theo Ethereum.org.
Chuỗi khác Ethereum có VM không?
Mỗi chuỗi có thiết kế riêng và cần đọc tài liệu của chuỗi đó. Bài này chỉ mô tả EVM, phần đã đối chiếu với tài liệu Ethereum.org.
VM có làm hợp đồng an toàn không?
Không tự động. VM bảo đảm chạy đúng quy tắc, còn mã sai thì kết quả sai vẫn được thực hiện chính xác.
Duyệt bởi Ban biên tập HODL.VN · Cập nhật 09/11/2026
Ứng dụng HODL
Tải app HODL
Bảng giá, cảnh báo giá và bài phân tích ngay trên điện thoại.