Đề xuất EIP-1153: Tại sao Ethereum lại phát triển Transient Storage?

EIP-1153 là gì?
EIP-1153 là một đề xuất cải tiến Ethereum nhằm giới thiệu cơ chế lưu trữ tạm thời trong các hợp đồng thông minh thông qua hai mã vận hành mới: TSTORE (Temporary Store) và TLOAD (Temporary Load). Đề xuất này tập trung vào việc giải quyết các vấn đề về hiệu suất, chi phí gas và tính linh hoạt của lưu trữ trong Ethereum, đặc biệt trong bối cảnh các ứng dụng DeFi, web3 và layer 2 ngày càng phức tạp.
Bối cảnh và các vấn đề cần giải quyết
Hệ thống lưu trữ hiện tại của EVM
EVM (Ethereum Virtual Machine) có ba không gian lưu trữ chính: Stack, Storage và Memory, mỗi loại phục vụ các mục đích khác nhau trong quá trình xử lý dữ liệu.
Stack là không gian lưu trữ tạm thời hoạt động theo nguyên tắc LIFO (Last-In-First-Out), dùng để lưu dữ liệu đang được xử lý, trong đó mục cuối cùng được thêm vào sẽ là mục đầu tiên được lấy ra.
Storage là không gian lưu trữ vĩnh viễn, cho phép duy trì dữ liệu qua các giao dịch và được định địa chỉ bằng các từ có độ dài 32 byte, có khả năng lưu trữ nhiều loại dữ liệu khác nhau như số nguyên, chuỗi hoặc mảng.
Memory trong EVM đóng vai trò là không gian lưu trữ tạm thời trong quá trình thực thi hợp đồng thông minh. Nó được sử dụng để xử lý dữ liệu chỉ cần tồn tại trong phạm vi của một giao dịch và sẽ bị xóa ngay sau khi giao dịch kết thúc. Điều này khiến memory trở thành một phần quan trọng để tối ưu hóa hiệu suất và chi phí gas khi thực thi các hợp đồng thông minh.

Gas trên Ethereum là cơ chế phí giúp ngăn chặn việc lạm dụng tài nguyên chung, cụ thể là sức mạnh tính toán của thợ đào. Điều này giải quyết vấn đề Tragedy of the Commons (Bi kịch của tài nguyên chung), một tình huống trong đó tài nguyên chung bị khai thác quá mức vì cá nhân chỉ quan tâm đến lợi ích riêng của mình.
Nếu sức mạnh tính toán của mạng Ethereum được sử dụng miễn phí, nó sẽ bị lạm dụng, gây quá tải và làm giảm hiệu quả hoạt động của mạng. Bằng cách tính phí gas, Ethereum buộc người dùng phải trả chi phí tương ứng với tài nguyên họ sử dụng, từ đó hạn chế việc lạm dụng và đảm bảo mạng lưới hoạt động ổn định cho tất cả mọi người.
Cách lưu trữ dữ liệu trong hợp đồng thông minh trên Ethereum cũng bị ảnh hưởng bởi chi phí gas. Việc lưu dữ liệu vào storage (bộ nhớ vĩnh viễn) tiêu tốn nhiều gas hơn so với memory (bộ nhớ tạm thời) vì dữ liệu trong storage cần được duy trì qua nhiều giao dịch. Để tối ưu chi phí, các nhà phát triển thường áp dụng các kỹ thuật như:
- Sử dụng memory để lưu trữ dữ liệu chỉ cần tồn tại trong thời gian giao dịch.
- Dùng thư viện (libraries) để giảm số dòng mã cần thực thi, từ đó tiết kiệm chi phí gas.
Ethereum, với EVM, đã tạo ra một nền tảng tính toán phi tập trung vượt trội. Tuy nhiên, những hạn chế về phí gas cao và cách xử lý lưu trữ vẫn là thách thức lớn.
Những thách thức chính của Ethereum
Ethereum phải đối mặt với nhiều vấn đề cần giải quyết để tối ưu hóa hiệu suất và chi phí. Trước tiên, giao tiếp giữa các hợp đồng thông minh trên mạng lưới hiện nay rất tốn kém. Các hợp đồng phải truyền dữ liệu thông qua calldata, đặc biệt khi lượng dữ liệu lớn, chi phí gas tăng đáng kể, làm giảm hiệu quả xử lý. Thêm vào đó, việc triển khai các cơ chế bảo vệ như re-entrancy guards để ngăn chặn các cuộc tấn công cũng tiêu tốn nhiều gas, gây áp lực tài chính cho nhà phát triển.
Bên cạnh đó, hệ thống hoàn phí (refunds) gặp nhiều hạn chế sau bản nâng cấp London Hard Fork, khi lượng gas được hoàn lại bị giới hạn tối đa ở mức 1/5 tổng gas đã sử dụng. Đồng thời, theo EIP-3978, các tác vụ giải phóng bộ nhớ không còn được hoàn phí, làm tăng chi phí khi xử lý dữ liệu. Ngoài ra, các node Ethereum luôn phải đọc dữ liệu từ ổ đĩa, kể cả khi giá trị là mặc định (0), dẫn đến chi phí không cần thiết. Logic hoàn phí phức tạp cũng gây khó khăn trong việc tối ưu hóa chi phí gas khi phát triển hợp đồng thông minh.

Một vấn đề lớn khác là hạn chế khả năng xử lý song song (parallelism) kém hiệu quả. Hai giao dịch không thể thực hiện đồng thời nếu truy cập vào cùng một vị trí lưu trữ trên hợp đồng, do client node không thể xác định liệu chúng có gây xung đột hay không. Điều này làm giảm hiệu suất mạng lưới, đặc biệt khi xử lý nhiều giao dịch phức tạp.
Những vấn đề trên không chỉ làm tăng chi phí gas mà còn hạn chế khả năng mở rộng và hiệu quả của Ethereum. Việc tìm kiếm các giải pháp mới, như EIP-1153 với cơ chế transient storage, trở nên cần thiết để giải quyết những thách thức này, từ đó nâng cao tính cạnh tranh và hiệu suất toàn mạng.
Cơ chế transient storage (lưu trữ tạm thời) cho phép dữ liệu được lưu trữ tạm thời trong giao dịch mà không cần ghi vào bộ nhớ vĩnh viễn, giúp giảm chi phí gas và cải thiện hiệu suất. Đây là một bước tiến quan trọng giúp Ethereum mở rộng tiềm năng, mặc dù vẫn cần giải quyết các tranh cãi và khó khăn trong quá trình triển khai.
Cơ chế hoạt động của EIP-1153
EVM là cơ chế vận hành hợp đồng thông minh trên mạng Ethereum. Các hợp đồng thông minh được viết bằng bytecode, và khi thực thi, chúng tạo ra các giao dịch. Trong quá trình này, các giao dịch có thể tạo ra nhiều frame thực thi lồng nhau thông qua các lệnh CALL.
Khi một hợp đồng thực hiện lệnh CALL đến chính nó hoặc một hợp đồng khác, nó tạo ra một frame mới. Nếu có nhiều frame được tạo ra, hợp đồng đó được xem là re-entrant (có thể tái nhập). Đây là một đặc điểm của hợp đồng thông minh phức tạp, nhưng việc giao tiếp giữa các frame này gặp nhiều hạn chế.
Hiện tại, giao tiếp giữa các frame sử dụng các phương pháp như:
- Inputs/Outputs (đầu vào/đầu ra): Phải truyền dữ liệu qua các khối dữ liệu giao dịch, làm tăng chi phí gas.
- Storage Updates (cập nhật bộ nhớ): Ghi và đọc dữ liệu từ storage rất tốn kém, đặc biệt khi lưu trữ cần duy trì lâu dài.Những phương pháp này không chỉ tốn nhiều gas mà còn phức tạp và không hiệu quả trong các ứng dụng yêu cầu giao tiếp nhanh.
Về cơ chế, EIP-1153 đề xuất một không gian lưu trữ mới gọi là transient storage. Đây là loại lưu trữ hoạt động tương tự như storage thông thường, nhưng dữ liệu sẽ bị xóa sau khi giao dịch kết thúc, tương tự như memory.
Transient storage có thể được so sánh với RAM của máy tính. Nó cung cấp một giải pháp lưu trữ tạm thời trong khi giao dịch đang thực thi. Sau khi giao dịch hoàn tất, dữ liệu trong transient storage sẽ bị loại bỏ, giống như dữ liệu trong RAM sẽ bị mất khi tắt máy tính.
Về khía cạnh thực thi công nghệ, EIP-1153 đề xuất hai mã vận hành mới vào Ethereum Virtual Machine (EVM), cung cấp cơ chế lưu trữ tạm thời trong phạm vi một giao dịch:
- TSTORE (Temporary Store): Cho phép lưu trữ dữ liệu tạm thời trong suốt thời gian thực thi giao dịch. Sau khi giao dịch kết thúc, dữ liệu này sẽ tự động bị xóa.
- TLOAD (Temporary Load): Cho phép truy xuất dữ liệu đã lưu bằng TSTORE trong cùng giao dịch.

Theo đề xuất, việc lưu trữ dữ liệu tạm thời bằng TSTORE và TLOAD sẽ tiết kiệm gas hơn so với việc sử dụng bộ nhớ lâu dài. Hiện tại, việc ghi dữ liệu vào bộ nhớ lâu dài trên Ethereum tiêu tốn khoảng 20,000 gas cho mỗi thao tác, trong khi EIP-1153 giúp tiết kiệm chi phí này bằng cách lưu trữ dữ liệu tạm thời, chỉ tồn tại trong thời gian thực hiện giao dịch. Điều này không chỉ giảm chi phí vận hành mà còn tăng hiệu suất xử lý của các ứng dụng như DeFi, trò chơi Web3 và layer 2.
Các giải pháp layer 2, đặc biệt là rollup, có thể tận dụng tính năng này để giảm lượng dữ liệu ghi vào blockchain chính, từ đó tối ưu hóa chi phí tổng hợp và tăng khả năng mở rộng. Theo dự báo, EIP-1153 có thể giảm từ 20-30% chi phí vận hành của các giải pháp layer 2. Ngoài ra, tính năng lưu trữ tạm thời cũng thúc đẩy sự sáng tạo trong không gian Web3, cho phép các ứng dụng dApps triển khai các logic phức tạp hơn mà không làm tăng đáng kể chi phí giao dịch.
Với việc giảm chi phí và tăng hiệu suất, EIP-1153 không chỉ giúp Ethereum cạnh tranh tốt hơn với các blockchain như Solana hay Avalanche, mà còn mở rộng khả năng hỗ trợ cho các ứng dụng sáng tạo và đổi mới. Đây là một bước tiến chiến lược, củng cố vị thế của Ethereum trong việc thúc đẩy sự phát triển toàn diện của hệ sinh thái Web3.