Máy ảo Ethereum (EVM)

Một phần của tài liệu Xây dựng ứng dụng mạng blockchain dựa trên ethereum virtual machine và solidity (báo cáo cuối kì đồ án 1) (Trang 40 - 42)

C. ETHEREUM

2. Các khái niệm trong Ethereum

2.8. Máy ảo Ethereum (EVM)

Về cơ bản, Blockchain của Ethereum cũng tương tự như các Blockchain khác, nó được cấu thành bởi mạng lưới các máy tính hay cịn gọi là Nodes.

Để tham gia vào mạng lưới, các nodes cần cài đặt phần mềm Ethereum Client như Geth, Parity,...

40 Khi cài đặt Ethereum Client, đồng nghĩa với việc các nodes sẽ phải chạy một chương trình máy ảo là Ethereum Virtual Machine (EVM). EVM sẽ chịu trách nhiệm thực thi các Smart Contract (hợp đồng thơng minh).

EVM nói một cách đơn giản là một phần trong mạng Ethereum có nhiệm vụ xử lý việc triển khai và thực thi trên smart contract. Một giao dịch chuyển ETH từ tài khoản này qua tài khoản khác sẽ không cần EVM xử lý. EVM có trên tất cả các client (node) của mạng Ethereum, hướng đến mục tiêu như là một máy tính phi tập trung toàn cầu.

EVM là một máy trạng thái Turing hồn chỉnh, bởi vì tất cả các bước thực thi được giới hạn trong một lượng hữu hạn các bước tính tốn. Đây là điều khác biệt so với Bitcoin khi trên bitcoin thì Stack Machine chỉ là máy Turing khơng hồn chỉnh.

EVM có kiến trúc dựa trên ngăn xếp (stack-based). Chạy theo nguyên tắc First in Last out.

Kích thước của mỗi ngăn xếp trong EVM là 256-bit và ngăn xếp có kích thước tối đa là 1024.

Các thành phần lưu trữ thông tin trên EVM được chia ra thành 3 phần:

• Một mã ROM cố định, không thể thay đổi. Được load cùng byte code của smart contract khi xử lý contract.

• Memory: dữ liệu được lưu trữ dưới dạng các mảng byte. Memory không ổn định, là bộ nhớ ngắn hạn, có nghĩa dữ liệu trong memory khơng được lưu trữ lâu dài. • Storage: là một bộ nhớ dài hạn. Không giống như memory, storage không biến

động và được duy trì như một phần của trạng thái hệ thống. EVM lưu mã chương trình riêng biệt, trong một ROM ảo chỉ có thể được truy cập thơng qua các lệnh đặc biệt. Khác với các máy tính theo kiến trúc von Neumann điển hình, trong đó mã chương trình được lưu trữ trong memory hoặc storage.

EVM cũng có ngơn ngữ của nó: “EVM bytecode”. Khi viết các hợp đồng thông minh hoạt động trên Ethereum, chúng ta thường viết mã bằng ngôn ngữ bậc cao như Solidity hay Vyper. Sau đó chúng được biên dịch bytecode mà EVM có thể hiểu được.

Một phần của tài liệu Xây dựng ứng dụng mạng blockchain dựa trên ethereum virtual machine và solidity (báo cáo cuối kì đồ án 1) (Trang 40 - 42)

Tải bản đầy đủ (PDF)

(60 trang)