Mô hình tài khoản là mô hình kế toán chính của sổ cái chung (blockchain). Giống như mô hình UTXO, nó được sử dụng để ghi lại, lưu trữ và thực hiện các giao dịch trên chuỗi. Mô hình tài khoản được Ethereum sử dụng.
Mô hình UTXO là gì? Các đặc điểm của mô hình UTXO là gì? Vui lòng tham khảo chương "Mô hình UTXO là gì".
Mô hình tài khoản sử dụng số dư trong tài khoản Là đơn vị kế toán đo lường các giao dịch. Đây là điểm khác biệt chính của nó so với mô hình UTXO. Mô hình UTXO sử dụng phần tiền điện tử chưa được chi tiêu của giao dịch làm thước đo kế toán. Mô hình tài khoản có thể được coi là phiên bản kỹ thuật số của ngân hàng truyền thống. Trong mô hình này, tài sản kỹ thuật số được ghi nhận dưới dạng số dư trong tài khoản, giống như tài khoản ngân hàng truyền thống.
Mô hình tài khoản là mô hình tính toán. Khi giao dịch xảy ra, hệ thống sẽ kích hoạt nút thay đổi số dư tài khoản theo hướng dẫn giao dịch của người dùng. Sau đó, hệ thống sẽ tính toán sự thay đổi số dư trong từng tài khoản và ghi lại trạng thái mới nhất của số dư.
Trong Ethereum, trạng thái của tài khoản không được lưu trữ trên blockchain mà được nút tính toán và lưu trữ cục bộ. Chỉ các hướng dẫn giao dịch được lưu trữ trên blockchain.
Trong Ethereum, có hai loại tài khoản: tài khoản thuộc sở hữu bên ngoài (EOA) và các tài khoản hợp đồng.
Đề cập đến tài khoản người dùng được kiểm soát bằng khóa riêng.
Người dùng có thể tạo những tài khoản như vậy trong ví MetaMask. Mỗi EOA có một khóa riêng và một địa chỉ, đồng thời nó có thể trực tiếp bắt đầu các giao dịch.
Là tài khoản được kiểm soát bởi mã hợp đồng thông minh.
Không giống như EOA, tài khoản hợp đồng không có khóa riêng mà có mã hợp đồng thông minh. Tài khoản được điều hành bởi mã hợp đồng thông minh của nó. Mã được ghi lại trên chuỗi khi tài khoản hợp đồng được EVM tạo và thực thi.
Tài khoản hợp đồng không thể bắt đầu các giao dịch như EOA. Nó chỉ có thể gọi các chức năng trong các hợp đồng khác để phản hồi các hướng dẫn giao dịch. Nói một cách đơn giản, hướng dẫn giao dịch sẽ gọi hàm trong hợp đồng, trích xuất các tham số (chẳng hạn như số tiền $ETH) để thay đổi số dư tài khoản và hoàn tất giao dịch.
Bất cứ khi nào ai đó gửi giao dịch đến địa chỉ hợp đồng, điều đó sẽ khiến hợp đồng chạy trong EVM với giao dịch là đầu vào. Các giao dịch được gửi đến địa chỉ hợp đồng có thể có $ ETH hoặc dữ liệu hoặc cả hai. Nếu chúng chứa $ETH, nó sẽ được "gửi" vào số dư hợp đồng. Nếu chúng chứa dữ liệu, dữ liệu có thể chỉ định một hàm được đặt tên trong hợp đồng và gọi nó, chuyển các đối số cho hàm.
Trong mô hình tài khoản, kết quả của giao dịch phụ thuộc vào trạng thái số dư. Số dư tài khoản phải lớn hơn sản lượng giao dịch. Do đó, việc xác minh trình tự giao dịch và xác minh số dư là rất quan trọng đối với các mạng sử dụng mô hình tài khoản. Các nút trong mô hình tài khoản kiểm tra trạng thái số dư của người gửi khi nhận được hướng dẫn giao dịch (để xem liệu nó có lớn hơn hoặc bằng số tiền đầu ra được chuyển).