MSTR Cat

Блокчейн/Уровень IV · Глубины протокола/4.1 Script/Урок 5

Хэшлоки и HTLC

Секрет, который открывает всё, и таймер, который не даёт ему пропасть навсегда

МатериалыЛюбой текстовый редактор или командная строка с поддержкой SHA-256Обозреватель блоков (например, mempool.space)Whitepaper Lightning Network авторства Пуна и Дрийи (Poon & Dryja)

Любопытство

  1. Как привязать платёж к секрету, который знает только один человек, так, чтобы этому человеку не нужно было никому доверять?
  2. Если раскрытие секрета ради получения собственных денег делает его известным всей сети, что мешает другим украсть их первыми?
  3. Почему каждому переходу (hop) в многоузловом платёжном маршруте нужен немного отличающийся крайний срок?

Исследование

  1. Хешлок — это условие Bitcoin Script, запрещающее трату, пока не будут раскрыты определённые данные — прообраз (preimage). Монеты блокируются хешем, который обычно предоставляет владелец секрета. Ключевое свойство в том, что любой участник, раскрывающий прообраз, чтобы забрать свои средства, раскрывает его каждому, кто видит это требование: в блокчейне — всем; внутри канала Lightning — контрагенту.
  2. Такое публичное раскрытие позволяет другим сторонам, владеющим выходами, заблокированными тем же хешем, тоже их потратить. В Lightning Network это означает: когда конечный получатель (Чарли) раскрывает секрет, чтобы получить платёж от Боба, тот же секрет открывает выход Алисы, заблокированный для Боба. Этот механизм обеспечивает атомарность: либо платят всем, либо никому.
  3. Однако у простого хешлока есть изъян: если Чарли исчезнет и так и не раскроет прообраз, средства застрянут навсегда. Добавление таймлока создаёт контракт с хеш- и тайм-блокировкой (HTLC). Теперь скрипт для последнего перехода, предложенного Бобом, гласит: «Чарли может забрать эти монеты, раскрыв прообраз до крайнего срока T, ИЛИ Боб может вернуть их себе после T».
  4. Такая логика с двумя путями обеспечивает работу без доверия. Если платёж проходит, Чарли раскрывает секрет в пределах окна тайм-аута, запуская каскад требований от Боба обратно к Алисе. Если платёж не удаётся или Чарли уходит офлайн, у каждого HTLC истекает тайм-аут, и предложившая его сторона (Боб — у Чарли, Алиса — у Боба) возвращает средства через ветку тайм-аута в скрипте.
  5. Именно этот протокол справедливости делает возможной многошаговую (multi-hop) маршрутизацию. У каждого HTLC на маршруте тайм-аут немного длиннее, чем у HTLC, который его держатель предлагает следующей ноде дальше по маршруту. Этот запас защищает каждую промежуточную ноду: если следующий по маршруту пир забирает средства с прообразом в последний момент, у промежуточной ноды всё ещё есть время использовать этот прообраз в обратном направлении, прежде чем её собственный входящий HTLC может быть возвращён отправителю.
  6. Хотя головоломки на Script могут быть сложными, реальные контракты, такие как HTLC, всегда включают проверку подписей наряду с хешлоками и таймлоками. Это привязывает решение к конкретным сторонам и предотвращает фронтраннинг со стороны майнера, который мог бы увидеть действительный прообраз в мемпуле и перенаправить выплату себе до её подтверждения.

Ключевые факты

  • Хешлок запрещает трату, пока не будет публично раскрыт определённый фрагмент данных (прообраз).
  • Как только открыт любой хешлок с определённым хешем, раскрытый прообраз позволяет потратить средства по всем остальным хешлокам с тем же хешем.
  • HTLC сочетает хешлоки и таймлоки: получатель должен потратить средства до крайнего срока, иначе отправитель может вернуть их себе.
  • HTLC используются в commitment-транзакциях Lightning Network, обеспечивая многошаговую маршрутизацию без доверия с атомарностью.
  • Script предоставляет OP_SHA256 и OP_HASH160 для хешлоков; Lightning использует платёжные хеши SHA-256.
  • В 2013 году Тир Нолан (Tier Nolan) предложил кросс-чейн атомарные свопы на основе этого механизма хешлоков.

Упражнение девять, шесть, три, один

9СобратьПеречислите 9 реальных или криптографических сценариев, в которых одно действие раскрывает секрет, открывающий множество других действий (например, вскрытие сейфа, публикация доказательства работы).
6СгруппироватьРаспределите эти 9 по 6 группам по способу защиты секрета: один владелец, несколько владельцев, ограничение по времени, ограничение в пространстве, публичный, но дорогой, или необратимый.
3Выделить главноеСведите 6 групп к 3 ключевым механизмам, которые позволяют сторонам, не знающим друг друга, координироваться без доверия.
1КристаллизоватьНапишите одно предложение о том, почему хеш — это обязательство, а прообраз — ключ, и как таймер делает их безопасными.

Проверка фактов

Даты, цифры и утверждения были проверены по приведенным ниже опубликованным источникам.

Открыть в интерактивной академии →

EN PT ES ZH JA KO DE FR MS