Приветствуем! Впервые на сайте Zcash?
The Zcash network is young, but evolving quickly! Sign up and we'll be in touch with monthly highlights on ecosystem growth, network development and how to get started with Zcash!

Язык

Совершенствование Zcash

Nathan Wilcox | Oct 18, 2016

Наша команда выходит на финишную прямую запуска Zcash, который запланирован на 28 октября. В одной из последних статей нашего блога мы уже упоминали о таком свойстве Zcash, как согласованность: это значит, что пользователи могут использовать программное обеспечение от любого разработчика по собственному усмотрению. И теперь, когда до запуска осталось совсем чуть-чуть, самое время поделиться нашими мыслями о том, какими способами возможно дальнейшее развитие программного обеспечения Zcash.

Стратегия обновлений

Наиболее важный пункт нашего плана в этом направлении касается своевременного изъятия из ПО устаревших версий протокола. Это позволит как внедрять новый функционал, которым не будут обладать старые пользователи, так и убирать из использования неактуальный, который уже не имеет смысла оставлять.

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

  1. ответвление от базового кода программного проекта,
  2. постоянное появление новых веток блокчейна,
  3. ответвление групп пользователей.

Эти понятия являются ортогональными. Например, внутри одной взаимодействующей группы пользователей возможно использование различных ответвлений от основного ПО, а чтобы все новые ответвления истории блокчейна считались корректными, должен использоваться одинаковый код (например, как в случае с кошельком parity после разделения ETH и ETC).

Мы считаем, что большинство пользователей будет согласно с обновлениями протокола, которые мы предложим. И что более важно, достаточное количество пользователей не сочтет эти изменения неприемлемыми. В таком случае некорректности будут очень быстро исправляться, а пользователи продолжат взаимодействовать не создавая новые ответвления.

Может случиться и так, что часть пользователей неохотно примет какие-либо нововведения. Но даже в таком случае внесение изменений может принести больше пользы, чем вреда (например, исправить некорректность, связанную с ответвлением от блокчейна). Также, в этом случае мы можем привести свои доводы в пользу обновления и выпустить программное обеспечение для него. Но бывают случаи, когда риск некорректной работы блокчейна из-за ответвлений перевешивает все остальное.

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

Вероятно неожиданные обновления

Учитывая, что запланированные обновления сделают устаревшим действующий протокол, важно оповестить пользователей о нововведениях как можно раньше, чтобы дать людям возможность обдумать и принять изменения. Обновления, о которых дальше пойдет речь, не являются ни глобальными, ни самыми ожидаемыми или самыми интересными, которые предстоят. Скорее, они самые неожиданные для некоторой части потенциальных пользователей. И потому очень важно рассказать о них до запуска Zcash.

Майнинг

В наших планах модифицировать систему майнинга, по крайней мере посредством изменения параметров Equihash. В будущем мы даже можем настоять на более серьезных изменениях, и даже переходе с доказательства выполнения работы (proof-of-work) на систему подтверждения доли (proof-of-stake), но лишь если мы еще раз убедимся, что эти системы практичны, безопасны и экономически более эффективны.

Вознаграждение учредителей

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

Выявление подделок

Чем более сложную систему защиты имеет валюта, тем может быть более сложным выявить ее подделку [1]. В любой системе безопасности лучший способ борьбы с этим явлением - своевременное обнаружение. Мы уже начали набрасывать варианты обновлений протокола, которые помогут в обнаружении поддельной валюты. Благодаря этим обновлениям любой пользователь сможет самостоятельно обнаружить, а в некоторых случаях даже ограничить, выпуск подделок, если злоумышленнику удастся обойти систему безопасности.

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

Погашение технического долга

Кодовая база и дизайн Zcash созданы по подобию Bitcoin Core. Это сделано для того, чтобы взять все самое лучшее из проверенных временем консервативных решений. Потому как мы собираемся вносить изменения в код, что повлечет за собой изменение функционала, у нас еще будет возможность выбрать наилучший момент для безопасного погашения технического долга [2].

... и это еще не все

Как было сказано ранее, это не полный список планируемых обновлений. Мы также можем привести аргументы в защиту других обновлений, которые могут удивить некоторых пользователей. А те решения, о которых мы рассказали в этой статье, просто кажутся нам наиболее потенциально осуществимыми, пусть и неожиданными. Но знайте, это не самые интересные обновления, которые ждут нас. ;-)

Последующее развитие

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

 Например, если количество пользователей будет оставаться относительно небольшим и коины будут редко использоваться, то возможно придется начать вносить изменения ранее, чем планировалось. Как бы то ни было, если у Zcash будет большое количество пользователей и коины найдут широкое применение, то это уже будет значить, что наш код отлично работает и имеет экономический вес. В таком случае мы скорее всего будем придерживаться консервативной модели.

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

—Nathan Wilcox, 2016-10-18

Footnotes:

[1]Различные системы безопасности имеют разную поверхность атаки. Нарушение функционирования этих систем может привести к созданию поддельных единиц. В программном проекте Zcash поверхность атаки включает в себя процесс настройки исходных параметров, безопасность и надежность доказательств zk-SNARK и поддержка валютного баланса при проведении скрытых транзакций. При анализе систем безопасности взаимозаменяемой валюты очень важно определить границы поверхности атаки для устранения уязвимостей.
[2]Сообщество Bitcoin только за этим и придерживает свой список задач. Ведь у нас есть возможность протестировать подчищенный код в реальной сети, и таким образом команда Bitcoin сможет учиться из нашего опыта и учесть ошибки и успешные моменты.