Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [An toàn thông tin] Băm block có prev_hash và nonce

    Băm block đầy đủ

    Trong blockchain thực, header của một block gồm: index, prev_hash (băm của block trước), data và nonce (số dùng cho proof-of-work). Giá trị băm được tính:

    block_hash = SHA256(index + "|" + prev_hash + "|" + data + "|" + nonce)
    

    Chính nhờ có prev_hash trong công thức mà các block móc xích vào nhau: sửa một block sẽ làm hỏng băm của mọi block đứng sau.

    Ví dụ

    Input:
    1
    0000000000000000000000000000000000000000000000000000000000000000
    tx1
    100
    
    Output:
    (SHA-256 của "1|000...0|tx1|100")
    
    • Định dạng đầu vào:

      Bốn dòng: index, prev_hash, data, nonce.

    • Ràng buộc đầu vào:

      prev_hash là chuỗi 64 hex; 0 <= nonce <= 10^9; 0 <= len(data) <= 500.

    • Định dạng đầu ra:

      Một dòng: block_hash (64 ký tự hex).

    Ví dụ:

    Đầu vào:

    1
    0000000000000000000000000000000000000000000000000000000000000000
    tx1
    100
    

    Đầu ra:

    cc4eeda9834ce450868defe41f70bfceaf641fc5ea0d5654994659dd10812544

    Giải thích:

    Băm '1|000...0|tx1|100' bằng SHA-256.

    Đang tải editor...