Font size
WorksheetsQuiz về Blockchain và EVM
Total questions: 100
Worksheet time: 50mins
Impermanent loss xảy ra khi:
Giá tài sản không đổi
Giá tài sản biến động so với thời điểm nạp thanh khoản, so với HODL
Pool chỉ chứa token stablecoin
Khi người dùng rút thanh khoản ngay sau khi nạp
Một tấn công làm sai Merkle tree nhưng vẫn giữ nguyên root là:
Không thể nếu dùng băm an toàn và cấu trúc đúng
Luôn có thể
Chỉ xảy ra nếu có lỗi trong hàm hash
Chỉ khi node giả mạo bỏ qua xác minh
Hai địa chỉ triển khai cùng một Solidity bytecode nhưng có khác nhau về:
Code hash luôn giống, nhưng địa chỉ hợp đồng phụ thuộc nonce của deployer
Code hash khác nhau
Địa chỉ phụ thuộc vào gas limit
Địa chỉ phụ thuộc vào balance của deployer
“Băm một chiều” nghĩa là:
Băm rồi có thể giải ngược
Dễ tính băm, khó tìm ngược đầu vào từ băm
Có thể đảo ngược nếu có khóa bí mật
Băm thay đổi ngẫu nhiên mỗi lần
Mục tiêu của inv/getdata (Bitcoin P2P) là:
Thương lượng phí
Trao đổi danh mục đối tượng (block/tx) và xin dữ liệu còn thiếu
Đồng bộ thời gian giữa các node
Xác thực địa chỉ ví
Tối ưu gas khi lập trình EVM không nên:
Dùng calldata cho tham số chỉ đọc trong external function
Gộp/pack biến uint256 không liên tiếp vào cùng slot khi hợp lý
Lưu trữ dữ liệu lớn trong storage nếu có thể cache
Dùng immutable hoặc constant khi phù hợp
Trong PoW, difficulty adjustment (VD: Bitcoin 2016 block) để:
Giữ thời gian block trung bình ổn định (VD: ~10 phút)
Tăng phí
Thay đổi phần thưởng
Giảm số lượng node
Phát biểu đúng về multi-signature (multisig):
Cho phép nhiều bên cùng sinh một khóa riêng
Yêu cầu ngưỡng chữ ký (m-of-n) để chi tiêu giao dịch
Giảm kích thước chữ ký tổng thể
Loại bỏ hoàn toàn rủi ro mất khóa
Ưu điểm của UTXO đối với song song hóa xác minh (parallel validation):
Khó tách biệt phụ thuộc
Đầu vào độc lập cho phép xác minh song song các giao dịch không đụng UTXO
Cần đồng bộ tuần tự giữa các node
Giảm tính bảo mật khi xác minh
Trong over-collateralized lending, vị thế bị thanh lý khi:
Tỷ lệ thế chấp vượt ngưỡng an toàn
Tỷ lệ thế chấp rơi xuống dưới ngưỡng yêu cầu do giá biến động
Người vay tăng thêm tài sản thế chấp
Lãi suất giảm về 0
Lý do Ethereum cần nonce trong mỗi tài khoản là:
Đếm số block đã đào
Tránh replay giao dịch và xác định thứ tự giao dịch của tài khoản
Lưu lịch sử balance
Giới hạn số lượng token gửi đi
Hàm băm “nhạy cảm đầu vào” (avalanche effect) mô tả:
Đầu vào đổi 1 bit → đầu ra đổi nhỏ
Đầu vào đổi 1 bit → đầu ra đổi lớn và khó dự đoán
Đầu vào đổi 1 byte → đầu ra thay đổi lặp lại
Hàm băm chỉ thay đổi khi đầu vào thay đổi hoàn toàn
Lỗi triển khai thường gây lộ khóa riêng khi ký ECDSA là:
Dùng băm SHA-256
Tái sử dụng hoặc dự đoán được nonce k
Dùng elliptic curve secp256k1
Sử dụng deterministic signature (RFC6979)
Oracle risk trong DeFi chủ yếu đến từ:
Không có hợp đồng
Phụ thuộc ngồn giá (manipulation, delay) dẫn đến thanh lý sai
Phí gas cao
Validator offline
Trong PoW, target giảm kéo theo:
Dễ tìm block hơn
Khó tìm block hơn, độ khó hiệu dụng tăng
Độ khó giảm
Số node giảm
Lý do chính khiến tấn công 51% nguy hiểm trong chuỗi PoW:
Kẻ tấn công có thể tạo chuỗi dài hơn để double-spend và tái tổ chức lịch sử gần
Không ảnh hưởng gì
Làm tăng tốc độ mạng
Giảm hash rate trung bình
Trong quy trình ký ECDSA, dữ liệu nào được ký?
Bản rõ nguyên vẹn
Băm của thông điệp
Public key
Transaction hash + nonce
Tính chất “không chối bỏ” (non-repudiation) đến từ:
Chữ ký số bằng khóa riêng
Hàm băm
Mã hóa công khai
Giao thức handshake
Thuộc tính preimage resistance nghĩa là:
Khó tìm hai đầu vào khác nhau cho cùng đầu ra
Khó tìm đầu vào tương ứng với một giá trị băm cho trước
Dễ tìm va chạm nếu biết public key
Không thể băm lại hai lần
Trong PoS hiện đại (VD: Ethereum), cơ chế slashing dùng để:
Tăng phần thưởng
Phạt validator hành vi xấu (double-sign, không trung thực)
Giảm gas fee
Cải thiện throughput
Mã khóa bất đối xứng sử dụng hai loại khóa:
Hai khóa bí mật giống nhau
Khóa công khai và khóa bí mật
Hai khóa công khai
Hai khóa riêng biệt nhưng không liên quan
Mục tiêu chính của đồng thuận trong blockchain là:
Tăng màu sắc giao diện
Tất cả nút đồng ý cùng một trạng thái sổ cái
Tăng tốc độ mạng
Giảm kích thước block
Lý do địa chỉ nhận thay đổi (change address) thường khác địa chỉ gửi là gì?
Bảo mật/riêng tư tốt hơn và chuẩn ví
Bắt buộc bởi giao thức
Để tiết kiệm phí
Vì ví không thể tái sử dụng địa chỉ
"Dust limit" liên quan đến điều gì?
Kích thước block tối đa
Ngưỡng giá trị UTXO quá nhỏ, chi tiêu không kinh tế do phí
Tốc độ lan truyền giao dịch
Giới hạn gas của block
PBFT phù hợp hơn với loại mạng nào?
Mạng permissioned có danh tính, số nút vừa phải
Mạng công khai vô danh quy mô cực lớn
Mạng PoW toàn cầu
Hệ thống proof-of-history
AMM constant product (x=y=k) có đặc điểm gì?
Giá tuyến tính theo khối lượng
Slippage tăng mạnh khi giao dịch lớn so với thanh khoản
Không có impermanent loss
Phí luôn cố định theo block
Merkle root thay đổi khi nào?
Sắp xếp giao dịch khác đi (trong cùng tập)
Thay đổi nonce khối
Miner thay đổi difficulty
Block size vượt ngưỡng
Một hàm băm mật mã dùng rộng rãi trong blockchain là gì?
MD5
SHA-256
CRC32
SHA1
Rủi ro chính khi tái sử dụng địa chỉ/UTXO để nhận diện là:
Giảm fee
Tăng khả năng phân tích dòng tiền và liên kết danh tính on-chain
Tăng tốc độ xác nhận
Giảm entropy của khóa
Flash loan thích hợp để:
Vay dài hạn
Thực hiện arbitrage/hoán đổi/tái cấp vốn trong một giao dịch nguyên tử
Cho vay truyền thống
Stake tài sản để nhận phần thưởng
Trong khối block, Merkle root là:
Băm của header
Băm tổng hợp của cây băm các giao dịch
Địa chỉ ví đầu tiên trong block
Nonce băm lại
Sau The Merge, Ethereum chuyển sang:
PoW + Ethash
PoS với validator, finality theo GHOST + Casper/FFG
Delegated Proof of Stake
Proof of Burn
Ưu điểm của Merkle tree so với băm tuyến tính danh sách:
Dễ đảo ngược / Tăng kích thước lưu trữ
Cho phép chứng minh thành viên nhanh và nhỏ gọn
Loại bỏ nhu cầu xác minh chữ ký
Giảm đảm bảo mật nhưng tăng tốc độ
Collision resistance giúp:
Ngăn hai đầu vào cho cùng một băm khả dĩ trong thực tế
Ngăn mọi va chạm tuyệt đối về mặt toán học
Tăng tốc độ xác nhận giao dịch
Giảm kích thước lưu trữ
Cặp thuật toán bất đối xứng dùng phổ biến trong blockchain là gì?
ECDSA-secp256k1
RSA-SHA1
DSA-SHA256
Ed25519-Blowfish
Sự khác nhau chính giữa storage và memory trong Solidity là gì?
Cả hai đều volatile
storage bền vững on-chain (đắt), memory tạm thời trong call (rẻ hơn)
storage là vùng RAM, memory là ổ cứng
memory lưu trên blockchain
Chức năng chính của khóa công khai trong chữ ký số là gì?
Xác minh chữ ký
Tạo chữ ký
Mã hóa dữ liệu trước khi ký
Sinh seed phrase
Proof of Work (PoW) yêu cầu điều gì?
Bỏ qua băm
Tính toán nặng để tìm băm thỏa target
Dùng chữ ký số
Trao đổi token
Latency mạng P2P tăng thường dẫn tới điều gì?
Tỉ lệ fork/uncle tăng vì block truyền chậm
Tỉ lệ fork giảm
Hash rate tăng
Block time ổn định hơn
Tham số nào không trực tiếp thuộc header trong Bitcoin?
Version
Gas price
Merkle root
Timestamp
Trade-off đúng giữa PoW vs PoS:
PoW tiêu thụ năng lượng lớn, an ninh gắn với chi phí tính toán; PoS giảm năng lượng, an ninh gắn với stake và cơ chế kinh tế–xã hội
PoW luôn nhanh hơn PoS
PoS tiêu tốn năng lượng hơn PoW
PoW có throughput cao hơn PoS
Trong mạng permissioned, đồng thuận hay dùng:
PBFT/Raft và biến thể
PoW thuần
PoS
DPoS
Ưu thế của gossip protocol trong mạng blockchain là:
Đảm bảo thông điệp đến đích duy nhất
Phân tán thông tin nhanh, chịu lỗi tốt mà không cần trung tâm
Loại bỏ nhu cầu xác thực
Giảm kích thước block
Gas trong EVM do:
Dung lượng RAM
Chi phí tính toán/lưu trữ theo opcode
Tốc độ xử lý CPU
Băng thông mạng
Orphan/uncle block thường sinh ra khi:
Hai miner cùng tìm được block hợp lệ gần như đồng thời
Node lỗi đồng bộ
Hash rate tăng đột biến
Miner đổi pool
Event logs trên EVM chủ yếu để làm gì?
Lưu state chính
Ghi log rẻ hơn storage và dùng cho indexing ngoài chuỗi (không thay thế state)
Mã hóa dữ liệu người dùng
Sinh ngẫu nhiên hash
Hardware wallet giúp tăng an toàn vì lý do nào sau đây?
Lưu khóa riêng và ký trong phần cứng, không lộ ra hệ điều hành
Không cần PIN
Lưu private key online
Có thể truy cập web trực tiếp
Lưu dữ liệu lớn on-chain thường có đặc điểm gì?
Rẻ và khuyến khích
Đắt; nên cân nhắc off-chain + hash/commit on-chain
Không ảnh hưởng chi phí
Tăng tốc độ truy xuất
Trong mô hình UTXO, đầu vào (input) của giao dịch tham chiếu đến gì?
Số dư tài khoản
UTXO trước đó và cung cấp scriptSig/witness để chi tiêu
Public key
Block header
Thiết lập mining pool chủ yếu để làm gì?
Giảm xác suất tìm block
Chia sẻ rủi ro biến động phần thưởng và làm mượt doanh thu
Tăng độ trễ mạng
Giảm độ khó block
Điểm khác biệt cốt lõi giữa mô hình trạng thái của Bitcoin và Ethereum là gì?
Bitcoin dùng account, Ethereum dùng UTXO
Cả hai đều dùng UTXO
Bitcoin dùng UTXO, Ethereum dùng account
Cả hai đều không có mô hình trạng thái
Proof of Stake (PoS) cơ bản chọn người xác thực dựa trên yếu tố nào?
Bằng thông mạng
Lượng stake và/hoặc các tiêu chí ngẫu nhiên có trọng số
Số lượng giao dịch
Độ tuổi của node
Vì sao không nên dùng SHA-256 cho lưu mật khẩu người dùng?
Vì không an toàn mật mã
Vì không chậm và không có muối (salt) theo thiết kế; nên dùng bcrypt/Argon2/scrypt
Vì SHA-256 không có hàm băm
Vì SHA-256 chỉ dùng trong blockchain
Lỗi triển khai thường gây lộ khóa riêng khi ký ECDSA là:
Dùng băm SHA-256
Tái sử dụng hoặc dự đoán được nonce k
Không lưu chữ ký
Không mã hóa khóa công khai
Mục tiêu chính của đồng thuận trong blockchain là:
Tăng màu sắc giao diện
Giảm kích thước block
Đảm bảo tất cả node đồng ý cùng một trạng thái hợp lệ của sổ cái
Giảm chi phí tính toán
Biện pháp nào giảm động lực tấn công 51% trong PoW?
Giảm chi phí điện
Tăng hashrate tổng thể phân tán và phần thưởng/penalty được thiết kế tốt ở lớp kinh tế
Giảm phần thưởng block
Giảm kích thước khối
Trong over-collateralized lending, vị thế bị thanh lý khi:
Tỷ lệ thế chấp vượt ngưỡng an toàn
Tỷ lệ thế chấp rơi xuống dưới ngưỡng yêu cầu do giá biến động
Lãi suất ảm
Tài sản thế chấp tăng giá
Proof of Work (PoW) yêu cầu:
Bỏ qua băm
Tính toán nặng để tìm băm thỏa target
Dữ liệu nén trước khi băm
Không cần nonce
Mục tiêu của inv/getdata (Bitcoin P2P) là:
Thương lượng phí
Trao đổi danh mục đối tượng (block/tx) và xin dữ liệu còn thiếu
Giữ dữ liệu miner
Đặt thời gian đồng bộ
PBFT phù hợp hơn với:
Mạng permissioned có danh tính, số nút vừa phải
Mạng công khai vô danh quy mô cực lớn
Blockchain không có đồng thuận
P2P không có node cố định
Trong quy trình ký ECDSA, dữ liệu nào được ký?
Bản rõ nguyên vẹn
Băm của thông điệp
Khóa công khai
Nonce
Trong PoW, thợ đào thay đổi nonce để:
Nén dữ liệu
Thỏa target hash
Tăng tốc mạng
Tạo khóa công khai
Lưu dữ liệu lớn on-chain thường:
Rẻ và khuyến khích
Đắt; nên cân nhắc off-chain + hash/commit on-chain
Miễn phí
Luôn an toàn hơn off-chain
Trong block, Merkle root là:
Băm của header
Băm tổng hợp của cây băm các giao dịch
Băm của nonce
Băm của signature
Cặp thuật toán bất đối xứng dùng phổ biến trong blockchain:
ECDSA–secp256k1
RSA–SHA1
AES–SHA256
DSA–MD5
Impermanent loss xảy ra khi:
Giá tài sản không đổi
Giá tài sản biến động so với thời điểm nạp thanh khoản, so với HODL
Lãi suất thay đổi
Thanh khoản giảm bằng 0
Trong mô hình UTXO, đầu vào (input) của giao dịch tham chiếu:
Số dư tài khoản
UTXO trước đó và cung cấp scriptSig/witness để chi tiêu
Địa chỉ ví
Khóa công khai
Sau The Merge, Ethereum chuyển sang:
PoW + Ethash
PoS với validator, finality theo GHOST + Casper/FFG
PoW + SHA-256
Delegated Proof of Stake
Trong PoW, target giảm kéo theo:
Dễ tìm block hơn
Khó tìm block hơn, độ khó hiệu dụng tăng
Giảm phí giao dịch
Tăng tốc block trung bình
Latency mạng P2P tăng thường dẫn tới:
Tỉ lệ fork/uncle tăng vì block truyền chậm
Tỉ lệ fork giảm
Block trung bình nhanh hơn
Độ khó tự giảm
Điểm khác biệt cốt lõi giữa mô hình trạng thái của Bitcoin và Ethereum là gì?
Bitcoin dùng account, Ethereum dùng UTXO
Cả hai đều dùng UTXO
Bitcoin dùng UTXO, Ethereum dùng account
Ethereum dùng account, Bitcoin dùng account
Collision resistance giúp:
Ngăn hai đầu vào cho cùng một băm khá dĩ trong thực tế
Ngăn mọi va chạm tuyệt đối về mặt toán học
Tăng tốc băm
Giảm độ dài băm
Hai địa chỉ triển khai cùng một Solidity bytecode nhưng có khác nhau về:
Code hash luôn giống, nhưng địa chỉ hợp đồng phụ thuộc nonce của deployer
Code hash khác nhau
Phiên bản compiler
Bytecode luôn khác nhau
Rủi ro chính khi tái sử dụng địa chỉ/UTXO để nhận diện là:
Giảm fee
Tăng khả năng phân tích dòng tiền và liên kết danh tính on-chain
Mất nonce
Block delay
Trade-off đúng giữa PoW vs PoS là gì?
PoW tiêu thụ năng lượng lớn, an ninh gắn với chi phí tính toán; PoS giảm năng lượng, an ninh gắn với stake và cơ chế kinh tế–xã hội
PoW luôn nhanh hơn PoS
PoW rẻ hơn PoS
PoS không cần đồng thuận
Oracle risk trong DeFi chủ yếu đến từ đâu?
Không có hợp đồng
Phụ thuộc nguồn giá (manipulation, delay) dẫn đến thanh lý sai
Block chậm
Miner tấn công
AMM constant product (x·y=k) có đặc điểm gì?
Giá tuyến tính theo khối lượng
Slippage tăng mạnh khi giao dịch lớn so với thanh khoản
Luôn cố định
Không tính phí swap
Gas trong EVM đo bằng gì?
Dung lượng RAM
Chi phí tính toán/lưu trữ theo opcode
Kích thước block
Tốc độ mạng
Ưu điểm của cấu trúc cây Merkle so với danh sách tuyến tính là gì?
Tăng kích thước lưu trữ
Cho phép chứng minh thành viên nhanh và nhỏ gọn / Loại bỏ nhu cầu băm
Dễ đảo ngược
Tăng latency
Trong PoS hiện đại (VD: Ethereum), cơ chế slashing dùng để làm gì?
Tăng phần thưởng
Phạt validator hành vi xấu (double-sign, không trung thực)
Giảm phí giao dịch
Tăng stake tối đa
Hàm băm “nhạy cảm đầu vào” (avalanche effect) mô tả điều gì?
Đầu vào đổi 1 bit → đầu ra đổi nhỏ
Đầu vào đổi 1 bit → đầu ra đổi lớn và khó dự đoán
Luôn ra cùng giá trị
Không ảnh hưởng output
Hardware wallet giúp tăng an toàn vì:
Lưu khóa riêng và ký trong phần cứng, không lộ ra hệ điều hành
Không cần PIN
Tự tạo giao dịch off-chain
Tăng tốc EVM
Orphan/uncle block thường sinh ra khi:
Hai miner cùng tìm được block hợp lệ gần như đồng thời
Node lỗi đồng bộ
Hash target quá cao
Thời gian block giảm
Delegatecall nguy hiểm nếu:
Không có ví delegatecall chỉ đọc
Nổ thực thi code của hợp đồng khác trong context storage của caller
Không dùng nonce
Chỉ dùng view function
Ưu điểm của Merkle tree so với băm tuyến tính danh sách:
Dễ đảo ngược
Cho phép chứng minh thành viên nhanh và nhỏ gọn
Luôn nhỏ hơn
Không cần hash
Cơ chế chống eclipse attack hiệu quả hơn là:
Cố định một peer duy nhất
Duy trì nhiều kết nối ra/vào, đa dạng nguồn peer và kiểm soát bằng peer
Chỉ tin peer gần
Không dùng P2P
Địa chỉ blockchain (ví dụ Bitcoin/Ethereum) thường:
Chính là khóa riêng
Là mã hóa của seed phrase
hash của public key
Là hash của Merkle root
Lý do chính khiến tấn công 51% nguy hiểm trong chuỗi PoW:
Kẻ tấn công có thể tạo chuỗi dài hơn để double-spend và tái tổ chức lịch sử gần
Không ảnh hưởng gì
Giảm phí giao dịch
Tăng latency
Proof of Stake (PoS) cơ bản chọn người xác thực dựa trên:
Băng thông mạng
Lượng stake và/hoặc các tiêu chí ngẫu nhiên có trọng số
Số lượng giao dịch
Thời gian hoạt động
“Dust limit” liên quan đến:
Kích thước block tối đa
Ngưỡng giá trị UTXO quá nhỏ, chi tiêu không kinh tế do phí
Giới hạn gas
Minimum stake validator
Merkle root thay đổi khi:
Sắp xếp giao dịch khác đi (trong cùng tập)
Thay đổi nonce khối
Miner đổi target
Signature khác
Chức năng chính của khóa công khai trong chữ ký số:
Xác minh chữ ký
Tạo chữ ký
Tạo nonce
Hash thông điệp
Một tấn công làm sai Merkle tree nhưng vẫn giữ nguyên root là:
Không thể nếu dùng băm an toàn và cấu trúc đúng
Luôn có thể
Có thể nếu hash MD5
Phụ thuộc block height
Tính chất “không chối bỏ” (non-repudiation) đến từ:
Chữ ký số bằng khóa riêng
Hàm băm
Merkle root
UTXO
Tham số nào không trực tiếp thuộc header trong Bitcoin?
Version
Previous block hash
Gas price
Timestamp
Flash loan thích hợp để:
Vay dài hạn
Thực hiện arbitrage/hoán đổi/tái cấp vốn trong một giao dịch nguyên tử
Stake validator
PoW mining
Sự khác nhau chính giữa storage và memory trong Solidity là gì?
Cả hai đều volatile
storage bền vững on-chain (đất), memory tạm thời trong call (rẻ hơn)
memory lưu lâu dài
storage là local variable
Trong mạng permissioned, đồng thuận hay dùng loại nào?
PBFT/Raft và biến thể
PoW thuần
PoS công khai
Delegated PoS
Ưu thế của gossip protocol trong mạng blockchain là gì?
Đảm bảo thông điệp đến đích duy nhất
Phân tán thông tin nhanh, chịu lỗi tốt mà không cần trung tâm
Giảm kích thước block
Giảm gas
Vì sao elliptic-curve (ECDSA/EdDSA) thường được ưa chuộng hơn RSA trên chuỗi?
Không cần khóa
Cùng mức an toàn với kích thước khóa nhỏ hơn, hiệu năng tốt
Không cần private key
Dễ tấn công hơn RSA
