Giới thiệu về Stateful UXTO Model
Là sự kết hợp giữa tính thân thiện lập trình của mô hình account (account model) & tính bảo mật của mô hình UXTO (UTXO model) truyền thống.
Bài viết này sẽ giải thích khát quát ý nghĩa về mô hình stateful UTXO. Tại sao nó được tạo ra? Cách thức hoạt động của nó như thế nào? Và những gì mà mô hình này cho phép dữ liệu hoạt động.
Mô hình stateful UTXO (sUTXO) là một trong những cải tiến chính do Alephium mang lại cùng với cơ chế đồng thuận Proof-of-Less-Work (PoLW), thuật toán phân mảnh (shard) BlockFlow, máy ảo (VM) Alphred và ngôn ngữ lập trình Ralph.
UTXO Model & Account Model là gì?
UTXO và các mô hình dựa trên kiểu tài khoản (account) là các tiêu chuẩn trong tính toán và được sử dụng phổ biến nhất trong các mạng của blockchain. Cả hai đều cho phép người dụng và hệ thống theo dõi số dư tài sản tiền điện tử.
Mô hình UTXO (Unspent Transaction Output) cổ điển được sử dụng rộng rãi để theo dõi việc tính toán chi tiêu trong blockchain của Bitcoin. Nó cũng được sử dụng trong các blockchain như Bitcoin Cash, Zcash, Litecoin, Dogecoin, Dash, v.v.
Trong UTXO, sẽ không có khái niệm về account hoặc số sư trong các lớp giao thức kết nối (layer protocol), mà nó chỉ dược biểu đạt bằng các giao dịch. Các coin sẽ được lưu trữ dưới dạng một cuốn sổ cái (ledger) của các đầu ra giao dịch chưa được chi tiêu (unspent transactions output — UTXO) và các giao dịch mới sẽ sử dụng các UTXO hiện hữu để tạo ra các UTXO mới.
Tại bất kỳ thời điểm nào, để một ví có thể hiển thị được số dư của người dùng, nó phải tích trữ tất cả các UTXO được liên kết với những địa chỉ ví công khai từ người dụng cụ thế nào đó. Bởi vì những gì mô hình này lưu trữ là một tập hợp tất cả các UTXO, không phải các danh sách tải khoản và số dư.
Bạn có thể hình dung đơn giản rằng mô hình này có khả năng mở rộng cao và nó rất minh bạch. Tuy nhiên, nó cũng có một vài khuyết điểm: Mô hình UTXO không có bất kỳ một state (trạng thái) nào và nó vẫn chưa đủ thân thiện với các lập trình viên. Điều này nghĩa là sẽ có một chút khó khăn để hiểu và xây dựng các chương trình phức tạp trên nó.
Dễ dàng để các lập trình viên nhận thấy mô hình account trực quan hơn và gần gũi với họ hơn về cơ sở dữ liệu truyền thống. Nó ghi lại sự tăng/giảm số dư trên địa chỉ ví khi được diễn ra. Những thay đổi đó được ghi vào blockchain và tạo ra một global state (trạng thái toàn hệ thống), bản ghi dữ liệu về số dư hiện tại ở tất cả các địa chỉ ví sẽ khả dụng ở mọi nơi. Cấu trúc này dễ tiếp cận hơn và dễ làm chủ hơn đối với các lập trình viên, tạo điều kiện cho một hệ thống có tính “thân thiện” hơn: Các lập trình viên có thể xây dựng các chương trình phức tạp và mạnh mẽ hơn (hợp đồng thông minh — smart contract).
Tuy vậy, mô hình account có những hạn chế như: khó triển khai song song, MEV là một mối nguy lớn và thường chưa đủ các kiểm tra bảo mật ở khía cạnh smart contract.
Stateful UTXO: Sự kết hợp hoàn hảo cho cả hai
Mô hình stateful UTXO (sUTXO) là sự kết hợp ưu việt của cả hai mô hình được nêu trên. Nó được thừa hưởng từ tính bảo mật của mô hình UTXO và sự thân viện với lập trình viên của mô hình.
sUTXO đạt được điều này bằng cách thực sự sử dụng cả hai cơ chế hoạt động… nhưng cho những mục đích khác nhau! UTXO được sử dụng cho các tài sản/token và account được sử dụng cho các smart contract.
Phát triển token là sự ưu tiên hằng đầu
Trong sUTXO, tất cả các token được xử lý nguyên bản và được lưu trữ trong UTXO giống hệt như các token ALPH. Điều này trái ngược với Bitcoin, loại tiền điện tử không thể xử lý các token. Nhưng nhờ vậy mà Bitcoin cũng đánh dấu sự khác biệt lớn so với Ethereum vì trên Ethereum, nó sẽ yêu cầu các bộ chứa (container) như ERC20 và ERC721 để xử lý các mã token khác nhau. Điều này gây ra sự phức tạp và thường dẫn đến rủi rỏ về bảo mật trong lịch sử của Ethereum.
Phương pháp kết hợp này được gọi là “Tokens as first-class citizens” (token là sự ưu tiên hằng đầu) trong công việc phát triển của các lập trình viên. Không cần phải tạo ra các tiêu chuẩn và không có rủi ro về bảo mật trong quá trình triển khai: Tất cả điều được phát triển một cách tự nhiên! VM (máy ảo) cũng cho phép kiểm tra khả năng tích hợp để tăng tính bảo mật khi thực hiện các giao dịch.
Tất nhiên, có thể tạo ra các tiêu chuẩn mới trên Alephium cho các token có các tính năng khác nhau, nhưng các chức năng cốt lõi (phát hành token, chuyển khoản, và kế toàn) đã đều được tích hợp sẵn.
Trạng thái: Hợp đồng thông minh (và bảo mật)
Thứ được gọi là “trạng thái” (state) trong khoa học máy tính có thể được xem là “bộ lưu trữ”. Một hệ thống có trạng thái “lưu trữ” những gì đã xảy ra trước đó và có thể sử dụng trong các item từ bộ nhớ của nó để xây dựng các những hướng hành động phát triển trong lập trình.
sUTXO được gọi là “trạng thái” vì nó thêm một phần tử “trạng thái” vào mô hình UTXO cổ điển (không có “trạng thái”). Như Seba giải thích: “UTXO không có trạng thái, nghĩa là không có hai giao dịch nào có thể ảnh hưởng đến cùng một UTXO. Giao dịch không đề cập đến bất kỳ đầu vào (input) nào bên ngoài UTXO mà được sử dụng. Bởi vì UTXO có thể được thực thi song song nên chúng không phù hợp lắm cho các ứng dụng có trạng thái, chẵn hạn như trên các hợp đồng thông minh.”
Điều này cực kỳ hữu ích cho các lập trình viên muốn xây dựng các chương trình mà nó dụng trạng thái trên blockchain: Tại các hợp đồng thông minh phổ biến, các lập trình viên sử dụng các hợp đồng thông minh đó để xây dựng các ứng dụng phi tập trung (dApp) và những dApp đó cho phép mọi người sử dụng blockchain cho các mục đích hữu ích như vay, cho vay, giao dịch, tạo và giao dịch NFT, trò chơi và phát hành ra nhiều ứng dụng thực tiễn trong tương lai!
Phương pháp cấu trúc dữ liệu Merkle Tree sẽ giữ cho mạng lưới gọn gàng!
Merkle tree là một kiểu cấu trúc dữ liệu đặc biệt, được sử dụng để lưu trữ thông tin có thể xác minh được. Alephium sử dụng ba Merkle tree trên một nhóm (group). Một cho nội dung (bộ UTXO), một cho trạng thái hợp đồng và một cho cho logic hợp đồng (đoạn mã code của nó).
Điều này rất tuyệt vời, vì đối với một hợp đồng thông minh nhất định, dữ liệu trong Merkle tree có trạng thái có thể thay đổi thường xuyên, nhưng code/logic của Merkle tree sẽ luôn là bất biến! Chính vì điều này cho phép Alephium tránh các đoạn mã và dữ liệu không cần thiết.
Và để giữ cho mọi thứ gọn nhẹ nhất có thể, sUTXO cho phép mượn tạm bộ nhớ có trạng thái: khi hợp đồng thông minh được triển khai, lập trình viên phát triển hợp đồng phải trả khoản đặt cọc 1 ALPH (sau Nâng cấp Rhône đã là 0.1 ALPH) để bảo vệ lớp trạng thái khởi bị gửi các thư rác.
Người triển khai hợp đồng sẽ được trả lại khoản ALPH đã đặt cọc này khi hợp đồng thông minh ấy bị hủy và gỡ bỏ khỏi blockchain!
sUTXO & Alphred VM hoạt động nhịp nhàng với nhau!
sUTXO có nhiều lợi ích bổ sung khi kết hợp với các cải tiến khác của Alephium! Ví dụ như máy ảo Alephium (Alphred) biết chính xác rằng việc chuyển các token đang diễn ra với smart contract. Trong trường hợp này, máy ảo sẽ xác minh việc chuyển tiền để kiểm tra xem nó có được gửi theo quy tắc của hợp đồng thông minh hay không.
Bên cạnh đó, Alephium cũng có các hướng dẫn tích hợp máy ảo để nâng cấp hoặc di chuyển các hợp đồng thông minh. Điều này cho phép các lập trình viên nâng cấp hợp đồng để khôi phục logic và sửa lỗi nếu cần thiết. Tùy chọn hiện tại trên EVM (Ethereum Virtual Machine) là sử dụng hợp đồng proxy để cho phép quá trình di chuyển này được diễn ra. Điều này có thể làm tăng thêm sự phức tạp cho các nhà phát triển ứng dụng.
Tại sao bạn cần phải quan tâm?
sUTXO là một cải tiến lớn đối với các lập trình viên vì khả năng có mô hình account có thể được nâng cấp với mô hình có thể xử lý các token (UTXO) giúp cho nó trả thành nền tảng vững chắc để xây dựng các hợp đồng thông minh với sự đảm bảo và ưu tiên hằng đầu là an toàn trong quản lý các tài sản được xây dựng trên Alephium.
Có thêm rất nhiều thông tin chi tiết về mô hình sUTXO trong cuộc phỏng với với Cheng Wang vì đây là một phần quan trọng trong kho công nghệ của Alephium. Dưới đây là hai video anh ấy đã trình bày về mô hình sUTXO và sự tương tác của nó với máy ảo cũng như ngôn ngữ lập trình của Alephium:
Bài viết tiếp theo sẽ trong loạt bài công nghệ sẽ giới thiệu về Alphred, Virtual Machine! Để tìm hiểu thêm về PoLW, truy cập tại đây.
Link bài viết gốc: https://medium.com/@alephium/an-introduction-to-the-stateful-utxo-model-8de3b0f76749
Tham gia Cộng Đồng Alephium Việt Nam 🇻🇳: https://t.me/alephiumVN