Tiêu đề gốc: "Giải cấu trúc ETH2.0: EVM và eWASM"
Nguồn gốc: Trang web ETH Trung Quốc
eWASM cho Ethereum 2.0
eWASM là một động thái sáng tạo khác để Ethereum tiến tới kỷ nguyên 2.0. Quan điểm chính thống là eWASM có thể thúc đẩy tốc độ, khả năng mở rộng và tính linh hoạt của mạng, đồng thời cho phép các nhà phát triển xây dựng các hợp đồng thông minh phức tạp hơn dựa trên giao thức Ethereum 2.0.
Ngoài ra, các bài viết trước của chúng tôi cũng giải thích nhiều khía cạnh khác nhau của Eth 2.0, chẳng hạn như Đặt cược, Sharding, Ethereum Layer-2, zk-snark, v.v. Trước khi thảo luận về eWASM, chúng ta hãy tìm hiểu lộ trình cơ bản của Ethereum 2.0.
Ethereum 2.0 là gì?
Ethereum 2.0 bao gồm một loạt các nâng cấp sẽ tạo ra những cải tiến mang tính đột phá đối với giao thức, mở rộng dung lượng của mạng Ethereum và làm cho mạng hoạt động hiệu quả hơn. Các nâng cấp bao gồm: Proof of Stake sử dụng giao thức Casper, sharding, Raiden, Plasma, Rollups, v.v. Những nâng cấp này sẽ được triển khai theo các giai đoạn khác nhau của Ethereum để đảm bảo triển khai và thực thi đúng cách.
- Giai đoạn 0: Bắt đầu chuỗi Beacon , chuyển sang cơ chế bằng chứng cổ phần PoS
- Giai đoạn 1: Tham gia sharding
- Giai đoạn 2: Sử dụng Ethereum 2.0 eWASM để thay thế Máy ảo Ethereum (EVM) hiện có

Bài viết này sẽ chủ yếu thảo luận về giai đoạn 2. Nếu người đọc quan tâm đến Ethereum Nếu bạn có hiểu biết nhất định về 2.0, bạn nên biết rằng việc chuyển đổi từ EVM sang eWASM là một công việc rất tham vọng. Trước khi tìm hiểu eWASM, chúng ta hãy xem EVM chính xác là gì.
Máy ảo Ethereum là gì?
Mỗi blockchain phi tập trung đều yêu cầu một máy ảo để xử lý và thực hiện các hoạt động. Máy ảo của Bitcoin tương đối đơn giản vì nó chỉ cần xử lý các giao dịch. Tuy nhiên, vì Ethereum hỗ trợ các hợp đồng thông minh hoàn chỉnh Turing nên độ phức tạp của nó cao hơn. Vì vậy, chúng ta cần suy nghĩ về một câu hỏi quan trọng khác.
Vì hợp đồng thông minh phải không thay đổi và chạy không bị mất dữ liệu thậm chí thông qua nhiều nút, nên Máy ảo Ethereum (EVM) cần có những tính năng chính nào?

- OK Giới tính
- Khả năng kết thúc
- Độc lập
▼Tính xác định
Nếu với cùng một bộ dữ liệu đầu vào, bất kể chương trình có đưa ra cùng một đầu ra cho dù mã được thực thi bao nhiêu lần thì chương trình có thể nói là có tính xác định. Một ví dụ hoàn hảo về hàm xác định là một phép toán. Ví dụ: giả sử tất cả các số đều có cơ số 10 thì 1 + 4 sẽ luôn bằng 5, bất kể thao tác được lặp lại bao nhiêu lần.
DApp thường cần xử lý đồng thời số tiền lớn, vì vậy người dùng cần biết chính xác cách mã phản hồi ở mỗi giai đoạn thực thi.
▼Khả năng kết thúc
Chúng ta cần lưu ý rằng các hợp đồng thông minh Ethereum đã hoàn tất Turing. Nếu có đủ thời gian và nguồn lực, về mặt lý thuyết, hợp đồng thông minh có thể giải quyết mọi vấn đề. Tuy nhiên, chúng tôi không thể biết liệu hợp đồng có thể hoàn thành mọi hoạt động trong thời hạn nhất định hay không. Đây là lý do tại sao hợp đồng thông minh cần phải có cơ chế chấm dứt. Hợp đồng thông minh Ethereum sử dụng “gas” để xác định tuổi thọ của chúng. Khi hợp đồng đạt đến giới hạn gas, hoạt động không thể tiếp tục.
▼ Độc lập
Cuối cùng, hợp đồng thông minh phải chạy trong một môi trường hoàn toàn độc lập. Nếu có điều gì đó bất ngờ xảy ra với hợp đồng (chẳng hạn như bị tấn công hoặc có lỗ hổng bảo mật), thì tác động đó sẽ không ảnh hưởng đến các giao thức cơ bản khác.
Để đáp ứng ba đặc điểm trên, có hai hệ thống có thể được sử dụng bởi hợp đồng thông minh - Máy ảo và vùng chứa Docker. Do thiết kế mặc định của hợp đồng Docker không mang tính quyết định nên Ethereum đã quyết định sử dụng máy ảo.
Máy ảo Ethereum: Nó hoạt động như thế nào?
Khi chúng ta nói về "máy ảo", chính xác thì chúng ta muốn nói gì?
Các hệ điều hành truyền thống (Windows/iOS) chỉ cần chạy trên một hệ thống tại một thời điểm. Máy ảo (VM) là một bản tóm tắt cấp cao hơn được tạo dựa trên hệ điều hành cục bộ có thể được sử dụng để tái tạo chức năng của máy vật lý.
Máy ảo cho phép người dùng chạy đồng thời cùng một nền tảng trên các kiến trúc phần cứng và hệ điều hành khác nhau. Đây là lý do tại sao máy ảo lại hoàn hảo cho các mạng phi tập trung như Ethereum. Mục tiêu chính của Ethereum là trở thành siêu máy tính toàn cầu, cho phép các nhà phát triển xây dựng hợp đồng thông minh và ứng dụng phi tập trung của riêng họ với sự trợ giúp của tài nguyên máy tính. Máy ảo Ethereum (EVM) hoạt động giống như một máy tính thế giới, có thể truy cập được vào các nút trên toàn thế giới.

▼Stack và máy trạng thái
So với các máy ảo thông thường, EVM còn có hai tính năng bổ sung. Đầu tiên, EVM với tư cách là một máy trạng thái có thể đọc đầu vào và sau đó cập nhật trạng thái tương ứng. Thứ hai, EVM cũng dựa trên ngăn xếp và cấu trúc bộ nhớ của nó có thể được tổ chức và truy cập dưới dạng ngăn xếp.
Nếu người đọc đã quen với cấu trúc dữ liệu thì chắc hẳn họ đã quen với ngăn xếp. Ngăn xếp là một cấu trúc dữ liệu tuyến tính trong đó các hoạt động được thực hiện thông qua LIFO (vào sau, ra trước).
Sau đây là ví dụ:

Trong ngăn xếp ở trên, dữ liệu được chèn đầu tiên là Orange và phần dữ liệu cuối cùng là Apple. Theo logic của LIFO, phần dữ liệu đầu tiên chúng tôi lấy ra phải là Apple và phần dữ liệu cuối cùng phải là Orange.
Bây giờ hãy xem các thao tác ngăn xếp: Đẩy và Bật.
Đẩy: Thêm dữ liệu vào ngăn xếp
Pop: Sử dụng Logic LIFO xóa dữ liệu khỏi ngăn xếp
▼Hoạt động xếp chồng trong EVM
Trong ảo hóa xếp chồng Trong máy, thao tác như sau:
- Dữ liệu và toán hạng được xóa trước tiên
- Thao tác tương ứng được thực hiện p>
- Kết quả thực thi được thêm vào ngăn xếp

Tham khảo biểu đồ sau:
- Trước tiên chúng ta xóa hai số: 20 và 7
- Cộng hai số này lại ta được 27
- Cuối cùng, kết quả được thêm trở lại ngăn xếp
EVM Ưu điểm của hệ thống xếp chồng
- Cấu trúc ngăn xếp đảm bảo rằng EVM không cần lấy địa chỉ chính xác của toán hạng. Cấu trúc ngăn xếp luôn luôn và nhất thiết phải trỏ VM tới toán hạng tiếp theo. Nó làm giảm rất nhiều chi phí hoạt động trong khi cải thiện hiệu quả tổng thể.
- EVM có: trạng thái thế giới (trạng thái thế giới), trạng thái máy (trạng thái máy ) và ROM ảo. Trạng thái thế giới lưu trữ tất cả các tài khoản trong mạng và trạng thái máy bao gồm các dữ liệu như bộ đếm chương trình, lượng gas khả dụng, ngăn xếp và bộ nhớ. Cuối cùng, ROM ảo đọc mã cấp máy được gọi là "mã byte EVM". Đây là một ngôn ngữ độc đáo mà chỉ EVM mới hiểu được.
▼EVM - Đọc mã byte

p>
Ngôn ngữ lập trình được chia thành ngôn ngữ cấp cao và ngôn ngữ cấp thấp. Các ngôn ngữ cấp thấp, chẳng hạn như mã byte, có thể dễ dàng đọc được bằng máy nhưng con người lại khó hiểu. Đây là lý do tại sao hầu hết các ngôn ngữ lập trình đều ở cấp độ cao. Vậy chương trình hoạt động như thế nào trong hợp đồng thông minh?
- Trí thông minh ngôn ngữ Solidity/Vyper hợp đồng được biên dịch thành mã byte, sử dụng trình biên dịch có tên "solc"
- mã byte được đọc từ mạng và Xử lý
- Bytecode là dạng nhị phân của các opcode Solidity. Trình biên dịch là một phần rất quan trọng trong quá trình chuyển từ EVM sang eWASM vì EVM không thể hiểu bất kỳ ngôn ngữ nào ngoài mã byte.
- Mỗi opcode được đặt một tên dễ hiểu trong thông số kỹ thuật và được biểu thị bằng mã số. Ví dụ: số 0X01 đại diện cho mã ADD.
▼Chức năng của EVM
- EVM là một đơn vị xử lý phi tập trung trong mạng Ethereum. Mọi giao dịch, tương tác và thực hiện hợp đồng thông minh chỉ có thể xảy ra thông qua EVM.
- Chịu trách nhiệm về tất cả các cấu trúc dữ liệu khác nhau, bao gồm các lệnh, toán hạng và dữ liệu đã xử lý.
- EVM tìm nạp và thực thi các lệnh thông qua bộ điều phối lệnh, giải mã các opcode.
- EVM cũng theo dõi nhiều thành phần mạng như trạng thái thế giới, trạng thái lưu trữ và thông tin khối.
- Tạo môi trường thời gian chạy cho các hợp đồng thông minh trong mạng Ethereum. Môi trường này chứa thông tin cần thiết để thực hiện một giao dịch cụ thể, chẳng hạn như giá gas (giá gas mới nhất), kích thước mã, Người gọi (địa chỉ người nhận giao dịch) và Origin (địa chỉ người gửi giao dịch).
▼ Nhược điểm của EVM
Mặc dù EVM có nhiều ưu điểm nhưng cũng có 4 vấn đề chính hạn chế thông lượng chung của mạng: span>
- Vì EVM cần xử lý một số lượng lớn các hoạt động khác nhau nên tốc độ của nó không đạt yêu cầu. Thông số kỹ thuật opcode của EVM chưa được cập nhật và cũng chưa được tối ưu hóa cho các nền tảng phần cứng khác nhau.
- Điểm đầu tiên đề cập rằng do EVM cần xử lý một số lượng lớn các hoạt động khác nhau nên sẽ dễ trở thành nút cổ chai trong hoạt động. Kết quả là sự suy giảm nghiêm trọng về hiệu quả của toàn bộ mạng lưới.
- EVM chưa được tối ưu hóa nhiều kể từ khi thông số kỹ thuật ban đầu được phát hành, dẫn đến số lượng công cụ và ngôn ngữ rất lớn bắt buộc phải viết hợp đồng Hạn chế.
Nếu bản thân môi trường làm việc cơ bản có những sai sót lớn thì việc giới thiệu một loạt cơ chế mới (sharding/rollups/Casper) để làm gì? Lý do Ethereum tìm cách chuyển từ EVM sang eWASM cũng là do việc đo lường những thiếu sót trên.
Vậy eWASM là gì? Trước đó, chúng ta cần hiểu WebAssembly là gì.
WebAssembly (WASM) là gì?

WebAssembly Gần đây Nhận được rất nhiều sự chú ý. WebAssembly là loại mã mới được World Wide Web Consortium (W3C, World Wide Web Consortium) tạo và xác định, mã này thực thi hiệu quả trong các trình duyệt hiện đại.
Điều gì khiến WebAssembly trở nên độc đáo?
Vì WASM có định dạng nhị phân cấp thấp dựa trên ngăn xếp và nhỏ theo mặc định nên nó có thể tải và thực thi nhanh chóng. Sau khi trình duyệt tải xuống mã WASM, nó có thể nhanh chóng chuyển đổi mã đó thành một tập hợp cho bất kỳ máy tính nào.
Ưu điểm của WebAssembly
Được hỗ trợ bởi nhiều công cụ JavaScript và môi trường thời gian chạy, nó có thể được sử dụng trong hầu hết các Thực thi trong các trình duyệt hiện đại.
Ngôn ngữ Go/Rust/C/C++ có thể được biên dịch trực tiếp thành WASM
Có thể nhanh chóng thích ứng với mọi kiến trúc cấp máy và có hiệu suất cực cao
Đi kèm với bộ hướng dẫn tương thích với hầu hết các kiến trúc phần cứng hiện đại
Gần bằng tốc độ gốc trên hầu hết các nền tảng
Ethereum 2.0 eWASM
Bạn có thể đã phát hiện ra sau khi đọc nội dung này rằng eWASM (Ethereum WebAssembly) là WebAssembly của Ethereum 2.0.
Theo nhóm liên quan:
eWASM = WASM - không xác định (dấu phẩy động) + đo lường + đường dẫn EEI (dùng để tương tác với Ethereum) p>
Nhóm eWASM đã đưa ra các thông số cụ thể của nó mục tiêu thiết kế:
Xây dựng trình dịch EVM và thêm bộ tiêm đo sáng dưới dạng hợp đồng eWASM
Xuất bản các thông số kỹ thuật rõ ràng và chi tiết: Giao diện Ethereum, ngữ nghĩa và chi tiết hợp đồng eWASM
Xây dựng phần phụ trợ eWASM cho trình biên dịch solc
Cung cấp hướng dẫn và thư viện tương ứng bằng ngôn ngữ C và ngôn ngữ Rust để hỗ trợ viết hợp đồng thông minh
Các dự án như EOS, Tron và Cardano đã áp dụng hoặc đang chuẩn bị áp dụng WASM để triển khai eWASM Sau này, Ethereum cũng sẽ trở thành một trong số đó.
eWASM vs EVM
Phần chính của EVM Mục tiêu thiết kế là đảm bảo tính chính xác, ngay cả khi nó có thể hy sinh một số hiệu quả. Nhà phát triển Ethereum Lane Rettig tin rằng EVM dựa trên thiết kế lý thuyết hơn là thiết kế thực tế, vì vậy nó có thể không hỗ trợ hoàn hảo các ứng dụng trong thế giới thực. Mỗi nút trong EVM phải chạy EVM một cách hoàn chỉnh và chính xác, đồng thời WASM được thiết kế cho các ứng dụng thực tế và có thể dễ dàng dịch logic mã thực tế nên có nhiều lợi thế hơn về hiệu quả và tốc độ.

Bây giờ khi đã hiểu tổng quát, tôi sẽ so sánh thêm eWASM và EVM.
▼eWASM vs EVM #1: Tốc độ
Đơn giản Nói chung, EVM có thể được coi là một loại “dầu quan trọng”, nhưng nó không đạt được hiệu quả như mong muốn. Lấy việc biên dịch mã làm ví dụ.
EVM thường không biên dịch được số lượng lớn mã một cách hiệu quả. Công cụ JS gốc của trình duyệt thường yêu cầu nhiều công việc để tìm ra đường dẫn tốt nhất để thực hiện một số hoạt động nhất định, điều này có thể có tác động rất lớn đến thông lượng tổng thể của EVM. Ngoài ra, EVM chỉ có thể xử lý mã byte 256 bit, do đó mã byte nhỏ hơn 256 bit phải được chuyển đổi sang định dạng 256 bit.

Thiết kế của EVM hạn chế rất nhiều tốc độ và khả năng mở rộng của Ethereum, cho phép nó chỉ xử lý tối đa 25 giao dịch mỗi giây. Và điều này rất phi thực tế đối với thế giới thực và nhu cầu thực tế.
eWASM có thể được chuyển đổi trực tiếp thành mã được biên dịch, giúp tải nhanh hơn và khối lượng giao dịch trên mỗi khối cao hơn đáng kể. Ngoài ra, với sự hỗ trợ của giải pháp sharding và layer2, tốc độ của Ethereum 2.0 sẽ được cải thiện đáng kể.
▼eWASM vs EVM #2: Biên dịch trước
eWASM cũng loại bỏ sự phụ thuộc của Ethereum vào quá trình biên dịch trước. Biên dịch trước là một phần đặc biệt của mã byte EVM. Lợi ích là nó có thể tiết kiệm chi phí gas và thực hiện các hoạt động mã hóa hiệu quả. Trong hầu hết các trường hợp, hầu như không thể giữ lượng khí cần thiết để tạo hợp đồng trong giới hạn trên nếu không biên dịch trước. Hiệu suất gas của eWASM cao đến mức nó có thể loại bỏ hầu hết hoặc thậm chí tất cả quá trình biên dịch trước.
Tuy nhiên, việc biên dịch trước cũng có những hạn chế. Việc giới thiệu các bản biên dịch trước mới thường yêu cầu một hard fork trên toàn hệ thống của mạng. Theo kinh nghiệm lịch sử, hard fork phần nào gây tranh cãi vì chúng có thể dẫn đến chia rẽ cộng đồng.
Và những điều này có nghĩa là gì?
eWASM có thể giúp các nhà phát triển tạo hợp đồng thông minh một cách nhanh chóng và tiết kiệm chi phí mà không phải lo lắng về hard fork.
▼eWASM vs EVM #3: Tính linh hoạt
span>
Cuối cùng, so với EVM tiêu chuẩn, ưu điểm đáng kể nhất của eWASM là tính linh hoạt của mã. Để viết hợp đồng thông minh, các nhà phát triển Ethereum phải học ngôn ngữ Solidity một cách cụ thể, điều này trở thành điểm nghẽn về kiến thức đối với các nhà phát triển.
eWASM có thể tương tác với nhiều ngôn ngữ và có bộ công cụ dành cho nhà phát triển rộng hơn. eWASM sẽ hỗ trợ các ngôn ngữ C/C++/Rust.

eWASM sẽ Nhận hỗ trợ cho tất cả các công cụ JavaScript chính, chẳng hạn như:
- Công cụ Chakra của Microsoft (Microsoft Edge)
- Công cụ V8 của Google (Node.js và trình duyệt dựa trên Chrome)
- Công cụ Spidermonkey của Mozilla (Firefox và Thunderbird)
eWASM cũng sẽ được hỗ trợ bởi các triển khai không phải trình duyệt sau:
- ml-proto (Trình thông dịch tham chiếu OCaml)
- wasm-jit-prototype (Stand- máy ảo một mình sử dụng phụ trợ LLVM)
- wabt (trình thông dịch dựa trên ngăn xếp)
EWASM còn có những Ưu điểm đột phá sau đây, những ưu điểm này không thể thực hiện được với EVM trước đó:
- Đối với các máy khách sử dụng Ethereum nhẹ, việc nhận được hỗ trợ của trình duyệt sẽ dễ dàng hơn vì eWASM được thiết kế theo tiêu chuẩn W3C
- eWASM có nhiều trình biên dịch hơn và nhiều công cụ dành cho nhà phát triển hơn
- Vì một số lượng lớn các dự án đã sử dụng eWASM, nó đã tập hợp một cộng đồng nhà phát triển lành mạnh và đa dạng
Kết luận: eWASM có thể giúp Eth 2.0 đưa nó lên một tầm cao mới không?
Cộng đồng Ethereum rất hào hứng với eWASM. Tuy nhiên, các cuộc thảo luận liên quan luôn đi kèm với những tuyên bố ngông cuồng và chúng ta vẫn cần nghe những tiếng nói khác nhau. Greg Colvin, một nhà phát triển Ethereum cấp cao, nghi ngờ về hợp đồng thông minh eWASM. Quan điểm chính của ông là:
- không thể loại bỏ eWASM Biên dịch trước
- eWASM dựa chủ yếu vào trình biên dịch, điều này có thể gây ra một điểm lỗi
Trên thực tế, đại đa số các nhà phát triển Ethereum tin rằng eWASM sẽ có tác động rất lớn đến hiệu suất và thông lượng tổng thể của giao thức.
Kết quả sẽ là gì? Hãy chờ xem!
Liên kết gốc: https: //academy.ivanontech.com/
Chào mừng bạn tham gia cộng đồng chính thức của BlockBeats:
Nhóm Telegram đăng ký: https://t.me/theblockbeats
Nhóm Telegram thảo luận: https://t.me/BlockBeats_App
Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia