PREDA - Các Máy Ảo Paralel EVM Bất Đồng Bộ Phân Rã Được

Trung cấp1/8/2025, 11:20:41 AM
PREDA (Parallel Relay Execution Distributed Architecture) là một mô hình đổi mới được thiết kế để tăng cường hiệu suất và khả năng mở rộng của blockchain. Nó đạt được sự song song hoá đầy đủ của các chức năng hợp đồng thông minh bằng cách phân rã quá trình thực thi của các hợp đồng thông minh thành nhiều bước có thể được xử lý song song. Những bước này được thực thi không đồng bộ trên các phiên bản Máy ảo Ethereum (EVM) khác nhau, từ đó tối đa hóa sự đồng thời của một bộ giao dịch.

Hãy tưởng tượng điều này: bạn đang ở trong một nhà bếp đông đúc nơi các đầu bếp phải đợi cho đến khi người kia kết thúc việc chặt rau củ trước khi người tiếp theo có thể bắt đầu nướng khoai tây. Nghe có vẻ chậm và không hiệu quả, phải không? Đó là những gì thực thi đồng bộ giống như trong lĩnh vực máy tính và blockchain: một tác vụ phải hoàn thành trước khi tác vụ tiếp theo có thể bắt đầu. Bây giờ, hãy tưởng tượng một nhà bếp được phối hợp tốt, trong đó mỗi đầu bếp làm việc trên các phần khác nhau của nhiều món ăn cùng một lúc, chuẩn bị nguyên liệu, nấu nướng và trình bày đồ ăn cùng một lúc. Đó là thực thi bất đồng bộ - các tác vụ chạy song song, tạo ra một quy trình làm việc hiệu quả hơn và nhanh hơn.

Ở ngã tư của sự phát triển blockchain, khả năng tương đồng đã trở thành một từ đầu mối vì nó có vẻ cung cấp một giải pháp để kết hợp các lớp 2 phân mảnh trên mạng Ethereum. Phương pháp này giải quyết các vấn đề về UX và DevEx tai hại, nơi một giao dịch đơn giản giữa các lớp 2 có thể tốn 1 đô và mất tới 7 ngày.Sự tham gia của Vitaliktrong những cuộc tranh luận này nhấn mạnh rằng sự đồng bộ phổ quát không nhất thiết phải là một yêu cầu để giải quyết những vấn đề này. Chúng tôi đồng tình rằng việc thực hiện dịch hiệu quả không cần phải liên quan đến sự đồng bộ, và có chi phí thực tế để xây dựng và duy trì cơ sở hạ tầng đồng bộ. Chúng tôi tin rằng không phải là sự lựa chọn nhị phân giữa mọi thứ đều đồng bộ hoặc bất đồng bộ. Cả hai có thể tồn tại cùng nhau theo cách tạm thời, với khả năng chuyển đổi hướng về phía sau.

1. Bất đồng bộ Decomposable

Trong việc đạt hiệu suất quy mô trong công nghệ blockchain, việc thực hiện song song của các hợp đồng thông minh cá nhân đã thu hút sự chú ý đáng kể. Theo truyền thống, hiệu suất của mỗi hợp đồng thông minh đã bị hạn chế bởi khả năng của một máy ảo duy nhất (EVM), ngay cả khi có sự xuất hiện của các hệ thống đa chuỗi hoặc Layer-2. Các máy ảo song song cung cấp một giải pháp hứa hẹn, cho phép giao dịch của một hợp đồng thông minh duy nhất được thực hiện đồng thời, từ đó tận dụng nhiều lõi CPU hơn để cải thiện hiệu suất.

Parallel Relay-Execution Distributed Architecture (PREDA) là mô hình lập trình phân tán, chức năng, phạm vi-hướng và mức cao được thiết kế cho các hợp đồng thông minh tổng quát có tính song song tích hợp trên các hệ thống blockchain đa EVM phân tán. Từ góc độ hệ thống, PREDA làm cho các EVM song song có thể phân rã và không đồng bộ, cho phép tính song song đầy đủ của một chức năng hợp đồng và tối đa hóa tính đồng thời của một bộ giao dịch. Điều này đảm bảo rằng tất cả các phiên bản của EVM có thể được sử dụng hầu hết, đạt hiệu suất và khả năng mở rộng tối ưu.

Trước khi đào sâu vào những chi tiết tỉ mỉ, hãy trước tiên làm rõ ý nghĩa của một số thuật ngữ chính trong bài viết này:

Tx1 = Giao dịch 1

Tx2= Giao dịch 2

Chúng tôi giả định rằng,

Việc thực hiện Tx1 cần thay đổi trạng thái A, trạng thái B, trạng thái C

Việc thực hiện Tx2 cần thay đổi trạng thái A, trạng thái D, trạng thái E

Các phương pháp song song hiện đại cho EVM¹, như những phương pháp được thực hiện bởi Sei, Aptos và Sui, cố gắng thực thi tất cả các bước trong mỗi giao dịch theo cách đồng bộ. Hãy tưởng tượng việc phóng to một cảnh giao dịch đơn lẻ, trong các hệ thống này, một giao dịch được thực thi trong một khối, bất kể tính chất của các phụ thuộc dữ liệu phân tán (tức là truy cập vào các phần khác nhau của trạng thái hợp đồng). Kết quả là, nếu bất kỳ bước nào của trạng thái hợp đồng được truy cập được chia sẻ hoặc cập nhật giữa hai giao dịch, chúng được xác định là xung đột đọc-viết hoặc viết-viết và không thể được thực thi song song, làm giảm hiệu suất và khả năng mở rộng tổng thể của hệ thống. Tình hình này trở nên tồi tệ hơn đáng kể khi hoạt động trên chuỗi tăng đột ngột.

PREDA có một phương pháp tiếp cận mới và khác biệt so với các hệ thống đã đề cập ở trên. Nó áp dụng một mô hình thực thi hợp đồng thông minh thực hiện bất đồng bộ, trong đó các bước của giao dịch được phân rã theo phụ thuộc vào quyền truy cập dữ liệu của chúng, cho phép các bước được thực thi bất đồng bộ. Mô hình thực thi PREDA dẫn đến hiệu suất cao hơn và lý thuyết về khả năng mở rộng vô hạn. Chúng tôi sẽ đi sâu hơn vào cách PREDA đạt được điều này và trình bày kết quả thử nghiệm để chứng minh khẳng định này.

2. Đánh giá hiệu suất

Các giao dịch chuyển token ETH lịch sử được tái hiện để đánh giá Sei (V2), Aptos, Sui và PREDA về khả năng thông qua và khả năng mở rộng. Lưu ý rằng đánh giá của chúng tôi sử dụng các giao dịch chuyển token ETH lịch sử trong thế giới thực thay vì tạo ra một tập hợp các giao dịch chuyển ngẫu nhiên giữa các cặp địa chỉ. Các giao dịch ngẫu nhiên sẽ tạo ra kết quả thử nghiệm vượt quá hiệu suất trong các trường hợp thực tế vì các giao dịch trong thế giới thực liên quan một cách nào đó, tạo ra rất nhiều phụ thuộc dữ liệu.

Các thiết lập thử nghiệm như sau:

Sự so sánh trong Hình 1 nhấn mạnh sự cần thiết của việc áp dụng mô hình lập trình PREDA để đạt được cải tiến đáng kể về công suất. PREDA thể hiện TPS cao hơn 3,3 lần — 28,2 lần so với Aptos cho các giao dịch chuyển khoản lịch sử thực sự trên mạng Ethereum.

Vì những hệ thống này được triển khai bằng các ngôn ngữ khác nhau (bao gồm Go, Rust và C++) và các máy ảo khác nhau, chúng tôi đánh giá tính mở rộng của các hệ thống khác nhau dựa trên tốc độ tăng tương đối so với cơ sở sử dụng một EVM duy nhất, để loại trừ tác động của các triển khai hệ thống khác nhau.

Hình 1. Số lượng tuyệt đối thông qua TPS của các hợp đồng thông minh chuyển mã thông báo tương đương được thực thi trên Sei, Aptos, Sui và PREDA.

Hình 2. Tăng tốc tương đối cho Aptos, Sui, Sei và PREDA so với cơ sở của họ

3. Mô hình lập trình

Để giúp hiểu PREDA cho bất kỳ ai quen thuộc với EVM song song, hiện có hai loại cơ chế song song điển hình trong các hệ thống blockchain EVM song song ngày nay¹.

  • Tối ưu hóa song song, bao gồm Aptos, Sei (V2), và Monad, bỏ qua sự phụ thuộc trạng thái giữa các giao dịch, thực hiện và xác minh giao dịch một cách song song, và quay lại một giao dịch để thực hiện lại trong trường hợp xung đột.
  • Pessimistic Parallelization, bao gồm Solana (Sealevel), Sui và Sei (V1), kiểm tra tình trạng phụ thuộc của mỗi giao dịch trước khi thực thi, phân tích tình trạng phụ thuộc của chúng và chỉ thực thi đồng thời những giao dịch đó mà không có xung đột.

Cả hai phương pháp đều tuân theo Kiến trúc Chia sẻ-mọi thứ và xem giao dịch như một thể trong kiểm soát đồng thời; tất cả các bước (ví dụ, truy cập các trạng thái hợp đồng khác nhau) không thể phân rã và phải được thực hiện đồng bộ. Mô hình PREDA đề xuất @devteam_48518/crystality-the-parallel-evm-model-implementing-shared-nothing-architecture-8d82fc0a836a”>Kiến trúc Độc lập không chia sẻ để phá vỡ sự phụ thuộc trạng thái và đảm bảo các phiên bản EVM khác nhau sẽ không bao giờ truy cập vào cùng một phần của trạng thái hợp đồng, hoàn toàn tránh xung đột ghi.

Ở cốt lõi của nó, PREDA giới thiệu các Phạm vi Hợp đồng có thể Lập trình để phân tách trạng thái hợp đồng thành các phần không chồng chéo, có thể song song với độ tinh vi, và Buồng tiếp điểm Chức năng Bất đồng bộ để mô tả luồng thực thi chuyển đổi qua các EVM khác nhau.

Để giải thích thêm về những khái niệm này, trong PREDA, một chức năng hợp đồng được phân rã thành nhiều bước được sắp xếp theo thứ tự, mỗi bước phụ thuộc vào một phần của trạng thái có thể song song duy nhất mà không xung đột. Giao dịch được khởi tạo bởi người dùng được định hướng đầu tiên đến một EVM giữ các trạng thái của địa chỉ người dùng một cách xác định, chẳng hạn như bằng cách sử dụng phương pháp ánh xạ địa chỉ người dùng đến EVM. Trong quá trình thực thi giao dịch, luồng thực thi có thể chuyển từ một EVM sang EVM khác nắm giữ các trạng thái hợp đồng mong muốn bằng cách phát hành một giao dịch chuyển tiếp. Như vậy, PREDA giữ cho dữ liệu tĩnh trong khi di chuyển luồng thực thi xung quanh các EVM theo phụ thuộc dữ liệu.

Tại mỗi EVM, các giao dịch do người dùng khởi tạo và giao dịch relay được sắp xếp và thực hiện theo thứ tự, trong khi các giao dịch trên các EVM khác được thực hiện đồng thời vì không có phụ thuộc dữ liệu giữa các EVM. Cơ chế này tránh được việc thực hiện lại liên quan đến xung đột trong các phương pháp dựa trên song song hóa lạc quan và cần thiết cho phân tích phụ thuộc trạng thái thời gian chạy và chi phí overhead khóa/mở khóa trong các phương pháp song song hóa bi quan. Do đó, PREDA cung cấp một kiến trúc song song và không chia sẻ cho các hệ thống blockchain, khác với kiến trúc tuần tự và chia sẻ tất cả trong cả Solidity và Move, có thể gây ra chi phí overhead kiểm soát song song đáng kể.

4. Ngôn ngữ

Chúng tôi đã triển khai mô hình lập trình PREDA dưới dạng ngôn ngữ giống Algo, tương tự như C/C++ và Javascript. Dưới đây là một hàm chuyển token đơn giản trong cả Solidity và ngôn ngữ PREDA.

Solidity code trong Hình (a) có một trạng thái hợp đồng (balances) đại diện cho số dư địa chỉ và một hàm chuyển giao để chuyển một số lượng token cụ thể từ người gửi giao dịch (msg.sender) đến người nhận (payee).

Trong việc triển khai PREDA như hình (b), từ khóa @addressđịnh nghĩa phạm vi hợp đồng có thể lập trình, trong đó trạng thái hợp đồng thuộc về một biến hợp đồng (số dư) được phân chia theo địa chỉ, và phân tán và quản lý bởi EVMs. Từ khóa relay xác định một relay chức năng bất đồng bộ.

Có ba phần trong việc thực hiện PREDA. Trong phần (1), từ khóa @address Xác định số dư của người dùng, cung cấp mô tả trạng thái chi tiết, có thể tách rời. Số dư biến phạm vi địa chỉ có một phiên bản duy nhất cho mỗi địa chỉ người dùng. Các trường hợp của các địa chỉ người dùng khác nhau được truy cập và duy trì bởi các EVM khác nhau không chồng chéo. Hàm chuyển khoản được định nghĩa trong cùng một phạm vi địa chỉ trong phần (2), được gọi bằng cách cung cấp địa chỉ của người thanh toán làm phạm vi đích khi người dùng khởi tạo giao dịch chuyển khoản. Trong phần (3), để tiến hành gửi tiền cho người nhận thanh toán sau khi rút tiền thành công, một chuyển tiếp được bắt đầu với địa chỉ của người nhận thanh toán làm phạm vi mục tiêu, thêm tiền vào số dư của người nhận thanh toán và được thực hiện bởi EVM lưu trữ ví dụ số dư của địa chỉ người nhận thanh toán.

Quy trình thực hiện giao dịch chuyển token trong PREDA

Hình trên cho thấy quy trình thực thi giao dịch chuyển token trong hệ thống EVM song song của PREDA. Bob khởi tạo một giao dịch để gọi hàm chuyển, giao dịch này sẽ được chuyển đến EVM chứa số dư của Bob và thực hiện rút tiền tại đó. Sau đó, một giao dịch tiếp sẽ được phát hành và chuyển đến EVM chứa số dư của Alice và thực hiện khoản nạp tiền. Song song hóa xảy ra theo hai cách:

  1. Giữa các Giao dịch được khởi tạo bởi Người dùng: Do các trạng thái được phân vùng theo địa chỉ là không chồng chéo, các giao dịch được khởi tạo bởi người dùng có thể được thực thi đồng thời mà không xảy ra xung đột. Ví dụ, trong hợp đồng chuyển token cập nhật trạng thái của người thanh toán theo mỗi địa chỉ, các giao dịch được khởi tạo bởi người dùng khác nhau có thể được thực hiện song song trên các Máy ảo Ethereum.
  2. Với Giao dịch chuyển tiếp: Trong trường hợp Bob chuyển mã thông báo cho Alice và Carol, giao dịch chuyển tiếp tiền gửi cho Alice (từ chuyển Bob sang Alice) có thể được thực hiện đồng thời với giao dịch do người dùng khởi tạo để rút tiền từ Bob (trong chuyển Bob sang Carol) và tiền gửi cho Carol. Chỉ với khả năng phân hủy của mô hình PREDA, sự song song vốn có trong hợp đồng thông minh mới có thể được tiếp xúc với hệ thống blockchain cơ bản, cho phép các giao dịch do người dùng khởi tạo và chuyển tiếp được xử lý theo cách đường ống, tạo điều kiện thực hiện song song.

Tiếp theo và Vượt qua

PREDA đánh dấu một tiến bộ lớn trong hiệu suất blockchain và, quan trọng hơn, tính mở rộng. Bằng cách triển khai khả năng phân rã bất đồng bộ, nó cho phép xử lý giao dịch hiệu quả mà không gặp các hạn chế của các mô hình song song đồng bộ truyền thống. Phương pháp này phân rã giao dịch thành các giao dịch con theo phụ thuộc dữ liệu, cho phép thay đổi trạng thái đồng thời và hoàn toàn tránh xung đột ghi.

Sự tổng quát của PREDA không chỉ giới hạn trong việc sử dụng @addressđể phân chia trạng thái hợp đồng theo địa chỉ. Nó cho phép tùy chỉnh các loại phân vùng với từ khóa như@type, nơi kiểu có thể là bất kỳ tên phần tử Solidity nào như @uint. Ngoài ra, PREDA hỗ trợ trạng thái hợp đồng không phân vùng với @globalĐảm bảo rằng mỗi EVM duy trì các giá trị nhất định cho các trạng thái như vậy. Sự linh hoạt trong phân vùng trạng thái này nâng cao tính linh hoạt và hiệu quả của mô hình trên các hợp đồng thông minh đa dạng.

Các thí nghiệm của chúng tôi cho thấy PREDA vượt trội hơn đáng kể so với các phương pháp song song khác, đạt được thời gian xử lý và khả năng mở rộng cao hơn. Nhóm PREDA sẽ viết bài tiếp theo để sâu hơn vào các phát hiện của chúng tôi, cung cấp sự so sánh toàn diện hơn với các loại hợp đồng thông minh khác nhau và phân tích chi tiết về mô hình và ngôn ngữ lập trình PREDA. Hãy tiếp tục theo dõi để khám phá chi tiết này.

Tuyên bố từ chối trách nhiệm:

  1. Bài viết này là một bài đăng lại từ [Trung bình]. Bản quyền thuộc về tác giả gốc, [PREDA Parallel VMs]. Nếu bạn có bất kỳ ý kiến ​​nào về bài đăng này, vui lòng liên hệgate Learn Team. Đội ngũ sẽ giải quyết các vấn đề của bạn một cách nhanh chóng theo các quy trình liên quan.
  2. Miễn trách nhiệm về trách nhiệm: Quan điểm và ý kiến được thể hiện trong bài viết này chỉ thuộc về tác giả và không đại diện cho lời khuyên đầu tư.
  3. Nhóm Gate Learn đã dịch bài viết sang các ngôn ngữ khác. Việc sao chép, phân phối hoặc đạo văn các bài viết đã dịch là không được phép trừ khi được đề cập.

PREDA - Các Máy Ảo Paralel EVM Bất Đồng Bộ Phân Rã Được

Trung cấp1/8/2025, 11:20:41 AM
PREDA (Parallel Relay Execution Distributed Architecture) là một mô hình đổi mới được thiết kế để tăng cường hiệu suất và khả năng mở rộng của blockchain. Nó đạt được sự song song hoá đầy đủ của các chức năng hợp đồng thông minh bằng cách phân rã quá trình thực thi của các hợp đồng thông minh thành nhiều bước có thể được xử lý song song. Những bước này được thực thi không đồng bộ trên các phiên bản Máy ảo Ethereum (EVM) khác nhau, từ đó tối đa hóa sự đồng thời của một bộ giao dịch.

Hãy tưởng tượng điều này: bạn đang ở trong một nhà bếp đông đúc nơi các đầu bếp phải đợi cho đến khi người kia kết thúc việc chặt rau củ trước khi người tiếp theo có thể bắt đầu nướng khoai tây. Nghe có vẻ chậm và không hiệu quả, phải không? Đó là những gì thực thi đồng bộ giống như trong lĩnh vực máy tính và blockchain: một tác vụ phải hoàn thành trước khi tác vụ tiếp theo có thể bắt đầu. Bây giờ, hãy tưởng tượng một nhà bếp được phối hợp tốt, trong đó mỗi đầu bếp làm việc trên các phần khác nhau của nhiều món ăn cùng một lúc, chuẩn bị nguyên liệu, nấu nướng và trình bày đồ ăn cùng một lúc. Đó là thực thi bất đồng bộ - các tác vụ chạy song song, tạo ra một quy trình làm việc hiệu quả hơn và nhanh hơn.

Ở ngã tư của sự phát triển blockchain, khả năng tương đồng đã trở thành một từ đầu mối vì nó có vẻ cung cấp một giải pháp để kết hợp các lớp 2 phân mảnh trên mạng Ethereum. Phương pháp này giải quyết các vấn đề về UX và DevEx tai hại, nơi một giao dịch đơn giản giữa các lớp 2 có thể tốn 1 đô và mất tới 7 ngày.Sự tham gia của Vitaliktrong những cuộc tranh luận này nhấn mạnh rằng sự đồng bộ phổ quát không nhất thiết phải là một yêu cầu để giải quyết những vấn đề này. Chúng tôi đồng tình rằng việc thực hiện dịch hiệu quả không cần phải liên quan đến sự đồng bộ, và có chi phí thực tế để xây dựng và duy trì cơ sở hạ tầng đồng bộ. Chúng tôi tin rằng không phải là sự lựa chọn nhị phân giữa mọi thứ đều đồng bộ hoặc bất đồng bộ. Cả hai có thể tồn tại cùng nhau theo cách tạm thời, với khả năng chuyển đổi hướng về phía sau.

1. Bất đồng bộ Decomposable

Trong việc đạt hiệu suất quy mô trong công nghệ blockchain, việc thực hiện song song của các hợp đồng thông minh cá nhân đã thu hút sự chú ý đáng kể. Theo truyền thống, hiệu suất của mỗi hợp đồng thông minh đã bị hạn chế bởi khả năng của một máy ảo duy nhất (EVM), ngay cả khi có sự xuất hiện của các hệ thống đa chuỗi hoặc Layer-2. Các máy ảo song song cung cấp một giải pháp hứa hẹn, cho phép giao dịch của một hợp đồng thông minh duy nhất được thực hiện đồng thời, từ đó tận dụng nhiều lõi CPU hơn để cải thiện hiệu suất.

Parallel Relay-Execution Distributed Architecture (PREDA) là mô hình lập trình phân tán, chức năng, phạm vi-hướng và mức cao được thiết kế cho các hợp đồng thông minh tổng quát có tính song song tích hợp trên các hệ thống blockchain đa EVM phân tán. Từ góc độ hệ thống, PREDA làm cho các EVM song song có thể phân rã và không đồng bộ, cho phép tính song song đầy đủ của một chức năng hợp đồng và tối đa hóa tính đồng thời của một bộ giao dịch. Điều này đảm bảo rằng tất cả các phiên bản của EVM có thể được sử dụng hầu hết, đạt hiệu suất và khả năng mở rộng tối ưu.

Trước khi đào sâu vào những chi tiết tỉ mỉ, hãy trước tiên làm rõ ý nghĩa của một số thuật ngữ chính trong bài viết này:

Tx1 = Giao dịch 1

Tx2= Giao dịch 2

Chúng tôi giả định rằng,

Việc thực hiện Tx1 cần thay đổi trạng thái A, trạng thái B, trạng thái C

Việc thực hiện Tx2 cần thay đổi trạng thái A, trạng thái D, trạng thái E

Các phương pháp song song hiện đại cho EVM¹, như những phương pháp được thực hiện bởi Sei, Aptos và Sui, cố gắng thực thi tất cả các bước trong mỗi giao dịch theo cách đồng bộ. Hãy tưởng tượng việc phóng to một cảnh giao dịch đơn lẻ, trong các hệ thống này, một giao dịch được thực thi trong một khối, bất kể tính chất của các phụ thuộc dữ liệu phân tán (tức là truy cập vào các phần khác nhau của trạng thái hợp đồng). Kết quả là, nếu bất kỳ bước nào của trạng thái hợp đồng được truy cập được chia sẻ hoặc cập nhật giữa hai giao dịch, chúng được xác định là xung đột đọc-viết hoặc viết-viết và không thể được thực thi song song, làm giảm hiệu suất và khả năng mở rộng tổng thể của hệ thống. Tình hình này trở nên tồi tệ hơn đáng kể khi hoạt động trên chuỗi tăng đột ngột.

PREDA có một phương pháp tiếp cận mới và khác biệt so với các hệ thống đã đề cập ở trên. Nó áp dụng một mô hình thực thi hợp đồng thông minh thực hiện bất đồng bộ, trong đó các bước của giao dịch được phân rã theo phụ thuộc vào quyền truy cập dữ liệu của chúng, cho phép các bước được thực thi bất đồng bộ. Mô hình thực thi PREDA dẫn đến hiệu suất cao hơn và lý thuyết về khả năng mở rộng vô hạn. Chúng tôi sẽ đi sâu hơn vào cách PREDA đạt được điều này và trình bày kết quả thử nghiệm để chứng minh khẳng định này.

2. Đánh giá hiệu suất

Các giao dịch chuyển token ETH lịch sử được tái hiện để đánh giá Sei (V2), Aptos, Sui và PREDA về khả năng thông qua và khả năng mở rộng. Lưu ý rằng đánh giá của chúng tôi sử dụng các giao dịch chuyển token ETH lịch sử trong thế giới thực thay vì tạo ra một tập hợp các giao dịch chuyển ngẫu nhiên giữa các cặp địa chỉ. Các giao dịch ngẫu nhiên sẽ tạo ra kết quả thử nghiệm vượt quá hiệu suất trong các trường hợp thực tế vì các giao dịch trong thế giới thực liên quan một cách nào đó, tạo ra rất nhiều phụ thuộc dữ liệu.

Các thiết lập thử nghiệm như sau:

Sự so sánh trong Hình 1 nhấn mạnh sự cần thiết của việc áp dụng mô hình lập trình PREDA để đạt được cải tiến đáng kể về công suất. PREDA thể hiện TPS cao hơn 3,3 lần — 28,2 lần so với Aptos cho các giao dịch chuyển khoản lịch sử thực sự trên mạng Ethereum.

Vì những hệ thống này được triển khai bằng các ngôn ngữ khác nhau (bao gồm Go, Rust và C++) và các máy ảo khác nhau, chúng tôi đánh giá tính mở rộng của các hệ thống khác nhau dựa trên tốc độ tăng tương đối so với cơ sở sử dụng một EVM duy nhất, để loại trừ tác động của các triển khai hệ thống khác nhau.

Hình 1. Số lượng tuyệt đối thông qua TPS của các hợp đồng thông minh chuyển mã thông báo tương đương được thực thi trên Sei, Aptos, Sui và PREDA.

Hình 2. Tăng tốc tương đối cho Aptos, Sui, Sei và PREDA so với cơ sở của họ

3. Mô hình lập trình

Để giúp hiểu PREDA cho bất kỳ ai quen thuộc với EVM song song, hiện có hai loại cơ chế song song điển hình trong các hệ thống blockchain EVM song song ngày nay¹.

  • Tối ưu hóa song song, bao gồm Aptos, Sei (V2), và Monad, bỏ qua sự phụ thuộc trạng thái giữa các giao dịch, thực hiện và xác minh giao dịch một cách song song, và quay lại một giao dịch để thực hiện lại trong trường hợp xung đột.
  • Pessimistic Parallelization, bao gồm Solana (Sealevel), Sui và Sei (V1), kiểm tra tình trạng phụ thuộc của mỗi giao dịch trước khi thực thi, phân tích tình trạng phụ thuộc của chúng và chỉ thực thi đồng thời những giao dịch đó mà không có xung đột.

Cả hai phương pháp đều tuân theo Kiến trúc Chia sẻ-mọi thứ và xem giao dịch như một thể trong kiểm soát đồng thời; tất cả các bước (ví dụ, truy cập các trạng thái hợp đồng khác nhau) không thể phân rã và phải được thực hiện đồng bộ. Mô hình PREDA đề xuất @devteam_48518/crystality-the-parallel-evm-model-implementing-shared-nothing-architecture-8d82fc0a836a”>Kiến trúc Độc lập không chia sẻ để phá vỡ sự phụ thuộc trạng thái và đảm bảo các phiên bản EVM khác nhau sẽ không bao giờ truy cập vào cùng một phần của trạng thái hợp đồng, hoàn toàn tránh xung đột ghi.

Ở cốt lõi của nó, PREDA giới thiệu các Phạm vi Hợp đồng có thể Lập trình để phân tách trạng thái hợp đồng thành các phần không chồng chéo, có thể song song với độ tinh vi, và Buồng tiếp điểm Chức năng Bất đồng bộ để mô tả luồng thực thi chuyển đổi qua các EVM khác nhau.

Để giải thích thêm về những khái niệm này, trong PREDA, một chức năng hợp đồng được phân rã thành nhiều bước được sắp xếp theo thứ tự, mỗi bước phụ thuộc vào một phần của trạng thái có thể song song duy nhất mà không xung đột. Giao dịch được khởi tạo bởi người dùng được định hướng đầu tiên đến một EVM giữ các trạng thái của địa chỉ người dùng một cách xác định, chẳng hạn như bằng cách sử dụng phương pháp ánh xạ địa chỉ người dùng đến EVM. Trong quá trình thực thi giao dịch, luồng thực thi có thể chuyển từ một EVM sang EVM khác nắm giữ các trạng thái hợp đồng mong muốn bằng cách phát hành một giao dịch chuyển tiếp. Như vậy, PREDA giữ cho dữ liệu tĩnh trong khi di chuyển luồng thực thi xung quanh các EVM theo phụ thuộc dữ liệu.

Tại mỗi EVM, các giao dịch do người dùng khởi tạo và giao dịch relay được sắp xếp và thực hiện theo thứ tự, trong khi các giao dịch trên các EVM khác được thực hiện đồng thời vì không có phụ thuộc dữ liệu giữa các EVM. Cơ chế này tránh được việc thực hiện lại liên quan đến xung đột trong các phương pháp dựa trên song song hóa lạc quan và cần thiết cho phân tích phụ thuộc trạng thái thời gian chạy và chi phí overhead khóa/mở khóa trong các phương pháp song song hóa bi quan. Do đó, PREDA cung cấp một kiến trúc song song và không chia sẻ cho các hệ thống blockchain, khác với kiến trúc tuần tự và chia sẻ tất cả trong cả Solidity và Move, có thể gây ra chi phí overhead kiểm soát song song đáng kể.

4. Ngôn ngữ

Chúng tôi đã triển khai mô hình lập trình PREDA dưới dạng ngôn ngữ giống Algo, tương tự như C/C++ và Javascript. Dưới đây là một hàm chuyển token đơn giản trong cả Solidity và ngôn ngữ PREDA.

Solidity code trong Hình (a) có một trạng thái hợp đồng (balances) đại diện cho số dư địa chỉ và một hàm chuyển giao để chuyển một số lượng token cụ thể từ người gửi giao dịch (msg.sender) đến người nhận (payee).

Trong việc triển khai PREDA như hình (b), từ khóa @addressđịnh nghĩa phạm vi hợp đồng có thể lập trình, trong đó trạng thái hợp đồng thuộc về một biến hợp đồng (số dư) được phân chia theo địa chỉ, và phân tán và quản lý bởi EVMs. Từ khóa relay xác định một relay chức năng bất đồng bộ.

Có ba phần trong việc thực hiện PREDA. Trong phần (1), từ khóa @address Xác định số dư của người dùng, cung cấp mô tả trạng thái chi tiết, có thể tách rời. Số dư biến phạm vi địa chỉ có một phiên bản duy nhất cho mỗi địa chỉ người dùng. Các trường hợp của các địa chỉ người dùng khác nhau được truy cập và duy trì bởi các EVM khác nhau không chồng chéo. Hàm chuyển khoản được định nghĩa trong cùng một phạm vi địa chỉ trong phần (2), được gọi bằng cách cung cấp địa chỉ của người thanh toán làm phạm vi đích khi người dùng khởi tạo giao dịch chuyển khoản. Trong phần (3), để tiến hành gửi tiền cho người nhận thanh toán sau khi rút tiền thành công, một chuyển tiếp được bắt đầu với địa chỉ của người nhận thanh toán làm phạm vi mục tiêu, thêm tiền vào số dư của người nhận thanh toán và được thực hiện bởi EVM lưu trữ ví dụ số dư của địa chỉ người nhận thanh toán.

Quy trình thực hiện giao dịch chuyển token trong PREDA

Hình trên cho thấy quy trình thực thi giao dịch chuyển token trong hệ thống EVM song song của PREDA. Bob khởi tạo một giao dịch để gọi hàm chuyển, giao dịch này sẽ được chuyển đến EVM chứa số dư của Bob và thực hiện rút tiền tại đó. Sau đó, một giao dịch tiếp sẽ được phát hành và chuyển đến EVM chứa số dư của Alice và thực hiện khoản nạp tiền. Song song hóa xảy ra theo hai cách:

  1. Giữa các Giao dịch được khởi tạo bởi Người dùng: Do các trạng thái được phân vùng theo địa chỉ là không chồng chéo, các giao dịch được khởi tạo bởi người dùng có thể được thực thi đồng thời mà không xảy ra xung đột. Ví dụ, trong hợp đồng chuyển token cập nhật trạng thái của người thanh toán theo mỗi địa chỉ, các giao dịch được khởi tạo bởi người dùng khác nhau có thể được thực hiện song song trên các Máy ảo Ethereum.
  2. Với Giao dịch chuyển tiếp: Trong trường hợp Bob chuyển mã thông báo cho Alice và Carol, giao dịch chuyển tiếp tiền gửi cho Alice (từ chuyển Bob sang Alice) có thể được thực hiện đồng thời với giao dịch do người dùng khởi tạo để rút tiền từ Bob (trong chuyển Bob sang Carol) và tiền gửi cho Carol. Chỉ với khả năng phân hủy của mô hình PREDA, sự song song vốn có trong hợp đồng thông minh mới có thể được tiếp xúc với hệ thống blockchain cơ bản, cho phép các giao dịch do người dùng khởi tạo và chuyển tiếp được xử lý theo cách đường ống, tạo điều kiện thực hiện song song.

Tiếp theo và Vượt qua

PREDA đánh dấu một tiến bộ lớn trong hiệu suất blockchain và, quan trọng hơn, tính mở rộng. Bằng cách triển khai khả năng phân rã bất đồng bộ, nó cho phép xử lý giao dịch hiệu quả mà không gặp các hạn chế của các mô hình song song đồng bộ truyền thống. Phương pháp này phân rã giao dịch thành các giao dịch con theo phụ thuộc dữ liệu, cho phép thay đổi trạng thái đồng thời và hoàn toàn tránh xung đột ghi.

Sự tổng quát của PREDA không chỉ giới hạn trong việc sử dụng @addressđể phân chia trạng thái hợp đồng theo địa chỉ. Nó cho phép tùy chỉnh các loại phân vùng với từ khóa như@type, nơi kiểu có thể là bất kỳ tên phần tử Solidity nào như @uint. Ngoài ra, PREDA hỗ trợ trạng thái hợp đồng không phân vùng với @globalĐảm bảo rằng mỗi EVM duy trì các giá trị nhất định cho các trạng thái như vậy. Sự linh hoạt trong phân vùng trạng thái này nâng cao tính linh hoạt và hiệu quả của mô hình trên các hợp đồng thông minh đa dạng.

Các thí nghiệm của chúng tôi cho thấy PREDA vượt trội hơn đáng kể so với các phương pháp song song khác, đạt được thời gian xử lý và khả năng mở rộng cao hơn. Nhóm PREDA sẽ viết bài tiếp theo để sâu hơn vào các phát hiện của chúng tôi, cung cấp sự so sánh toàn diện hơn với các loại hợp đồng thông minh khác nhau và phân tích chi tiết về mô hình và ngôn ngữ lập trình PREDA. Hãy tiếp tục theo dõi để khám phá chi tiết này.

Tuyên bố từ chối trách nhiệm:

  1. Bài viết này là một bài đăng lại từ [Trung bình]. Bản quyền thuộc về tác giả gốc, [PREDA Parallel VMs]. Nếu bạn có bất kỳ ý kiến ​​nào về bài đăng này, vui lòng liên hệgate Learn Team. Đội ngũ sẽ giải quyết các vấn đề của bạn một cách nhanh chóng theo các quy trình liên quan.
  2. Miễn trách nhiệm về trách nhiệm: Quan điểm và ý kiến được thể hiện trong bài viết này chỉ thuộc về tác giả và không đại diện cho lời khuyên đầu tư.
  3. Nhóm Gate Learn đã dịch bài viết sang các ngôn ngữ khác. Việc sao chép, phân phối hoặc đạo văn các bài viết đã dịch là không được phép trừ khi được đề cập.
เริ่มตอนนี้
สมัครและรับรางวัล
$100