Перевод Информация по аудиту денежных средств и связанных с этим допусками и компромиссами

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

  1. Mr. Pickles

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

    Регистрация:
    11 сен 2017
    Сообщения:
    714
    Симпатии:
    221
    Довольно часто мы сталкиваемся с вопросами и проявлениями озабоченности, связанными с аудитом общей денежной массы и с тем, как подобное реализуется различными проектами. В этом посте будут кратко и информативно освещены компромиссы, на которые проектам приходится идти при разработке своих решений, чтобы обеспечить стабильность прироста денежной массы. Мы умышленно постараемся избежать некоторых технических подробностей, которые, несмотря на свою важность и тонкость, могут озадачить многих читателей.

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

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

    Другие проекты намеренно используют иные решения, в том числе математические. В случае с активами, более ориентированными на обеспечение взаимозаменяемости, суммы, как правило, просто нельзя увидеть. Возьмём, к примеру, такие популярные проекты, как Monero или ZCash (защищённую версию этой валюты). Суммы транзакций скрываются при помощи криптографических конструкций, называемых обязательствами Педерсена. Чтобы продемонстрировать баланс транзакции, отправитель генерирует подпись или доказательство, использующее «умное» (но хорошо понятное) арифметическое решение для таких скрытых сумм, демонстрирующее сети, что никаких посторонних активов создано не было. Это обеспечивает неотличимость активов, которая так важна с точки зрения взаимозаменяемости, безопасности и анонимности.

    Чтобы понять все риски, связанные с прозрачными и «скрытыми» решениями, давайте рассмотрим три (намеренно выбранных) общих типа возможных проблем:
    • нарушение криптографической стойкости;
    • слабые места в реализации, ведущие к явной инфляции;
    • слабые места в реализации, ведущие к скрытой инфляции.
    Первый класс проблем заключается в нарушении фундаментального условия криптографической стойкости. Современная цифровая безопасность в значительной мере полагается на то, что решение определённых криптографических задач (например, задачи дискретного логарифмирования) является довольно сложным. Невозможно доказать, что эти задачи сложны, но десятки лет исследований и применения однозначно говорят об этом. Если бы злоумышленник легко мог решить задачу дискретного логарифмирования, он бы без труда смог бы и восстановить приватные ключи Bitcoin, Ethereum, ZCash или Monero и украсть средства. Но в случае с общей денежной массой решение соответствующих задач позволяет указать иную сумму в доказательстве Педерсена, а не ту, что была задана изначально, и таким образом обмануть сеть, что в конечном счёте приведёт к инфляции актива, скрывающего суммы транзакций. Если кратко, нарушение криптографической стойкости не представляет собой практического риска. Вычислительная сложность, не позволяющая провернуть такой трюк (исключающая спорный и едва видимый на горизонте прорыв, который подорвёт безопасность всей сети интернет), является абсурдно высокой. Настолько высокой, что в данном случае смело можно говорить о вселенском масштабе сложности.

    Второй класс проблем связан со слабыми местами в реализации, ведущими к открытой (явной) инфляции. Такие недостатки могут принимать различную форму и иметь любой масштаб, и одинаково влияют как на прозрачные активы (такие как Bitcoin, как в этих двух отдельных случаях), так и на срытые активы (такие как Monero). В одном из случаев с Bitcoin инфляция имела место, но узлами было принято решение разветвить блокчейн, чтобы восстановить «раздутые» средства. В другом случае, произошедшем с Bitcoin, и в примере с Monero в результате проверки выяснилось, что никакой инфляции не случилось.

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

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

    Примечательно то, что использование прозрачного актива само по себе не гарантирует безопасности средств. Да, действительно, прозрачность общей денежной массы теоретически подразумевает возможность выявления инфляции при соответствующей реализации, но корректировка инфляции означала бы «откат» транзакций, в результате чего пострадали бы честные пользователи. Кроме того, прозрачные активы не будут защищены от нарушения (хоть и маловероятного) допуска криптографической стойкости, в результате которого появилась бы возможность восстановления приватных ключей и кражи средств.

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

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

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

    Источник: About supply auditability

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

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