/ BLOG

Thực thi song song (Parallel Execution) và tiềm năng của công nghệ này trong tương lai

Vấn đề của EVM  EVM (Ethereum Virtual Machine) là nơi được tạo ra để thực thi các smart contract trên mạng lưới Ethereum. Được tích hợp sâu trong cơ sở

arrow white

Back

Jan 23, 2024

Written by

Logo

Thuynguyen

facebook instagram instagram

Vấn đề của EVM 

EVM (Ethereum Virtual Machine) là nơi được tạo ra để thực thi các smart contract trên mạng lưới Ethereum. Được tích hợp sâu trong cơ sở hạ tầng của Ethereum, EVM chịu trách nhiệm cho việc xử lý và thực thi các ứng dụng phi tập trung (dApps) được xây dựng trên nền tảng này.

Nói một cách đơn giản, EVM có thể được hình dung như một máy tính ảo chạy trên nhiều node trong mạng Ethereum. Môi trường này có khả năng thực hiện các chương trình thông minh, được viết bằng ngôn ngữ Solidity hoặc các ngôn ngữ lập trình khác tương thích với EVM. Mỗi khi có giao dịch được thực hiện trên blockchain Ethereum, nó sẽ được gửi đến EVM để thực thi smart contract liên quan. Kết quả của giao dịch đó sau đó được lưu trữ và xác nhận trên toàn bộ mạng lưới Ethereum.

Tuy nhiên, vấn đề của các EVM chính là việc thực hiện các giao dịch tuần tự và các EVM chỉ có thể thực hiện giao dịch 1 lần duy nhất.

Chính vì vậy, việc áp dụng một trình thực thi giao dịch song song đối với máy ảo Ethereum trở nên cần thiết, và đó là lý do Parallel Execution ra đời.

Parallel Execution là gì?

Thực thi song song (Parallel Execution) là một phương pháp mà các hệ thống blockchain sử dụng để xử lý các giao dịch độc lập với nhau và thực hiện chúng đồng thời trong cùng một khoảng thời gian. Điều này giúp cải thiện hiệu suất của blockchain một cách hiệu quả, đồng thời mở rộng khả năng mở rộng của mạng lưới.

Parallel Execution ra đời nhằm đối phó với nhược điểm của Sequential Execution. Đây là quá trình xử lý đồng thời nhiều giao dịch, giải quyết các vấn đề mở rộng, giảm phí gas và tiết kiệm năng lượng so với việc thực hiện tuần tự từng giao dịch trên các blockchain truyền thống như Bitcoin và Ethereum. Solana, một blockchain Layer 1 đang áp dụng thực hiện Parallel Execution. Nền tảng blockchain này cho phép thực hiện các giao dịch đồng thời trên nhiều node, giảm đáng kể thời gian xác nhận giao dịch và đạt được tốc độ giao dịch ấn tượng, vượt trội so với nhiều blockchain khác.

Việc sử dụng Parallel Execution thông thường sẽ nhanh hơn so với tính toán tuần tự vì:

  • Phần cứng với nhiều lõi thì dễ xây dựng hơn và yêu cầu ít năng lượng hơn để vận hành so với một lõi duy nhất nhanh hơn.
  • Các tiến trình trong một chương trình thường có thể chạy song song.
  • Trước hết, việc tạo ra và vận hành một bộ xử lý lõi duy nhất nhanh là khó khăn và tốn kém hơn nhiều so với việc có nhiều lõi hơn. Một lõi duy nhất nhanh sẽ tiêu tốn nhiều năng lượng hơn vì nó yêu cầu điện áp cao hơn và gặp các vấn đề khác như hạn chế với bộ nhớ cache.

Ưu điểm của thực thi song song

Thực thi song song khi được áp dụng vào các blockchain nền tảng sẽ mang lại một số những ưu điểm như sau:

  • Khả năng mở rộng: Thực thi song song cho phép nhiều giao dịch trên Blockchain được xử lý tại cùng một thời điểm giúp cho khả năng mở rộng của mạng lưới được tăng theo cấp số nhân. 
  • Sự minh bạch: Thực thi song song vẫn giữ nguyên được đặc tính cơ bản của Blockchain, các giao dịch được xử lý một cách công khai và minh bạch.

Nhược điểm của thực thi song song

Bên cạnh những ưu điểm thì thực thi song song cũng tồn tại nhiều những vấn đề và nhược điểm tiềm ẩn như:

  • Sự phức tạp: Việc thực hiện nhiều giao dịch cùng một lúc khiến các node phải liên tục update thông tin mới nhất hình dung đơn giản là khi giao dịch nhanh hơn thì các node cũng phải update nhanh hơn theo cấp số nhân.
  • Phi tập trung: Thực thi song song phải đi kèm với một lượng node lớn hơn nhiều so với các blockchain sử dụng Sequential Execution để giữ cho mạng lưới được phi tập trung.

Những blockchain đang sử dụng Parallel Execution

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.

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 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.

Sui

Sui có cách tiếp cận thực thi song song tương đồng với Solana. Solana chia tránh thái blockchain thành nhiều chunk, mỗi chunk được phân phối cho những node khác nhau để xử lý gia dịch trên node đó và node phải có trách nhiệm đối với chunk của mình.

Tuy nhiên, sự tương đồng ở chỗ Solana sẽ coi mỗi đơn vị của bộ nhớ máy tính là một Account và khi một giao dịch bị sửa bởi một Account nào đó thì nó phải lưu lại thông tin là nó từng bị sửa đổi bởi Account nào trong khi đó Aptos không yêu cầu các các giao dịch phải chỉ ra điều này. Thông qua cách nào Sui có thể xác định được tính phụ thuộc giữa các giao dịch.

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. 

Kết luận

Parallel Execution là một kỹ thuật tiên tiến được sử dụng trong một số hệ thống blockchain hiện đại như Solana, Sui và Aptos để tăng cường hiệu suất mạng. Mặc dù Parallel Execution đã mang lại những lợi ích đáng kể trong việc cải thiện hiệu suất mạng lưới blockchain, nhưng vẫn còn tồn tại những thách thức cần giải quyết. Điểm yếu lớn nhất của hệ thống này nằm ở khả năng phân loại chính xác các giao dịch độc lập để chúng có thể được xử lý đồng thời mà không gây ra xung đột. Bên cạnh đó, vấn đề về tính tập trung của mạng lưới cũng là một rào cản đối với sự chấp nhận rộng rãi của Parallel Execution. Tính tập trung này có thể ảnh hưởng đến an toàn và phi tập trung của hệ thống blockchain.

Trong tương lai, nếu các dự án blockchain mới có thể khắc phục thành công những thách thức này, chúng ta có thể kỳ vọng vào sự chuyển đổi từ Sequential Execution sang Parallel Execution. Điều này không chỉ giúp tăng cường hiệu suất mà còn góp phần vào sự phát triển bền vững của công nghệ blockchain.