Malware з memory scraper — реальна загроза для криптогаманців. Ми вирішуємо її ізоляцією всіх криптографічних операцій у Rust-бекенді, куди JavaScript-фронтенд не має прямого доступу. За 10 років досвіду ми запустили 15+ десктопних гаманців для Ethereum, Arbitrum і Solana, провели понад 50 аудитів. Наші рішення пройшли пентест і формальну верифікацію BIP-44.
Як захистити приватні ключі від malware?
Десктоп — середовище з високим ризиком: keylogger, screen grabber, memory scraper. Ми реалізуємо зберігання ключів у зашифрованому keystore (EIP-55) з інтеграцією системного keychain. Приватний ключ ніколи не передається в JavaScript — всі криптооперації виконуються в Rust-бекенді Tauri. Використовуються бібліотеки zeroize для очищення пам'яті після завершення операцій. Додатково застосовуємо ізоляцію процесів: навіть якщо фронтенд скомпрометований, зловмисник не отримає доступу до приватних ключів. Keylogger не може перехопити пароль, якщо він вводиться через захищений діалог операційної системи. Швидкість підписання транзакції становить менше 0.5 секунди, що підтверджено навантажувальним тестуванням на 100+ сценаріях.
Чому ми обираємо Tauri, а не Electron? (порівняння electron vs tauri)
Tauri з Rust-логікою дає в 3 рази менше споживання пам'яті та в 5 разів менший розмір бандла порівняно з Electron. Розмір інсталятора 5–15 MB проти 100+ у Electron, а IPC строго типізований. Tauri кращий за Electron по безпеці: використовує системний WebView, що знижує поверхню атаки. Для HD-гаманця використовуємо BIP-44 з бібліотеками @scure/bip39 та @scure/bip32. Нещодавня вразливість у Chromium не впливає на Tauri, оскільки він використовує WebView операційної системи, який оновлюється разом із системою. Це скорочує час на patching до кількох годин замість тижнів.
// Tauri команда для створення гаманця #[command] fn generate_wallet(password: String, state: tauri::State<AppState>) -> Result<WalletInfo, String> { let mut rng = rand::thread_rng(); let mut private_key = [0u8; 32]; rng.fill_bytes(&mut private_key); let wallet = LocalWallet::from(SigningKey::from_bytes(&private_key)?); let address = wallet.address(); // encrypt and store let filename = format!("wallet-{}.json", address); let keystore_path = state.keystore_dir.join(&filename); encrypt_key(&keystore_path, &mut rng, private_key, &password, Some(&filename))?; private_key.zeroize(); Ok(WalletInfo { address: format!("{:?}", address), id: filename }) } | Параметр | Tauri | Electron |
|---|---|---|
| Розмір бандла | 5–15 MB | 100–200 MB |
| Attack surface | Мінімальний (Rust) | Високий (Chromium) |
| Швидкість IPC | Нативна (Rust) | Node.js bridge |
Як забезпечується інтеграція з hardware wallets?
Ми інтегруємо Ledger і Trezor через WebUSB та node-hid. Ключі ніколи не покидають пристрій — транзакції підписуються апаратно. У MVP підключається одна модель, потім розширюємо на всі популярні пристрої. Час інтеграції — 2–4 тижні залежно від кількості підтримуваних моделей.
Які мережі підтримуються і як працює інтеграція з dApps?
Підтримуємо Ethereum mainnet, Arbitrum, Base, Polygon з автоматичним failover RPC. Для dApps використовуємо WalletConnect v2 з попереднім переглядом транзакції:
interface TransactionPreview { type: 'ETH_TRANSFER' | 'TOKEN_TRANSFER' | 'APPROVE'; to: string; toRisk: 'safe' | 'unknown' | 'suspicious'; estimatedGasUSD: string; warnings: string[]; } | Мережа | RPC endpoint | Failover |
|---|---|---|
| Ethereum mainnet | infura.io, alchemy.com | Віддалена нода |
| Arbitrum | arbitrum.io | public RPC |
| Base | base.org | cloudflare-eth |
Як відбувається оновлення десктопного криптогаманця?
Використовуємо вбудований механізм оновлень Tauri: бінарні файли підписуються EV-сертифікатами, а оновлення перевіряються за публічним ключем. Користувач отримує сповіщення про нову версію та може встановити її одним кліком без втрати даних. Вся конфігурація та ключі зберігаються при оновленні.
Процес роботи (під ключ)
Ми оцінимо ваш проєкт безкоштовно та запропонуємо рішення. Реалізуємо проєкт під ключ за 6–8 тижнів. Вартість розробки базового гаманця — від $10 000. Економія до 40% на інфраструктурі порівняно з браузерними гаманцями.
- Аналіз — визначення мереж, hardware-підтримки, платформ. Оцінка ризиків безпеки.
- Проектування — схема зберігання ключів, IPC-команди, UI. Сумісність з BIP-44 та EIP-55.
- MVP — базова функціональність: гаманець, відправка ETH, одна мережа. Тривалість 4–6 тижнів.
- Інтеграція — multi-chain, WalletConnect, hardware wallets, DApp browser. 2–3 тижні на кожну додаткову функцію.
- Тестування — fuzzing (Echidna, 100+ ітерацій), статичний аналіз (Slither), пентест XSS, навантажувальне тестування з 50+ сценаріями.
- Деплой — code signing (Apple, Microsoft), автооновлення через Tauri updater.
Типові помилки при розробці десктопного криптогаманця
- Зберігання приватних ключів у
localStorageабо індексованій базі даних — вони доступні через DevTools. - Відсутність розмежування процесів: якщо весь код на JavaScript, зловмисник може перехопити ключі через XSS.
- Ігнорування hardware wallet для великих сум — користувачі втрачають контроль при компрометації ОС.
- Неправильна обробка Network RPC failover: якщо єдиний провайдер падає, гаманець стає недоступним.
Що входить в результат?
- Вихідний код (Rust, TypeScript, React) з документацією
- CI/CD з reproducible builds
- Інтеграція з keychain операційної системи
- Підготовка до аудиту безпеки
- Підтримка 3 місяці після релізу
Переваги нашого підходу
Наше рішення дозволяє заощадити до $5,000 на інфраструктурних витратах на рік порівняно з браузерними гаманцями. Розробка десктопного гаманця обходиться дешевше, ніж підтримка кількох браузерних розширень. Сертифіковані інженери з більш ніж 10-річним досвідом гарантують безпеку на всіх етапах.
Пишіть нам для консультації — ми обговоримо ваш проєкт і підберемо оптимальний стек. Замовте попередню оцінку, і ми підготуємо детальну пропозицію.







