Что происходит, если попытаться сделать приватное хранилище заметок полностью on-chain?
Я решил проверить это на практике и собрал iNote - dApp, где заметки шифруются прямо в браузере, а в блокчейн попадает только шифротекст. Никакого сервера, базы данных и password recovery.
Но самое интересное началось, когда я добавил Coinbase Smart Wallet. Моя первая схема «ключ из подписи» просто перестала работать: смарт-кошельки сломали главное предположение о детерминированности подписей.
В статье разбираю, почему это произошло и как я решил проблему через envelope encryption, AES-256-GCM, PBKDF2 и два режима управления ключами.
Заодно показываю архитектуру, код и несколько неочевидных инженерных решений вокруг Base.
Буду рад техническому ревью и особенно вопросам - проект открыт, так что ломайте. 🙂