Назначения переменных не должны иметь пробелов вокруг знака`=`: `счетчик=1`, например, и значения должны быть заключены в кавычки, если они содержат пробелы: с `Foo=бар"баз"`. Назначить вывод команды в переменную, нужен синтаксис командной подстановки: `numFiles=$("ЛС" -1 testdir была/ | туалет -л)`. @Санька Kulathantille сэр, но мы можем взять темноту, как объект для сознания глаза. Я прав? @user1717828 почему то, что моя ручка такая же как фамилия вымышленный антагонист отношение к моему комментарию? Я даже не утверждая, что это как намеренная ссылка на одно из многочисленных воплощений *профессор Джеймс* Мориарти. Существуют другие вымышленные Мориарти (Moriarties?). Есть также реальный Мориарти. Или, может, мне просто нравилось название.

Идея (как я ее понимаю) состоит в том, что Меркле дерево позволяет проверить операции по мере необходимости и не входит в тело каждой транзакции в блоке заголовка, обеспечивая проверить весь блокчейн (и, следовательно, доказательство работы) по каждой сделке.

Чтобы понять это, сначала понять концепцию дерева. Рассмотрим 8 блока транзакции. Представьте, что каждый из этих 8 сделок в основании пирамиды: они называются листьями. Поставлю четыре "ветви" на втором ярусе пирамиды и нарисуйте две линии от каждого из их выходит так, что каждая ветвь имеет две створки, прикрепленные к ней. Теперь соедините эти четыре ветки, две ветви на уровне пирамиды 3 и до одной ветке (что называется корнем дерева) на вершине пирамиды. (Наше дерево растет вверх ногами в этом примере.)

Теперь мы можем начать разбираться в процессе хеширования. Хэш, хэш "листья" и включают, что в рамках 2-го филиалы уровне, что эти листья крепятся (они называются дочерние и родительские узлы). Теперь хэш хэшей этих хэшей и включать это как часть ветки третьего уровня. И так далее. (И если у вас более 8 сделок, все, что вам нужно больше уровней в пирамиде.)

Итак, теперь у вас есть корневой узел, который эффективно хеш, который проверяет целостность всех сделок. Если одна транзакция будет добавлен/удален или изменен изменится хэш своего родителя. Который изменит хеш своего родителя, и так далее, в результате чего в корневом узле хэш (который является Меркле корень) меняется.

Так как это поможет нам с потенциально не весь блокчейн? Потому что мы могли проверить операции по мере необходимости. Если у нас есть сделка, которая утверждает, что была от Блока #234133 мы можем сделать проводки для этого блока, проверить Дерево Меркла, и знаю, что сделка является действительной. Мы можем сделать это, не обязательно знать все проводки от #234132 или #234134, потому что мы знаем, что блоки подделок.

Еще лучше, если мы знаем, где он находится в дерево Меркле и мы знаем, почему филиалы не нужны все проводки от #234132. (Там были 868 в этом блоке.) Мы начинаем с нашей сделки и ее брат (если он есть) и вычислить хэш этих двух и убедитесь, что он соответствует ожидаемому значению. Из этого мы можем задать для погодков ветке, что и посчитать хэш и проверить его. И продолжать этот процесс, вверх по дереву. Которая займет всего десять проверок на 868 сделок. (Это одна из больших вещей о деревья, они могут содержать много значений с малым количеством слоев.)

Откуда мы знаем, что источником этих данных не врут нам о хэш-значений? Поскольку хэш-функция является односторонней, не бывает так, что обманчиво участник мог угадать значение что бы хэш с нашим предпоследний значение для создания Меркле корень. (Что мы знаем от наших проверенных блокчейн.) Это рассуждение имеет далее вниз по дереву: нет никакого способа, чтобы создать поддельные ценности, что бы хэш к нашей ожидаемое значение. Еще один способ думать об этом является то, что даже один переделка проводки у основания дерева, может привести к изменению ряби, чтобы все хэш-значения узлов в своей ветке вплоть до хэш-значение корня.

Короче, дерево Меркле создает единственное значение, что доказывает целостность всех сделок по его. Сатоши мог бы просто включили хэш большой список всех транзакций в заголовке биткоин. Но если он сделал, что потребовал бы вы, чтобы хэш-весь перечень операций, для того, чтобы проверить ее целостность. С таким образом, даже если существует очень большое количество сделок в работе, что вам нужно сделать (и количество хэшей необходимо запрос/загрузка) для того, чтобы проверить целостность журнала(о).

[Как всегда, не стесняйтесь редактировать этот. В первую очередь это просто предположение с моей стороны, глядя на спец.]