SETTINGS
Content language
flag Vietnamese
Vietnamese
flag Vietnamese
Vietnamese
Tiếng việt
flag English
English
English
Channel logo
Coin98 Insights
Save
Copy link

Parallel Execution - Thực thi song song, tối ưu hóa hiệu suất blockchain

Parallel Execution (Thực thi song song) là một trong những cách tối ưu hóa, cải thiện hiệu suất và tăng khả năng mở rộng của Blockchain. Một số blockchain đang áp dụng Parallel Execution là Solana, Sui, Aptos.
Avatar
vinhvo
Published Oct 09 2024
Updated 4 days ago
11 min read
Parallel Execution thực thi song song

Parallel Execution là gì?

Parallel Execution (thực thi song song) trong blockchain là một kỹ thuật giúp cải thiện hiệu suất và khả năng mở rộng của mạng lưới.

Thay vì xử lý các giao dịch theo trình tự lần lượt (Sequential), Parallel Execution cho phép blockchain thực thi nhiều giao dịch đồng thời trên các lõi CPU khác nhau. Điều này không chỉ tận dụng tối đa tài nguyên phần cứng mà còn giúp tăng tốc độ xử lý giao dịch, giảm thiểu độ trễ, và nâng cao khả năng mở rộng của mạng lưới.

Thực thi song song (Parallel Execution) cũng có thể hiểu là song song hoá quá trình thực thi giao dịch bên trong mạng lưới blockchain.

advertising

Tại sao cần Parallel Execution?

Để trả lời câu hỏi tại sao cần Parallel Execution, chúng ta cần biết về Transaction Processing Unit (TPU), nó đảm nhận việc xử lý và thực thi các giao dịch. TPU và Virtual Machine (VM) đều là thành phần quan trọng của blockchain nhưng đóng vai trò khác nhau.

  • VM chịu trách nhiệm dịch mã bytecode (được biên dịch từ các ngôn ngữ như Solidity, Rust,...) thành mã máy để có thể thực thi trên phần cứng.
  • TPU nhận dữ liệu giao dịch làm đầu vào, sau đó sắp xếp thứ tự các giao dịch và xuất kết quả dưới dạng blockhash để đảm bảo tính nhất quán của mạng blockchain.

Hiện nay, có hai mô hình chính TPU hoạt động chính là Sequential TPU và Parallel TPU.

tpu
Sequential TPU và Parallel TPU

Sequential TPU

Sequential TPU xử lý các giao dịch theo nguyên tắc "ai đến trước, xử lý trước," nghĩa là từng giao dịch sẽ được xử lý lần lượt. Mô hình này đơn giản và không yêu cầu phức tạp về kỹ thuật, nhưng lại không tận dụng tối đa được sức mạnh của các vi xử lý hiện đại có nhiều lõi CPU. Điều này có thể gây ra hiện tượng tắc nghẽn khi phải xử lý khối lượng giao dịch lớn cùng lúc.

Parallel TPU

Parallel TPU song song xử lý nhiều giao dịch không xung đột cùng lúc, phân bổ trên các lõi CPU khác nhau. Nhờ đó, tốc độ xử lý và khả năng mở rộng của blockchain được cải thiện đáng kể. Thay vì phải đợi xử lý từng giao dịch một, TPU song song sẽ đồng thời thực hiện nhiều giao dịch nếu chúng không ảnh hưởng lẫn nhau.

Lý do Parallel TPU ngày càng được ưa chuộng hơn Sequential TPU

Hiện nay, công nghệ vi xử lý đã đạt đến giới hạn về tốc độ xử lý đơn luồng. Thay vì tập trung tăng tốc độ của một lõi CPU, các nhà sản xuất chuyển sang hướng phát triển tăng số lượng lõi xử lý.

xu hướng phát triển vi xử lý
Nguồn ảnh: 2077 Research

Biểu đồ cho thấy từ sau năm 2005, hiệu suất đơn luồng (chấm xanh dương) và tần số xử lý (hình vuông xanh lá) đã chậm lại, trong khi số lượng lõi logic (hình thoi vàng) tăng đều đặn. Ngành công nghiệp máy tính đang chuyển từ tối ưu hóa đơn luồng sang tăng lõi xử lý song song để cải thiện hiệu suất.

Như vậy, Parallel TPU là 1 xu hướng tất yếu, nó được thiết kế để tận dụng khả năng xử lý đồng thời trên nhiều lõi logic, giúp xử lý khối lượng giao dịch lớn hơn, giảm thiểu tình trạng tắc nghẽn, đặc biệt là trong các giai đoạn có lưu lượng giao dịch tăng đột biến.

Tìm hiểu thêm về: Sự phát triển của các Virtual Machine (VM) trên Rollup

Hai cách để thực thi song song hóa giao dịch

Nhìn vào cách triển khai thực tế, thị trường đang chứng kiến hai cách tiếp cận chính để song song hóa giao dịch trên blockchain (Parallel Execution) là Pessimistic Execution và Optimistic Execution.

Pessimistic Execution

Cách tiếp cận này yêu cầu các giao dịch phải khai báo trước những biến trạng thái (state) mà chúng sẽ truy cập (đọc / ghi) trong quá trình thực thi.

pessimistic execution
Pessimistic Execution. Nguồn ảnh: Archetype

Dựa trên thông tin này, hệ thống sẽ phân tích các mẫu truy cập để xác định các giao dịch có thể thực thi song song mà không gây ra xung đột. Nếu một giao dịch truy cập vào một phần trạng thái mà các giao dịch khác cũng đang truy cập, hệ thống sẽ khóa phần trạng thái đó để ngăn chặn các xung đột trước khi thực thi, đảm bảo tính toàn vẹn dữ liệu.

Phương pháp này có lợi thế là ngăn ngừa xung đột từ trước, giúp quá trình xử lý giao dịch an toàn và hiệu quả hơn khi các phần trạng thái không bị tranh giành.

Tuy nhiên, nó yêu cầu các giao dịch phải xác định trước những trạng thái mà chúng sẽ thao tác, dẫn đến sự phức tạp trong phát triển, đặc biệt với các giao dịch có logic phức tạp hoặc phụ thuộc vào dữ liệu thay đổi trong quá trình thực thi.

Optimistic Execution

Trái ngược với Pessimistic Execution, Optimistic Execution cho phép các giao dịch được thực thi song song mà không cần phải khai báo trước các biến trạng thái sẽ truy cập.

Sau khi hoàn tất quá trình thực thi, hệ thống mới tiến hành kiểm tra xem có xung đột hay không. Nếu phát hiện xung đột giữa các giao dịch, hệ thống sẽ quay lại và thực thi lại các giao dịch bị xung đột.

optimistic execution
Optimistic Execution. Nguồn ảnh: Archetype

Phương pháp này giúp cải thiện tốc độ xử lý vì không cần phân tích trước trạng thái, mang lại tính linh hoạt cao hơn cho các nhà phát triển trong việc triển khai các hợp đồng thông minh có logic phức tạp.

Tuy nhiên, nếu có nhiều xung đột, việc phải thực thi lại nhiều giao dịch sẽ gây ra sự lãng phí tài nguyên và giảm hiệu suất trong những trường hợp có khối lượng giao dịch cao.

So sánh giữa Pessimistic Execution và Optimistic Execution

Mỗi cách tiếp cận đều có những ưu điểm và hạn chế riêng:

  • Pessimistic Execution cung cấp khả năng kiểm soát chặt chẽ và hiệu suất cao trong các tình huống ít tranh chấp.
  • Optimistic Execution mang lại sự linh hoạt hơn trong phát triển ứng dụng, phù hợp với các hệ thống có tính phức tạp và tương tác cao.
pessimistic và optimistic execution
So sánh Pessimistic Execution và Optimistic Execution

Khía cạnh hiệu suất

Pessimistic Execution

Pessimistic Execution thường được đánh giá cao khi xử lý các giao dịch có mẫu truy cập dữ liệu ổn định và ít xung đột.

Vì cách tiếp cận Pessimistic Execution ngăn chặn xung đột trước khi chúng xảy ra, nhờ việc kiểm tra trước các biến trạng thái mà các giao dịch sẽ truy cập. Điều này giúp giảm thiểu việc phải thực thi lại các giao dịch, dẫn đến việc tối ưu hóa tài nguyên và tăng tốc độ xử lý khi số lượng giao dịch lớn mà không có quá nhiều xung đột.

Tuy nhiên, trong những trường hợp có nhiều giao dịch tranh chấp cùng một trạng thái, hiệu suất có thể giảm do các giao dịch phải đợi nhau để có thể thực thi. Việc quản lý khóa (locking) trong những tình huống này có thể trở thành nút thắt cổ chai, khiến toàn hệ thống chậm hơn khi số lượng giao dịch lớn và có nhiều giao dịch xung đột.

Solana là một trong những Blockchain sử dụng Pessimistic Execution. Trong các đợt mint NFT lớn (Mad Labs) hay Claim Airdrop (Jito) quá khứ, trải nghiệm người dùng rất tệ khi giao dịch thất bại rất nhiều lần.

Optimistic Execution

Ở phía ngược lại, Optimistic Execution sẽ tối ưu hơn cho các ứng dụng có độ phức tạp cao và tính bất định về truy cập dữ liệu, mặc dù có nguy cơ phải thực thi lại các giao dịch.

Tuy nhiên, khi xung đột xuất hiện, hệ thống phải thực thi lại các giao dịch bị xung đột, dẫn đến một phần tài nguyên bị lãng phí và có thể giảm hiệu suất tổng thể nếu tần suất xung đột quá cao.

Khía cạnh phát triển hợp đồng thông minh

Pessimistic Execution

Đối với Pessimistic Execution, các nhà phát triển phải khai báo trước các biến trạng thái mà hợp đồng thông minh sẽ truy cập (đọc hoặc ghi) trong giao dịch. Điều này giúp blockchain dễ dàng phân tích các mẫu truy cập và tránh xung đột, nhưng cũng đòi hỏi các nhà phát triển phải hiểu rõ và quản lý kỹ các truy cập dữ liệu. Đối với những ứng dụng đơn giản và các giao dịch ít thay đổi, phương pháp này cung cấp tính ổn định và bảo mật cao hơn.

Tuy nhiên, khi các ứng dụng phức tạp hơn hoặc có nhiều trạng thái động, việc khai báo chính xác trước các biến trạng thái có thể trở nên phức tạp. Điều này có thể hạn chế sự linh hoạt của các nhà phát triển trong việc thiết kế các hợp đồng thông minh, đặc biệt là những ứng dụng yêu cầu sự tương tác phức tạp giữa nhiều tài khoản hoặc các trạng thái khác nhau.

Optimistic Execution

Optimistic Execution không yêu cầu các nhà phát triển phải khai báo trước trạng thái sẽ truy cập. Điều này giúp tăng sự linh hoạt cho việc phát triển hợp đồng thông minh, đặc biệt là trong các ứng dụng phức tạp hoặc các hợp đồng mà luồng truy cập dữ liệu có thể thay đổi tùy thuộc vào dữ liệu nhập vào.

Phương pháp này giúp giảm tải công việc quản lý trạng thái cho các nhà phát triển, cho phép họ tập trung hơn vào logic của ứng dụng thay vì phải lo lắng về các vấn đề tiềm tàng liên quan đến xung đột dữ liệu.

Tuy nhiên, rủi ro trong mô hình này là các giao dịch có thể phải thực thi lại nếu phát hiện xung đột, điều này có thể dẫn đến chi phí cao hơn trong môi trường sản xuất nếu không được kiểm soát tốt.

Một số blockchain sử dụng Parallel Execution

Hiện nay, Parallel Execution đang dần trở thành tiêu chuẩn trong thiết kế các blockchain hiệu suất cao, áp dụng ở cả Layer 1 (L1) và Layer 2 (L2). Nhiều dự án nổi bật đã triển khai Parallel Execution bao gồm: Solana, Aptos, Sui, Starknet, Monad, Sei, RISE Chain, megaETH, Heiko, Eclipse, Movement,... Các dự án này thường tiếp cận theo một trong hai hướng: Pessimistic Execution hoặc Optimistic Execution.

Chúng ta có thể phân chia chúng thành một số nhóm chính như sau:

  • EVM-based: Monad, Sei, RISE Chain, megaETH, Heiko.
  • SVM-based: Solana, Eclipse.
  • Move-based: Aptos, Sui, Movement.

Starknet là một trường hợp ngoại lệ. Ban đầu, Starknet TPU hoạt động theo phương thức tuần tự, nhưng sau bản nâng cấp gần đây, họ đã áp dụng Block-STM của Aptos (Optimistic Execution) để thực hiện song song hóa giao dịch, nâng cao đáng kể hiệu suất hệ thống.

Tìm hiểu thêm: Starknet là gì? Lộ trình phát triển dự án Starknet và STRK Token.