Chuyển tiếp tiêu đề ban đầu 'Cuối cùng chúng ta đã sẵn sàng cho việc tăng giới hạn xăng chưa?'
Có sự thảo luận ngày càng tăng về khả năng tăng khả năng thông qua gas của Ethereum, bằng cách tăng giới hạn gas hoặc giảm thời gian khe cắm. Lập luận chính ủng hộ điều này là yêu cầu phần cứng để chạy một validator đã giảm đều trong vòng bốn năm qua.
Ngoài ra, đã xuất hiện 2 cách để tăng Giới hạn Gas:
Trong bài viết này, tôi sẽ phân tích các kịch bản tệ nhất và trung bình về yêu cầu băng thông, tính toán và lưu trữ nếu giới hạn gas được tăng gấp đôi.
Khi Ethereum được ra mắt vào năm 2015, giới hạn gas ban đầu được thiết lập là 5,000 gas mỗi khốiTrong thời gian, giới hạn này đã trải qua những thay đổi đáng kể:
– Sau hard fork Tangerine Whistle và cụ thể là việc triển khai EIP-150, giới hạn gas đã được tăng lên 5,5 triệu. Việc điều chỉnh này đã được thực hiện như một phần của việc định giá lại một số mã opcode tốn nhiều I/O để đáp ứng các cuộc tấn công từ chối dịch vụ (DoS).
- Vào tháng 7 năm 2017, giới hạn gas đã được nâng lên 6,7 triệu và tiếp tục tăng lên:
– Tháng 12 năm 2017: ~8 triệu
– Tháng 9 năm 2019: khoảng 10 triệu
– Tháng Tám năm 2020: 12.5 triệu
– Tháng 4 năm 2021: 15 triệu
Dưới EIP-1559, cũng có một giới hạn gas tối đa (hoặc “hard cap”), được thiết lập là gấp đôi mục tiêu. Điều này có nghĩa là một khối có thể bao gồm các giao dịch với tối đa 30 triệu gas.
Và trong gần bốn năm qua, không có sự tăng về giới hạn gas nào cả.
Để trả lời câu hỏi này, chúng ta cần phân tích ba khía cạnh về yêu cầu phần cứng: băng thông, tính toán và lưu trữ nếu giới hạn gas được nâng lên 60 triệu ngày hôm nay.
Khi xem xét việc tăng giới hạn gas, lưu trữ nổi bật như là rào cản lớn nhất và nguy cơ đối với mạng Ethereum. Lý do cho điều này nằm ở sự tăng trưởng lịch sử của Ethereum trong kích thước trạng thái và sự căng thẳng liên tục mà điều này đặt lên những người xác minh.
Có hai loại “tăng trưởng” trong Ethereum:
Tăng trưởng nhà nước
Lịch sử tăng trưởng
Trạng thái của Ethereum – tập hợp tất cả số dư tài khoản, mã hợp đồng thông minh và lưu trữ – tiếp tục mở rộng khi nhiều giao dịch được xử lý và các hợp đồng thông minh được triển khai. Kể từ khi thành lập, quy mô tiểu bang đã tăng lên đáng kể, với các giai đoạn tăng trưởng nhanh do tắc nghẽn mạng, hoạt động giao dịch gia tăng và sự gia tăng của tài chính phi tập trung (DeFi) và NFT. Hiện tại, tăng trưởng của tiểu bang là khoảng 2.5 GB mỗi tháng hoặc 30 GB mỗi năm.
Tăng trưởng này có thể dẫn đến các vấn đề sau:
- Thời gian truy cập đĩa chậm hơn
- Yêu cầu phần cứng tăng lên
Tuy nhiên, tính đến thời điểm viết bài, cả hai vấn đề này đều không đặc biệt quan trọng. Trên thực tế, sự khác biệt về thời gian truy cập giữa các hệ thống lưu trữ chỉ khác nhau vài chục gigabyte là khá không đáng kể do độ phức tạp thuật toán của truy vấn, thường là logarit. Yêu cầu lưu trữ cũng không phù hợp, vì chi phí phần cứng mới đang giảm với tốc độ vượt xa mức tăng trưởng tương đối nhỏ về quy mô nhà nước là 30 GB mỗi năm. Ngay cả khi tăng lên 60 GB / năm, sự khác biệt có lẽ sẽ không nổi bật và vẫn sẽ bị vượt qua bởi tiến bộ công nghệ trong phần cứng.
Sự gia tăng quy mô nhà nước này vẫn vượt xa tiến bộ công nghệ với một biên độ đáng kể. Ngay cả khi giới hạn gas tăng gấp đôi, chi phí phần cứng vẫn tiếp tục giảm theo cấp số nhân, làm cho phần cứng cần thiết rẻ hơn theo thời gian.
Tuy nhiên, đáng lưu ý rằng sớm, người staker đơn độc sẽ cần nhiều hơn 2 TB lưu trữ để chạy một validator trên Ethereum. Điều này sẽ tăng yêu cầu lưu trữ lên 4 TB, vì hầu hết phần cứng được bán theo bội số của hai. Ngược địch, điều này có nghĩa là Ethereum cũng có thể sử dụng lưu trữ bổ sung, vì các validator đã cần phải đầu tư vào phần cứng có dung lượng cao hơn, bất kể giới hạn gas được tăng hay không.
LƯU Ý: Không có phân tích trung bình so với trường hợp xấu nhất về lưu trữ vì việc thay đổi liên tục các khối trong một khoảng thời gian kéo dài (tuần và tháng) là một công việc vô cùng đắt đỏ.
Để biện minh cho tuyên bố của tôi rằng chi phí lưu trữ đã giảm theo cấp số nhân, chúng ta có thể xem biến động giá bằng USD của SSD trị giá 1 GB trong bốn năm qua:
Xin lỗi vì chất lượng kém, nhưng bài đăng mà tôi lấy nó từ có vẻ như thế này
Có vẻ như cứ hai năm một lần, chi phí của một GB SSD có xu hướng giảm một nửa.
Nếu chúng ta so sánh với tăng trưởng lưu trữ và trạng thái, sự khác biệt là không đáng kể. Tăng trưởng hiện tại của Ethereum là tuyến tính, trong khi chi phí phần cứng có xu hướng giảm theo tốc độ mũ.
Tôi tìm thấy một biểu đồ nói rõ hơn về xu hướng này với chi phí lưu trữ, nhưng nó từ một bài đăng trên Reddit và không phải từ một bài báo khoa học thực sự (mặc dù kết quả khớp nhau).
Trường hợp trung bình về băng thông trong Ethereum trông giống như 2MB/s; tuy nhiên, hầu hết số này đến từ việc truyền tải và tổng hợp CL. Khi muốn tăng giới hạn gas, chỉ có thể xem xét kích thước khối.
Hiện tại, kích thước khối tối đa ghi lại là 270 KB, và kích thước khối hiện tại sau Deneb là 75 KB. Nếu chúng ta nhân đôi điều này, thay đổi sẽ tương đương với việc tăng 0,5-2 blob so với kích thước tối đa lịch sử và trung bình hiện tại, tương đương với việc tăng khoảng 2-5% trong băng thông của nút (gửi và nhận). Vì vậy, đối với trường hợp trung bình, đây không phải là một thay đổi đáng kể. Trên thực tế, ba blob bổ sung sẽ làm tổn hại nhiều hơn nhiều.
Trường hợp xấu nhất đã được tính toán là 1,7MB, sẽ trở thành 3,4MB (+ 50% băng thông cần thiết cho sự tăng đột biến). Điều này không nhiều nhưng vẫn có ý nghĩa. Lý do tại sao tôi nghĩ rằng điều này không nhiều là DoS như vậy sẽ khá đắt và mức tăng đột biến sẽ là + 50% yêu cầu trung bình hiện tại, đó là điều đã được tính đến. Như tôi đã nói, việc lấp đầy các khối trị giá 15 triệu khí cho nhiều khối liên tiếp là rất tốn kém. Vì vậy, mặc dù kẻ tấn công có khả năng khởi chạy DoS cho một vài khối, chúng sẽ phải chi một số tiền đáng kể để làm như vậy. Ngoài ra, họ sẽ phải cạnh tranh với các giao dịch khác để vào khối, điều này làm cho việc này thậm chí còn đắt hơn.
Trong mọi trường hợp, bất kể ý kiến về các con số, việc tăng chi phí calldata sẽ khắc phục hoàn toàn vấn đề này, vì vậy tôi không lo lắng về điều đó trong mọi trường hợp. Ngoài ra, nếu giới hạn gas được tăng qua EIP-7783, những rủi ro này là không đáng kể và có thể kiểm soát được.
Tính toán và thời gian khối chưa bao giờ là vấn đề để bắt đầu, nhưng đây là chúng ta đi.
Trường hợp trung bình cho tính toán khối thường là dưới 1 giây, ngay cả đối với các máy tính chậm với ổ đĩa kém. Không có gì để tranh cãi ở đây - trên thực tế, điều này không bao giờ là điểm nghẽn trung tâm.
Trường hợp tồi nhất có vẻ không rõ ràng và phụ thuộc vào khách hàng. Sau khi nói chuyện với một số nhóm khách hàng, có vẻ nhất trí là vấn đề duy nhất sẽ là một số mã opcode không mở rộng tốt (như MODEXP).
Tuy nhiên, bất kỳ vector tấn công từ chối dịch vụ nào ở đây đều có thể được khắc phục bằng cách điều chỉnh giá và nếu việc tăng giới hạn gas được thực hiện với EIP-7783, thì những rủi ro này là không đáng kể.
Nhìn chung, dường như việc tăng giới hạn gas không gặp vấn đề về tăng trưởng lưu trữ, vì phần cứng như lưu trữ dễ dàng nâng cấp. Tuy nhiên, băng thông đặt ra một mối đe dọa lớn hơn, vì nó khó mở rộng hơn nhiều. May mắn thay, với EIP-7783, các rủi ro liên quan đến băng thông và khả năng tăng cường tính toán được giảm thiểu hiệu quả. Tuy nhiên, có thể nên điều chỉnh lại chi phí calldata để đảm bảo an toàn bổ sung (mặc dù theo ý kiến của tôi, có lẽ không cần thiết).
Trong ý kiến cá nhân của tôi, hiện nay có thể tăng Giới hạn Gas lên đến 33% hoặc thậm chí gấp đôi nếu thực hiện với việc tăng dần được giới thiệu trong EIP-7783.
Tôi nghĩ rằng vẫn còn quá sớm để làm điều đó thông qua EIP-7782, vì nó sẽ trừng phạt DVT và SSF. Tuy nhiên, sau khi những vấn đề đó được giải quyết - việc giảm thời gian khe cắm chắc chắn là cần thiết.
Chuyển tiếp tiêu đề ban đầu 'Cuối cùng chúng ta đã sẵn sàng cho việc tăng giới hạn xăng chưa?'
Có sự thảo luận ngày càng tăng về khả năng tăng khả năng thông qua gas của Ethereum, bằng cách tăng giới hạn gas hoặc giảm thời gian khe cắm. Lập luận chính ủng hộ điều này là yêu cầu phần cứng để chạy một validator đã giảm đều trong vòng bốn năm qua.
Ngoài ra, đã xuất hiện 2 cách để tăng Giới hạn Gas:
Trong bài viết này, tôi sẽ phân tích các kịch bản tệ nhất và trung bình về yêu cầu băng thông, tính toán và lưu trữ nếu giới hạn gas được tăng gấp đôi.
Khi Ethereum được ra mắt vào năm 2015, giới hạn gas ban đầu được thiết lập là 5,000 gas mỗi khốiTrong thời gian, giới hạn này đã trải qua những thay đổi đáng kể:
– Sau hard fork Tangerine Whistle và cụ thể là việc triển khai EIP-150, giới hạn gas đã được tăng lên 5,5 triệu. Việc điều chỉnh này đã được thực hiện như một phần của việc định giá lại một số mã opcode tốn nhiều I/O để đáp ứng các cuộc tấn công từ chối dịch vụ (DoS).
- Vào tháng 7 năm 2017, giới hạn gas đã được nâng lên 6,7 triệu và tiếp tục tăng lên:
– Tháng 12 năm 2017: ~8 triệu
– Tháng 9 năm 2019: khoảng 10 triệu
– Tháng Tám năm 2020: 12.5 triệu
– Tháng 4 năm 2021: 15 triệu
Dưới EIP-1559, cũng có một giới hạn gas tối đa (hoặc “hard cap”), được thiết lập là gấp đôi mục tiêu. Điều này có nghĩa là một khối có thể bao gồm các giao dịch với tối đa 30 triệu gas.
Và trong gần bốn năm qua, không có sự tăng về giới hạn gas nào cả.
Để trả lời câu hỏi này, chúng ta cần phân tích ba khía cạnh về yêu cầu phần cứng: băng thông, tính toán và lưu trữ nếu giới hạn gas được nâng lên 60 triệu ngày hôm nay.
Khi xem xét việc tăng giới hạn gas, lưu trữ nổi bật như là rào cản lớn nhất và nguy cơ đối với mạng Ethereum. Lý do cho điều này nằm ở sự tăng trưởng lịch sử của Ethereum trong kích thước trạng thái và sự căng thẳng liên tục mà điều này đặt lên những người xác minh.
Có hai loại “tăng trưởng” trong Ethereum:
Tăng trưởng nhà nước
Lịch sử tăng trưởng
Trạng thái của Ethereum – tập hợp tất cả số dư tài khoản, mã hợp đồng thông minh và lưu trữ – tiếp tục mở rộng khi nhiều giao dịch được xử lý và các hợp đồng thông minh được triển khai. Kể từ khi thành lập, quy mô tiểu bang đã tăng lên đáng kể, với các giai đoạn tăng trưởng nhanh do tắc nghẽn mạng, hoạt động giao dịch gia tăng và sự gia tăng của tài chính phi tập trung (DeFi) và NFT. Hiện tại, tăng trưởng của tiểu bang là khoảng 2.5 GB mỗi tháng hoặc 30 GB mỗi năm.
Tăng trưởng này có thể dẫn đến các vấn đề sau:
- Thời gian truy cập đĩa chậm hơn
- Yêu cầu phần cứng tăng lên
Tuy nhiên, tính đến thời điểm viết bài, cả hai vấn đề này đều không đặc biệt quan trọng. Trên thực tế, sự khác biệt về thời gian truy cập giữa các hệ thống lưu trữ chỉ khác nhau vài chục gigabyte là khá không đáng kể do độ phức tạp thuật toán của truy vấn, thường là logarit. Yêu cầu lưu trữ cũng không phù hợp, vì chi phí phần cứng mới đang giảm với tốc độ vượt xa mức tăng trưởng tương đối nhỏ về quy mô nhà nước là 30 GB mỗi năm. Ngay cả khi tăng lên 60 GB / năm, sự khác biệt có lẽ sẽ không nổi bật và vẫn sẽ bị vượt qua bởi tiến bộ công nghệ trong phần cứng.
Sự gia tăng quy mô nhà nước này vẫn vượt xa tiến bộ công nghệ với một biên độ đáng kể. Ngay cả khi giới hạn gas tăng gấp đôi, chi phí phần cứng vẫn tiếp tục giảm theo cấp số nhân, làm cho phần cứng cần thiết rẻ hơn theo thời gian.
Tuy nhiên, đáng lưu ý rằng sớm, người staker đơn độc sẽ cần nhiều hơn 2 TB lưu trữ để chạy một validator trên Ethereum. Điều này sẽ tăng yêu cầu lưu trữ lên 4 TB, vì hầu hết phần cứng được bán theo bội số của hai. Ngược địch, điều này có nghĩa là Ethereum cũng có thể sử dụng lưu trữ bổ sung, vì các validator đã cần phải đầu tư vào phần cứng có dung lượng cao hơn, bất kể giới hạn gas được tăng hay không.
LƯU Ý: Không có phân tích trung bình so với trường hợp xấu nhất về lưu trữ vì việc thay đổi liên tục các khối trong một khoảng thời gian kéo dài (tuần và tháng) là một công việc vô cùng đắt đỏ.
Để biện minh cho tuyên bố của tôi rằng chi phí lưu trữ đã giảm theo cấp số nhân, chúng ta có thể xem biến động giá bằng USD của SSD trị giá 1 GB trong bốn năm qua:
Xin lỗi vì chất lượng kém, nhưng bài đăng mà tôi lấy nó từ có vẻ như thế này
Có vẻ như cứ hai năm một lần, chi phí của một GB SSD có xu hướng giảm một nửa.
Nếu chúng ta so sánh với tăng trưởng lưu trữ và trạng thái, sự khác biệt là không đáng kể. Tăng trưởng hiện tại của Ethereum là tuyến tính, trong khi chi phí phần cứng có xu hướng giảm theo tốc độ mũ.
Tôi tìm thấy một biểu đồ nói rõ hơn về xu hướng này với chi phí lưu trữ, nhưng nó từ một bài đăng trên Reddit và không phải từ một bài báo khoa học thực sự (mặc dù kết quả khớp nhau).
Trường hợp trung bình về băng thông trong Ethereum trông giống như 2MB/s; tuy nhiên, hầu hết số này đến từ việc truyền tải và tổng hợp CL. Khi muốn tăng giới hạn gas, chỉ có thể xem xét kích thước khối.
Hiện tại, kích thước khối tối đa ghi lại là 270 KB, và kích thước khối hiện tại sau Deneb là 75 KB. Nếu chúng ta nhân đôi điều này, thay đổi sẽ tương đương với việc tăng 0,5-2 blob so với kích thước tối đa lịch sử và trung bình hiện tại, tương đương với việc tăng khoảng 2-5% trong băng thông của nút (gửi và nhận). Vì vậy, đối với trường hợp trung bình, đây không phải là một thay đổi đáng kể. Trên thực tế, ba blob bổ sung sẽ làm tổn hại nhiều hơn nhiều.
Trường hợp xấu nhất đã được tính toán là 1,7MB, sẽ trở thành 3,4MB (+ 50% băng thông cần thiết cho sự tăng đột biến). Điều này không nhiều nhưng vẫn có ý nghĩa. Lý do tại sao tôi nghĩ rằng điều này không nhiều là DoS như vậy sẽ khá đắt và mức tăng đột biến sẽ là + 50% yêu cầu trung bình hiện tại, đó là điều đã được tính đến. Như tôi đã nói, việc lấp đầy các khối trị giá 15 triệu khí cho nhiều khối liên tiếp là rất tốn kém. Vì vậy, mặc dù kẻ tấn công có khả năng khởi chạy DoS cho một vài khối, chúng sẽ phải chi một số tiền đáng kể để làm như vậy. Ngoài ra, họ sẽ phải cạnh tranh với các giao dịch khác để vào khối, điều này làm cho việc này thậm chí còn đắt hơn.
Trong mọi trường hợp, bất kể ý kiến về các con số, việc tăng chi phí calldata sẽ khắc phục hoàn toàn vấn đề này, vì vậy tôi không lo lắng về điều đó trong mọi trường hợp. Ngoài ra, nếu giới hạn gas được tăng qua EIP-7783, những rủi ro này là không đáng kể và có thể kiểm soát được.
Tính toán và thời gian khối chưa bao giờ là vấn đề để bắt đầu, nhưng đây là chúng ta đi.
Trường hợp trung bình cho tính toán khối thường là dưới 1 giây, ngay cả đối với các máy tính chậm với ổ đĩa kém. Không có gì để tranh cãi ở đây - trên thực tế, điều này không bao giờ là điểm nghẽn trung tâm.
Trường hợp tồi nhất có vẻ không rõ ràng và phụ thuộc vào khách hàng. Sau khi nói chuyện với một số nhóm khách hàng, có vẻ nhất trí là vấn đề duy nhất sẽ là một số mã opcode không mở rộng tốt (như MODEXP).
Tuy nhiên, bất kỳ vector tấn công từ chối dịch vụ nào ở đây đều có thể được khắc phục bằng cách điều chỉnh giá và nếu việc tăng giới hạn gas được thực hiện với EIP-7783, thì những rủi ro này là không đáng kể.
Nhìn chung, dường như việc tăng giới hạn gas không gặp vấn đề về tăng trưởng lưu trữ, vì phần cứng như lưu trữ dễ dàng nâng cấp. Tuy nhiên, băng thông đặt ra một mối đe dọa lớn hơn, vì nó khó mở rộng hơn nhiều. May mắn thay, với EIP-7783, các rủi ro liên quan đến băng thông và khả năng tăng cường tính toán được giảm thiểu hiệu quả. Tuy nhiên, có thể nên điều chỉnh lại chi phí calldata để đảm bảo an toàn bổ sung (mặc dù theo ý kiến của tôi, có lẽ không cần thiết).
Trong ý kiến cá nhân của tôi, hiện nay có thể tăng Giới hạn Gas lên đến 33% hoặc thậm chí gấp đôi nếu thực hiện với việc tăng dần được giới thiệu trong EIP-7783.
Tôi nghĩ rằng vẫn còn quá sớm để làm điều đó thông qua EIP-7782, vì nó sẽ trừng phạt DVT và SSF. Tuy nhiên, sau khi những vấn đề đó được giải quyết - việc giảm thời gian khe cắm chắc chắn là cần thiết.