Опасный адрес Dusk не всегда является недействительным. Он может быть вполне корректным адресом из неправильной модели транзакций.
И адрес Moonlight, и адрес Phoenix используют Base58, поэтому простая проверка «похоже ли это на Base58?» сообщает слишком мало. Moonlight — это один сжатый публичный ключ BLS12-381 G2. Phoenix — это две сжатые точки Jubjub. На экране одна и та же азбука, но под капотом разные структуры.
Это важно, если я строю форму депозита или вывода DUSK вокруг Moonlight. Путь обмена Dusk явно настроен на Moonlight, тогда как Phoenix требует другой модели хранения и сканирования. Если поле адреса проверяет только символы, я могу принять скрытый адрес Phoenix в рабочий процесс, предназначенный для назначения, сканирования или отправки в отношении публичных аккаунтов Moonlight.
Ошибка проявляется поздно. Пользователь видит «адрес принят». Я сохраняю его в базе данных. Затем сборщик транзакций или депозитный конвейер — первое место, где выясняется, что адрес относится к не той «семье».
Я бы разбирал адрес структурно на границе и подтверждал ожидаемую модель, прежде чем сохранять его.
В Dusk проверка «действительный адрес» и проверка «действительный получатель» — это разные проверки.
$GNO $SOXSB #dusk $DUSK @Dusk
И адрес Moonlight, и адрес Phoenix используют Base58, поэтому простая проверка «похоже ли это на Base58?» сообщает слишком мало. Moonlight — это один сжатый публичный ключ BLS12-381 G2. Phoenix — это две сжатые точки Jubjub. На экране одна и та же азбука, но под капотом разные структуры.
Это важно, если я строю форму депозита или вывода DUSK вокруг Moonlight. Путь обмена Dusk явно настроен на Moonlight, тогда как Phoenix требует другой модели хранения и сканирования. Если поле адреса проверяет только символы, я могу принять скрытый адрес Phoenix в рабочий процесс, предназначенный для назначения, сканирования или отправки в отношении публичных аккаунтов Moonlight.
Ошибка проявляется поздно. Пользователь видит «адрес принят». Я сохраняю его в базе данных. Затем сборщик транзакций или депозитный конвейер — первое место, где выясняется, что адрес относится к не той «семье».
Я бы разбирал адрес структурно на границе и подтверждал ожидаемую модель, прежде чем сохранять его.
В Dusk проверка «действительный адрес» и проверка «действительный получатель» — это разные проверки.
$GNO $SOXSB #dusk $DUSK @Dusk