О независимости пути
Автор: Vitalik Buterin
Исходное название: 《О независимости пути》
Дата публикации: 22 июля 2017 года
Предположим, кто-то подходит к вам и начинает кричать, что он придумал, как создать источник бесконечной свободной энергии. Его план выглядит следующим образом. Сначала вы получаете космический корабль на низкую околоземную орбиту. Там гравитация Земли довольно высока, поэтому космический корабль начнет резко ускоряться к Земле. Этот космический корабль ставит себя на орбиту, чтобы почти не зацепить атмосферу Земли, а затем продолжает лететь в далекое космос. В космосе гравитация ниже, поэтому космический корабль может лететь выше, прежде чем снова начнет падение. Когда он падает, он движется по изогнутому пути к Земле, чтобы максимизировать время на низкой орбите, максимизируя ускорение от высокой гравитации, чтобы после прохождения Земли лететь еще выше. Поднявшись достаточно высоко, он пролетает через атмосферу Земли, замедляя себя, но используя остаточное тепло для питания термоядерного реактора. Затем он возвращается к первому шагу и продолжает.
Что-то вроде этого:

Теперь, если вы знакомы с ньютоновской динамикой, вы, вероятно, сразу поймете, что этот план — полная чепуха. Но как вы это знаете? Вы можете сослаться на симметрию и сказать: "Смотрите, для каждого сегмента орбитального пути, где вы говорите, что гравитация дает вам высокое ускорение, есть соответствующий сегмент пути, где гравитация дает вам такое же высокое замедление, так что я не вижу, откуда берется чистая выгода". Но предположим, что этот человек настаивает. "Ах," говорит он, "но в этом сегменте с высоким ускорением ваша начальная скорость очень низка, поэтому вы проводите много времени внутри, а в соответствующем сегменте ваша входящая скорость очень высокая, поэтому вы проводите меньше времени на замедлении". Как вы действительно, в конечном итоге, докажете, что он не прав?
Один из способов — углубиться в математику, вычислить интегралы и доказать, что предполагаемая чистая выгода на самом деле полностью равна нулю. Но есть и более простой способ: осознать, что энергия независима от пути. То есть, когда корабль перемещается от точки к точке, где точка ближе к Земле, его кинетическая энергия определенно возрастет, потому что его скорость увеличивается. Но поскольку общая энергия (кинетическая плюс потенциальная) сохраняется, а потенциальная энергия зависит только от положения корабля, а не от того, как он туда попал, мы знаем, что независимо от того, какой путь выбирает космический корабль, как только он указывает, общая кинетическая энергия будет полностью одинаковой.

Разные пути, одно и то же изменение энергии
Кроме того, мы знаем, что прирост кинетической энергии от точки также не зависит от пути, по которому вы идете: в любом случае он полностью равен нулю. Иногда возникает беспокойство о сделках на блокчейне (то есть полностью автоматизированный механизм на блокчейне, который всегда доступен для тех, кто хочет обменять один токен на другой).
Например, позвольте мне процитировать недавний пост, обсуждающий эту проблему в контексте Bancor:
Цена, которую Bancor предлагает для токенов, не имеет ничего общего с реальным рыночным равновесием. Bancor всегда будет отставать от рынка, и это истощит его резервы. Простого мысленного эксперимента достаточно, чтобы проиллюстрировать проблему. Предположим, на рынке начинается паника вокруг X. Безосновательные слухи о вашей системе заполоняют социальные сети. Предположим, люди уверены, что ваш CEO сбежал на удаленный остров без экстрадиции, ваш CFO постоянно присваивает средства, а ваш CTO покупает наркотики на темном рынке и отправляет их на свой рабочий адрес, чтобы сделать кокаин ------ как куча белого порошка на его столе. Хуже того, предположим, вы знаете, что эти обвинения ложные. Их распространяет армия троллей, манипулирующая компанией без продукта, чья бизнес-стратегия заключается в том, чтобы остановить поток монет у всех. Bancor будет предлагать постоянно снижающуюся цену на токены X во время банковского паники, пока у него не останется резервов. Вы будете наблюдать, как паника на рынке берет верх, поглощая ваши резервы. Помните, люди уверены, что в этом случае реальная стоимость X равна 0, и формула Bancor гарантирует цену выше этого значения. Таким образом, ваши все резервы исчезнут.
Эта статья обсуждает множество проблем, связанных с протоколом Bancor, включая качество кода и другие детали, которые я не буду затрагивать; вместо этого я сосредоточусь исключительно на теме эффективности и уязвимости сделок на блокчейне, используя Bancor (и MKR) в качестве примера, а не делая никаких суждений о качестве всего проекта.
Для многих наивных дизайнеров сделок на блокчейне вышеупомянутое о уязвимости и отслеживании рынка применимо слово в слово и очень серьезно. Однако есть и некоторые сделки на блокчейне, которые абсолютно не сомневаются, что их все резервы будут истощены из-за какого-то атаки. Простой пример: рассмотрим сделку, которая продает MKR за ETH, внутреннее состояние которой состоит из текущей цены, и готова покупать или продавать неограниченное количество MKR на каждом уровне цен. Например, предположим, что вы хотите купить 2 MKR. Рынок продаст вам:
0.00…01 MKR по цене 5 ETH/MKR
0.00…01 MKR по цене 5.00…01 ETH/MKR
0.00…01 MKR по цене 5.00…02 ETH/MKR
….
0.00…01 MKR по цене 6.99…98 ETH/MKR
0.00…01 MKR по цене 6.99…99 ETH/MKR
В общем, он продает вам 2 MKR по средней цене 6 ETH/MKR (то есть общая стоимость 12 ETH), и в конце операции он увеличивается до 7. Если кто-то хочет продать 1 MKR, он потратит 6.5 ETH и в конце операции упадет до 6.
Теперь, предположим, я вам говорил, что такая сделка изначально стоила, после ряда неопределенных событий, теперь 4. Два вопроса:
- Сколько MKR сделка получила или потеряла?
- Сколько ETH сделка получила или потеряла?
Ответ: она получила 1 MKR и потеряла 4.5 ETH. Обратите внимание, что этот результат полностью независим от пути. Если эти ответы верны, они верны независимо от того, как покупатель движется от 5 до 4, если первый покупатель принимает, они верны от 5 до 4.7 и второй покупатель остается на пути к 4, они даже верны, если сначала упадут до 2, затем поднимутся до 9.818, затем снова упадут до 0.53, и наконец снова поднимутся до 4.
Почему так? Самый простой способ увидеть это — посмотреть, если цена упадет ниже 4, а затем снова поднимется до 4, процесс падения продаж точно компенсируется процессом роста покупок; каждая продажа имеет соответствующую такую же покупку, цена совершенно одинаковая. Но мы также можем взглянуть на основную механику сделки с другой стороны. Определим сделку как имеющую одномерное внутреннее состояние и имеющую балансы MKR и ETH, определяемые следующей формулой:

Каждый имеет право "редактировать" (хотя только в пределах значений от 0 до 10), но они могут сделать это только предоставив соответствующее количество MKR или ETH и забрав соответствующее количество MKR и ETH, чтобы балансы оставались согласованными; то есть количество MKR и ETH, которые сделка держит после операции, соответствует количеству, которое должно быть согласно вышеуказанной формуле, новые значения устанавливаются. Любое редактирование, не приводящее к автоматическому согласованию балансов, приводит к неудаче сделки MKR и ETH.
Теперь любая последовательность событий, снижающаяся с 5 до 4, также увеличит баланс MKR сделки на 1 и уменьшит ее баланс ETH на 4.5, независимо от того, какая это последовательность событий, должно выглядеть довольно просто:


Это означает, что атака "истощения резервов" на сделку, сохраняющую эту независимую от пути характеристику, невозможна. Даже если некоторые тролли успешно создадут панику на рынке, снизив цену до уровня, близкого к нулю, когда паника утихнет и цена вернется к исходному уровню, позиции сделки останутся неизменными ------ даже если цена и баланс сделки совершили ряд безумных движений в это время.
Теперь, в отличие от других стратегий удержания, это не означает, что сделка не потеряет деньги. Если, когда вы начинаете, 1 MKR = 5 ETH, а затем цена MKR изменяется, мы сравним производительность сделки, которая держит 5 MKR и 12.5 ETH, с производительностью, которая просто держит активы, результаты будут следующими:

Держание сбалансированного портфеля всегда выигрывает, если только цена остается совершенно одинаковой, в этом случае доходы сделки и сбалансированного портфеля равны. Таким образом, цель таких сделок — субсидировать гарантированную ликвидность как общественное благо для пользователей, выступая в качестве последнего трейдера, а не зарабатывать доход. Однако мы, конечно, можем изменить сделку, чтобы зарабатывать доход, и это довольно просто: мы позволяем ей взимать спред. То есть сделка может взимать плату только за покупки и предложения на продажу. Теперь быть выгодоприобретателем сделки становится ставкой: если в долгосрочной перспективе цена имеет тенденцию двигаться в одном направлении, то сделка будет терять, по крайней мере, по сравнению с доходами, которые они могли бы получить, имея сбалансированный портфель. С другой стороны, если цена имеет тенденцию к резкому отскоку, но в конечном итоге возвращается к той же точке, то сделка может получить значительную прибыль. Это жертвует свойством "независимости пути", но любой способ отклонения от независимости пути всегда выгоден для сделки.
Независимые от пути сделки могут принимать множество дизайнов; если вы хотите создать токен, который может выпускать неограниченное количество единиц, то механизм "постоянного коэффициента резервирования" (где для некоторого постоянного соотношения объем токенов равен и размер резервов также считается единицей, при условии, что он правильно реализован и независимость пути не затрагивается границами и округлением).
Если вы хотите сделать сделку без ценового предела для существующего токена, моя любимая (благодаря Мартину Коппельману) механика — это поддерживать постоянный механизм для некоторой константы. Таким образом, формула будет:

где цена равна. В общем, вы можете создать независимую от пути сделку, определив любое (монотонное) соотношение и в любой момент вычисляя ее производную, чтобы получить цену.
Вышеупомянутое обсуждает только роль независимости пути в предотвращении одной конкретной проблемы: атакующий каким-то образом проводит серию сделок на фоне ряда ценовых изменений, чтобы многократно извлекать средства из сделки. Для независимых от пути сделок такая уязвимость "помпы средств" невозможна. Однако, конечно, могут существовать и другие типы неэффективности. Если цена MKR падает с 5 ETH до 1 ETH, то сделка, использованная в приведенном выше примере, потеряет 28 ETH стоимости, в то время как сбалансированный портфель потеряет только 20 ETH. Куда делись эти 8 ETH?
В лучшем случае цена (то есть "реальная" цена, уровень цен, соответствующий спросу и предложению между всеми пользователями и трейдерами) быстро падает, и некоторые удачливые трейдеры совершают сделки, получая 8 ETH прибыли за вычетом незначительных торговых сборов. Но что, если трейдеров несколько? Тогда, если цена между блоками и препятствует различиям, трейдеры могут ставить друг друга на торговые сборы, этот факт создает полностью оплаченные аукционы, доходы от которых идут к майнерам. Из-за теоремы эквивалентности доходов мы можем сделать вывод, что мы можем ожидать, что торговые сборы, отправляемые трейдерами в этот механизм, будут продолжать расти, пока они не станут примерно равны размеру полученной прибыли (по крайней мере, в начале; истинное равновесие — это когда майнеры сами зарабатывают деньги). Таким образом, в любом случае такие схемы в конечном итоге являются подарком для майнеров.
Один из способов увеличить социальное благосостояние в этом дизайне — сделать возможным создание сделок на покупку, которые стоит включать только в том случае, если майнеры фактически совершают покупку. То есть, если "реальная" цена MKR падает с 5 до 4.9, и 50 трейдеров соревнуются за арбитраж с сделкой, и только первый из этих 50 трейдеров совершает сделку, то только этот человек должен заплатить майнеру торговый сбор. Таким образом, остальные 49 неудачных сделок не будут блокировать блокчейн. EIP, запланированный для Metropolis 86 открыл путь для стандартизации такого условного механизма торговых сборов (другой хороший побочный эффект заключается в том, что это также может сделать продажи токенов менее заметными, поскольку аналогичные механизмы полностью оплаченных аукционов применимы к многим продажам токенов).
Кроме того, если сделка является единственным доступным местом для торговли токеном, существуют и другие неэффективности. Например, если два трейдера хотят провести крупные сделки, им придется проводить серию мелких сделок, что ненужно будет блокировать блокчейн. Чтобы снизить такую неэффективность, сделки на блокчейне должны быть просто одним из доступных мест для торговли, а не единственным. Однако для разработчиков протоколов это, можно сказать, не является большой проблемой. Если в конечном итоге потребуется место для содействия крупным сделкам, то другие могут это предоставить.
Кроме того, здесь аргумент обсуждает независимость пути сделок, предполагая заданные начальные и конечные цены. Однако из-за различных психологических эффектов и эффектов множественного равновесия, цена закрытия, похоже, является не только функцией начальной цены и недавних событий, влияющих на "основную" стоимость актива, но и функцией торговых паттернов, которые происходят в ответ на эти события. Если происходит событие падения цен, и из-за плохой ликвидности цена актива быстро падает, она в конечном итоге может восстановиться до более низкой точки, чем когда изначально была больше ликвидности. То есть это может быть фактическим аргументом в поддержку субсидирования сделок: если существует такой мультипликативный эффект, то они будут оказывать положительное влияние на стабильность цен, превышающую первичный эффект ликвидности, предоставляемый самой сделкой.
Определение того, какая независимая от пути сделка является оптимальной, может потребовать значительных исследований. Также возможно, что смешанные полуавтоматические сделки обладают теми же гарантированными свойствами ликвидности, но включают некоторые асинхронные элементы, а также способность операторов "влезать в очередь" и зарабатывать прибыль в ситуациях, когда иначе майнеры понесли бы значительные убытки. Для различных целей, насколько автоматизированные сделки на блокчейне (если таковые имеются) являются оптимальными, и в какой степени эти сделки должны быть субсидированы и кем, в настоящее время нет согласованной теории. В общем, пространство дизайна механизмов на блокчейне все еще находится на ранней стадии, и, безусловно, стоит более широко исследовать и изучать различные варианты.
Популярные статьи












