EVM là một lớp trừu tượng giữa mã và máy chủ đóng vai trò đảm bảo duy trì hoạt động trơn tru của Ethereum. Rốt cuộc thì EVM là gì? Các nguyên tắc và trường hợp sử dụng điển hình của EVM là gì? Hãy tìm hiểu sâu hơn về nó.
Là blockchain phổ biến nhất hiện nay, Ethereum cung cấp cho người dùng nhiều ứng dụng phi tập trung. Đây là thuật ngữ được nhắc đến thường xuyên nhất khi mọi người đề cập đến DeFi, NFT, v.v. Và EVM, với tư cách là một phần cốt lõi của Ethereum, cũng thu hút sự chú ý rất lớn của mọi người. Vậy mối quan hệ giữa EVM và Ethereum là gì?
EVM là viết tắt của máy ảo Ethereum. Theo định nghĩa của Ethereum, EVM là môi trường thời gian chạy trong đó tất cả các tài khoản Ethereum và hợp đồng thông minh sống trên chuỗi Ethereum.
EVM tồn tại dưới dạng một thực thể duy nhất được duy trì bởi tất cả các máy tính được kết nối chạy ứng dụng khách Ethereum. Nó là thứ xác định các quy tắc để tính toán trạng thái hợp lệ mới từ khối này sang khối khác.
Thay vì sổ cái phân tán như Bitcoin, Ethereum là một cỗ máy trạng thái phân tán. Sự thay đổi từ khối này sang khối khác thể hiện sự cập nhật trạng thái của tất cả các tài khoản và số dư trên Ethereum. Bản Cập Nhật được tính toán dựa trên mã hợp đồng của EVM.
Hình: https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf
EVM là một máy ảo dựa trên ngăn xếp và thực hiện tất cả các hoạt động của nó trực tiếp trong ngăn xếp. Khi hợp đồng thông minh được biên dịch thành mã byte, EVM sẽ thực hiện các hoạt động dựa trên mã byte, bao gồm tìm nạp các biến từ bộ nhớ và thêm vào ngăn xếp, tính toán các biến trong ngăn xếp và lưu các biến vào bộ nhớ, v.v.
Có hai loại lưu trữ dữ liệu chính trong EVM: bộ nhớ và lưu trữ. Các biến trong bộ lưu trữ sẽ được lưu trữ vĩnh viễn trên Ethereum sau khi hợp đồng được thực thi, trong khi các biến trong bộ nhớ tồn tại tạm thời trong khi mã đang được thực thi trên EVM.
Hãy gọi một hợp đồng làm ví dụ. Chúng tôi đã viết hợp đồng với Solidity, biên dịch siêu dữ liệu thông qua trình biên dịch và xuất bản nó trên Ethereum. Khi chúng tôi cần cập nhật trạng thái hợp đồng, chúng tôi cần gọi hợp đồng. Tuy nhiên, cả hệ điều hành và Windows đều không thể chạy trực tiếp hợp đồng thông minh. EVM là cần thiết để cung cấp một môi trường chạy cho các hợp đồng thông minh. Các bước cụ thể như sau: Đầu tiên, EVM tìm mã hợp đồng được lưu trữ trên Ethereum thông qua địa chỉ hợp đồng; sau đó, một môi trường thực thi được tạo ra; cuối cùng nội dung hợp đồng được chuyển thành bytecode và đưa vào EVM để vận hành. Kết quả thu được từ hoạt động sẽ được lưu trữ dưới dạng trạng thái mới nhất trong khối tiếp theo, do đó hoàn tất quá trình cập nhật trạng thái.
Hình: https://cnodejs.org/topic/5aeecba802591040485bab2a
Triển khai EVM
Hiện tại, tất cả các máy khách Ethereum đều có triển khai EVM. Ethereum đã tung ra mã nguồn của một số ngôn ngữ lập trình, bao gồm Python, C++, js, Go, v.v., để triển khai các chức năng của EVM. Nó giúp người dùng hiểu nguyên tắc của EVM một cách thuận tiện hơn.
Py-EVM - Python: https://github.com/ethereum/py-evm
evmone - C++: https://github.com/ethereum/evmone
Ethereumjs - vm - JavaScript: https://github.com/ethereumjs/ ethereumjs-monorepo
eEVM - C++: https://github.com/microsoft/eevm
Hang Hyperledger - Truy cập: https://github.com/hyperledger/burrow
Hợp đồng thông minh là mã chạy độc quyền trên EVM. Chúng không thể được thay đổi sau khi triển khai. Ethereum xác định, sửa đổi và lưu trữ trạng thái thông qua các hợp đồng thông minh để đạt được các ứng dụng phi tập trung khác nhau. EVM hoạt động như một môi trường nơi các hợp đồng thông minh có thể chạy, tương tự như mối quan hệ giữa đường cao tốc và ô tô.
Cần có sức mạnh tính toán đáng kể để thực hiện các hợp đồng thông minh trên EVM, vốn tiêu thụ một lượng gas nhất định. Để hiểu rõ hơn, hãy liên tưởng đến các phương tiện cần trả phí trên đường có thu phí.
Phí gas giúp khuyến khích những người khai thác từ khắp nơi trên thế giới tham gia và cung cấp sức mạnh tính toán, như một cách để làm cho Ethereum trở nên phi tập trung hơn. Nó cũng ngăn người dùng gửi các yêu cầu hoạt động ngẫu nhiên có thể dẫn đến tắc nghẽn Ethereum Mainnet hoặc bảo vệ Ethereum khỏi sự cố bằng cách ngăn chặn các cuộc tấn công độc hại.
Hợp đồng thông minh Ethereum được viết bằng Solidity và được biên dịch thành mã byte trước khi được thực thi trên EVM. Bytecode chứa opcodes hoặc mã hoạt động. EVM có 144 opcode, mỗi mã có chức năng cụ thể, giúp EVM Turing hoàn chỉnh. Nó có thể giải quyết bất kỳ loại vấn đề tính toán. Solidity và Opcodes giúp chúng tôi có thể viết các hợp đồng thông minh phức tạp và triển khai nhiều chức năng khác nhau trên EVM, do đó cung cấp cho người dùng nhiều loại ứng dụng khác nhau.
Đối với cùng một đoạn mã, đầu ra giống nhau sau khi được thực thi trên các EVM khác nhau, vì nó không liên quan gì đến môi trường thực thi và số lần thực thi. Tính chắc chắn của EVM đảm bảo độ tin cậy của mã và tránh những hậu quả không mong muốn. Tính năng này giúp bảo vệ quyền lợi của người dùng đặc biệt khi họ đang thực hiện các giao dịch lớn trên Ethereum.
EVM giống như một hộp cát biệt lập nơi mã chạy. Quá trình đang chạy sẽ không gây hại cho phần mềm/phần cứng của máy tính cũng như không ảnh hưởng đến giao thức cơ bản của Ethereum. Việc cô lập EVM ngăn tin tặc tấn công máy chạy EVM và cũng bảo vệ giao thức cơ bản của Ethereum khỏi bị giả mạo. Nó phục vụ như một sự đảm bảo bảo mật Ethereum.
Quá trình EVM thực thi mã có thể bị gián đoạn. Nếu người dùng chạy mã sai, chẳng hạn như vòng lặp vô hạn, thì cơ chế gas có thể được triển khai để chấm dứt quá trình thực thi nhằm ngăn mã đó chiếm dụng sức mạnh tính toán vô thời hạn. Trước khi thực thi mã trên EVM, giới hạn trên của gas phải được đặt trước. Khi gas cạn kiệt, mã sẽ ngừng chạy và trạng thái sẽ được khôi phục mà không có bất kỳ cập nhật nào trên chuỗi.
Khi người dùng tăng lên, Ethereum Mainnet gặp phải nhiều vấn đề, chẳng hạn như mạng bị tắc nghẽn và phí gas cao. Bị giới hạn trong thiết kế của Ethereum, những vấn đề này không thể được giải quyết triệt để.
Trong những năm gần đây, có nhiều chuỗi công khai mới có phí gas thấp hơn, mạng nhanh hơn và chuỗi Lớp 2 được thiết kế để mở rộng quy mô Ethereum. Các chuỗi này đều là chuỗi hợp đồng thông minh, được cho là có thiết kế cơ bản tốt hơn và có thể được sử dụng để xây dựng nhiều loại dApp.
Các chuỗi này đáp ứng nhu cầu dư thừa của hệ sinh thái Ethereum và thách thức vị thế thống trị của Ethereum. Các đối tác Ethereum có cần thiết phải tương thích với EVM không? Về sự khác biệt này, các chuỗi này được chia thành hai loại: chuỗi tương thích với EVM và chuỗi không EVM.
Gần đây, các chuỗi công khai Lớp 1 lần lượt xuất hiện. Mặc dù việc xây dựng lại một hệ sinh thái trên chuỗi chạy song song với Ethereum có thể khắc phục những thiếu sót hiện có của Ethereum, nhưng nó đòi hỏi nguồn nhân lực đáng kể để xây dựng một hệ sinh thái hoàn chỉnh và phát triển một dApp từ đầu. Việc thiếu các lập trình viên có trình độ cản trở các hệ sinh thái chuỗi công khai mới phát triển. Đối với một chuỗi công khai có hệ sinh thái chưa phát triển, sẽ rất khó để thu hút người dùng từ Ethereum trong một khoảng thời gian ngắn.
Vì điều này, một số chuỗi công khai được thiết kế để tương thích với EVM. Các DApp ban đầu chạy trên Ethereum có thể được chuyển đổi hoàn toàn sang các chuỗi công khai tương thích với EVM chỉ với những sửa đổi nhỏ đối với mã nguồn. Nó không chỉ có thể tối đa hóa việc sử dụng các tài nguyên phát triển mà còn cung cấp cho người dùng trải nghiệm tốt hơn trong quá trình chuyển từ Ethereum sang một chuỗi mới.
Tuy nhiên, khả năng tương thích EVM chắc chắn đi kèm với một số vấn đề nhất định. Bị giới hạn bởi các quy tắc của EVM, nhiều chuỗi tương thích với EVM gặp phải vấn đề liên quan đến cách đạt được sự đổi mới mà không cần đồng nhất hóa. Tuy nhiên, các chuỗi không phải EVM có thể phá vỡ các quy tắc này và phát triển một bộ quy tắc mới từ đầu, từ đó đạt được sự đổi mới về cơ bản.
Hiện tại, hơn 70% chuỗi công khai chính tương thích với EVM, chẳng hạn như BSC, Avalanche, Fantom, Tron, Celo, v.v. Sẽ không khó để các nhà phát triển phát triển dApps hoặc triển khai ứng dụng Ethereum trên các chuỗi này để có hiệu suất cao hơn và phí gas thấp hơn, từ đó cải thiện trải nghiệm người dùng.
Một số chuỗi công khai khác không phải là EVM nhưng đã phát triển các máy ảo của riêng họ, chẳng hạn như Sol, Terra, v.v. Mặc dù không tương thích với EVM, nhưng các chuỗi này đã thu hút một nhóm người dùng và tổ chức trung thành với thiết kế sáng tạo và hiệu suất tuyệt vời trên chuỗi. Ví dụ: hai trò chơi blockchain, Step N và Let me speak, gần đây đã phổ biến trên toàn thế giới, dựa trên chuỗi Sol và đã thu hút những người hâm mộ nhiệt tình trên toàn cầu tham gia.
Đáng chú ý, các chuỗi tương thích với EVM có thể cùng tồn tại với các chuỗi không phải EVM. Một số chuỗi không phải EVM cũng bắt đầu tương thích với EVM. Quá trình đạt được điều này sẽ rất khó khăn vì nó đòi hỏi nhiều nỗ lực để sửa đổi mã. Một ví dụ về điều này là Sol, người đã khởi chạy Neon, cho phép các nhà phát triển xây dựng dApps trên EVM.
Hình: Khả năng tương thích EVM của chuỗi công khai
Là một giải pháp mở rộng của Ethereum, Lớp 2 bổ sung cho Ethereum thay vì đối thủ cạnh tranh của nó. Các chuỗi lớp 2 đều tương thích với EVM, với mức độ tương thích cao hơn so với lớp 1. Để Layer 2 tương thích với EVM, chúng ta có 2 giải pháp: tương thích EVM và tương đương EVM.
Các chuỗi Lớp 2 ban đầu tương thích với EVM, tương tự như khả năng tương thích EVM của các chuỗi Lớp 1. Hợp đồng thông minh trên Lớp 1 của Ethereum có thể được triển khai trên Lớp 2 bằng cách thực hiện một số sửa đổi. Ví dụ: Unipig, do Optimism ra mắt, hoàn toàn là bản tái tạo của mã Uniswap. Nó được coi là Uniswap trên Lớp 2.
Có một số hạn chế đối với khả năng tương thích EVM. Khi phát triển hợp đồng thông minh trên chuỗi tương thích với EVM, một số công cụ và khung phát triển dựa trên EVM có thể không khả dụng. Ngoài ra, đối với các hợp đồng thông minh ban đầu được sắp xếp ở Lớp 1, các nhà phát triển vẫn cần thực hiện một số điều chỉnh để các hợp đồng thông minh có thể chạy trơn tru trên chuỗi khối tương thích với EVM.
Tính tương đương EVM nhằm mục đích cung cấp cho các nhà phát triển trải nghiệm chính xác khi phát triển hợp đồng thông minh trên Lớp 2 như trên Ethereum Lớp 1. Điều này đã mang lại lợi ích to lớn cho các nhà phát triển Layer2, cải thiện hơn nữa hiệu quả phát triển và tiết kiệm chi phí phát triển và bảo trì mã trên cơ sở tương thích với EVM.
Hiện tại, các giải pháp Lớp 2 chính, chẳng hạn như Artbitrum, Optimism và Metis, đã đạt được mức tương đương EVM. Tính tương đương của EVM có thể chuyển tốt hơn các tính năng của Ethereum sang Lớp 2, nhằm giảm thiểu chi phí phát triển và di chuyển do quy mô gây ra. Tương đương EVM dự kiến sẽ trở thành tiêu chuẩn chính của Lớp 2 trong tương lai và nhiều giải pháp Lớp 2 sẽ có một cuộc đua khốc liệt xung quanh tính tương đương EVM.
EVM là cốt lõi giúp Ethereum hoạt động. Với việc thiết lập sự thống trị của Ethereum, các chuỗi công cộng lớn và chuỗi Lớp 2 đã tuân theo hoặc tương thích với khái niệm thiết kế cơ bản của EVM. Do đó, EVM chắc chắn đã có tác động sâu sắc đến toàn bộ chuỗi khối. Bản thân EVM có nhiều vấn đề, khiến các chuỗi mới khó tương thích với EVM. Mặc dù vậy, các nhà phát triển đã làm việc chăm chỉ để cải tiến, điều này đã tạo điều kiện thuận lợi cho sự xuất hiện của nhiều chuỗi công khai khác.
EVM là một lớp trừu tượng giữa mã và máy chủ đóng vai trò đảm bảo duy trì hoạt động trơn tru của Ethereum. Rốt cuộc thì EVM là gì? Các nguyên tắc và trường hợp sử dụng điển hình của EVM là gì? Hãy tìm hiểu sâu hơn về nó.
Là blockchain phổ biến nhất hiện nay, Ethereum cung cấp cho người dùng nhiều ứng dụng phi tập trung. Đây là thuật ngữ được nhắc đến thường xuyên nhất khi mọi người đề cập đến DeFi, NFT, v.v. Và EVM, với tư cách là một phần cốt lõi của Ethereum, cũng thu hút sự chú ý rất lớn của mọi người. Vậy mối quan hệ giữa EVM và Ethereum là gì?
EVM là viết tắt của máy ảo Ethereum. Theo định nghĩa của Ethereum, EVM là môi trường thời gian chạy trong đó tất cả các tài khoản Ethereum và hợp đồng thông minh sống trên chuỗi Ethereum.
EVM tồn tại dưới dạng một thực thể duy nhất được duy trì bởi tất cả các máy tính được kết nối chạy ứng dụng khách Ethereum. Nó là thứ xác định các quy tắc để tính toán trạng thái hợp lệ mới từ khối này sang khối khác.
Thay vì sổ cái phân tán như Bitcoin, Ethereum là một cỗ máy trạng thái phân tán. Sự thay đổi từ khối này sang khối khác thể hiện sự cập nhật trạng thái của tất cả các tài khoản và số dư trên Ethereum. Bản Cập Nhật được tính toán dựa trên mã hợp đồng của EVM.
Hình: https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf
EVM là một máy ảo dựa trên ngăn xếp và thực hiện tất cả các hoạt động của nó trực tiếp trong ngăn xếp. Khi hợp đồng thông minh được biên dịch thành mã byte, EVM sẽ thực hiện các hoạt động dựa trên mã byte, bao gồm tìm nạp các biến từ bộ nhớ và thêm vào ngăn xếp, tính toán các biến trong ngăn xếp và lưu các biến vào bộ nhớ, v.v.
Có hai loại lưu trữ dữ liệu chính trong EVM: bộ nhớ và lưu trữ. Các biến trong bộ lưu trữ sẽ được lưu trữ vĩnh viễn trên Ethereum sau khi hợp đồng được thực thi, trong khi các biến trong bộ nhớ tồn tại tạm thời trong khi mã đang được thực thi trên EVM.
Hãy gọi một hợp đồng làm ví dụ. Chúng tôi đã viết hợp đồng với Solidity, biên dịch siêu dữ liệu thông qua trình biên dịch và xuất bản nó trên Ethereum. Khi chúng tôi cần cập nhật trạng thái hợp đồng, chúng tôi cần gọi hợp đồng. Tuy nhiên, cả hệ điều hành và Windows đều không thể chạy trực tiếp hợp đồng thông minh. EVM là cần thiết để cung cấp một môi trường chạy cho các hợp đồng thông minh. Các bước cụ thể như sau: Đầu tiên, EVM tìm mã hợp đồng được lưu trữ trên Ethereum thông qua địa chỉ hợp đồng; sau đó, một môi trường thực thi được tạo ra; cuối cùng nội dung hợp đồng được chuyển thành bytecode và đưa vào EVM để vận hành. Kết quả thu được từ hoạt động sẽ được lưu trữ dưới dạng trạng thái mới nhất trong khối tiếp theo, do đó hoàn tất quá trình cập nhật trạng thái.
Hình: https://cnodejs.org/topic/5aeecba802591040485bab2a
Triển khai EVM
Hiện tại, tất cả các máy khách Ethereum đều có triển khai EVM. Ethereum đã tung ra mã nguồn của một số ngôn ngữ lập trình, bao gồm Python, C++, js, Go, v.v., để triển khai các chức năng của EVM. Nó giúp người dùng hiểu nguyên tắc của EVM một cách thuận tiện hơn.
Py-EVM - Python: https://github.com/ethereum/py-evm
evmone - C++: https://github.com/ethereum/evmone
Ethereumjs - vm - JavaScript: https://github.com/ethereumjs/ ethereumjs-monorepo
eEVM - C++: https://github.com/microsoft/eevm
Hang Hyperledger - Truy cập: https://github.com/hyperledger/burrow
Hợp đồng thông minh là mã chạy độc quyền trên EVM. Chúng không thể được thay đổi sau khi triển khai. Ethereum xác định, sửa đổi và lưu trữ trạng thái thông qua các hợp đồng thông minh để đạt được các ứng dụng phi tập trung khác nhau. EVM hoạt động như một môi trường nơi các hợp đồng thông minh có thể chạy, tương tự như mối quan hệ giữa đường cao tốc và ô tô.
Cần có sức mạnh tính toán đáng kể để thực hiện các hợp đồng thông minh trên EVM, vốn tiêu thụ một lượng gas nhất định. Để hiểu rõ hơn, hãy liên tưởng đến các phương tiện cần trả phí trên đường có thu phí.
Phí gas giúp khuyến khích những người khai thác từ khắp nơi trên thế giới tham gia và cung cấp sức mạnh tính toán, như một cách để làm cho Ethereum trở nên phi tập trung hơn. Nó cũng ngăn người dùng gửi các yêu cầu hoạt động ngẫu nhiên có thể dẫn đến tắc nghẽn Ethereum Mainnet hoặc bảo vệ Ethereum khỏi sự cố bằng cách ngăn chặn các cuộc tấn công độc hại.
Hợp đồng thông minh Ethereum được viết bằng Solidity và được biên dịch thành mã byte trước khi được thực thi trên EVM. Bytecode chứa opcodes hoặc mã hoạt động. EVM có 144 opcode, mỗi mã có chức năng cụ thể, giúp EVM Turing hoàn chỉnh. Nó có thể giải quyết bất kỳ loại vấn đề tính toán. Solidity và Opcodes giúp chúng tôi có thể viết các hợp đồng thông minh phức tạp và triển khai nhiều chức năng khác nhau trên EVM, do đó cung cấp cho người dùng nhiều loại ứng dụng khác nhau.
Đối với cùng một đoạn mã, đầu ra giống nhau sau khi được thực thi trên các EVM khác nhau, vì nó không liên quan gì đến môi trường thực thi và số lần thực thi. Tính chắc chắn của EVM đảm bảo độ tin cậy của mã và tránh những hậu quả không mong muốn. Tính năng này giúp bảo vệ quyền lợi của người dùng đặc biệt khi họ đang thực hiện các giao dịch lớn trên Ethereum.
EVM giống như một hộp cát biệt lập nơi mã chạy. Quá trình đang chạy sẽ không gây hại cho phần mềm/phần cứng của máy tính cũng như không ảnh hưởng đến giao thức cơ bản của Ethereum. Việc cô lập EVM ngăn tin tặc tấn công máy chạy EVM và cũng bảo vệ giao thức cơ bản của Ethereum khỏi bị giả mạo. Nó phục vụ như một sự đảm bảo bảo mật Ethereum.
Quá trình EVM thực thi mã có thể bị gián đoạn. Nếu người dùng chạy mã sai, chẳng hạn như vòng lặp vô hạn, thì cơ chế gas có thể được triển khai để chấm dứt quá trình thực thi nhằm ngăn mã đó chiếm dụng sức mạnh tính toán vô thời hạn. Trước khi thực thi mã trên EVM, giới hạn trên của gas phải được đặt trước. Khi gas cạn kiệt, mã sẽ ngừng chạy và trạng thái sẽ được khôi phục mà không có bất kỳ cập nhật nào trên chuỗi.
Khi người dùng tăng lên, Ethereum Mainnet gặp phải nhiều vấn đề, chẳng hạn như mạng bị tắc nghẽn và phí gas cao. Bị giới hạn trong thiết kế của Ethereum, những vấn đề này không thể được giải quyết triệt để.
Trong những năm gần đây, có nhiều chuỗi công khai mới có phí gas thấp hơn, mạng nhanh hơn và chuỗi Lớp 2 được thiết kế để mở rộng quy mô Ethereum. Các chuỗi này đều là chuỗi hợp đồng thông minh, được cho là có thiết kế cơ bản tốt hơn và có thể được sử dụng để xây dựng nhiều loại dApp.
Các chuỗi này đáp ứng nhu cầu dư thừa của hệ sinh thái Ethereum và thách thức vị thế thống trị của Ethereum. Các đối tác Ethereum có cần thiết phải tương thích với EVM không? Về sự khác biệt này, các chuỗi này được chia thành hai loại: chuỗi tương thích với EVM và chuỗi không EVM.
Gần đây, các chuỗi công khai Lớp 1 lần lượt xuất hiện. Mặc dù việc xây dựng lại một hệ sinh thái trên chuỗi chạy song song với Ethereum có thể khắc phục những thiếu sót hiện có của Ethereum, nhưng nó đòi hỏi nguồn nhân lực đáng kể để xây dựng một hệ sinh thái hoàn chỉnh và phát triển một dApp từ đầu. Việc thiếu các lập trình viên có trình độ cản trở các hệ sinh thái chuỗi công khai mới phát triển. Đối với một chuỗi công khai có hệ sinh thái chưa phát triển, sẽ rất khó để thu hút người dùng từ Ethereum trong một khoảng thời gian ngắn.
Vì điều này, một số chuỗi công khai được thiết kế để tương thích với EVM. Các DApp ban đầu chạy trên Ethereum có thể được chuyển đổi hoàn toàn sang các chuỗi công khai tương thích với EVM chỉ với những sửa đổi nhỏ đối với mã nguồn. Nó không chỉ có thể tối đa hóa việc sử dụng các tài nguyên phát triển mà còn cung cấp cho người dùng trải nghiệm tốt hơn trong quá trình chuyển từ Ethereum sang một chuỗi mới.
Tuy nhiên, khả năng tương thích EVM chắc chắn đi kèm với một số vấn đề nhất định. Bị giới hạn bởi các quy tắc của EVM, nhiều chuỗi tương thích với EVM gặp phải vấn đề liên quan đến cách đạt được sự đổi mới mà không cần đồng nhất hóa. Tuy nhiên, các chuỗi không phải EVM có thể phá vỡ các quy tắc này và phát triển một bộ quy tắc mới từ đầu, từ đó đạt được sự đổi mới về cơ bản.
Hiện tại, hơn 70% chuỗi công khai chính tương thích với EVM, chẳng hạn như BSC, Avalanche, Fantom, Tron, Celo, v.v. Sẽ không khó để các nhà phát triển phát triển dApps hoặc triển khai ứng dụng Ethereum trên các chuỗi này để có hiệu suất cao hơn và phí gas thấp hơn, từ đó cải thiện trải nghiệm người dùng.
Một số chuỗi công khai khác không phải là EVM nhưng đã phát triển các máy ảo của riêng họ, chẳng hạn như Sol, Terra, v.v. Mặc dù không tương thích với EVM, nhưng các chuỗi này đã thu hút một nhóm người dùng và tổ chức trung thành với thiết kế sáng tạo và hiệu suất tuyệt vời trên chuỗi. Ví dụ: hai trò chơi blockchain, Step N và Let me speak, gần đây đã phổ biến trên toàn thế giới, dựa trên chuỗi Sol và đã thu hút những người hâm mộ nhiệt tình trên toàn cầu tham gia.
Đáng chú ý, các chuỗi tương thích với EVM có thể cùng tồn tại với các chuỗi không phải EVM. Một số chuỗi không phải EVM cũng bắt đầu tương thích với EVM. Quá trình đạt được điều này sẽ rất khó khăn vì nó đòi hỏi nhiều nỗ lực để sửa đổi mã. Một ví dụ về điều này là Sol, người đã khởi chạy Neon, cho phép các nhà phát triển xây dựng dApps trên EVM.
Hình: Khả năng tương thích EVM của chuỗi công khai
Là một giải pháp mở rộng của Ethereum, Lớp 2 bổ sung cho Ethereum thay vì đối thủ cạnh tranh của nó. Các chuỗi lớp 2 đều tương thích với EVM, với mức độ tương thích cao hơn so với lớp 1. Để Layer 2 tương thích với EVM, chúng ta có 2 giải pháp: tương thích EVM và tương đương EVM.
Các chuỗi Lớp 2 ban đầu tương thích với EVM, tương tự như khả năng tương thích EVM của các chuỗi Lớp 1. Hợp đồng thông minh trên Lớp 1 của Ethereum có thể được triển khai trên Lớp 2 bằng cách thực hiện một số sửa đổi. Ví dụ: Unipig, do Optimism ra mắt, hoàn toàn là bản tái tạo của mã Uniswap. Nó được coi là Uniswap trên Lớp 2.
Có một số hạn chế đối với khả năng tương thích EVM. Khi phát triển hợp đồng thông minh trên chuỗi tương thích với EVM, một số công cụ và khung phát triển dựa trên EVM có thể không khả dụng. Ngoài ra, đối với các hợp đồng thông minh ban đầu được sắp xếp ở Lớp 1, các nhà phát triển vẫn cần thực hiện một số điều chỉnh để các hợp đồng thông minh có thể chạy trơn tru trên chuỗi khối tương thích với EVM.
Tính tương đương EVM nhằm mục đích cung cấp cho các nhà phát triển trải nghiệm chính xác khi phát triển hợp đồng thông minh trên Lớp 2 như trên Ethereum Lớp 1. Điều này đã mang lại lợi ích to lớn cho các nhà phát triển Layer2, cải thiện hơn nữa hiệu quả phát triển và tiết kiệm chi phí phát triển và bảo trì mã trên cơ sở tương thích với EVM.
Hiện tại, các giải pháp Lớp 2 chính, chẳng hạn như Artbitrum, Optimism và Metis, đã đạt được mức tương đương EVM. Tính tương đương của EVM có thể chuyển tốt hơn các tính năng của Ethereum sang Lớp 2, nhằm giảm thiểu chi phí phát triển và di chuyển do quy mô gây ra. Tương đương EVM dự kiến sẽ trở thành tiêu chuẩn chính của Lớp 2 trong tương lai và nhiều giải pháp Lớp 2 sẽ có một cuộc đua khốc liệt xung quanh tính tương đương EVM.
EVM là cốt lõi giúp Ethereum hoạt động. Với việc thiết lập sự thống trị của Ethereum, các chuỗi công cộng lớn và chuỗi Lớp 2 đã tuân theo hoặc tương thích với khái niệm thiết kế cơ bản của EVM. Do đó, EVM chắc chắn đã có tác động sâu sắc đến toàn bộ chuỗi khối. Bản thân EVM có nhiều vấn đề, khiến các chuỗi mới khó tương thích với EVM. Mặc dù vậy, các nhà phát triển đã làm việc chăm chỉ để cải tiến, điều này đã tạo điều kiện thuận lợi cho sự xuất hiện của nhiều chuỗi công khai khác.