Tác giả: Decentralised.Co Nguồn: X, @Decentralisedco Dịch: Shan Oppa, Golden Finance< / p>
Khả năng mở rộng giao dịch luôn là chủ đề thảo luận sôi nổi trong ngành. Trong vài tuần qua, chúng tôi đã khám phá cách đơn nguyên có thể giúp cải thiện tốc độ xử lý giao dịch (TPS). Bài viết này giải thích chi tiết cách hoạt động của Monads.
TPS là chỉ số mà chúng tôi luôn chú ý tới. Chúng tôi hy vọng rằng blockchain có thể hỗ trợ TPS cao hơn để phù hợp với nhiều người dùng và ứng dụng hơn. Biểu đồ bên dưới hiển thị số TPS cho Ethereum và L2. Cho đến nay, chưa có chuỗi nào vượt qua mốc 100 TPS. Điều quan trọng cần lưu ý là TPS là thuật ngữ chung được sử dụng để đo lường khả năng mở rộng. Vì không phải tất cả các giao dịch đều phức tạp như nhau nên chỉ riêng dữ liệu TPS là không đủ chính xác. Nhưng để thuận tiện, chúng tôi vẫn coi TPS là thước đo khả năng mở rộng.
p> p>
Các cách để cải thiện TPS là gì?
Một cách tiếp cận là xây dựng một hệ thống hoàn toàn mới từ đầu, như Solana đã làm. Solana hy sinh khả năng tương thích với EVM để có được tốc độ. Nó sử dụng thực thi đa luồng thay vì thực thi đơn luồng (có thể so sánh với CPU đa lõi và CPU lõi đơn), xử lý các giao dịch song song và sử dụng cơ chế đồng thuận khác.
Cách tiếp cận thứ hai là sử dụng thực thi ngoài chuỗi và sử dụng trình tự tập trung để mở rộng quy mô Ethereum.
Cách tiếp cận thứ ba là phân tách EVM thành các thành phần riêng biệt và tối ưu hóa chúng để cải thiện khả năng mở rộng.
Monad là một chuỗi khối L1 tương thích với EVM trị giá 225 triệu đô la mới được huy động và đã chọn xây dựng EVM từ đầu thay vì sử dụng trực tiếp phiên bản hiện có. Monad áp dụng cách tiếp cận thứ ba để cải thiện khả năng mở rộng.
Dưới đây chúng ta sẽ thảo luận về một số thay đổi chính do Monads đưa ra.
Thực thi song song
Máy ảo Ethereum (EVM) thực hiện các giao dịch một cách tuần tự. Giao dịch tiếp theo phải đợi trước khi việc thực hiện giao dịch trước đó được hoàn thành. Ví dụ: hãy tưởng tượng một nền tảng dành cho nhà kho lắp ráp xe máy. Nhiều xe tải chở các bộ phận xe máy đến (mỗi xe tải chứa tất cả các bộ phận cần thiết để chế tạo 50 chiếc xe máy). Kho lắp ráp có bốn chức năng riêng biệt, mỗi chức năng được xử lý bởi một đội ngũ chuyên trách - dỡ hàng, phân loại, lắp ráp và bốc hàng.
Trong thiết lập EVM hiện tại, chỉ có một bệ và cùng một vị trí được sử dụng để bốc dỡ hàng hóa. Vì vậy khi xe tải đỗ, các bộ phận của xe máy được dỡ xuống, phân loại, lắp ráp và xếp lên cùng một xe tải. Trong khi đội phân loại làm việc thì các đội khác chờ đợi. Vì vậy, nếu bạn coi công việc của họ là các vị trí riêng biệt, thì mỗi nhóm sẽ chỉ làm việc một lần trong bốn vị trí. Điều này dẫn đến sự thiếu hiệu quả đáng kể và nhấn mạnh sự cần thiết phải có một cách tiếp cận hợp lý hơn.
Bây giờ hãy tưởng tượng bốn sân ga có khu vực chất hàng và dỡ hàng riêng biệt. Ngay cả khi đội bốc dỡ chỉ có thể xử lý một xe tải tại một thời điểm, họ cũng không cần phải đợi ba vị trí tiếp theo hoạt động. Họ có thể di chuyển thẳng đến xe tải tiếp theo và bắt đầu làm việc.
Điều tương tự cũng xảy ra với các nhóm phân loại, lắp ráp và tải hàng. Sau khi dỡ hàng xong, xe tải tiến về bãi bốc hàng chờ đội bốc xếp xếp các xe máy đã lắp ráp. Do đó, kho chỉ có một sàn và các khu vực xếp hàng sẽ thực hiện mọi hoạt động một cách tuần tự, trong khi kho có 4 sàn và các khu vực xếp hàng khác nhau có thể xử lý các nhiệm vụ song song.
Bạn có thể coi Monad như một cơ sở hạ tầng nhà kho với nhiều sàn xe tải, nhưng nó phức tạp hơn nhiều so với ví dụ này. Độ phức tạp tăng lên khi có sự phụ thuộc giữa các xe tải. Ví dụ: điều gì sẽ xảy ra nếu một chiếc xe tải không có tất cả các bộ phận cần thiết để chế tạo 50 chiếc xe máy? Các giao dịch không phải lúc nào cũng độc lập. Do đó, Đơn nguyên phải xử lý các giao dịch phụ thuộc lẫn nhau khi thực hiện chúng song song.
Làm cách nào để thực hiện việc này? Nó thực hiện một thứ gọi là thực thi song song lạc quan. Giao thức chỉ có thể thực hiện các giao dịch độc lập song song. Ví dụ: hãy xem xét 4 giao dịch trong đó số dư của Joel là 1 ETH:
Joel gửi 0,2 ETH tới Saurabh.
Sid tạo ra NFT.
Joel gửi 0,1 ETH đến Tây Đức.
Shlok mua PEPE.
Tất cả các giao dịch này được thực hiện song song, với các kết quả đang chờ xử lý được gửi lần lượt. Nếu kết quả đầu ra đang chờ xử lý xung đột với bất kỳ đầu vào ban đầu nào của giao dịch thì giao dịch sẽ được thực hiện lại. Giao dịch 2 và 4 độc lập với nhau nên kết quả đang chờ xử lý của chúng không xung đột với đầu vào từ các giao dịch khác. Nhưng 1 và 4 không độc lập.
Xin lưu ý rằng vì cả 4 giao dịch đều bắt đầu từ cùng một trạng thái ban đầu (số dư của Joel là 1 ETH), trọng tâm ở đây là số dư của Joel. Sau khi gửi 0,2 ETH, số dư của Joel trở thành 0,8 ETH. Sau khi gửi 0,1 ETH đến Tây Đức, số dư của anh ấy trở thành 0,9 ETH. Kết quả được gửi lần lượt, đảm bảo đầu ra không xung đột với bất kỳ đầu vào nào. Sau khi kết quả 1 đang chờ xử lý được gửi, số dư mới của Joel trở thành 0,8 ETH.
Đầu ra này xung đột với đầu vào của 3. Vì vậy, bây giờ hãy thực hiện lại 3 với đầu vào là 0,8 ETH. Sau khi thực hiện 3, số dư của Joel trở thành 0,7 ETH.
MonadDb
Tại thời điểm này, câu hỏi rõ ràng là, làm sao chúng ta biết chúng ta không phải thực hiện lại hầu hết các các giao dịch? Câu trả lời là việc thực hiện lại không phải là nút thắt cổ chai. Nút thắt cổ chai đang truy cập vào bộ nhớ của Ethereum. Hóa ra cách Ethereum lưu trữ trạng thái của nó trong cơ sở dữ liệu khiến việc truy cập trạng thái trở nên khó khăn (tốn thời gian và tốn kém). Đây là lúc một cải tiến khác đối với Monad phát huy tác dụng - MonadDb. Monad xây dựng cơ sở dữ liệu của mình theo cách giảm chi phí liên quan đến hoạt động đọc.
Khi một giao dịch cần được thực hiện lại, tất cả đầu vào đã được lưu vào bộ nhớ đệm So với việc truy cập trạng thái tổng thể, tốc độ truy cập của bộ đệm. bộ nhớ nhanh hơn nhiều.
Solana có 50.000 TPS trên mạng thử nghiệm, nhưng chỉ có khoảng 1.000 TPS trên mạng chính. Monad tuyên bố đã đạt được 10.000 TPS thực tế trên mạng thử nghiệm nội bộ của mình. Mặc dù điều này không phải lúc nào cũng thể hiện hiệu suất trong thế giới thực, nhưng chúng ta rất nóng lòng muốn xem Monad hoạt động như thế nào trong các ứng dụng trong thế giới thực.