Sẽ không ít lần bạn nghe tới cụm từ EVM hay máy ảo Ethereum, vậy nhưng bạn có biết nó là gì không?
Nội dung bài viết
Khái niệm
Về bản chất, máy ảo Ethereum là ngoài chuỗi, tập hợp mạng lưới những máy tính chạy song song với mạng lưới Blockchain của Ethereum. Đây là hệ thống máy ảo độc lập và tương tác với những dữ liệu với nhau thông qua các giao thức đồng thuận, mà không cần thông qua chuỗi chính, kết nối với chuỗi chính Ethereum qua hợp đồng thông minh.
Có rất nhiều hệ thống máy ảo tương tác với Blockchain Ethereum và phải thông qua hợp đồng thông minh để tương tác theo nhóm quy tắc của Ethereum, xác thực những thông tin đưa vào chuỗi với giao thức áp dụng là hàm băm rút gọn SHA-3-256.
Các nút Ethereum trong mạng sẽ chạy một EVM và thực hiện những hướng dẫn giống nhau; EVM lập trình bằng C++, Haskell, Python, Java, Rust, Ruby, Go và WebAssembly (đang được phát triển).
Ethereum với mạng lưới là một blockchain hoạt động liên tục và tồn tại ở một trạng thái, không bị gián đoạn hay tác động gì, của cỗ máy trạng thái đặc biệt này. Đây cũng là môi trường giúp cho mọi hợp đồng thông minh và các tài khoản Ethereum sống. Với bất kỳ khối nhất định trong chuỗi, Ethereum chỉ có một trạng thái chuẩn duy nhất và EVM sẽ giúp xác định những quy tắc tính toán trạng thái phù hợp từ khối này sang khối khác.
EVM hoạt động như thế nào?
Bitcoin là một sổ cái phân tán, cho phép các loại tiền tệ trong tài chính phi tập trung sử dụng các công cụ cơ bản của mật mã. Với tiền điện tử, hoạt động bình thường một một loại tiền tệ nhất định, cùng những quy tắc chi phối rằng điều gì không thể hoặc có thể để sửa đổi sổ cái. Chẳng hạn như: một địa chỉ Bitcoin không thể chi tiêu nhiều hơn số lượng Bitcoin đã nhận trước đó. Và đây là quy tắc làm nền tảng của mọi giao dịch trên Bitcoin và những Blockchain khác.
Ethereum sử dụng tiền điện tử riêng là Ether (ETH) và tuân theo gần như mọi quy tắc trực quan, đồng thời cũng sở hữu chức năng mạnh mẽ hơn nhiều là hợp đồng thông minh. Tính năng này khá phức tạp, cần có một phép loại suy phức tạp hơn. Ethereum thay vì số cái phân tán là một máy trạng thái phân thái; với cấu trúc dữ liệu lớn, chứa toàn bộ tài sản và số dư, trạng thái máy, có thể thay đổi từ khối này sang khối khác dựa trên một bộ quy tắc xác định trước và có thể thực thi mã máy tùy chọn. EVM sẽ giúp xác định những quy tắc cụ thể trong việc thay đổi trạng thái từ khối này sang khối khác.
Hoạt động của EVM như một hàm toán học: cho một đầu vào rồi nó tạo ra một đầu ra xác định. Từ đó, Ethereum có chức năng chuyển đổi trạng thái (state transition function).
Công thức: Y(S, T)= S’
Trong đó: Trạng thái cũ hợp lệ (S) và tập hợp các giao dịch hợp lệ mới (T), hàm chuyển đổi trạng thái Ethereum Y(S,T) từ đó tạo ra trạng thái đầu ra hợp lệ mới S’.
Một vài khái niệm liên quan
State
Theo định nghĩa của Ethereum, State hay trạng thái là một cấu trúc dữ liệu khổng lồ – Merkle Patricia Trie – được sửa đổi và giữ cho mọi tài khoản được liên kết với nhau bằng hàm băm, có thể rút gọn thành một hàm băm gốc duy nhất được lưu giữ trên Blockchain.
Transactions
Transactions là giao dịch, hướng dẫn được ký bằng mật mã của các tài khoản.
Giao dịch có 2 loại: giao dịch dẫn đến tin nhắn cuộc gọi và giao dịch dẫn đến tạo hợp đồng thông minh.
Tạo hợp đồng sẽ kéo theo tạo một tài khoản hợp đồng mới, với mã bytecode của hợp đồng thông minh, đã được biên dịch. Mọi tài khoản thực hiện một cuộc gọi tin nhắn đến hợp đồng đó, nó sẽ tiến hành mã bytecode của mình.
EVM
EVM tiến hành làm việc như một máy xếp chồng, cùng độ sâu 1024 items (mục). Mỗi mục này là một từ 256-bit word và được chọn nhằm tương thích tối đa với lược đồ băm SHA-3-256.
Khi thực thi, EVM sẽ duy trì một bộ nhớ tạm thời, như một bảng byte được đánh địa chỉ từ và không tồn tại giữa các giao dịch. Hợp đồng cũng chứa bộ ba lưu trữ Merkele Patricia với dạng mảng từ có thể xác định địa chỉ, được liên kết với tài khoản được đề cập cùng một phần của trạng thái toàn cầu.
Mã bytecode của hợp đồng thông minh được biên dịch thực thi dưới dạng một mã opc EVM, tiến hành các hoạt động ngăn xếp tiêu chuẩn như SUB, AND, ADD, XOR… và EVM cũng tiến hành các hoạt động ngăn xếp Blockchain, như BALANCE, ADDRESS, SHA3, BLOCKHASH…
EVM Implementations
Mọi hoạt động triển khai EVM cần tuân thủ đặc điểm kỹ thuật được mô tả trong Ethereum Yellowpaper. Trong nhiều năm lịch sử của Ethereum, EVM đã trải qua nhiều lần sửa đổi và những triển khai EVM bằng ngôn ngữ lập trình khác nhau.
Tất cả các khách hàng Ethereum đều triển khai EVM. Bên cạnh đó, có nhiều triển khai độc lập, gồm có:
- Py-EVM –
- Python evmone – C ++
- ethereumjs-vm –
- JavaScript eEVM – C ++ Hyperledger Burrow – Go
Kết luận
Ethereum Virtual Machine hay EVM là hệ thống máy ảo hỗ trợ chạy để xác thực những trạng thái của mạng Blockchain Ethereum. Nó thuộc Layer-1 và cho phép xác thực và tương tác các dữ liệu với nhau không cần thông qua chuỗi chính. Bên cạnh đó, nó có thể tương tác với chuỗi chính qua hợp đồng thông minh, để ghi đè các dữ liệu lên khối và xác thực các dữ liệu lên các khối qua hàm băm rút gọn.
Cảm ơn sự đón đọc và theo dõi của các bạn. Mong rằng bài viết đã giúp bạn hiểu hơn về máy ảo Ethereum cũng như có thêm những thông tin hữu ích. Chúc các bạn đầu tư thành công. Đừng quên, mọi thắc mắc về thị trường tiền số, vui lòng liên hệ đội ngũ Support của Fiahub 24/7.
Freelancer Marketing và Content Creator với gần 10 năm kinh nghiệm; trong đó có khoảng hơn 3 năm làm việc trong mảng Blockchain với vai trò Dịch Thuật và Copywriter.
Với kiến thức sâu rộng cùng khả năng diễn giải để những thuật ngữ công nghệ khó hiểu trở nên gần gũi hơn với người đọc. Lê Hoàng đảm nhiệm những bài viết trong chuyên mục "Từ Điển Crypto" và "Hướng Dẫn Người Mới" tại Fiahub Blog