date
Jan 5, 2026
slug
mock-intern
status
Published
tags
Blockchain
summary
Mock câu hỏi phỏng vấn Intern
type
Post
I. Nền tảng Blockchain & Ethereum
1. Blockchain là gì? Khác database truyền thống?
Blockchain là sổ cái phân tán (distributed ledger), dữ liệu được ghi theo block, không thể sửa, chỉ có thể append.
Khác DB:
- Không có admin trung tâm
- Dữ liệu immutable
- Trustless, minh bạch
- DB truyền thống: CRUD, centralized, có thể rollback
2. Ethereum khác Bitcoin ở điểm nào?
- Bitcoin: chuyển tiền, scripting hạn chế
- Ethereum: chạy smart contract, có EVM, dApp, DeFi, NFT
3. Smart Contract là gì? Chạy ở đâu?
Là chương trình chạy trên blockchain (Ethereum), được execute bởi EVM, không thể sửa sau deploy.
4. EVM là gì?
Ethereum Virtual Machine – máy ảo thực thi bytecode smart contract, đảm bảo mọi node chạy ra cùng kết quả.
5. Gas là gì?
Đơn vị đo chi phí tính toán trên EVM. Trả gas để:
- Chống spam
- Khuyến khích miner/validator
6. Out-of-gas thì sao?
- Transaction fail
- State rollback
- Gas vẫn bị mất
7. Block – Transaction – State?
- Transaction: hành động
- Block: tập transaction
- State: trạng thái hiện tại của blockchain
8. Public vs Private blockchain?
- Public: ai cũng tham gia (Ethereum)
- Private: giới hạn node, thường dùng nội bộ doanh nghiệp
II. Solidity cơ bản
9. Solidity là gì?
Ngôn ngữ high-level, compile sang EVM bytecode.
10.
uint vs uint256?uint = uint256 (256-bit, mặc định)11. Visibility?
public: mọi nơi
external: bên ngoài
internal: contract + kế thừa
private: chỉ trong contract
12.
view vs pure?view: đọc state
pure: không đọc, không ghi
13.
storage, memory, calldata?- storage: lưu on-chain, tốn gas
- memory: tạm, trong function
- calldata: read-only input
14. Mapping là gì? Iterate được không?
Key → value, không iterate được vì không lưu danh sách key.
15. Struct dùng để làm gì?
Gộp nhiều biến thành 1 kiểu dữ liệu.
16.
require, revert, assert?- require: check input
- revert: manual rollback
- assert: check logic, invariant
17. Constructor là gì?
Hàm chạy 1 lần khi deploy contract.
III. Account & Transaction
18. EOA vs Contract Account?
- EOA: có private key
- Contract: không key, chạy code
19.
msg.sender, msg.value, tx.origin?- sender: caller trực tiếp
- value: ETH gửi
- origin: EOA gốc
20. Vì sao không dùng
tx.origin?Dễ bị phishing attack.
21. Contract A gọi B →
msg.sender là ai?Là contract A.
IV. Ether & Payable
22.
payable là gì?Cho phép function/contract nhận ETH.
23. Contract nhận ETH bằng cách nào?
- payable function
receive()
fallback()
24.
transfer vs send vs call?- transfer/send: giới hạn gas (2300)
- call: flexible, recommended
25. Cách gửi ETH an toàn nhất?
call{value: amount}("") + check return.V. Events
26. Event là gì?
Log để frontend/indexer đọc.
27. Event có lưu state không?
Không, chỉ lưu trong log.
28. Frontend đọc event thế nào?
Qua RPC/Web3/ethers.js.
VI. Security cơ bản
29. Reentrancy là gì?
Contract bị gọi lại trước khi update state.
30. Checks-Effects-Interactions?
- Check điều kiện
- Update state
- Gọi external
31. Overflow/Underflow?
Solidity >= 0.8 auto revert.
32. Front-running?
Bot reorder tx để kiếm lợi.
33. Vì sao không dùng timestamp random?
Miner có thể điều chỉnh.
34.
selfdestruct để làm gì?Xóa contract, gửi ETH đi. Có rủi ro mất kiểm soát.
VII. Gas
35. Vì sao storage tốn gas?
Ghi state on-chain, lưu vĩnh viễn.
36. Loop lớn nguy hiểm?
Có thể out-of-gas.
37. Vì sao không lưu nhiều data on-chain?
Gas cao, không scale.
VIII. ERC Standards
38. ERC20 là gì?
Token fungible.
39. ERC721 khác ERC20?
NFT – mỗi token là duy nhất.
40.
approve & transferFrom?Cho phép spender tiêu token.
41. Approve double-spend?
Approve mới trước khi reset về 0 gây race condition.
IX. Testing & Tooling
42. Hardhat / Foundry?
Framework dev & test smart contract.
43. Test SC khác backend?
- Immutable
- Gas
- Blockchain context
44. Testnet là gì?
Mạng test không dùng tiền thật.
45. ABI là gì?
Interface để frontend gọi contract.
X. Tư duy
46. Gửi ETH nhầm vào contract không rút được?
ETH bị lock vĩnh viễn.
47. Upgrade contract thế nào?
Proxy pattern.
48. Vì sao không sửa code sau deploy?
Immutable bytecode.
49. On-chain vs Off-chain?
- On-chain: logic quan trọng
- Off-chain: compute nặng
50. Voting contract lưu gì?
- Danh sách candidate
- Mapping voter → voted
- Vote count