Mô hình eUTXO của Cardano cung cấp một môi trường an toàn và linh hoạt để xử lý nhiều hoạt động mà không gặp lỗi hệ thống

Cardano là một blockchain dựa trên UTXO, sử dụng một mô hình lập trình khác cho các ứng dụng phi tập trung (DApps) với các blockchain dựa trên mô hình tài khoản khác như Ethereum. Cụ thể là Cardano sử dụng mô hình Đầu ra Giao dịch Chưa Được Chi tiêu Mở rộng (eUTXO) được giới thiệu bởi bản nâng cấp Alonzo. eUTXO cung cấp khả năng bảo mật cao hơn cho phép dự đoán chi phí thực hiện hợp đồng thông minh (mà không gây bất ngờ khó chịu) và do đó, cung cấp một cách tiếp cận khác để song song hóa.

eUTXO kế thừa thiết kế mỗi-nhánh của mô hình UTXO (Bitcoin), trong đó một nhánh theo định nghĩa là một chuỗi các giao dịch yêu cầu xác thực tuần tự. Để phân chia logic qua các nhánh khác nhau và thực thi song song hơn, điều cần thiết là phải xây dựng DApp và các giải pháp khác bằng cách sử dụng nhiều UTXO. Điều này mang lại lợi ích về mặt mở rộng, giống như việc phát triển dịch vụ Bitcoin, điều kiện tiên quyết là tách một ví thành các ví phụ.

DApp được xây dựng trên Cardano không giới hạn một giao dịch trên mỗi khối. Trên thực tế, ngân sách khối (đó là số lượng giao dịch tối đa mà khối đó có thể có) cho phép thực hiện hàng trăm giao dịch đơn giản và một số tập lệnh phức tạp. Tuy nhiên, mô hình eUTXO chỉ cho phép sử dụng một đầu ra giao dịch một lần. Do người dùng có thể gặp phải các vấn đề tranh chấp khi cố gắng truy cập vào cùng một UTXO, điều quan trọng là phải sử dụng nhiều UTXO khác nhau. Lưu ý rằng điều này là quan trọng trừ khi một thiết kế như vậy sẽ có lợi từ yêu cầu nghiêm ngặt của khách hàng. Các bộ UTXO có thể được sử dụng để triển khai các mẫu thiết kế bao gồm các semaphores (chú thích thêm: semaphores là cơ chế hữu dùng hữu dụng để kiểm soát truy cập của nhiều tiến trình đến một tài nguyên chung trong môi trường lập trình song song). Ngoài ra, những người dùng khác nhau có thể tương tác với một hợp đồng thông minh mà không gặp bất kỳ lỗi đồng thời nào. Đó là vì hợp đồng thông minh có thể xử lý một số UTXO khác nhau tạo nên trạng thái hiện tại và siêu dữ liệu ngoài chuỗi cho phép diễn giải/thông dịch các UTXO đó.

Làm mọi thứ song song trên Cardano

Các blockchain đạt được tính bất biến và tính minh bạch của quá trình xử lý giao dịch theo cách khác nhau. Bất kỳ hệ thống blockchain nào cũng nên có một tập hợp các thuộc tính để đáp ứng nhu cầu ngày càng tăng về xử lý hoạt động an toàn nhưng nhanh chóng, cụ thể là:

  • Thông lượng – số lượng hoạt động mà hệ thống có thể thực hiện trong một khoảng thời gian nhất định. Ví dụ: số lượng giao dịch hoặc hợp đồng thông minh được xử lý trong một giây.
  • Hiệu suất – hệ thống hoạt động nhanh như thế nào. Hiệu suất đo lường thời gian giao dịch hoặc thực hiện hợp đồng thông minh.
  • Khả năng mở rộng – khả năng hệ thống thực hiện nhiều hoạt động mà không làm quá tải mạng hoặc ảnh hưởng đến các thuộc tính hiệu suất.

Bằng cách tăng tính song song, cuối cùng chúng ta có thể cải thiện thông lượng của hệ thống trong khi vẫn giữ nguyên hiệu suất của các hoạt động riêng lẻ, nhưng loại khả năng mở rộng này sẽ luôn bị giới hạn bởi mức độ cạnh tranh.

Khi nói đến khả năng mở rộng, chúng ta cũng phân biệt các thuộc tính hệ thống như tính đồng thời (concurrency), tính song song (parallelism) và tính tranh chấp (contention). Đồng thời là điều cần thiết để cho phép nhiều tác nhân cùng tiến hành một nhiệm vụ nhất định mà không ảnh hưởng lẫn nhau. Song song cho phép các nhiệm vụ được chạy như vậy cùng một lúc mà không có bất kỳ sự can thiệp nào. Sự tranh chấp xảy ra khi nhiều tác nhân đó gây trở ngại cho nhau trong khi làm việc đồng thời hoặc song song.

Hiểu về thuộc tính đồng thời (Concurrency) trên Cardano

Đồng thời có thể cải thiện hoặc không thể cải thiện hiệu suất, thông lượng hoặc khả năng đáp ứng của hệ thống. Số lượng trong thuộc tính đồng thời giới hạn số lượng tối đa các hoạt động đồng thời có thể được thực hiện.

Để có được những cải tiến hiệu suất thực tế trong một chuỗi khối dựa trên UTXO, bộ xử lý hoặc các tác nhân khác phải có thể thực hiện nhiều tác vụ đồng thời. Mức độ đồng thời càng cao thì khả năng song song tối đa càng cao. Cách tiếp cận như vậy chuyển thành cải tiến hiệu suất và thông lượng. Nó cũng cung cấp những lợi thế đáng kể so với các hệ thống dựa trên tài khoản (như Ethereum).

Tính khác biệt khi triển khai DApp trên sổ cái UTXO

Cách tiếp cận của Cardano để triển khai DApp là khác nhau và do đó nó yêu cầu một kiến thức và một cách tiếp cận khác. Điều này giống như làm việc với các ngôn ngữ lập trình khác nhau: có một mục tiêu – triển khai một giải pháp, nhưng có rất nhiều ngôn ngữ lập trình để sử dụng cho mục đích này.

Tối đa hóa sự đồng thời là một kỹ năng cần phải học: các nhà phát triển cần phải viết mã theo cách hạn chế nghiêm trọng cơ hội tranh chấp (ví dụ: bằng cách tránh các trạng thái được chia sẻ và sự phụ thuộc một cách ngẫu nhiên). Sau đó hệ thống phải chuyển sự đồng thời này thành song song. Một số nhà phát triển đã xác định các cách để tiếp cận vấn đề này, trong khi những nhà phát triển khác vẫn đang phát triển các giải pháp. Chỉ đơn giản là cấy ghép các bài học kinh nghiệm trên một blockchain sẽ không hiệu quả; trong khi việc học tập sẽ hơi lâu một chút, nhưng kết quả làm cho điều này đáng giá.

Dù bằng cách nào, điều quan trọng là phải hiểu rằng để triển khai DApp có thể mở rộng trên Cardano, nhà phát triển không thể chỉ sử dụng một hợp đồng Ethereum đã điều chỉnh. Cardano dựa trên mô hình UTXO; nó không dựa trên tài khoản. Và điều này có nghĩa là một trạng thái trên chuỗi sẽ không đáp ứng thuộc tính đồng thời trên Cardano. Thay vào đó, DApp nên phân chia trạng thái trên chuỗi của chúng trên nhiều UTXO. Điều này sẽ làm tăng tính đồng thời trong ứng dụng của họ, do đó cho phép thông lượng cao hơn.

Nhóm giáo dục của chúng tôi trước đây đã chia sẻ cách triển khai DEX kiểu AMM đơn giản trong khóa học Plutus Pioneer. Mặc dù điều này hữu ích cho mục đích giảng dạy, nhưng kiến ​​trúc này sẽ không hỗ trợ trực tiếp cho một DEX thương mại, nơi yêu cầu phương pháp tiếp cận order book (sổ lệnh mua bán) và tính đồng thời được yêu cầu rất cao. Một nhà phát triển muốn triển khai trên mạng chính Cardano sẽ cần phải cải thiện khả năng mở rộng của kiến ​​trúc cho phù hợp.

Chúng tôi đã đề xuất một giải pháp trong bài báo về stablecoin Djed gần đây của chúng tôi. Đối với việc triển khai Djed trên Cardano, mô hình order book được ưa chuộng, theo đó người mua bán có trách nhiệm chuyển tiếp bất kỳ yêu cầu minting (đúc) hoặc đốt (burning) nào tới hợp đồng thông minh stablecoin, với một khoản phí khuyến khích bổ sung được áp dụng cho mỗi người mua hoặc người bán stablecoin và reserve coins (tiền dự trữ). Một số cơ chế bảo mật – thông qua việc sử dụng rộng rãi các token không thể thay thế (NFT) – cũng được sử dụng để đảm bảo tính duy nhất của các giao dịch, tính đúng đắn của mỗi lệnh được gửi và ngăn chặn các cuộc tấn công front-running (chạy trước). Các mã thông báo NFT cũng được sử dụng để báo cáo các đơn đặt hàng minting và ghi thành công hoặc thất bại. Chúng tôi sẽ sớm xuất bản một bài viết đầy đủ hơn về vấn đề này.

Để tìm hiểu thêm về khả năng mở rộng, bạn có thể đọc cách thiết kế ứng dụng Plutus có thể mở rộng và tìm hiểu cách tổ chức DApp trên Cardano bằng cách sử dụng các mẫu order book. Các nhà phát triển cũng đã trình bày các phương pháp tiếp cận đồng thời xác định đối với kiến ​​trúc hợp đồng thông minh eUTXO, có thể được coi là tổng quát của các mô hình máy trạng thái máy song song được giới thiệu trong bài báo Hydra để hiện thực hóa trạng thái máy nhiều bước. Một số nhà phát triển và thành viên cộng đồng khác cũng đã xuất bản các bài báo, video, bài báo và các chủ đề hữu ích trên Twitter phác thảo các phương pháp tiếp cận của họ. Đó là một bài học tuyệt vời về cách cộng đồng sẽ tiếp tục phát triển các giải pháp sáng tạo của riêng mình, khi các phương pháp tiếp cận trở nên chuẩn hóa hơn với sự trưởng thành của nền tảng.

Moving forward – Tiến về phía trước

Sự kiện Alonzo hard fork sẽ giới thiệu các phần lõi của Plutus 1.0. Đây là bước khởi đầu của sự phát triển hệ sinh thái. Mặc dù vẫn còn sớm, nhưng mạng thử nghiệm Alonzo cho phép các nhà phát triển của chúng tôi đánh giá các thuộc tính hệ thống và xây dựng các DApp có thể mở rộng trước – chuẩn bị cho việc ra mắt mạng chính của họ. Hàng chục dự án đã và đang làm việc với các phiên bản cục bộ của môi trường Plutus. Với việc mạng thử nghiệm công khai chính (testnet) sẽ sớm hỗ trợ các hợp đồng thông minh, chúng tôi dự kiến ​​sẽ có một hoạt động gia tăng đáng kể trong vài tuần tới và trong những tháng tới. Cuối tháng này, hội nghị thượng đỉnh Cardano (25-26 tháng 9) sẽ giới thiệu nhiều dự án trong số này, đồng thời cung cấp các cập nhật quan trọng về lộ trình hợp đồng thông minh và sự phát triển liên tục của nền tảng công nghệ. Các sự kiện dành cho nhà phát triển, hackathons và tất nhiên, kết quả của Project Catalyst sẽ tiếp tục mang lại các công cụ và thông tin tóm tắt mới cho hệ sinh thái nhà phát triển đang phát triển nhanh chóng này.

Nếu bạn là nhà phát triển, hãy đảm bảo tham gia cộng đồng Discord của chúng tôi và tham gia vào Project Catalyst nếu bạn đang tìm cách tài trợ cho dự án của mình.

Dịch & biên soạn: ChienNguyen

Source: https://iohk.io/en/blog/posts/2021/09/10/concurrency-and-all-that-cardano-smart-contracts-and-the-eutxo-model/