#bitcoin
Вчера я слушал подкаст Базовый Блок, в выпуск был приглашен Михаил Кириллов, который разрабатывает полностью беспроводной аппаратный кошелек Hito (
@basicblockradio ). Все это навеяло меня на мысли, каким должен быть идеальный (на мой взгляд) этот девайс. Вначале я просто хотел связаться с Михаилом и поделиться идеями, но контактов его не нашел, так что уж пишу в канальчик.
Итак, первые модели подключались по проводу, отдельное устройство, все такое, но все равно имелось некоторое опасение, а вдруг по этому проводу можно скачать дамп содержимого? Как быть уверенным в том, что по проводу передается только то, что нужно, а не лишнее? И это вопрос не только доверия к разработчику, а гораздо шире — зачастую сам разработчик использует обычные api интерфейсов, а что туда зашил условный Билл — только ему и известно.
Сейчас новые модели используют BT и NFC беспроводные интерфейсы, с одной стороны, кажется, что по воздуху атаковать кошелек сложнее, чем по проводу, но все равно, api интерфейсов, это вещь «в себе» и не исключено, что могут быть в будущем какие-то атаки в этом направлении, плюс если по проводу можно еще контролировать к какому устройству подключен кошелек, то эти беспроводные интерфейсы подбрасывают еще паранои — шапочку из фольги приходится носить — придумывать какие-то экранизирующие чехлы и прочие заморочки.
Идеала нет, в текущих реализациях, и мне очень странно, почему до сих пор не додумались до вариант создания кошелька по схеме офлайн режима, например, кошелька Electrum, когда обмен информацией происходит «по воздуху» но через QR коды, через которые передаются подписанные транзакции.
Перечислю преимущества данной реализации:
— В устройстве нужно питать просто экран, возможно монохромный даже, отсутствуют и проводные и беспроводные интерфейсы, что просто отбрасывает варианты атаки описанные выше и очень положительно сказывается на энергопотреблении.
— Да, как в usb/bt/nfc протоколах, может быть найдена уязвимость, условно говоря и в драйвере дисплея, но в случае с usb/bt/nfc такие уязвимости опасны и надо их обновлять, а в случае с дисплеем — нет, думаю это понятно почему. Потому что сам протокол передачи «не электронный» так сказать, а аналоговое изображение которое потом оцифровывается.
— Данный протокол — это по сути Bitcoin протокол в QR кодах, он уже стандартизирован — подписанная транзакция — она и в Африке транзакция, а значит кошелек сразу получает совместимость с тем же Electrum.
По сути приложения уже написано, причем их массы.
Никто не мешает написать и свои. Для удобства пользователей можно вообще сделать онлайн сервис, в этом случае страдает анонимность, но появляется возможность тратить средства вообще на любом ПК, хоть самом завирусованном в провинциальной почте в интернет кафе (снимаются требования к открытым usb и наличию интерфейсов).
— Пользователь может контролировать приходы и получать свои входящие адреса вообще не притрагиваясь к кошельку, ну это понятное достоинство (и батарейка лишний раз не тратиться и имеется возможность вообще, хранить кошелек в сейфе далеко от себя, а балансы отслеживать).
— Намного проще получить лояльность новых пользователей, так как данный кошелек не навязывает свой софт, можно пользоваться старым софтом, пользователь просто переносит из него ключи на внешний носитель.
Кроме того, это сочетание с уже привычным пользователем софтом (тем же Electrum) позволяет «проверять» на стороне ПК «а правильно ли кошелек все подписал?» — на этапе отправки транзакции в сеть у него имеется возможность ее повторно проверить.
Механизм прозрачен: результат работы можно проверять, утечка данных не возможна в силу отсутствия интерфейсов физически, а в случае отказа кошелька можно внести seed в Electrum и продолжить работу как раньше.