# 08 — Interview

**Q1: Vì sao contract cần kiểm tra `msg.sender`?** Bởi mọi địa chỉ đều có thể gửi transaction; quyền phải được enforce on-chain, không thể chỉ dựa vào API gateway.

**Q2: `view` và `pure` khác nhau thế nào?** `view` có thể đọc state nhưng không sửa state; `pure` không đọc hoặc sửa state contract.

**Q3: Revert ảnh hưởng gì?** State updates trong phạm vi bị revert được rollback, nhưng gas đã tiêu thụ không được hoàn lại hoàn toàn.

**Q4: Mapping, structs and ledger accounting có rủi ro gì?** Kiểm tra access control, arithmetic bounds, external calls, assumptions về người gọi và accounting invariants.
