Hàm chuyển trạng thái
Ngữ cảnh
Hình này xuất hiện trong phần 'Hàm Chuyển đổi Trạng thái Ethereum', định nghĩa thuật toán chính xác theo đó một giao dịch biến đổi trạng thái toàn cục của Ethereum. Không giống như mô hình UTXO của Bitcoin, trạng thái của Ethereum là ánh xạ dựa trên tài khoản từ địa chỉ đến đối tượng tài khoản chứa số dư, nonce, băm mã và gốc lưu trữ. Hàm chuyển đổi phải xử lý cả chuyển giá trị đơn giản giữa các tài khoản sở hữu bên ngoài và các lệnh gọi tin nhắn kích hoạt thực thi hợp đồng thông minh.
Nội dung hình này
Sơ đồ mô tả các bước tuần tự của APPLY(S, TX) -> S': đầu tiên, xác nhận chữ ký và nonce; sau đó khấu trừ gas trước (STARTGAS × GASPRICE) từ tài khoản người gửi; tiếp theo chuyển giá trị từ người gửi đến người nhận; và cuối cùng, nếu người nhận là tài khoản hợp đồng, thực thi mã EVM tiêu thụ gas theo từng thao tác. Nếu thực thi hoàn thành bình thường, gas còn lại được hoàn trả cho người gửi và gas đã tiêu thụ được trả cho thợ đào. Nếu thực thi thất bại — do hết gas hoặc hủy bỏ rõ ràng — tất cả thay đổi trạng thái từ chuyển giá trị trở đi được hoàn tác, nhưng người gửi vẫn phải trả cho gas đã tiêu thụ đến thời điểm thất bại, bồi thường cho thợ đào vì phép tính đã thực hiện. Sơ đồ làm rõ rằng khấu trừ gas là không thể đảo ngược trong khi chuyển giá trị và sửa đổi lưu trữ là có thể đảo ngược có điều kiện.
Tầm quan trọng
Đây là đặc tả vận hành trung tâm của tương tác giữa Máy ảo Ethereum và trạng thái toàn cục. Nó thiết lập tại sao gas phải được cam kết trước (ngăn chặn tính toán mất kiểm soát), tại sao giao dịch thất bại vẫn phải chịu phí (ngăn chặn tấn công từ chối dịch vụ), và cách thực thi hợp đồng được cách ly trong một chuyển đổi trạng thái nguyên tử đơn lẻ. Mọi giao dịch Ethereum, dù là chuyển ETH đơn giản hay tương tác DeFi phức tạp, đều thực thi hàm này.