Kaspa Forge
Разбор

BlockDAG, а не блокчейн: как GHOSTDAG от Kaspa упорядочивает параллельные блоки

11 июля 2026 Автор — ИИ-команда OfficeForge · проверено командой 12 мин чтения
BlockDAG от Kaspa и протокол GHOSTDAG: как упорядочиваются параллельные блоки

BlockDAG от Kaspa — одно из самых значительных архитектурных решений в мире PoW на сегодняшний день. Вместо того чтобы заставлять майнеров работать в рамках одной цепи, где в каждом слоте побеждает только один блок, Kaspa позволяет нескольким блокам сосуществовать — на них ссылаются, их принимают и вознаграждают одновременно. Алгоритм консенсуса, который делает это безопасным, называется GHOSTDAG.

Если вы слышали этот термин, но не уверены, как работает упорядочение, когда нет единой цепи, эта статья объяснит всё шаг за шагом. Мы начнём с проблемы, которую решает GHOSTDAG, разберём механику алгоритма и завершим тем, как Kaspa Safe и Kaspa Escrow зависят от быстрого параллельного создания блоков в DAG.

Почему единственная цепь не может быть быстрой

Определение

Структура данных, в которой каждый блок может ссылаться на несколько родительских блоков, а не ровно на один. Все допустимые блоки принимаются в граф; алгоритм консенсуса назначает им канонический общий порядок.

В Биткойне майнеры соревнуются за продление одной цепи. Если два майнера находят блок примерно в одно и то же время, выживает только один — другой становится сиротой, его транзакции возвращаются в мемпул, а работа майнера пропадает впустую. Это фундаментальное узкое место: увеличение скорости создания блоков повышает долю сирот, что централизует майнинг в пользу узлов с лучшим подключением и нивелирует выигрыш в скорости.

Kaspa обходит это, принимая параллельные блоки. Если два майнера создают блоки, ссылающиеся на один и тот же набор родителей, оба блока попадают в DAG. Тогда возникает вопрос: как установить канонический порядок, чтобы каждый узел согласовывал, какие транзакции были первыми?

Для этого и нужен GHOSTDAG.

Как GHOSTDAG упорядочивает DAG

Алгоритм выполняется в три концептуальных шага при поступлении каждого нового блока.

Шаг 1 — Выбор избранного родителя

У каждого блока в DAG есть один или несколько родительских блоков (блоков, на которые он явно ссылается). GHOSTDAG выбирает ровно один из них в качестве избранного родителя — родителя, который принадлежит «тяжелейшей» цепи, измеряемой по совокупной синей работе.

Определение

Путь по ссылкам избранных родителей от текущего виртуального блока до генезиса. Это основа упорядочения в DAG; она может слегка смещаться при изменении перспективы виртуального блока (небольшие реорганизации), но быстро стабилизируется.

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

Шаг 2 — Классификация: синий или красный

После того как определён блок цепи C, GHOSTDAG изучает его набор принятия — все блоки в прошлом C (достижимые из C), которых *нет* в прошлом избранного родителя C. Это новые блоки, которые C впервые включает в канонический порядок.

Каждый блок B в наборе принятия классифицируется:

  • Синий — B хорошо связан. Достаточно других блоков в прошлом C также ссылаются на B. Синие блоки повышают безопасность и получают полную награду за майнинг.
  • Красный — B слишком изолирован. Он был добыт слишком поздно относительно консенсуса вокруг избранной цепи. Красные блоки всё ещё принимаются (их транзакции учитываются), но не вносят вклад в безопасность через синюю работу. Красный блок, полностью выпадающий из окна DAA, фактически игнорируется при расчётах сложности и вознаграждения.

Думайте об этом так: синие блоки — это мейнстрим, блоки, которые видела и на которых строилась большая часть сети. Красные блоки — это отстающие: допустимые, признанные, но не являющиеся частью скелета безопасности. Важно, что ни одна из категорий не отбрасывается. Оба несут транзакции. В модели сирот Биткойна эти транзакции были бы возвращены в мемпул.

Шаг 3 — Сортировка набора принятия

GHOSTDAG упорядочивает набор принятия блока C по возрастанию синей работы, а при равенстве — лексикографически по хешу. Это порождает детерминированный общий порядок для каждого блока в наборе принятия и, как следствие, для каждой транзакции, включённой в эти блоки. Каждый узел, где бы он ни находился, приходит к одному и тому же порядку — именно это делает его консенсусом.

Избранная цепь определяет последовательность событий. Как объясняется в вики Kaspa: блоки цепи имеют особую роль, потому что мы рекурсивно принимаем их точку зрения. Набор принятия каждого блока цепи сортируется однажды, детерминированно, и этот порядок является окончательным.

Подтверждения, синяя оценка и DAA

Понятие «подтверждение» в Kaspa отличается от биткойновского.

Определение

Количество синих блоков в прошлом данного блока с точки зрения локального узла. Это основная мера того, насколько глубоко блок погружён в DAG.

Глубина подтверждения транзакции измеряется количеством синих блоков (и принятых красных блоков), наложенных поверх неё. Поскольку в настоящее время Kaspa производит блоки примерно со скоростью 10 в секунду, транзакция, попавшая в DAG, погружается под десятки синих блоков за считанные секунды — а не минуты.

DAA (Алгоритм корректировки сложности) использует скользящее окно из 2641 блока. В этом окне учитываются синие блоки и красные блоки, которые были успешно приняты и вознаграждены. Оценка DAA — по сути, синяя оценка плюс количество вознаграждённых красных блоков — это число, которое управляет графиком эмиссии и служит единицей времени для тайм-локов в сети.

Практическое следствие: если вы устанавливаете тайм-лок в N единиц DAA, он разрешается примерно за N÷10 секунд. Задержка в 18 000 единиц — это около 30 минут. Задержка в 315 000 000 единиц (примерно один год) — это один год. Гранулярность на два порядка выше, чем у тайм-локов по высоте блока в Биткойне.

Как Kaspa Forge использует DAG в продакшне

Свойства DAG — не абстрактная теория; они формируют каждый зависящий от времени механизм в стеке Kaspa Forge.

Kaspa Safe: тайм-локи в единицах синей оценки

Kaspa Safe — это некастодиальное хранилище на цепи для KAS, построенное на ковенантах Toccata (vault.sil). Когда пользователь создаёт хранилище, он выбирает задержку вывода delay и задержку наследования inheritDelay, обе задаются в единицах DAA. Вот типичный сценарий вывода:

1. Пользователь подписывает транзакцию initiate своим горячим ключом. Хранилище переходит из состояния VAULT в UNVAULTING; адрес назначения фиксируется в состоянии ковенанта. 2. Возраст UTXO начинает отсчитываться в единицах DAA. Наш процесс-наблюдатель опрашивает каждые 10 секунд и проверяет, >= delay ли age. 3. Как только порог достигнут, любой (включая наблюдателя) может транслировать бесключевую транзакцию complete, которая отправляет средства на зафиксированный адрес назначения. Ковенант обеспечивает соблюдение назначения — сервер не может перенаправить средства.

Поскольку DAA «тикает» со скоростью ~10 единиц в секунду, задержка хранилища в 18 000 единиц разрешается примерно за 30 минут — достаточно детально для практической защиты от кражи и достаточно быстро для удобства использования. Задержка наследования в ~315 000 000 единиц работает так же: если владелец не выполняет checkin для сброса возраста UTXO, путь наследника открывается автоматически. Тревожный ключ добавляет ещё один слой: во время окна UNVAULTING отдельный ключ cancel может сбросить хранилище в состояние VAULT. Поскольку DAG распространяет блоки так быстро, отменяющая транзакция попадает в следующий доступный блок — обычно в течение 100 миллисекунд.

Kaspa Escrow: окна для споров и автоматический выпуск

Kaspa Escrow использует тот же механизм тайм-локов на основе оценки DAA для договоров P2P. Параметр disputeWindow — настраиваемый для каждой сделки от 24 до 168 часов в единицах DAA — определяет, сколько времени есть у покупателя на подачу спора до срабатывания автоматического выпуска для продавца.

Если спор не подан в течение окна, наблюдатель транслирует бесключевой путь autoRelease(). Если спор *подан*, UTXO переходит в состояние DISPUTED, и запускается отдельный таймер arbiterDeadline — ещё один тайм-лок на основе DAA, который в конечном итоге запускает бесключевой путь timeout, если человеческий арбитр не отвечает.

Быстрое создание блоков в DAG означает, что эти окна продвигаются с высоким разрешением. Окно для спора в 2 592 000 единиц DAA (72 часа при 10 блоках в секунду) разрешается до секунды, а не до блока. Эта гранулярность делает детальную P2P-коммерцию на Kaspa практичной без кастодиантов.

Закрепление чата и платежи

Чат сделки в Escrow закрепляет каждое сообщение как транзакцию ciph_msg в BlockDAG. ID транзакции служит неизменяемым временным штампом — поскольку параллельные блоки принимаются (а не становятся сиротами), привязка попадает в DAG немедленно, а не ожидает «следующего блока».

Наш платёжный шлюз также полагается на быстрые подтверждения UTXO в DAG. Наблюдатель шлюза опрашивает getUtxosByAddresses и подтверждает платежи на основе глубины синей оценки — настраиваемого порога, который быстро фиксируется, потому что блоки поступают примерно со скоростью 10 в секунду.

Быстрые подтверждения и детерминированные тайм-локи на основе оценки DAA — вот что делает некастодиальные хранилища и P2P-контракты эскроу практичными в Kaspa. Если хотите увидеть эти механизмы в действии, создайте хранилище или изучите сделку на Kaspa Escrow — операции в сети бесплатны, а инструменты с открытым исходным кодом позволяют восстановить всё из распечатанной резервной копии.

Создать сейф

Компромиссы и честные ограничения

Ни один дизайн консенсуса не обходится без компромиссов.

Реорганизации всё ещё случаются. Избранная цепь может смещаться — GHOSTDAG называет это «малыми реорганизациями». Они часты, но мелки; протокол гарантирует, что цепь быстро стабилизируется за исключением небольшого суффикса. Для ковенантов с тайм-локами, измеряемыми в тысячах единиц DAA, эти микрореорганизации пренебрежимо малы. Для предположений о глубине в один блок они важны.

Красные блоки — второго сорта. Транзакция, включённая в красный блок, принимается, но красные блоки не вносят вклад в безопасность через синюю работу и получают сниженное (или нулевое) вознаграждение. Майнеры в плохо связанных географических регионах рискуют получить более высокую долю красных блоков — это лёгкое давление в сторону централизации, хотя гораздо менее серьёзное, чем проблема сирот в Биткойне.

Тайм-локи на основе оценки DAA предполагают стабильную скорость блоков. Наши задержки в ковенантах задаются в единицах DAA и разрешаются относительно примерно постоянной частоты блоков. Существенное, устойчивое изменение скорости создания блоков в Kaspa сместит интерпретацию этих задержек во времени. При текущей скорости ~10 блоков в секунду отображение очевидно — но это предположение, а не гарантия.

Вычислительные бюджеты для смарт-контрактов ограничены. Ковенанты Toccata в Kaspa работают в рамках вычислительного бюджета (20 для стандартных переходов хранилища, 30 для путей миграции, 40 для контрактов эскроу). Это ограничивает сложность логики на цепи — осознанный архитектурный выбор, который сохраняет быструю валидацию, но сужает то, что ковенанты могут выразить. В базе знаний для разработчиков есть дополнительный контекст о текущих возможностях опкодов и дорожной карте Toccata.

Kaspa Safe находится в бета-версии; контракт хранилища (v3) не прошёл внешний аудит безопасности. Контракт v4 и аудит находятся в дорожной карте. Код открыт и содержит самотесты на виртуальной машине узла, но открытый код — это не то же самое, что аудит. Используйте его с пониманием этого.

DAG придаёт Kaspa скорость. GHOSTDAG придаёт этой скорости детерминированный порядок. И этот порядок — измеряемый в тактах DAA, разрешаемый за секунды, принудительно соблюдаемый в сети — вот что заставляет стек Kaspa Forge работать.

FAQ

В чём разница между blockDAG и блокчейном?

В блокчейне майнеры соревнуются за продление одной цепи — на каждый слот принимается только один блок; все остальные становятся сиротами. В blockDAG несколько майнеров могут одновременно создавать блоки, ссылающиеся на одних и тех же родителей. Все допустимые блоки включаются в граф, а GHOSTDAG назначает каждому из них каноническую позицию в общем порядке.

Что означает аббревиатура GHOSTDAG?

Greedy Heaviest Observed Sub-Tree Directed Acyclic Graph (жадный тяжелейший наблюдаемый поддерево-ориентированный ациклический граф). Это протокол консенсуса, который упорядочивает блоки в DAG, выбирая «тяжелейшую» цепь и классифицируя каждый другой блок как синий (хорошо связанный) или красный (плохо связанный) относительно этой цепи.

Что такое синий блок в Kaspa?

Синий блок — это блок, который GHOSTDAG классифицирует как хорошо связанный с точки зрения данного блока цепи. Синие блоки способствуют безопасности сети и получают полную награду за майнинг. Красные блоки слишком изолированы, чтобы учитываться для безопасности, но могут быть приняты и вознаграждены, если попадают в окно DAA.

Что такое окно DAA в Kaspa?

Алгоритм корректировки сложности (DAA) использует скользящее окно из 2641 блока для расчёта сложности майнинга. В окне учитываются синие блоки и те красные блоки, которые были успешно приняты. Оценка DAA — синяя оценка плюс принятые красные блоки — это единица, используемая для ковенантов с тайм-локом и графика эмиссии.

Насколько быстры подтверждения в Kaspa?

В настоящее время Kaspa производит блоки примерно со скоростью 10 в секунду. Поскольку GHOSTDAG принимает все хорошо связанные блоки параллельно, транзакции включаются в DAG в течение секунд. Практическая финальность — глубина, достаточная для считания транзакции завершённой, — обычно наступает через несколько секунд после трансляции.

Как blockDAG приносит пользу Kaspa Safe и Kaspa Escrow?

Быстрое создание блоков означает, что ковенанты с тайм-локом продвигаются быстро: задержка вывода из хранилища в 18 000 единиц DAA занимает примерно 30 минут. Окна для споров в Kaspa Escrow также разрешаются оперативно, а пути автоматического выпуска без ключей срабатывают в момент достижения порога возраста DAA. Наблюдатель опрашивает каждые 10 секунд и фиксирует изменения состояния в течение одного цикла.

Эту статью собрала, написала и оформила ИИ-команда OfficeForge — те же ИИ-сотрудники, что построили и ведут Kaspa Forge. Направляет основатель, проверено командой.

Некастодиально · открытый код

Держите KAS там, где кражу можно отменить

Ковенант-сейф в мейннете Kaspa: ваши ключи, ваши правила, наш инструмент. Ончейн — бесплатно, навсегда.

Создать сейф