Skip to main content

Hiểu về giao dịch trong giao dịch

Ngày 07 tháng 10 năm 2023 - Chia sẻ bài viết này trên Twitter | FacebookTelegram

Cardano cho phép bạn gửi nhiều tài sản cho nhiều người nhận trong một giao dịch. Thuật ngữ 'giao dịch trong giao dịch' đôi khi không phù hợp khi được sử dụng cho tính năng này. Hãy giải thích các giao dịch trong mạng sử dụng mô hình kế toán UTxO khác với các giao dịch trong mạng sử dụng mô hình dựa trên tài khoản (Accounting) như thế nào. Bạn cũng sẽ tìm hiểu lý do tại sao số liệu TPS không phù hợp với Cardano, nhưng sử dụng nó cho Ethereum thì không sao.

Tác động của mô hình kế toán đến giao dịch và khả năng mở rộng

Cardano sử dụng mô hình kế toán UTxO (đầu ra giao dịch chưa chi tiêu). UTxO đại diện cho một số lượng và loại tài sản nhất định.

Mỗi giao dịch sử dụng một số UTxO từ các giao dịch trước đó (UTxO là đầu vào của giao dịch) và tạo ra các UTxO mới có thể được sử dụng làm đầu vào cho các giao dịch trong tương lai.

Trong bối cảnh giao dịch, chúng ta có thể gọi là UTxO đầu vào và UTxO đầu ra hay đơn giản là dùng thuật ngữ đầu vào và đầu ra. Đó này cũng điều tương tự nhau.

Giao dịch Cardano thay đổi chủ sở hữu của UTxO. UTxO có địa chỉ cho biết ai sở hữu nó và có thể chi tiêu nó. Đầu ra giao dịch (UTxO) có địa chỉ mới thuộc về người nhận giao dịch. Giao dịch chuyển quyền sở hữu UTxO từ người gửi sang người nhận.

Một giao dịch có thể có nhiều đầu vào và nhiều đầu ra, đồng thời mỗi đầu ra có thể có một giá trị và loại tài sản khác nhau. Mỗi đầu ra có thể được gửi đến một người nhận khác nhau.

Trạng thái tổng thể (global state) của Cardano (tức là số dư ví của người dùng) không được dùng với các tài khoản hoặc ví trong bối cảnh sổ cái. Trạng thái chỉ sử dụng bộ UTxO, là tập hợp tất cả các đầu ra giao dịch chưa được chi tiêu trên mạng. Bộ UTxO thể hiện sự phân bổ tài sản hiện tại giữa những người dùng Cardano.

Lợi ích của mô hình UTxO đối với khả năng mở rộng là gì?

Khả năng gửi nhiều nội dung đến nhiều người nhận làm giảm quy mô giao dịch (và do đó giảm phí), điều này có lợi cho khả năng mở rộng. Điều này cho phép có nhiều giao dịch hơn để phù hợp với một khối.

Quá trình xác minh rất đơn giản và hiệu quả, vì mạng chỉ cần kiểm tra xem đầu vào của giao dịch có phải là UTxO hợp lệ từ các giao dịch trước đó hay không và tổng giá trị của đầu vào bằng hoặc lớn hơn tổng giá trị của đầu ra.

Mạng không cần theo dõi số dư của từng tài khoản hoặc thực hiện bất kỳ logic phức tạp nào liên quan đến hợp đồng thông minh, như Ethereum (chúng ta sẽ nói thêm về điều này sau). Cardano không theo dõi từng tài khoản (Cardano theo dõi từng UTxO). Mỗi UTxO có thể được xác minh độc lập với các UTxO khác, miễn là chúng không được chi tiêu cho cùng một giao dịch. Nó tương tự trong trường hợp xác nhận tập lệnh. Việc xác thực tập lệnh luôn đề cập đến một UTxO duy nhất.

Mô hình UTxO cho phép xử lý song song các giao dịch không chia sẻ bất kỳ đầu vào nào, điều này có thể cải thiện khả năng mở rộng và thông lượng. Tuy nhiên, điều này cũng đòi hỏi một giao thức đồng thuận có thể xử lý các giao dịch đồng thời và giải quyết xung đột.

Có thể nói, các giao dịch Cardano song song theo nghĩa là chúng có thể phục vụ nhiều người nhận với các tài sản khác nhau trong một giao dịch. Nhiều người tham gia được mạng phục vụ trong một lần xác thực duy nhất. Việc xác thực với nhiều người tham gia tất nhiên đòi hỏi nhiều hơn về tài nguyên máy tính. Tuy nhiên, sẽ ít đòi hỏi hơn so với việc tạo các giao dịch riêng biệt cho cùng một số lượng người nhận.

Chúng ta hãy xem mô hình dựa trên tài khoản mà Ethereum sử dụng. Điều quan trọng là phải hiểu trạng thái chung toàn cầu và cách Ethereum hoạt động với số dư của người dùng, tức là với các tài khoản.

Trạng thái chung toàn cầu của Ethereum là trạng thái hiện tại của tất cả các tài khoản (số dư của người dùng) và hợp đồng trên mạng. Mỗi tài khoản Ethereum có số dư ETH và các token khác. Trạng thái chung toàn cầu của Ethereum là cần thiết để khóa trong quá trình xử lý mọi giao dịch vì nó yêu cầu (gần như bắt buộc) thực thi mã.

Giao dịch chỉ đơn giản là chuyển giá trị từ tài khoản này sang tài khoản khác nên chúng chỉ cập nhật số dư của người dùng. Ví dụ: một giao dịch khấu trừ 10 token từ tài khoản của Alice và thêm chúng vào tài khoản của Bob.

Token ERC-20 được xác định bởi các hợp đồng thông minh triển khai giao diện tiêu chuẩn để chuyển và số dư token. Không thể chuyển token ERC-20 mà không sử dụng hợp đồng thông minh.

Có hai loại giao dịch trong Ethereum: giao dịch chuyển giá trị và giao dịch hợp đồng thông minh. Giao dịch chuyển giá trị chỉ có thể chuyển ETH chứ không thể chuyển các token khác. Nó chỉ có thể có một người gửi và một người nhận. Ethereum có thể gửi nhiều tài sản trong một giao dịch, nhưng chỉ khi giao dịch đó liên quan đến việc thực hiện hợp đồng thông minh. Hợp đồng thông minh cũng có thể triển khai logic để chuyển các token này đến những người nhận khác nhau. Việc Ethereum gửi nhiều tài sản cho nhiều người nhận là điều không bình thường so với Cardano.

Và, việc xử lý giao dịch trong Ethereum gần như luôn yêu cầu mạng thực thi mã liên quan đến giao dịch và cập nhật trạng thái của từng tài khoản tương ứng.

Trạng thái của mỗi tài khoản bao gồm (bên cạnh những thứ khác) số dư và số nonce của tài khoản đó. Nonce là một con số đếm số lượng giao dịch mà một tài khoản đã gửi.

Trạng thái chung toàn cầu của Ethereum cần phải được khóa trong quá trình này vì mỗi giao dịch phụ thuộc vào trạng thái tài khoản của người gửi, trạng thái này có thể thay đổi do các giao dịch khác.

Ví dụ: nếu Alice gửi một giao dịch cho Bob với số nonce là 1, sau đó gửi một giao dịch khác cho Carol với số nonce là 2, thì mạng cần đảm bảo rằng giao dịch đầu tiên được xử lý trước giao dịch thứ hai, nếu không, kết quả sẽ là trong quá trình chuyển đổi trạng thái không hợp lệ.

Tác động của việc khóa trạng thái chung được chia sẻ trong quá trình xử lý từng giao dịch là nó hạn chế khả năng mở rộng và thông lượng của mạng.

Khóa trạng thái chung được chia sẻ có nghĩa là các giao dịch có chung người gửi hoặc người nhận phải được xử lý theo kiểu tuần tự, điều này có thể tạo ra tắc nghẽn và chậm trễ. Ví dụ: nếu Alice gửi 10 giao dịch đến những người nhận khác nhau trong một khoảng thời gian ngắn, mỗi giao dịch phải đợi giao dịch trước đó được xác nhận trước khi có thể xử lý. Điều này có thể làm tăng độ trễ và chi phí của mỗi giao dịch.

Sự khác biệt giữa mô hình UTxO và mô hình dựa trên tài khoản là Cardano hoạt động với các UTxO độc lập với nhau (cho phép song song hóa), trong khi Ethereum hoạt động với số dư tài khoản phụ thuộc lẫn nhau (buộc phải xử lý tuần tự).

Có thể bạn đã hiểu rằng thuật ngữ 'giao dịch trong giao dịch' về cơ bản đề cập đến khả năng gửi nhiều nội dung đến nhiều người nhận trong một giao dịch. Theo thuật ngữ Ethereum, chúng ta có thể nói rằng một giao dịch sẽ điều chỉnh nhiều số dư.

Việc thiết kế các mô hình kế toán có tác động không chỉ đến khả năng mở rộng mà còn đến việc đo lường thông lượng mạng.

Về sự phù hợp của số liệu TPS cho Blockchain

TPS (Giao dịch mỗi giây) là thước đo số lượng giao dịch mà mạng có thể xử lý trong một giây. TPS có thể cho chúng tôi biết có bao nhiêu người đang sử dụng hoặc có thể sử dụng mạng vào bất kỳ thời điểm nào. Số liệu TPS giả định rằng một giao dịch sẽ chuyển giá trị giữa một người gửi và một người nhận. Tuy nhiên, nó có một nhược điểm. Giả định này không hợp lệ đối với toàn ngành công nghiệp Blockchain.

TPS thường được sử dụng để đánh giá hiệu suất và khả năng mở rộng của hệ thống máy tính, đặc biệt là các hệ thống xử lý số lượng lớn giao dịch tài chính, chẳng hạn như hệ thống thanh toán, sàn giao dịch và ngân hàng. TPS phù hợp với các hệ thống tài chính chính thống vì giao dịch thường diễn ra giữa hai người tham gia bằng tài khoản ngân hàng.

Có thể sử dụng số liệu TPS trong ngành công nghiệp Blockchain. Nhưng có một nhược điểm. Nếu chúng ta muốn so sánh Blockchain với các mô hình kế toán khác nhau thì số liệu này không phù hợp. Đối với Ethereum, số liệu TPS sẽ phù hợp hơn so với Cardano.

Mặc dù Ethereum có thể gửi nhiều tài sản đến nhiều người nhận trong một giao dịch nhưng điều này không phổ biến lắm. TPS do đó tương ứng với thực tế mặc dù nó có thể không chính xác.

Trong mạng Cardano, chúng ta có thể thấy các giao dịch phức tạp chuyển nhiều tài sản đến nhiều người nhận ở hầu hết mọi khối. Do đó, số liệu TPS không phù hợp và không cung cấp con số chính xác.

Trong 24 giờ qua, Cardano đã xử lý 18.759 giao dịch đơn giản và 30.481 giao dịch có Smart Contract (SC). Ngoài ra, các giao dịch không phải SC có thể chuyển nhiều tài sản cho nhiều người nhận. Tuy nhiên, điều này phổ biến hơn với các giao dịch SC (thường là với các ứng dụng DEX).

Một trong những khối Cardano gần đây có 32 giao dịch. Số liệu TPS đạt tới 1.6. Tuy nhiên, nếu chúng ta kiểm tra khối chặt chẽ hơn, chúng ta sẽ thấy rằng số lượng địa chỉ người nhận tổng cộng là 62. Nếu điều chỉnh TPS cho phù hợp, chúng ta sẽ có số 3.1. Có tổng cộng 189 UTxO trong khối.

Với Ethereum, một khối tương tự với 32 giao dịch rất có thể sẽ chỉ có 32 người nhận, do đó 32 số dư sẽ được điều chỉnh.

Nếu các nhà phân tích muốn đo thông lượng mạng của Cardano, họ cần nói kỹ hơn và xem xét nội dung của các giao dịch. Số liệu phù hợp sẽ giống như Số yêu cầu mỗi giây hoặc Số người nhận mỗi giây.

Lời kết

Trong bối cảnh rộng hơn, cần phải nhận ra rằng Blockchain không có thể nói đáp ứng chức năng của một mạng giao dịch như PayPal. Blockchain, hay đúng hơn là nền tảng hợp đồng thông minh, có thể giống như một loại lớp thanh toán chính cho các lớp cao hơn hoặc một loại lớp cơ sở. Tài sản sẽ được đúc trên một Blockchain nhằm bảo vệ chính sách tiền tệ của họ, nhưng người dùng có thể sẽ sử dụng chúng trong các mạng khác. Tương lai là không chắc chắn về vấn đề này, nhưng hiện tại có vẻ như vậy.

Người dùng sử dụng Cardano chủ yếu thông qua các ứng dụng, bằng chứng là thành phần của các giao dịch trong khối. Việc có nhiều yêu cầu hơn trong giao dịch là điều hợp lý vì nó tiết kiệm lĩnh vực trong khối và người dùng tiết kiệm phí.

Nguồn bài viết tại đây


Picture


Đọc thêm các bài viết liên quan tại thẻ Tags bên dưới