Tin nóng ⇢

Mô tả chi tiết EIP-7706 và phân loại cơ chế Ethereum Gas mới nhất

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 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 đề 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, sau khi tham khảo các thông tin liên quan, tôi hy vọng sẽ đưa ra một 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. Nó.

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 phải trả sẽ thuộc về người khai thác. , do đó, các 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ề đó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 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, cùng với sự biến động tự nhiên của khối lượng giao dịch trong lịch sử, các giao dịch thường sẽ đợi 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ể, tức là không hiệu quả; không có cơ chế “thư giãn” 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 theo từng 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ả tìm ra 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í 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 hoạt động 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” khuyến khích việc khai thác để đánh cắp phí giao dịch, Kích hoạt các vectơ tấn công khai thác ích kỷ mạnh mẽ hơn 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 đượ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 từ 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ở sẽ dựa trên mức tiêu thụ khí được tạo ra trong khối gốc và mục tiêu khí thả nổi và đệ quy. Mối quan hệ đượ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. Hiệu quả trực quan là nếu mức sử dụng gas trong khối trước đó vượt quá mục tiêu gas đã xác định trước, phí cơ bản sẽ tăng lên. Nếu thấp hơn mục tiêu gas, phí cơ bản sẽ giảm. Nó có thể phản ánh tốt hơn mối quan hệ cung cầu và có thể giúp dự đoán về khí hợp lý chính xác hơn, ngăn chặn giá khí tăng cao do vận hành sai, bởi vì việc tính phí cơ sở được xác định trực tiếp bởi hệ thống chứ không phải do hệ thống tự do chỉ định. người dùng. Mã cụ thể như sau:

Có 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ị bù đắp. Parent_base_fee nhân với tổng chi phí gas của khối. khối trước Phần bù tương đối so với mục tiêu khí và giá trị tối đa của mô đun 1 giữa mục tiêu khí và một hằng số. 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 những 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 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 thời gian đế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 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 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 mỗi khối có Giới hạn Gas, 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 được tính là 30000000. Về lý thuyết, có giới hạn 30.000.000/16 = 1.875.000 byte, trong đó 16 đề cập đến thực tế 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 Rollup 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ó được triển khai sau bản nâng cấp Dencun vào đầu quý 2 năm 2024. Đề 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 số đó, 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 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.

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 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 lại 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.

Hoàn thiện hơn nữa môi trường 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 đề 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 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à tỷ lệ tỷ lệ mục tiêu.

Đ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 vận hành 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 lớp calldata Gas. Vectơ này được sử dụng để tính giá trị mục tiêu khí tương ứng với ba loại khí 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. hoạt động trên giới hạn khí:

Logic cài đặt của 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 0 Byte 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 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. calldata. 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, 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à để 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.

Có thể bạn quan tâm

Mục lục