Parallel Execution (Thực thi song song) là một giải pháp được các blockchain sử dụng để phân loại các giao dịch độc lập với nhau và thực hiện chúng đồng thời trong cùng 1 thời điểm. Một số blockchain hiện đang sử dụng Parallel Execution có thể kể đến như Solana, Aptos, Sui,... Hãy cùng Coin68 tìm hiểu về Parallel Execution qua bài viết dưới đây nhé!
Parallel Execution (Thực thi song song) là gì? Tìm hiểu về giải pháp nâng cao hiệu suất cho blockchain
Parallel Execution (Thực thi song song) là gì?
Parallel Execution (Thực thi song song) là một giải pháp được các blockchain sử dụng để phân loại các giao dịch độc lập với nhau và thực hiện chúng đồng thời trong cùng 1 thời điểm. Cách tiếp cận này hỗ trợ blockchain nâng cao hiệu suất một cách hiệu quả đồng thời tăng khả năng mở rộng của mạng lưới.
Parallel Execution (Thực thi song song) là gì?
Parallel Execution là giải pháp giúp khắc phục những hạn chế từ Sequential Execution (Thực thi tuần tự) của Ethereum hoặc các blockchain tương thích với EVM như BNB Chain, Polygon, Avalanche,... Mặc dù phần lớn các EVM blockchain sử dụng cơ chế Sequential Execution nhưng nó có nhược điểm là chỉ thực hiện 1 giao dịch tại 1 thời điểm và các giao dịch đó phải được xử lý lần lượt. Từ đây, khả năng mở rộng của blockchain sẽ rất thấp khi có tốc độ giao dịch chậm đồng thời góp phần đẩy phí giao dịch trên mạng lưới lên cao với mô hình của Mempool.
Từ đây, những blockchain mới có xu hướng sử dụng Parallel Execution để tăng khả năng mở rộng với tốc độ giao dịch cao, phí giao dịch thấp nhưng vẫn có tính tương thích cao với EVM. Một số blockchain nổi bật đang sử dụng Parallel Execution có thể kể đến như Solana, Aptos, Sui,...
Parallel Execution giải quyết vấn đề gì?
Nền tảng smart contract (hợp đồng thông minh) cho phép những nhà phát triển tạo ra nhiều DApp và để thực thi các DApp này cần sử dụng chung một computing engine (công cụ tính toán). Mỗi node trong mạng chạy công cụ tính toán này và thực thi các ứng dụng cũng như các tương tác của người dùng với ứng dụng đó. Khi các node nhận được kết quả giống nhau quá trình thực thi, chúng sẽ đạt được sự đồng thuận và cập nhật trạng thái trên mạng lưới.
Ethereum Virtual Machine (EVM) là công cụ thực thi smart contract chiếm ưu thế nhất với khoảng 20 cách triển khai khác nhau. Kể từ khi phát minh ra EVM, công cụ này đã được nhiều nhà phát triển áp dụng. Ngoài Ethereum và Layer 2 trên Ethereum, một số blockchain khác như Polygon, BNB Chain, Avalanche đã sử dụng EVM làm công cụ thực thi và tập trung vào việc thay đổi cơ chế đồng thuận để cải thiện thông lượng mạng lưới.
Điểm hạn chế chính của EVM là việc sử dụng Sequential Execution để thực thi giao dịch. Về cơ bản, EVM thực hiện 1 giao dịch tại 1 thời điểm và tạm dừng tất cả các giao dịch khác cho đến khi trạng thái của giao dịch được cập nhật trong blockchain ngay cả khi đối với 2 giao dịch độc lập.
Ví dụ: Alice chuyển tiền cho Bob và Carol chuyển tiền cho Dave thì EVM vẫn không thể thực hiện song song các giao dịch này.
Cơ chế hoạt động của Sequential Execution
Việc sử dụng Sequential Execution để thực thi các giao dịch khiến cho việc mạng lưới dễ bị nghẽn đồng thời khiến phí gas cao hơn nếu người dùng mong muốn giao dịch của mình được thực hiện nhanh nhất. Từ đây, Parallel Execution được xem như giải pháp để giải quyết những hạn chế hiện tại mà Sequential Execution đang gặp phải.
Cơ chế hoạt động của Parallel Execution
Parallel Execution hoạt động bằng cách xác định các giao dịch độc lập và thực hiện chúng đồng thời trong cùng 1 thời điểm. Mặc dù khái niệm xử lý song song rất đơn giản nhưng điều khó khăn lại nằm xác định hiệu quả các giao dịch độc lập. Việc phân loại các giao dịch độc lập đòi hỏi sự hiểu biết về cách mỗi giao dịch thay đổi bộ nhớ hoặc trạng thái được ghi nhận trên blockchain.
Cơ chế hoạt động của Parallel Execution
Các giao dịch tương tác với cùng 1 smart contract chẳng hạn như swap token trong 1 pool với AMM có thể thay đổi trạng thái contract nên không thể được thực hiện song song. Với mức độ kết hợp hiện tại giữa các ứng dụng, việc xác định sự phụ thuộc là một nhiệm vụ rất khó khăn.
Ví dụ: Người dùng swap liên tiếp 2 lần trong 1 pool thì 2 giao dịch đó sẽ phụ thuộc lẫn nhau và cần được thực hiện tuần tự thay vì thực hiện song song.
Mỗi blockchain sẽ sử dụng bởi các công cụ thực thi song song và các phương pháp kiểm soát quyền truy cập trạng thái giao dịch khác nhau. Trạng thái giao dịch trên blockchain có thể được coi là bộ nhớ RAM và mỗi smart contract sở hữu một loạt vị trí bộ nhớ mà nó có thể sửa đổi. Các giao dịch phụ thuộc là những giao dịch cố gắng thay đổi cùng một vị trí bộ nhớ trong cùng một khối. Mỗi blockchain sử dụng các kiến trúc bộ nhớ và các cơ chế khác nhau để nhận biết các giao dịch phụ thuộc.
Những blockchain đang sử dụng Parallel Execution
Hiện tại, đang có 6 blockchain đang sử dụng Parallel Execution bao gồm: Solana, Aptos, Sui, Fuel Network, Linera và Monad.
Solana
Solana được xem là blockchain Layer 1 tiên phong trong việc sử dụng Parallel Execution. Solana sử dụng công nghệ gọi là Sealevel để cho phép các giao dịch được thực thi song song trên nhiều node. Điều này làm giảm đáng kể thời gian cần thiết để xác nhận giao dịch dẫn đến tốc độ giao dịch trên Solana nhanh hơn nhiều so với các blockchain khác.
Solana
Sealevel là một công cụ xử lý giao dịch hyper-parallelized (song song) được thiết kế để mở rộng quy mô ngang trên GPU và SSD. Điều này khác biệt so với các blockchain khác, vì Solana là blockchain duy nhất hỗ trợ việc thực hiện giao dịch không chỉ xác minh chữ ký mà còn song song trên một shard (phân đoạn) duy nhất. Ngoài ra, Sealevel có khả năng tìm ra tất cả các giao dịch không chồng chéo trong một block và thực hiện chúng song song. Nó tận dụng cách đọc và ghi trạng thái đã được sắp xếp trên một dãy RAID 0 SSD.
Aptos
Aptos là blockchain Layer 1 được xây dựng trên ngôn ngữ Move của Diem và MoveVM để tạo ra blockchain có thông lượng cao để sử dụng Parallel Execution. Cách tiếp cận của Aptos là phát hiện các giao dịch phụ thuộc trong khi vẫn minh bạch đối với người dùng và nhà phát triển. Tức là blockchain này không yêu cầu giao dịch khai báo rõ ràng trạng thái của nó.
Aptos
Aptos sử dụng một bản sửa đổi của Software Transactional Memory (Bộ nhớ giao dịch phần mềm) - STM được gọi là Block-STM. Trong Block-STM, các giao dịch được sắp xếp trước bên trong khối và được phân chia giữa các luồng bộ xử lý để tối ưu việc thực thi. Các vị trí bộ nhớ đã được sửa đổi bởi các giao dịch sẽ được ghi lại. Sau khi thực hiện, tất cả các kết quả giao dịch đều được xác thực. Trong quá trình xác thực, nếu một giao dịch được phát hiện có các vị trí bộ nhớ đã truy cập được sửa đổi bởi các giao dịch trước đó thì giao dịch này sẽ bị vô hiệu hoá. Kết quả của giao dịch bị xóa và giao dịch sau đó được thực hiện lại và quá trình này sẽ được lặp lại cho đến khi tất cả các giao dịch trong khối được thực hiện.
Block-STM giúp tăng tốc độ thực thi khi sử dụng nhiều lõi bộ xử lý và nó còn dựa vào mức độ phụ thuộc lẫn nhau giữa các giao dịch. Kết quả từ đội ngũ phát triển của Aptos cho thấy rằng việc sử dụng 32 lõi mang lại sự cải thiện gấp 8 lần cho mức độ phụ thuộc lẫn nhau cao và cải thiện 16 lần cho mức độ phụ thuộc lẫn nhau thấp. Nếu tất cả các giao dịch trong một khối đều là giao dịch phụ thuộc, Block-STM sẽ dẫn đến một mức phạt nhỏ về hiệu suất so với Sequential Execution.
Sui
Một cách tiếp cận Parallel Execution khác là yêu cầu các giao dịch khai báo rõ ràng các phần trạng thái mà chúng sửa đổi và Sui đang theo hướng này. Sui là blockchain Layer 1 áp dụng Parallel Execution để xử lý các giao dịch song song từ đó giúp sử dụng hiệu quả hơn các tài nguyên và cho phép mở rộng thông lượng.
Sui
Sui được xây dựng dựa trên ngôn ngữ lập trình Move và cũng là 1 sổ cái phân tán lưu trữ một tập hợp các đối tượng có thể lập trình được mà mỗi đối tượng có một ID duy nhất. Mỗi đối tượng được sở hữu bởi một địa chỉ duy nhất và mỗi địa chỉ có thể sở hữu một số đối tượng bất kỳ. Validator trên Sui phê duyệt và thực hiện các giao dịch song song bằng cách sử dụng Byzantine Consistent Broadcast với thông lượng cao.
Fuel Network
Fuel Network là 1 modular execution layer (lớp thực thi mô-đun) được thiết kế để cải thiện khả năng mở rộng, bảo mật và hiệu quả của hệ sinh thái Ethereum. Fuel Network hoạt động dựa trên UTXO cho phép xử lý giao dịch nhanh hơn do các giao dịch được xác thực song song trên phần cứng của người dùng.
Fuel Network
Linera
Linera là blockchain Layer 1 thế hệ mới giải quyết vấn đề khả năng mở rộng đồng thời giúp người dùng từ Web2 chuyển đổi sang Web3 một cách dễ dàng. Linera sử dụng một mạng lưới bao gồm các microchain và mỗi microchain có thể xử lý các giao dịch riêng biệt. Điều này giúp Linera có khả năng mở rộng cao mà không ảnh hưởng đến khả năng bảo mật. Ngoài ra, Linera cũng áp dụng Parallel Execution để xử lý các giao dịch song song trên các microchain khác nhau trong cùng 1 thời điểm.
Linera
Monad
Monad là blockchain Layer 1 sử dụng Parallel Execution để xử lý nhiều giao dịch cùng lúc thay vì từng giao dịch một như Ethereum. Monad sẽ sử dụng phương pháp optimistic execution để giữ cho kết quả đầu ra giao dịch luôn chính xác. Tại đây, các giao dịch sau bắt đầu chạy ngay cả khi các giao dịch trước đó trong block chưa được hoàn thành. Nếu giao dịch sử dụng dữ liệu cũ thì giao dịch đó sẽ được gắn cờ để chạy lại với thông tin được cập nhật mới nhất.
Monad
Việc kiểm tra này được thực hiện bằng cách so sánh đầu vào và đầu ra của giao dịch bằng 2 kỹ thuật Kiểm Optimistic Concurrency Control (OCC) và Software Transactional Memory (STM) để duy trì tính toàn vẹn dữ liệu mà vẫn tối đa hóa tốc độ. Vì vậy, Monad đặt mục tiêu xử lý nhiều giao dịch nhanh chóng hơn mà không ảnh hưởng đến độ bảo mật.
Những thách thức đối với Parallel Execution
Tỷ lệ phần trăm giao dịch có thể thực hiện song song
Việc ước tính chính xác tỷ lệ phần trăm giao dịch có thể được thực hiện song song trong bất kỳ blockchain nào là sự thách thức lớn. Hơn nữa, tỷ lệ phần trăm này có thể thay đổi đáng kể giữa các block tùy thuộc vào loại hoạt động trong mạng lưới.
Ví dụ: Sự kiện mint NFT có thể dẫn đến sự bùng nổ với 1 loạt các giao dịch phụ thuộc nhau hoặc các giao dịch AMM trong 1 liquidity pool nhất định sẽ phụ thuộc nhau. Điều đó có nghĩa là chúng ta có thể sử dụng một số giả định để có được ước tính sơ bộ về tỷ lệ phần trăm trung bình của các giao dịch có thể thực hiện song song.
Lấy 1 giả định rằng hầu hết các giao dịch chuyển ETH và token ERC-20 trên Ethereum là những giao dịch độc lập thì sẽ có khoảng 70% – 80% lượng giao dịch trên Ethereum có thể được cải thiện rất nhiều nếu áp dụng Parallel Execution. Điều này cũng có nghĩa là các giao dịch phụ thuộc nhau và phải xử lý theo thứ tự chỉ chiếm khoảng 20% – 30%. Từ đây, ta có thể thấy rằng việc áp dụng Parallel Execution có thể tăng thông lượng cho mạng lưới từ 3 đến 5 lần mà vẫn giữa phí gas ở mức cố định. Các thực nghiệm thực tế trên các blockchain EVM cũng đã cho thấy kết quả tương tự, thậm chí có thể cao hơn hơn 100 lần so với Ethereum hiện tại. Tuy nhiên, điều này cũng đặt ra một vấn đề khác cần xem xét là tính tập trung của mạng lưới.
Tính tập trung của mạng lưới
Một thách thức khác về việc áp dụng Parallel Execution là nó đẩy mạng theo hướng tập trung hóa một cách đáng kể. Trong các blockchain thông lượng cao, mạng lưới có thể xử lý hàng chục nghìn giao dịch mỗi giây. Các validator node nhận được incentives là phần thưởng khối và phí gas để xử lý các giao dịch này từ đó đầu tư vào máy chủ chuyên dụng hoặc kiến trúc đám mây có thể mở rộng để xử lý các giao dịch này.
Tuy nhiên, điều này không áp dụng cho các cá nhân không đủ khả năng tài chính để sở hữu máy chủ phức tạp để xử lý khối lượng giao dịch lớn từ mạng lưới. Điều này sẽ làm cho mạng lưới trở thành 1 hệ thống khép kín với quyền lực tập trung về 1 nhà cung cấp nút RPC chuyên dụng chẳng hạn như Alchemy, Infura, Quick Node,...
Tổng kết
Parallel Execution (Thực thi song song) là một giải pháp được các blockchain sử dụng để phân loại các giao dịch độc lập với nhau và thực hiện chúng đồng thời trong cùng 1 thời điểm. Hiện tại, một số blockchain nổi bật đang sử Parallel Execution có thể kể đến như Solana, Sui, Aptos,...
Mặc dù giải quyết được vấn đề về hiệu suất mạng lưới nhưng Parallel Execution lại đang gặp phải những thách thức về tỷ lệ phần trăm phân loại giao dịch độc lập và tính tập trung của mạng lưới. Nếu các dự án blockchain mới có thể giải quyết được 2 bài toán này thì Parallel Execution sẽ là giải pháp được áp dụng rộng rãi trong tương lai thay vì Sequential Execution.
Thông qua bài viết này chắc các bạn đã phần nào nắm được những thông tin cơ bản về Parallel Execution như khái niệm, cơ chế hoạt động, những blockchain đang sử dụng và thách thức của giải pháp này. Coin68 chúc các bạn thành công và kiếm được thật nhiều lợi nhuận từ thị trường tiềm năng này!