Cho một lá, Merkle root và một danh sách bước proof (mỗi bước gồm phía
L/R và một băm anh-em). Hãy tái tạo đường lên gốc:
h = SHA256(leaf).SIDE hash:
L (anh-em bên trái): h = SHA256(hash + h).R (anh-em bên phải): h = SHA256(h + hash).Cuối cùng nếu h == root thì in VALID, ngược lại INVALID. Đây là cách một
light client xác nhận giao dịch mà không tải cả block.
Ví dụ
Input:
a
<root>
2
R <H(b)>
R <SHA256(H(c)+H(d))>
Output:
VALID
Dòng 1: leaf. Dòng 2: root. Dòng 3: M (số bước). M dòng tiếp: 'SIDE hash'.
0 <= M <= 40; root và hash là chuỗi 64 hex.
Một dòng: VALID hoặc INVALID.
Ví dụ:
Đầu vào:
a
58c89d709329eb37285837b042ab6ff72c7c8f74de0446b091b6a0131c102cfd
2
R 3e23e8160039594a33894f6564e1b1348bbd7a0088d42c4acb73eeaed59c009d
R d3a0f1c792ccf7f1708d5422696263e35755a86917ea76ef9242bd4a8cf4891a
Đầu ra:
VALID
Giải thích:
Đang tải editor...