9 giờ trước

Các nhà phát triển Ethereum đề nghị ứng dụng rà soát thay đổi gas được đề xuất cho Glamsterdam

EIP-8037 state-gas rules force Ethereum dApps to rewrite billing

CryptoSlate

Các nhà phát triển cốt lõi của Ethereum đang đề nghị các nhóm ứng dụng rà soát để xác định liệu những quy tắc gas được đề xuất cho Glamsterdam có cần thay đổi hay không. Các cuộc kiểm toán nội bộ của nhà phát triển không thể xem xét hợp đồng và dịch vụ ngoài chuỗi của mọi dự án. Marius van der Wijden đã đề nghị kiểm tra 8 giả định về gas trong một bài đăng trên blog của Ethereum Foundation ngày 6 tháng 11. ChainSecurity và Dedaub đang tiến hành điều tra song song với các cuộc kiểm toán nội bộ, trong khi các dự án được đề nghị mô tả những cách khắc phục khả thi.

Việc kích hoạt Hoodi dự kiến vào ngày 26 tháng 10, cùng với mức tăng giới hạn gas 200 triệu, đã bị hoãn vào ngày 22 tháng 10. Lời kêu gọi ngày 6 tháng 11 duy trì việc hoãn cho đến khi vấn đề được giải quyết; các thông báo không ấn định ngày kích hoạt mainnet. EIP-8037 sẽ tăng phí tạo dữ liệu blockchain lâu dài và tính riêng phần tăng trưởng trạng thái với quá trình thực thi. EIP-8038 sẽ thay đổi phí truy cập và ghi dữ liệu trạng thái hiện có. Các đề xuất nhằm tăng thông lượng, đồng thời hạn chế lượng dữ liệu mà các nút Ethereum phải lưu giữ. Khung rà soát bao gồm 3 giả định về định giá liên quan đến ngân sách và khoản dự trữ cố định, cùng 5 giả định về hạch toán liên quan đến lượng gas được hoàn lại, lỗi, tính phí và ủy quyền.

Mục INV-5 trong khung này xem xét cách tính hoàn trả được các bên chuyển tiếp giao dịch sử dụng; họ thanh toán chi phí giao dịch thay cho người dùng khác. EIP-8037 ban đầu sẽ phân bổ gas vào một kho gas trạng thái riêng đối với các giao dịch có giới hạn gas trên 16.777.216. Việc tạo trạng thái sẽ tiêu thụ gas từ kho này trước khi dùng đến gas thực thi. Hàm gasleft() của Solidity không tính kho này, vì vậy việc so sánh các lần đọc có thể bỏ sót chi phí do bên chuyển tiếp giao dịch thanh toán. Nếu lần đọc sau cao hơn lần đầu, phép trừ có kiểm tra sẽ hoàn nguyên giao dịch và ngăn thao tác tiếp tục. Phép trừ không kiểm tra có thể thay vào đó quay vòng thành một giá trị lớn, có khả năng dẫn đến khoản hoàn trả quá mức, tùy thuộc vào các phép tính khác và biện pháp bảo vệ thanh toán. Chi tiêu từ kho không được đo lường cũng có thể khiến người dùng bị tính thiếu và buộc nhà vận hành phải bù phần chênh lệch.

Hướng dẫn tính phí khuyến nghị ước tính chi phí theo các quy tắc được đề xuất và yêu cầu người dùng ký thỏa thuận về phí. Với các hệ thống tiếp tục đo lường, hướng dẫn đề xuất giới hạn phép trừ và áp dụng mức trần thanh toán đã ký, dù các chi phí lấy từ kho gas vẫn không được đo lường. Đề xuất đặc tả đang mở PR #12581 sẽ ngăn số liệu gas tăng lên, qua đó xử lý vấn đề phép trừ nhưng không loại bỏ các chi phí không được đo lường từ kho.

Mục INV-8 xem xét EIP-7702, cho phép tài khoản ủy quyền mã hợp đồng. Theo các quy tắc được đề xuất, lượng gas không đủ trước khi thực thi có thể khiến giao dịch vẫn được ghi vào một khối, trong khi việc ủy quyền và cập nhật nonce liên quan đến ủy quyền bị đảo ngược. Khi đó, một ủy quyền bị lộ có thể được tái sử dụng nếu vẫn đáp ứng các điều kiện hợp lệ, bao gồm kiểm tra nonce của tài khoản ủy quyền. Kẻ tấn công có thể áp dụng ủy quyền đó và nhận quyền sở hữu trong một giao dịch nếu hàm khởi tạo của hợp đồng được ủy quyền cho phép người gọi đầu tiên chọn chủ sở hữu. Việc chen trước các ủy quyền đã xảy ra trên mempool công khai, nhưng lỗi này có thể khiến một ủy quyền có thể tái sử dụng bị lộ sau khi giao dịch được đưa vào khối, ngay cả khi giao dịch được gửi riêng tư. Các ủy quyền được áp dụng trước khung thực thi cấp cao nhất sẽ vẫn tồn tại nếu khung đó thất bại sau này; vì vậy, cần kiểm tra mã hợp đồng và nonce của tài khoản sau các giao dịch thất bại. Các biện pháp bảo vệ ví được đề xuất gồm yêu cầu chữ ký tài khoản hoặc lệnh gọi từ chính tài khoản để khởi tạo, đồng thời vô hiệu hóa các ủy quyền bị lộ. Một thay đổi giao thức được đề xuất là tính trước mức phí ủy quyền tối đa, nhưng thay đổi này chưa được thông qua.

Theo đề xuất, việc tạo một ô lưu trữ lạnh sẽ tiêu tốn tổng cộng 110.020 gas, so với 22.100 theo Osaka. Tổng mức được đề xuất gồm 12.100 gas thực thi và 97.920 gas trạng thái; kho gas sẽ quyết định số dư nào thanh toán phần gas trạng thái. Nghiên cứu ngày 13 tháng 10 của ChainSecurity cho thấy những thay đổi về phí và lượng gas được hoàn lại có thể khiến một hợp đồng ghi nhận vĩnh viễn một thao tác thiếu kinh phí là không thành công. Một thao tác hợp lệ có thể không thể thực hiện lại nếu bản ghi đó loại bỏ khả năng thử lại. Việc kiểm tra lại ngân sách, chuyển tiếp trạng thái lỗi và giữ lại khả năng thử lại lần lượt xử lý những khía cạnh khác nhau của rủi ro.

Kho mã nguồn đề nghị các dự án bị ảnh hưởng cho biết liệu thay đổi cấu hình, nâng cấp hay chuyển đổi có thể giải quyết vấn đề hay không, và việc khắc phục có thể hoàn tất vào khoảng thời gian nào. Phản hồi từ các dự án sẽ giúp nhà phát triển đánh giá mức độ tương thích mà ứng dụng có thể đáp ứng và những điểm cần sửa đổi trong đặc tả để ngăn tác hại. Mô tả cụ thể về lỗi và cách khắc phục hiện có sẽ định hướng các cuộc thảo luận đặc tả tiếp theo.

This content is an AI-generated summary/analysis for informational purposes only and does not constitute investment advice.