Công nghệ xử lý song song & Monad
Giới thiệu
Chu kỳ này đã cho chúng ta một cái nhìn về tiềm năng của blockchain. Từ DeFi, NFTs, trò chơi điện tử, mạng xã hội và nhiều ứng dụng khác, tiền điện tử đã chứng tỏ rằng nó có thể có ứng dụng thực tế. Bất kể các ứng dụng được xây dựng như thế nào, chúng sẽ không thể phổ biến được cho đến khi các blockchain, mà các ứng dụng được xây dựng trên đó, có thể hỗ trợ đủ tốt điều đó.
Kể từ khi blockchain được tạo ra, các kỹ sư đã tìm kiếm cách để mở rộng chúng. Điều này đã dẫn đến nhiều giải pháp mở rộng khác nhau được triển khai trên các chuỗi khác nhau. Điều này cho phép chúng ta so sánh và phân tích số giao dịch mỗi giây, đó là thước đo quan trọng cho tính mở rộng, và xác định những phương pháp hiệu quả nhất.
EVM
Có hai thành phần chính trong một blockchain hợp đồng thông minh: cơ chế đồng thuận và máy ảo. Cơ chế đồng thuận cho phép hàng trăm node đạt được sự đồng thuận về thứ tự giao dịch và đưa chúng vào blockchain. Máy ảo (VM) thực thi mã ứng dụng và cập nhật trạng thái kết hợp của mỗi ứng dụng, cũng như số dư tài khoản trên toàn cầu.
Ethereum là blockchain đầu tiên cho phép hợp đồng thông minh có thể lập trình được, còn được gọi là ứng dụng. Máy ảo Ethereum (EVM) là một động cơ tính toán được chia sẻ. Hệ thống bao gồm nhiều node, mỗi node đều là bản sao hoàn hảo của tất cả các node khác, với tất cả các ứng dụng và trạng thái giống nhau. Người dùng gọi các chức năng trên hợp đồng thông minh bằng cách gửi các tin nhắn giao dịch đến mạng. Các giao dịch đang chờ xử lý được tập hợp định kỳ thành một thứ tự chính thức của các giao dịch, còn được gọi là một khối, và mỗi node trong mạng thực thi thứ tự chính thức đó, do đó giữ cho tất cả các node luôn đồng bộ.
Ứng dụng trong Ethereum được biểu thị bằng định dạng mã bytecode EVM. Biểu thị các chương trình bằng bytecode chuẩn cho phép thực thi chương trình được đặt trong một không gian ảo độc lập (sandbox) và không phụ thuộc vào nền tảng.
Mã bytecode EVM đã được kiểm chứng và tin cậy. Nó đã đạt đến mức độ quan trọng như một tiêu chuẩn thống trị hợp đồng thông minh. Cụ thể hơn, các ngôn ngữ cấp cao Solidity hoặc Vyper, tạo ra mã bytecode EVM, là các công cụ mà hầu hết các nhà phát triển hợp đồng thông minh sử dụng, và là ngôn ngữ mà hầu hết các thư viện và ứng dụng được triển khai. EVM có tính phổ biến như Javascript; nó chịu trách nhiệm cho 97% TVL trong DeFi theo DefiLlama, và được hỗ trợ bởi hơn 20 blockchain. Do đó, đây là sự lựa chọn an toàn cho các nhà phát triển muốn mã của họ được di động hóa tối đa.
Môi trường cho việc thực thi EVM
Mặc dù nhiều blockchain hỗ trợ tiêu chuẩn mã bytecode EVM, nhưng tất cả đều còn nhiều điểm bất lợi từ khía cạnh thông lượng.
Dưới đây là các con số giao dịch mỗi giây (tps) cho một giao dịch UniswapV3 điển hình, có dung lượng gas là 130k. Như bạn có thể thấy, hầu hết các chuỗi cung cấp lên đến ~200 tps, hoặc ~20 triệu giao dịch mỗi ngày.
Điều này được xác nhận bằng các số liệu thực tế trong tháng vừa qua được cung cấp bởi EthTPS.info:
Phân tích tiếp theo từ Dragonfly Capital cũng khẳng định điểm này.
Ethereum chỉ xử lý khoảng 10 giao dịch mỗi giây. Chuỗi EVM nhanh nhất, Binance Chain, chạy ở hơn 200 tps. Để tham khảo: một trò chơi đơn giản với 10.000 người dùng thực hiện một lượt đi mỗi 10 giây sẽ cần phải có 1000 tps.
Thực thi song song
Sự thật là, tất cả các chuỗi EVM đều gặp phải điểm yếu chung: Thực thi tuần tự. EVM chỉ có thể thực thi một giao dịch một lúc! Đây là cách thực hiện đơn giản nhất, và đầu tiên đơn giản luôn là một phương pháp tốt, nhưng chúng ta cần tiến hóa.
Thực thi tuần tự không hiệu quả. Nếu hai giao dịch là độc lập, ví dụ như Alice trả tiền cho Bob và Chris trả tiền cho Dave, một trình lên lịch thông minh hơn sẽ hiểu rằng những giao dịch này có thể được thực thi song song.
Các nhà phát triển đã nhận ra điểm nút thắt cổ chai này và đã cố gắng giải quyết vấn đề thực thi song song. Solana đã giới thiệu một hệ thống thực thi song song gọi là Sealevel, cùng với các đổi mới khác, cho phép họ đạt được 500–1000 tps (trừ phiếu bầu). Tuy nhiên, để đạt được tốc độ này, họ cũng phải thiết kế VM riêng của mình.
Thách thức chính của thực thi song song là xác định các giao dịch độc lập.
Solana đã giải quyết vấn đề này bằng cách làm cho các chương trình không có trạng thái và yêu cầu các giao dịch chỉ định tất cả trạng thái sẽ được đọc hoặc ghi trong quá trình thực thi. Điều này cho phép các giao dịch độc lập thực thi song song. Nó cũng cho phép các giao dịch đọc cùng một trạng thái thực thi song song.
Những phụ thuộc giao dịch rõ ràng hơn trong một số trường hợp hơn trong các trường hợp khác. Một giao dịch chuyển token đơn giản giữa hai bên không ảnh hưởng đến bên khác. Nhưng các giao dịch tương tác với cùng một hợp đồng thông minh có thể thay đổi trạng thái và do đó không thể thực thi song song. Ví dụ, một giao dịch trao đổi AMM có thể được định tuyến qua nhiều pool, và tất cả các pool liên quan đến giao dịch này không thể xử lý các giao dịch khác cho đến khi giao dịch đầu tiên được hoàn thành.
Nhìn chung, đổi mới của Solana trong thực thi song song đã mở ra một phương tiện mới để tăng khả năng mở rộng. Mặc dù Solana hiện là chuỗi hiệu suất cao nhất mà chúng tôi đã thấy, nhưng việc thiếu tính tương thích với EVM đã ngăn cản việc áp dụng. Điều này đặt ra câu hỏi: liệu bạn có thể triển khai thực thi song song trên một chuỗi EVM không?
Câu hỏi này không phải là giả thuyết. Monad đang xây dựng một blockchain lớp cơ sở tương thích EVM có hiệu suất cao, cho phép thực thi song song.
Mo’nad, Mo’throughput
Monad cho phép thực thi song song cho các giao dịch EVM mà không có sự phụ thuộc chung. Nghĩa là, các giao dịch và khối vẫn được sắp xếp theo trật tự tuyến tính; Monad chỉ định các giao dịch trong trật tự tuyến tính đó có thể được thực thi song song mà không gây gián đoạn cho kết quả. Điều này cho phép Monad xử lý các giao dịch hiệu quả hơn mà không ảnh hưởng đến các nhà phát triển ứng dụng. Các ứng dụng ban đầu được viết cho Ethereum và triển khai trên Monad vẫn hoạt động như cách hoạt động trên Ethereum.
Các giao dịch không có phụ thuộc chung được lên lịch thực thi song song trên các nhân tố riêng biệt. Các giao dịch có phụ thuộc chung được lên lịch thực thi liên tiếp. Lên lịch liên tiếp cũng giảm thiểu overhead I/O, một thành phần đáng kể của độ trễ trong việc thực hiện EVM hiện tại.
MVP của chúng tôi đạt được 10.000 tps thông qua thực thi kiểu dạng ống (pipeline) và các đổi mới khác. Cũng có cơ hội để cải thiện tăng dần khi chúng tôi cải thiện thuật toán ước tính phụ thuộc và cơ chế đồng thuận. Mục tiêu dài hạn của chúng tôi là giới hạn vật lý của băng thông: ~400.000 TPS.
Hãy truy cập trang web của chúng tôi tại monad.xyz hoặc theo dõi chúng tôi trên twitter @monad_xyz để tìm hiểu thêm về chuỗi EVM nhanh nhất hiện có!
Cảm ơn bạn đã ủng hộ VNBnodes!
Nếu có bất cứ câu hỏi nào về chạy node và công nghệ của dự án, hãy tham gia vào các kênh của VNBnodes để cùng trao đổi và nắm thông tin nhé: