Tác giả gốc: Mario KanWeb3
Giới thiệu: Vitalik đưa ra đề xuất EIP-7706 vào ngày 14 tháng 5 năm 2024, đề xuất As bổ sung cho mô hình Gas hiện tại, việc tính toán gas của calldata được tách riêng và cơ chế định giá phí cơ bản tương tự như gas Blob được tùy chỉnh để giảm hơn nữa chi phí vận hành của 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. .
Trong giai đoạn đầu thiết kế, Ethereum đã sử dụng một cơ chế đấu giá đơn giản để định giá phí giao dịch, yêu cầu người dùng tích cực đấu giá cho các giao dịch của riêng họ, tức là đặt giá gas. Thông thường, phí giao dịch mà người dùng phải trả sẽ thuộc về người khai thác. sẽ quyết định thứ tự đóng gói giao dịch dựa trên giá dự 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 tính đến MEV. Theo quan điểm của 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 bốn vấn đề sau:
· Sự biến động của mức phí giao dịch và chi phí đồng thuận số lượng giao dịch Không khớp giữa:Đối với một blockchain đang hoạt động, 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 thêm một giao dịch 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: Do giới hạn cứng về giới hạn gas cho mỗi khối, cộng với các giao dịch lịch sử Do biến động tự nhiên trong khối lượng, các giao dịch thường phải chờ 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ế "thả lỏng" cho phép một khối lớn hơn và khối tiếp theo nhỏ hơn để đáp ứng từng khối. nhu cầu khác biệt.
· Định giá không hiệu quả: Do sử dụng cơ chế đấu giá đơn giản nên hiệu quả xác định giá hợp lý thấp, đồng nghĩa với việc đối với người dùng Sẽ khó đưa ra mức giá hợp lý, đồng nghĩa với việc có nhiều trường hợp người dùng phải trả phí cao.
· Một 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ị hủy và một mô hình phí đơn giản được áp dụng. Điều này có thể dẫn đến đến nhiều bất ổn, chẳng hạn như khuyến khích khai thác các "khối chị em" để đánh cắp phí giao dịch, mở ra 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ó lần lặp lại đầu tiên vào thời điểm EIP-1559, Vitalik và các nhà phát triển cốt lõi khác vào tháng 4. Ngày 13 tháng 8 năm 2019 Được đề xuất vào ngày 5 tháng 8 năm 2021 và được thông qua trong bản nâng cấp ở Luân Đôn 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 gồm Phí cơ sở và Phí ưu tiên, trong đó Phí cơ sở sẽ dựa trên khối gốc Mối quan hệ giữa mức tiêu thụ khí đã xảy ra trong khối và mục tiêu khí nổi và đệ quy được tính toán định lượng thông qua mô hình toán học đã thiết lập. Hiệu ứng trực quan là nếu mức sử dụng khí trong khối trước vượt quá mục tiêu khí được xác định trước, sau đó Tăng phí cơ sở. Nếu thấp hơn mục tiêu khí đốt, hãy giảm phí cơ bản. Đ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í đốt hợp lý chính xác hơn và tránh Giá Gas tăng cao. do hoạt động sai. Bởi vì việc tính phí cơ bả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. Code cụ thể như sau:

Có thể thấy rằng khi parent_gas_used là lớn hơn parent_gas_target thì phí cơ sở hiện tại của khối sẽ được so sánh với phí cơ bản của khối trước đó cộng với giá trị bù trừ, parent_base_fee được nhân với phần bù của tổng chi phí gas của khối trước đó. khối liên quan đến mục tiêu khí và khí Giá trị tối đa của mục tiêu và hằng số cộng 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, do đó đặt mô hình kinh tế của ETH vào tình trạng giảm phát trạng thái, điều này 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 thời gian tiến tới năm 2021, sự phát triển của Rollup sẽ dần dần xâm nhập vào Gia Kinh, chúng tôi biết rằng dù OP Rollup hay ZK Rollup có nghĩa là một số dữ liệu bằng chứng sau khi nén dữ liệu L2 cần phải được tải lên chuỗi thông qua calldata để đạt được tính khả dụng của dữ liệu (Dữ liệu có sẵn) hoặc được chuyển 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ế tiến thoái lưỡng nan 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, có nghĩa là Gas của tất cả các giao dịch trong đó. khối hiện tại Tổng mức tiêu thụ không thể vượt quá giá trị này. Được tính toán dựa trên Giới hạn Gas hiện tại là 30000000, có giới hạn lý thuyết là 30.000.000 / 16 = 1.875.000 byte, trong đó 16 có nghĩa là EVM tiêu thụ 16 đơn vị Gas để xử lý mỗi byte dữ liệu cuộc gọi. ., 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 trình sắp xếp 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 sẽ không quá cồng kềnh. Thứ hai là dữ liệu blob có cơ chế Gas nguyên gốc. Nói chung, Hiệu ứng được trình bày tương tự như 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 là cũng là 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ả. thời gian, 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)
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ụ 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, nghĩa là chênh lệch Khi. giá trị này là dương, nếu e**(excess_blob_gas /
BLOB_BASE_FEE_UPDATE_FRACTION) lớn hơn 1, base_fee_per_blob_gas sẽ lớn hơn, nếu không thì nó sẽ nhỏ hơn.
Đ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 để 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ùng một lúc. , 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 tổng hợp 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 tế 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 một hạn chế cho mạng chính, tức là xử lý trung bình của mỗi khối là 3 đốm màu ( 0,375 MB ) và giới hạn lên tới 6 đốm màu (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.

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 đề 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 các giá trị trong khối gốc. Độ lệch của giá trị tiêu thụ khí thực tế so với 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] đại diện cho tỷ lệ mục tiêu của lớp hoạt động thực thi Gas, LIMIT_TARGET_RATIOS[1] đại diện cho tỷ lệ mục tiêu của lớp dữ liệu Blob Gas, LIMIT_TARGET_RATIOS[2] đại diện cho tỷ lệ mục tiêu của lớp calldata Gas, vectơ này được sử dụng để tính toán khối cha Logic tính toán cho các giá trị mục tiêu khí tương ứng với ba loại khí 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 thiết lập 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 gas_limits[0] hiện tại là 30000000, 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 gas của dữ liệu cuộc gọi hiện tại, mỗi Byte khác 0 tiêu thụ 16 Gas, 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 phân đoạn dữ liệu cuộc gọi nhất định, mỗi byte chiếm 50%. , thì trung bình cần 10 Gas để 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 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 và giữ cho 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à để dọn đường 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.
Bài viết này là từ một bài gửi và không thể hiện quan điểm của BlockBeats.
Chào mừng bạn tham gia cộng đồng chính thức của BlockBeats:
Nhóm Telegram đăng ký: https://t.me/theblockbeats
Nhóm Telegram thảo luận: https://t.me/BlockBeats_App
Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia
