For a hash tree that covers 256 data blocks, how many hash checks do you need to perform to localize the error? Assume that error occurred on only one block.

5 phương ánCó giải thích

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "15". Cây băm (hash tree, cây Merkle) giữ giá trị băm của từng khối ở lá và băm của hai con ở mỗi nút trong, nên một khối lỗi làm lệch đúng một đường từ lá lên gốc. Để khoanh vùng, ta kiểm gốc thấy lệch, rồi ở mỗi tầng kiểm cả hai nút con của nút lệch để biết nhánh nào chứa lỗi. Cây 256 khối có log2(256) = 8 tầng dưới gốc nên cách đếm này cho 1 + 2 × 8 = 17 lần kiểm; cùng cách đếm, cây 16 khối ra 1 + 2 × 4 = 9 và cây 128 khối ra 1 + 2 × 7 = 15. Nói thẳng: 17 không có trong các phương án, nên không lựa chọn nào khớp đúng. "15" (cây 128 khối) và "19" = 1 + 2 × 9 (cây 512 khối) cùng lệch đúng một tầng so với 17; chọn "15" vì nó trùng kết quả của cùng câu hỏi với cây 128 khối, nhiều khả năng số khối đã đổi mà phương án giữ nguyên, chứ không phải vì "19" sai hơn về lập luận. "23" = 1 + 2 × 11 ứng với cây 2048 khối, "27" = 1 + 2 × 13 ứng với 8192 khối, "31" = 1 + 2 × 15 ứng với 32768 khối, đều lệch từ ba tầng trở lên.

Cùng phần 5

Xuất hiện trong 1 bộ đề