Код:
Функция NodeCombiner (left_child, right_child) {
вар п = {};
n.sum = left_child.sum + right_child.sum;
n.hash = sha256 (строка (n.sum) + '|' + left_child.hash + '|' + right_child.hash);
вернуться п;
}
вар п = {};
n.sum = left_child.sum + right_child.sum;
n.hash = sha256 (строка (n.sum) + '|' + left_child.hash + '|' + right_child.hash);
вернуться п;
}
уязвим к атаке, в которой испытатель заменяет выражение для n.sum с
Код:
n.sum = макс (left_child.sum, right_child.sum)
Это незаметное кем просит для доказательства включения в пассиве Merkle дерева. Исправление для этого было бы заменить выражение для n.hash с чем-то вродеКод:
n.hash = sha256 (строка (left_child.sum) + '|' + строка (right_child.sum) + '|' + left_child.hash + '|' + right_child.hash)
Был ли этот воспитанный / имя? Дайте мне знать, если это неясно.