Как генерируется путь дерева Меркле?
Я пытался понять, как работает дерево Меркля в SPV и многих других сценариях в технологиях блокчейна, и не мог разобраться с одним вопросом: как генерируется путь Меркле при проверке транзакции.
На приведенном ниже графике предположим, что я хотел бы проверить транзакцию 2, я понимаю, что необходимы хэши 3, 01, 4567 и корень, однако мне интересно, как этот путь Меркель генерируется в первую очередь.
Когда транзакция 2 передается серверу / узлу, как сервер / узел узнает, какой путь вернуть для проверки 2? Если сервер уже знал этот путь, почему сервер не проверяет его и зачем возвращать этот путь?
Спасибо,
1 ответ
Непонятная часть для меня была на графике выше, 1,2,...,8 используются для представления транзакций, однако это слишком упрощенное представление заставило меня думать, что транзакция имеет только один компонент, поэтому упорядочение и проверка могут происходить в одном действие, т.е. сортировка проверяется.
На самом деле, два графика ниже показывают детали части данных транзакции, где это txid, который служит индексом как 1, 2,..., 8 выше, и в транзакции есть намного больше, чем один тксид.
В дереве Merkle идентификаторы транзакций (txid) проверяются для размещения входящей транзакции в нужном месте в нижней части дерева Merkle, и путь Merkle возвращается в SPV для проверки содержимого.
Для серверов проще вернуть путь Merkle, чем проверять саму транзакцию, чтобы уменьшить рабочую нагрузку. Следовательно, весь процесс работает.