Hiểu ý nghĩa của việc mở rộng trong mô hình UTxO của Cardano
Ngày 27 tháng 11 năm 2023 - Chia sẻ bài viết này trên Twitter | Facebook | Telegram
Bitcoin sử dụng mô hình kế toán UTxO. Đối với nhóm IOG, mô hình này không đủ cho sứ mệnh Cardano nên họ đã mở rộng nó. Cardano sử dụng mô hình UTxO mở rộng (Extended UTxO). Trong bài viết này, chúng tôi sẽ giải thích ý nghĩa của từ Mở rộng
(Extended).
Nhiều hơn các khoản thanh toán
Mạng Bitcoin được thiết kế để thanh toán. Mô hình UTxO của Bitcoin có thể biểu đạt hạn chế về khả năng lập trình. Cardano là một nền tảng hợp đồng thông minh cho phép các nhà phát triển thực hiện nhiều hoạt động liên quan đến giá trị hơn, tức là làm việc với UTxO.
Phần mở rộng của mô hình UTxO liên quan đến các thuộc tính sau:
- Khả năng duy trì trạng thái hợp đồng.
- Khả năng sử dụng lại mã hợp đồng cho một chuỗi các giao dịch. Nhóm nghiên cứu gọi đó là sự liên tục.
- Khả năng hỗ trợ nhiều tài sản.
- Khả năng hỗ trợ tính diễn đạt cao hơn và khả năng lập trình của hợp đồng thông minh (tập lệnh).
Bitcoin không thể cung cấp những đặc tính này hoặc chỉ ở một mức độ rất hạn chế. Bitcoin được thiết kế như một mạng giao dịch về cơ bản chỉ xác thực các khóa để xác minh các điều kiện chi tiêu. Bitcoin không phù hợp với các hoạt động tài chính phức tạp hơn, tức là để thực hiện các hợp đồng thông minh.
Khả năng của UTxO và tập lệnh của Bitcoin
Trong Bitcoin, một địa chỉ được tạo bằng cách băm khóa chung. Quá trình này được gọi là 'khóa khóa công khai'. Khi ai đó gửi BTC đến một địa chỉ, về cơ bản họ đang khóa nó bằng khóa chung được liên kết với địa chỉ đó.
Để chi tiêu BTC bị khóa ở một địa chỉ cụ thể, chủ sở hữu địa chỉ đó phải mở khóa bằng cách cung cấp chữ ký điện tử. Chữ ký này được tạo bằng khóa riêng được liên kết với khóa chung của địa chỉ. Hành động ký giao dịch bằng khóa riêng sẽ mở khóa BTC một cách hiệu quả, cho phép chi tiêu.
Trong Bitcoin, một địa chỉ có thể được liên kết với một tập lệnh nhưng theo một cách cụ thể. Bitcoin có một vài tập lệnh khác nhau, trong đó Pay-to-Public-Key-Hash (P2PKH) là phổ biến nhất.
Các tập lệnh bitcoin (mã/chương trình nhỏ) được nhúng vào phần đầu đầu ra của giao dịch. Khi bạn tạo một giao dịch, về cơ bản bạn đang viết một tập lệnh (các mã lệnh chỉ ra các điều kiện chi tiêu). Để triển khai tập lệnh, bạn sẽ kết hợp tập lệnh đó vào giao dịch Bitcoin.
Bạn sẽ thường gặp những đoạn Script này:
- ScriptPubKey là một tập lệnh khóa yêu cầu phải đáp ứng một số điều kiện nhất định để người nhận chi tiêu BTC
- ScriptSig là tập lệnh mở khóa đáp ứng các điều kiện do ScriptPubKey đặt ra ở đầu ra và là tập lệnh cho phép chi tiêu BTC Script được viết bằng Script. Bitcoin Script là ngôn ngữ lập trình dựa trên ngăn xếp được sử dụng để xây dựng các giao dịch Bitcoin. Bitcoin Script thiếu nhiều chức năng của các ngôn ngữ lập trình phổ biến. Nó không phải là Turing hoàn chỉnh, có nghĩa là nó thiếu một số chức năng logic.
Và mặc dù địa chỉ Bitcoin có thể được liên kết với các tập lệnh nhưng chúng thường bị khóa với một khóa chung cụ thể và không chứa logic tùy biến dưới dạng tập lệnh (thông minh). Các tập lệnh chủ yếu được sử dụng để xác thực khóa.
Các tập lệnh không được lưu trữ riêng trên Blockchain để sử dụng lại. Thay vào đó, mỗi giao dịch bao gồm các tập lệnh riêng.
Và mặc dù bạn chắc chắn có thể sử dụng cùng một tập lệnh trong nhiều giao dịch nhưng mỗi phiên bản của tập lệnh sẽ được lưu trữ riêng biệt như một phần của giao dịch tương ứng. Không có cơ chế lưu trữ tập lệnh một lần trên Blockchain và sau đó tham chiếu tập lệnh đó trong nhiều giao dịch.
Bitcoin Script không có khái niệm về trạng thái. Tất cả thông tin cần thiết đều có trong tập lệnh khóa và mở khóa. Điều này có nghĩa là các tập lệnh không có trạng thái và không lưu trữ bất kỳ thông tin nào giữa các lần thực thi. Các tập lệnh hầu như chỉ được sử dụng để khóa và mở khóa BTC.
Trong Bitcoin, UTxO được sử dụng để lưu trữ và giao dịch giá trị BTC. Mỗi UTxO đại diện cho một lượng BTC nhất định đã được gửi đến một địa chỉ cụ thể. Không thể tạo UTxO mới đại diện (độc quyền) cho token tùy chỉnh có giá trị riêng.
Bạn có thể đã nghe nói rằng Bitcoin có thể có token ở lớp đầu tiên. Lần đầu tiên được gọi là token màu. Đó là về việc liên kết các satoshi cụ thể với các token tùy chỉnh. Điều này biến chúng thành các token một cách hiệu quả, có thể được sử dụng để đại diện cho bất kỳ thứ gì. Cần lưu ý rằng đây không phải là token theo đúng nghĩa của từ này.
Có thể có một UTXO với 1000 satoshi trong đó 10 satoshi được tô màu là token X. Nếu bạn chỉ muốn gửi một token X, thì một UTxO mới sẽ phải được tạo. Khái niệm này đã không khả thi.
Khái niệm Ordinals có phần giống với khái niệm token màu nhưng có một số điểm khác biệt chính. Số thứ tự là satoshi đã được sắp xếp và ghi kèm một phần thông tin, chẳng hạn như văn bản hoặc hình ảnh. Phần thông tin này làm cho sat trở nên độc đáo và biến nó thành một token không thể thay thế (NFT) trên thực tế.
Bitcoin có thể được mô tả đơn giản như một sổ cái tài sản duy nhất. Các tập lệnh bitcoin không có trạng thái và chủ yếu được sử dụng để xác thực chữ ký (khóa). Các tập lệnh được chuyển trong các giao dịch và không thể được lưu trữ trong Blockchain và sử dụng lại.
Mô hình UTxO mở rộng
Trong mô hình UTxO mở rộng, khái niệm 'địa chỉ' được khái quát hóa. Thay vì hạn chế khóa đối với khóa chung và khóa đối với chữ ký, các địa chỉ trong mô hình EUTxO có thể (gián tiếp) chứa logic tùy biến dưới dạng tập lệnh.
Điều này có nghĩa là thay vì là phiên bản băm của khóa chung, các địa chỉ trong Cardano có thể được liên kết với các tập lệnh thông qua hàm băm tập lệnh có trong địa chỉ. Điều này cho phép thực hiện các giao dịch và tương tác phức tạp hơn, chẳng hạn như những giao dịch cần thiết cho hợp đồng thông minh.
Một địa chỉ có thể chứa hàm băm của tập lệnh được sử dụng để xác định tập lệnh đã được lưu trữ trong Blockchain.
Và trong Cardano, một giao dịch có thể chứa và tham chiếu các tập lệnh. Bitcoin không thể tham chiếu các tập lệnh. Và các tập lệnh phải luôn được đưa vào giao dịch.
Cardano có thể tham chiếu các tập lệnh. Các tập lệnh được tham chiếu này được đính kèm vào đầu ra và có thể được sử dụng để đáp ứng các yêu cầu về tập lệnh trong quá trình xác thực. Điều này có nghĩa là các giao dịch sử dụng tập lệnh phổ biến có thể nhỏ hơn nhiều. Giao dịch sử dụng tập lệnh sẽ không cần cung cấp tập lệnh đó, miễn là nó tham chiếu đến đầu ra có chứa tập lệnh.
Khái niệm về tập lệnh tham chiếu có liên quan đến khía cạnh liên tục của mô hình UTXO mở rộng của Cardano. Tính liên tục của hợp đồng đảm bảo rằng cùng một mã hợp đồng có thể được sử dụng cho một chuỗi giao dịch.
Nền tảng Plutus cho phép các nhà phát triển viết các ứng dụng (tập lệnh) tương tác với blockchain Cardano. Ngôn ngữ lập trình Plutus phát triển từ Haskell. Tập lệnh Plutus là những đoạn mã thực hiện các hàm thuần túy với đầu ra Đúng hoặc Sai. Chúng được sử dụng để xác nhận hành động.
Trong mô hình UTxO mở rộng, tập lệnh trình xác thực được truyền ba đối số:
- Datum: Đây là một phần dữ liệu được gắn vào UTxO đầu ra mà tập lệnh đang khóa. Điều này thường được sử dụng để mang trạng thái.
- Redeemer: Đây là một phần dữ liệu được đính kèm với UTxO đầu vào chi tiêu. Điều này thường được sử dụng để cung cấp đầu vào cho tập lệnh từ người chi tiêu.
- Context: Đây là một phần dữ liệu thể hiện thông tin về giao dịch chi tiêu. Điều này được sử dụng để đưa ra các xác nhận về cách sử dụng UTxO đầu ra.
Mô hình EUTXO của Cardano cho phép các nhà phát triển viết các tập lệnh trạng thái thông qua việc sử dụng các nguyên thủy này.
Datum có thể được sử dụng để theo dõi trạng thái của tập lệnh. Datum đóng một vai trò quan trọng trong việc sử dụng UTxO đầu ra từ địa chỉ tập lệnh và gửi nó đến địa chỉ tập lệnh. Và trong Cardano, bạn có thể liên kết một trạng thái với tập lệnh bằng cách sử dụng Datum.
Tính diễn đạt và khả năng lập trình của tập lệnh Plutus cho phép các nhà phát triển triển khai nhiều loại logic. Ví dụ: một tập lệnh xác thực đơn giản có thể kiểm tra xem một khóa cụ thể có ký giao dịch chi tiêu hay không (điều này tương tự như tập lệnh Bitcoin). Tuy nhiên, với một chút mở rộng cẩn thận, nhà phát triển có thể sử dụng tập lệnh để diễn đạt logic phức tạp hơn.
Việc sử dụng Datum và Redeemer nâng cao hơn nữa khả năng của các tập lệnh này, cho phép chúng mang trạng thái và chấp nhận đầu vào từ người chi tiêu. Tập lệnh có thể lấy các giá trị Datum và Redeemer, thực hiện các phép tính hoặc so sánh, sau đó xuất ra một giá trị boolean (xác định khả năng chi tiêu).
Sổ cái của Cardano được thiết kế để hỗ trợ nhiều tài sản. Nó được gọi là sổ cái đa tài sản. Nó cho phép Cardano thực hiện kế toán hoặc giao dịch với nhiều loại tài sản (đồng ADA gốc).
Khi token được đúc, UTxO mới sẽ được tạo. Khi người dùng tạo ra các token, về cơ bản họ đang tạo ra các UTxO mới chứa các token này. Những UTxO này sau đó có thể được sử dụng trong các giao dịch, giống như UTxO với ADA.
Tập lệnh Plutus có thể hoạt động với token giống hệt như với ADA.
Cardano có thể được mô tả đơn giản như một sổ cái đa tài sản. Token đúc là UTxO mới có đặc tính tương tự như ADA. Tập lệnh Plutus có trạng thái. Các tập lệnh hoạt động với bối cảnh Datum, Redeemer và giao dịch, cho phép các nhà phát triển tạo ra logic phức tạp hơn (ngoài việc xác minh khóa). Các tập lệnh có thể được lưu trữ trong sổ cái và được tham chiếu nhiều lần.
Lời kết
Mô hình UTxO còn có một ý nghĩa quan trọng khác chưa được đề cập trong bài viết. Cụ thể là khả năng mở rộng cao hơn. UTxO về cơ bản là các đối tượng độc lập với môi trường xung quanh. Các giao dịch với UTxO có thể được xác thực bất kể các UTxO khác (tức là về cơ bản bất kể giao dịch của người dùng khác). Nói cách khác, một tính năng khác mà mô hình UTxO hỗ trợ là tính song song. Tính năng này sẽ được tận dụng bởi một cải tiến có tên là Trình Input Endorser.
Có lẽ sự khác biệt lớn nhất giữa UTxO Bitcoin và UTxO Cardano là khả năng thêm Datum, tức là dữ liệu tùy biến. Mặc dù nhiều điểm khác biệt được mô tả có phần liên quan đến UTxO, nhưng chúng khác nhau chủ yếu do triết lý và thiết kế khác nhau của hai dự án. Nếu có thể thêm dữ liệu (Datum) vào Bitcoin UTxO thì cần phải mở rộng thêm Bitcoin Script. Dữ liệu được lưu trữ sẽ hữu ích hơn nếu nó có thể được so sánh với một thứ gì đó, lý tưởng nhất là một số đầu vào giao dịch (Redeemer). Khả năng đúc UTxO mới là một tính năng mà Bitcoin không có chủ đích. Những cân nhắc như vậy có thể được tiếp tục hơn nữa.
Blockchain bao gồm nhiều thành phần có thuộc tính tạo thành một tổng thể. UTxO là một trong những thành phần này. Việc sử dụng tiềm năng của mô hình kế toán còn phụ thuộc vào các thành phần khác. Tiềm năng của Extended UTxO có liên quan đến nền tảng Plutus, các giao dịch, khả năng sổ cái, v.v.
Nguồn bài viết tại đây
Đọc thêm các bài viết liên quan tại thẻ Tags bên dưới