Хардверный кошелек который нужно постоянно перепрошивать - это софтверный кошелек
не совсем таки... вопрос в хардверной конструкции и имплементации. например trezor это чистый stm32 /cortex 32bit arm, изученый вдоль и поперек. ledger это stm32 для обвязки и secure-element который собственно и хранит ключи. secure element защищен о вторжения, анализа, или декорпусинга... и живет своей жизнью, 3-5 неверных попыток и он уничтожает все что в нем было.
stm32 в случае трезора это чисто махонький конмпик со своей логикой, подающийся реверсу и анализу.
в случае леджер, stm32 реализует только интерфейс общения, хотя это тоже не идеал