Heartwood
Heartwood был активирован в основной сети Zcash на блоке 903,000 (16 июля 2020 года, UTC).
Что вы узнаете: как Heartwood позволил майнерам получать вознаграждения за блоки напрямую на защищённые адреса и как он сделал проверку proof-of-work Zcash возможной для лёгких клиентов.
Heartwood — это сетевое обновление Zcash, хардфорк правил консенсуса, развёртывание которого определено в ZIP 250. Оно включало два функциональных изменения: ZIP 213 (Shielded Coinbase) и ZIP 221 (FlyClient). Heartwood был четвёртым крупным сетевым обновлением Zcash и поддерживался совместно Electric Coin Company и Zcash Foundation. Как и каждое обновление Zcash, он устанавливал новый идентификатор ветви консенсуса — метку, обеспечивающую двустороннюю защиту от повторного воспроизведения, чтобы транзакция, созданная по новым правилам, не могла быть повторно воспроизведена в старой цепочке, и наоборот.
Heartwood активируется на заданной высоте блока (903,000), а не в фиксированное время по часам, поэтому точная минута, которую вы увидите на панели мониторинга, может немного отличаться в разных местах. Блок и момент при этом одни и те же.
Почему это важно. Майнеры получают вновь созданные ZEC каждый раз, когда добывают блок. До Heartwood этот доход должен был поступать на прозрачный адрес, который является публичным. Любой мог видеть, сколько заработал майнер и куда монеты отправились дальше. Heartwood позволил направлять это вознаграждение сразу на защищённый адрес, чтобы доход майнера мог оставаться приватным. Он также сделал возможной проверку proof-of-work Zcash лёгкими кошельками и другими цепочками без загрузки всей цепочки целиком.
Shielded coinbase
Транзакция coinbase — это специальная транзакция, которая выплачивает вознаграждение за блок. До Heartwood её выходы должны были быть прозрачными, поэтому вновь созданные ZEC майнера всегда начинали свой путь на публичном адресе. Heartwood изменил правила консенсуса так, что, как сказано в ZIP 213, транзакции coinbase могут содержать выходы Sapling. Проще говоря, теперь майнеры могут получать вознаграждения напрямую на защищённые адреса Sapling. Прозрачные выходы coinbase по-прежнему поддерживаются, так что это новый вариант, а не принудительное изменение.

Почему сначала Sapling
Shielded coinbase нацелена именно на выходы Sapling, и на это есть причина. ZIP 213 объясняет, что обновление Sapling принесло архитектурные изменения и улучшения производительности, благодаря которым стало возможным защищать средства непосредственно в транзакции coinbase. Изначальный защищённый пул Sprout требовал слишком много ресурсов, чтобы выполнять защиту прямо в coinbase. Более эффективная система доказательств и формат note в Sapling сделали это практичным. Сам Sapling ранее расширил старое правило, запрещавшее защищённые выходы coinbase, так что оно стало распространяться и на выходы Sapling, а Heartwood смягчает это правило, чтобы разрешить их. Это хороший пример того, как обновления Zcash опираются друг на друга: внутренняя инфраструктура одного обновления становится основой для следующего.
FlyClient
Heartwood также изменил то, что фиксирует заголовок блока. Поле заголовка, ранее называвшееся hashFinalSaplingRoot, было переиспользовано и переименовано в hashLightClientRoot. Теперь оно фиксирует корень Merkle Mountain Range (MMR) — накапливаемой структуры, построенной на данных заголовков и метаданных предыдущих блоков, таких как временные метки, целевые значения сложности, корни Sapling, накопленная работа и количество транзакций. Эта фиксация позволяет лёгкому клиенту или внешней цепочке проверять proof-of-work Zcash с помощью небольшого доказательства, размер которого растёт лишь логарифмически относительно длины цепочки. Результат — более качественные кошельки лёгких клиентов и более простая сторонняя и межцепочечная интеграция, поскольку клиенту больше не нужно загружать каждый блок, чтобы доверять работе, стоящей за цепочкой.

Место Heartwood в общей картине
Heartwood — это один шаг в серии обновлений Zcash, где каждое добавляет компонент, на который опирается следующее. Overwinter и Sapling появились в 2018 году, Blossom — в 2019-м, а Heartwood — в 2020 году на блоке 903,000. Позже, в 2020 году, на блоке 1,046,400 последовал Canopy. Для Heartwood ключевым звеном в этой цепочке является Sapling: его эффективный механизм защищённых транзакций стал технической предпосылкой, сделавшей возможным shielded coinbase.

Глоссарий
| Термин | Значение простыми словами |
|---|
| Network upgrade (NU) | Скоординированное изменение правил консенсуса Zcash, активируемое на заданной высоте блока |
| Coinbase transaction | Специальная транзакция в каждом блоке, выплачивающая вознаграждение за блок |
| Shielded Sapling address | Приватный тип адреса Zcash, введённый обновлением Sapling |
| Shielded coinbase | Изменение Heartwood, позволяющее выплачивать вознаграждения за блоки на защищённые адреса Sapling |
| FlyClient | Метод, позволяющий лёгким клиентам проверять proof-of-work с помощью небольших доказательств |
| Merkle Mountain Range (MMR) | Накопительное представление прошлых блоков, которое фиксируется в заголовке блока |
| Consensus branch id | Метка, определяющая, правилам какого обновления следует транзакция; используется для защиты от повторного воспроизведения |
FAQ
Изменяет ли Heartwood мои ZEC или мою приватность? Нет. Heartwood не затрагивал ваши существующие средства. Он добавил майнерам возможность получать вознаграждения на защищённые адреса и улучшил поддержку лёгких клиентов. Ваши собственные балансы и защищённые транзакции остаются без изменений.
Что такое shielded coinbase? Coinbase — это транзакция, которая выплачивает вознаграждение за блок. Heartwood позволяет направлять это вознаграждение на защищённый адрес Sapling вместо прозрачного, чтобы доход майнера мог оставаться приватным.
Теперь майнеры обязаны получать вознаграждения в защищённом виде? Нет. Shielded coinbase — опциональная возможность. Прозрачные выходы coinbase по-прежнему поддерживаются, поэтому майнеры могут выбрать любой из вариантов.
Почему shielded coinbase использует Sapling, а не более старый пул Sprout? Потому что более эффективная архитектура Sapling сделала практичной защиту средств непосредственно в coinbase. Более ранний пул Sprout требовал для этого слишком много ресурсов.
Что изменилось для лёгких клиентов? Заголовок блока теперь фиксирует Merkle Mountain Range по прошлым блокам через поле hashLightClientRoot. Это позволяет лёгким клиентам и другим цепочкам проверять proof-of-work Zcash с помощью небольших доказательств логарифмического размера вместо всей цепочки целиком.
Проверьте своё понимание
Почему до Heartwood вознаграждение за блок, выплачиваемое майнеру, было видно публично, и что изменил Heartwood?
Ответ
Выходы coinbase должны были быть прозрачными, поэтому вновь созданное вознаграждение майнера всегда поступало на публичный прозрачный адрес, который мог проверить любой. Heartwood изменил правила консенсуса (ZIP 213) так, что транзакции coinbase могут содержать выходы Sapling, позволяя майнерам получать вознаграждения напрямую на защищённые адреса.
Ресурсы
ZIP 250: Развёртывание сетевого обновления Heartwood
ZIP 213: Shielded Coinbase
ZIP 221: FlyClient — изменения на уровне консенсуса
Сетевое обновление Heartwood
См. также
Сетевые обновления Zcash
Защищённые пулы
Кошельки
zk-SNARKs
Electric Coin Company
Zcash Foundation
Серия: Указатель по сетевым обновлениям · Предыдущее: Blossom · Следующее: Canopy