Sapling
Sapling был активирован в основной сети Zcash на блоке 419,200 (29 октября 2018 года, 02:15 UTC).
Что вы узнаете: Sapling сделал приватные платежи Zcash достаточно быстрыми и лёгкими, чтобы они работали на телефоне или аппаратном кошельке.
Sapling стал вторым крупным обновлением сети Zcash и был активирован во вторую годовщину Zcash. Это был консенсусный хардфорк, который заново выстроил процесс формирования экранированных (приватных) транзакций. Развёртывание определено в ZIP 205, новые правила подписи транзакций — в ZIP 243, и оба опираются на ZIP 200, механизм обновления сети. Полные детали содержатся в Zcash Protocol Specification. Electric Coin Company разработала это обновление и выпустила первую поддерживающую его версию, zcashd 2.0.0, в августе 2018 года. На уровне блокчейна сеть распознаёт правила Sapling по его идентификатору ветви консенсуса.
Почему это важно. До Sapling создание действительно приватного платежа означало ожидание в течение нескольких минут, пока ваш компьютер обрабатывал гигабайты памяти, чтобы построить доказательство. Это было слишком медленно и слишком тяжело для большинства людей, поэтому многие пользователи, биржи и магазины отказывались от экранированных транзакций и вместо этого отправляли ZEC открыто. Sapling сократил эту работу до нескольких секунд и примерно 40 мегабайт памяти. Именно это изменение сделало экранированные ZEC практичными для повседневного использования — на обычных телефонах и аппаратных кошельках.
Что изменилось
Суть Sapling — в более быстром способе построения доказательства с нулевым разглашением, которое сохраняет приватность экранированной транзакции. В исходной конструкции Sprout использовалась одна схема доказательства (схема JoinSplit), которая была медленной и требовательной к памяти. Sapling заменил её двумя специализированными схемами — схемой Spend и схемой Output, описанными в Zcash Protocol Specification. Результатом стало значительное снижение затрат. По данным Electric Coin Company, экранированную транзакцию можно создать всего за несколько секунд, используя около 40 мегабайт памяти. До Sapling базовый уровень Sprout был значительно тяжелее — порядка минут и нескольких гигабайт памяти (эти показатели для Sprout являются широко цитируемой приблизительной базовой оценкой).

Новые ключи
Sapling также представил новый набор экранированных адресов и ключей. Один ключ может производить множество диверсифицированных адресов — отдельных платёжных адресов, которые внешний наблюдатель не может связать друг с другом. Sapling также добавил viewing keys: полный или входящий viewing key позволяет передать возможность видеть детали транзакций кошелька, не передавая право расходовать его средства. Это полезно для аудита, бухгалтерии или просто для доказательства того, что платёж был совершён.
Связанное с этим изменение заключается в том, что Sapling разделил задачу построения доказательства и задачу подписи транзакции. Устройство, которое создаёт доказательство с нулевым разглашением, больше не обязано быть устройством, которое хранит право расходования. Именно это разделение позволяет аппаратному кошельку хранить ваш ключ расходования изолированно, пока отдельное устройство выполняет более тяжёлую работу по построению доказательства.

Trusted setup
Схемы 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. На уровне блокчейна этот момент отмечен идентификатором ветви консенсуса 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
Серия: Указатель по обновлениям сети · Предыдущее: Overwinter · Следующее: Blossom