Từ BTC đến Sui, ADA và Nervos: Mô hình UTXO và các tiện ích mở rộng

Người mới bắt đầuFeb 29, 2024
Bài viết này giới thiệu mô hình UTXO bằng ngôn ngữ đơn giản, cung cấp cái nhìn tổng quan ngắn gọn về mô hình UTXO và các phương pháp triển khai của BTC, Sui, Cardano, Nervos và Fuel.
Từ BTC đến Sui, ADA và Nervos: Mô hình UTXO và các tiện ích mở rộng

Là một trong những nguyên tắc thiết kế cốt lõi của Bitcoin, mô hình UTXO đã là một mô hình kỹ thuật quan trọng trong lĩnh vực blockchain kể từ khi ra đời. Nó đóng một vai trò quan trọng trong việc đảm bảo an ninh giao dịch và truy xuất nguồn gốc, cung cấp một con đường thay thế ngoài mô hình số dư tài khoản truyền thống. Với sự phát triển và mở rộng liên tục của công nghệ blockchain trong những năm gần đây, bản thân mô hình UTXO đã trải qua quá trình phát triển và mở rộng không ngừng, chẳng hạn như eUTXO, ô, danh sách truy cập nghiêm ngặt và các mô hình khác.

Bài viết này giới thiệu mô hình UTXO bằng ngôn ngữ đơn giản, cung cấp cái nhìn tổng quan ngắn gọn về mô hình UTXO và các phương pháp triển khai của BTC, Sui, Cardano, Nervos và Fuel.

UTXO là gì?

Để minh họa mô hình UTXO, chúng tôi sử dụng một ví dụ:

Hãy tưởng tượng hai người, Alice và Bob, ban đầu mỗi người có 5 USD. Sau đó, xung đột nảy sinh và Alice bị Bob cướp 2 đô la. Phần sở hữu cuối cùng của mỗi người như sau:

Rõ ràng là Alice cuối cùng có 3 đô la, còn Bob cuối cùng giữ được 7 đô la. Phương pháp kế toán giống như số học cơ bản này thường thấy trong các hệ thống ngân hàng và được gọi là “mô hình tài khoản/số dư”. Trong mô hình này, số dư tài khoản tồn tại dưới dạng một giá trị số duy nhất.

Nếu chúng tôi áp dụng một cách tiếp cận khác với mô hình tài khoản, chẳng hạn như sử dụng UTXO để thể hiện việc chuyển giao tài sản giữa Alice và Bob, thì sơ đồ minh họa sẽ có giao diện khác:

Tại thời điểm này, Alice vẫn có 3 đô la và Bob vẫn có 7 đô la, nhưng 7 đô la này không được biểu thị bằng một giá trị số duy nhất. Thay vào đó, chúng được chia thành “$5” và “$2”. Cách tiếp cận độc đáo này có vẻ hơi xa lạ? Đây là phương pháp kế toán độc đáo được gọi là UTXO.

Từ viết tắt tiếng Anh UTXO là viết tắt của Đầu ra giao dịch chưa chi tiêu. Theo phương pháp kế toán này, mỗi giao dịch trên chuỗi được biểu hiện dưới dạng các thay đổi và chuyển khoản trong UTXO. Ví dụ: trong sự kiện giao dịch được đề cập, “$5” sở hữu ban đầu của Alice đóng vai trò là thông số đầu vào, được gắn nhãn là UTXO_0, sẽ được đánh dấu là đã chi tiêu; đồng thời, hệ thống tạo ra “$2” (UTXO_1) và “$3” (UTXO_2) làm tham số đầu ra. UTXO_1 sẽ được chuyển cho Bob và UTXO_2 sẽ được trả lại cho Alice, do đó hoàn tất việc chuyển giao tài sản giữa Alice và Bob.

Trong mô hình UTXO, không có khái niệm rõ ràng về “tài khoản” và “số dư”. UTXO đóng vai trò là cấu trúc dữ liệu hỗ trợ thực hiện giao dịch, ghi lại thông tin như số tiền mà nó đại diện và chỉ mục giao dịch liên quan. Mỗi UTXO đại diện cho một đầu vào giao dịch chưa được chi tiêu, với một chủ sở hữu được chỉ định. Khi một giao dịch xảy ra, một số UTXO nhất định có thể được sử dụng làm đầu vào và sau khi hủy chúng, các UTXO mới sẽ được tạo làm đầu ra giao dịch.

Đây là cách Bitcoin giữ tài khoản: với mỗi giao dịch, UTXO cũ sẽ bị hủy và UTXO mới sẽ được tạo. Tổng số lượng UTXO bị phá hủy bằng với số lượng UTXO mới được tạo (với một phần được phân bổ dưới dạng phí giao dịch cho người khai thác). Điều này đảm bảo rằng tiền không thể được tăng lên một cách tùy tiện.

So sánh giữa mô hình UTXO và Mô hình Tài khoản/Số dư

Giả sử một nhóm người dùng bắt đầu một số lượng lớn yêu cầu giao dịch cùng một lúc. Tình huống này sẽ được xử lý như thế nào khi sử dụng mô hình UTXO so với mô hình tài khoản/số dư?

Trong mô hình tài khoản/số dư, mỗi người dùng có một tài khoản có thông tin số dư được ghi lại. Khi một giao dịch xảy ra, số dư tài khoản tương ứng cần được cập nhật, bao gồm cả thao tác “đọc” và “ghi”. Tuy nhiên, nếu hai giao dịch liên quan đến cùng một tài khoản, điều này thường dẫn đến xung đột đọc-ghi, dẫn đến tranh chấp trạng thái, một tình huống cần phải tránh.

Các hệ thống cơ sở dữ liệu truyền thống thường giải quyết vấn đề tranh chấp đọc-ghi bằng cơ chế “khóa”. Trong trường hợp như vậy, các giao dịch gây tranh chấp cho cùng một dữ liệu thường phải xếp hàng, ngăn cản việc thực hiện đồng thời và giảm hiệu quả xử lý giao dịch. Khi có một số lượng lớn giao dịch đang chờ xử lý, điều này có thể tạo ra tắc nghẽn đáng kể về hiệu suất, khiến các giao dịch đang tranh chấp phải đối mặt với thời gian chờ đợi kéo dài nếu không được xử lý nhanh chóng.

Ngược lại với mô hình số dư tài khoản, mô hình UTXO của Bitcoin được trang bị tốt hơn để xử lý các vấn đề tranh chấp dữ liệu. Theo cách tiếp cận này, thực thể xử lý trực tiếp của mỗi giao dịch không còn là một “tài khoản” cụ thể mà là các UTXO độc lập, riêng lẻ. Vì các UTXO khác nhau không can thiệp lẫn nhau nên mỗi giao dịch trong mạng Bitcoin hoạt động độc lập. Do đó, các nút mạng Bitcoin có thể xử lý đồng thời nhiều giao dịch mà không cần “khóa”, cải thiện đáng kể thông lượng hệ thống và hiệu suất đồng thời.

Ngoài ra, trong mô hình UTXO, ví được mã hóa thường tạo địa chỉ mới cho người dùng sau khi bắt đầu giao dịch. Cách tiếp cận này tăng cường quyền riêng tư, khiến việc liên kết giao dịch với một cá nhân cụ thể trở nên khó khăn hơn. Ngược lại, mô hình tài khoản/số dư sử dụng địa chỉ cố định sẽ dễ bị phân tích liên kết hơn.

Tuy nhiên, mô hình UTXO có những hạn chế. Ban đầu nó được thiết kế để hỗ trợ chuyển tiền đơn giản và không phù hợp để xử lý logic kinh doanh phức tạp. Mặc dù các chức năng cơ bản như đa chữ ký và khóa thời gian có thể được triển khai bằng ngôn ngữ tập lệnh, nhưng thông tin trạng thái tối thiểu mà UTXO của Bitcoin có thể ghi lại khiến nó ít có khả năng xử lý các hoạt động phức tạp hơn.

Những hạn chế của UTXO của Bitcoin đã gián tiếp góp phần vào sự xuất hiện của “Ethereum”. Vitalik, một trong những người đóng góp sớm nhất cho Tạp chí Bitcoin, đã nhận thức rõ về những thiếu sót của Bitcoin. Mô hình tài khoản/số dư, dễ hiểu hơn đối với hầu hết mọi người, giải quyết những thách thức mà UTXO gặp phải trong việc xử lý các ứng dụng trạng thái phong phú. Như Vitalik đã nêu trong báo cáo chính thức của Ethereum:

UTXO có thể được chi tiêu hoặc chưa chi tiêu; không có cơ hội cho các hợp đồng hoặc kịch bản nhiều giai đoạn giữ bất kỳ trạng thái nội bộ nào khác ngoài điều đó. Điều này gây khó khăn cho việc thực hiện các hợp đồng quyền chọn nhiều giai đoạn, ưu đãi trao đổi phi tập trung hoặc các giao thức cam kết mã hóa hai giai đoạn (cần thiết cho tiền thưởng tính toán an toàn). Điều đó cũng có nghĩa là UTXO chỉ có thể được sử dụng để xây dựng các hợp đồng đơn giản, một lần chứ không phải các hợp đồng “trạng thái” phức tạp hơn như các tổ chức phi tập trung và khiến các siêu giao thức khó thực hiện. Trạng thái nhị phân kết hợp với mù giá trị cũng có nghĩa là không thể áp dụng một ứng dụng quan trọng khác, giới hạn rút tiền.

Ứng dụng, tối ưu hóa và mở rộng mô hình UXTO

Trước khi đi sâu vào các ứng dụng và tối ưu hóa khác nhau của mô hình UTXO, hãy phân tích các lĩnh vực cần cải tiến trong khi vẫn duy trì được lợi thế của nó. Những điều này có thể được tóm tắt như sau:

  1. Tóm tắt ý nghĩa của trạng thái được lưu trữ trong UTXO.

  2. Trừng phạt sở hữu nhà nước.

  3. Giải quyết các vấn đề tranh chấp trạng thái khi chia sẻ UTXO.

Trong BTC, ý nghĩa duy nhất của trạng thái là số lượng mã thông báo, quyền sở hữu thường được xác định bằng cách sử dụng khóa chung và tranh chấp trạng thái không được giải quyết rộng rãi vì BTC không được thiết kế cho dApps.

Tùy

Sui cung cấp cho các nhà phát triển hai loại đối tượng: OwnedObject và SharedObject. Cái trước gần giống với UTXO (cụ thể là phiên bản nâng cao), trong khi cái sau có thể so sánh với mô hình tài khoản/số dư. Cả hai có thể được sử dụng đồng thời.

Một Đối tượng có thể được chia sẻ, nghĩa là bất kỳ ai cũng có thể đọc hoặc ghi vào Đối tượng đó. Không giống như OwnedObject có thể thay đổi (chỉ có một người viết), SharedObject yêu cầu sự đồng thuận để ra lệnh đọc và ghi.

Trong các blockchain khác, mọi Đối tượng đều được chia sẻ. Tuy nhiên, các nhà phát triển Sui thường có thể chọn sử dụng OwnedObject, SharedObject hoặc kết hợp cả hai để triển khai các trường hợp sử dụng cụ thể. Lựa chọn này có thể ảnh hưởng đến hiệu suất, tính bảo mật và độ phức tạp của việc triển khai.

Trong Sui, Đối tượng được sở hữu tương tự như UTXO và chỉ chủ sở hữu của chúng mới có thể thao tác trên chúng. Các đối tượng cũng có số phiên bản và chủ sở hữu của nó chỉ có thể sử dụng một phiên bản của một đối tượng một lần. Do đó, phiên bản của một đối tượng về cơ bản tương ứng với UTXO.

Về các vấn đề tranh chấp trạng thái, Sui giải quyết chúng thông qua cách xử lý đặc biệt (đặt hàng cục bộ, tương tự như Nhiên liệu) trong SharedObjects.

Cardano

Cardano sử dụng mô hình UTXO mở rộng được gọi là eUTXO. eUTXO hỗ trợ tăng khả năng lập trình trong khi vẫn giữ được những lợi thế của mô hình Bitcoin UTXO.

Ở Cardano, ý nghĩa của trạng thái được mở rộng hơn nữa thông qua các chữ viết và quyền sở hữu trạng thái được xác định theo cách tổng quát hơn. Bộ UTXO được sử dụng để giảm thiểu các vấn đề tranh chấp trạng thái. Cụ thể, eUTXO được tăng cường ở hai khía cạnh:

  1. Mô hình eUTXO bao gồm nhiều địa chỉ tổng quát hơn. Các địa chỉ này không chỉ dựa trên hàm băm của khóa chung mà còn có thể được xác định dựa trên bất kỳ logic nào chỉ định các điều kiện mà eUTXO có thể được sử dụng, cho phép lập trình quyền sở hữu nhà nước.

  2. Ngoài địa chỉ và giá trị, đầu ra có thể mang (gần như) bất kỳ dữ liệu nào, cho phép lập trình ý nghĩa của trạng thái thông qua các tập lệnh.

Cụ thể hơn, eUTXO cho phép người dùng thêm dữ liệu tùy ý ở định dạng giống JSON vào UTXO, được gọi là Datum. Datum cho phép các nhà phát triển cung cấp chức năng giống trạng thái cho các tập lệnh, được liên kết với các UTXO cụ thể.

Hơn nữa, các giao dịch trên Cardano có thể mang các thông số liên quan đến người dùng cụ thể, được gọi là người đổi quà. Redeemer cho phép người khởi tạo giao dịch xác định cách sử dụng UTXO và có thể được các nhà phát triển dApp sử dụng cho nhiều mục đích khác nhau.

Khi một giao dịch được xác thực, tập lệnh xác thực sẽ hoạt động bằng cách sử dụng Datum, Redeemer và ngữ cảnh chứa dữ liệu giao dịch. Tập lệnh này bao gồm logic để sử dụng UTXO khi đáp ứng các điều kiện.

Điều đáng chú ý là eUTXO vẫn đạt được các nhiệm vụ mở rộng thông qua các tập lệnh và khác biệt đáng kể so với khái niệm truyền thống về “hợp đồng thông minh” (Charles Hoskinson, người sáng lập, đề xuất gọi nó là “trình xác thực có thể lập trình”, nhưng thuật ngữ “hợp đồng thông minh” được chấp nhận rộng rãi hơn trên thị trường).

thần kinh

Trong Nervos (CKB), ý nghĩa của trạng thái được trừu tượng hóa bởi TypeScript và quyền sở hữu trạng thái được trừu tượng hóa bằng lockscript. Một mô hình tối ưu hóa UTXO đơn giản dưới dạng mã ô như sau:

pub struct CellOutput {

    dung lượng pub: Dung lượng, 

 dữ liệu pub: Vec<u8>, 

 pub lock: Script, 

 pub type_: Option<Script>, 

 }

Đối với vấn đề tranh chấp giữa các nhà nước, CKB hiện đang thúc đẩy nghiên cứu về Giao dịch mở, nơi người dùng có thể đề xuất một phần UTXO chỉ rõ mục đích của giao dịch và sau đó người mai mối tổng hợp chúng thành một giao dịch hoàn chỉnh.

Mô hình tế bào của Nervos là phiên bản “tổng quát” của UTXO và Jan đã đưa ra lời giải thích chi tiết trên diễn đàn Nervos:

Trọng tâm của Layer1 là trạng thái và với Layer1 là mục tiêu thiết kế, CKB đương nhiên tập trung vào trạng thái.

Ethereum tách lịch sử giao dịch và lịch sử trạng thái thành hai chiều, trong đó các khối và giao dịch đại diện cho các sự kiện kích hoạt chuyển đổi trạng thái chứ không phải chính trạng thái đó. Ngược lại, giao thức Bitcoin hợp nhất các giao dịch và trạng thái thành một chiều duy nhất—giao dịch là trạng thái và trạng thái là giao dịch. Đó là một kiến trúc tập trung xung quanh nhà nước.

Đồng thời, CKB đặt mục tiêu xác minh và lưu giữ không chỉ nValue dưới dạng trạng thái mà còn bất kỳ dữ liệu nào được coi là có giá trị và được đồng thuận phê duyệt để bảo tồn lâu dài. Cấu trúc đầu ra giao dịch của Bitcoin không phù hợp cho mục đích này, nhưng nó đã mang lại cho chúng tôi nguồn cảm hứng dồi dào. Bằng cách khái quát hóa nValue và chuyển đổi nó từ một không gian lưu trữ số nguyên thành một không gian có khả năng chứa bất kỳ dữ liệu nào, chúng ta thu được một “CTxOut” hoặc Ô tổng quát hơn.

Trong một ô, nValue trở thành hai trường: dung lượng và dữ liệu. Các trường này cùng biểu thị một không gian lưu trữ, trong đó dung lượng là số nguyên biểu thị kích thước của không gian tính bằng byte và dữ liệu là nơi lưu trữ trạng thái và có thể chứa bất kỳ chuỗi byte nào. scriptPubKey trở thành khóa, chỉ cần thay đổi tên, thể hiện ai là chủ sở hữu của không gian đồng thuận này—chỉ người có thể cung cấp tham số (chẳng hạn như chữ ký) để thực thi tập lệnh khóa thành công mới có thể “cập nhật” trạng thái trong Ô này . Tổng số byte chiếm toàn bộ CellOutput phải nhỏ hơn hoặc bằng dung lượng. CKB có nhiều Ô và bộ sưu tập của chúng tạo thành trạng thái hoàn chỉnh hiện tại của CKB, lưu trữ kiến thức được chia sẻ thay vì chỉ một loại tiền kỹ thuật số cụ thể.

Giao dịch vẫn thể hiện sự thay đổi/di chuyển của trạng thái. Sự thay đổi trạng thái hoặc “cập nhật” nội dung ô thực sự được thực hiện thông qua việc phá hủy và tạo ra (không phải bằng cách sửa đổi trực tiếp nội dung của ô gốc). Mỗi giao dịch sẽ phá hủy một loạt ô một cách hiệu quả đồng thời tạo ra một loạt ô mới. Các ô mới tạo có chủ mới và lưu trữ dữ liệu mới nhưng tổng dung lượng bị tiêu hủy luôn lớn hơn hoặc bằng tổng dung lượng được tạo ra, đảm bảo không ai có thể tùy tiện tăng dung lượng. Bởi vì năng lực có thể được chuyển giao nhưng không thể tăng lên một cách tùy tiện nên việc sở hữu năng lực tương đương với việc sở hữu một lượng không gian trạng thái đồng thuận tương ứng. Năng lực là tài sản gốc trong mạng CKB. Việc phá hủy một ô chỉ đơn thuần đánh dấu nó là “đã bị phá hủy”, tương tự như cách các UTXO Bitcoin chưa được sử dụng sẽ được chi tiêu và không bị xóa khỏi chuỗi khối về mặt vật lý. Mỗi Ô chỉ có thể bị hủy một lần, giống như mỗi UTXO chỉ có thể được sử dụng một lần.

Đặc điểm của mô hình này là:

  1. Nhà nước có tầm quan trọng hàng đầu.

  2. Quyền sở hữu là một thuộc tính của nhà nước, mỗi bang có một chủ sở hữu duy nhất.

  3. Các quốc gia liên tục bị phá hủy và được tạo ra.

Do đó, một ô là phiên bản tổng quát của UTXO.

Nhiên liệu

Fuel áp dụng mô hình Danh sách truy cập nghiêm ngặt, đây là mô hình tối ưu hóa UTXO dựa trên khái niệm UTXO hợp đồng.

Như đã giới thiệu trước đó, UTXO truyền thống trong BTC chỉ có hai thuộc tính: số lượng coin và chủ sở hữu. Ngược lại, Contract UTXO cung cấp các thuộc tính cơ bản bổ sung, bao gồm số lượng xu, ID hợp đồng, hàm băm mã hợp đồng và gốc lưu trữ.

Nếu sử dụng mô hình thực thi không trạng thái, chỉ Hợp đồng UTXO yêu cầu hàm băm mã hợp đồng và gốc lưu trữ. Trong mô hình thực thi trạng thái, các trường này có thể được bỏ qua trong UTXO hợp đồng, nhưng cần có loại UTXO phần tử lưu trữ riêng biệt. ID UTXO, mã định danh duy nhất cho mỗi UTXO đóng vai trò là khóa trong cơ sở dữ liệu lưu trữ khóa-giá trị, được tạo từ điểm đầu ra của UTXO hoặc biến thể của nó (ví dụ: hàm băm của điểm đầu ra và các trường của nó).

Trong mô hình này, Contract UTXO, tương tự như hợp đồng thông minh, có thể được gọi bởi bất kỳ ai.

Điều cần lưu ý là Fuel cung cấp các chức năng gần giống với hợp đồng thông minh hơn là tập lệnh. Bản thân những hạn chế của mô hình UTXO khiến việc phát triển ứng dụng bằng VM trở nên khó khăn, đặc biệt là trong việc xử lý các vấn đề xung đột UTXO. Nhìn chung có ba giải pháp: thứ nhất, xử lý ngoài chuỗi, chẳng hạn như tổng hợp; thứ hai, sắp xếp trước công việc bổ sung mà Fuel sử dụng; thứ ba, Giao dịch mở được đề cập ở trên trong CKB, trong đó mỗi người dùng có thể đề xuất các giao dịch một phần và người mai mối (tương tự như trình sắp xếp chuỗi) kết hợp chúng thành các giao dịch hoàn chỉnh. Giải pháp tương ứng bằng BTC là PBST.

Phần kết luận

Từ bài viết này, chúng tôi đã hiểu được các nguyên tắc cơ bản của UTXO, nhận ra điểm mạnh và điểm yếu trong mô hình của nó so với mô hình tài khoản/số dư của Ethereum và có được cái nhìn sâu sắc hơn về khái niệm UTXO và các tiện ích mở rộng liên quan của nó.

Là một trong những nguyên tắc thiết kế cốt lõi của Bitcoin, mô hình UTXO đóng một vai trò quan trọng trong việc đảm bảo tính bảo mật và truy xuất nguồn gốc của các giao dịch. Với sự phát triển và mở rộng không ngừng của công nghệ blockchain, mô hình UTXO đã và đang phát triển (chẳng hạn như EUTXO, ô, Danh sách truy cập nghiêm ngặt), cung cấp nhiều khả năng hơn cho giao dịch và quản lý tài sản kỹ thuật số. Thông qua nghiên cứu chuyên sâu và hiểu biết về khái niệm UTXO cũng như các phần mở rộng liên quan của nó, chúng ta có thể nắm bắt tốt hơn bản chất của công nghệ blockchain, tạo nền tảng vững chắc hơn cho các ứng dụng và đổi mới trong tương lai.

Tuyên bố từ chối trách nhiệm:

  1. Bài viết này được in lại từ [极客 Web3], Mọi bản quyền thuộc về tác giả gốc [0xAyA]. Nếu có ý kiến phản đối việc tái bản này, vui lòng liên hệ với nhóm Gate Learn , họ sẽ xử lý kịp thời.
  2. Tuyên bố miễn trừ trách nhiệm pháp lý: Các quan điểm và ý kiến trình bày trong bài viết này chỉ là của tác giả và không cấu thành bất kỳ lời khuyên đầu tư nào.
  3. Việc dịch bài viết sang các ngôn ngữ khác được thực hiện bởi nhóm Gate Learn. Trừ khi được đề cập, việc sao chép, phân phối hoặc đạo văn các bài viết đã dịch đều bị cấm.

Từ BTC đến Sui, ADA và Nervos: Mô hình UTXO và các tiện ích mở rộng

Người mới bắt đầuFeb 29, 2024
Bài viết này giới thiệu mô hình UTXO bằng ngôn ngữ đơn giản, cung cấp cái nhìn tổng quan ngắn gọn về mô hình UTXO và các phương pháp triển khai của BTC, Sui, Cardano, Nervos và Fuel.
Từ BTC đến Sui, ADA và Nervos: Mô hình UTXO và các tiện ích mở rộng

Là một trong những nguyên tắc thiết kế cốt lõi của Bitcoin, mô hình UTXO đã là một mô hình kỹ thuật quan trọng trong lĩnh vực blockchain kể từ khi ra đời. Nó đóng một vai trò quan trọng trong việc đảm bảo an ninh giao dịch và truy xuất nguồn gốc, cung cấp một con đường thay thế ngoài mô hình số dư tài khoản truyền thống. Với sự phát triển và mở rộng liên tục của công nghệ blockchain trong những năm gần đây, bản thân mô hình UTXO đã trải qua quá trình phát triển và mở rộng không ngừng, chẳng hạn như eUTXO, ô, danh sách truy cập nghiêm ngặt và các mô hình khác.

Bài viết này giới thiệu mô hình UTXO bằng ngôn ngữ đơn giản, cung cấp cái nhìn tổng quan ngắn gọn về mô hình UTXO và các phương pháp triển khai của BTC, Sui, Cardano, Nervos và Fuel.

UTXO là gì?

Để minh họa mô hình UTXO, chúng tôi sử dụng một ví dụ:

Hãy tưởng tượng hai người, Alice và Bob, ban đầu mỗi người có 5 USD. Sau đó, xung đột nảy sinh và Alice bị Bob cướp 2 đô la. Phần sở hữu cuối cùng của mỗi người như sau:

Rõ ràng là Alice cuối cùng có 3 đô la, còn Bob cuối cùng giữ được 7 đô la. Phương pháp kế toán giống như số học cơ bản này thường thấy trong các hệ thống ngân hàng và được gọi là “mô hình tài khoản/số dư”. Trong mô hình này, số dư tài khoản tồn tại dưới dạng một giá trị số duy nhất.

Nếu chúng tôi áp dụng một cách tiếp cận khác với mô hình tài khoản, chẳng hạn như sử dụng UTXO để thể hiện việc chuyển giao tài sản giữa Alice và Bob, thì sơ đồ minh họa sẽ có giao diện khác:

Tại thời điểm này, Alice vẫn có 3 đô la và Bob vẫn có 7 đô la, nhưng 7 đô la này không được biểu thị bằng một giá trị số duy nhất. Thay vào đó, chúng được chia thành “$5” và “$2”. Cách tiếp cận độc đáo này có vẻ hơi xa lạ? Đây là phương pháp kế toán độc đáo được gọi là UTXO.

Từ viết tắt tiếng Anh UTXO là viết tắt của Đầu ra giao dịch chưa chi tiêu. Theo phương pháp kế toán này, mỗi giao dịch trên chuỗi được biểu hiện dưới dạng các thay đổi và chuyển khoản trong UTXO. Ví dụ: trong sự kiện giao dịch được đề cập, “$5” sở hữu ban đầu của Alice đóng vai trò là thông số đầu vào, được gắn nhãn là UTXO_0, sẽ được đánh dấu là đã chi tiêu; đồng thời, hệ thống tạo ra “$2” (UTXO_1) và “$3” (UTXO_2) làm tham số đầu ra. UTXO_1 sẽ được chuyển cho Bob và UTXO_2 sẽ được trả lại cho Alice, do đó hoàn tất việc chuyển giao tài sản giữa Alice và Bob.

Trong mô hình UTXO, không có khái niệm rõ ràng về “tài khoản” và “số dư”. UTXO đóng vai trò là cấu trúc dữ liệu hỗ trợ thực hiện giao dịch, ghi lại thông tin như số tiền mà nó đại diện và chỉ mục giao dịch liên quan. Mỗi UTXO đại diện cho một đầu vào giao dịch chưa được chi tiêu, với một chủ sở hữu được chỉ định. Khi một giao dịch xảy ra, một số UTXO nhất định có thể được sử dụng làm đầu vào và sau khi hủy chúng, các UTXO mới sẽ được tạo làm đầu ra giao dịch.

Đây là cách Bitcoin giữ tài khoản: với mỗi giao dịch, UTXO cũ sẽ bị hủy và UTXO mới sẽ được tạo. Tổng số lượng UTXO bị phá hủy bằng với số lượng UTXO mới được tạo (với một phần được phân bổ dưới dạng phí giao dịch cho người khai thác). Điều này đảm bảo rằng tiền không thể được tăng lên một cách tùy tiện.

So sánh giữa mô hình UTXO và Mô hình Tài khoản/Số dư

Giả sử một nhóm người dùng bắt đầu một số lượng lớn yêu cầu giao dịch cùng một lúc. Tình huống này sẽ được xử lý như thế nào khi sử dụng mô hình UTXO so với mô hình tài khoản/số dư?

Trong mô hình tài khoản/số dư, mỗi người dùng có một tài khoản có thông tin số dư được ghi lại. Khi một giao dịch xảy ra, số dư tài khoản tương ứng cần được cập nhật, bao gồm cả thao tác “đọc” và “ghi”. Tuy nhiên, nếu hai giao dịch liên quan đến cùng một tài khoản, điều này thường dẫn đến xung đột đọc-ghi, dẫn đến tranh chấp trạng thái, một tình huống cần phải tránh.

Các hệ thống cơ sở dữ liệu truyền thống thường giải quyết vấn đề tranh chấp đọc-ghi bằng cơ chế “khóa”. Trong trường hợp như vậy, các giao dịch gây tranh chấp cho cùng một dữ liệu thường phải xếp hàng, ngăn cản việc thực hiện đồng thời và giảm hiệu quả xử lý giao dịch. Khi có một số lượng lớn giao dịch đang chờ xử lý, điều này có thể tạo ra tắc nghẽn đáng kể về hiệu suất, khiến các giao dịch đang tranh chấp phải đối mặt với thời gian chờ đợi kéo dài nếu không được xử lý nhanh chóng.

Ngược lại với mô hình số dư tài khoản, mô hình UTXO của Bitcoin được trang bị tốt hơn để xử lý các vấn đề tranh chấp dữ liệu. Theo cách tiếp cận này, thực thể xử lý trực tiếp của mỗi giao dịch không còn là một “tài khoản” cụ thể mà là các UTXO độc lập, riêng lẻ. Vì các UTXO khác nhau không can thiệp lẫn nhau nên mỗi giao dịch trong mạng Bitcoin hoạt động độc lập. Do đó, các nút mạng Bitcoin có thể xử lý đồng thời nhiều giao dịch mà không cần “khóa”, cải thiện đáng kể thông lượng hệ thống và hiệu suất đồng thời.

Ngoài ra, trong mô hình UTXO, ví được mã hóa thường tạo địa chỉ mới cho người dùng sau khi bắt đầu giao dịch. Cách tiếp cận này tăng cường quyền riêng tư, khiến việc liên kết giao dịch với một cá nhân cụ thể trở nên khó khăn hơn. Ngược lại, mô hình tài khoản/số dư sử dụng địa chỉ cố định sẽ dễ bị phân tích liên kết hơn.

Tuy nhiên, mô hình UTXO có những hạn chế. Ban đầu nó được thiết kế để hỗ trợ chuyển tiền đơn giản và không phù hợp để xử lý logic kinh doanh phức tạp. Mặc dù các chức năng cơ bản như đa chữ ký và khóa thời gian có thể được triển khai bằng ngôn ngữ tập lệnh, nhưng thông tin trạng thái tối thiểu mà UTXO của Bitcoin có thể ghi lại khiến nó ít có khả năng xử lý các hoạt động phức tạp hơn.

Những hạn chế của UTXO của Bitcoin đã gián tiếp góp phần vào sự xuất hiện của “Ethereum”. Vitalik, một trong những người đóng góp sớm nhất cho Tạp chí Bitcoin, đã nhận thức rõ về những thiếu sót của Bitcoin. Mô hình tài khoản/số dư, dễ hiểu hơn đối với hầu hết mọi người, giải quyết những thách thức mà UTXO gặp phải trong việc xử lý các ứng dụng trạng thái phong phú. Như Vitalik đã nêu trong báo cáo chính thức của Ethereum:

UTXO có thể được chi tiêu hoặc chưa chi tiêu; không có cơ hội cho các hợp đồng hoặc kịch bản nhiều giai đoạn giữ bất kỳ trạng thái nội bộ nào khác ngoài điều đó. Điều này gây khó khăn cho việc thực hiện các hợp đồng quyền chọn nhiều giai đoạn, ưu đãi trao đổi phi tập trung hoặc các giao thức cam kết mã hóa hai giai đoạn (cần thiết cho tiền thưởng tính toán an toàn). Điều đó cũng có nghĩa là UTXO chỉ có thể được sử dụng để xây dựng các hợp đồng đơn giản, một lần chứ không phải các hợp đồng “trạng thái” phức tạp hơn như các tổ chức phi tập trung và khiến các siêu giao thức khó thực hiện. Trạng thái nhị phân kết hợp với mù giá trị cũng có nghĩa là không thể áp dụng một ứng dụng quan trọng khác, giới hạn rút tiền.

Ứng dụng, tối ưu hóa và mở rộng mô hình UXTO

Trước khi đi sâu vào các ứng dụng và tối ưu hóa khác nhau của mô hình UTXO, hãy phân tích các lĩnh vực cần cải tiến trong khi vẫn duy trì được lợi thế của nó. Những điều này có thể được tóm tắt như sau:

  1. Tóm tắt ý nghĩa của trạng thái được lưu trữ trong UTXO.

  2. Trừng phạt sở hữu nhà nước.

  3. Giải quyết các vấn đề tranh chấp trạng thái khi chia sẻ UTXO.

Trong BTC, ý nghĩa duy nhất của trạng thái là số lượng mã thông báo, quyền sở hữu thường được xác định bằng cách sử dụng khóa chung và tranh chấp trạng thái không được giải quyết rộng rãi vì BTC không được thiết kế cho dApps.

Tùy

Sui cung cấp cho các nhà phát triển hai loại đối tượng: OwnedObject và SharedObject. Cái trước gần giống với UTXO (cụ thể là phiên bản nâng cao), trong khi cái sau có thể so sánh với mô hình tài khoản/số dư. Cả hai có thể được sử dụng đồng thời.

Một Đối tượng có thể được chia sẻ, nghĩa là bất kỳ ai cũng có thể đọc hoặc ghi vào Đối tượng đó. Không giống như OwnedObject có thể thay đổi (chỉ có một người viết), SharedObject yêu cầu sự đồng thuận để ra lệnh đọc và ghi.

Trong các blockchain khác, mọi Đối tượng đều được chia sẻ. Tuy nhiên, các nhà phát triển Sui thường có thể chọn sử dụng OwnedObject, SharedObject hoặc kết hợp cả hai để triển khai các trường hợp sử dụng cụ thể. Lựa chọn này có thể ảnh hưởng đến hiệu suất, tính bảo mật và độ phức tạp của việc triển khai.

Trong Sui, Đối tượng được sở hữu tương tự như UTXO và chỉ chủ sở hữu của chúng mới có thể thao tác trên chúng. Các đối tượng cũng có số phiên bản và chủ sở hữu của nó chỉ có thể sử dụng một phiên bản của một đối tượng một lần. Do đó, phiên bản của một đối tượng về cơ bản tương ứng với UTXO.

Về các vấn đề tranh chấp trạng thái, Sui giải quyết chúng thông qua cách xử lý đặc biệt (đặt hàng cục bộ, tương tự như Nhiên liệu) trong SharedObjects.

Cardano

Cardano sử dụng mô hình UTXO mở rộng được gọi là eUTXO. eUTXO hỗ trợ tăng khả năng lập trình trong khi vẫn giữ được những lợi thế của mô hình Bitcoin UTXO.

Ở Cardano, ý nghĩa của trạng thái được mở rộng hơn nữa thông qua các chữ viết và quyền sở hữu trạng thái được xác định theo cách tổng quát hơn. Bộ UTXO được sử dụng để giảm thiểu các vấn đề tranh chấp trạng thái. Cụ thể, eUTXO được tăng cường ở hai khía cạnh:

  1. Mô hình eUTXO bao gồm nhiều địa chỉ tổng quát hơn. Các địa chỉ này không chỉ dựa trên hàm băm của khóa chung mà còn có thể được xác định dựa trên bất kỳ logic nào chỉ định các điều kiện mà eUTXO có thể được sử dụng, cho phép lập trình quyền sở hữu nhà nước.

  2. Ngoài địa chỉ và giá trị, đầu ra có thể mang (gần như) bất kỳ dữ liệu nào, cho phép lập trình ý nghĩa của trạng thái thông qua các tập lệnh.

Cụ thể hơn, eUTXO cho phép người dùng thêm dữ liệu tùy ý ở định dạng giống JSON vào UTXO, được gọi là Datum. Datum cho phép các nhà phát triển cung cấp chức năng giống trạng thái cho các tập lệnh, được liên kết với các UTXO cụ thể.

Hơn nữa, các giao dịch trên Cardano có thể mang các thông số liên quan đến người dùng cụ thể, được gọi là người đổi quà. Redeemer cho phép người khởi tạo giao dịch xác định cách sử dụng UTXO và có thể được các nhà phát triển dApp sử dụng cho nhiều mục đích khác nhau.

Khi một giao dịch được xác thực, tập lệnh xác thực sẽ hoạt động bằng cách sử dụng Datum, Redeemer và ngữ cảnh chứa dữ liệu giao dịch. Tập lệnh này bao gồm logic để sử dụng UTXO khi đáp ứng các điều kiện.

Điều đáng chú ý là eUTXO vẫn đạt được các nhiệm vụ mở rộng thông qua các tập lệnh và khác biệt đáng kể so với khái niệm truyền thống về “hợp đồng thông minh” (Charles Hoskinson, người sáng lập, đề xuất gọi nó là “trình xác thực có thể lập trình”, nhưng thuật ngữ “hợp đồng thông minh” được chấp nhận rộng rãi hơn trên thị trường).

thần kinh

Trong Nervos (CKB), ý nghĩa của trạng thái được trừu tượng hóa bởi TypeScript và quyền sở hữu trạng thái được trừu tượng hóa bằng lockscript. Một mô hình tối ưu hóa UTXO đơn giản dưới dạng mã ô như sau:

pub struct CellOutput {

    dung lượng pub: Dung lượng, 

 dữ liệu pub: Vec<u8>, 

 pub lock: Script, 

 pub type_: Option<Script>, 

 }

Đối với vấn đề tranh chấp giữa các nhà nước, CKB hiện đang thúc đẩy nghiên cứu về Giao dịch mở, nơi người dùng có thể đề xuất một phần UTXO chỉ rõ mục đích của giao dịch và sau đó người mai mối tổng hợp chúng thành một giao dịch hoàn chỉnh.

Mô hình tế bào của Nervos là phiên bản “tổng quát” của UTXO và Jan đã đưa ra lời giải thích chi tiết trên diễn đàn Nervos:

Trọng tâm của Layer1 là trạng thái và với Layer1 là mục tiêu thiết kế, CKB đương nhiên tập trung vào trạng thái.

Ethereum tách lịch sử giao dịch và lịch sử trạng thái thành hai chiều, trong đó các khối và giao dịch đại diện cho các sự kiện kích hoạt chuyển đổi trạng thái chứ không phải chính trạng thái đó. Ngược lại, giao thức Bitcoin hợp nhất các giao dịch và trạng thái thành một chiều duy nhất—giao dịch là trạng thái và trạng thái là giao dịch. Đó là một kiến trúc tập trung xung quanh nhà nước.

Đồng thời, CKB đặt mục tiêu xác minh và lưu giữ không chỉ nValue dưới dạng trạng thái mà còn bất kỳ dữ liệu nào được coi là có giá trị và được đồng thuận phê duyệt để bảo tồn lâu dài. Cấu trúc đầu ra giao dịch của Bitcoin không phù hợp cho mục đích này, nhưng nó đã mang lại cho chúng tôi nguồn cảm hứng dồi dào. Bằng cách khái quát hóa nValue và chuyển đổi nó từ một không gian lưu trữ số nguyên thành một không gian có khả năng chứa bất kỳ dữ liệu nào, chúng ta thu được một “CTxOut” hoặc Ô tổng quát hơn.

Trong một ô, nValue trở thành hai trường: dung lượng và dữ liệu. Các trường này cùng biểu thị một không gian lưu trữ, trong đó dung lượng là số nguyên biểu thị kích thước của không gian tính bằng byte và dữ liệu là nơi lưu trữ trạng thái và có thể chứa bất kỳ chuỗi byte nào. scriptPubKey trở thành khóa, chỉ cần thay đổi tên, thể hiện ai là chủ sở hữu của không gian đồng thuận này—chỉ người có thể cung cấp tham số (chẳng hạn như chữ ký) để thực thi tập lệnh khóa thành công mới có thể “cập nhật” trạng thái trong Ô này . Tổng số byte chiếm toàn bộ CellOutput phải nhỏ hơn hoặc bằng dung lượng. CKB có nhiều Ô và bộ sưu tập của chúng tạo thành trạng thái hoàn chỉnh hiện tại của CKB, lưu trữ kiến thức được chia sẻ thay vì chỉ một loại tiền kỹ thuật số cụ thể.

Giao dịch vẫn thể hiện sự thay đổi/di chuyển của trạng thái. Sự thay đổi trạng thái hoặc “cập nhật” nội dung ô thực sự được thực hiện thông qua việc phá hủy và tạo ra (không phải bằng cách sửa đổi trực tiếp nội dung của ô gốc). Mỗi giao dịch sẽ phá hủy một loạt ô một cách hiệu quả đồng thời tạo ra một loạt ô mới. Các ô mới tạo có chủ mới và lưu trữ dữ liệu mới nhưng tổng dung lượng bị tiêu hủy luôn lớn hơn hoặc bằng tổng dung lượng được tạo ra, đảm bảo không ai có thể tùy tiện tăng dung lượng. Bởi vì năng lực có thể được chuyển giao nhưng không thể tăng lên một cách tùy tiện nên việc sở hữu năng lực tương đương với việc sở hữu một lượng không gian trạng thái đồng thuận tương ứng. Năng lực là tài sản gốc trong mạng CKB. Việc phá hủy một ô chỉ đơn thuần đánh dấu nó là “đã bị phá hủy”, tương tự như cách các UTXO Bitcoin chưa được sử dụng sẽ được chi tiêu và không bị xóa khỏi chuỗi khối về mặt vật lý. Mỗi Ô chỉ có thể bị hủy một lần, giống như mỗi UTXO chỉ có thể được sử dụng một lần.

Đặc điểm của mô hình này là:

  1. Nhà nước có tầm quan trọng hàng đầu.

  2. Quyền sở hữu là một thuộc tính của nhà nước, mỗi bang có một chủ sở hữu duy nhất.

  3. Các quốc gia liên tục bị phá hủy và được tạo ra.

Do đó, một ô là phiên bản tổng quát của UTXO.

Nhiên liệu

Fuel áp dụng mô hình Danh sách truy cập nghiêm ngặt, đây là mô hình tối ưu hóa UTXO dựa trên khái niệm UTXO hợp đồng.

Như đã giới thiệu trước đó, UTXO truyền thống trong BTC chỉ có hai thuộc tính: số lượng coin và chủ sở hữu. Ngược lại, Contract UTXO cung cấp các thuộc tính cơ bản bổ sung, bao gồm số lượng xu, ID hợp đồng, hàm băm mã hợp đồng và gốc lưu trữ.

Nếu sử dụng mô hình thực thi không trạng thái, chỉ Hợp đồng UTXO yêu cầu hàm băm mã hợp đồng và gốc lưu trữ. Trong mô hình thực thi trạng thái, các trường này có thể được bỏ qua trong UTXO hợp đồng, nhưng cần có loại UTXO phần tử lưu trữ riêng biệt. ID UTXO, mã định danh duy nhất cho mỗi UTXO đóng vai trò là khóa trong cơ sở dữ liệu lưu trữ khóa-giá trị, được tạo từ điểm đầu ra của UTXO hoặc biến thể của nó (ví dụ: hàm băm của điểm đầu ra và các trường của nó).

Trong mô hình này, Contract UTXO, tương tự như hợp đồng thông minh, có thể được gọi bởi bất kỳ ai.

Điều cần lưu ý là Fuel cung cấp các chức năng gần giống với hợp đồng thông minh hơn là tập lệnh. Bản thân những hạn chế của mô hình UTXO khiến việc phát triển ứng dụng bằng VM trở nên khó khăn, đặc biệt là trong việc xử lý các vấn đề xung đột UTXO. Nhìn chung có ba giải pháp: thứ nhất, xử lý ngoài chuỗi, chẳng hạn như tổng hợp; thứ hai, sắp xếp trước công việc bổ sung mà Fuel sử dụng; thứ ba, Giao dịch mở được đề cập ở trên trong CKB, trong đó mỗi người dùng có thể đề xuất các giao dịch một phần và người mai mối (tương tự như trình sắp xếp chuỗi) kết hợp chúng thành các giao dịch hoàn chỉnh. Giải pháp tương ứng bằng BTC là PBST.

Phần kết luận

Từ bài viết này, chúng tôi đã hiểu được các nguyên tắc cơ bản của UTXO, nhận ra điểm mạnh và điểm yếu trong mô hình của nó so với mô hình tài khoản/số dư của Ethereum và có được cái nhìn sâu sắc hơn về khái niệm UTXO và các tiện ích mở rộng liên quan của nó.

Là một trong những nguyên tắc thiết kế cốt lõi của Bitcoin, mô hình UTXO đóng một vai trò quan trọng trong việc đảm bảo tính bảo mật và truy xuất nguồn gốc của các giao dịch. Với sự phát triển và mở rộng không ngừng của công nghệ blockchain, mô hình UTXO đã và đang phát triển (chẳng hạn như EUTXO, ô, Danh sách truy cập nghiêm ngặt), cung cấp nhiều khả năng hơn cho giao dịch và quản lý tài sản kỹ thuật số. Thông qua nghiên cứu chuyên sâu và hiểu biết về khái niệm UTXO cũng như các phần mở rộng liên quan của nó, chúng ta có thể nắm bắt tốt hơn bản chất của công nghệ blockchain, tạo nền tảng vững chắc hơn cho các ứng dụng và đổi mới trong tương lai.

Tuyên bố từ chối trách nhiệm:

  1. Bài viết này được in lại từ [极客 Web3], Mọi bản quyền thuộc về tác giả gốc [0xAyA]. Nếu có ý kiến phản đối việc tái bản này, vui lòng liên hệ với nhóm Gate Learn , họ sẽ xử lý kịp thời.
  2. Tuyên bố miễn trừ trách nhiệm pháp lý: Các quan điểm và ý kiến trình bày trong bài viết này chỉ là của tác giả và không cấu thành bất kỳ lời khuyên đầu tư nào.
  3. Việc dịch bài viết sang các ngôn ngữ khác được thực hiện bởi nhóm Gate Learn. Trừ khi được đề cập, việc sao chép, phân phối hoặc đạo văn các bài viết đã dịch đều bị cấm.
Bắt đầu giao dịch
Đăng ký và giao dịch để nhận phần thưởng USDTEST trị giá
$100
$5500