
Paradigm: Thách thức và giải pháp cho sự tăng trưởng trạng thái của Ethereum
Tuyển chọn TechFlowTuyển chọn TechFlow

Paradigm: Thách thức và giải pháp cho sự tăng trưởng trạng thái của Ethereum
Ethereum có thể duy trì mức tăng trưởng trạng thái hiện tại trong nhiều năm.
Tác giả: Storm Slivkoff, Georgios Konstantopoulos
Biên dịch: Luffy, Foresight News
Sự tăng trưởng trạng thái của Ethereum và mối liên hệ với giới hạn Gas thường bị hiểu lầm. Nhiều người cho rằng sự tăng trưởng trạng thái là nút thắt mở rộng chính của Ethereum. Tuy nhiên, các cuộc thảo luận về tăng trưởng trạng thái thường bị cản trở do thuật ngữ không chính xác và thiếu bằng chứng định lượng chi tiết.
Việc áp dụng phương pháp dựa trên dữ liệu có thể làm rõ vấn đề tăng trưởng trạng thái. Trong bài viết này, chúng tôi sử dụng tập dữ liệu độ phân giải cao để hiểu rõ quy mô và hình dạng của sự tăng trưởng trạng thái. Quá trình này dẫn đến một kết luận đáng ngạc nhiên: phần cứng tiêu dùng hiện đại có thể duy trì tốc độ tăng trưởng trạng thái hiện tại ít nhất trong mười năm tới. Hơn nữa, khi xem xét sự cải tiến liên tục của phần mềm và phần cứng, khoảng thời gian này có thể được kéo dài vô thời hạn.
Chúng tôi tin rằng Ethereum có lộ trình rõ ràng: 1) loại bỏ hoàn toàn sự tăng trưởng trạng thái như một nút thắt mở rộng; 2) nâng giới hạn Gas lên mức đủ để hỗ trợ hệ thống tài chính phi tập trung quy mô toàn cầu. Mục tiêu của loạt bài viết này là phát triển một phương pháp khoa học nhằm hiểu và xây dựng lộ trình mở rộng này.
Bài viết này là phần 1 trong loạt bài về khả năng mở rộng của Ethereum, tập trung vào tăng trưởng trạng thái; phần 2 nói về sự tăng trưởng lịch sử, phần 3 về truy cập trạng thái, và phần 4 về giới hạn Gas.
Tăng trưởng trạng thái là gì?
Thuật ngữ "tăng trưởng trạng thái" thường được dùng để chỉ bất kỳ nút thắt mở rộng nào của Ethereum khi kích thước dữ liệu vượt quá khả năng phần cứng của nút Ethereum. Tuy nhiên, không nên nghĩ về tăng trưởng trạng thái theo cách đơn giản như vậy. Dữ liệu Ethereum có nhiều loại khác nhau, mỗi loại có mối quan hệ riêng biệt với các thành phần phần cứng nền tảng của nút. Do đó, việc sử dụng thuật ngữ chính xác để mô tả từng nút thắt mở rộng khác nhau là cực kỳ quan trọng.
Trạng thái là tập hợp dữ liệu cần thiết để xây dựng và xác thực các khối Ethereum mới. Trạng thái bao gồm bytecode hợp đồng, lưu trữ hợp đồng, số dư tài khoản và nonce tài khoản. Lịch sử là tập dữ liệu mà nút cần để đồng bộ từ khối genesis đến khối mới nhất. Lịch sử bao gồm các khối và giao dịch. Trạng thái và lịch sử là hai tập dữ liệu không trùng lặp. Từ những định nghĩa này, ít nhất có ba hiện tượng khác nhau gây áp lực lớn lên phần cứng nút:
-
Tăng trưởng trạng thái: sự tích lũy tài khoản mới, bytecode hợp đồng mới, lưu trữ hợp đồng mới.
-
Tăng trưởng lịch sử: sự tích lũy khối mới và giao dịch mới.
-
Truy cập trạng thái: tập hợp các thao tác đọc/ghi dùng để xây dựng và xác thực khối.
Mỗi nút thắt này có mối quan hệ riêng biệt với các giới hạn phần cứng của nút. Bốn giới hạn phần cứng liên quan nhất là:
-
IO mạng: tốc độ tải lên và tải xuống mà nút phải duy trì để đạt được sự đồng thuận ổn định với các nút ngang hàng.
-
Kích thước lưu trữ: lượng dữ liệu mà nút phải lưu trữ vĩnh viễn để xây dựng, xác thực và phát tán khối.
-
Kích thước bộ nhớ: lượng dữ liệu mà nút phải cache trong bộ nhớ để đồng bộ với đầu cuối chuỗi khối.
-
IO lưu trữ: số lượng thao tác đọc/ghi mỗi giây mà nút phải thực hiện để đồng bộ với đầu cuối chuỗi khối.
Mối quan hệ giữa các nút thắt và giới hạn phần cứng này được minh họa trong Hình 1.

Hình 1: Các nút thắt mở rộng của Ethereum
Bắt đầu từ đỉnh biểu đồ, mỗi khi Ethereum thực thi một giao dịch, tất cả tài nguyên được sử dụng bởi giao dịch đó đều được định giá bằng Gas. Do đó, giới hạn Gas của Ethereum là một đại lượng một chiều, giới hạn tốc độ mọi hoạt động trên chuỗi. Phía sau giới hạn Gas là kích thước khối và số thao tác mỗi khối. Càng nhiều byte mỗi khối, lịch sử càng tăng nhanh. Càng nhiều thao tác IO mỗi khối, tỷ lệ truy cập trạng thái càng lớn, và (thường thì) tốc độ tăng trưởng trạng thái cũng càng lớn.
Do đó, các nút thắt mở rộng liên quan đến các giới hạn phần cứng của nút như sau:
-
Để hỗ trợ tăng trưởng trạng thái lớn, nút phải có đủ dung lượng lưu trữ và bộ nhớ. Nếu trạng thái trở nên quá lớn, nó sẽ không thể chứa vừa trong thiết bị lưu trữ, hoặc phần trạng thái được truy cập thường xuyên sẽ không còn nằm trong bộ nhớ, dẫn đến giảm hiệu suất.
-
Để hỗ trợ tăng trưởng lịch sử lớn, nút phải có đủ băng thông mạng để chia sẻ lượng lớn dữ liệu khối và đủ dung lượng lưu trữ để lưu giữ dữ liệu đó.
-
Để hỗ trợ truy cập trạng thái lớn, nút phải có bộ nhớ lớn để cache trạng thái nóng, và có lượng IO lưu trữ lớn để hỗ trợ đủ thao tác đọc/ghi.
Đặc biệt đối với tăng trưởng trạng thái, thách thức chính là đảm bảo quy mô trạng thái không tăng nhanh hơn tốc độ cải tiến liên tục của phần cứng tiêu dùng. Bộ nhớ và lưu trữ của nút là tài nguyên hữu hạn, vì vậy cuối cùng chúng sẽ đạt đến điểm nghẽn trừ khi trạng thái ngừng tăng hoặc phần cứng được nâng cấp định kỳ. May mắn thay, phần cứng bộ nhớ và lưu trữ đã và đang cải thiện qua nhiều năm. Tuy nhiên, việc dự đoán chính xác mức độ cải tiến này vẫn chưa chắc chắn, và không nên coi sự cải thiện nhanh chóng sẽ tiếp diễn vô thời hạn.
Lưu ý rằng EIP-4844 sắp ra mắt sẽ mang lại một số thay đổi cho các mối quan hệ mở rộng này. Sau EIP-4844, dữ liệu lịch sử tích lũy trên ổ đĩa dự kiến sẽ giảm đáng kể, nhưng IO mạng có thể tăng mạnh khi truyền lượng lớn dữ liệu blob.
Trong bài viết này, chúng tôi chủ yếu tập trung vào kích thước trạng thái và tốc độ tăng trưởng trạng thái, chứ không phải kích thước bộ nhớ và mẫu truy cập trạng thái. Chúng tôi sẽ nghiên cứu các chủ đề khác trong các công trình tương lai.
Thành phần trạng thái Ethereum
Bước tiếp theo để hiểu tăng trưởng trạng thái là kiểm tra tổng quy mô trạng thái và đóng góp của từng thành phần. Hiện tại, dữ liệu trạng thái Ethereum vào khoảng 245,5 GB. Con số này được đo bằng nút reth, nhưng các con số ở các client nút khác cũng có thể so sánh được, như trong bảng tính. Tài khoản, bytecode hợp đồng và lưu trữ hợp đồng lần lượt chiếm 14,1%, 4,3% và 81,7% trạng thái.
Hình 2 cho thấy các giao thức hợp đồng thông minh khác nhau chiếm bao nhiêu dung lượng trạng thái. Trong biểu đồ bên dưới, kích thước của mỗi loại hợp đồng biểu thị số byte mà các khe lưu trữ và bytecode của nó chiếm dụng.

Hình 2: Phân bố trạng thái Ethereum
Các con số trong Hình 2 biểu thị tổng số byte mà client nút phải lưu trữ trên đĩa. Điều này bao gồm dữ liệu được sử dụng cho chỉ mục và các loại chi phí lưu trữ khác. Kích thước lưu trữ trung bình cho mỗi tài khoản và mỗi khe lưu trữ lần lượt là 133,6 byte và 191,3 byte.
Dưới đây là một số thông tin quan trọng nhất từ Hình 2:
-
Token là đóng góp lớn nhất cho trạng thái. Những thành phần lớn nhất trong trạng thái Ethereum là token ERC-20 và ERC-721, lần lượt chiếm 27,2% và 21,6% trạng thái. Token chiếm nhiều dung lượng vì số dư người dùng cho mỗi token phải được lưu trữ riêng biệt trong từng khe lưu trữ 32 byte. Do đó, một nửa kích thước trạng thái Ethereum tỷ lệ thuận với tổng số người dùng Ethereum và tổng số token mà mỗi người dùng sở hữu.
-
Ít nhất 7,4% trạng thái Ethereum đang ngủ đông. Một số hợp đồng lớn nhất trong trạng thái Ethereum không còn hoạt động. Các giao thức này được phát hành khi không gian khối và không gian trạng thái còn rẻ hơn hiện nay rất nhiều, bao gồm hầu hết các giao thức trong lĩnh vực trò chơi, cờ bạc và lừa đảo, cũng như nhiều DEX không còn hoạt động như IDEX, Etherdelta và Oasis. Các giao thức này chiếm ít nhất 7,4% trạng thái Ethereum. Mức độ trạng thái ngủ đông thực tế còn cao hơn vì nó cũng bao gồm các dự án đuôi dài trong các danh mục ERC-20, ERC-721 và các loại khác.
-
Cầu nối L2 chiếm chưa đầy 2% trạng thái Ethereum. Bằng cách tận dụng các kỹ thuật như nén, bằng chứng ZK và mã hóa cải tiến, giao dịch L2 sử dụng trạng thái hiệu quả hơn nhiều so với mạng chính. Mặc dù L2 chỉ chiếm 2% trạng thái mạng chính, nhưng tổng số giao dịch mỗi giây của L2 nhiều gấp 5 lần so với mạng chính.
Tăng trưởng trạng thái Ethereum nhanh đến mức nào?
Khía cạnh quan trọng nhất của tăng trưởng trạng thái là sự thay đổi tốc độ tăng trưởng theo thời gian. Tỷ lệ này tiết lộ mức độ nghiêm trọng của vấn đề trạng thái và xu hướng thay đổi của nó.
Hình 3 cho thấy tốc độ tăng trưởng trạng thái kể từ khi Ethereum ra đời vào năm 2015. Các tốc độ này được tính bằng cách cộng tổng bytecode hợp đồng và lưu trữ hợp đồng trong từng danh mục hợp đồng.


Hình 3: Sự tăng trưởng trạng thái Ethereum theo thời gian
Dưới đây là một số thông tin quan trọng nhất từ Hình 3:
-
Hiện tại, trạng thái tăng khoảng 2,62 GB mỗi tháng, thấp hơn mức đỉnh 5,99 GB mỗi tháng. Dự đoán theo các con số này, tổng kích thước trạng thái trong 5 năm tới sẽ nằm trong khoảng 396 GB đến 606 GB. Mặc dù người ta có thể mô tả tốc độ tăng trưởng hiện tại là 12,8% mỗi năm, nhưng trong khi trạng thái tiếp tục tăng, tốc độ tăng tuyệt đối lại đang giảm, do đó mô hình tăng trưởng mũ đơn giản có thể không phù hợp.
-
Sự sụt giảm gần đây trong tăng trưởng trạng thái chủ yếu là do hoạt động NFT giảm. Mặc dù người ta có thể mong đợi mức độ tương quan nhất định giữa các loại hoạt động mạng khác nhau, nhưng các yếu tố đóng góp vào trạng thái lại tồn tại sự độc lập đáng ngạc nhiên. Ví dụ, mặc dù tổng tốc độ tăng trưởng trạng thái đã giảm trong vài năm qua, nhưng kể từ năm 2020, tốc độ tăng trưởng trạng thái ERC-20 thực tế lại tăng hàng năm.
-
Tăng trưởng trạng thái đang ở mức thấp nhất kể từ năm 2021. Sự sụt giảm này khá đáng ngạc nhiên, nhưng nếu xét đến việc trạng thái chủ yếu tỷ lệ thuận với số dư token mới, điều này là hợp lý. Nếu tốc độ tăng trưởng trạng thái tiếp tục giảm, người ta có thể nghĩ rằng Ethereum có khả năng hỗ trợ giới hạn Gas cao hơn. Điều này có thể đúng, nhưng cần nhớ rằng: 1) Trong mô hình định giá Gas hiện tại, không có gì ngăn chặn một đợt bùng nổ mới về tốc độ tăng trưởng; 2) Trạng thái không phải là nút thắt duy nhất phía sau giới hạn Gas.
Giá trị tăng trưởng trạng thái chấp nhận được là bao nhiêu?
Bây giờ chúng ta biết 1) quy mô, 2) thành phần và 3) tốc độ tăng trưởng trạng thái Ethereum. Làm thế nào để xác định phạm vi giá trị tăng trưởng trạng thái chấp nhận được? Câu hỏi này rất phức tạp vì nó phụ thuộc cả vào các lực lượng thị trường khó dự đoán lẫn lựa chọn triết học về những gì Ethereum nên đánh đổi.
Hãy bắt đầu với mô hình đơn giản nhất: giả sử phần cứng trong tương lai không cải thiện, mức tăng trưởng trạng thái hiện tại có thể duy trì bao lâu trên phần cứng tiêu dùng thông thường. Như Hình 3 cho thấy, tốc độ tăng trưởng hàng năm của trạng thái trong những năm gần đây dao động từ 31 GB/năm đến 72 GB/năm. Hiện nay, phần cứng tiêu dùng phổ biến có dung lượng lưu trữ tối đa khoảng 4 TB và bộ nhớ khoảng 64 GB. Từ đó, chúng ta có thể tạo ra một mô hình dự đoán nhu cầu lưu trữ và bộ nhớ đơn giản:
-
Lưu trữ: Nút hiện tại cần lưu trữ khoảng 1 TB dữ liệu trạng thái. Trên thực tế, điều này có nghĩa là nhiều nút đang sử dụng đĩa có dung lượng ít nhất 2 TB. Để đơn giản, hãy bỏ qua sự tăng trưởng lịch sử trong tương lai, như thể chúng ta đang sống trong một thế giới hậu EIP-4444. Chúng ta có thể tính thời gian vận hành trong tương lai: (dung lượng lưu trữ còn lại) / (tốc độ tăng trưởng trạng thái), như trong bảng tính. Do đó, phần cứng lưu trữ nút có thể hỗ trợ tốc độ tăng trưởng trạng thái hiện tại hơn một thập kỷ mà không cạn kiệt không gian 2 TB. Với mức tăng trưởng trạng thái hiện tại, 4 TB đủ để vận hành gần nửa thế kỷ.
-
Bộ nhớ: Người dùng Ethereum-on-arm báo cáo rằng bộ nhớ khả thi tối thiểu để vận hành nút Ethereum là khoảng 16 GB. Nếu giả sử nhu cầu bộ nhớ tăng tỷ lệ thuận với kích thước trạng thái, thì tốc độ tăng trưởng trạng thái 30–72 GB mỗi năm sẽ chuyển thành nhu cầu thêm 2–4,7 GB bộ nhớ mỗi năm. Vì vậy, với tỷ lệ Gas hiện tại, RAM 32 GB sẽ đủ dùng từ 3 đến 8 năm. RAM 64 GB sẽ đủ dùng từ 10 đến 23 năm.
Đây là một mô hình đơn giản với nhiều giả định. Các điều kiện mở rộng mô hình này có thể bao gồm: 1) tăng trưởng lịch sử, 2) mở rộng nhu cầu bộ nhớ phi tuyến, 3) giảm chi phí phần cứng, 4) tăng giới hạn Gas, 5) định giá lại Gas cho các opcode, và 6) cải tiến kiến trúc Ethereum trong tương lai. Mỗi yếu tố này có thể tương tác phi tuyến và thay đổi theo thời gian. Chúng tôi sẽ khám phá các mở rộng mô hình này trong các công trình tương lai.
Cần nhấn mạnh rằng tính bền vững dài hạn là điều tốt. Ngay cả khi phần cứng hiện đại có thể hỗ trợ vận hành trong nhiều năm, cũng không nên chủ quan rút ngắn thời gian vận hành. Mọi kế hoạch tăng tốc độ tăng trưởng trạng thái nên bao gồm một vùng đệm đáng kể để đối phó với những thay đổi khó lường trong môi trường phần cứng hoặc phần mềm.
Làm thế nào để giải quyết vấn đề tăng trưởng trạng thái?
Để giải quyết vấn đề tăng trưởng trạng thái, nhiều giải pháp khác nhau đã được đề xuất. Ba cải tiến kiến trúc Ethereum nổi bật: Rollup, Verkle Trees và State Expiry. Tổng thể, chúng tạo thành một lộ trình toàn diện giải quyết vấn đề tăng trưởng trạng thái trong ngắn hạn, trung hạn và dài hạn.
Ngắn hạn: Rollup không giải quyết trực tiếp vấn đề tăng trưởng trạng thái, nhưng giảm nhẹ gánh nặng mạng. Như Hình 2 và Hình 3 cho thấy, Rollup sử dụng trạng thái hiệu quả hơn mạng chính. Việc chuyển hoạt động sang L2 thực sự yêu cầu lưu trữ một lượng trạng thái nhất định trên mạng chính để hỗ trợ người dùng rút tiền. Tuy nhiên, dấu chân trạng thái của giao dịch L2 thấp hơn nhiều so với giao dịch trên mạng chính. Do đó, Rollup có thể tăng tổng hoạt động trong hệ sinh thái một cách bền vững hơn. Với EIP-4844 sắp ra mắt, việc áp dụng Rollup dự kiến sẽ gia tăng, khi blob sẽ làm cho Rollup rẻ hơn.
Trung hạn: Verkle Trees giải quyết vấn đề tăng trưởng trạng thái cho các nút xác thực, nhưng không giải quyết cho các nút cần xây dựng giao dịch mới. Verkle Trees là cấu trúc dữ liệu mới cho trạng thái Ethereum. Chúng hỗ trợ các client nhẹ và nút "vô trạng thái" hiệu quả hơn. Những nút này có thể xác thực khối mới mà không cần biết các giá trị trạng thái hiện có. Điều này loại bỏ vấn đề tăng trưởng trạng thái đối với nút xác thực. Việc xây dựng giao dịch mới vẫn cần lưu trữ và truy cập trạng thái, nhưng điều này vẫn bền vững hơn hiện nay vì xây dựng giao dịch là nhiệm vụ có thể dễ dàng phân bổ trên nhiều máy. Về phạm vi, Verkle Trees đại diện cho một dự án kỹ thuật lớn có thể mất nhiều năm để triển khai.
Dài hạn: State Expiry giải quyết vấn đề tăng trưởng trạng thái cho mọi nút, nhưng cần cơ sở hạ tầng bổ sung. State expiry cho phép nút loại bỏ các phần trạng thái không hoạt động, như trong Hình 2. Lưu ý rằng thuật ngữ "trạng thái ngủ đông" có thể là tên gọi phù hợp hơn, vì hầu hết các đề xuất hiện tại cho phép khôi phục trạng thái "hết hạn" thông qua chứng minh. Lo ngại về việc mất trạng thái theo thời gian có thể được giải quyết miễn là dữ liệu lịch sử (khối và giao dịch) vẫn còn. Do đó, bất kỳ giải pháp nào được phát triển cho vấn đề lưu trữ lịch sử trong EIP-4444 cũng sẽ giải quyết vấn đề lưu trữ trạng thái. Tuy nhiên, nếu Verkle Trees thành công trong mục tiêu của mình, state expiry có thể trở nên không cần thiết.
Còn nhiều giải pháp khác cho vấn đề tăng trưởng trạng thái, bao gồm state rent và sharding, nhưng nhìn chung, những giải pháp này có thể ảnh hưởng đến trải nghiệm người dùng hoặc tính toàn vẹn. Để đạt được giải pháp cuối cùng trong tương lai xa, có thể cần kết hợp các giải pháp này với nhau.
Tóm tắt
Mặc dù tăng trưởng trạng thái là một thách thức mở rộng then chốt của Ethereum, chúng tôi tin rằng đây là vấn đề có thể giải quyết được. Theo cách hiểu dữ liệu của chúng tôi, Ethereum có thể duy trì mức tăng trưởng trạng thái hiện tại trong nhiều năm, tạo ra vùng đệm thoải mái cho các nâng cấp kiến trúc.
Chúng tôi tin rằng phương pháp thực nghiệm là cực kỳ quan trọng để thiết kế giới hạn Gas của Ethereum và dẫn dắt Ethereum đến giải pháp mở rộng cuối cùng. Bài viết này chỉ là một bước đi trong hành trình đó. Còn có các loại dữ liệu khác ngoài trạng thái, mỗi loại đều tạo gánh nặng lên nút Ethereum và giới hạn Gas của Ethereum. Chúng tôi hy vọng sẽ khám phá các nút thắt khác này trong các công trình tương lai.
Chào mừng tham gia cộng đồng chính thức TechFlow
Nhóm Telegram:https://t.me/TechFlowDaily
Tài khoản Twitter chính thức:https://x.com/TechFlowPost
Tài khoản Twitter tiếng Anh:https://x.com/BlockFlow_News














