Mô hình kế toán UTXO mở rộng của Cardano - hỗ trợ đa tài sản và hợp đồng thông minh (phần 2)

This translation has been made by QuangTV from the original document published by Fernando Sanchez at https://iohk.io/en/blog/posts/2021/03/12/cardanos-extended-utxo-accounting-model-part-2.

Mô hình kế toán UTXO mở rộng của Cardano - hỗ trợ đa tài sản và hợp đồng thông minh (phần 2)

Trong phần hai của bài viết về mô hình kế toán EUTXO của Cardano, chúng ta sẽ phân tích chi tiết hơn về mặt kỹ thuật của các yếu tố cấu thành giao dịch, bộ UTXO và tìm hiểu sâu hơn về lý do lựa chọn mô hình EUTXO của Cardano

12/03/2021 Fernando Sanchez
EUTXO-2

Trong phần 1, chúng ta đã có một cái nhìn tổng quan về mô hình UTXO mở rộng sử dụng trong Cardano, giải thích những điểm khác biệt so với cách thực hiện của Bitcoin và Ethereum như thế nào. Bây giờ, chúng ta hãy tìm hiểu kỹ hơn một chút về đầu vào và đầu ra, các yếu tố hình thành một giao dịch.

We need to talk about transactions: Outputs and Inputs

Điều chúng ta cần nói về các giao dịch đó là: Đầu ra và Đầu vào

Thuật ngữ giao dịch thường được sử dụng rất nhiều trong lĩnh vực tài chính. Với Bitcoin người ta áp dụng khái niệm giao dịch (vì blockchain Bitcoin được sử dụng cho mục đích chuyển tiền ngang hàng với nhau), nhiều blockchain khác (trong đó có Cardano) đa dạng hơn nhiều. Trong những trường hợp này, thuật ngữ ‘giao dịch’ mang nhiều sắc thái hơn. Người ta có thể coi giao dịch là sự chuyển giao giá trị.

Trong môi trường blockchain, mỗi giao dịch có thể có một hoặc nhiều đầu vào và một hoặc nhiều đầu ra. Chúng ta cần phải hiểu các khái niệm về Đầu vàoĐầu ra để có thể nắm được cách thức hoạt động của một giao dịch và sự liên quan của nó đến UTXO như thế nào. Chúng ta hãy hình dung một giao dịch giống như một hành động mở khóa cho các đầu ra trước đó để tạo ra các đầu ra mới hơn.

Đầu ra của giao dịch

Đầu ra giao dịch bao gồm một địa chỉ (có thể được coi như là một ổ khóa) và một giá trị. Để dễ hình dung hơn chúng ta hãy xem chữ ký chứa trong địa chỉ tương tự như là chìa khóa để mở khóa đầu ra. Sau khi mở khóa, một đầu ra có thể được sử dụng làm đầu vào cho các giao dịch mới. Giao dịch mới sẽ sử dụng đầu ra của các giao dịch trước đó và tạo ra đầu ra mới hơn để sử dụng cho các giao dịch kế tiếp sau đó. Mỗi UTXO chỉ có thể được sử dụng một lần và toàn bộ. Mỗi đầu ra có thể được sử dụng bởi chính xác cho một đầu vào và chỉ một đầu vào.

Đầu vào giao dịch

Đầu vào giao dịch là đầu ra của giao dịch trước đó. Đầu vào giao dịch bao gồm một con trỏ và một chữ ký mã hoá hoạt động như một chìa khóa để mở khóa. Con trỏ này sẽ lại trỏ đến đầu ra giao dịch trước đó và sẽ mở khóa cho đầu ra này. Khi một đầu ra được mở khóa bởi một đầu vào, blockchain sẽ đánh dấu đầu ra đã mở khóa đó là “đã chi tiêu/sử dụng”. Các đầu ra mới được tạo ra bởi một giao dịch nhất định sau đó có thể được trỏ đến bởi các đầu vào mới và hoạt động cứ tiếp tục diễn ra trong chuỗi. Các đầu ra mới này (chưa được mở khóa) là UTXO. Đầu ra chưa chi tiêu đơn giản là đầu ra chưa được dùng đến.

Tóm lại, UTXO hoạt động như thế nào

Trong mô hình kế toán UTXO, các giao dịch sử dụng kết quả đầu ra chưa sử dụng từ các giao dịch trước đó và tạo ra kết quả đầu ra mới có thể được sử dụng làm đầu vào cho các giao dịch trong tương lai.

Ví của người dùng sẽ quản lý các UTXO này và bắt đầu các giao dịch liên quan đến các UTXO thuộc quyền sở hữu. Toàn bộ các node trong blockchain sẽ lưu giữ một bản ghi về tập hợp con của tất cả các UTXO. Đây được gọi là bộ UTXO. Về mặt kỹ thuật, đây là bảng trạng thái chuỗi ‘chainstate’, được lưu trữ trong thư mục dữ liệu của tất cả các node. Khi một khối mới được thêm vào chuỗi, ‘chainstate’sẽ được cập nhật tương ứng. Khối mới này chứa danh sách các giao dịch mới nhất (tất nhiên bao gồm cả bản ghi của các UTXO đã sử dụng và các giao dịch mới được tạo kể từ khi chainstate được cập nhật lần cuối). Mỗi node lưu giữ một bản sao chính xác của chainstate.

EUTXO: Lý do đằng sau sự lựa chọn của Cardano

Mô hình kế toán UTXO ‘vanilla’ của Bitcoin trở nên không phù hợp với Cardano, vì Cardano được thiết kế để xử lý nhiều tác vụ hơn không chỉ riêng nghiệp vụ thanh toán. Đặc biệt là nhu cầu về khả năng diễn đạt trong lập trình cho chức năng hợp đồng thông minh sắp tới trong giai đoạn Alonzo đòi hỏi một giải pháp mới (‘Mở rộng’).

Mô hình UTXO ‘cơ bản’ có hạn chế về khả năng diễn giải trong lập trình. Mô hình ghi chép Tài khoản/Số dư của Ethereum đã giải quyết vấn đề cụ thể này với sự phát triển của sổ cái dựa trên tài khoản và các tài khoản hợp đồng được liên kết. Nhưng khi thực hiện như vậy, thì ngữ nghĩa của mã hợp đồng trở nên phức tạp hơn nhiều, điều này có tác động không mong muốn là buộc người phát hành hợp đồng phải nắm bắt đầy đủ các sắc thái của ngữ nghĩa để tránh tạo ra trong mã các lỗ hổng tiềm ẩn phải trả giá đắt.

Giải pháp UTXO ‘mở rộng’ đòi hỏi bổ sung hai chức năng mà mô hình UTXO hiện tại không thể đáp ứng, đó là:

1 - Có thể duy trì trạng thái hợp đồng

2 - Có thể cho phép sử dụng cùng một mã hợp đồng trong toàn bộ chuỗi giao dịch. Chúng tôi gọi đây là sự liên tục.

Một đặc điểm nổi trội của mô hình EUTXO là các khoản phí cần thiết cho một giao dịch hợp lệ có thể được dự đoán chính xác trước khi thực hiện. Đây là một tính năng độc đáo không có trong các mô hình dựa trên tài khoản.

Mô hình EUTXO mở rộng UTXO bằng cách nào?

Bằng cách thêm dữ liệu tùy chỉnh vào đầu ra (bên cạnh phần giá trị), và bằng cách cho phép thêm “ổ khóa” và “chìa khóa” để quy định điều kiện mở khóa đầu ra cho một giao dịch. Nói cách khác, thay vì chỉ dùng khóa công khai (mã băm) cho “ổ khóa” và chữ ký tương ứng dùng làm “chìa khóa”, EUTXO cho phép kiểm tra xác thực hợp đồng bằng tập lệnh. Logic tùy ý này sẽ kiểm tra giao dịch và dữ liệu để quyết định xem giao dịch có được phép sử dụng một đầu vào nào đó hay không.

Kết luận: Điều gì làm cho mô hình EUTXO sáng tạo và phù hợp

Mô hình sổ cái của Cardano mở rộng mô hình UTXO để hỗ trợ nhiều tài sản và hợp đồng thông minh mà không ảnh hưởng đến lợi thế cốt lõi của mô hình UTXO. Nghiên cứu sáng tạo của chúng tôi cung cấp chức năng vượt xa những gì được hỗ trợ trong bất kỳ sổ cái UTXO nào khác, biến Cardano trở thành một đối thủ cạnh tranh duy nhất trong không gian blockchain thế hệ tiếp theo.