WebAssugging (Wasm) là định dạng lệnh nhị phân di động, hiệu suất cao, có thể chạy trong trình duyệt web. Nó được thiết kế như một mục tiêu biên dịch phổ quát có thể được sử dụng với nhiều ngôn ngữ lập trình và chạy trên các nền tảng khác nhau.
Blockchain là một công nghệ sổ cái phân tán phi tập trung nhằm đảm bảo tính bảo mật và độ tin cậy của dữ liệu thông qua việc sử dụng thuật toán mã hóa và đồng thuận. Blockchain có thể được sử dụng để ghi lại các giao dịch, lưu trữ dữ liệu và thực hiện hợp đồng thông minh, cùng với các ứng dụng khác.
Có một số mối quan hệ và kịch bản ứng dụng giữa Wasm và blockchain:
Tóm lại, sự kết hợp giữa Wasm và blockchain cung cấp các ứng dụng và dịch vụ blockchain hiệu quả, an toàn và linh hoạt hơn. Tính di động và hiệu suất cao của Wasm khiến nó trở thành một công nghệ quan trọng trong lĩnh vực blockchain.
WebAssembly là một tiêu chuẩn tập lệnh nhẹ và hiệu quả được phát triển bởi World Wide Web Consortium (W3C). Nó được ca ngợi như một công cụ đột phá cho web và điện toán hiệu năng cao, hỗ trợ thực thi trên nhiều trình duyệt. Điều này có nghĩa là chúng tôi có thể biên dịch các ngôn ngữ lập trình khác nhau, bao gồm C/C++, Go, Rust, v.v., thành định dạng nhị phân tiêu chuẩn thống nhất và sử dụng nó để thay thế cho JavaScript, chạy với hiệu quả mã gần như gốc trong trình duyệt web.
WebAssugging, còn được gọi là WASM, là công nghệ an toàn với bộ nhớ và độc lập với nền tảng, có thể ánh xạ hiệu quả tới các kiến trúc CPU khác nhau. Nó cung cấp một số lợi thế chính:
Ngoài ra, Web là nền tảng phổ quát thực sự duy nhất cho phép truy cập vào các ứng dụng của bạn trên mọi thiết bị. Điều này cũng cho phép bạn duy trì một cơ sở mã duy nhất, đơn giản hóa các bản cập nhật và đảm bảo rằng tất cả người dùng đều có thể truy cập vào ứng dụng của bạn. WASM hỗ trợ các phép toán số nguyên 64 bit và 32 bit, tương ứng trực tiếp với các lệnh của CPU. Bằng cách loại bỏ các phép toán dấu phẩy động, có thể dễ dàng đạt được hành vi xác định, điều này cần thiết cho các thuật toán đồng thuận. Được hỗ trợ bởi dự án cơ sở hạ tầng trình biên dịch LLVM, WASM có thể hưởng lợi từ hơn một thập kỷ tối ưu hóa trình biên dịch trong LLVM. WASM liên tục được phát triển bởi các công ty lớn như Google, Apple, Microsoft, Mozilla và Facebook và được hỗ trợ bởi phần phụ trợ của các trình duyệt do các công ty này phát triển.
Cái hay của WASM nằm ở khả năng chạy ở mọi nơi mà không cần tải xuống hay cài đặt vì nó ở định dạng nhị phân. Chỉ với một cú nhấp chuột, các ứng dụng web có thể được thực thi ngay lập tức khi cần. Nó thậm chí còn an toàn hơn so với việc trực tiếp tải xuống và chạy các tệp nhị phân, vì trình duyệt có cơ chế bảo mật tích hợp ngăn mã được thực thi gây hại cho hệ thống của bạn. Ngoài ra, việc chia sẻ ứng dụng web rất đơn giản - các liên kết có thể được đặt ở bất kỳ đâu dưới dạng chuỗi có thể nhấp vào.
Web đã phát triển từ một nền tảng dành cho nội dung tĩnh và các ngôn ngữ script nhỏ thành một nền tảng mạnh mẽ và phổ biến với đầy đủ các ứng dụng và tính năng tuyệt vời nhờ chức năng tích hợp của trình duyệt và khả năng tương tác do Web cung cấp. Tuy nhiên, các ứng dụng Web vẫn chủ yếu được điều khiển bởi cùng một ngôn ngữ kịch bản lệnh (JavaScript), ngôn ngữ này ban đầu không được thiết kế để thực hiện các tác vụ này.
JavaScript ban đầu là một ngôn ngữ kịch bản đơn giản nhằm mang lại tính tương tác cho các tài liệu siêu văn bản nhẹ trong các ứng dụng Web. Thiết kế của nó rất dễ học và viết, đồng thời nó không ưu tiên tốc độ thời gian chạy. Trong những năm qua, những cải tiến đáng kể về hiệu suất trong việc phân tích cú pháp JavaScript của trình duyệt đã dẫn đến hiệu suất tăng đáng kể.
Với tốc độ thực thi JavaScript được tăng tốc, phạm vi những việc có thể thực hiện trong trình duyệt đã mở rộng đáng kể. Các API mới đã giới thiệu các tính năng như đồ họa tương tác, truyền phát video, duyệt ngoại tuyến, v.v. Hơn nữa, ngày càng có nhiều ứng dụng vốn trước đây bị giới hạn trong môi trường máy tính để bàn đã xâm nhập vào Web. Giờ đây bạn có thể dễ dàng chỉnh sửa tài liệu và gửi email trong trình duyệt của mình. Tuy nhiên, trong một số miền nhất định, hiệu suất của JavaScript vẫn là một thách thức. Hãy nghĩ về các ứng dụng phần mềm bạn sử dụng ngoài trình duyệt: trò chơi, chỉnh sửa video, kết xuất 3D hoặc sản xuất âm nhạc. Những ứng dụng này yêu cầu tính toán rộng rãi và hiệu suất cao. JavaScript đấu tranh để đáp ứng các yêu cầu hiệu suất cao này.
Tuy nhiên, việc thay thế JavaScript là không thực tế và thậm chí có thể phải mất hàng thập kỷ để đạt được mục tiêu đó vì toàn bộ Internet đều phụ thuộc vào nó. Hơn nữa, có một cộng đồng lớn không ngừng cải tiến JavaScript. Thật vậy, so với các ngôn ngữ khác, JavaScript có một số thiếu sót ở các khía cạnh như null và ==. Tuy nhiên, những vấn đề này không đủ nghiêm trọng để đảm bảo phải thay thế toàn bộ công nghệ.
Vì vậy, WebAssugging sẽ không thay thế JavaScript nhưng điều đó không có nghĩa là WASM sẽ không được sử dụng trong tương lai. Trên thực tế, việc sử dụng WASM sẽ ngày càng phổ biến hơn. Điều này là do WASM có thể mang lại khả năng tính toán mạnh mẽ cho web, chẳng hạn như xử lý hình ảnh hoặc trò chơi. Với WASM, bạn có thể tạo phiên bản Photoshop dựa trên web chạy tốt hoặc trò chơi 3D chạy ở tốc độ 60 khung hình mỗi giây hoặc thậm chí tốc độ khung hình cao hơn trong trình duyệt. Đặc biệt, các trò chơi đặt ra một thách thức vì chúng yêu cầu thực hiện đồng thời quá trình xử lý âm thanh và video cũng như phối hợp các hiệu ứng vật lý và AI. WASM có khả năng chạy trò chơi trên trình duyệt một cách hiệu quả, mở ra cánh cửa đưa nhiều ứng dụng khác lên trình duyệt.
Hình trên cho thấy sự so sánh về quy trình làm việc giữa JavaScript và WebAssembly (wasm). Có thể thấy rằng wasm ngắn gọn hơn nhiều so với JavaScript.
Máy ảo WASM
Năm 2018, hệ sinh thái Ethereum bắt đầu thảo luận về việc sử dụng máy ảo WASM làm máy ảo hợp đồng thông minh, vì nó được coi là có hiệu suất tốt hơn EVM. Gavin Wood, nhà phát minh EVM, đã bày tỏ tính khả thi của việc thay thế nó bằng WASM, và Vitalik cũng tuyên bố rằng Ethereum 2.0 sẽ được nâng cấp để hỗ trợ các hợp đồng WASM (eWASM) nhằm đáp ứng nhiều nhu cầu phát triển hơn. Ngày nay, sự phát triển của hợp đồng WASM đã hình thành.
Vấn đề về kích thước kiến trúc
Máy tính truyền thống có tập lệnh chấp nhận đầu vào 32 hoặc 64 bit. Tuy nhiên, EVM khác biệt và độc đáo vì đây là máy tính 256 bit được thiết kế để xử lý thuật toán băm của Ethereum dễ dàng hơn, tạo ra kết quả đầu ra 256 bit rõ ràng.
Tuy nhiên, máy tính thực tế chạy chương trình EVM cần chia các từ 256 bit thành kiến trúc gốc của chúng để thực hiện hợp đồng thông minh, khiến toàn bộ hệ thống hoạt động kém hiệu quả và không thực tế.
Ngoài ra, nếu bạn muốn triển khai một thuật toán phức tạp như SHA256 bằng cách sử dụng OPCODES cơ bản của EVM trên Ethereum, thì bạn đang gặp khó khăn! Để giải quyết vấn đề chi phí gas cao khi chạy các chương trình phức tạp thông qua tập lệnh, Ethereum đã đưa ra khái niệm tiền biên dịch, biên dịch chương trình thành EVM và tiêu thụ một lượng gas cố định. Một trình biên dịch trước đáng chú ý là thuật toán băm Ethereum, vì việc triển khai nó trong máy ảo sẽ dẫn đến mức phí cực kỳ đắt đỏ khi hợp đồng được gọi.
Biên dịch trước cồng kềnh
Vấn đề với quá trình biên dịch trước là nó liên tục làm tăng sự cồng kềnh và phức tạp của máy ảo mà không giải quyết được vấn đề cốt lõi: thiết kế kém hiệu quả và kém của tập lệnh và thông số kỹ thuật hiện tại.
Điều gì sẽ xảy ra nếu chúng ta có thể xác định một đặc tả và tập lệnh mới không yêu cầu biên dịch trước các chương trình phức tạp này mà thay vào đó đạt được kết quả mong muốn một cách hiệu quả thông qua các hướng dẫn cơ bản? Đây là lúc WASM phát huy tác dụng.
Nhóm EWASM hiện đang tích hợp WebAssugging trên Ethereum để đảm bảo lớp thực thi đơn giản và hiệu quả hơn, giúp Ethereum phù hợp như một nền tảng điện toán phi tập trung hoàn toàn. WASM đã được nhiều dự án khác áp dụng làm tiêu chuẩn, bao gồm Dfinity và EOS, cả hai đều sử dụng nó để nâng cao các lớp thực thi của mình.
Dự án Stylus là một sáng kiến trên mạng Arbitrum Ethereum Lớp 2 nhằm cải thiện hiệu suất thực thi hợp đồng thông minh bằng cách giới thiệu máy ảo WebAssembly (WASM). Hợp đồng có thể được thực hiện nhanh hơn so với Solidity, đồng thời giảm chi phí gas. Điều này giúp việc xây dựng các hợp đồng thông minh hiệu suất cao trên mạng Arbitrum trở nên dễ dàng hơn và hiện hỗ trợ biên dịch bằng C, C++ và Rust.
Hỗ trợ biên dịch trước tùy chỉnh: Stylus cũng hỗ trợ các trình biên dịch trước tùy chỉnh, cho phép các nhà phát triển triển khai các trình biên dịch trước Rust hoặc C++ của riêng họ vào mạng Arbitrum. Điều này có thể giúp giới thiệu các thuật toán mã hóa mới hoặc các chức năng cụ thể khác trên chuỗi mà không cần chờ nâng cấp trên chuỗi. Ví dụ: tính toán tensor có thể được biên dịch trước để giảm chi phí suy luận, điều này có thể mang lại lợi ích cho việc học máy trên chuỗi.
Khả năng tương tác với EVM: Stylus đạt được sự tích hợp với hệ sinh thái Ethereum hiện có thông qua khả năng tương tác với Máy ảo Ethereum (EVM). Điều này có nghĩa là hợp đồng Stylus có thể tương tác với các hợp đồng EVM hiện có và chia sẻ cùng trạng thái toàn cầu với EVM.
Reentrancy: Không giống như Cosmos Wasm, Stylus Rust SDK giới thiệu tính năng reentrancy và cho phép các nhà phát triển kích hoạt tính năng này theo cách thủ công. Điều này cho phép các hợp đồng có khả năng tương tác linh hoạt hơn, nhưng các nhà phát triển cần quản lý trạng thái cẩn thận để đảm bảo an ninh.
Dựa trên hệ sinh thái thịnh vượng của Arbitrum, việc tích hợp Stylus có lẽ là sự tích hợp WASM có ý nghĩa nhất. Nó cũng nâng cao khả năng cạnh tranh của Arbitrum giữa các lĩnh vực zkRollup.
Giao thức Gear đang tạo ra một công nghệ có thể được triển khai dưới dạng Polkadot parachain, đóng vai trò như một công cụ để lưu trữ các hợp đồng thông minh. Tương tự như Polkadot, Gear cũng sử dụng khung Substrate, giúp đơn giản hóa quá trình tạo các chuỗi khối khác nhau cho các ứng dụng cụ thể. Chất nền cung cấp chức năng sẵn dùng, cho phép mọi người tập trung vào việc tạo các công cụ tùy chỉnh dựa trên giao thức.
Trước đây, chi phí tung ra blockchain rất cao, nhưng Gear cho phép các nhà phát triển dApp tập trung vào các dự án của họ thay vì xây dựng và vận hành toàn bộ blockchain từ đầu.
Động cơ chính của giao thức Gear là mô-đun hợp đồng thông minh. Trong trường hợp của Gear, mọi hợp đồng thông minh đều là chương trình WebAssembly được biên dịch bằng các ngôn ngữ khác nhau như Rust, C và C++. Đối với các nhà phát triển bên ngoài thế giới tiền điện tử, rào cản gia nhập thấp vì họ có thể xây dựng hợp đồng thông minh trong một môi trường quen thuộc. Các nhà phát triển thấy việc thử nghiệm các ngôn ngữ lập trình hợp đồng thông minh dễ dàng hơn.
Kiến trúc hợp đồng thông minh của Gear sử dụng Mô hình diễn viên dưới mui xe và cung cấp các chức năng sau:
Mỗi chương trình có một lượng bộ nhớ cố định mà Gear cho phép kiểm soát. Một chương trình chỉ có thể đọc và ghi trong bộ nhớ của chính nó và không thể truy cập vào không gian bộ nhớ của các chương trình khác. Mỗi chương trình có không gian bộ nhớ độc lập riêng và thông tin trên các nút Gear có thể được xử lý song song.
CosmWasm là nền tảng hợp đồng thông minh dựa trên Wasm hiện đại và mạnh mẽ, có thể dễ dàng tích hợp với Cosmos-SDK. Điều này cho thấy một trong những ưu điểm chính của CosmWasm: các hợp đồng được viết bằng CosmWasm được tích hợp chặt chẽ với IBC (Giao tiếp liên chuỗi khối) nguyên bản, cho phép các nhà phát triển và người dùng bước vào một tương lai đa chuỗi. Hiện tại, chỉ có Rust được hỗ trợ.
Ưu điểm của CosmWasm
Những thách thức và hạn chế
Ngoài máy ảo wasm, còn có một công nghệ mới nổi gần đây có tên ZKWASM. Nhà phát minh, Delphinus Labs, đã mã nguồn mở cho ZK-WASM trên GitHub. ZKWASM cho phép các nhà phát triển xác minh tính chính xác của các phép tính đã thực hiện mà không cần thực hiện lại chúng. Bằng cách tận dụng ZKWASM, các nhà phát triển có thể xây dựng linh hoạt các ứng dụng không có kiến thức (ZKP) bằng nhiều ngôn ngữ lập trình khác nhau. Các ứng dụng này có thể thực thi liền mạch trong trình duyệt web.
ZKWASM có nguồn gốc từ ZKSNARK, là sự kết hợp giữa SNARG và bằng chứng không có kiến thức. Hãy giải thích thêm. Thông thường, để sử dụng ZKSNARK, bạn cần viết chương trình bằng ngôn ngữ mạch số học hoặc ngôn ngữ thân thiện với mạch như Pinocchio, TinyRAM, Buffet/Pequin, Geppetto, xJsnark framework, ZoKrates, v.v. Điều này đặt ra rào cản đối với các chương trình hiện có, khiến chúng khó tận dụng được sức mạnh của ZKSNARK. Tuy nhiên, có một cách khác, đó không phải là sử dụng ZKSNARK ở cấp mã nguồn mà ở cấp mã byte của máy ảo, sau đó triển khai một máy ảo hỗ trợ ZKSNARK. Delphinus Labs đã áp dụng phương pháp thứ hai bằng cách kết hợp toàn bộ máy ảo WASM vào mạch ZKSNARK. Do đó, các ứng dụng WASM hiện tại có thể chạy trực tiếp trên ZKWASM mà không cần bất kỳ sửa đổi nào. Do đó, các nhà cung cấp dịch vụ đám mây có thể chứng minh cho bất kỳ người dùng nào rằng kết quả tính toán được tính toán trung thực và sẽ không tiết lộ bất kỳ thông tin cá nhân nào.
ZKWASM cung cấp nhiều trường hợp sử dụng khác nhau, chẳng hạn như cho phép xác minh trực tuyến các hoạt động được thực hiện trong trình duyệt. Nó cho phép các tương tác dựa trên web có thể kiểm chứng được trên blockchain. Các trường hợp sử dụng khác bao gồm dịch vụ oracle, tính toán ngoài chuỗi, tự động hóa, thu hẹp khoảng cách giữa Web2 và Web3, tạo bằng chứng cho máy học và xử lý dữ liệu, thậm chí cả ứng dụng chơi game và xã hội. Với việc áp dụng ngày càng tăng, zkWASM mở rộng khả năng của Web3 và tích hợp các nhà phát triển Web2 vào bối cảnh đầy biến đổi này.
Thông qua việc triển khai ZKWASM của Delphinus Lab, các nhà phát triển có thể khai thác sức mạnh của bằng chứng không kiến thức để tăng cường tính bảo mật và quyền riêng tư cho ứng dụng của họ, mở đường cho một hệ sinh thái kỹ thuật số phi tập trung và đáng tin cậy hơn.
Hiệu suất của Web và tương lai của lớp thực thi nền tảng hợp đồng thông minh rất hứa hẹn. Các dApp không chỉ có hiệu suất cao hơn mà việc tích hợp WASM cũng sẽ giúp những người quen thuộc với các ngôn ngữ chính thống như Rust và Go phát triển hợp đồng thông minh dễ dàng hơn mà không cần phải tìm hiểu sự phức tạp của Solidity hoặc các ngôn ngữ phát triển blockchain khác. Theo Evans Data Corporation, có gần 27 triệu nhà phát triển trên toàn thế giới và con số này đang tăng trưởng đều đặn, dự kiến sẽ tăng lên hơn 28,7 triệu vào năm 2024. Tuy nhiên, số lượng nhà phát triển trong lĩnh vực blockchain vẫn chưa đến 30.000, chỉ chiếm khoảng một phần nghìn tổng số nhà phát triển. Mặc dù con số này đang tăng đều đặn nhưng việc học các ngôn ngữ hợp đồng thông minh mới vẫn có thể là rào cản đối với các nhà phát triển khi gia nhập ngành công nghiệp blockchain.
Nhưng ngày càng có nhiều blockchain bắt đầu hỗ trợ Web Assembly dưới dạng mã byte cho các hợp đồng thông minh được biên dịch. WASM mang lại hiệu quả, khả năng tương tác và nhiều trường hợp sử dụng cho chuỗi khối. Nó cũng đóng vai trò là chìa khóa để mở ra cánh cửa cho các nhà phát triển, hạ thấp rào cản tham gia phát triển blockchain. Hãy tưởng tượng, trong tương lai gần, khi các nhà phát triển Web 2.0 muốn thử sức mình trong việc phát triển blockchain, họ có thể sử dụng các ngôn ngữ quen thuộc như Python, C++ và JavaScript để xây dựng các ứng dụng quy mô lớn trên blockchain, tối đa hóa giá trị của các mạng phi tập trung. Đầu tiên, hạ thấp rào cản đối với người sáng tạo (nhà phát triển), sau đó hạ thấp rào cản đối với người dùng và tiến tới áp dụng đại trà.
https://blog.scottlogic.com/2022/06/20/state-of-wasm-2022.html
https://www.notion.so/18f67cee15c147dfae68b06269a455c0?pvs=21
https://wiki.polkadot.network/docs/learn-wasm
https://docs.arbitrum.io/stylus/stylus-gentle-introduction
https://medium.com/@gear_techs/introducing-gear-easy-to-use-polkadot-parachain-9ccd05437a9c
https://medium.com/cosmwasm/cosmwasm-for-ctos-f1ffa19cccb8
https://www.cncf.io/wp-content/uploads/2023/09/The-State-of-WebAssembly-2023.pdf
https://github.com/DelphinusLab/zkWasm
Cảm ơn Maggie và Xinyou Ji (CMU) vì lời khuyên và hướng dẫn của họ cho bài viết này.
Tuyên bố miễn trừ trách nhiệm: Tất cả các bài viết từ Foresight Ventures không nhằm mục đích tư vấn đầu tư. Đầu tư tiềm ẩn rủi ro, vì vậy vui lòng đánh giá mức độ chấp nhận rủi ro của chính bạn và đưa ra quyết định đầu tư một cách cẩn thận.
WebAssugging (Wasm) là định dạng lệnh nhị phân di động, hiệu suất cao, có thể chạy trong trình duyệt web. Nó được thiết kế như một mục tiêu biên dịch phổ quát có thể được sử dụng với nhiều ngôn ngữ lập trình và chạy trên các nền tảng khác nhau.
Blockchain là một công nghệ sổ cái phân tán phi tập trung nhằm đảm bảo tính bảo mật và độ tin cậy của dữ liệu thông qua việc sử dụng thuật toán mã hóa và đồng thuận. Blockchain có thể được sử dụng để ghi lại các giao dịch, lưu trữ dữ liệu và thực hiện hợp đồng thông minh, cùng với các ứng dụng khác.
Có một số mối quan hệ và kịch bản ứng dụng giữa Wasm và blockchain:
Tóm lại, sự kết hợp giữa Wasm và blockchain cung cấp các ứng dụng và dịch vụ blockchain hiệu quả, an toàn và linh hoạt hơn. Tính di động và hiệu suất cao của Wasm khiến nó trở thành một công nghệ quan trọng trong lĩnh vực blockchain.
WebAssembly là một tiêu chuẩn tập lệnh nhẹ và hiệu quả được phát triển bởi World Wide Web Consortium (W3C). Nó được ca ngợi như một công cụ đột phá cho web và điện toán hiệu năng cao, hỗ trợ thực thi trên nhiều trình duyệt. Điều này có nghĩa là chúng tôi có thể biên dịch các ngôn ngữ lập trình khác nhau, bao gồm C/C++, Go, Rust, v.v., thành định dạng nhị phân tiêu chuẩn thống nhất và sử dụng nó để thay thế cho JavaScript, chạy với hiệu quả mã gần như gốc trong trình duyệt web.
WebAssugging, còn được gọi là WASM, là công nghệ an toàn với bộ nhớ và độc lập với nền tảng, có thể ánh xạ hiệu quả tới các kiến trúc CPU khác nhau. Nó cung cấp một số lợi thế chính:
Ngoài ra, Web là nền tảng phổ quát thực sự duy nhất cho phép truy cập vào các ứng dụng của bạn trên mọi thiết bị. Điều này cũng cho phép bạn duy trì một cơ sở mã duy nhất, đơn giản hóa các bản cập nhật và đảm bảo rằng tất cả người dùng đều có thể truy cập vào ứng dụng của bạn. WASM hỗ trợ các phép toán số nguyên 64 bit và 32 bit, tương ứng trực tiếp với các lệnh của CPU. Bằng cách loại bỏ các phép toán dấu phẩy động, có thể dễ dàng đạt được hành vi xác định, điều này cần thiết cho các thuật toán đồng thuận. Được hỗ trợ bởi dự án cơ sở hạ tầng trình biên dịch LLVM, WASM có thể hưởng lợi từ hơn một thập kỷ tối ưu hóa trình biên dịch trong LLVM. WASM liên tục được phát triển bởi các công ty lớn như Google, Apple, Microsoft, Mozilla và Facebook và được hỗ trợ bởi phần phụ trợ của các trình duyệt do các công ty này phát triển.
Cái hay của WASM nằm ở khả năng chạy ở mọi nơi mà không cần tải xuống hay cài đặt vì nó ở định dạng nhị phân. Chỉ với một cú nhấp chuột, các ứng dụng web có thể được thực thi ngay lập tức khi cần. Nó thậm chí còn an toàn hơn so với việc trực tiếp tải xuống và chạy các tệp nhị phân, vì trình duyệt có cơ chế bảo mật tích hợp ngăn mã được thực thi gây hại cho hệ thống của bạn. Ngoài ra, việc chia sẻ ứng dụng web rất đơn giản - các liên kết có thể được đặt ở bất kỳ đâu dưới dạng chuỗi có thể nhấp vào.
Web đã phát triển từ một nền tảng dành cho nội dung tĩnh và các ngôn ngữ script nhỏ thành một nền tảng mạnh mẽ và phổ biến với đầy đủ các ứng dụng và tính năng tuyệt vời nhờ chức năng tích hợp của trình duyệt và khả năng tương tác do Web cung cấp. Tuy nhiên, các ứng dụng Web vẫn chủ yếu được điều khiển bởi cùng một ngôn ngữ kịch bản lệnh (JavaScript), ngôn ngữ này ban đầu không được thiết kế để thực hiện các tác vụ này.
JavaScript ban đầu là một ngôn ngữ kịch bản đơn giản nhằm mang lại tính tương tác cho các tài liệu siêu văn bản nhẹ trong các ứng dụng Web. Thiết kế của nó rất dễ học và viết, đồng thời nó không ưu tiên tốc độ thời gian chạy. Trong những năm qua, những cải tiến đáng kể về hiệu suất trong việc phân tích cú pháp JavaScript của trình duyệt đã dẫn đến hiệu suất tăng đáng kể.
Với tốc độ thực thi JavaScript được tăng tốc, phạm vi những việc có thể thực hiện trong trình duyệt đã mở rộng đáng kể. Các API mới đã giới thiệu các tính năng như đồ họa tương tác, truyền phát video, duyệt ngoại tuyến, v.v. Hơn nữa, ngày càng có nhiều ứng dụng vốn trước đây bị giới hạn trong môi trường máy tính để bàn đã xâm nhập vào Web. Giờ đây bạn có thể dễ dàng chỉnh sửa tài liệu và gửi email trong trình duyệt của mình. Tuy nhiên, trong một số miền nhất định, hiệu suất của JavaScript vẫn là một thách thức. Hãy nghĩ về các ứng dụng phần mềm bạn sử dụng ngoài trình duyệt: trò chơi, chỉnh sửa video, kết xuất 3D hoặc sản xuất âm nhạc. Những ứng dụng này yêu cầu tính toán rộng rãi và hiệu suất cao. JavaScript đấu tranh để đáp ứng các yêu cầu hiệu suất cao này.
Tuy nhiên, việc thay thế JavaScript là không thực tế và thậm chí có thể phải mất hàng thập kỷ để đạt được mục tiêu đó vì toàn bộ Internet đều phụ thuộc vào nó. Hơn nữa, có một cộng đồng lớn không ngừng cải tiến JavaScript. Thật vậy, so với các ngôn ngữ khác, JavaScript có một số thiếu sót ở các khía cạnh như null và ==. Tuy nhiên, những vấn đề này không đủ nghiêm trọng để đảm bảo phải thay thế toàn bộ công nghệ.
Vì vậy, WebAssugging sẽ không thay thế JavaScript nhưng điều đó không có nghĩa là WASM sẽ không được sử dụng trong tương lai. Trên thực tế, việc sử dụng WASM sẽ ngày càng phổ biến hơn. Điều này là do WASM có thể mang lại khả năng tính toán mạnh mẽ cho web, chẳng hạn như xử lý hình ảnh hoặc trò chơi. Với WASM, bạn có thể tạo phiên bản Photoshop dựa trên web chạy tốt hoặc trò chơi 3D chạy ở tốc độ 60 khung hình mỗi giây hoặc thậm chí tốc độ khung hình cao hơn trong trình duyệt. Đặc biệt, các trò chơi đặt ra một thách thức vì chúng yêu cầu thực hiện đồng thời quá trình xử lý âm thanh và video cũng như phối hợp các hiệu ứng vật lý và AI. WASM có khả năng chạy trò chơi trên trình duyệt một cách hiệu quả, mở ra cánh cửa đưa nhiều ứng dụng khác lên trình duyệt.
Hình trên cho thấy sự so sánh về quy trình làm việc giữa JavaScript và WebAssembly (wasm). Có thể thấy rằng wasm ngắn gọn hơn nhiều so với JavaScript.
Máy ảo WASM
Năm 2018, hệ sinh thái Ethereum bắt đầu thảo luận về việc sử dụng máy ảo WASM làm máy ảo hợp đồng thông minh, vì nó được coi là có hiệu suất tốt hơn EVM. Gavin Wood, nhà phát minh EVM, đã bày tỏ tính khả thi của việc thay thế nó bằng WASM, và Vitalik cũng tuyên bố rằng Ethereum 2.0 sẽ được nâng cấp để hỗ trợ các hợp đồng WASM (eWASM) nhằm đáp ứng nhiều nhu cầu phát triển hơn. Ngày nay, sự phát triển của hợp đồng WASM đã hình thành.
Vấn đề về kích thước kiến trúc
Máy tính truyền thống có tập lệnh chấp nhận đầu vào 32 hoặc 64 bit. Tuy nhiên, EVM khác biệt và độc đáo vì đây là máy tính 256 bit được thiết kế để xử lý thuật toán băm của Ethereum dễ dàng hơn, tạo ra kết quả đầu ra 256 bit rõ ràng.
Tuy nhiên, máy tính thực tế chạy chương trình EVM cần chia các từ 256 bit thành kiến trúc gốc của chúng để thực hiện hợp đồng thông minh, khiến toàn bộ hệ thống hoạt động kém hiệu quả và không thực tế.
Ngoài ra, nếu bạn muốn triển khai một thuật toán phức tạp như SHA256 bằng cách sử dụng OPCODES cơ bản của EVM trên Ethereum, thì bạn đang gặp khó khăn! Để giải quyết vấn đề chi phí gas cao khi chạy các chương trình phức tạp thông qua tập lệnh, Ethereum đã đưa ra khái niệm tiền biên dịch, biên dịch chương trình thành EVM và tiêu thụ một lượng gas cố định. Một trình biên dịch trước đáng chú ý là thuật toán băm Ethereum, vì việc triển khai nó trong máy ảo sẽ dẫn đến mức phí cực kỳ đắt đỏ khi hợp đồng được gọi.
Biên dịch trước cồng kềnh
Vấn đề với quá trình biên dịch trước là nó liên tục làm tăng sự cồng kềnh và phức tạp của máy ảo mà không giải quyết được vấn đề cốt lõi: thiết kế kém hiệu quả và kém của tập lệnh và thông số kỹ thuật hiện tại.
Điều gì sẽ xảy ra nếu chúng ta có thể xác định một đặc tả và tập lệnh mới không yêu cầu biên dịch trước các chương trình phức tạp này mà thay vào đó đạt được kết quả mong muốn một cách hiệu quả thông qua các hướng dẫn cơ bản? Đây là lúc WASM phát huy tác dụng.
Nhóm EWASM hiện đang tích hợp WebAssugging trên Ethereum để đảm bảo lớp thực thi đơn giản và hiệu quả hơn, giúp Ethereum phù hợp như một nền tảng điện toán phi tập trung hoàn toàn. WASM đã được nhiều dự án khác áp dụng làm tiêu chuẩn, bao gồm Dfinity và EOS, cả hai đều sử dụng nó để nâng cao các lớp thực thi của mình.
Dự án Stylus là một sáng kiến trên mạng Arbitrum Ethereum Lớp 2 nhằm cải thiện hiệu suất thực thi hợp đồng thông minh bằng cách giới thiệu máy ảo WebAssembly (WASM). Hợp đồng có thể được thực hiện nhanh hơn so với Solidity, đồng thời giảm chi phí gas. Điều này giúp việc xây dựng các hợp đồng thông minh hiệu suất cao trên mạng Arbitrum trở nên dễ dàng hơn và hiện hỗ trợ biên dịch bằng C, C++ và Rust.
Hỗ trợ biên dịch trước tùy chỉnh: Stylus cũng hỗ trợ các trình biên dịch trước tùy chỉnh, cho phép các nhà phát triển triển khai các trình biên dịch trước Rust hoặc C++ của riêng họ vào mạng Arbitrum. Điều này có thể giúp giới thiệu các thuật toán mã hóa mới hoặc các chức năng cụ thể khác trên chuỗi mà không cần chờ nâng cấp trên chuỗi. Ví dụ: tính toán tensor có thể được biên dịch trước để giảm chi phí suy luận, điều này có thể mang lại lợi ích cho việc học máy trên chuỗi.
Khả năng tương tác với EVM: Stylus đạt được sự tích hợp với hệ sinh thái Ethereum hiện có thông qua khả năng tương tác với Máy ảo Ethereum (EVM). Điều này có nghĩa là hợp đồng Stylus có thể tương tác với các hợp đồng EVM hiện có và chia sẻ cùng trạng thái toàn cầu với EVM.
Reentrancy: Không giống như Cosmos Wasm, Stylus Rust SDK giới thiệu tính năng reentrancy và cho phép các nhà phát triển kích hoạt tính năng này theo cách thủ công. Điều này cho phép các hợp đồng có khả năng tương tác linh hoạt hơn, nhưng các nhà phát triển cần quản lý trạng thái cẩn thận để đảm bảo an ninh.
Dựa trên hệ sinh thái thịnh vượng của Arbitrum, việc tích hợp Stylus có lẽ là sự tích hợp WASM có ý nghĩa nhất. Nó cũng nâng cao khả năng cạnh tranh của Arbitrum giữa các lĩnh vực zkRollup.
Giao thức Gear đang tạo ra một công nghệ có thể được triển khai dưới dạng Polkadot parachain, đóng vai trò như một công cụ để lưu trữ các hợp đồng thông minh. Tương tự như Polkadot, Gear cũng sử dụng khung Substrate, giúp đơn giản hóa quá trình tạo các chuỗi khối khác nhau cho các ứng dụng cụ thể. Chất nền cung cấp chức năng sẵn dùng, cho phép mọi người tập trung vào việc tạo các công cụ tùy chỉnh dựa trên giao thức.
Trước đây, chi phí tung ra blockchain rất cao, nhưng Gear cho phép các nhà phát triển dApp tập trung vào các dự án của họ thay vì xây dựng và vận hành toàn bộ blockchain từ đầu.
Động cơ chính của giao thức Gear là mô-đun hợp đồng thông minh. Trong trường hợp của Gear, mọi hợp đồng thông minh đều là chương trình WebAssembly được biên dịch bằng các ngôn ngữ khác nhau như Rust, C và C++. Đối với các nhà phát triển bên ngoài thế giới tiền điện tử, rào cản gia nhập thấp vì họ có thể xây dựng hợp đồng thông minh trong một môi trường quen thuộc. Các nhà phát triển thấy việc thử nghiệm các ngôn ngữ lập trình hợp đồng thông minh dễ dàng hơn.
Kiến trúc hợp đồng thông minh của Gear sử dụng Mô hình diễn viên dưới mui xe và cung cấp các chức năng sau:
Mỗi chương trình có một lượng bộ nhớ cố định mà Gear cho phép kiểm soát. Một chương trình chỉ có thể đọc và ghi trong bộ nhớ của chính nó và không thể truy cập vào không gian bộ nhớ của các chương trình khác. Mỗi chương trình có không gian bộ nhớ độc lập riêng và thông tin trên các nút Gear có thể được xử lý song song.
CosmWasm là nền tảng hợp đồng thông minh dựa trên Wasm hiện đại và mạnh mẽ, có thể dễ dàng tích hợp với Cosmos-SDK. Điều này cho thấy một trong những ưu điểm chính của CosmWasm: các hợp đồng được viết bằng CosmWasm được tích hợp chặt chẽ với IBC (Giao tiếp liên chuỗi khối) nguyên bản, cho phép các nhà phát triển và người dùng bước vào một tương lai đa chuỗi. Hiện tại, chỉ có Rust được hỗ trợ.
Ưu điểm của CosmWasm
Những thách thức và hạn chế
Ngoài máy ảo wasm, còn có một công nghệ mới nổi gần đây có tên ZKWASM. Nhà phát minh, Delphinus Labs, đã mã nguồn mở cho ZK-WASM trên GitHub. ZKWASM cho phép các nhà phát triển xác minh tính chính xác của các phép tính đã thực hiện mà không cần thực hiện lại chúng. Bằng cách tận dụng ZKWASM, các nhà phát triển có thể xây dựng linh hoạt các ứng dụng không có kiến thức (ZKP) bằng nhiều ngôn ngữ lập trình khác nhau. Các ứng dụng này có thể thực thi liền mạch trong trình duyệt web.
ZKWASM có nguồn gốc từ ZKSNARK, là sự kết hợp giữa SNARG và bằng chứng không có kiến thức. Hãy giải thích thêm. Thông thường, để sử dụng ZKSNARK, bạn cần viết chương trình bằng ngôn ngữ mạch số học hoặc ngôn ngữ thân thiện với mạch như Pinocchio, TinyRAM, Buffet/Pequin, Geppetto, xJsnark framework, ZoKrates, v.v. Điều này đặt ra rào cản đối với các chương trình hiện có, khiến chúng khó tận dụng được sức mạnh của ZKSNARK. Tuy nhiên, có một cách khác, đó không phải là sử dụng ZKSNARK ở cấp mã nguồn mà ở cấp mã byte của máy ảo, sau đó triển khai một máy ảo hỗ trợ ZKSNARK. Delphinus Labs đã áp dụng phương pháp thứ hai bằng cách kết hợp toàn bộ máy ảo WASM vào mạch ZKSNARK. Do đó, các ứng dụng WASM hiện tại có thể chạy trực tiếp trên ZKWASM mà không cần bất kỳ sửa đổi nào. Do đó, các nhà cung cấp dịch vụ đám mây có thể chứng minh cho bất kỳ người dùng nào rằng kết quả tính toán được tính toán trung thực và sẽ không tiết lộ bất kỳ thông tin cá nhân nào.
ZKWASM cung cấp nhiều trường hợp sử dụng khác nhau, chẳng hạn như cho phép xác minh trực tuyến các hoạt động được thực hiện trong trình duyệt. Nó cho phép các tương tác dựa trên web có thể kiểm chứng được trên blockchain. Các trường hợp sử dụng khác bao gồm dịch vụ oracle, tính toán ngoài chuỗi, tự động hóa, thu hẹp khoảng cách giữa Web2 và Web3, tạo bằng chứng cho máy học và xử lý dữ liệu, thậm chí cả ứng dụng chơi game và xã hội. Với việc áp dụng ngày càng tăng, zkWASM mở rộng khả năng của Web3 và tích hợp các nhà phát triển Web2 vào bối cảnh đầy biến đổi này.
Thông qua việc triển khai ZKWASM của Delphinus Lab, các nhà phát triển có thể khai thác sức mạnh của bằng chứng không kiến thức để tăng cường tính bảo mật và quyền riêng tư cho ứng dụng của họ, mở đường cho một hệ sinh thái kỹ thuật số phi tập trung và đáng tin cậy hơn.
Hiệu suất của Web và tương lai của lớp thực thi nền tảng hợp đồng thông minh rất hứa hẹn. Các dApp không chỉ có hiệu suất cao hơn mà việc tích hợp WASM cũng sẽ giúp những người quen thuộc với các ngôn ngữ chính thống như Rust và Go phát triển hợp đồng thông minh dễ dàng hơn mà không cần phải tìm hiểu sự phức tạp của Solidity hoặc các ngôn ngữ phát triển blockchain khác. Theo Evans Data Corporation, có gần 27 triệu nhà phát triển trên toàn thế giới và con số này đang tăng trưởng đều đặn, dự kiến sẽ tăng lên hơn 28,7 triệu vào năm 2024. Tuy nhiên, số lượng nhà phát triển trong lĩnh vực blockchain vẫn chưa đến 30.000, chỉ chiếm khoảng một phần nghìn tổng số nhà phát triển. Mặc dù con số này đang tăng đều đặn nhưng việc học các ngôn ngữ hợp đồng thông minh mới vẫn có thể là rào cản đối với các nhà phát triển khi gia nhập ngành công nghiệp blockchain.
Nhưng ngày càng có nhiều blockchain bắt đầu hỗ trợ Web Assembly dưới dạng mã byte cho các hợp đồng thông minh được biên dịch. WASM mang lại hiệu quả, khả năng tương tác và nhiều trường hợp sử dụng cho chuỗi khối. Nó cũng đóng vai trò là chìa khóa để mở ra cánh cửa cho các nhà phát triển, hạ thấp rào cản tham gia phát triển blockchain. Hãy tưởng tượng, trong tương lai gần, khi các nhà phát triển Web 2.0 muốn thử sức mình trong việc phát triển blockchain, họ có thể sử dụng các ngôn ngữ quen thuộc như Python, C++ và JavaScript để xây dựng các ứng dụng quy mô lớn trên blockchain, tối đa hóa giá trị của các mạng phi tập trung. Đầu tiên, hạ thấp rào cản đối với người sáng tạo (nhà phát triển), sau đó hạ thấp rào cản đối với người dùng và tiến tới áp dụng đại trà.
https://blog.scottlogic.com/2022/06/20/state-of-wasm-2022.html
https://www.notion.so/18f67cee15c147dfae68b06269a455c0?pvs=21
https://wiki.polkadot.network/docs/learn-wasm
https://docs.arbitrum.io/stylus/stylus-gentle-introduction
https://medium.com/@gear_techs/introducing-gear-easy-to-use-polkadot-parachain-9ccd05437a9c
https://medium.com/cosmwasm/cosmwasm-for-ctos-f1ffa19cccb8
https://www.cncf.io/wp-content/uploads/2023/09/The-State-of-WebAssembly-2023.pdf
https://github.com/DelphinusLab/zkWasm
Cảm ơn Maggie và Xinyou Ji (CMU) vì lời khuyên và hướng dẫn của họ cho bài viết này.
Tuyên bố miễn trừ trách nhiệm: Tất cả các bài viết từ Foresight Ventures không nhằm mục đích tư vấn đầu tư. Đầu tư tiềm ẩn rủi ro, vì vậy vui lòng đánh giá mức độ chấp nhận rủi ro của chính bạn và đưa ra quyết định đầu tư một cách cẩn thận.