Безопасность и конфиденциальность
Z-Text построен с нуля на основе модели безопасности с нулевым доверием. Никакой аналитики, никакого отслеживания, никакого хранения данных на сервере.
Защита PIN-кодом
Z-Text блокирует приложение 8-значным PIN-кодом, который вы задаёте при первоначальной настройке. Приложение запрашивает его, прежде чем:
- Открыться
- Отправить транзакции (сообщения и переводы BTCZ)
- Показать вашу seed-фразу
- Изменить настройки безопасности
Сам PIN-код никогда не хранится в читаемом виде. Повторные неверные попытки ввода на экране блокировки вызывают период ожидания.
Биометрическая аутентификация
На поддерживаемых устройствах вы можете включить отпечаток пальца или распознавание лица в качестве альтернативы вводу PIN-кода для доступа к приложению. Биометрические данные обрабатываются исключительно защищённым модулем устройства -- Z-Text никогда не получает доступ к необработанным биометрическим данным.
Двухуровневое шифрование
Z-Text использует архитектуру двойного шифрования, обеспечивающую эшелонированную защиту:
Уровень 1: Экранирование блокчейна (zk-SNARKs)
Защищённые транзакции блокчейна BitcoinZ используют zk-SNARKs для шифрования поля memo транзакции. Это означает:
- Содержимое сообщения зашифровано в блокчейне
- z-адреса отправителя и получателя скрыты
- Сумма транзакции скрыта
- Только владелец ключа просмотра z-адреса может расшифровать memo
Уровень 2: Шифрование ключом контакта
Перед помещением сообщения в memo транзакции Z-Text шифрует его общим ключом, полученным при рукопожатии. Это добавляет второй уровень защиты:
- Даже если кто-то получит ваш ключ просмотра z-адреса, он не сможет прочитать сообщения
- Общий ключ уникален для каждой пары контактов
- Ключ получен через ECDH и никогда не передаётся напрямую
Зачем два уровня?
Уровень 1 защищает от наблюдателей блокчейна. Уровень 2 защищает от компрометации ключа просмотра. Оба уровня должны быть взломаны для прочтения сообщения -- крайне сложная задача.
zk-SNARKs: как это работает
zk-SNARKs (Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge) -- это криптографические доказательства, позволяющие одной стороне доказать, что она знает некоторое значение, не раскрывая само значение.
В контексте Z-Text, zk-SNARKs доказывают, что транзакция валидна (корректные балансы, авторизованный отправитель), не раскрывая, кто отправил, кто получил и какая сумма была переведена. Именно это делает защищённые транзакции по-настоящему приватными.
Нулевая телеметрия
Z-Text не собирает абсолютно никаких пользовательских данных:
- Никакой аналитики или отслеживания любого рода
- Никаких отчётов об ошибках, отправляемых на внешние серверы
- Никакие данные об использовании нам не отправляются
- Приложение подключается к выбранному вами серверу lightd (по умолчанию — наш, либо ваш собственный узел) и запрашивает публичную цену BTCZ; при включённом Tor и то, и другое идёт через Tor
- Значки сайтов в хранилище паролей загружаются, только если вы их включите
- Никакой записи IP-адресов самим приложением
Исходный код
Приложение Z-Text имеет закрытый исходный код. Сетевой протокол будет опубликован в виде спецификации для публичного рецензирования.
Модель угроз
Z-Text разработан для защиты от:
| Угроза | Защита |
|---|---|
| Компрометация сервера | Нет серверов -- сообщения хранятся в блокчейне |
| Сетевое наблюдение | Защищённые транзакции zk-SNARKs скрывают отправителя, получателя, сумму и memo |
| Ваше заблокированное устройство в чужих руках | Экран блокировки с PIN-кодом или биометрией, зашифрованное локальное хранилище |
| Утечка ключа просмотра | Шифрование уровня 2 предотвращает чтение сообщений |
| Цензура | Децентрализованный блокчейн невозможно отключить |