#termmax @TermMax ...Я просматривал последние исправления V2 от TermMax и одна вещь не давала мне покоя.
Раньше я думал, что большинство багов в DeFi сводятся к плохой математике.
На этот раз математика в основном была нормальной.
Более серьезная проблема заключалась в использовании неверного представления реальности.
Возьмем, например, apr().
Старая логика смотрела на «сырое» XT-сальдо ордера.
Звучит разумно, правда?
Но в V2 не используется сырое XT-сальдо как состояние ценообразования. Вместо этого используется virtualXtReserve.
Это различие имеет значение...
Представьте магазин, где ценник контролируется внутренней бухгалтерской книгой магазина, но вы начинаете рассчитывать цены, исходя из того, сколько денег кто-то случайно положил на кассе.
Деньги изменились.
Модель цены — нет.
Вот что прямой перевод XT мог сделать со старым расчетом APR.
Сальдо могло перемещаться без движения кривой, а apr() мог трактовать это сальдо как новое состояние ценообразования.
Исправление делает модель учета соответствующей экономической модели.
И, думаю, это более интересный урок.
В финансовых смарт-контрактах опасный вопрос — не всегда:
«Формула правильная?»
Иногда он звучит так:...
«Мы подаем формуле правильное состояние?»
Эта же тема всплывает и в исправлении ликвидации.
Оракул долга с 18 десятичными знаками мог привести к тому, что конвертация десятичных разрядов разрушит сравнение залога, превращая позиции, которые должны позволить ликвидацию на 50%, в полную ликвидацию.
Снова: это не проблема со слишком сложной формулой.
Это была проблема с единицами.
Поэтому я начинаю уделять больше внимания этим «скучным» на вид изменениям.
Однострочное исправление в учете может значить больше, чем броская новая функция, потому что оно определяет, корректно ли протокол интерпретирует рынок.
Для TermMax я бы отслеживал одну вещь особенно внимательно отсюда:
не только сколько ликвидности есть у системы, но и то, читают ли ценообразование, оценка залога и логика ликвидации одну и ту же экономическую реальность.....
Именно там «код работает» начинает превращаться в «финансовая инфраструктура работает».
Что бы вы предпочли проверять в первую очередь: формулы, состояние учета или предположения оракул/единицы?....