Hôm qua, tôi mở terminal lên, chạy lệnh curl -s https://beaconcha.in/api/v1/validator/lido | jq '.data | length' và thấy con số 34.000. Nhưng trong đầu tôi hiện ra một câu hỏi khác: tại sao Lido lại tự nguyện cắt bỏ gần 1/3 bộ sưu tập validator của mình? Đây không phải là một bug, mà là một bản nâng cấp có tên gọi CSM v2 (Community Staking Module version 2). Và nó thay đổi mọi thứ — từ cách Lido vận hành, đến cách Ethereum thở.
Tôi không build protocol, tôi chơi với code. Và code lần này nói với tôi: "Chúng ta đang chuyển từ một đội quân đông đúc nhưng lộn xộn, sang một đội quân tinh nhuệ, có kỷ luật hơn." Nghe có vẻ hào nhoáng? Hãy cùng nhìn vào bên trong.
Context: Tại sao Lido phải làm điều này?
Lido là gã khổng lồ trong thị trường liquid staking. Với hơn 14 tỷ USD TVL (tính đến tháng 7/2023), nó chiếm hơn 30% tổng số ETH staked. Nhưng vấn đề nằm ở chỗ: mỗi validator trên Ethereum (32 ETH) là một node riêng biệt. Lido vận hành qua các node operator được chọn — 34 tổ chức lớn — và mỗi operator chạy hàng trăm, thậm chí hàng nghìn validator. Kết quả: tổng số validator của Lido lên tới ~50.000, chiếm gần 1/3 tổng số validator trên mạng lưới.
Điều này gây ra một áp lực không nhỏ lên lớp đồng thuận (consensus layer) của Ethereum. Mỗi epoch (32 slot), tất cả validator đều phải gửi attestations (chứng thực). Càng nhiều validator, càng nhiều tin nhắn chứng thực, càng ngốn băng thông và tài nguyên xử lý. Mạng Ethereum vốn đã căng thẳng với rollup và blob, giờ thêm gánh nặng từ chính validator của mình.
Vì vậy, Lido quyết định: "Thay vì ai cũng có thể chạy validator với 32 ETH, hãy yêu cầu họ phải stake thêm ETH làm tài sản thế chấp (collateral)." Đó là bản chất của CSM v2: chuyển từ mô hình "reputation-based" (dựa trên uy tín) sang "capital-backed" (dựa trên vốn). Những operator nào không đáp ứng được yêu cầu collateral sẽ phải rút lui, giảm số lượng validator xuống còn ~34.000. Đây là bước chuẩn bị cho hard fork Pectra sắp tới, nơi Ethereum sẽ thay đổi cơ chế staking.
Core: Code nói gì?
Tôi đã đọc qua mã nguồn của CSM v2 trên GitHub. Điểm mấu chốt là một smart contract mới: StakingModuleManager.sol. Nó cho phép Lido định nghĩa lại cách các operator được chọn và giám sát. Thay vì chỉ dựa vào danh sách operator do DAO phê duyệt, giờ đây mỗi operator phải gửi một lượng ETH nhất định vào contract. ETH này sẽ bị slashed nếu operator vi phạm (ví dụ: double sign, offline quá lâu).
Từ góc nhìn kỹ thuật, đây là một cải tiến rõ ràng về bảo mật kinh tế (economic security). Trước đây, nếu một operator làm sai, Lido chỉ có thể "đuổi" họ khỏi danh sách — tác động rất nhỏ. Giờ đây, ETH của họ nằm trong threat model, buộc họ phải vận hành cẩn thận hơn. Điều này đặc biệt quan trọng khi Lido muốn mở rộng sang các chuỗi khác (L2, restaking).
Con số 34.000 validator không phải ngẫu nhiên. Nó tương ứng với việc giảm ~32% tổng số validator của Lido. Mỗi validator giảm đi đồng nghĩa với việc mỗi epoch có ít hơn 32 attestations. Theo ước tính của tôi, tổng số attestations trên toàn mạng sẽ giảm khoảng 29%. Điều này giống như việc giảm tải cho các client như Lighthouse, Prysm — họ sẽ xử lý ít hơn hàng trăm nghìn tin nhắn mỗi ngày. Đó là một con số không hề nhỏ.
Nhưng bên cạnh đó, còn một tác động phụ: lợi nhuận (APR) của stETH sẽ giảm khoảng 0.28%. Tại sao? Bởi vì khi số lượng validator giảm, phần thưởng từ Ethereum (block rewards, MEV) sẽ được chia cho ít validator hơn? Không, sai lầm rồi. Thực tế, APR giảm là do các operator buộc phải gửi thêm ETH làm collateral. Số ETH này không được staking, không sinh lời, nhưng vẫn bị khóa. Do đó, lợi nhuận chung của pool bị pha loãng. Nói cách khác, Lido đánh đổi: giảm một phần lợi nhuận để tăng bảo mật.
Contrarian: Góc nhìn ngược chiều
Bạn nghĩ đây là một bước tiến? Hãy nghĩ lại. Tôi thấy một vấn đề sâu xa hơn: Lido đang càng ngày càng xa rời triết lý "không cần tin tưởng" (trustless) của Ethereum. Việc chọn 34 operator và yêu cầu họ gửi collateral có nghĩa là Lido vẫn là một hệ thống permissioned (có phép). Bất kỳ ai muốn chạy validator cho Lido đều phải được chấp thuận, phải có vốn lớn. Điều này trái ngược hoàn toàn với Rocket Pool, nơi bất kỳ ai có 16 ETH hoặc 8 ETH (với rETH) cũng có thể tham gia.
Hơn nữa, việc giảm lợi nhuận 0.28% có vẻ nhỏ, nhưng trong thị trường cạnh tranh, nó là một con dao. Nếu Rocket Pool hay Frax Ether duy trì APR cao hơn, những người dùng nhạy cảm với lợi suất có thể rời bỏ Lido. Sự thống trị của Lido không phải là vĩnh cửu.
Một điểm mù bảo mật khác: hợp đồng StakingModuleManager mới chưa được kiểm toán bởi bên thứ ba? Tôi không thấy thông tin này trong bài báo. Nếu có lỗi trong logic slashing, toàn bộ tài sản thế chấp của operator có thể bị mất, gây ra một cuộc khủng hoảng tin cậy. Tôi đã từng chứng kiến một sự cố tương tự vào năm 2017 với TokenBridge – tôi quá hào hứng với code mới mà bỏ qua kiểm tra oracle, kết quả mất 50 ETH. Bài học vẫn còn đó: đừng để sự hào hứng che mắt.
Takeaway: Dự báo lỗ hổng
Vào cuối năm 2024, khi Pectra được kích hoạt, chúng ta sẽ thấy rõ hơn tác động thực sự. Tôi dự đoán: Lido sẽ mất một phần thị phần vào tay các giao thức phi tập trung hơn, nhưng bản thân mạng Ethereum sẽ thở phào nhẹ nhõm. Và những ai đang nắm giữ stETH cần cân nhắc: bạn sẵn sàng hy sinh 0.28% APR để đổi lấy một Lido an toàn hơn? Hay bạn sẽ tìm đến những lựa chọn khác? Hãy tự mình mở mã nguồn và kiểm tra. Tôi không build protocol, tôi chơi với code – và code không bao giờ nói dối.