Gần đây đã có rất nhiều cuộc thảo luận về việc tăng giới hạn gas khối Ethereum. Một số người ủng hộ việc tăng kích thước khối dựa trên Định luật Moore, một số dựa trên trực giác cá nhân, một số chỉ truyền bá và những người khác vẫn lo lắng rằng các chuỗi khác như Solana sẽ vượt qua Ethereum về mức độ chấp nhận rộng rãi của người dùng.
Tiếp theo, tôi muốn hiển thị một số biểu đồ và dữ liệu, có thể giúp chúng ta tạo tiền đề mà không ảnh hưởng đến quá trình phân quyền của Ethereum. Hãy đưa ra quyết định tối đa hóa giới hạn khí.
Bắt đầu lại từ đầu
Không giống như Bitcoin, Ethereum không có giới hạn kích thước khối cố định mà thay vào đó dựa vào cơ chế kích thước khối linh hoạt được đo bằng một số đơn vị "gas". Trong Ethereum, Gas là đơn vị đo lường lượng tính toán cần thiết để thực hiện một hoạt động, chẳng hạn như giao dịch hoặc hợp đồng thông minh. Mọi hoạt động trong Ethereum đều yêu cầu một lượng Gas nhất định để hoàn thành và mỗi khối có nắp Gas, xác định số lượng hoạt động mà một khối có thể chứa.
Ban đầu, vào năm 2015, Ethereum có giới hạn trên là 5.000 Gas mỗi khối. Giới hạn đó nhanh chóng được nâng lên khoảng 3 triệu và sau đó lên khoảng 4,7 triệu vào cuối năm 2016. Với đợt hard fork Tangerine Whistle (EIP-150) được triển khai vào năm 2016 nhằm đối phó với các cuộc tấn công DoS, gas cap đã tăng lên 5,5 triệu bằng cách định giá lại nhiều loại opcode sử dụng nhiều IO khác nhau. Sau những cuộc tấn công này, các thợ mỏ tiếp tục tăng giới hạn Gas, lên khoảng 6,7 triệu vào tháng 7 năm 2017, lên khoảng 8 triệu vào tháng 12 năm 2017, lên khoảng 10 triệu vào tháng 9 năm 2019 và lên khoảng 10 triệu vào tháng 8 năm 2020; lên 12,5 triệu, và cuối cùng là khoảng 15 triệu vào ngày 3 tháng 4 năm 2021.
Kể từ đó , việc định giá cho một số opcode nhất định đã được cải tiến hơn nữa với việc kích hoạt các hard fork Spurious Dragon, Byzantium, Constantinople, Istanbul và Berlin. Ví dụ về những cải tiến này bao gồm EIP-145, EIP-160, EIP-1052, EIP-1108, EIP-1884, EIP-2028, EIP-2200, EIP-2565 và EIP-2929.
Thay đổi đáng kể nhất trong thị trường phí Ethereum xảy ra với sự ra đời của hard fork London (EIP-1559) vào tháng 8 năm 2021. EIP-1559 giới thiệu mức phí cơ bản tự động điều chỉnh theo thời gian/chiều cao khối dựa trên nhu cầu về không gian khối. “Kích thước mục tiêu” cũng được đưa ra, đặt nó ở mức 15 triệu Gas mỗi khối. Mục tiêu này được sử dụng để hướng dẫn việc điều chỉnh linh hoạt phí cơ sở. Nếu tổng lượng Gas sử dụng trong một khối vượt quá mục tiêu này, phí cơ bản cho khối tiếp theo sẽ tăng lên. Ngược lại, nếu tổng lượng gas sử dụng ít hơn mục tiêu thì phí cơ bản sẽ giảm. Cơ chế này nhằm mục đích tạo ra một thị trường phí dễ dự đoán hơn và cải thiện trải nghiệm người dùng bằng cách ổn định chi phí giao dịch. Ngoài ra, EIP-1559 cũng giới thiệu cơ chế hủy phí cơ bản, loại bỏ vĩnh viễn phần Ether đó khỏi lưu thông. Điều này nâng cao tính bền vững của giao thức trong khi tạo ra cái gọi là meme kiếm tiền cực kỳ hiệu quả.
Theo EIP-1559, cũng có giới hạn Gas tối đa (hoặc "hard cap"), được đặt thành gấp đôi mục tiêu, tức là 30 triệu Gas . Điều này có nghĩa là một khối có thể đóng gói các giao dịch với tổng mức sử dụng lên tới 30 triệu Gas.
< mạnh>Kể từ đó, giới hạn gas mỗi khối của Ethereum không thay đổi và tính đến năm 2024, nó vẫn là 30 triệu gas mỗi khối.
Chúng ta đã sẵn sàng tăng kích thước khối chưa?
Gần đây, một số người đã bày tỏ lo ngại về giới hạn gas của Ethereum và yêu cầu tăng giới hạn này. Trong Ethereum Foundation AMA mới nhất trên Reddit, Vitalik cho biết ông đang xem xét ý tưởng tăng giới hạn gas thêm 33% lên 40 triệu. Lý luận của ông dựa trên Định luật Moore, trong đó phát biểu rằng số lượng bóng bán dẫn trên một vi mạch tăng gấp đôi khoảng hai năm một lần, cho phép tăng sức mạnh tính toán tương ứng. Nguyên tắc này cho thấy hiệu suất mạng, bao gồm khả năng xử lý và thực hiện giao dịch, cũng có thể tăng theo thời gian.
Các nhà nghiên cứu Dankrad và Ansgar từ Ethereum Foundation cũng ủng hộ ý tưởng tăng gas cap sau khi đánh giá tình hình sau khi nâng cấp Dencun. Ngoài ra, Pari của Ethereum Foundation đã xuất bản một bài đăng khám phá những cách tiềm năng để tăng giới hạn gas. Những người khác như Peter và Marius của Geth đã bày tỏ lo ngại về việc tăng giới hạn xăng, đặc biệt là nếu không có công cụ/giám sát thích hợp. Những mối lo ngại này chủ yếu liên quan đến các vấn đề như tốc độ tăng trưởng trạng thái tăng nhanh, thời gian đồng bộ hóa và tốc độ tổ chức lại khối.
Kích thước khối là bao nhiêu?
Kích thước khối có thể được đo theo hai cách:
Việc sử dụng gas
p >
Kích thước khối tính bằng byte
Mặc dù hai thước đo này có liên quan với nhau nhưng phải được xem xét độc lập.
Ví dụ: một khối chứa nhiều byte dữ liệu cuộc gọi khác 0 có thể có kích thước byte lớn, trong khi mức sử dụng Gas thực tế (mỗi phần từ khác 0 yêu cầu 16 Gas) có lẽ vẫn còn tương đối nhỏ.
Bỏ qua tình trạng nén hiện tại, tùy thuộc vào giới hạn 128 KB của Geth cho mỗi giao dịch, khối tối đa hiện tại có thể đạt được Kích thước là khoảng 6,88 MB. Một khối như vậy sẽ tối đa hóa số lượng giao dịch 128 KB được đóng gói trong đó. Điều này thực sự giải quyết được 55 giao dịch chứa khoảng 130.900 byte dữ liệu cuộc gọi 0 byte (4 Gas mỗi byte) và một giao dịch lấp đầy khoảng trống còn lại. Tuy nhiên, sau khi nén nhanh, kích thước cuối cùng của khối như vậy là khoảng 0,32 MB, không đáng kể.
Trong một trường hợp khác, xem xét kích thước khối tối đa có thể, bao gồm 15 giao dịch mang dữ liệu cuộc gọi byte khác 0, kích thước nén có thể đạt xấp xỉ 1,77 MB.
Do đó, tính đến hôm nay, 1,77 MB thể hiện giới hạn kích thước khối thực sự cho các khối lớp thực thi.
Ghi chú của người dịch:
Trong các đoạn văn trên, Với phần trên cố định giới hạn gas là 30 M, tác giả muốn tối đa hóa kích thước khối và cố gắng tính toán kích thước tối đa của khối có thể được lấp đầy.
Nếu bạn sửa giới hạn trên của gas và làm cho kích thước khối lớn hơn, bạn chỉ có thể nhồi dữ liệu cuộc gọi (vì các mã byte như phép tính/CỬA HÀNG sẽ không thực sự được sử dụng khối không gian lưu trữ).
Vì vậy, để làm cho khối lớn hơn, không gì khác hơn là lấp đầy giao dịch bằng calldata càng nhiều càng tốt. Sau đó, có hai phương pháp: "cắm 0 calldata" và "cắm 0 calldata". Cần phải tính toán để biết phương pháp nào có thể làm cho kích thước khối lớn hơn. Kết quả cuối cùng là kích thước khối của "Sephi0 calldata" lớn hơn.
Dựa trên tiền đề là ứng dụng khách Geth giới hạn mỗi giao dịch ở mức tối đa 128 KB, hai ví dụ được tính toán dưới đây.
trường hợp 1: 56 giao dịch có kích thước 130.900 B (< 128 KB) (tất cả đều không có dữ liệu cuộc gọi, 4 gas/ B): Gas được sử dụng = 56* (130,900 * 4+21000) = 30497600 > (30 M), do đó chỉ có thể chèn tối đa 55 giao dịch trên + 1 giao dịch nhỏ hơn giao dịch trên. Kích thước khối tương ứng là khoảng 55*128 = 7040 kB = 6,875 MB. Tuy nhiên, vì calldata đều là 0 nên kích thước khối nén là khoảng 0,32 MB.
trường hợp 2: 15 giao dịch có kích thước 130.900 B (< 128 KB) (tất cả đều có dữ liệu cuộc gọi khác 0, 16 gas/B): Gas đã sử dụng = 15 *(130900 *16+21000) = 31731000 > 30 M. Kích thước khối tương ứng là khoảng 14 *128 = 1792 kB = 1,75 MB ~ 15 * 128 = 1,875 M. Tuy nhiên, do calldata khác 0 nên không dễ nén nên kích thước khối nén là khoảng 1,77 MB. )
Về kích thước khối tối đa này, chúng tôi có thể xác định một số yếu tố ảnh hưởng đến nó:
Nắp gas: Không còn nghi ngờ gì nữa, nắp gas sẽ ảnh hưởng đến kích thước khối tối đa. Giới hạn càng cao thì càng có thể nhồi nhét nhiều dữ liệu vào khối.
Định giá hoạt động và dữ liệu: Gas cho một hoạt động càng rẻ thì càng có nhiều hoạt động có thể được thực hiện trong một khối. Mặc dù các hoạt động như CALLDATALOAD hoặc CALLDATACOPY tốn 3 Gas và tương đối rẻ; các hoạt động khác như < code>TẠO mắc hơn. Các opcode được sử dụng trong một khối càng đắt tiền thì càng có ít không gian dành cho calldata (hoặc các hoạt động khác) trong khối đó.
Hạn chế khách hàng: Mặc dù tác động của các hạn chế khách hàng không quá rõ ràng, chẳng hạn, ứng dụng khách Geth áp đặt các hạn chế đối với mỗi giao dịch. Giới hạn 128 kb cũng có thể ảnh hưởng đến kích thước khối cuối cùng. Vì phí cố định cho mỗi giao dịch là 21k Gas nên giới hạn kích thước mỗi giao dịch của khách hàng càng thấp thì khách hàng càng phải trả phí cố định thường xuyên hơn, do đó "lãng phí" những gì có thể được sử dụng cho calldata khí đốt. Vì vậy, cuối cùng, giới hạn này có thể dẫn đến việc giảm kích thước khối tối đa khoảng 0,07 MB. Cần lưu ý rằng các hạn chế của khách hàng chỉ ảnh hưởng đến việc phát sóng các giao dịch và không ảnh hưởng đến các khối đã được xác nhận.
Trước tiên, hãy xem Giới hạn Gas cho mỗi khối:
Các khối như Chuỗi Ethereum, nâng cao giới hạn trên của khối khí là cách trực tiếp và rõ ràng nhất để mở rộng công suất. Trần cao hơn có nghĩa là có nhiều không gian dữ liệu hơn. Tuy nhiên, điều này cũng có nghĩa là mọi người đang chạy một nút đầy đủ cần phải phổ biến và tải xuống các khối lớn hơn. Như được hiển thị trong hình trên, kích thước khối trong “trường hợp xấu nhất (tức là kích thước khối tối đa được tính toán trước đó)” có mối quan hệ gần như tuyến tính với mức tăng giới hạn trên của Gas của khối. Kích thước khối tối đa như vậy đạt được bằng cách tạo các khối chứa càng nhiều giao dịch calldata byte khác 0 càng tốt.
Tiếp theo, hãy xem xét một yếu tố ảnh hưởng khác – cơ chế định giá của Ethereum. Cụ thể, trong ví dụ hiện tại, chi phí hoạt động của các byte khác 0 calldata hiện được đặt thành 16 Gas:
Như minh họa trong hình ở trên cho thấy rằng việc thêm chi phí khác 0 calldata sẽ làm giảm kích thước khối. Nói cách khác, việc giảm chi phí xuống, chẳng hạn như 8 Gas mỗi byte sẽ nhân đôi kích thước khối trong trường hợp xấu nhất. Điều này mang tính trực quan vì việc giảm giá cho phép đưa lượng dữ liệu vào khối gấp đôi.
Vậy điều gì xảy ra sau khi EIP-4844 (Proto-Danksharding) lên mạng?
Tôi sẽ không đi sâu vào chi tiết về 4844 ở đây vì có tài liệu hay tại eip4844.com, nhưng tóm lại, EIP-4844 giới thiệu một cái gì đó như " sidecar (Sidecar)", kiểu dữ liệu có cấu trúc, được gọi là blob, mỗi blob có thể chứa khoảng 125 kb dữ liệu. Cơ chế tính phí dữ liệu Blob tương tự như EIP-1559 và cũng có một "mục tiêu" dùng để neo số lượng blob. Trong hard fork Dencun, mục tiêu được đặt thành 3 đốm màu trên mỗi khối và giới hạn tối đa được đặt thành 6 đốm màu trên mỗi khối. Điều đáng chú ý là blob có thị trường phí riêng, tạo ra cái gọi là thị trường phí đa chiều. Điều này có nghĩa là các đốm màu không phải cạnh tranh với các giao dịch tiêu chuẩn mà thay vào đó được tách khỏi phí theo cơ chế EIP-1559.
Cho đến nay, mọi thứ vẫn rất tốt. Hãy xem bản nâng cấp này ảnh hưởng như thế nào đến kích thước khối trung bình của Ethereum.
Tính đến hôm nay, kích thước khối trung bình của khối chuỗi beacon được nén bằng snappy là khoảng 125 KB. Với 4844, chúng tôi thêm 375 KB nữa cho mỗi khối, do đó tăng kích thước khối trung bình hiện tại lên gấp 4 lần. Nếu đạt đến số lượng đốm màu tối đa, về cơ bản chúng tôi sẽ tăng kích thước khối hiện tại lên bảy lần.
Kích thước khối trong trường hợp xấu nhất tăng từ khoảng 1,77 MB lên khoảng 2,5 MB. Ước tính này không tính đến phần CL (lớp đồng thuận) của khối. Dù thế nào đi nữa, chúng ta phải chuẩn bị cho kích thước khối tối đa này trong trường hợp xảy ra một cuộc tấn công DoS.
Tóm tắt
Cuối cùng, nếu muốn tăng giới hạn Gas của khối hiện tại, chúng ta cần Tiến hành nghiên cứu và phân tích kỹ lưỡng trước khi thực hiện. Trong khi các tổ chức đã được thành lập như các nhà khai thác nút Coinbase, Binance, Kraken hoặc Lido có thể xử lý vượt quá giới hạn gas 40 triệu khối, thì những người đặt cược độc lập có thể gặp khó khăn hơn.
Do đó, những quyết định như vậy phải được xem xét cẩn thận để đảm bảo rằng chúng tôi không hy sinh tính phân cấp.
Cuối cùng, việc xây dựng một thứ gì đó lớn mạnh và mạnh mẽ như Facebook là tương đối dễ dàng, nhưng điều quan trọng là không đánh mất điều mà hầu hết chúng ta đang theo đuổi: tiến lên Tập trung hóa.
Preview
Có được sự hiểu biết rộng hơn về ngành công nghiệp tiền điện tử thông qua các báo cáo thông tin và tham gia vào các cuộc thảo luận chuyên sâu với các tác giả và độc giả cùng chí hướng khác. Chúng tôi hoan nghênh bạn tham gia vào cộng đồng Coinlive đang phát triển của chúng tôi:https://t.me/CoinliveSG