Введение
Merkle-деревья нашли широкое применение в экосистеме компьютерных наук и криптографии. Растущий интерес к ним в криптоиндустрии обусловлен крахом FTX и необходимостью безопасного хранения криптоактивов.
Что такое Merkle-деревья?
Merkle-дерево (хэш-дерево, бинарное хэш-дерево) — структура данных, используемая в криптографии и компьютерных науках.
В основе его лежит иерархический порядок блоков данных, определенный криптографической хэш-функцией. Такое многоуровневое упорядочение блоков создает структуру, похожую на дерево.
Концепция Merkle-деревьев была разработана Ральфом Мерклом в 1979 году. Она играет ключевую роль в защите данных и обеспечении безопасности в отраслях, связанных с большими объемами данных, таких как блокчейн.
Структура Merkle-деревьев в блокчейнах
Чтобы понять структуру Merkle-деревьев в блокчейне, представьте перевернутое дерево с тремя основными уровнями. На вершине находится корень Меркля, в средней части — нелистовые узлы, а в нижней части — листовые узлы.
Листовые узлы являются строительными блоками Merkle-дерева. Они представляют собой хэши всех транзакций в определенном блоке. Ими могут быть идентификаторы транзакций (TXID), которые можно просмотреть с помощью обозревателя блоков.
Нелистовые узлы, составляющие второй уровень Merkle-дерева, объединяют пары хэшей листовых узлов. Их название происходит от того, что они не содержат TXID. Вместо этого они хранят хэши транзакций двух листовых узлов, образующих их.
Наконец, наверху нелистового узла находится корень Меркля — единый хэш, представляющий все хэши транзакций в блоке. Корень Меркля — уникальный идентификатор блока, который имеет решающее значение для проверки его подлинности.
Как работают Merkle-деревья в блокчейнах?
Вот как работают Merkle-деревья в блокчейнах:
Шаг 1: Хэширование транзакций
Криптографическая хэш-функция, например SHA-256, хэширует все транзакции в блоке. Этот процесс создает уникальный идентификатор (хэш) для каждой из них, делая эти данные незагружаемыми.
Шаг 2: Сочетание хэшей
Та же функция объединяет в пары и хэширует два хэша транзакций, создавая новый. Такое соединение и хэширование повторяются на каждом уровне, при этом каждый дочерний узел образует новый родительский узел.
Шаг 3: Создание корня Меркля
Последние два родительских (нелистовых) узла объединяются в пару, образуя единый хэш — корень Меркля. Это криптографический отпечаток всего блока.
Шаг 4: Проверка целостности блока
Вы можете проверить целостность данной транзакции, получив ее соответствующий хэш из корня Меркля. Начиная оттуда и следуя по родительским узлам, вы можете воссоздать корень Меркля. Если они совпадают, то транзакции в блоке являются подлинными.
Пример
Рассмотрим простой пример с четырьмя транзакциями A, B, C и D, происходящими в данном блоке:
Хэширование транзакций
Каждая транзакция хэшируется:
- hashA = hash(A)
- hashB = hash(B)
- hashC = hash(C)
- hashD = hash(D)
Соединение и хэширование
Хэши соединяются в пары и хэшируются:
- hashAB = hash(hashA + hashB)
- hashCD = hash(hashC + hashD)
Создание корня Меркля
Полученные хэши хэшируются вместе, образуя корень Меркля:
- MerkleRoot = hash(hashAB + hashCD)
Merkle-деревья как доказательство резервов
Подтверждение резервов (PoR) — это практика ведения бухгалтерского учета, используемая централизованными биржами (CEX) и другими хранителями криптовалют для подтверждения их финансовой устойчивости. Это открытый отчет о криптоактивах компании.
Учитывая, что CEX хранят значительные суммы криптовалют, Merkle-деревья служат удобным способом подтверждения их резервов. Вот как они помогают им в этом:
Сбор балансов пользователей
CEX или хранитель составляет список всех пользователей и их балансов.
Хэширование балансов пользователей
Далее, криптографическая функция используется для хэширования активов каждого пользователя.
Построение Merkle-дерева
CEX упорядочивает захешированные балансы пользователей в иерархическую структуру. Затем он хэширует их попарно, образуя корень Меркля.
Публикация корня Меркля
Следующим шагом является открытый обмен корнем Меркля. Это позволяет пользователям проверять свои балансы, не раскрывая весь список своих кредитов.
Проверка
Пользователи могут проверить свои балансы, получив свои доказательства Меркля, представляющие собой пути от их хэшей балансов до корня Меркля.
Значение Merkle-деревьев для блокчейнов
Merkle-деревья обеспечивают целостность данных, эффективность и масштабируемость в сетях блокчейнов.
Путем хэширования отдельных транзакций и объединения их в корень Меркля они создают защищенный от несанкционированного доступа идентификатор для каждого блока. Таким образом, любое изменение в транзакции влечет за собой изменение корня Меркля, предупреждая сеть о возможном вмешательстве.
Более того, они повышают эффективность проверки. Пользователи могут быстро проверить подлинность транзакции, сравнив ее хэши с хэшами в Merkle-дереве. При этом им не нужно загружать и сравнивать целые блоки.
Merkle-деревья также способствуют масштабируемости блокчейна, снижая требования к передаче и проверке данных. Это помогает улучшить производительность сети. Кроме того, они минимизируют потребности в хранении, сохраняя только корень Меркля и соответствующие хэши транзакций. Таким образом, они выгодны для узлов с ограниченной емкостью хранилища.
Contents
ВведениеЧто такое Merkle-деревья?Структура Merkle-деревьев в блокчейнахКак работают Merkle-деревья в блокчейнах?Шаг 1: Хэширование транзакцийШаг 2: Сочетание хэшейШаг 3: Создание корня МеркляШаг 4: Проверка целостности блокаПримерMerkle-деревья как доказательство резервовСбор балансов пользователейХэширование балансов пользователейПостроение Merkle-дереваПубликация корня МеркляПроверкаЗначение Merkle-деревьев для блокчейновПульс Новости 7.86 из 10
Пульс Новости 7.86 из 10
- Значимость новости: 8/10. Новость является важной, так как она объясняет, как Merkle trees обеспечивают целостность данных, эффективность и масштабируемость блокчейн-сетей.
- Инновационная ценность новости: 7/10. Новость не особо инновационна, так как Merkle trees уже используются в различных приложениях, включая блокчейн.
- Потенциальное влияние новости на рынок: 6/10. Новость может оказать положительное влияние на рынок, помогая пользователям лучше понять, как Merkle trees обеспечивают безопасность и целостность блокчейн-сетей.
- Релевантность новости: 10/10. Новость напрямую связана с криптовалютным рынком, поскольку она объясняет, как Merkle trees используются в блокчейнах.
- Актуальность новости: 9/10. Новость актуальна, поскольку Merkle trees приобретают все большее значение в криптовалютном пространстве.
- Достоверность новости: 8/10. Новость написана авторитетным изданием, но некоторые детали могут требовать дополнительной проверки.
- Общий тон новости: 8/10. Тон новости в целом положительный, но автор также признает некоторые ограничения Merkle trees.