Привет. Скоро этот раздел будет заполнен. Хочешь в команду? Тык!
Привет. Скоро этот раздел будет заполнен. Для заказа сразу пиши на электропочту!
Криптоинтерфейс. Часть 1
Де- или централизация?
Давай начнем с того, что определимся, какой сервис тебе предстоит пилить. Как это сделать? Начни с авторизации. Если ты гик, блокчейн специалист и любишь всё секурное – наверняка, создание аккаунта в твоём сервисе начинается с переписывания мнемоника на бумажку. Поздравляю, ты делаешь децентрализованный продукт. Но если ты хитропопый и хочешь хранить денежки пользователей на своих серверах под предлогом "без ключей, легко зарегистрироваться по email" – сервис твой централизованный. Какой делаешь ты?
Хай! Рассказываю всё, что тебе нужно знать о криптовалютных и блокчейн интерфейсах. Будет полезно всем: дизайнерам, проектировщикам, разработчикам и кому-то ещё.
Евгений Ивченко
В чём разница?
В децентрализованных сервисах каждый человек сам владеет своей криптовалютой и напрямую обменивается ею с другими участниками сети. Скачиваешь необходимый кошелек, записываешь свой ключ, прячешь в надежном месте, получаешь адрес, шаришь его друзьям, принимаешь от них монетки, радуешься. Всё, теперь ты крипто энтузиаст. Заметь, что никаких персональных данных у тебя не просили. Ты стал пользователем новой платежной системы анонимно.

Примерами таких сервисов являются все клиенты от самих же создателей: Bitcoin, Ethereum. К ним можно добавить сервисы от сторонних разработчиков: Electrum, MyEtherWallet.
Ну и, конечно же, есть сомнительные ресурсы – централизованные. С одной стороны, они упрощают пользователям жизнь: не нужно записывать ключи, можно быстро восстановить доступ к деньгам. А с другой – всё плохо: ваши средства всегда контролирует третья сторона, которая в любой момент может сломаться, соскамиться и кое-что ещё. Кроме того, такие сервисы работают с регуляторами (т.е. в интересах правительств), и любые операции потребуют подтверждения личности. К ним можно причислить все криптовалютые биржи: Bitfinex, Binance, Coinbase и др. А также кошельки: Freewallet, Cryptonator и др.
Про клиенты
Наконец, когда мы разобрались с азами, расскажу про то, какие клиенты бывают в этой технологии. Клиент это любой интерфейс, благодаря которому вы можете взаимодействовать с сетью. То есть создавать адреса, отправлять и принимать транзакции (платежи). Они представляют из себя веб, десктоп, мобайл и аппаратные кошельки. Далее я буду говорить только про децентрализованные сервисы, а сравнение с централизованными оставлю на потом, на следующие части. И так.
Веб
Веб-клиент – приложение, которое работает в браузере. Так как приложение децентрализованное, оно не хранит ваши ключи. А где хранит? Чаще всего в защищенном хранилище вашего браузера – localstorage. Пока ваши ключи лежат там, вы можете безопасно управлять своим кошельком. Не забудьте сохранить бэкап: он понадобится, когда вы зачистите браузер. Мало ли. Если разработчик кошелька адекватный, он не видит ваши ключи и работает с ними только в зашифрованном виде. Делать веб всегда проще и быстрее. Если пилишь – начни с него.
Мобайл
Мобильные клиенты – мобильные приложения под iOS, Android. С хранилищем ключей примерно такая же история, как и в вебе. Но хакнуть ключи намного сложнее. Советую: Coinomi, Jaxx.
Десктоп
Естественно, ставить такой клиент нужно непосредственно на комп или ноутбук с помощью установочного файла. Как и предыдущие товарищи, относительно безопасный со своим хранилищем. Топ это дефолтные клиенты от разработчиков. Но чтобы их использовать, нужно выкачать весь блокчейн, а это туева куча гигабайт.
Поэтому умельцы делают лёгкие кошельки – light wallet. Они скачали блокчейн заранее и поддерживают его работоспособность на своём сервере. А вы можете кидать в него запросы прямо из интерфейса по мере надобности, например, когда отправляете транзакцию. Попробовать: Exodus, Jaxx Desktop. Кстати, и веб и мобайл кошельки тоже легкие. Поэтому вы быстро скачиваете их на свои смартфоны.
Браузерные расширения
Удобно, когда серфишь среди DApps, и что-то быстро нужно купить. Расширения, форматом напоминающие мобильные кошельки, отлично вписались в браузеры. Как и веб, используют localstorage.
Если вам вдруг всё стало понятно, тогда мне стоило нарисовать другую иллюстрацию. На этом список заканчивается. Надеюсь, что теперь ты сможешь прикинуть, какое изобилие продуктов можно спроектировать, отрисовать и разработать.

Прикинул? А теперь давай окунемся в тот ад, который происходит в индустрии. Ничего не буду выдумывать, всё со скринами от лидеров рынка.
Когда про интерфейсы?
Тут вставлю небольшую подводку. Все эти клиенты имеют приблизительно одинаковый UX. Я уже писал выше: скачать/установить, получить секретную фразу (мнемоник), записать (не запишешь - потеряешь средства), задать пароль (чтобы зашифровать ключи), увидеть свой публичный адрес и пошарить друзьям, профит. Кроме того, можешь отправлять средства сам и редактировать комиссии, смотреть историю и пр. Обо всём этом я расскажу позже. Есть еще кошельки!
Аппаратные (железо)
Самый безопасный из доступных простому обывателю способ хранения и использования криптовалюты. Ключи генерируются и хранятся на устройстве. Чтобы управлять кошельком, подключаете к компьютеру. Отправка транзакций только после подтверждения PIN-кода на устройстве. Клиент – аналог десктопа. Тоже легкий, так как ходит на сервера разработчиков. Используйте Ledger.
Бумажный кошелек
Если бы бумага была вечной, я бы использовал только paper wallet. Нюансы. Баланс можно проверить в публичных блокэксплорерах. Для отправки транзакций придется импортировать кошелек в веб, мобайл или десктоп. Ещё лучше собрать транзакцию оффлайн, но это уже не про красоту.
Что творится с интерфейсами сейчас?
Что ты знаешь про деньги? Когда ты хочешь воспользоваться деньгами, ты достаешь из кармана карту или наличные и платишь. Их принимают везде. Вот и всё.

Что ты знаешь про крипту? Что твои пользователи знают про крипту? И ты и они столкнетесь с одной и той же проблемой – все существующие решения сделаны гиками для гиков. И когда я проектировал своей первый интерфейс, я не мог предположить, что всё будет настолько запутанно.

Первым делом, я решил завести кошелек. Тогда я слышал только про Bitcoin, поэтому нашел официальный установщик и принялся за дело. Во время установки мне предложили выкачать 100 Гб непонятных для меня файлов, что было сверх нормы для моего ноутбука. Это боль. Я плюнул и забил. На этом закончилось моё знакомство с Bitcoin, по сути так и не начавшись.
Спустя какое-то время я узнал, что существуют и другие кошельки, так называемые "лёгкие кошельки". Они обитают в вебе и можно завести себе адрес онлайн. Как я понял, тогда самым популярным был Blockchain Wallet. Во время регистрации у меня запросили e-mail, пароль, а вместо ключей дали какой-то ID, что меня очень насторожило. Децентрализацией и анонимностью там даже и не пахло.

Выяснялось, что вход возможен только с ID. Это единственный логин, а e-mail больше не котируется. После привычного подтверждения мыльника и входа с ID мы попадаем в святую святых – панель управления кошельком, где нас сразу окунают лицом в грязь, что мы нищеброды и везде у нас 0, 0, 0... И вообще, разработчики ответственности за кошелек не несут, вы уж тут сами как-нибудь разберитесь и доступы не просрите, иначе денег ваших не вернуть. Это тебе не банк!
Ну а раз у нас по нулям, тогда надо приобретать. Жмём "Buy & Sell". И вуаля! Снова плохие новости – ты не сможешь ничего купить, потому что большая часть стран не поддерживается провайдером. Помнишь, я говорил в самом начале, что ты стал крипто энтузиастом? Так вот, здесь он в тебе умер!
Кошельки предоставляют возможность зарегистрироваться любому, а вот уже внутри не покрывают потребности всех пользователей. Поэтому большей части приходится использовать сторонние обменники.

Если у тебя есть фиат (доллары, рубли и пр.), ты можешь найти того, у кого есть криптовалюта (bitcoin, ethereum и пр.) и совершить обмен. Вы встречаетесь онлайн или лично. Кроме того, есть специальные сервисы. Они отличаются лишь тем, что берут больший % за обмен + личные данные. Выглядит это примерно так:
1-3 дня – так себе перспектива, но выбирать не приходится. Деньги будут зачислены на адрес кошелька, который вы создали в Blockchain Wallet. Дальше используете монеты как пожелаете. Например, отправьте их другу. И здесь наступило время работы с длинными адресами, комиссиями и пр.
Почему такие странные адреса? Как отправить деньги другу из списка контактов? Я могу менять комиссию? Еще и настраивать комиссию? sat/byte? А сколько лучше? Рег. 8 Приоритет 19? Wtf?

Это вопросы ваших пользователей. Да, адреса действительно выглядят странно и имеют такой громоздкий формат:

1F1tAaz5x1HUXrCNLbtMDqcw6o5GNn4xqX
bitcoincash:qzgy20ljfu24v8v4msnzpnxst5gpm930lcmuekam2q
0xc9c390d82a3eda435B344CbFc983870bc1660217
rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn

Вы не найдете кошелек друга в сети, потому что адрес не привязывается к имени или каким-либо другим идентификаторам его владельца. На то она и анонимность.

С горем пополам отправляем транзакцию. После чего возникает ещё ряд вопросов.
Первые впечатления от всего этого: "Верните мне мои деревянные рубли, ваш дурацкий биткоин не работает!"

И если вам кажется, что я просто нашёл плохой пример, тогда давайте посмотрим на не менее популярный кошелек для другой валюты. На арену выходит MyEtherWallet.
Сходу нас предупреждают, что кошелек это никакой не банк. Что вы и только вы несёте ответственность за свои деньги, мы вам ничего не восстановим. И если вы не прочитаете все ПРЕДУПРЕЖДЕНИЯ – вы обречены! Закрываем, смотрим в шапку:
Не очень то дружелюбная встреча, правда? Но не стоит беспокоиться, о вас позаботились, просто вернитесь в руководство:

1. Установите расширения EAL, MetaMask, Cryptonite или MyEtherWallet для Chrome, чтобы блокировать фишинговые сайты.

2. Внимательно проверьте адрес сайта, на котором вы находитесь.

3. Название нашей компании MYETHERWALLET INC должно подсвечиваться зелёным цветом в адресной строке.

4. Не доверяйте и проверяйте сообщения или ссылки в Twitter, Reddit, Fb...

5. Используйте блокировщик рекламы для своего браузера.

6. Для лучшей безопасности установите офф-лайн версию нашего кошелька.

7. Всегда устанавливайте двухэтапную аутентификацию.

...

19. Если вы случайно посетили вредоносный сайт – немедленно удалите историю и очистите кэш браузера.

20. И наконец, включите свои мозги!
Ну а дальше мы видим поле для ввода пароля, как будто мы уже были на этом сайте. Потом окажется, что таким образом на этом сайте создаются кошельки, далее повторяется знакомый сценарий с адресами, комиссиями и прочими тонкостями.

В сухом остатке получаются запутанные интерфейсы, где крипто разработчики, пытающиеся помочь всему миру, совсем не помогают. Со временем понимаешь, что все эти гиковские штучки – полезный инструмент, ради которого приходится идти на жертвы. И если речь заходит о безопасности и комфорте, тогда жертвуют комфортом. Но такое количество технических особенностей приводит к не менее важной проблеме – ошибкам пользователей. Об этом я буду писать позже.

Надеюсь, что после серии моих статей девелоперы и дизайнеры начнут задавать себе вопрос: А сможет ли рядовой пользователь интуитивно взаимодействовать с технологией?

Увидимся!
© 2018 Шакка
Вакансии