Перевод Кластер критической децентрализации 36c3 - Аппаратный кошелёк RMX

Тема в разделе "Журналы о Monero", создана пользователем Mr. Pickles, 25 ноя 2020.

  1. Mr. Pickles

    Команда форума Модератор Редактор

    Регистрация:
    11 сен 2017
    Сообщения:
    891
    Симпатии:
    242


    Аннотация


    Мы разрабатываем аппаратное устройство для радикальных сторонников принципов приватности и хотим немного рассказать об этом.

    Стенограмма выступления

    Диего: Секундочку, да, мы готовы. Их игра окончена, они проиграли, как обычно. И я готов передать микрофон Павлу. Он готов помочь мне и рассказать нам об аппаратном кошельке. Начнём.

    Павел: Окей, спасибо, Диего. Меня хорошо слышно? Отлично. Здесь всё слышится иначе, чем в зале. Привет, меня зовут Павел. Я собираюсь рассказать вам о нашем проекте по разработке кошелька RMX. Естественно, что я не один занимаюсь этой работой. В проекте участвуют и многие другие. Но я здесь, чтобы рассказать вам о нём.

    Итак, сегодня я хотел бы обсудить четыре ключевых момента. Первый — что мы делаем для того, чтобы проект развивался, затем поговорим об аппаратном мессенджере, который мы пытаемся реализовать, также мы пытаемся создать кошелёк Monero, и, наконец, поговорим об аппаратной безопасности проекта.

    Создание аппаратного обеспечения само по себе является сложным процессом. Не знаю, пытался ли кто-либо из вас создать что-то подобное, причём делать это в стиле опенсорс. К тому же не так просто найти контрибьюторов и разработчиков, которые станут работать бесплатно, станут заниматься всем этим. При этом они оставляют коммиты, которые имеют смысл. И в конечном счёте выясняется, что в качестве результата мы получаем лишь комбинацию из депрессии и бессонных ночей тяжелой работы. Так что это всегда непросто. Мы много думаем над последующими шагами, потому что всякий раз, когда вы работаете над чем-то, у вас должно быть, по крайней мере, чёткое представление о том, что последует за этим. В противном случае люди начинают задавать вопросы касательно того, что они должны делать и почему, и их деятельность необходимо как-то координировать. Во избежание подобного истощения сил требуется иметь какую-то политику, и это очевидно. И, наконец, финансирование. Наилучший вариант — это когда вам вообще не требуется финансирование. Но в случае с аппаратным обеспечением всё снова сложно, так как вы используете вполне физические ресурсы: вы создаёте платы, вы занимаетесь пайкой, вам необходимо заказывать детали, и всё это довольно дорого, если сравнивать с написанием кода, так как код можно писать и бесплатно.

    Итак, у нас имеется устройство, и, поскольку мы стараемся быть очень экономными в разработке, мы создаём устройство в двух экземплярах. Вот так оно выглядит, у него есть буквенно-цифровая клавиатура, и первое, что мы реализовали на этом устройстве, — аппаратный мессенджер. Он работает следующим образом: у вас есть два устройства, вы подключаете их к USB, вы пишете сообщение на одном устройстве, как обычное SMS при помощи старой клавиатуры Nokia, если помните, как это делалось, а затем вы отправляете это сообщение через интернет. Мы использовали протокол XMPP, поскольку с ним очень просто работать. Но мы открыты и для других вариантов. Так что, если вы считаете, что разбираетесь в мессенджерах и что тут можно использовать что-то другое, пожалуйста, сообщите нам, и впоследствии мы реализуем это. А на данный момент мы можем передавать сообщение с одного устройства на другое, это сообщение зашифровано, и оно покидает устройство в виде такого двоичного блоба, так что никто не сможет прочитать его.

    Теперь о реализации кошелька Monero. Для тех, кто не знает, как работает эта концепция: по сути, Monero использует два ключа, надеюсь, большинству присутствующих это известно, но я всё же расскажу вкратце. Есть блокчейн Monero, представляющий собой некое скопление данных, а также есть ключи: секретный ключ просмотра и секретный ключ траты, которые содержатся в кошельке. И кошелёк для совершения определённой операции берёт определённый ключ. Например, если вы хотите определить, какой из выходов принадлежит вам, то используете секретный ключ просмотра, а если желаете подписать транзакцию, то берёте секретный ключ траты, или же вы используете секретный ключ траты, чтобы выяснить, какой из выходов тратится. Таким образом, чтобы реализовать кошелёк Monero, необходимо знать, как используются секретный ключ просмотра и секретный ключ траты.

    Собственно, вот, о чём я и говорил.

    Итак, прежде всего, разница между Bitcoin и Monero состоит в том, что в блокчейне Bitcoin всё прописано простым текстом, в то время как в блокчейне Monero всё зашифровано. Поэтому, если вы решили произвести сканирование, узнать, сколько выходов принадлежит вам, узнать баланс и прочие подобные вещи, вам придётся произвести массу криптографических операций. По сути, вам придется взять какие-то данные, затем «раскрыть» их, воспользовавшись некими криптографическими методами, и только тогда вы сможете увидеть, принадлежат вам выходы или нет, ну и так далее. И всё это требует огромных ресурсов, большой вычислительной мощности, и поэтому, как правило, различные производители, работающие в криптовалютной области, предпочитают производить публичное сканирование блокчейна Monero. А публичное сканирование означает, что они берут этот ключ просмотра и выкладывают его на хост, и эта часть сканирование производится на вашем ПК. А затем, когда вы выясните, какие из выходов принадлежат вам, в игру вступит приватный ключ, который используется для снятия маски и прочих операций. И именно в этот момент мы теряем характерную прелесть протокола Monero, поскольку он предполагает приватность, а, раскрывая ключ просмотра, мы его некоторым образом калечим. Вот почему мы захотели создать аппаратный кошелёк, который бы осуществлял приватное сканирование.

    Проблема заключается в том, что при разработке аппаратного кошелька желательно использовать простой процессор, который легко программируется и который не будет делать больше, чем вам требуется, и в то же самое время вам требуется вычислительная мощность. Вот почему мы работаем с микрочипом CEC1702. Это, по сути, Cortex M4F с блоком, используемым для аппаратного ускорения определённых функций, содержащихся в коде. То есть мы пытаемся сделать так, чтобы этот простой процессор мог сканировать блокчейн Monero и выполнял прочие операции, и используем для этого некоторые функции ускорения. Эти цифры показывают, что мы можем реально достичь по нашей оценке. У нас уже есть рабочая версия кошелька, но она немного медленнее, но нам ещё есть куда расти. Так что я уверен, что мы приблизимся к этим цифрам. И тут тоже есть большая проблема. Сейчас в основной сети Monero в блок входит, возможно, семь транзакций. Сейчас, может, для нашего проекта этого и достаточно, но в будущем, когда транзакций станет больше, нам потребуется что-то побыстрее. Но на данный момент дела обстоят именно так.

    И теперь немного об аппаратной безопасности CEC1702. У этого микрочипа есть функция безопасной загрузки. Он загружает только подписанные образы. Безусловно, он уязвим с точки зрения кратковременных отказов, как и любой другой из процессоров Cortex m4. Этих проблем, связанных с безопасностью, можно избежать, используя фразы-пароли. Можно использовать свой генератор случайных чисел, который также имеется у нас на плате. Мы используем собственный генератор случайных чисел, а также пару элементов, которые для обеспечения безопасности объединяют случайные значения для создания мнемонической фразы. Есть направления, в которых нам бы хотелось всё улучшить, но это те виды возможных атак, которые, как правило, производятся на Cortex m4, и нам бы хотелось нейтрализовать их, используя соответствующие элементы, обеспечивающие безопасность, а также собственный генератор случайных чисел.

    А сейчас пара слов о самом проекте. Мы настолько скромны с точки зрения управления, что я иногда даже сомневаюсь, существуем ли мы вообще. Но мы уже работаем над этим в течение полутора лет, нами было создано пять прототипов, и последний прототип, должен сказать, вполне рабочий. И нам бы хотелось продолжать нашу работу, и если выяснится, что этого недостаточно с точки зрения скорости и вычислительной мощности, возможно, мы перейдём на FPGA или, также возможно, в ближайшем будущем начнём экспериментировать с RISK-V, кто знает. Но в данный момент мне бы хотелось использовать указанный микрочип, поскольку он обеспечивает достаточную вычислительную мощность, а если её не хватит, мы повысим её, воспользовавшись чем-то более быстрым. На этом всё. Если у вас есть вопросы… нет вопросов. А, настало время Диего.

    Диего: Настало моё время! Огромное спасибо, Павел. Давайте поаплодируем ему ещё раз. Хорошо, достаточно. А теперь поаплодируем в третий раз. И это всё, что ты заслужил. Ещё раз большое спасибо, Павел, а мы движемся дальше и провожаем его со сцены.

    ---

    Источник: Critical Decentralisation Cluster 36c3 - RMX Hardware Wallet (Pavel Polach)

    Перевод:
    Mr. Pickles (@v1docq47)
    Редактирование:
    Agent LvM (@LvMi4)
    Коррекция:
    Kukima (@Kukima)
     
    #1 Mr. Pickles, 25 ноя 2020
    Последнее редактирование: 25 ноя 2020
  • О нас

    Наш сайт является одним из уникальных мест, где русскоязычное сообщество Monero может свободно общаться на темы, связанные с этой криптовалютой. Мы стараемся публиковать полезные мануалы и статьи (как собственные, так и переводы с английского) о криптовалюте Monero. Если вы хорошо владеете английским (или можете писать собственные статьи/мануалы) и хотите помочь в переводах и общем развитии Monero для русскоязычной аудитории - свяжитесь с одним из администраторов.