
Tại sao Arbitrum Stylus được coi là đột phá công nghệ quan trọng nhất trên L2 trong năm nay?
Tuyển chọn TechFlowTuyển chọn TechFlow

Tại sao Arbitrum Stylus được coi là đột phá công nghệ quan trọng nhất trên L2 trong năm nay?
Việc tích hợp Stylus vào SDK lớp 2 của Arbitrum có thể mang lại sự linh hoạt lớn hơn cho các nhà phát triển lớp thứ ba.
Tác giả: Yiping, IOSG Ventures
Cùng với sự ra mắt mainnet của các ZKRU như zkSync và StarkNet, cảnh quan Layer2 đang thay đổi nhanh chóng. Truyền thống, các OPRU như Arbitrum là người tiên phong trên thị trường, do đó có hệ sinh thái mạnh mẽ hơn. Ngược lại, các ZKRU đạt được bước tiến công nghệ, cung cấp thông lượng cao hơn và phí thấp hơn.
Trong vài tháng gần đây, nhiều hoạt động đã chuyển từ Layer1 sang Layer2 để tìm kiếm giao dịch nhanh hơn và rẻ hơn. TVL của Ethereum trong năm qua đã giảm từ gần 40 tỷ USD xuống còn 20 tỷ USD. Tuy nhiên, TVL của Layer2 cho thấy một bức tranh khác biệt, tăng trưởng mạnh mẽ cho thấy việc áp dụng Layer2 đang gia tốc.


Arbitrum dẫn đầu với hơn 50% thị phần TVL của Layer2, mặc dù các ZKRU cũng đã nỗ lực. Lợi thế tiên phong của Arbitrum giúp nó duy trì vị thế thống trị.

Phân tích số lượng giao dịch hàng ngày cho thấy các ZKRU như zkSync và StarkNet vượt trội nhẹ so với OPRU về thông lượng. Tuy nhiên, lợi thế hệ sinh thái của Arbitrum vẫn tồn tại, dù chỉ hơi kém hơn về TPS hàng ngày.

OPRU xuất hiện sớm hơn ZKRU. Tuy nhiên, ZKRU đang triển khai mainnet và thu hút người dùng từ các hệ sinh thái khác. Là nhà lãnh đạo trong lĩnh vực OPRU, Arbitrum dự kiến sẽ chống lại sự trỗi dậy của ZKRU thông qua các bản cập nhật mới.
Arbitrum: Stylus
Khi các nhà phát triển tối ưu hóa công nghệ zero-knowledge và chi phí, nhờ lợi thế mở rộng, ZKRU có thể tiếp tục giành thêm thị phần. Tuy nhiên, hiệu ứng mạng lưới của Arbitrum mang lại khả năng vững chắc ngay cả dưới áp lực cạnh tranh. Thông qua các giải pháp sáng tạo như Stylus, Arbitrum có thể bổ sung vị trí dẫn đầu bằng những năng lực kỹ thuật độc đáo và tiếp tục dẫn đầu trong cuộc đua Layer2.
Tóm lại, Stylus là một môi trường hợp đồng thông minh cách mạng mới dành cho Arbitrum, cho phép các nhà phát triển viết chương trình hiệu quả, tương tác tốt bằng các ngôn ngữ lập trình như Rust, C++ và Solidity.
Nó mở cửa tính toán phổ quát cho blockchain và chào đón các nhà phát triển sử dụng nhiều bộ công cụ công nghệ khác nhau.
WASM
Stylus hoạt động bằng cách thêm một máy ảo WebAssembly (WASM) chạy song song với Máy ảo Ethereum (EVM) hiện có. Các hợp đồng thông minh được viết bằng ngôn ngữ có thể biên dịch thành WASM có thể thực thi natively nhanh hơn 10 lần hoặc nhiều hơn so với Solidity, giảm đáng kể chi phí gas. EVM vẫn hoàn toàn chức năng, vì vậy các hợp đồng Solidity hiện tại vẫn hoạt động bình thường như ngày nay. Hai máy ảo (VM) hoạt động đồng bộ, cho phép các hợp đồng viết bằng các ngôn ngữ lập trình khác nhau gọi lẫn nhau và cùng sửa đổi trạng thái blockchain cơ bản giống nhau.
Tiền biên dịch tùy chỉnh
Hơn nữa, Stylus cũng hỗ trợ tiền biên dịch tùy chỉnh (Precompiles).
Tiền biên dịch là các mô-đun cấp thấp trên Ethereum và Arbitrum, dùng để thực thi hiệu quả các hàm mã hóa hoặc tiện ích cụ thể. Ví dụ, có các tiền biên dịch để xác minh chữ ký ECDSA và tính toán băm SHA256.
Việc thêm tiền biên dịch mới đòi hỏi tất cả các trình xác thực phải phối hợp nâng cấp EVM, do đó ngưỡng rất cao. Trong khi đó, với Stylus, các nhà phát triển có thể dễ dàng triển khai tiền biên dịch riêng bằng Rust hoặc C++.
Ví dụ, một nhóm có thể sử dụng thư viện mã hóa viết bằng C và triển khai nguyên bản lên Arbitrum mà không cần sửa đổi. Điều này cho phép các nguyên thủy mã hóa này thực thi với tốc độ natively siêu nhanh.
Các hợp đồng khác có thể gọi "tiền biên dịch" Stylus này giống như gọi tiền biên dịch gốc để tận dụng công nghệ mã hóa đó. Toàn bộ việc đo lường gas và chứng minh gian lận đều tự động hoạt động.
Điều này cho phép các nhóm thử nghiệm các mã hóa tùy chỉnh, các đường cong ghép cặp đặc biệt và các nguyên thủy mới mà không cần bất kỳ sự hỗ trợ chuỗi đặc biệt nào. Các nhà nghiên cứu Ethereum thậm chí có thể thử nghiệm trước các đề xuất EIP bằng cách triển khai chúng dưới dạng tiền biên dịch Stylus trên Arbitrum.
Bằng cách trao quyền cho các nhà phát triển giới thiệu các nguyên thủy mã hóa mới trực tiếp trên chuỗi, Stylus mở rộng đáng kể phạm vi nội dung có thể xây dựng. Tiền biên dịch không còn bị giới hạn ở các chức năng mà EVM hỗ trợ.
Cơ chế hoạt động của Stylus
Trước khi đi sâu vào vai trò rộng hơn của WASM trong vũ trụ blockchain, điều quan trọng là phải hiểu cách Arbitrum phối hợp sự tồn tại song song giữa EVM và WASM. Đây không chỉ đơn giản là sở hữu hai động cơ riêng biệt; đó là một mối quan hệ cộng sinh làm tăng cường điểm mạnh của cả hai.
Kiến trúc độc đáo của Arbitrum cho phép hoạt động liền mạch và đồng bộ giữa EVM và WASM, nhờ vào trạng thái thống nhất, các lời gọi xuyên VM và mô hình kinh tế tương thích.
Các hợp đồng thông minh được viết bằng Solidity hoặc các ngôn ngữ EVM khác được biên dịch thành bytecode EVM như thường lệ. Khi thực thi, các hợp đồng này chạy trên EVM như bình thường.
Đối với các ngôn ngữ biên dịch thành WASM như Rust, C++ và C, quy trình làm việc là:
-
Các nhà phát triển sử dụng các trình biên dịch WASM sẵn có như Clang hoặc Rustc để biên dịch hợp đồng thông minh thành WASM.
-
Bytecode WASM được tải lên chuỗi Arbitrum dưới dạng nén.
-
Chủ sở hữu hợp đồng gọi phương thức `compileProgram` của tiền biên dịch `ArbWasm`, thiết lập an toàn cho WASM, tính toán chi phí gas và biên dịch nó thành mã native được tối ưu hóa cho phần cứng trình xác thực.
-
Khi được gọi, hợp đồng chạy trên môi trường thực thi WASM như Wasmer, nhanh hơn nhiều so với EVM, tiết kiệm phí gas.
Việc tính toán gas cho WASM thu phí tại mỗi khối cơ bản thay vì theo từng opcode như EVM. Cách này hiệu quả hơn, đảm bảo hợp đồng không mất kiểm soát.
EVM vs WASM
Hai máy ảo (VM) này chạy đồng bộ, cho phép chúng gọi lẫn nhau trong khi chia sẻ cùng trạng thái toàn cục. Một giao dịch có thể thực thi một phần trên EVM và một phần trên WASM, kết quả được kết hợp liền mạch.
Khoan đã, làm sao hai VM có thể hoạt động liền mạch và đồng bộ?
Polkadot thực hiện điều này thông qua XVM. Khác với Polkadot, WASM và EVM có thể hoạt động liền mạch và đồng bộ trên Arbitrum vì những lý do then chốt sau:
-
Trạng thái đơn nhất: cả hai VM đều truy cập cùng cấu trúc dữ liệu và Trie trạng thái cơ bản. Hợp đồng trong một VM có thể đọc/ghi vào cùng vị trí như hợp đồng trong VM kia. Điều này cung cấp cái nhìn thống nhất về trạng thái chuỗi.
-
Lời gọi xuyên VM: khi một giao dịch tương tác với hợp đồng EVM, Geth xử lý và đưa ra kết quả. Nếu hợp đồng EVM sau đó gọi chương trình WASM, máy ảo WASM sẽ tiếp quản để tính toán phần đó.
-
Ngữ cảnh chia sẻ: các thông tin hệ thống như dữ liệu khối, địa chỉ người gửi... đều khả dụng cho cả hai VM. Một hợp đồng WASM có thể lấy số khối giống như hợp đồng Solidity.
-
Duy nhất một cơ chế đồng thuận: các trình xác thực chạy cả hai VM để xác minh giao dịch và đạt đồng thuận về trạng thái chuỗi đúng. Tranh chấp sẽ kích hoạt hệ thống chứng minh gian lận thống nhất.
-
Kinh tế học tương thích: các khái niệm như đo lường gas được mở rộng sang cả hai VM, đảm bảo chi phí tính toán và tài nguyên phù hợp trong mọi môi trường.
Đối với chứng minh gian lận, các trình xác thực sẽ phân chia (bisect) việc thực thi trên EVM và WASM để nhận diện các bước không hợp lệ nếu cần. Cấu trúc WASM cho phép hệ thống đảm bảo việc dừng và ép buộc tính hợp lệ của bằng chứng.
Blockchain | WASM
Arbitrum không phải là nền tảng duy nhất nhận ra tiềm năng biến đổi của WebAssembly (WASM). Polkadot và Cosmos cũng đã tích hợp WASM vào hệ sinh thái của họ, mỗi nền tảng mang lại một tập hợp lợi thế và tính năng độc đáo.
Polkadot cho phép người dùng phát triển hợp đồng thông minh bằng WASM và hỗ trợ hai ngôn ngữ: AssemblyScript (một DSL nhúng) và Ink! (tương tự Rust).
Ngược lại, Cosmos sử dụng CosmWasm làm môi trường chạy hợp đồng thông minh, cho phép nhà phát triển viết hợp đồng bằng Rust.
Trước khi đi sâu vào lý do ngành công nghiệp blockchain chấp nhận WASM mạnh mẽ đến vậy, cần hiểu rõ những lợi thế nổi bật của Cosmos và Polkadot:
Cosmos nhấn mạnh các lợi thế sau của WASM:
-
Tương thích với thư viện Rust
-
Cộng đồng nhà phát triển đa dạng
-
Bảo mật tăng cường, bao gồm ngăn chặn tấn công reentrancy
-
Dễ dàng kiểm thử
-
Hiệu suất cao
Môi trường chạy WASM của Polkadot có những đặc điểm sau:
-
Hiệu suất cao
-
Tương tác với EVM
-
Không phụ thuộc nền tảng
-
Kích thước nhị phân nhỏ gọn
-
Hỗ trợ đồng thời Rust và AssemblyScript (kiểu TypeScript)
Mặc dù Polkadot, Cosmos và Arbitrum chia sẻ một số lợi thế chung từ WASM, mỗi nền tảng cũng có những thuộc tính riêng biệt.
Việc áp dụng rộng rãi WASM bởi các nền tảng blockchain chính này chứng minh tầm quan trọng ngày càng tăng của nó trong ngành, làm cho việc hiểu tại sao công nghệ này đang nhanh chóng trở thành nền tảng kiến trúc blockchain hiện đại là điều thiết yếu.
Tại sao chọn WASM
WASM là gì
Để hiểu mối quan hệ cộng sinh giữa blockchain và WebAssembly (WASM), trước tiên cần biết WASM là gì và động lực đằng sau sự phát triển của nó.
WebAssembly là một định dạng lệnh nhị phân cho phép mã thực thi bên trong trình duyệt web với tốc độ gần native. Nó là mục tiêu biên dịch cho nhiều ngôn ngữ lập trình, bao gồm C và Rust, nhằm mục đích nhanh chóng, hiệu quả và an toàn. WASM hiệu quả thu hẹp khoảng cách giữa lập trình dựa trên web và lập trình cấp hệ thống, từ đó cải thiện hiệu suất và chức năng web.
Từ "Web" trong WebAssembly nhấn mạnh khả năng chạy trong môi trường JavaScript (thường thấy trong trình duyệt). Trong các thiết lập này, nhà phát triển có toàn quyền truy cập API WASM và hỗ trợ đầy đủ các API web, trao cho họ quyền kiểm soát hành vi web khá lớn.
Lịch sử WASM
Tuân theo nguyên tắc "viết một lần, chạy mọi nơi", WASM xuất hiện như một giải pháp mạnh mẽ cho một loạt thách thức kéo dài. Đến năm 2016, nhiều chương trình đã giới thiệu chức năng mới thông qua ngôn ngữ chuyên biệt (DSL), thường liên quan đến đánh đổi giữa bảo trì, hiệu quả và bảo mật. Nhu cầu ngày càng tăng về một giải pháp có thể cung cấp chức năng mới cho vô số máy chủ mà không ảnh hưởng đến các khía cạnh này.
Đánh giá sự thiếu sót của các giải pháp hiện có:
- Máy ảo hệ thống
-
Chi phí quá mức do khởi động và tắt thường xuyên
-
Thiếu khả năng nhìn thấy mã để đảm bảo an toàn
-
Quá trừu tượng đối với nhu cầu hiệu suất
- Container
-
Thiếu khả năng nhìn thấy mã để đảm bảo an toàn
-
Hiệu quả thấp do trừu tượng cấp cao
-
Chi phí đáng kể do thao tác thường xuyên
- Máy ảo cấp ngôn ngữ
-
Cần sửa đổi thường xuyên để đảm bảo an toàn
-
VM nhúng như V8 tốn tài nguyên
-
Thích nghi ngôn ngữ mới vào mô hình an toàn chậm
-
Vẫn quá trừu tượng
- Kiến trúc tập lệnh (ISA)
-
Khó sandbox hiệu quả
-
Các dự án Google trước đây đã chuyển sang WASM
-
Thiếu triển khai trưởng thành
Đến năm 2018, phát triển WASM nhận được đà, tập trung vào việc chạy trên nhiều kiến trúc, máy chủ, phần cứng nhúng và hỗ trợ nhiều ngôn ngữ. Khác với Java, WASM được thiết kế không đánh đổi an toàn. Đến năm 2019, một mô hình thành phần được giới thiệu để nâng cấp module WASM, đạt được khả năng tương tác giữa các ngôn ngữ. Điều này cho phép các giải pháp như viết một thư viện HTTP và dùng nó trong nhiều ngôn ngữ.
Đến nay, WASM sở hữu nhiều tính năng và ngày càng được áp dụng trong các kịch bản cloud-native (bao gồm blockchain). Những lợi thế bao gồm:
-
Hiệu suất cao
-
Kích thước nhị phân nhỏ gọn
-
Tính di động đa nền tảng
-
Hỗ trợ nhiều ngôn ngữ như C/C++, Rust, AssemblyScript...
-
Thực thi trong động cơ JavaScript
-
Sandbox mạnh mẽ với giới hạn bộ nhớ và CPU
-
Thời gian khởi động cực nhanh, thường trong vài miligiây hoặc ngắn hơn
Cộng đồng WASM tiếp tục nỗ lực để tích hợp sâu hơn và nâng cao hiệu suất giữa các ngôn ngữ.
Hiểu lịch sử phát triển của WASM cung cấp bối cảnh quý giá để hiểu vai trò hiện tại và tiềm năng của nó trong nhiều thiết lập, bao gồm các dự án blockchain như Stylus. Bối cảnh này trang bị cho chúng ta sự hiểu biết tinh tế khi khám phá các vấn đề và lo ngại liên quan đến việc triển khai WASM trong hệ sinh thái blockchain.
Stylus Q&A
Hỗ trợ ngôn ngữ
Hành trình phát triển của WASM tiết lộ lý do tại sao Stylus là bổ sung hấp dẫn cho hệ sinh thái Arbitrum, nhưng cũng làm nổi bật một số giới hạn và lo ngại. Một trong những lo ngại đó là hỗ trợ ngôn ngữ. Mặc dù Stylus thực sự mở rộng cộng đồng nhà phát triển Arbitrum để bao gồm các ngôn ngữ như C++ và Rust, nó vẫn chưa tiếp cận được các ngôn ngữ phổ biến như JavaScript và Python.

Mặc dù có những dự án ban đầu nhằm mang Python và JavaScript đến WASM, nhưng do thách thức về dọn rác và hiệu suất, các nỗ lực này vẫn chưa sẵn sàng cho áp dụng rộng rãi.
Tương thích ngôn ngữ
Hiện tại, Stylus hỗ trợ SDK C/C++ và Rust, tích hợp liền mạch với công cụ của các ngôn ngữ này. Nhà phát triển thậm chí có thể tích hợp các thư viện bên thứ ba khi xây dựng hợp đồng thông minh, ví dụ như triển khai mã hóa native. Giới hạn chính là chi phí gas liên quan.
Mặc dù SDK Rust vẫn ở giai đoạn sơ khai, cả SDK Rust và C đều thiếu một số chức năng. Ví dụ, SDK C không hỗ trợ hàm xuất ABI, trong khi các modifier chưa được hỗ trợ trên cả hai SDK.
Hiện tại, không có môi trường kiểm thử Stylus bản địa, nhưng nhà phát triển có thể chạy kiểm thử trực tiếp trong SDK. Để triển khai hợp đồng thông minh, hiện chỉ có testnet là lựa chọn duy nhất và nó chưa hỗ trợ xác minh hợp đồng thông minh. Đang có nỗ lực để đưa các token ERC và **[Uniswap V2]** vào hệ sinh thái Stylus.
Dilemma lựa chọn ngôn ngữ
Việc lựa chọn giữa ngôn ngữ chuyên biệt (DSL), DSL nhúng (eDSL) và ngôn ngữ phổ quát đòi hỏi đánh đổi giữa kiểm soát cấp thấp và trừu tượng cấp cao. Việc phát triển một DSL hoàn toàn mới đòi hỏi đầu tư lớn vào công cụ và hệ sinh thái. Ngược lại, eDSL như một tập con của ngôn ngữ phổ quát cho phép tích hợp dễ dàng hơn với công cụ hiện có và có đường cong học tập thấp hơn. Ví dụ, việc tạo eDSL trong các ngôn ngữ phổ biến như JavaScript hoặc Python sẽ có lợi.
Ngôn ngữ phổ quát yêu cầu sử dụng SDK, điều này giới thiệu công cụ bổ sung, làm tăng tính dài dòng, giảm tính biểu đạt của mã, kèm theo các lời gọi API dài hơn và thao tác đối tượng.
Việc tìm ra cân bằng đúng giữa lựa chọn ngôn ngữ và phát triển eDSL có thể là chìa khóa để thu hút cộng đồng nhà phát triển rộng lớn hơn, đồng thời cung cấp công cụ thân thiện với người dùng. Theo dữ liệu hiện tại, cộng đồng nhà phát triển tiền mã hóa hàng đầu vẫn tập trung quanh Ethereum. Tuy nhiên, các nền tảng sử dụng Rust cho hợp đồng thông minh như Polkadot, Cosmos và Solana cũng đang thu hút sự chú ý và phát triển nhanh chóng trong cộng đồng nhà phát triển của họ.


Hiệu suất
WASM cải thiện đáng kể tốc độ thực thi và giảm kích thước gói. Mặc dù Stylus chưa triển khai trên mainnet, các bài kiểm tra chuẩn từ các mạng khác có thể làm tham chiếu hữu ích. Thời gian thực thi quan sát được nhanh hơn 4-8 lần, kích thước sau biên dịch giảm khoảng 50%.


Stylus hiện đặt giới hạn kích thước cho hợp đồng, giới hạn khoảng 128KB khi chưa nén. Giới hạn này khiến việc di chuyển các hợp đồng thông minh lớn từ các ngôn ngữ khác (như Solidity) trở nên thách thức. Trong kho mã Stylus, giới hạn được mô tả như sau:

Lưu ý rằng WASM có một chút chi phí khi khởi động và tắt. Đối với thao tác nhẹ, EVM thực tế có thể hiệu quả hơn WASM.
Tương tác với EVM
EVM và WASM chia sẻ cùng các khe lưu trữ và cây trạng thái, điều này hỗ trợ khả năng tương tác giữa Stylus và EVM. Điều này được thực hiện bằng cách triển khai API EVM trong WASM, sử dụng mô hình Host I/O phổ biến. Danh sách đầy đủ các API EVM được hỗ trợ cho thấy khả năng tương tác được hỗ trợ toàn diện.

Hợp đồng tiền biên dịch tùy chỉnh
Khía cạnh này đặc biệt thú vị vì nó đại diện cho vùng đất chưa được khám phá. Hợp đồng tiền biên dịch tùy chỉnh có tiềm năng đưa thêm các nguyên thủy mã hóa lên chuỗi với chi phí thực thi thấp hơn. Chúng cũng có thể giảm chi phí suy luận bằng cách giới thiệu tính toán tensor như một hợp đồng tiền biên dịch. Tuy nhiên, hiện tại dường như chưa có mã hiện có liên quan đến hợp đồng tiền biên dịch tùy chỉnh. Mặc dù có các hợp đồng tiền biên dịch trong thành phần EVM, chúng không phải dạng cắm nóng.
Tính năng này có thể vẫn đang trong quá trình phát triển, tận dụng khả năng của WASM. EVM có thể gọi các hàm được viết bằng WASM, sau đó biên dịch thành mã máy.
Chức năng Reentrancy
Ngược lại với CosmWasm (sử dụng mô hình Actor không có chức năng reentrancy), SDK Rust của Stylus mặc định tắt chức năng reentrancy như một cờ tính năng. Nhà phát triển có lựa chọn bật thủ công tính năng này.
Việc kích hoạt chức năng reentrancy sẽ yêu cầu một số điều chỉnh API. Đặc biệt, nhà phát triển cần thận trọng với các biện pháp phòng ngừa an toàn như làm mới bộ nhớ cache lưu trữ trong quá trình gọi.

Thông điệp
Stylus mở ra một số trường hợp sử dụng mới
Chào mừng tham gia cộng đồng chính thức TechFlow
Nhóm Telegram:https://t.me/TechFlowDaily
Tài khoản Twitter chính thức:https://x.com/TechFlowPost
Tài khoản Twitter tiếng Anh:https://x.com/BlockFlow_News










