Z-TextДокументация

Безопасность и конфиденциальность

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 предотвращает чтение сообщений
ЦензураДецентрализованный блокчейн невозможно отключить