Сегодня на сайте Dusk меня остановили по дороге прокрутки всего два слова: shield, unshield. Я вернулся и перечитал анонс кошелька, опубликованный пару месяцев назад — тот самый, мимо которого я в первый раз просто проскочил.
Я думал, что приватная цепочка сама по себе сделает каждую транзакцию приватной по умолчанию. Но здесь происходит не так. Кошелёк поддерживает публичные и приватные переводы, shield и unshield, и выбор остаётся за отправителем — он делается заново каждый раз, как указано в официальном объявлении.
Затем я заметил кое-что меньшее, лёгкое упустить. Хранение ключей реализовано не одинаково на разных платформах. Сборки расширения браузера работают на PBKDF2 и AES-GCM. Сборки для десктопа и мобильных устройств используют Stronghold в паре с Argon2 — согласно тому же релизу. Две разные модели безопасности в зависимости от того, где живёт кошелёк.
Я снова и снова возвращаюсь к тому, что это значит для стороны конфиденциального контракта. Если shielding — это выбор на уровне каждой транзакции, то это меняет то, как на практике работает селективное раскрытие: не как абстракция на уровне протокола, а прямо в тот самый момент, когда кто-то нажимает «отправить».
Один момент, на который я пока не могу ответить: если перевод размаскирован (unshielded), остаётся ли он видимым навсегда с этого момента или в системе есть какая-то обратимость. В объявлении это не сказано, и я нигде больше официально на это не наткнулся.
$DUSK #dusk @Dusk #dusk $DUSK