1. Hiện tại chuỗi đang sử dụng những mô hình nào?
Các chuỗi nổi tiếng như Ethereum, EOS và Solana đều sử dụng mô hình tài khoản, thậm chí có thể nói rằng hơn 90% dự án sử dụng mô hình tài khoản, trong khi chỉ một số dự án đã thành lập sử dụng mô hình UTXO, chẳng hạn như BTC và DOGE. . , LTC, tất nhiên, một số dự án tương đối mới cũng sử dụng mô hình này, chẳng hạn như FUEL sử dụng sơ đồ OP trong Layer2.
2. Mô hình tài khoản là gì?
Hiểu một cách đơn giản thì đó là hệ thống tài khoản ngân hàng, chẳng hạn như chuyển khoản giữa các ngân hàng, chuyển khoản từ Alipay, WeChat, v.v., đều thuộc mô hình tài khoản. Hãy để tôi cho bạn một ví dụ:
Nếu A có 100 và B có 100
Lúc này, A chuyển cho B 50 nhân dân tệ.
Biểu hiện trong hệ thống là
A-50,B +50
Vì vậy sự cân bằng của họ
A50, B150
Đây là một sự chuyển giao.
Giả sử A vẫn còn 100 nhân dân tệ và anh ta muốn chuyển 1 nhân dân tệ cho 100 chủ tài khoản mới.
Lúc này, A cần chuyển 1 tệ cho 100 người cùng một lúc.
1
A -1, ngôi thứ nhất +1
Vì vậy sự cân bằng của họ
A 99, ngôi thứ nhất 1
Giao dịch thứ 2
A -1, người thứ 2 +1
Vì vậy sự cân bằng của họ
A 98, người thứ 2 1
Giao dịch thứ 3
A -1, người thứ 3 +1
Vì vậy sự cân bằng của họ
A 97, người thứ 3 1
Và cứ thế
......
Số 100
A -1, người thứ 100 +1
Vì vậy sự cân bằng của họ
A 0, người thứ 100 1
Về mặt lý thuyết, bạn cần chuyển tiền 100 lần và lần chuyển tiền tiếp theo phải được hoàn thành trước lần chuyển tiền trước đó, nếu không, số dư tài khoản không thể được đảm bảo nhất quán và sẽ có sự nhầm lẫn về việc có nhiều lần chuyển tiền hay số dư có đủ để chuyển tiền hay không.
Về lý thuyết, khi số lượng giao dịch tăng lên, thời gian thực hiện sẽ tăng lên.
3. Mô hình UTXO là gì?
Như đã đề cập trước đó, nhiều thương hiệu lớn lâu đời sử dụng UTXO và Bitcoin, tổ tiên của vòng tròn này, cũng sử dụng mô hình UTXO. Nhân tiện, đồng tiền kỹ thuật số hợp pháp DCEP do nước ta phát hành cũng dựa trên mô hình UTXO, vì vậy mô hình này phải có những đặc điểm riêng.
UTXO là viết tắt của Unspent Transaction Output, có nghĩa là "đầu ra giao dịch chưa sử dụng". Mô hình của nó hơi giống với hệ thống tiền mặt trong cuộc sống hàng ngày. Ví dụ:
A có một chiếc ví (ví thật) chứa các tờ tiền 1 nhân dân tệ, 10 nhân dân tệ và 100 nhân dân tệ.
A muốn đưa cho B, C và D lần lượt 1 nhân dân tệ.
A Có ba cách
Cách thứ nhất: lấy ra 1 tệ và đưa cho B.
Cách thứ hai: đưa cho C 10 tệ và nhận lại 9 tệ tiền thừa.
Lựa chọn thứ ba: đưa cho D tờ 100 nhân dân tệ và lấy lại 99 nhân dân tệ.
Cả ba phương pháp đều có thể hoàn tất giao dịch này.
Quay lại chuỗi, hãy tưởng tượng rằng mỗi mệnh giá tiền ở đây thực sự là một UTXO trên chuỗi. UTXO đang sử dụng không được chuyển giao mà liên tục bị phá hủy và xây dựng lại. Ví dụ:
A chuyển tiền cho C bằng phương pháp thứ hai. UTXO có mệnh giá 10 nhân dân tệ sẽ bị hủy và hệ thống sẽ in lại một UTXO có mệnh giá 1 nhân dân tệ và một UTXO có mệnh giá 9 nhân dân tệ. 1 tệ sẽ được đưa cho C, và 9 tệ sẽ được trả lại cho A.
Phương pháp thứ ba cũng tương tự. Đồng 100 nhân dân tệ bị hủy, in ra một đồng UTXO mệnh giá 1 nhân dân tệ và một đồng UTXO mệnh giá 99 nhân dân tệ. 1 tệ được đưa cho D và 99 tệ được trả lại cho A.
Đây là sự khác biệt giữa phương thức chuyển tiền UTXO và mô hình tài khoản. Điều thậm chí còn tuyệt vời hơn nữa là mô hình UTXO có thể chuyển giao song song. Vì sự cân bằng tồn tại thông qua UTXO phi tập trung, nên mỗi mệnh giá thực sự có thể được chuyển cho nhiều người khác nhau cùng một lúc. Ba phương pháp trên có thể được thực hiện đồng thời trong một giao dịch vì không liên quan đến vấn đề thống nhất tài khoản. Mỗi UTXO được tính toán độc lập.
Khi chúng ta so sánh mô hình tài khoản ở trên, mỗi giao dịch phải dựa trên việc hoàn thành giao dịch trước đó. Có thể hình dung được khoảng cách hiệu suất. Điều này giải thích tại sao tiền kỹ thuật số của ngân hàng trung ương sử dụng mô hình UTXO. Nếu không, làm sao Thâm Quyến có thể gửi 10 triệu nhân dân tệ kỹ thuật số tới 50.000 ví điện tử?
Chúng ta hãy quay lại ví dụ trên.
A có 100 nhân dân tệ và muốn chuyển 1 nhân dân tệ cho 100 khách hàng mới đã mở tài khoản.
Một UTXO có mệnh giá 100 có thể được chia thành 100 UTXO có mệnh giá 1 nhân dân tệ, sau đó phân phối trực tiếp cho 100 người trong một giao dịch, giao dịch này được hoàn thành ngay lập tức.
Nói tóm lại, hãy nghĩ về giá trị thực của UTXO như một loại tiền mặt linh hoạt hơn, liên tục bị phá hủy và xây dựng lại trên chuỗi.
Nếu bạn muốn biết có bao nhiêu tiền trong địa chỉ ví này, bạn cần đếm số lượng UTXO có số dư và cộng chúng lại.
4. Ưu điểm và nhược điểm của mô hình tài khoản và UTXO
Ưu điểm của mô hình tài khoản:
Hợp đồng được lưu trữ trong Tài khoản dưới dạng mã và Tài khoản có trạng thái riêng. Mô hình này có khả năng lập trình tốt hơn, dễ hiểu hơn đối với các nhà phát triển và có phạm vi kịch bản rộng hơn.
Giao dịch theo lô có chi phí thấp hơn. Hãy tưởng tượng rằng nhóm khai thác trả cho thợ đào một khoản phí. Vì mỗi Đầu vào và Đầu ra trong UTXO yêu cầu một tập lệnh Chứng kiến hoặc tập lệnh Khóa riêng biệt nên bản thân giao dịch sẽ rất lớn và cả xác minh chữ ký và lưu trữ giao dịch đều sẽ tiêu tốn các tài nguyên có giá trị trên chuỗi. Mô hình Tài khoản có thể giảm đáng kể chi phí thông qua hợp đồng.
Nhược điểm của mô hình tài khoản:
Không có sự phụ thuộc giữa các giao dịch trong mô hình Tài khoản và vấn đề phát lại cần phải được giải quyết. Ethereum giải quyết vấn đề này như thế nào? Chúng ta biết rằng Ethereum sử dụng phương pháp giá trị Nonce duy nhất. Có một trường Nonce trong mỗi giao dịch Tx. Đối với mỗi người dùng, Nonce này không thể được lặp lại, do đó tránh được các cuộc tấn công phát lại.
Để triển khai Lightning Network/Raiden Network, Plasma, v.v., bằng chứng của người dùng yêu cầu cơ chế Proof phức tạp hơn và việc di chuyển trạng thái từ chuỗi phụ sang chuỗi chính yêu cầu giao thức phức tạp hơn.
Ưu điểm của UTXO:
Quá trình tính toán diễn ra ngoài chuỗi và bản thân giao dịch vừa là kết quả vừa là bằng chứng. Nút chỉ cần thực hiện xác minh và không cần thực hiện thêm các tính toán nào đối với giao dịch, cũng không cần lưu trữ trạng thái bổ sung. Việc tính toán UTXO đầu ra của chính giao dịch được hoàn tất trong ví, do đó gánh nặng tính toán của giao dịch được ví hoàn toàn chịu trách nhiệm, giúp giảm bớt gánh nặng cho chuỗi ở một mức độ nhất định.
Ngoại trừ các giao dịch trên Coinbase, Đầu vào của giao dịch luôn được liên kết với UTXO. Các giao dịch không thể được phát lại và thứ tự cũng như sự phụ thuộc của các giao dịch có thể được xác minh dễ dàng, đồng thời cũng có thể dễ dàng chứng minh liệu các giao dịch đã được thực hiện hay chưa.
Mô hình UTXO không có trạng thái và dễ xử lý đồng thời hơn.
Đối với các giao dịch kiểu P2SH, tính riêng tư sẽ tốt hơn. Các thông tin đầu vào trong giao dịch không liên quan đến nhau và các kỹ thuật như CoinJoin có thể được sử dụng để tăng tính riêng tư.
Nhược điểm của UTXO:
Nó không thể triển khai một số logic phức tạp và khả năng lập trình kém. Đối với các hợp đồng có logic phức tạp hoặc yêu cầu bảo toàn trạng thái, việc triển khai sẽ khó khăn và tỷ lệ sử dụng không gian trạng thái tương đối thấp.
Khi Đầu vào lớn, số lượng tập lệnh chứng kiến cũng sẽ tăng lên. Bản thân chữ ký tiêu tốn rất nhiều CPU và dung lượng lưu trữ.
5. Sự khác biệt cơ bản giữa mô hình tài khoản và UTXO là gì?
Số dư tài khoản
Mô hình tài khoản: Bạn có thể dễ dàng và rõ ràng thấy được số tiền trong tài khoản.
Mô hình UTXO: Đếm số lượng UTXO theo địa chỉ và kết quả của việc cộng chúng lại là số dư.
Khi số lượng giao dịch tăng theo cấp số nhân
Mô hình tài khoản: Sẽ ngày càng khó khăn hơn.
Mô hình UTXO: hỗ trợ tính đồng thời cao.
Theo quan điểm của các nhà phát triển/hợp đồng thông minh
Mô hình tài khoản phù hợp với thói quen logic của nhà phát triển và tương đối dễ viết logic
Lập trình tập lệnh UTXO tương đối phức tạp


