Tác giả: @Web3Mario
Giới thiệu:
Vitalik đã đưa ra đề xuất EIP-7706 vào ngày 13 tháng 5 năm 2024, đề xuất bổ sung cho mô hình Gas hiện có, tách riêng việc tính toán gas của calldata và tùy chỉnh phí gas base giống như Blob cơ chế định giá tiếp tục giảm chi phí vận hành L2. Các đề xuất liên quan cần phải bắt nguồn từ EIP-4844 được đề xuất vào tháng 2 năm 2022, cách đây đã lâu. Vì vậy, tôi đã kiểm tra các thông tin liên quan và hy vọng có thể đưa ra cái nhìn tổng quan về cơ chế Ethereum Gas mới nhất để mọi người có thể nhanh chóng hiểu được. .
Các mẫu Ethereum Gas hiện được hỗ trợ - EIP-1559 và EIP-4844
Trong thiết kế ban đầu, Ethereum sử dụng cơ chế đấu giá đơn giản để định giá phí giao dịch, yêu cầu người dùng phải tích cực đặt giá thầu cho các giao dịch của riêng họ, tức là đặt giá gas. Thông thường, do người dùng phải trả phí giao dịch sẽ thuộc về người khai thác, vì vậy người khai thác sẽ xác định thứ tự đóng gói giao dịch dựa trên giá thầu dựa trên nguyên tắc tối ưu hóa kinh tế. Lưu ý rằng điều này không được tính đến MEV. Theo các nhà phát triển cốt lõi vào thời điểm đó, cơ chế này gặp phải 4 vấn đề sau:
< strong>Sự không phù hợp giữa sự biến động của mức phí giao dịch vàsự đồng thuậnchi phí giao dịch:Đối với những người đang hoạt động trong chuỗi khối, có đủ nhu cầu về đóng gói giao dịch, điều đó có nghĩa là các khối có thể được lấp đầy dễ dàng, nhưng điều này cũng thường có nghĩa là phí tổng thể cực kỳ biến động. Ví dụ: khi Giá Gas trung bình là 10 Gwei, chi phí cận biên mà mạng phải chịu khi chấp nhận một giao dịch khác trong một khối sẽ cao hơn 10 lần so với khi Giá Gas trung bình là 1 Gwei, điều này là không thể chấp nhận được.
Sự chậm trễ không cần thiết đối với người dùng: Vì mỗi khối có một giới hạn gas Giới hạn cứng, cùng với tự nhiên biến động về khối lượng giao dịch lịch sử, các giao dịch thường sẽ đợi vài khối trước khi được đóng gói, nhưng điều này không hiệu quả đối với toàn bộ mạng; tức là không có cách nào cho phép một khối lớn hơn các cơ chế “chùng” nhỏ hơn tiếp theo để phù hợp với từng khối; -chặn sự khác biệt về nhu cầu.
Định giáKém hiệu quả: Do sử dụng cơ chế đấu giá đơn giản Hiệu quả của việc phát hiện giá hợp lý thấp, đồng nghĩa với việc người dùng sẽ khó đưa ra mức giá hợp lý, đồng nghĩa với việc trong nhiều trường hợp, người dùng phải trả phí xử lý cao.
Một blockchain không có phần thưởng khốisẽ Tính không ổn định mạnh>: Khi phần thưởng khối do khai thác mang lại bị loại bỏ và áp dụng mô hình phí thuần túy, điều này có thể dẫn đến nhiều bất ổn, chẳng hạn như "khối chị em" khuyến khích việc khai thác để đánh cắp phí giao dịch, mở ra sự ích kỷ mạnh mẽ hơn. vectơ và hơn thế nữa.
Cho đến khi đề xuất và triển khai EIP-1559, mô hình Gas đã có phiên bản đầu tiên ở EIP-1559, Vitalik và cốt lõi khác Được nhà phát triển đề xuất vào ngày 13 tháng 4 năm 2019 và được thông qua trong bản nâng cấp ở London vào ngày 5 tháng 8 năm 2021, cơ chế này đã từ bỏ cơ chế đấu giá và thay vào đó áp dụng mô hình định giá kép gồm Phí cơ sở và Phí ưu tiên sẽ được định lượng. được tính toán thông qua mô hình toán học đã thiết lập dựa trên mối quan hệ giữa mức tiêu thụ khí trong khối gốc và mục tiêu khí nổi và đệ quy. Hiệu ứng trực quan là nếu mức sử dụng khí trong khối trước vượt quá Khi vượt quá mục tiêu khí xác định trước, cơ sở. phí sẽ tăng lên. Nếu thấp hơn mục tiêu về khí đốt, phí cơ bản sẽ giảm. Điều này không chỉ phản ánh tốt hơn mối quan hệ cung cầu mà còn giúp dự đoán về khí hợp lý chính xác hơn và tránh xảy ra các vấn đề phát sinh. Giá Gas cao ngất trời do vận hành sai là do việc tính phí cơ bản được hệ thống xác định trực tiếp chứ không phải do người dùng tự do chỉ định. Mã cụ thể như sau:
Có thể thấy rằng khi parent_gas_used lớn hơn parent_gas_target thì phí cơ sở của khối hiện tại sẽ được so sánh với phí cơ sở của khối trước đó cộng với giá trị offset. Đối với giá trị offset, parent_base_fee nhân với giá trị trước Tổng chi phí gas của khối là phần bù so với mục tiêu gas và giá trị tối đa của phần còn lại của mục tiêu gas và hằng số là 1. Ngược lại, logic cũng tương tự.
Ngoài ra, Phí cơ sở sẽ không còn được phân phối cho người khai thác như một phần thưởng nữa mà sẽ bị phá hủy trực tiếp. Điều này sẽ giữ cho mô hình kinh tế của ETH ở trạng thái cũ. trạng thái giảm phát, có lợi cho sự ổn định của giá trị. Mặt khác, phí Ưu tiên tương đương với phần thưởng mà người dùng trao cho người khai thác và có thể được định giá miễn phí. Điều này cho phép sử dụng lại thuật toán sắp xếp của người khai thác ở một mức độ nhất định.
Khi đến năm 2021, sự phát triển của Rollup sẽ dần dần đi vào trạng thái tốt. Chúng tôi biết rằng dù OP Rollup hay ZK Rollup có nghĩa là một số dữ liệu chứng minh nhất định sau khi nén dữ liệu L2 cần phải được tải lên chuỗi thông qua tính khả dụng của dữ liệu calldata. Có sẵn) hoặc gửi trực tiếp đến chuỗi để xác minh. Điều này khiến các giải pháp Rollup này phải đối mặt với chi phí Gas lớn khi duy trì tính hữu hạn của L2 và những chi phí này cuối cùng sẽ được chuyển sang người dùng. Do đó, chi phí sử dụng hầu hết các giao thức L2 vào thời điểm đó không thấp như tưởng tượng.
Đồng thời, Ethereum cũng đang phải đối mặt với tình thế khó xử trong việc cạnh tranh không gian khối. Chúng tôi biết rằng có Gas Limit trong mỗi khối, điều đó có nghĩa là giới hạn gas trong khối hiện tại Tổng mức tiêu thụ gas của tất cả các giao dịch không thể vượt quá giá trị này. Được tính dựa trên Giới hạn gas hiện tại là 30.000.000, có giới hạn lý thuyết là 30.000.000 / 16 = 1.875.000 byte, trong đó 16 đề cập đến mức tiêu thụ của mỗi dữ liệu cuộc gọi. byte của EVM. 16 đơn vị Gas có nghĩa là kích thước dữ liệu tối đa mà một khối có thể mang là khoảng 1,79 MB. Dữ liệu liên quan đến tổng hợp do bộ phân loại L2 tạo ra thường có kích thước lớn, khiến nó cạnh tranh với xác nhận giao dịch của những người dùng chuỗi chính khác, dẫn đến khối lượng giao dịch nhỏ hơn có thể được đóng gói trong một khối duy nhất, do đó ảnh hưởng đến TPS của chuỗi chính.
Để giải quyết vấn đề nan giải này, các nhà phát triển cốt lõi đã đề xuất đề xuất EIP-4844 vào ngày 5 tháng 2 năm 2022 và nâng cấp Dencun vào đầu quý 2 năm 2024 sau đó đã được thực hiện. Đề xuất đề xuất một loại giao dịch mới gọi là Giao dịch Blob. So với loại Giao dịch truyền thống, ý tưởng cốt lõi của Giao dịch Blob là thêm một loại dữ liệu mới, cụ thể là dữ liệu Blob. Khác với loại dữ liệu cuộc gọi, dữ liệu blob không thể được EVM truy cập trực tiếp mà chỉ có thể truy cập vào hàm băm của nó, còn được gọi là VersionedHash. Ngoài ra, có hai thiết kế đi kèm. Một là so với các giao dịch thông thường, chu kỳ GC của giao dịch blob ngắn hơn, do đó đảm bảo dữ liệu khối không quá cồng kềnh. Thứ hai là dữ liệu blob có cơ chế Gas tổng thể. Hiệu ứng được trình bày tương tự như của EIP-1559, nhưng hàm mũ tự nhiên được chọn trong mô hình toán học để làm cho nó hoạt động tốt hơn về mặt ổn định trước những biến động về quy mô giao dịch, bởi vì độ dốc của hàm mũ tự nhiên cũng một hàm số mũ tự nhiên, có nghĩa là bất kể trạng thái của quy mô giao dịch mạng tại thời điểm này là gì? Khi quy mô giao dịch tăng vọt nhanh chóng, phí cơ bản của blob gas sẽ phản hồi đầy đủ hơn, từ đó hạn chế hoạt động giao dịch một cách hiệu quả. , hàm này cũng có một tính năng quan trọng. Khi hoành độ bằng 0, , giá trị của hàm là 1.
base_fee_per_blob_gas = MIN_BASE_FEE_PER_BLOB_GAS * e**(excess_blob_gas / BLOB_BASE_FEE_UPDATE_FRACTION)
Nơi MIN_BASE_FEE_PER_BLOB_GAS và BLOB_BASE_FEE_UPDATE_FRACTION là hai hằng số và extra_blob_gas được xác định bằng chênh lệch giữa tổng mức tiêu thụ khí blob trong khối gốc và hằng số TARGET_BLOB_GAS_PER_BLOCK Khi tổng mức tiêu thụ khí blob vượt quá giá trị mục tiêu, tức là khi chênh lệch là dương, e** ( extra_blob_gas / BLOB_BASE_FEE_UPDATE_FRACTION) lớn hơn 1 thì base_fee_per_blob_gas sẽ lớn hơn và ngược lại.
Điều này có thể được triển khai với chi phí thấp đối với một số trường hợp chỉ muốn sử dụng khả năng đồng thuận của Ethereum để đồng thời chứng nhận một số dữ liệu quy mô lớn nhất định. , nó sẽ không lấn át khả năng đóng gói giao dịch của khối. Lấy trình sắp xếp Rollup làm ví dụ, thông tin chính của L2 có thể được gói gọn trong dữ liệu blob thông qua giao dịch blob và thông qua thiết kế tinh vi trong EVM, versionedHash có thể được sử dụng để triển khai logic xác minh trên chuỗi.
Cần nói thêm rằng cài đặt hiện tại của TARGET_BLOB_GAS_PER_BLOCK và MAX_BLOB_GAS_PER_BLOCK mang đến giới hạn cho mạng chính, tức là mục tiêu xử lý trung bình 3 blob (0,375 MB) mỗi khối và giới hạn lên tới 6 blob (0,75 MB) . Các giới hạn ban đầu này được thiết kế để giảm thiểu áp lực mà EIP này đặt lên mạng và dự kiến sẽ tăng lên trong các lần nâng cấp trong tương lai khi mạng thể hiện độ tin cậy với các khối lớn hơn.
Tinh chỉnh môi trường thực thi Mô hình tiêu thụ gas - EIP-7706
Sau khi làm rõ mô hình Ethereum Gas hiện tại, chúng ta hãy xem các mục tiêu và chi tiết triển khai của đề xuất EIP-7706. Đề xuất được Vitalik đệ trình vào ngày 13 tháng 5 năm 2024. Tương tự như dữ liệu Blob, đề xuất này loại bỏ mô hình Gas tương ứng với một trường dữ liệu khác có đặc điểm đặc biệt là calldata. Và tối ưu hóa logic triển khai mã tương ứng.
Về nguyên tắc, logic tính phí cơ sở của calldata giống như phí cơ sở cho dữ liệu blob trong EIP-4844, cả hai đều sử dụng hàm số mũ và dựa trên khối gốc. Độ lệch giữa giá trị tiêu thụ khí thực tế và giá trị mục tiêu được sử dụng để tính tỷ lệ chia tỷ lệ của phí cơ sở hiện tại.
Điều đáng chú ý là thiết kế tham số mới, LIMIT_TARGET_RATIOS=[2,2,4], trong đó LIMIT_TARGET_RATIOS[0] biểu thị tỷ lệ mục tiêu của lớp hoạt động thực thi Gas, LIMIT_TARGET_RATIOS[1] biểu thị tỷ lệ mục tiêu của lớp dữ liệu Blob Gas , LIMIT_TARGET_RATIOS [2] biểu thị tỷ lệ mục tiêu của loại calldata Gas. Vector này được sử dụng để tính giá trị mục tiêu gas tương ứng với ba loại gas trong khối cha. Logic tính toán như sau, nghĩa là sử dụng LIMIT_TARGET_RATIOS để thực hiện. phép chia số nguyên trên giới hạn gas:
< p>
Cài đặt gas_limits Logic xác định như sau:
gas_limits[0] phải tuân theo công thức điều chỉnh hiện có
gas_limits [1] phải bằng MAX_BLOB_GAS_PER_BLOCK
gas_limits[2] phải bằng gas_limits[ 0] // CALLDATA_GAS_LIMIT_RATIO
Chúng tôi biết rằng gas_limits[0] hiện tại là 30000000 và CALLDATA_GAS_LIMIT_RATIO được đặt trước là 4, có nghĩa là mục tiêu gas calldata hiện tại là khoảng 30000000 // 4 // 4 = 1875000 và do logic tính toán khí calldata hiện tại, mỗi Byte khác 0 tiêu thụ 16 Gas và 0 Byte tiêu thụ 4 Gas. Giả sử rằng việc phân phối các Byte khác 0 và 0 trong một. mỗi phân đoạn dữ liệu cuộc gọi nhất định chiếm 50%, thì trung bình, 10 Gas được tiêu thụ để xử lý 1 Byte dữ liệu cuộc gọi. Do đó, mục tiêu khí dữ liệu cuộc gọi hiện tại phải tương ứng với 187500 byte dữ liệu dữ liệu cuộc gọi, gấp khoảng hai lần mức sử dụng trung bình hiện tại.
Ưu điểm của việc này là giúp giảm đáng kể khả năng dữ liệu cuộc gọi đạt đến giới hạn gas và duy trì việc sử dụng dữ liệu cuộc gọi ở trạng thái nhất quán hơn thông qua mô hình kinh tế Đồng thời, việc lạm dụng calldata cũng bị loại bỏ. Lý do cho thiết kế này là để giải quyết những trở ngại cho sự phát triển của L2 và với dữ liệu blob, chi phí của bộ sắp xếp có thể giảm hơn nữa.