Стоит отметить, что это та же самая библиотека, которую создал @CetusProtocol, на которую фактически полагается КАЖДЫЙ CLAMM на Sui.
Исправление преобразует этот довольно сомнительный фрагмент:
public fun sub(arg0: I128, arg1: I128) : I128 {
let v0 = I128{bits: u128_neg(arg1.bits)};
add(arg0, wrapping_add(v0, from(1)))
}
В правильную защиту от переполнения:
public fun sub(arg0: I128, arg1: I128) : I128 {
let v0 = wrapping_sub(arg0, arg1);
let v1 = sign(arg0) != sign(arg1) && sign(arg0) != sign(v0);
assert!(!v1, 0);
v0
}
Огромное спасибо @bluefinapp за обеспечение всей экосистемы Sui CLAMM! Это именно тот вид строгой работы по безопасности, который приносит пользу всем.
Во время нашей текущей формальной проверки с нашими партнерами из @AsymptoticTech, касающейся integer-mate – основной математической библиотеки, используемой во многих протоколах Sui – мы выявили крайний случай, когда вычитание со знаком могло вести себя неправильно, если второй операнд достигал своего минимально возможного значения.
Хотя ошибка не повлияла на системы Bluefin, неопределенность относительно того, как другие могут использовать библиотеку, побудила нас действовать быстро - подготовить улучшенную реализацию с нашими партнерами по безопасности и тесно сотрудничать с Sui Foundation, чтобы донести информацию до затронутых DEX, чтобы они могли исправить эту ошибку.
Спасибо всем, кто был вовлечен: @AsymptoticTech за глубокое погружение и выявление крайнего случая, @osec_io’s @NotDeGhost за участие в проверке и @SuiNetwork за быстрое и скоординированное реагирование.
Это тот вид сотрудничества, который выделяет Sui. Безопасность - это постоянное обязательство, и эта быстрая идентификация и решение показывают, что мы вместе в этом.
Мы продолжим инвестировать в формальную проверку, обзоры архитектуры и координацию на уровне экосистемы, чтобы повысить стандарты для безопасного и проверяемого DeFi.
2
4,51 тыс.
Содержание этой страницы предоставляется третьими сторонами. OKX не является автором цитируемых статей и не имеет на них авторских прав, если не указано иное. Материалы предоставляются исключительно в информационных целях и не отражают мнения OKX. Материалы не являются инвестиционным советом и призывом к покупке или продаже цифровых активов. Раздел использует ИИ для создания обзоров и кратких содержаний предоставленных материалов. Обратите внимание, что информация, сгенерированная ИИ, может быть неточной и непоследовательной. Для получения полной информации изучите соответствующую оригинальную статью. OKX не несет ответственности за материалы, содержащиеся на сторонних сайтах. Цифровые активы, в том числе стейблкоины и NFT, подвержены высокому риску, а их стоимость может сильно колебаться. Перед торговлей и покупкой цифровых активов оцените ваше финансовое состояние и принимайте только взвешенные решения.