WorksheetsPage 1
Total questions: 56
Worksheet time: 28mins
Lỗi triển khai thường gây lộ khóa riêng khi ký ECDSA là:
Sử dụng khóa công khai để ký
Tái sử dụng hoặc dự đoán được nonce k
Chọn curve không an toàn
Ký trực tiếp thông điệp thay vì hash
Mục tiêu chính của đồng thuận trong blockchain là:
Tăng tốc độ giao dịch
Đảm bảo tính bảo mật, toàn vẹn và tính phi tập trung của mạng lưới bằng cách cho phép các nút mạng thống nhất về trạng thái
Giảm phí gas
Tăng kích thước khối
Biện pháp nào giảm động lực tấn công 51% trong PoW?
Giảm phần thưởng khối
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ế
Tăng kích thước khối
Chuyển sang PoS
Trong over-collateralized lending, vị thế bị thanh lý khi:
Người vay trả hết nợ
Tỷ lệ thế chấp rơi xuống dưới ngưỡng yêu cầu do giá biến động
Thanh khoản pool cạn kiệt
Oracle báo giá sai
Proof of Work (PoW) yêu cầu:
Stake coin để xác thực
Tính toán nặng để tìm băm thỏa target
Chữ ký số từ validator
Mục tiêu của inv/getdata (Bitcoin P2P) là:
Đồng bộ toàn bộ blockchain
Trao đổi danh mục đối tượng (block/tx) và xin dữ liệu còn thiếu
Tính phí giao dịch
Xác minh chữ ký
PBFT phù hợp hơn với:
Mạng permissionless lớn
Mạng permissioned có danh tính, số nút vừa phải
Chuỗi PoW
AMM DEX
Trong quy trình ký ECDSA, dữ liệu nào được ký?
Thông điệp gốc
Băm của thông điệp
Khóa công khai
Nonce k
Trong PoW, thợ đào thay đổi nonce để:
Tạo khóa mới
Tìm băm thỏa target
Nén dữ liệu khối
Tăng kích thước khối
Lưu dữ liệu lớn on-chain thường:
Rẻ và nhanh
Đắt; nên cân nhắc off-chain + hash/commit on-chain
Trong block, Merkle root là
Băm của toàn bộ block header
Băm của nonce và timestamp
Băm của tất cả transaction trong khối (Merkle tree root)
Băm của previous block hash
Cặp thuật toán bất đối xứng dùng phổ biến trong blockchain
RSA + SHA-1
Ed25519 + Curve25519
ECDSA–secp256k1
DSA + SHA-256
Impermanent loss xảy ra khi
Thanh khoản pool bị rút hết
Phí giao dịch quá cao
Giá tài sản biến động so với thời điểm nạp thanh khoản, so với HODL
Người dùng rút LP token sớm
Trong mô hình UTXO, đầu vào (input) của giao dịch tham chiếu
Số dư tài khoản hiện tại
UTXO trước đó và cung cấp scriptSig/witness để chi tiêu
Sau The Merge, Ethereum chuyển sang:
PoW với difficulty bomb
PoH (Proof of History)
PoS với validator, finality theo GHOST + Casper/FFG
DPoS với delegator
Trong PoW, target giảm kéo theo:
Block time nhanh hơn
Khó tìm block hơn, độ khó hiệu dụng tăng
Hashrate giảm
Phần thưởng khối tăng
Latency mạng P2P tăng thường dẫn tới:
Tỷ lệ orphan block giảm
Tỉ lệ fork/uncle tăng vì block truyền chậm
Độ khó tự động giảm
Gas limit tăng
Đ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 có smart contract, Ethereum không
Bitcoin dùng UTXO, Ethereum dùng account
Collision resistance giúp:
Tìm preimage dễ dàng
Ngăn hai đầu vào khác nhau cho cùng một băm khả dĩ trong thực tế
Tăng tốc độ băm
Giảm kích thước output
Hai địa chỉ triển khai cùng một Solidity bytecode nhưng có khác nhau về:
Code hash khác nhau
Code hash luôn giống, nhưng địa chỉ hợp đồng phụ thuộc nonce của deployer
Bytecode bị thay đổi ngầm
Gas sử dụng khác nhau
Rủi ro chính khi tái sử dụng địa chỉ/UTXO để nhận diện là:
Mất khóa riêng
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 phí giao dịch
Giảm bảo mật chữ ký
Oracle risk trong DeFi chủ yếu đến từ:
Validator offline
Phụ thuộc nguồn giá (manipulation, delay) dẫn đến thanh lý sai
Slippage cao
Impermanent loss
AMM constant product x⋅y=k có đặc điểm:
Không có slippage
Slippage tăng mạnh khi giao dịch lớn so với thanh khoản
Giá luôn cố định
Chỉ hỗ trợ stablecoin
Gas trong EVM do:
Số lượng transaction mỗi block
Chi phí tính toán/lưu trữ theo opcode
Giá ETH trên thị trường
Kích thước dữ liệu calldata
Ưu điểm của cấu trúc cây Merkle so với danh sách tuyến tính:
Bằng chứng xác minh nhỏ, thời gian xác minh theo O(logn)
Phải lưu toàn bộ danh sách để xác minh với thời gian O(n)
Không phát hiện được chỉnh sửa một phần tử đơn lẻ
Chỉ phù hợp cho tập dữ liệu rất nhỏ
Trong PoS hiện đại (VD: Ethereum), cơ chế slashing dùng để:
Tăng phần thưởng validator
Phạt validator hành vi xấu (double-sign, không trung thực)
Giảm độ khó mạng
Tăng gas limit
Hàm băm “nhạy cảm đầu vào” (avalanche effect) mô tả:
Đầu ra không đổi khi đầu vào đổi
Đầu vào đổi 1 bit → đầu ra thay đổi hoàn toàn
Chỉ nhạy với byte đầu tiên
Giảm entropy output
Hardware wallet giúp tăng an toàn vì:
Kết nối internet liên tục
Lưu khóa riêng và ký trong phần cứng, không lộ ra hệ điều hành
Tự động backup seed online
Không cần seed phrase
Orphan/uncle block thường sinh ra khi:
Hai khối hợp lệ được đào gần như đồng thời, mạng tạm thời phân nhánh
Validator/slashing xảy ra trên PoS
Gas limit bị giảm đột ngột
Node đơn lẻ tự ý bỏ qua quy tắc đồng thuận
Delegatecall nguy hiểm nếu:
Nó gọi hàm view chỉ đọc
Nó thực thi code của hợp đồng khác trong context storage của caller
Nó chỉ dùng với thư viện nội bộ
Gas limit được đặt cao
Ưu điểm của Merkle tree so với băm tuyến tính danh sách:
Tăng kích thước dữ liệu
Cho phép chứng minh thành viên nhanh và nhỏ gọn
Không cần hash function
Giảm số lượng transaction
Cơ chế chống eclipse attack hiệu quả hơn là:
Chỉ kết nối với 1 peer
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
Tăng kích thước block
Giảm thời gian block
Địa chỉ blockchain (ví dụ Bitcoin/Ethereum) thường:
Là private key mã hóa base64
Là mã hóa của seed phrase (thông qua derivation path)
Là băm trực tiếp của public key
Là chuỗi ngẫu nhiên không liên quan khóa
Lý do chính khiến tấn công 51% nguy hiểm trong chuỗi PoW:
Có thể thay đổi gas limit
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
Tự động tăng stake
Làm chậm mạng P2P
Proof of Stake (PoS) cơ bản chọn người xác thực dựa trên:
Hashrate GPU
Băng thông mạng
Stake (số coin nắm giữ), không dựa vào băng thông hay GPU
Số lượng node chạy
“Dust limit” liên quan đến:
Giới hạn kích thước block
Ngưỡng giá trị UTXO quá nhỏ, chi tiêu không kinh tế do phí
Số lượng giao dịch mỗi block
Phí gas tối thiểu
Merkle root thay đổi khi:
Nonce thay đổi
Sắp xếp giao dịch khác đi (trong cùng tập)
Previous hash thay đổi
Timestamp thay đổi 1 giây
Chức năng chính của khóa công khai trong chữ ký số:
Tạo chữ ký
Xác minh chữ ký
Mã hóa thông điệp
Tạo nonce
Một tấn công làm sai Merkle tree nhưng vẫn giữ nguyên root là:
Luôn khả thi với brute force
Không thể nếu dùng băm an toàn và cấu trúc đúng
Chỉ xảy ra với SHA-1
Dễ thực hiện với collision
Tính chất “không chối bỏ” (non-repudiation) đến từ:
Hàm băm một chiều
Chữ ký số bằng khóa riêng
Khóa công khai
Nonce ngẫu nhiên
Tham số nào không trực tiếp thuộc header trong Bitcoin?
Version
Previous block hash
Flash loan (không thuộc header)
Merkle root
Flash loan thích hợp để:
Vay dài hạn với lãi suất thấp
Thực hiện arbitrage/hoán đổi/tái cấp vốn trong một giao dịch nguyên tử
Thanh lý vị thế chậm
Tăng thanh khoản pool vĩnh viễn
Sự khác nhau chính giữa storage và memory trong Solidity:
Memory bền vững hơn
Storage bền vững on-chain (đắt), memory tạm thời trong call (rẻ hơn)
Storage chỉ đọc, memory ghi được
Không có khác biệt về chi phí
Trong mạng permissioned, đồng thuận hay dùng:
PoW
PBFT/Raft và biến thể
PoS cổ điển
Nakamoto consensus
Ưu thế của gossip protocol trong mạng blockchain là:
Tập trung cao
Phân tán thông tin nhanh, chịu lỗi tốt mà không cần trung tâm
Tiêu tốn ít băng thông
Đảm bảo thứ tự tuyệt đối
Vì sao elliptic-curve (ECDSA/EdDSA) thường được ưa chuộng hơn RSA trên chuỗi?
Khóa lớn hơn nhưng chậm
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 curve
Dễ bị quantum tấn công hơn
Vì sao không nên dùng SHA-256 cho lưu mật khẩu người dùng?
Quá chậm
Vì không chậm và không có muối (salt) theo thiết kế; nên dùng bcrypt/Argon2/scrypt
Có collision cao
Không phải hàm băm
Merkle proof cho phép:
Tạo block mới
Xác minh một giao dịch thuộc khối với bằng chứng ngắn, không cần toàn bộ danh sách giao dịch
Tính phí gas
Tạo địa chỉ mới
Ưu điểm của UTXO đối với song song hóa xác minh (parallel validation):
Tất cả giao dịch phụ thuộc nhau
Đầu vào độc lập cho phép xác minh song song các giao dịch không dùng UTXO
Không hỗ trợ parallel
Chỉ xác minh tuần tự
Một hàm băm mật mã dùng rộng rãi trong blockchain:
MD5
SHA-1
SHA-256
CRC32
Thuộc tính preimage resistance nghĩa là:
Dễ tìm collision
Khó tìm đầu vào từ đầu ra đã biết
Dễ tìm hai đầu vào khác nhau cho cùng đầu ra
Không thay đổi khi input đổi
Thiết lập mining pool chủ yếu để:
Tăng độ khó cá nhân
Chia sẻ rủi ro biến động phần thưởng và làm mượt doanh thu
Giảm hashrate tổng
Tăng orphan block
“Băm một chiều” nghĩa là:
Dễ tìm đầu vào từ hash
Dễ tính băm, khó tìm ngược đầu vào từ băm
Có thể đào ngược bằng GPU
Không dùng trong blockchain
Lý do Ethereum cần nonce trong mỗi tài khoản là:
Tăng bảo mật khóa
Tránh replay giao dịch và xác định thứ tự giao dịch của tài khoản
Tính phí gas
Tạo địa chỉ mới
Mã khóa bất đối xứng sử dụng hai loại khóa:
Khóa chính và khóa phụ
Khóa công khai và khóa bí mật (private key)
Khóa tạm thời và khóa vĩnh viễn
Khóa on-chain và off-chain
Phát biểu đúng về multi-signature (multisig):
Yêu cầu sinh ra một khóa riêng chung cho tất cả các bên tham gia
Chỉ dùng được trên Ethereum, không hỗ trợ Bitcoin
Cho phép nhiều bên cùng ký trên giao dịch, không phải sinh một khóa riêng
Tự động chia nhỏ private key thành nhiều phần và kết hợp lại
