Giới thiệu: Vitalik đưa ra Đề án EIP-7706 vào ngày 14 tháng 5 năm 2024, đề xuất bổ sung cho mô hình Gas hiện có, tách riêng cách tính gas của dữ liệu cuộc gọi và tùy chỉnh cơ chế định giá phí cơ bản tương tự như Blob gas , giúp giảm hơn nữa chi phí vận hành L2. Các Đề án 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 cung cấp 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ô hình 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 chủ động đặt giá thầu cho các giao dịch của riêng họ, nghĩa là đặt giá gas . Thông thường, phí giao dịch mà người dùng trả giá sẽ thuộc về thợ đào., do đó, thợ đào sẽ quyết đị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 đồng thời bỏ qua 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:
· Sự không phù hợp giữa sự biến động của mức phí giao dịch và chi phí đồng thuận của các giao dịch: Đối với một blockchain đang hoạt động, có đủ nhu cầu về việc đóng gói các 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 thường cũng có nghĩa là chi phí tổng thể rất 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.
· Độ trễ không cần thiết đối với người dùng: Do giới hạn gas cứng của mỗi khối và sự biến động tự nhiên của khối lượng giao dịch lịch sử, các giao dịch thường phải chờ một vài khối trước khi được đóng gói, nhưng điều này gây bất lợi cho mạng lưới tổng thể; không có cơ chế "thư giãn" nào cho phép một khối lớn hơn và khối tiếp theo nhỏ hơn để đáp ứng sự khác biệt về nhu cầu giữa các khối.
· Định giá không hiệu quả: Do sử dụng cơ chế đấu giá đơn giản nên hiệu quả hình thành 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 có nhiều tình huống, người dùng phải trả giá cao. lệ phí.
· Blockchain không có phần thưởng khối sẽ không ổn định: Khi phần thưởng khối do khai thác mang lại bị loại bỏ và mô hình phí thuần túy được áp dụng, điều đó có thể dẫn đến nhiều bất ổn, chẳng hạn như "khối chị em"khích lệ việc khai thác để đánh cắp phí giao dịch. , cho phép các vectơ tấn công khai thác ích kỷ mạnh mẽ hơn, v.v.
Cho đến khi đề xuất và triển khai EIP-1559, mô hình Gas đã có phiên bản lần EIP-1559 được các nhà phát triển cốt lõi như Vitalik đề xuất vào ngày 13 tháng 4 năm 2019 và được áp dụng trong bản nâng cấp London vào ngày 5 tháng 8 năm 2021. Cơ chế này loại bỏ cơ chế đấu giá và thay vào đó áp dụng mô hình định giá kép Phí cơ sở và Phí ưu tiên, trong đó Phí cơ sở Nó sẽ được tính toán định lượng thông qua một mô hình toán học đã được thiết lập dựa trên mối quan hệ giữa mức tiêu thụ gas đã xảy ra trong khối gốc và mục tiêu gas nổi và đệ quy. Hiệu ứng trực quan là nếu mức sử dụng gas trong khối trước đó vượt quá thời điểm xác định trước. đạt được mục tiêu gas , phí cơ sở sẽ tăng lên. Nếu thấp hơn mục tiêu gas , phí cơ sở 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ề gas hợp lý hơn. chính xác và tránh sai sót do vận hành sai. Giá Gas cao ngất trời vì phí cơ sở. Việc tính toán được xác định trực tiếp bởi hệ thống chứ không phải do người dùng tự do chỉ định. Mã cụ thể như sau:

Trong đó thể thấy, 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. Giá trị offset là parent_base_fee nhân với giá trị offset. tổng chi phí gas của khối trước Phần bù tương đối so với mục tiêu gas và giá trị tối đa của mô đun 1 giữa mục tiêu gas và một hằng số. Mặt khác, logic cũng tương tự.
Ngoài ra, Phí cơ sở sẽ không còn được phân phối cho thợ đào như một phần thưởng nữa mà sẽ bị đốt trực tiếp, do đó đặt mô hình kinh tế của ETH vào 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 thợ đào và có thể được định giá miễn phí. Điều này cho phép thuật toán sắp xếp của thợ đào được sử dụng lại ở 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 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 calldata để hiện thực hóa dữ liệu. Tính khả dụng (Dữ liệu 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 cho 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ó Giới hạn Gas trong mỗi khối, điều đó có nghĩa là tổng lượng Gas tiêu thụ của tất cả các giao dịch trong khối hiện tại không thể vượt quá giá trị này. Giới hạn Gas hiện tại được tính là 30000000. Về mặt lý thuyết, có giới hạn 30.000.000 / 16 = 1.875.000 byte, trong đó 16 đề cập đến 16 mà EVM yêu cầu để xử lý mỗi byte dữ liệu cuộc gọi. đơ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 sắp xếp L2 tạo ra thường có dữ liệu lớn, điều này 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 Đề án EIP-4844 vào ngày 5 tháng 2 năm 2022 và nó được triển khai sau nâng cấp Dencun vào đầu quý 2 năm 2024. Đề án đề 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 trong EIP-1559 Tương tự, nhưng hàm mũ tự nhiên được chọn trong mô hình toán học để 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 là hàm mũ tự nhiên, nghĩa là bất kể quy mô giao dịch mạng ở đâu vào thời điểm này Ở bất kỳ trạng thái nào, khi quy mô giao dịch tăng nhanh, 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ả. Đồng thời, chức năng này cũng có một tính năng quan trọng. trục hoành là 0, giá trị hàm là 1.
base_fee_per_blob_gas = MIN_BASE_FEE_PER_BLOB_GAS *
e**(excess_blob_gas / BLOB_BASE_FEE_UPDATE_FRACTION)
Trong đó, MIN_BASE_FEE_PER_BLOB_GAS và BLOB_BASE_FEE_UPDATE_FRACTION là hai hằng số và mức dư_blob_gas được xác định bằng chênh lệch giữa tổng mức tiêu thụ gas blob trong khối gốc và hằng số TARGET_BLOB_GAS_PER_BLOCK Khi tổng mức tiêu thụ gas blob vượt quá giá trị mục tiêu, nghĩa là chênh lệch là dương. ,e**(excess_blob_gas /
BLOB_BASE_FEE_UPDATE_FRACTION) lớn hơn 1 thì base_fee_per_blob_gas sẽ lớn hơn, nếu không thì nó sẽ nhỏ hơn.
Bằng cách này, một số tình huống chỉ muốn sử dụng khả năng đồng thuận của Ethereum để chứng nhận một số dữ liệu quy mô lớn nhất định nhằm đảm bảo tính khả dụng có thể được thực hiện với chi phí thấp mà không làm ảnh hưởng đến khả năng đóng gói giao dịch của khối. Lấy sắp xếp Rollup làm ví dụ, thông tin chính của L2 có thể được gói gọn vào 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 mainnet, là mục tiêu xử lý trung bình là 3 đốm màu (0,375 MB) và giới hạn tối đa là 6 đốm màu (0,75 MB) mỗi khối. 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 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.

Hoàn thiện hơn nữa hoàn cảnh thực thi Mô hình tiêu thụ gas ——EIP-7706
Sau khi làm rõ mô hình Gas hiện tại của Ethereum, chúng ta hãy xem các mục tiêu và chi tiết triển khai của Đề án EIP-7706. Đề án được Vitalik đệ trình vào ngày 13 tháng 5 năm 2024. Tương tự như dữ liệu Blob, Đề án 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, dữ liệu 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 mũ và tính phí cơ sở hiện tại dựa trên độ lệch giữa giá trị tiêu thụ gas thực tế trong khối chính. và giá trị mục tiêu.

Điều đáng lưu ý là có một 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 dữ liệu Blob lớp Gas , LIMIT_TARGET_RATIOS[ 2] đại diện cho calldata Tỷ lệ mục tiêu của lớp Gas Vectơ này được sử dụng để tính toán các 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 các phép chia số nguyên trên. giới hạn gas :

Logic cài đặt trong đó gas_limits 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 thành 4, điều đó 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 gas calldata hiện tại, mỗi không phải Zero Byte tiêu thụ 16 Gas, 0 Byte tiêu thụ 4 Gas, giả sử một phần dữ liệu cuộc gọi nhất định Nếu phân bổ các byte khác 0 và 0 mỗi byte chiếm 50% thì trung bình sẽ tiêu tốn 10 Gas để xử lý 1 Byte dữ liệu cuộc gọi. Do đó, mục tiêu gas liệu cuộc gọi hiện tại phải tương ứng với 187500 byte dữ liệu cuộc gọi, gấp khoảng 2 lần mức sử dụng trung bình hiện tại.
Ưu điểm của việc này là nó làm giảm đáng kể khả năng dữ liệu cuộc gọi đạt đến giới hạn gas , 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ế và cũng loại bỏ việc lạm dụng dữ liệu cuộc gọi. 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 sắp xếp có thể giảm hơn nữa.
Chào mừng bạn tham gia cộng đồng chính thức BlockBeats BlockBeats:
Nhóm đăng ký Telegram: https://t.me/theblockbeats
Nhóm liên lạc Telegram: https://t.me/BlockBeats_App
Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia





