Sapling
Sapling запустився в основній мережі Zcash на блоці 419,200 (29 жовтня 2018 року, 02:15 UTC).
Що ви зрозумієте: Sapling зробив приватні платежі в Zcash достатньо швидкими й легкими, щоб ними можна було користуватися на телефоні або апаратному гаманці.
Sapling став другим великим оновленням мережі Zcash і активувався в другу річницю Zcash. Це був консенсусний хардфорк, який перебудував спосіб формування екранованих (приватних) транзакцій. Розгортання визначене в ZIP 205, нові правила підпису транзакцій — у ZIP 243, і обидва спираються на ZIP 200, механізм оновлення мережі. Повний опис міститься у специфікації протоколу Zcash. Electric Coin Company створила це оновлення і випустила першу версію з його підтримкою, zcashd 2.0.0, у серпні 2018 року. У ланцюзі мережа ідентифікує правила Sapling за його consensus branch id.
Чому це важливо. До Sapling створення справді приватного платежу означало, що потрібно було чекати хвилинами, поки ваш комп’ютер обробляв гігабайти пам’яті для побудови доказу. Це було надто повільно й надто важко для більшості людей, тому багато користувачів, бірж і магазинів пропускали екрановані транзакції та надсилали ZEC відкрито. Sapling скоротив цю роботу до кількох секунд і приблизно 40 мегабайтів пам’яті. Саме ця зміна зробила екранований ZEC практичним для повсякденного використання — на звичайних телефонах і в апаратних гаманцях.
Що змінилося
Серцем Sapling став швидший спосіб побудови доказу з нульовим розголошенням, який зберігає приватність екранованої транзакції. Початковий дизайн Sprout використовував одну схему доведення (схему JoinSplit), яка була повільною і вимагала багато пам’яті. Sapling замінив її двома спеціалізованими схемами — схемою Spend і схемою Output, описаними у специфікації протоколу Zcash. Результатом стало значне зниження вартості. За даними Electric Coin Company, екрановану транзакцію можна створити всього за кілька секунд, використовуючи близько 40 мегабайтів пам’яті. До Sapling базовий рівень Sprout був значно важчим — на рівні хвилин і кількох гігабайтів пам’яті (ці показники для Sprout є широко цитованою приблизною базовою оцінкою).

Нові ключі
Sapling також представив новий набір екранованих адрес і ключів. Один ключ може породжувати багато диверсифікованих адрес — окремих платіжних адрес, які зовнішній спостерігач не може пов’язати між собою. Sapling також додав viewing keys: повний або вхідний viewing key дає змогу поділитися можливістю бачити деталі транзакцій гаманця, не передаючи можливість витрачати його кошти. Це корисно для аудиту, бухгалтерії або просто для підтвердження того, що платіж було здійснено.
Пов’язана зміна полягає в тому, що Sapling розділив побудову доказу й підписання транзакції. Пристрій, який створює доказ з нульовим розголошенням, більше не мусить бути тим самим пристроєм, що зберігає право на витрати. Саме це розділення дає апаратному гаманцю змогу зберігати ваш ключ витрат ізольовано, тоді як окремий пристрій виконує важчу роботу з побудови доказу.

Довірене налаштування
Схеми Sapling покладаються на набір публічних параметрів, які потрібно було згенерувати дуже обережно. Якби одна сторона створила їх самостійно й зберегла залишкові секретні дані ("toxic waste"), ця сторона могла б підробляти докази. Щоб цього уникнути, параметри були отримані в межах двофазної багатосторонньої церемонії. Фаза 1, що називалася Powers of Tau, була незалежною від конкретної схеми, тобто не була прив’язана до конкретних схем Sapling. Фаза 2, Sapling MPC, була специфічною для схеми. Кожна фаза залишається безпечною, якщо принаймні один учасник був чесним і знищив свій toxic waste, тож церемонія провалюється лише в тому разі, якщо змовляться всі без винятку учасники.
Як відбулася активація
Sapling прийшов після Overwinter — оновлення червня 2018 року, яке підготувало механізм оновлення мережі. Electric Coin Company встановила висоту активації основної мережі в zcashd 2.0.0, випущеному в серпні 2018 року, і мережа перейшла на правила Sapling, коли було видобуто блок 419,200. У ланцюзі цей момент позначений consensus branch id Sapling.

Глосарій
| Термін | Просте пояснення |
|---|
| Shielded transaction | Приватна транзакція Zcash, яка приховує відправника, одержувача та суму. |
| Sprout | Початковий екранований протокол, з яким запустився Zcash; повільніший і важчий за Sapling. |
| Spend and Output circuits | Дві нові схеми доведення Sapling, які замінили єдину схему JoinSplit у Sprout. |
| Diversified address | Одна з багатьох непов’язаних між собою платіжних адрес, які можна отримати з одного ключа. |
| Viewing Key | Ключ, який дає змогу комусь бачити транзакції гаманця без можливості витрачати з нього кошти. |
| Consensus branch id | Короткий код, який повідомляє мережі, правилам якого оновлення відповідає транзакція. |
FAQ
Чи змінив Sapling кількість ZEC, якими я володію? Ні. Sapling змінив спосіб побудови екранованих транзакцій, а не кількість ZEC у будь-кого чи загальну пропозицію. На ваш баланс це не вплинуло.
Чи залишився мій ZEC приватним після Sapling? Так, і став зручнішим у використанні. Sapling зберіг сильну приватність екранованих транзакцій і зробив їх достатньо швидкими та дешевими для реального використання. Екрановані кошти й надалі приховуються так само.
Чи потрібно мені щось робити? Ні, від вас як від власника нічого не потрібно. Sapling був оновленням мережі, яке прийняло програмне забезпечення гаманців і вузлів. Сучасні гаманці вже підтримують адреси Sapling.
У чому різниця між Sprout і Sapling? Sprout був першим екранованим протоколом і використовував одну повільну, ресурсомістку схему доведення. Sapling замінив її швидшими схемами Spend і Output, додав viewing keys і диверсифіковані адреси та зробив екрановані транзакції достатньо легкими для телефонів і апаратних гаманців.
Чому в одних джерелах вказано 28 жовтня, а в інших — 29 жовтня? Висоту активації було визначено заздалегідь із розрахунком на 28 жовтня 2018 року. Блок, який фактично активував зміну, блок 419,200, було видобуто в ранні години 29 жовтня за UTC. У багатьох місцевих часових поясах це все ще було 28 жовтня. У будь-якому разі йдеться про той самий блок і той самий момент.
Що таке viewing key? Viewing Key дає змогу поділитися доступом для перегляду екранованого гаманця. Той, хто має повний або вхідний viewing key, може бачити деталі транзакцій гаманця, але не може витрачати його кошти. Докладніше дивіться в Viewing Keys.
Перевірте своє розуміння
Чому в часи Sprout так багато людей уникали екранованих транзакцій і як Sapling це виправив?
Відповідь
У Sprout побудова екранованої транзакції займала хвилини й використовувала гігабайти пам’яті, тому це було надто повільно й важко для більшості користувачів, бірж і магазинів. Sapling представив швидші схеми Spend і Output, які скоротили цю роботу до кількох секунд і приблизно 40 мегабайтів, зробивши екрановані транзакції практичними для повсякденних телефонів і апаратних гаманців.
Ресурси
Дивіться також
- Екрановані пули
- Viewing Keys
- zk-SNARKs
- Оновлення мережі Zcash
- Гаманці
- Electric Coin Company
Серія: Індекс Network Upgrades · Попереднє: Overwinter · Далі: Blossom