hash (cha) = hash (hash(con1) + hash(con2))
Sử dụng array list để lưu Merkle tree sẽ kiểu thế này:
List tree = new ArrayList(); tree.add("1"); tree.add("2"); tree.add("3"); tree.add("4"); tree.add("5"); tree.add("6"); int j = 0; for (int nSize = tree.size(); nSize > 1; nSize = (nSize + 1) / 2) { for (int i = 0; i < nSize; i += 2) { int i2 = Math.min(i+1, nSize-1); tree.add(tree.get(j+i) + tree.get(j+i2)); } j += nSize; } System.out.println(tree);
Bitcoin cũng đang dùng Merkle tree để giảm thiểu dung lượng của 1 block, thay vì phải lưu mọi hash của mọi giao dịch, thì giờ nó chỉ cần lưu nút cha nhất của Merkle tree mà thôi