Tóm tắt nhanh
Attestation là hành động validator bỏ phiếu xác nhận một block là hợp lệ trong Ethereum Proof of Stake. Mỗi validator phải attest một lần mỗi epoch (6.4 phút), vote cho head của chain và checkpoint finality. Attestation là cơ chế đồng thuận cốt lõi — không phải block proposer, mà là sự đồng thuận của hàng nghìn attester mỗi slot mới quyết định chain nào là canonical.
01 Attestation là gì?
Trong Ethereum Proof of Stake, attestation (xác thực/chứng thực) là hành động một validator ký tên vào một tin nhắn broadcast lên mạng, tuyên bố: "Theo tôi, block X là head hợp lệ của chain và checkpoint Y nên được finalize."
Attestation khác với block proposing. Mỗi slot chỉ có một block proposer, nhưng có hàng trăm đến hàng nghìn validator attest block đó. Nếu block proposer giống như nghị sĩ đề xuất dự luật, attestation giống như toàn bộ quốc hội bỏ phiếu thông qua — đây mới là nơi quyết định thực sự xảy ra.
Tại sao Attestation quan trọng?
- Fork resolution: Khi có nhiều block cạnh tranh ở cùng height, attestation xác định block nào được đa số validator ủng hộ
- Finality: Attestation là nguyên liệu để Casper FFG tính toán checkpoint nào đủ điều kiện finalize
- Security: Để tấn công chain, attacker phải kiểm soát 1/3 tổng ETH stake — đủ để phá vỡ BFT guarantee của attestation
02 Slot, Epoch và Committee
Để hiểu attestation, cần nắm rõ cấu trúc thời gian của Ethereum PoS:
Slot và Epoch
- Slot: Đơn vị thời gian nhỏ nhất = 12 giây. Mỗi slot có thể có một block mới.
- Epoch: 32 slot liên tiếp = 384 giây ≈ 6.4 phút. Epoch là đơn vị để tính toán committee assignment và finality.
Committee Assignment
Đầu mỗi epoch, toàn bộ active validator set được xáo trộn ngẫu nhiên và phân chia vào các committee. Mỗi slot trong epoch có ít nhất một committee được gán vào. Validator trong committee của slot đó phải attest block trong slot đó.
Với hơn 1 triệu validator hiện tại của Ethereum, mỗi slot có ~31,000 validator attest. Việc xáo trộn ngẫu nhiên mỗi epoch ngăn chặn attacker tích lũy influence trong committee cụ thể — họ không biết trước mình sẽ ở committee nào.
03 Cấu trúc của một Attestation
Một attestation là một data structure chứa nhiều thông tin hơn chỉ "tôi đồng ý với block này". Đây là các thành phần chính:
| Field | Ý nghĩa |
|---|---|
slot | Slot mà validator đang attest |
index | Committee index trong slot đó |
beacon_block_root | Hash của block mà validator cho là head — vote LMD-GHOST |
source | Checkpoint được justify gần nhất — vote Casper FFG source |
target | Checkpoint epoch hiện tại đang được justify — vote Casper FFG target |
signature | BLS signature của validator xác nhận tất cả trên |
Một attestation đơn lẻ mang theo cả hai vote: LMD-GHOST (fork choice hiện tại) và Casper FFG (finality). Đây là thiết kế tinh tế — mỗi validator chỉ cần broadcast một message nhưng đóng góp vào cả hai cơ chế đồng thuận đồng thời.
04 LMD-GHOST — Fork Choice Rule
LMD-GHOST (Latest Message Driven — Greedy Heaviest Observed SubTree) là thuật toán Ethereum dùng để xác định block nào là head hợp lệ của chain khi có fork.
Cách hoạt động
Khi có nhiều block cạnh tranh, LMD-GHOST đếm attestation vote từ tất cả validator. Thay vì đơn giản đếm tổng số vote, LMD-GHOST xem xét latest message của mỗi validator — vote mới nhất của họ — để tránh "replay" vote cũ có thể bị attacker lợi dụng.
Thuật toán chọn subtree có tổng trọng số vote cao nhất, bắt đầu từ genesis đi xuống đến tip. Ở mỗi điểm phân nhánh, chọn nhánh được nhiều stake ủng hộ hơn. Kết quả là một path duy nhất từ genesis đến head — đây là canonical chain.
05 Casper FFG — Finality
Casper FFG (Friendly Finality Gadget) là cơ chế Ethereum dùng để finalize block — đảm bảo block không thể bị revert. Casper FFG hoạt động dựa trên khái niệm checkpoint và supermajority link.
Checkpoint và Justify/Finalize
- Checkpoint: Block đầu tiên của mỗi epoch (slot 0 của epoch). Checkpoint được đại diện bằng cặp (epoch, block_root).
- Justify: Một checkpoint được justify khi có supermajority (≥2/3 total ETH stake) attest vote từ một checkpoint đã justify sang checkpoint mới.
- Finalize: Một checkpoint được finalize khi checkpoint sau nó được justify. Nghĩa là cần hai epoch liên tiếp có supermajority vote để finalize epoch đầu tiên.
Kết hợp lại: Ethereum finalize một epoch sau khoảng 2 epoch (≈12.8 phút) sau khi epoch đó kết thúc. Đây là absolute finality — một khi block được finalize, cần hơn 1/3 tổng ETH stake để đảo ngược, và toàn bộ số ETH đó sẽ bị slashed.
06 Reward và Penalty cho Attestation
Ethereum thiết kế incentive cẩn thận để khuyến khích validator attest đúng hạn và chính xác. Reward và penalty đều có cấu trúc rõ ràng:
Attestation Reward
Validator nhận reward tối đa khi:
- Attest đúng source checkpoint (đã justify)
- Attest đúng target checkpoint (đầu epoch hiện tại)
- Attest đúng head block (block chính xác nhất tại thời điểm attest)
- Attestation được include vào block trong vòng 1 slot (không bị delay)
Attestation Penalty
Penalty xảy ra khi:
- Miss attestation: mất phần thưởng tương đương
- Attest sai source/target/head: mất một phần reward
- Inactivity leak: penalty tăng dần nếu validator offline trong khi chain không finalize
07 Attestation Aggregation — Tối ưu hiệu suất
Với hơn 1 triệu validator, nếu mỗi validator broadcast attestation riêng biệt, mạng sẽ bị ngập lụt với hàng triệu message mỗi slot. Ethereum giải quyết điều này bằng attestation aggregation sử dụng BLS signature scheme.
BLS Signature Aggregation
BLS (Boneh–Lynn–Shacham) là loại digital signature cho phép kết hợp nhiều chữ ký thành một chữ ký duy nhất mà vẫn có thể verify. Đây là tính chất không có trong ECDSA thông thường.
Trong mỗi committee, một số validator được chọn làm aggregator. Aggregator thu thập attestation từ các validator cùng committee, aggregate tất cả BLS signature thành một, và broadcast aggregated attestation. Kết quả: thay vì hàng nghìn message riêng lẻ, block chỉ cần include một số nhỏ aggregated attestation đại diện cho toàn bộ committee.
Kỹ thuật này cho phép Ethereum scale lên hàng triệu validator mà không làm tắc nghẽn mạng — một trong những innovation kỹ thuật quan trọng nhất của Ethereum 2.0.
08 Missed Attestation và Tác Động Thực Tế
Validator operators thực tế rất coi trọng tỷ lệ attestation thành công vì đây là nguồn thu nhập chính. Một validator với 99% attestation rate kiếm được đáng kể hơn so với validator 95%.
Nguyên nhân miss attestation
- Network latency: Block đến muộn, validator không nhận được kịp để attest trong window
- Validator client bug: Lỗi phần mềm khiến validator không attest đúng hạn
- Downtime: Server maintenance, power outage, internet outage
- Misconfiguration: Fee recipient sai, keys không được import đúng
Tác động đến staking yield
Attestation chiếm khoảng 84% tổng staking reward của validator thông thường (phần còn lại là sync committee và block proposal). Do đó, staking performance chủ yếu được đo bằng attestation effectiveness — tỷ lệ attestation đúng hạn và chính xác.
Các staking provider như Lido hay Rocket Pool công bố attestation effectiveness làm chỉ số chất lượng. Con số lý tưởng là >99%. Dưới 95% thường là dấu hiệu của vấn đề nghiêm trọng cần điều tra.
09 Câu hỏi thường gặp
Attestation là hành động validator ký và broadcast một vote xác nhận block hợp lệ trong Ethereum PoS. Mỗi validator attest một lần mỗi epoch (32 slot). Attestation gồm hai vote: LMD-GHOST vote cho head hiện tại và Casper FFG vote cho checkpoint finality.
Mỗi epoch, toàn bộ validator được chia ngẫu nhiên thành các committee gán cho từng slot. Validator trong committee của một slot phải attest block trong slot đó. Kích thước committee tối thiểu 128 validator để đảm bảo BFT security. Việc shuffle mỗi epoch ngăn tấn công nhắm vào committee cụ thể.
Validator miss attestation mất phần thưởng tương đương — một khoản nhỏ ETH mỗi lần. Penalty này nhỏ hơn nhiều so với slashing. Tuy nhiên, attestation chiếm ~84% tổng staking yield nên miss nhiều sẽ giảm APY đáng kể. Inactivity leak là trường hợp đặc biệt — penalty tăng dần khi cả mạng không finalize.
LMD-GHOST là fork choice rule — quyết định block nào là head hiện tại khi có fork. Nó dùng latest attestation vote của mỗi validator để đếm trọng số. Casper FFG là finality gadget — dùng supermajority attestation vote để finalize checkpoint theo epoch. Cả hai dùng cùng attestation message nhưng phục vụ mục đích khác nhau.