Перевод Monero — обзор за 2018 год

Тема в разделе "Статьи", создана пользователем Mr. Pickles, 21 мар 2019.

  1. Mr. Pickles

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

    Регистрация:
    11 сен 2017
    Сообщения:
    414
    Симпатии:
    152
    Опубликовано: 12 февраля 2019 г.

    2018 год закончился. В течение всего этого года Monero демонстрировала эффектный рост экосистемы, значительно повысилось удобство её использования, а также были реализованы критически важные улучшения протокола. В этом посте будут кратко описаны достойные внимания улучшения, которые произошли в 2018, а также некоторые сложности, с которыми пришлось столкнуться.

    Проблемы

    Несмотря на невероятное развитие сообщества и протокола, как всегда, не обошлось без возникновения неизбежных и непредвиденных проблем. Устранение таких препятствий является критически важной частью любого цикла разработки. Здесь кратко рассматриваются самые значительные проблемы, которые возникли в связи с разработкой Monero в 2018 году.

    Во-первых, в начале года в сети было обнаружено присутствие ASIC-майнеров. Резко возрос хешрейт, и рост продолжался вплоть до того момента, когда выяснилось, что 80-90% сети использует специализированное аппаратное обеспечение, являющееся серьёзной угрозой для безопасности сети. Социальный договор Monero предполагает эгалитарный тип майнинга, и сообществом было решено изменить алгоритм доказательства работы (PoW) таким образом, чтобы он не работал с ASIC-устройствами. Изменение алгоритма PoW было реализовано во время запланированного обновления протокола, которое состоялось в апреле 2018. В результате из сети были успешно исключены все ASIC-майнеры, которые в ней присутствовали. Второе изменение алгоритма PoW состоялось во время запланированного обновления протокола в октябре как превентивная мера и в качестве сдерживающего фактора.

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

    Третьей проблемой стали форки Monero (такие как Monero Original и Monero Classic), сохранившие ряд выходов транзакций (TXO), тем самым поставив под угрозу анонимность пользователей. Например, если Элис тратит свой выход в блокчейне Monero Classic в кольце A, B, C, D, E (где A является реальным входом), а затем потратит тот же самый выход в блокчейне Monero в кольце A, F, G, H, I (где A так же будет являться реальным входом), наблюдатель (проанализировав оба блокчейна) может прийти к разумному заключению, что был потрачен именно вход A, то есть определить реальный вход. Теперь другой пользователь использует выход A, принадлежавший Элис, в качестве ложного, уровень их анонимности будет снижен, так как выход из-за действий Элис стал устаревшим, чтобы использовать его в качестве ложного. К счастью, разработчиками Monero было добавлено несколько мер, позволяющих избежать этого (например, пользователь теперь может по своему усмотрению использовать произвольное кольцо), что сделало возможность вышеуказанного анализа по большей части бесполезной. Кроме того, пользователь может воспользоваться специальным инструментом, который гарантирует, что в качестве ложных выходов не будут использованы те выходы, в отношении которых будет можно доказать, что они были потрачены (такие, например, как выход Элис из вышеописанной транзакции). Это значительно снизило эффект от повторного использования образов ключей, например, в случае, когда пользователь Monero предъявляет их Monero Classic. Последующее исследование Джастина Эхренхоффера (Justin Ehrenhofer) подтвердило их эффективность.

    Фундаментальные усовершенствования

    Самым значительным из фундаментальных улучшений, реализованных в 2018 году, стали Bulletproofs. Bulletproofs, которые успешно прошли аудит, проведённый двумя знаменитыми фирмами, работающими в области безопасности (Kudelski и Quarkslab), и одним независимым исследователем (Бенедиктом Бюнцем (Benedikt Bünz), ведущим автором документа по Bulletproofs), являются гораздо более эффективным типом доказательств диапазона, чем неоспоримые доказательства диапазона Борромео. Доказательства диапазона гарантируют (при наличии грамотного математического решения), что злоумышленник не сможет взвинтить эмиссию монет, просто отправляя отрицательную сумму, оставляя сами деньги на положительном балансе.

    Критическими параметрами, которые было необходимо оптимизировать в доказательствах диапазона, были размер доказательства и время верификации — Bulletproofs превзошли доказательства диапазона Борромео в обеих этих категориях. Размер типичной старой транзакции (с двумя входами и двумя выходами), использовавшей доказательства диапазона Борромео, составлял примерно 13 Кбайт. После реализации Bulletproofs он сократился примерно на 80% и теперь составляет 2,5 Кбайта. Помимо этого, верификация блоков транзакций, использующих Bulletproofs, происходит примерно в сорок раз быстрее, чем у унаследованных доказательств диапазона Борромео, в то время верификация отдельных транзакций происходит примерно в пять раз быстрее. Повышение скорости верификации блоков транзакций важно для людей, которые синхронизируются с блокчейном, в то время как повышение скорости отдельных транзакций преимущественно влияет на узлы, которые 24 часа в сутки и 7 дней в неделю проводят верификацию транзакций в режиме реального времени (включая майнинговые узлы).

    Новой особенностью, реализованной в 2018 году, стали подадреса. Подадреса имеют сходство с HD (иерархически детерминированными) кошельками Bitcoin, где пользователь может создать неограниченное количество публичных адресов, соответствующих одному и тому же приватному ключу. В случае с Monero эти так называемые подадреса начинаются с 8. Их нельзя связать с основным публичным адресом (с тем, который начинается с 4) и всеми остальными подадресами. Подадреса серьёзно затрудняют возможность связывания вне блокчейна, а также значительно повышают уровень анонимности и опыта взаимодействия пользователей Monero. Ранее, если пользователь не использовал множество различных кошельков, ему приходилось давать один и тот же публичный адрес каждому провайдеру услуг, с которым он хотел сотрудничать. Это позволяло таким провайдерам связывать пользователя с различными поставщиками услуг путём перекрёстной проверки их адресов. Более того, потенциально пользователя можно было привязать, если он использовал один и тот же адрес для проведения множества различных транзакций с одним и тем же провайдером услуг (например, как в случае с ShapeShift, пока от этой биржи не потребовали соблюдения правил KYC/AML). Подадреса делают такой вид анализа практически бесполезным. Помимо подадресов, была реализована возможность создания подаккаунтов, что позволило пользователю создавать множество аккаунтов (с опцией создания множества подадресов под каждым аккаунтом). Это позволяет разделять финансы, так как средства с различных аккаунтов нельзя объединить (тем не менее пользователь по-прежнему может перенести средства с аккаунта A на аккаунт B).

    В 2018 в основной сети также были реализованы мультиподписи. В случае с Monero multisig-адреса неотличимы от обычных адресов, а транзакции, использующие мультиподписи, неотличимы от обычных транзакций. Отправители не могут прийти к заключению, используют они multisig или обычный адрес. Подобным образом получатели не смогут определить, пришла транзакция с multisig или с обычного адреса. Изначально multisig были реализованы в формате N/N и (N-1)/N (где числитель является числом необходимых подписантов, а знаменатель — общим количеством потенциальных подписантов). Однако позднее в этом же году в репозитории Monero был выложен код, который позволял пользователям желаемое число необходимых подписантов и общее число подписантов. В конце года в кодовый репозиторий Monero была включена Система multisig-сообщений. После этого Exantech заявили, что собираются выпустить кошелёк с поддержкой мультиподписей. Оба проекта направлены на значительное повышение пользовательского опыта с точки зрения создания multisig-кошелька Monero, а также проведения multisig-транзакций.

    Равным образом в 2018 году увидело свет множество усовершенствований параметров анонимности. Во-первых, размер кольца, который обозначает общий размер кольца (то есть реальный вход и все ложные выходы), был изменён до статического параметра. Все пользователи сети Monero при проведении транзакций теперь используют один и тот же размер кольца. Это не позволяет пользователям постоянно использовать атипичный размер кольца, что может негативно сказаться на их анонимности и на анонимности других пользователей. Постоянный размер кольца гарантирует, что транзакции станут более однородны, а также усилит анонимность всех пользователей сети. Во-вторых, в рамках запланированного апрельского обновления протокола (минимальный) размер кольца увеличился с 5 до 7, а затем, во время запланированного октябрьского обновления протокола, до 11. В-третьих, теперь при проведении транзакции входы сортируются, что позволяет избежать «создания профиля» кошелька. Раньше наблюдатель мог определить, какой кошелёк принадлежит пользователю, взглянув, как отсортированы входы. В-четвёртых, кошелёк теперь выбирает ложные выходы в соответствии с определённым гамма-распределением, что позволяет лучше симулировать поведение пользователя, связанное с тратами. Это улучшение соответствует рекомендациям, которые были даны после проведения исследования по паттернам совершения трат пользователями.

    Удобство использования

    В 2018 году удобство использования повысилось очень заметно. В официальном CLI-кошельке появилось множество новых функций, таких как возможность шифрования мнемонической фразы, состоящей из 25 слов, возможность блокировки выходов, подадреса и подаккаунты, было реализовано множество возможностей, улучшающих контроль над монетами, а также многие и многие другие, которые мы не станем перечислять, так как список получится очень длинным. Был пересмотрен и во многом оптимизирован пользовательский интерфейс GUI-кошелька, что в значительной степени улучшило опыт взаимодействия. Кроме того, были улучшены многие характеристики как CLI, так и GUI-кошелька (наиболее заметно была повышена скорость их работы), был исправлен ряд ошибок, а также реализован новый алгоритм снятия комиссий. Чуть подробнее о последнем улучшении: новый алгоритм снятия комиссий гарантирует, что кошелёк будет брать низкоприоритетные комиссии, если активность в сети будет достаточно низкой (что определяется активностью в пуле транзакций и размером последних десяти блоков). Это гарантирует, что пользователь не будет выплачивать избыточных комиссий за проведение транзакций. Кошелёк переключится на приоритет, установленный по умолчанию, когда активность в сети станет относительно высокой, и это, в свою очередь, гарантирует, что пользователи не будут испытывать значительных задержек. Как официальный CLI, так и GUI был интегрирован в Ledger (популярный аппаратный кошелёк). В демон-программу (monerod — программное обеспечение, используемое для запуска собственных локальных узлов) было привнесено невероятное множество положительных изменений, а также в ней был исправлен ряд ошибок. В результате сократилось время синхронизации и значительно повысилась стабильность работы. Помимо этого, была добавлена новая характеристика, позволяющая пользователям осуществлять начальную загрузку через удалённый узел, пока локальная демон-программа синхронизируется с блокчейном в фоновом режиме. Другими словами, кошелёк временно подсоединяется к удалённому узлу, пока локальный узел не будет полностью синхронизирован. Это обеспечивает немедленный доступ, но при этом сохраняются все преимущества использования локального узла. Наконец, было положено начало для реализации процесса обрезания блокчейна. Даже несмотря на то, что обрезание в случае с Monero будет не таким эффективным, как в случае с криптовалютами на базе Bitcoin, всё равно удастся удалить значительный объём данных, и в этой области наблюдается заметный прогресс.

    Monerujo, сторонний кошелёк для Android, был интегрирован в Ledger. Также были значительно улучшены его характеристики и опыт взаимодействия. В 2018 году Cake Wallet, MyMonero и X wallet выпустили кошельки Monero для iOS. Помимо этого, MyMonero был выпущен ряд десктоп-кошельков для Linux, MacOS и Windows, а Edge Wallet (кошелёк, поддерживающий ряд различных монет) реализовал поддержку Monero для своих кошельков под iOS и Android. XMRwallet выпустил сетевой кошелёк с поддержкой TOR / лукового шифрования. Наконец, в репозиторий кода Monero был добавлен запрос на принятие изменений, который обеспечит предварительную поддержку Trezor (T model).

    Экосистема

    Экосистема Monero росла и развивалась в течение всего 2018 года. Во-первых, был создан репозиторий под названием Monero Ecosystem, предназначенный для сбора связанных с Monero проектов, которые создаются и управляются членами сообщества. Примером могут служить pymonero (является форком monero-project/monero, направленным на реализацию привязок Python C++), monero-java-rpc (вариант реализации кошелька Monero в Java) и submit-tx-via-tor (Bash-скрипт для проведения «сырых» транзакций Monero через Tor). Во-вторых, членами сообщества была создана рабочая группа реагирования на угрозы, связанные с использованием вредоносного программного обеспечения (Monero Malware Response). Целью группы является помощь людям, пострадавших от вредоносного программного обеспечения, которое потенциально использовалось для майнинга Monero. В-третьих, рабочая группа по локализации Monero (Monero Localization Workgroup) перешла на новую переводческую платформу под названием Pootle, которая в значительной мере упростила процесс перевода. В-четвёртых, была создана рабочая группа по распространению взглядов (Monero Outreach). Работа этой группы направлена на продвижение Monero среди конечных пользователей путём написания статей и коротких обзоров, создания листовок с основными фактами о Monero, видеороликов. Также группой используются средства «партизанского маркетинга». В-пятых, вышла книга Mastering Monero, в которой сконцентрирован большой объём информации по Monero, поэтому книга в доступной форме позволит понять заинтересованному читателю все вещи, связанные с Monero. Сначала появилась твёрдая копия книги, которая стоила примерно $20. Бесплатный электронный вариант книги появится в 2019 году. Кроме того, весь доход с продажи книги будет пожертвован на развитие проекта Monero. В-шестых, одним из членов сообщества был создан проект Monerostuff, целью которого является обучение новичков тому, что такое Monero. В-седьмых, появился проект Monerodocs, направленный на улучшение документации. И наконец, было объявлено о разработке Tari, «децентрализованного протокола управления активами, который будет построен на базе Monero. Его можно считать чем-то вроде «цветных монет» или CounterParty, но применительно к Monero. Также протокол более масштабируем (то есть он не использует встроенного механизма консенсуса)». Помимо этого, для работы над протоколом Monero была создана лаборатория Tari. Вот цитата из оригинального объявления:

    Чем это выгодно для Monero?

    Наши инвесторы верят в то, что мы стремимся создать с Tari. Точно так же они уверены в Monero в качестве ведущей мировой анонимной цифровой валюты, а также в качестве базового уровня, на основе которого можно строить проекты. Поэтому мы используем имеющийся у нас капитал не только для разработки протокола Tari, но и для улучшения различных аспектов стека программ и экосистемы Monero.

    Рассмотрим три области, которые могут служить примером основной работы команды Tari Labs в следующем году:
    • Наши исследователи будут работать в сотрудничестве с Исследовательской лабораторией Monero с целью выработки способов улучшения прохождения блоков и транзакций Monero. Это повысит масштабируемость в рамках блокчейна, а также позволит ускорить начальную синхронизацию узлов. Разработчики Tari Labs также помогут сообществу разработчиков Monero в реализации некоторых или всех этих улучшений.
    • Разработчики Tari Labs в сотрудничестве с исследователями Tari Labs будут работать над созданием и реализацией механизма атомных свопов, который изначально позволит совершать атомные свопы между Monero и другими криптовалютами, такими как Litecoin, но позднее также будет использоваться для атомных свопов между Monero и активами, выпускаемыми на Tari.
    • Разработчиками Tari Labs будет вестись работа над реализацией маршрутизатора Lightning Network, поддерживающего как Bitcoin, так и Monero, что даст Monero преимущество, связанное с дополнительной анонимностью вне блокчейна, которое обеспечивает LN.
    Помимо этого, проект Tari планирует выработать способы более прямой поддержки разработки Monero в будущем посредством создания хабов разработки по всему миру, где люди смогут подавать заявки на получение грантов, которые позволят им работать над Monero или Tari в течение какого-либо времени. Данная концепция, несмотря на то, что она пока находится на раннем этапе становления и далека ещё от реализации, даст людям возможность делать свой вклад в кодовую базу, исследования и экосистему Monero на более регулярной и полномасштабной основе.

    Несмотря на то, что было ещё много других улучшений, о них не будет сказано в этом посте из соображений краткости изложения. Более подробный список исторических обновлений можно найти через наш аккаунт на Twitter или в кофе-чатах Monero. Почитав твиты, вы получите краткий обзор того, что произошло в 2018 году.

    В целом это был яркий (и наполненный событиями) год для Monero. Многое было сделано, и ещё больше предстоит сделать. Путь к тому, чтобы сделать нашу криптовалюту самой анонимной, может оказаться долгим и трудным, но мы надеемся, что вы продолжите это путешествие вместе с нами!

    P.S. Исследовательская лаборатория Monero вскоре предоставит собственный отчёт за прошедший год, поэтому события, связанные с ними, были исключены из этого блога.

    Источник: Monero - 2018 Year in Review

    Перевод:
    Mr. Pickles (@v1docq47)
    Редактирование:
    Agent LvM (@LvMi4)
    Коррекция:
    Kukima (@Kukima)
     
    MoneroRus и LeD XIII нравится это.
  • О нас

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