Thực hiện song song là một giải pháp mà các blockchain sử dụng để phân loại các giao dịch độc lập và thực hiện chúng đồng thời trong cùng một thời điểm. Một số blockchain hiện nay sử dụng Parallel Execution bao gồm Solana, Aptos, Sui,... Hãy cùng Mytour tìm hiểu chi tiết về Thực hiện song song trong bài viết dưới đây!
Thực hiện song song là gì? Tìm hiểu về giải pháp nâng cao hiệu suất cho blockchainThực hiện song song là gì?
Thực hiện song song là một giải pháp mà các blockchain sử dụng để phân loại các giao dịch độc lập và thực hiện chúng đồng thời trong cùng một thời điểm. Cách tiếp cận này giúp blockchain tăng hiệu suất một cách hiệu quả và mở rộng mạng lưới một cách hiệu quả.
Thực hiện song song là gì?Thực hiện song song giúp khắc phục nhược điểm từ Thực hiện 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ù hầu hết các EVM blockchain sử dụng Thực hiện tuần tự nhưng nó chỉ thực hiện một giao dịch tại một thời điểm và phải xử lý chúng một cách tuần tự. Do đó, khả năng mở rộng của blockchain giảm đi và có thể dẫn đến tăng phí giao dịch trên mạng lưới với mô hình của Mempool.
Do đó, các blockchain mới có xu hướng sử dụng Thực hiện song song để tăng khả năng mở rộng với tốc độ giao dịch cao, phí giao dịch thấp và vẫn tương thích với EVM. Một số blockchain nổi bật sử dụng Thực hiện song song như Solana, Aptos, Sui,...
Thực hiện song song giải quyết vấn đề gì?
Smart contract cho phép 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 cùng một 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 và tương tác người dùng với ứng dụng đó. Khi các node đạt được kết quả giống nhau trong quá trình thực thi, chúng đạ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 phổ biến nhất với khoảng 20 cách triển khai khác nhau. Từ khi ra đời, EVM đã được nhiều nhà phát triển sử dụng. Ngoài Ethereum và Layer 2 trên Ethereum, một số blockchain khác như Polygon, BNB Chain, Avalanche cũng đã áp 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 để tăng thông lượng mạng lưới.
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 chỉ 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, 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 Sử dụng Sequential Execution để thực thi các giao dịch khiến cho mạng lưới dễ bị tắc nghẽn và làm tăng phí gas nếu người dùng muốn giao dịch của mình được thực hiện nhanh chóng. Do đó, Parallel Execution được xem như giải pháp để giải quyết những hạn chế 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 một thời điểm. Mặc dù khái niệm xử lý song song rất đơn giản nhưng việc xác định hiệu quả các giao dịch độc lập lại khá khó khăn. Phân loại các giao dịch độc lập yêu cầu 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 ExecutionCơ chế hoạt động của Parallel ExecutionCác giao dịch tương tác với cùng một smart contract như swap token trong cùng một pool với AMM có thể thay đổi trạng thái contract nên không thể 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 thực hiện swap liên tiếp 2 lần trong cùng một pool, 2 giao dịch này sẽ phụ thuộc lẫn nhau và cần phải thực hiện tuần tự thay vì song song.
Mỗi blockchain sẽ sử dụng 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 vào 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, có 6 blockchain đang áp dụng Parallel Execution bao gồm: Solana, Aptos, Sui, Fuel Network, Linera và Monad.
Solana
Solana được coi là blockchain Layer 1 tiên phong trong việc áp dụng Parallel Execution. Solana sử dụng công nghệ Sealevel để cho phép các giao dịch được thực hiện song song trên nhiều node. Điều này giảm đáng kể thời gian cần để xác nhận giao dịch và làm tăng tốc độ giao dịch trên Solana so với các blockchain khác.
SolanaSolanaSealevel là một công cụ xử lý giao dịch song song được thiết kế để mở rộng quy mô ngang trên GPU và SSD. Điều này làm cho Solana khác biệt 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 thực hiện song song trên một shard 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ó sử 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. Phương pháp 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. Điều này có nghĩa là blockchain này không yêu cầu giao dịch khai báo trạng thái của nó một cách rõ ràng.
AptosAptosAptos sử dụng một phiên bản sửa đổi của Software Transactional Memory (STM) gọi là Block-STM. Trong Block-STM, các giao dịch được sắp xếp trước 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ả kết quả giao dịch sẽ được xác thực. Trong quá trình xác thực, nếu phát hiện một giao dịch có các vị trí bộ nhớ đã sửa đổi bởi các giao dịch trước đó, giao dịch này sẽ bị vô hiệu hoá. Kết quả của giao dịch sẽ bị xóa và giao dịch sau đó sẽ được thực hiện lại và quá trình này sẽ 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 giữa các giao dịch. Kết quả từ nhóm phát triển của Aptos cho thấy việc sử dụng 32 lõi mang lại cải thiện gấp 8 lần cho mức độ phụ thuộc cao và cải thiện 16 lần cho mức độ phụ thuộc thấp. Nếu tất cả các giao dịch trong một khối đều phụ thuộc vào nhau, Block-STM sẽ gây ra một số lượng nhỏ hơn về hiệu suất so với Sequential Execution.
Sui
Một phương pháp tiếp cận khác của Parallel Execution 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 đuổi hướng này. Sui là một blockchain Layer 1 áp dụng Parallel Execution để thực hiện các giao dịch song song, giúp tận dụng hiệu quả hơn các tài nguyên và cho phép mở rộng thông lượng.
SuiSuiSui được xây dựng trên ngôn ngữ lập trình Move và cũng là một sổ cái phân tán lưu trữ một tập hợp các đối tượng có thể được lập trình, 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à một lớp thực thi mô-đun modul đượ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 NetworkFuel NetworkLinera
Linera là một 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.
LineraLineraMonad
Monad là một 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ử 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.
MonadMonadViệ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 Tra Độc Lập và Bộ Nhớ Giao Dịch Phần Mềm để 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 đánh giá 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à một thách thức lớn. Thêm vào đó, tỷ lệ này có thể biến đổi đáng kể giữa các khối tuỳ thuộc vào loại hoạt động trong mạng lưới.
Ví dụ: Việc tạo ra NFT hoặc các giao dịch AMM trong một liquidity pool cụ thể thường dẫn đến một chuỗi các giao dịch phụ thuộc lẫn nhau. Điều này ngụ ý rằng ta có thể sử dụng một số giả định để ước tính tỷ lệ phần trăm trung bình của các giao dịch có thể được thực hiện song song.
Ví dụ, giả sử hầu hết các giao dịch chuyển ETH và token ERC-20 trên Ethereum là độc lập, ta có thể ước tính rằng khoảng 70% – 80% lượng giao dịch trên Ethereum có thể được cải thiện đáng kể nếu áp dụng Parallel Execution. Điều này ngụ ý rằng các giao dịch độc lập chỉ chiếm khoảng 20% – 30% và phụ thuộc vào nhau. Nhờ đó, việc sử dụng Parallel Execution có thể tăng thông lượng mạng lưới từ 3 đến 5 lần mà vẫn giữ phí gas ở mức ổn định.
Tính tập trung của mạng lưới
Một thách thức khác của việc sử dụng Parallel Execution là nó có thể đẩy mạng lưới vào hướng tập trung hóa đáng kể. Trong các blockchain có 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, dẫn đến việc các validator node cần đầu tư vào cơ sở hạ tầng mạnh mẽ để xử lý số lượng lớn các giao dịch này.
Tuy nhiên, điều này không áp dụng cho những người 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 có thể làm cho mạng lưới trở thành một hệ thống khép kín với quyền lực tập trung vào một nhà cung cấp nút RPC chuyên dụng như Alchemy, Infura, Quick Node,...
Tóm tắt
Parallel Execution (Thực thi song song) là một giải pháp mà các blockchain sử dụng để phân loại các giao dịch độc lập và thực hiện chúng đồng thời trong cùng một thời điểm. Hiện nay, một số dự án blockchain nổi bật sử dụng Parallel Execution bao gồm 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 đ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 hai vấ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 chắn các bạn đã hiểu một phần nhỏ về Parallel Execution như khái niệm, cơ chế hoạt động, các blockchain đang sử dụng và những thách thức của giải pháp này. Mytour chúc các bạn thành công và kiếm được nhiều lợi nhuận từ thị trường tiềm năng này!
