Overwinter
Overwinter було активовано в основній мережі Zcash на блоці 347,500 (26 червня 2018 року, UTC).
Що ви дізнаєтеся: як Zcash навчився безпечно змінювати власні правила, і чому саме ця основа зробила можливими всі наступні оновлення, починаючи з Sapling.
Overwinter — це оновлення мережі Zcash, перше після запуску мережі. Воно визначене в кількох пропозиціях щодо вдосконалення Zcash: ZIP 200, ZIP 201, ZIP 202, ZIP 203 та ZIP 143. Overwinter не додало жодних нових shielded-функцій. Натомість воно зміцнило протокол, щоб майбутні оновлення можна було впроваджувати безпечно. Оновлення описане Electric Coin Company на офіційній сторінці оновлення Zcash.
Чому це важливо. Змінювати правила в уже працюючому блокчейні небезпечно. Якщо зробити це неправильно, дві версії мережі можуть не погоджуватися між собою, або транзакцію, призначену для одного ланцюга, можна буде скопіювати в інший. До Overwinter у Zcash не було стандартного, захищеного від replay способу координувати зміну правил. Overwinter це виправило. Воно дало Zcash формальний процес оновлень і, що не менш важливо, двосторонній захист від replay, тож транзакцію, дійсну за одним набором правил, не можна повторно відтворити за іншим. Саме ця основа дозволила чисто активувати Sapling і кожне оновлення після нього.

Механізм оновлення
Overwinter запровадило механізм оновлення мережі, визначений у ZIP 200. Кожне оновлення тепер визначає дві речі: consensus branch id, який позначає поточний набір правил, і висоту активації — блок, на якому нові правила набирають чинності. Це дає всім, хто запускає програмне забезпечення Zcash, чітке вікно для оновлення до перемикання.
Саме Overwinter активувалося в основній мережі на блоці 347,500.
ZIP 201 описує, як вузли взаємодіють один з одним під час оновлення. До активації вузли надають перевагу з’єднанню з пірами, які працюють на тій самій версії. У момент активації вузол від’єднується від пірів, що перебувають на іншій гілці консенсусу, тож мережа чисто розділяється відповідно до нових правил, замість того щоб заплутатися.
Захист від replay
Replay — це коли хтось бере транзакцію, яка була дійсною в одному ланцюгу, і повторно транслює її в іншому. Overwinter закриває цю можливість новою схемою підпису, визначеною в ZIP 143. Коли гаманець підписує транзакцію, підпис тепер прив’язується до consensus branch id поточного ланцюга. Транзакція, підписана для однієї гілки, просто не є дійсною в жодній іншій гілці, в обох напрямках. Саме це і означає двосторонній захист від replay.
Це працює в парі з новим форматом транзакцій версії 3 із ZIP 202, який іноді називають форматом Overwintered. Він додає прапорець fOverwintered і version group id, які чітко вказують, до якого набору правил консенсусу належить транзакція. Як додаткова перевага, нова схема підпису також покращила швидкість перевірки transparent-транзакцій.

Термін дії транзакції
ZIP 203 додав термін дії транзакції. Тепер транзакція може задавати висоту блоку завершення дії. Якщо до цієї висоти її не включили в блок, вузли видаляють її з mempool — черги непідтверджених транзакцій. До цього транзакція могла залишатися непідтвердженою дуже довго. Термін дії означає, що застрягла транзакція зрештою очищується сама, що зменшує невизначеність для вас і не дає mempool заповнюватися старими, невидобутими транзакціями.
Де це розташовується в історії
Overwinter було першим оновленням мережі Zcash після запуску основної мережі у жовтні 2016 року, і його навмисно випустили перед Sapling. Його завданням була інфраструктура, а не функції. Спочатку запровадивши механізм оновлення та систему захисту від replay, воно дало кожному наступному оновленню (Sapling, Blossom, Heartwood, Canopy, NU5 та всім після них) безпечний шлях активації.

Глосарій
| Термін | Значення простою мовою |
|---|
| Network upgrade (NU) | Узгоджена зміна правил консенсусу Zcash, що активується на визначеній висоті блоку |
| Consensus branch id | Короткий ідентифікатор, який позначає поточний набір правил консенсусу |
| Activation height | Блок, на якому нові правила оновлення мережі набирають чинності |
| Replay protection | Правило, яке не дозволяє повторно використати транзакцію, дійсну в одному ланцюгу, в іншому |
| Mempool | Набір транзакцій, які вже були розіслані мережею, але ще не включені в блок |
| Transaction expiry | Гранична висота блоку, після якої невидобута транзакція видаляється |
FAQ
Чи змінило Overwinter мої ZEC або мою приватність? Ні. Overwinter не додало нових функцій і не зачіпало shielded-транзакції. Це була технічна основа для безпечних майбутніх оновлень. Ваші кошти та приватність не постраждали.
Чи додало Overwinter Sapling або shielded-адреси? Ні. Overwinter не додало жодних shielded-функцій. Воно підготувало основу, щоб Sapling можна було безпечно активувати пізніше.
Що таке consensus branch id? Це коротка позначка, яка називає поточний набір правил. Транзакції прив’язуються до неї під час підписання, і саме це забезпечує захист Zcash від replay.
Чому в деяких джерелах вказано 25 червня, а в інших 26 червня? Overwinter активувалося о 01:37 UTC 26 червня 2018 року. Це відразу після півночі за UTC, тому в багатьох західних часових поясах місцевий час усе ще показував 25 червня. Це той самий блок і той самий момент.
Для чого потрібен термін дії транзакції? Він означає, що транзакція, яку так і не включили в блок, не буде висіти вічно. Після досягнення її граничної висоти вузли видаляють її, тож вам не доводиться гадати, що сталося із застряглим платежем.
Чи потрібно мені щось робити? Ні. Overwinter активувалося у 2018 році. Будь-який сучасний гаманець або вузол Zcash уже дотримується цих правил.
Перевірте своє розуміння
Overwinter не додало жодних нових shielded-функцій. То чому його вважають одним із найважливіших оновлень в історії Zcash?
Відповідь
Тому що воно побудувало механізми, від яких залежить кожне наступне оновлення. Overwinter запровадило механізм оновлення мережі та двосторонній захист від replay, давши Zcash стандартний і безпечний спосіб змінювати свої правила консенсусу. Без цієї основи Sapling і всі оновлення після нього не змогли б активуватися чисто.
Ресурси
ZIP 200: Механізм оновлення мережі
ZIP 201: Керування пірами мережі для Overwinter
ZIP 202: Формат транзакцій версії 3 для Overwinter
ZIP 203: Термін дії транзакції
ZIP 143: Перевірка підписів транзакцій для Overwinter
Оновлення мережі Overwinter
Дивіться також
Оновлення мережі Zcash
Shielded Pools
Повні вузли
NU6.1
Electric Coin Company
Що таке ZEC і Zcash
Серія: Індекс оновлень мережі · Попереднє: Sprout · Наступне: Sapling