Пост
Поделитесь своими знаниями.
Совет безопасности Sui Move: не бросайте горячую картошку
В игре Sui каждый актив — это объект, а каждый объект — маленькая государственная машина.
Одной из распространенных моделей правоприменения является «горячая картошка»: структура, не имеющая никаких возможностей, которую необходимо использовать до завершения транзакции или ее полного прерывания.
Флэш-кредиты часто полагаются на это. Квитанция возвращается заемщику и должна быть возвращена вместе с протоколом, подтверждающим возврат платежа.
❌ Добавьте каплю к чеку ✅ Вы только что представили критический вульн
Теперь заемщик может бросить картошку и уйти, так и не заплатив.
Способность «Выпадение» позволяет любому уничтожить объект, если только вы намеренно не предотвратите его, исключив возможность выпадения.
Совет от профессионала: проведите аудит каждой структуры в своем протоколе.
🔴 Если это обязательство (например, срочная кредитная квитанция), удалите drop 🟢 Если его не нужно копировать, удалите копию 🔵 Если оно не должно быть глобальным, удалите магазин
Sui Move дает вам низкоуровневый контроль над семантикой активов. Злоупотребление хотя бы одной из способностей чревато перерывами в применении.
Осторожно обращайтесь с предметами. Не роняйте горячий картофель
- SDKs and Developer Tools
- Transaction Processing
Ответы
1Если Hot Potato — это структура без способностей, зачем кому-то добавлять дроп? По определению, в ней не должно быть дропа или других способностей.:)
Кроме того, я думаю, что было бы лучше добавить дополнительные поля для получения, например, сумму заимствования, и сопоставить их с этой суммой, а не жестко кодировать 10 MIST. Это лучше проиллюстрировало бы, как можно использовать квитанцию.
Знаете ответ?
Пожалуйста, войдите в систему и поделитесь им.
Sui is a Layer 1 protocol blockchain designed as the first internet-scale programmable blockchain platform.
Заработай свою долю из 1000 Sui
Зарабатывай очки репутации и получай награды за помощь в развитии сообщества Sui.
- Почему BCS требует точного порядка полей для десериализации, когда структуры Move содержат именованные поля?53
- «Ошибки проверки нескольких источников» в публикациях модуля Sui Move — автоматическое устранение ошибок43
- Сбой транзакции Sui: объекты, зарезервированные для другой транзакции25
- Как ограничения возможностей взаимодействуют с динамическими полями в гетерогенных коллекциях?05