Приветствуем! Впервые на сайте 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 | Aug 17, 2016

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

Стратегия аудита

Zcash объединяет в себе новейшую криптографию с блокчейн консенсусом и предоставленная нами реализация является сетевым приложением, написанным на C++. Наша стратегия аудита состоит в привлечении экспертов с различными специализациями, которые смогут сфокусироваться на различных аспектах работы, включающих: криптографию, криптовалюты (особенно Bitcoin), C++, сети, и традиционную проверку безопасности приложений.

Аудиторы и консультанты

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

NCC Group - Когда мы работали совместно с NCC Group как командой по аудиту Least Authority, нас впечатлили способности этих квалифицированных специалистов по аудиту криптографического программного обеспечения.

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

Solar Designer – Мы выбрали Solar Designer, потому что он известен как признанный хакер старой школы, разработавший возврат к libc (ret2libc). Это положило начало к переходу от внедренного кода к коду заимствования. Также на счету Solar Designer разработка первой методики обобщённого программирования на основе переполнения буфера (она работает, совершая атаку на «unlink»), операцию, которая объединяет смежные фрагменты со свободными параметрами распределения).

Мы гордимся работой с командами, которые так же, как и мы, ценят ПО с открытым исходным кодом и стремятся создать открытые, безопасные системы для всех и каждого.

Результаты

Мы сконцентрировали наши усилия на аудите отдельных компонентов:

  • zkSNARK криптография (включая: libsnark)
  • Zcash криптографическая конструкция (наша"zk-SNARK схема")
  • Алгоритм доказательства работы - Equihash
  • Изменения консенсуса (взяты из Биткоина)
  • Строгое соблюдение спецификаций
  • C++, условия соревнования, сети, переполнение буфера, управление этапами компиляции

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

  • Bitcoin Core выживает уже на протяжении примерно 7 лет, контролируя средства на миллиарды долларов США и эта система достаточно хорошо протестирована в естественных условиях. Мы сфокусировались на отличиях от Биткоина, хотя проводим аудит безопасности памяти в коде таким же образом, как это делается для ядра Биткоина и его этапов компиляции.
  • Криптографическая техника zkSNARK уже рецензирована нашими коллегами, поэтому мы не будем искать там.
  • Мы используем только подмножество libsnark, игнорируя таким образом части, которые не используем [1].
  • Схема Zcash является модифицированной версией ранее исследованной специалистами схемы Zerocash. Поэтому мы сосредоточимся на изменениях, а не на самой конструкции.

Расписание

Первые аудиты уже начались, и мы внесли в расписание последующие аудиты для того, чтобы получить уверенность в безопасности системы на момент её запуска. Правильная, тщательная проверка сможет обеспечить снижение рисков, а также предотвращение уязвимостей – отчасти, тщательность аудита и послужила основанием для задержки релиза. Мы описали изменения в расписании в посте о запуске Zcash Росток.

Понимание рисков

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

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

Заключение

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

— Натан Уилкокс, 2016-08-17

[1]Мы создали библиотеку libsnark, в который перенесли тот код, который не используется Zcash.