Cơ chế Proof-of-Work yêu cầu thợ đào tìm một giá trị nonce sao cho mã băm của dữ liệu khối kết hợp với nonce thỏa mãn một điều kiện độ khó cho trước. Trong bài này, điều kiện độ khó là: mã băm SHA-256 (dạng hex) phải có ít nhất k ký tự 0 liên tiếp ở đầu.
Cho chuỗi data và độ khó k, hãy tìm giá trị nonce nhỏ nhất (bắt đầu thử từ nonce=0, tăng dần từng đơn vị: 0,1,2,…) sao cho:
SHA256(data∥str(nonce))
(nối chuỗi trực tiếp data với biểu diễn thập phân của nonce) có dạng hex bắt đầu bằng k ký tự 0.
Ví dụ: với data="hello", k=1, giá trị nonce nhỏ nhất thỏa mãn là 28, cho mã băm bắt đầu bằng 0.
data — chuỗi bất kỳ (có thể chứa khoảng trắng, lấy nguyên vẹn nội dung dòng).0 đầu tiên yêu cầu).Hai dòng:
nonce nhỏ nhất tìm được.Ví dụ:
Đầu vào:
hello
0
Đầu ra:
0
5a936ee19a0cf3c70d8cb0006111b7a52f45ec01703e0af8cdc8c6d81ac5850c
Đầu vào:
hello
1
Đầu ra:
28
02a13c40ba00dc0fb199d3cbe5b01be59d937775890243fd411bdf001935ffc8
Đang tải editor...