Sui.

Explorer

Присоединяйтесь к сообществам и открывайте новые идеи.

Sui.X.Peera.

Заработай свою долю из 1000 Sui

Зарабатывай очки репутации и получай награды за помощь в развитии сообщества Sui.

Сообщества

Награда

  • Bolke .Peera.
    ДляSuiAug 12, 2025
    +15

    Ошибка Sui Move — невозможно обработать транзакцию Не найдено действительных газовых монет для транзакции

    Когда я это сделаю: //Отделите платеж от основной монеты константа [PaymentCoin] = TX.SplitCoins ( объект tx.object (идентификатор объекта PrimaryCoin.coin), [tx.pure.u64 (обязательная сумма платежа)] ); //Используйте оригинальную монету для оплаты газа tx.Установите оплату газа ([{ Идентификатор объекта: идентификатор объекта PrimaryCoin.coin, версия: версия PrimaryCoin, дайджест: PrimaryCoin.Дайджест }]); Налогообложение бюджета на газ (10_000_000); Он жалуется на то, что изменяемые объекты не могут появляться более одного в одной транзакции. Когда я удаляю платеж за газ, оно жалуется: «Невозможно обработать транзакцию» Для транзакции не найдено действительных газовых монет». Моя контрактная функция принимает сумму 0,01 евро в обмен на NFT

    2
    9
  • Xavier.eth.Peera.
    ДляSuiJun 27, 2025
    +15

    Сбой транзакции Sui: объекты, зарезервированные для другой транзакции

    JsonRpcErrorПри попытке выполнить транзакции на Sui возникает постоянная ошибка. Ошибка означает, что объекты зарезервированы для другой транзакции, несмотря на то, что я реализовал последовательную обработку транзакций с задержками. JsonRpcError: Failed to sign transaction by a quorum of validators because one or more of its objects is reserved for another transaction. Other transactions locking these objects: AV7coSQHWg5vN3S47xada6UiZGW54xxUNhRv1QUPqWK (stake 33.83) 0x1c20f15cbe780ee7586a2df90c1ab70861ca77a15970bea8702a8cf97bd3eed9 0x1c20f15cbe780ee7586a2df90c1ab70861ca77a15970bea8702a8cf97bd3eed9 0x1c20f15cbe780ee7586a2df90c1ab70861ca77a15970bea8702a8cf97bd3eed9 Я попробовал: Последовательное выполнение транзакции (ожидание завершения предыдущей транзакции) Добавлены 3-секундные задержки между транзакциями И все еще постоянно возникает одна и та же ошибка. Использование Sui RPC для отправки транзакций. Один и тот же идентификатор объекта несколько раз появляется в списке блокировок. Ошибка возникает даже при тщательном определении последовательности транзакций. Почему объекты «зарезервированы» для других транзакций? Как правильно проверить, доступен ли объект, прежде чем использовать его в транзакции? Существуют ли передовые методы работы с замками объектов в Sui? Может ли это быть связано со сроками завершения транзакции? Кто-нибудь сталкивался с этой проблемой раньше? Мы будем очень признательны за любую информацию о правильном управлении объектами в транзакциях Sui!

    4
    8
  • Xavier.eth.Peera.
    ДляSuiJun 17, 2025
    +15

    Как ограничения возможностей взаимодействуют с динамическими полями в гетерогенных коллекциях?

    Я создаю торговую площадку, которая будет работать с несколькими типами ресурсов с разными требованиями к возможностям, и я задал несколько фундаментальных вопросов о системе типов Move. Я хочу хранить разные типы активов в одной коллекции, но у них разные возможности: Обычные NFT: key + store(можно передавать другим лицам) key Только токены Soulbound (не подлежат передаче) Настраиваемые активы с ограничениями на перевод public struct Marketplace has key { id: UID, listings: Bag, // Want to store different asset types here } // This works for transferable assets public fun list_transferable( marketplace: &mut Marketplace, asset: T, price: u64 ) { /* ... */ } // But how to handle soulbound assets? public fun list_soulbound( // No store ability marketplace: &mut Marketplace, asset_ref: &T, // Can only take reference price: u64 ) { /* How do I store metadata about this? */ } Ключевые вопросы: Требования к возможностям: dynamic_field::add()Vвсегда ли при использовании требуется store время компиляции? Могут ли типы оболочек обойти эту проблему? Гетерогенное хранилище: можно ли в одном пакете хранить объекты с разными наборами способностей key + store + copykey + storeи по-разному обрабатывать их во время выполнения? Безопасность типов: поскольку в динамических полях происходит стирание типов, как обеспечить безопасность типов при извлечении значений? Какова схема хранения метаданных типов? Паттерн Witness: как ограничения способностей работают с фантомными типами? Могу ли я хранить информацию о AssetAssetтипах в той же коллекции и извлекать информацию о типах позже? Создание системы, в которой NFT, токены soulbound и активы с ограниченным доступом требуют функциональности торговой площадки, но с другой семантикой передачи данных. Я испробовал типы оболочек, несколько коллекций для каждого набора способностей, хранилище метаданных отдельных типов. В каждом из них есть компромисс между безопасностью типов, стоимостью газа и сложностью.

    0
    7

Самые новые

  • BBT101.Peera.
    ДляSuiAug 16, 2025

    Роль Суи в оптимизации инфраструктуры глобальной торговли и цепочки поставок

    Введение: глобальная торговля — это узкое место доверия Современная цепочка поставок охватывает десятки стран, сотни поставщиков и бесчисленное количество документов, многие из которых написаны на бумажных носителях, содержат ошибки или не поддаются проверке. От отслеживания контейнеров до таможенных деклараций и сертификатов происхождения — мировая торговля страдает от следующих факторов: • Фрагментация данных между юрисдикциями и системами • Поддельная документация и подделка • Неэффективное разрешение споров • Дорогостоящее примирение и отсутствие прозрачности Sui предлагает программируемую, прозрачную и масштабируемую блокчейн-платформу, способную моделировать весь мировой торговый процесс с помощью надежной автоматизации, отслеживаемости и модульного управления. Зачем использовать Sui для торговли и цепочки поставок? В отличие от многих блокчейнов общего назначения, объектно-ориентированная архитектура и параллельное исполнение Sui позволяют предприятиям: Преимущество функций в торговых приложениях Объектно-ориентированное моделирование Моделируйте реальные активы, такие как контейнеры, грузы, документы Горизонтальная масштабируемость Управляйте отслеживанием и обновлением больших объемов событий Аутентификация ZKlogin Безопасная идентификация пользователей (таможенных агентов, поставщиков) Регистрация событий и эмиссия Отслеживайте всю цепочку поставок в сетях Модули Custom Move Encode, логика контрактов (например, правила происхождения товаров, тарифы) Sui превращает торговые документы в поддающиеся проверке цифровые активы, а процессы — в прозрачные и самоисполняемые рабочие процессы. Вариант использования: международная доставка с сертификатом происхождения Давайте рассмотрим упрощенный вариант использования. 👟 Сценарий: доставка кроссовок из Вьетнама в ЕС Заинтересованные стороны: • Производитель в Хошимине • Грузовой перевозчик • Таможенные брокеры • Импортер из ЕС Рабочий процесс на основе SUI: Объект отгрузки, созданный производителем (происхождение, номер партии, содержимое) Сертификат происхождения объекта, выданный торговым ведомством Вьетнама Транспортная компания обновляет объект TransitStatusObject по мере перемещения груза Таможенный агент проверяет документы и ставит цифровые подписи на оформление Розничный торговец из ЕС получает в сети поддающийся проверке продукт и метаданные Преимущества: • Все заинтересованные стороны имеют доступ к защищенному от несанкционированного доступа контрольному журналу • Никакого обмена документами по электронной почте или подделки PDF-файлов • Немедленное соблюдение правил импорта/экспорта Архитектура торгового протокола на основе Sui Каждый актив или документ в цепочке поставок становится первоклассным участником этой цепочки. 🔩 Основные модули: • Объект поставки — включает товары, вес, происхождение, уникальный идентификатор • CertificateModule — проверяет подлинность документов и роли эмитента • Модуль таможенного одобрения — таможенные агенты могут утвердить/отклонить груз • TransiteEvent Module — выводит информацию о местоположении (например, порт отсканирован, загружен) 🔐 Пример: модуль Move для проверки сертификата торговля модулями: :CertificateModule { В структурном сертификате есть ключ { страна_происхождения: вектор, эмитент: адрес, действителен до: до 64 лет, } сертификат государственного фонда issue_certificate (эмитент: &подписавший, страна: вектор) { левый сертификат = сертификат { страна_происхождения: страна, эмитент: подписавший: :address_of (эмитент), действителен до: 1690000000, }; move_to (эмитент, сертификат); } валидация государственного фонда (сертификат: &сертификат): bool { метка времени: :now () < cert.valid_until } } Эта логика гарантирует, что только доверенные органы могут выдавать и подтверждать торговые документы. Совместимость: трансграничное сотрудничество в реальном времени Модульная идентификация и объектная логика Sui обеспечивают межюрисдикционное сотрудничество без централизованного контроля: Действия заинтересованных сторон в отношении Суя Администрация порта добавляет событие сканирования к объекту ShipmentObject Национальное экспортное ведомство выдает сертификат с цифровой подписью Грузоперевозчик обновляет ETA и отчеты о состоянии груза Таможенный агент проверяет подлинность и соответствие требованиям в сети Розничный торговец извлекает поддающуюся проверке историю продукции и метаданные о выбросах CO2 Благодаря API и информационным панелям, созданным на основе Sui, даже нетехнические специалисты могут безопасно участвовать в протоколе. Предотвращение мошенничества и отслеживание Мошенничество в мировой торговле ежегодно приводит к потере доходов на миллиарды долларов. Компания Sui борется с этим с помощью: • Документы с цифровой подписью, привязанные к личности через zkLogin • Неизменная цепочка поставок с указанием даты событий • Товарные токены на основе NFT со связанными сертификатами • Умные триггеры, предотвращающие фальсификацию или несанкционированные переводы Пример: защита от подделок Каждый жетон предмета роскоши (например, дизайнерская сумочка) может: • Ссылка на сертификат происхождения и заводской номер партии • Включите QR-код, привязанный к объекту в цепочке • Запретите перепродажу до тех пор, пока это не будет подтверждено верифицированным аккаунтом Углеродные кредиты и интеграция ESG Предприятия вынуждены доказать, что цепочки поставок устойчивы. Костюмы могут: • Рекордные выбросы углекислого газа на каждую партию или единицу продукции • Разрешить третьим сторонам (аудиторам, неправительственным организациям) проверять показатели выбросов углекислого газа • Прикрепляйте отчеты ESG к отправке NFT • Разрешите торговлю в сети или получение компенсации за выбросы углекислого газа Пример: журналы перемещения транспортного контейнера используются для оценки выбросов, а к токену продукта прилагается объект CarbonScoreObject. Покупатели могут проверить это перед покупкой. Рекомендации по масштабированию глобальных сетей Параллельное исполнение Sui и низкая задержка делают его готовым к использованию в корпоративных системах: Функции Sui с требованиями к масштабированию 100 000 ежедневных обновлений Параллельная обработка объектов Более 100 заинтересованных сторон в цепочке Разрешения на уровне объектов API реального времени требует высокопроизводительных RPC и подписок на события Хранение данных История объектов и сетевые журналы Sui может масштабироваться так же быстро, как растет мировой спрос на логистику. Проблемы и стратегии развертывания Стратегия смягчения проблем Юрисдикционные ограничения данных Используйте модули, специфичные для региона, и теги объектов Ограниченная грамотность в сфере блокчейна Создавайте удобные для пользователя dApps и веб-интерфейсы Интеграция с устаревшими системами Middleware + оффчейн-коннекторы Аудит безопасности и соответствия требованиям; журналы эмиссий+подписанные сертификаты Начните с одной торговой линии или линейки продуктов, а затем постепенно расширяйте протоколы и интеграции. Заключение: построение будущего мировой торговли на основе суитов Объектно-ориентированная, программируемая и масштабируемая архитектура Sui закладывает основу для глобального, поддающегося проверке торгового протокола. С помощью Sui предприятия могут: • Сократить количество документов, задержек и мошенничества • Автоматизируйте многосторонние рабочие процессы • Обеспечьте полную отслеживаемость и соответствие требованиям ESG • Создавайте общие уровни данных без центральных серверов В мире, где доверие, прозрачность и скорость определяют успех торговли, Sui — это больше, чем блокчейн. Это инфраструктура доверия для будущих цепочек поставок.

    0
  • D’versacy .Peera.
    ДляSuiAug 16, 2025

    🔒 Обеспечение безопасности вашего приложения Sui: практичный контрольный список безопасности

    Создавать на базе Sui очень интересно: объектно-ориентированная модель этой модели открывает новые шаблоны проектирования и ускоряет параллелизм. Но ⚠️ новые модели = новые ошибки. Ошибки, связанные с владением имуществом, утечки условного депонирования или неосторожное использование ключей администратора могут привести к дорогостоящим убыткам. В этом руководстве представлен пошаговый контрольный список безопасности 📝, а также практический пример рынка, показывающий, как избежать наиболее распространенных ошибок. ✅ 1) Контрольный список безопасности Sui 🔑 Наименьшие привилегии • Не полагайтесь на один глобальный «ключ администратора». • Используйте объекты возможностей в качестве авторитета. • Защитите важнейшие административные полномочия с помощью мультиподписи или управления в сети. ⚖️ Атомные депозитные переводы • Всегда депонируйте активы в специальных объектах листинга. • Используйте программируемые блоки транзакций (PTB) для атомных свопов → предотвратите авансовые платежи и двойные расходы. 🛡️ Проверьте все входные данные • В поле «Переместить» проверьте длины, границы и ограничения векторов. • Подтвердите десериализацию и отклоните искаженные объекты. • Никогда не полагайтесь на безопасность ввода только потому, что объект существует в цепочке. 🧪 Активно тестируйте и тестируйте • Напишите отрицательные результаты тестов: неверные входные данные, одновременные обновления, газовое истощение. • Добавьте фаззинг на случай непредвиденных потоков транзакций. • Автоматизируйте работу в CI для раннего выявления регрессий. 🔐 Управление ключами • Храните ключи администратора в аппаратных кошельках. • Используйте мультиподпись для действий по управлению. • Поворачивайте клавиши, когда члены команды уходят. 👀 Аудиты и стимулы • Проведите аудит критически важных модулей Move. • Запустите программу вознаграждения за ошибки для тестирования сообществом. • Помните: внешний взгляд улавливает то, что вы упускаете. 🏪 2) Пример на практике: безопасный рынок Вот как можно применить контрольный список в приложении dApp на торговой площадке: • Безопасное депонирование NFT: Продавец перемещает NFT в объект листинга. Биржевой контракт не может принимать средства без одобрения продавца. • Правильно распоряжайтесь гонорарами: Рассчитайте гонорары в PTB, обеспечивая правильное распределение гонораров (следите за округлением!). • Возвращение? Не здесь: Модель ресурсов Move намеренно предотвращает копирование/повторный ввод данных. Тем не менее, протестируйте все потоки, чтобы убедиться в отсутствии логических лазеек. 📚 Источники и дополнительная литература • Sui Docs: концепции и транзакции • Технический документ Sui (объектно-ориентированная модель) • Документация Mysten Labs по TypeScript SDK • Переместить книгу • Используйте репозиторий GitHub ✨ Вывод: по мнению Sui, безопасность — это не столько ошибки повторного входа в систему, как в EVM, сколько право собственности, полномочия и анонимность. Если вы будете следовать контрольному списку, вы значительно сократите вероятность атак и одновременно обеспечите безопасность пользовательских активов.

    0
  • theking.Peera.
    ДляSuiAug 16, 2025

    От чистой установки до вашего первого объекта в блокчейне без проблем

    Сначала вы устанавливаете интерфейс командной строки Sui и набор инструментов Move, чтобы создавать и публиковать код, затем запускаете sui-client active-address, чтобы подтвердить рабочую пару клавиш, и нажимаете на кран, чтобы получить тестовый пользовательский интерфейс, после чего создаете новый пакет Move с шаблоном, чтобы не изменять структуру папок, затем редактируете один модуль, определяя простой объект с полем владельца и несколькими методами, такими как инициализация, обновление и передача чтобы вы могли быстро использовать объектную модель Sui, затем вы компилируете с помощью sui move build и исправляете все ошибки компилятора, потому что это ваша самый быстрый цикл обратной связи, затем вы публикуете с помощью sui client publish --gas-budget и извлекаете идентификаторы пакетов и модулей из выходных данных, чтобы вызвать функции, затем вызываете функцию ввода init, чтобы создать объект и скопировать идентификатор объекта из эффектов транзакции, затем запускаете объект sui client, чтобы увидеть версию, владельца и поля, чтобы подтвердить, что цепочка написала то, что вы ожидаете, если у вас «недостаточно газа», вы сокращаете бюджет газа или запрашиваете дополнительные тесты SUI, поскольку каждая публикация и звонок стоят бензина, если вы получаете сообщение «модуль не найден», вы, вероятно, использовали неправильный идентификатор пакета или вы забыли восстановить его. Если передача завершилась ошибкой, вы, скорее всего, сделали объект общедоступным, когда вы имели в виду владельца, или вы забыли указать правильную форму аргумента. Как только основы заработают, вы создаете скрипт в оболочке или JavaScript-скрипте, чтобы одна команда создавала, публиковала, обновляла, обновляла и передавала его, что экономит время и предотвращает опечатки, и, наконец, вы отправляете этот минимальный пример в репозиторий, чтобы коллеги могли клонировать его и выполнить те же шаги за считанные минуты; рассматривая объект как единицу мышления, а не как единый глобальный контракт, вы Согласовывайте код с тем, как Sui хранит состояние, что позволяет сохранить ментальную модель и избежать сложных для отладки изменений или гонок в глобальных состояниях, с которыми вы можете столкнуться в других цепочках, а поскольку Sui параллелизует транзакции с принадлежащими объектами, вы также получаете быстрое подтверждение во время итерации, что значительно упрощает адаптацию.

    0

Без ответа

    В тренде

    • Vens.sui.Peera.
      ДляSuiApr 29, 2025

      Бот AMM в экосистеме Sui

      Каковы ключевые особенности и функциональные возможности ботов AMM в экосистеме Sui? Как они улучшают традиционные торговые механизмы и какие преимущества они предлагают пользователям, использующим протоколы DeFi в сети Sui? Нужно ли мне его создавать или я могу использовать, например, Turbos Finance

      9
      4
    • 0xduckmove.Peera.
      ДляSuiApr 08, 2025

      👀 SEAL - Я думаю, что конфиденциальность данных Web3 скоро изменится

      👀 SEAL запущен в тестовой сети Sui Testnet — я думаю, что конфиденциальность данных Web3 скоро изменится В Web3 часто можно услышать такие фразы, как* «пользователи владеют своими данными»* или* «децентрализованы по замыслу»*. Но если присмотреться повнимательнее, многие приложения по-прежнему полагаются на централизованную инфраструктуру для обработки конфиденциальных данных — для управления ключами используются такие сервисы, как AWS или Google Cloud. Это приводит к противоречию: децентрализация на первый взгляд, централизация — под ней. Но что, если бы существовал способ безопасного управления секретами, не отказываясь от децентрализации? Представляем SEAL — децентрализованное управление секретами (DSM), которое теперь доступно в Sui Testnet. SEAL призвана исправить одно из самых больших лицемерий Web3: крики о децентрализации при тайном использовании AWS Вы можете спросить меня: что такое SEAL? SEAL — это протокол, который позволяет безопасно идецентрализованноуправлять конфиденциальными данными. Он создан специально для мира Web3. Воспринимайте его как уровень контроля доступа, ориентированный на конфиденциальность и подключаемый к вашему приложению dApp. Вы можете рассматривать SEAL как своего рода программируемую блокировку ваших данных. Вы не просто блокируете и разблокируете данные вручную — вывписываете политики прямо в смарт-контракты, используя Move on Sui. Допустим, вы создаете приложение dApp, в котором: Только владельцы NFT могут разблокировать учебное пособие премиум-класса Или, может быть, DAO должна проголосовать, прежде чем конфиденциальные файлы будут опубликованы Или вы хотите, чтобы метаданные были привязаны к времени и были доступны только после определенной даты SEAL делает все это возможным. Контроль доступа работает «в сетевом режиме», полностью автоматизирован, управление им не требуется со стороны администратора. Просто логика, встроенная прямо в блокчейн. SEAL делает все это возможным. Контроль доступа работает «в сетевом режиме», полностью автоматизирован, управление им не требуется со стороны администратора. Просто логика, встроенная прямо в блокчейн. Еще одна интересная статья — как SEAL обрабатывает шифрование. Он использует так называемоепороговое шифрование**, что означает, что ни один узел не может расшифровать данные. Для совместной работы требуется группа серверов — как в случае с несколькими подписями, но для разблокировки секретов. Это распределяет доверие и позволяет избежать обычной проблемы, возникающей в случае сбоя в одной точке. А чтобы сохранить конфиденциальность информации, SEAL шифрует и дешифрует все, что находится на стороне клиента**. Ваши данные никогда не видны ни одному серверу. Они в буквальном смысле остаются в ваших руках на вашем устройстве. и SEAL безразлично, где вы храните свои данные. Будь то IPFS, Arweave, Walrus или какая-либо другая платформа, SEAL не пытается контролировать эту часть. Основное внимание уделяется только тому, кому разрешено что-либо видеть**, а не тому, где хранятся вещи. Так что да, это не просто библиотека или API — это уровень для вашего dApp, работающий по умолчанию в сети, контролируемый доступом и конфиденциальность**. SEAL заполняет довольно серьезный пробел. Давайте разберемся в этом подробнее. Если вы создаете приложение dApp, которое работает с любыми конфиденциальными данными**— закрытым контентом, пользовательскими документами, зашифрованными сообщениями и даже метаданными NFT, заблокированными по времени, — вы столкнетесь с той же проблемой: ➡️ Как безопасно управлять доступом, не полагаясь на централизованный сервис? Без такого решения, как SEAL, большинство команд тоже: Используйте централизованные инструменты, такие как AWS KMS или Firebase, что явно противоречит децентрализации Или попробуйте самостоятельно исправить недоработанную логику шифрования, которая обычно оказывается хрупкой и трудно поддающейся аудиту https://x.com/EmanAbio/status/1908240279720841425?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1908240279720841425%7Ctwgr%5E697f93dc65359d0c8c7d64ddede66c0c4adeadf1%7Ctwcon%5Es1_&ref_url=https%3A%2F%2Fwww.notion.so%2Fharryph%2FSEAL-Launches-on-Sui-Testnet-1cc4f8e09bb380969c0dcc627b96cc22 Ни то, ни другое не очень хорошо масштабируется. Особенно если вы пытаетесь создавать надежные приложения в нескольких сетях или сообществах. SEAL делает весь процесс модульным и программируемым. Вы определяете правила доступа в смарт-контрактах Move, а SEAL берет на себя все остальное — генерацию ключей, одобрение расшифровки и контроль доступа — и все это без необходимости вручную выдавать ключи или проводить внутренние проверки. Более того, эти правилапроверяемы и неизменные— как только они внедряются в блокчейн, они подчиняются контракту, а не администратору-человеку. Поэтому вместо того, чтобы спрашивать: «Кто должен управлять доступом к этим данным?» вы просто спрашиваете: «Какая логика должна определять доступ?» > ... и пусть цепь справится с этим. Чистый и масштабируемый. Именно поэтому SEAL подходит не только для «инструментов безопасности». Это базовый уровень для любого приложения dApp, которое заботится о конфиденциальности, соответствии нормативным требованиям или динамической логике доступа.** Это небольшое изменение, но оно сильно меняет наше представление о данных в Web3. Вместо того чтобы шифровать данные после развертывания или полагаться на внешние сервисы,вы начинаете со встроенных функций обеспечения конфиденциальности, а доступ к ним осуществляется исключительно с помощью логики смарт-контрактов. И это именно то, что сейчас нужно Web3. Как на самом деле работает SEAL? Мы рассмотреличто такое SEALизачем он нужен Web3, давайте посмотрим, как он на самом деле устроен под капотом. В этой части все становится более техническим, но в хорошем смысле. Архитектура выглядит элегантно, как только вы видите, как все элементы сочетаются друг с другом. На высоком уровне SEAL объединяетлогику доступа в блокчейнес управлением ключамивне блокчейна, используя методШифрование на основе идентификационных данных (IBE). Это позволяет разработчикам шифровать данные в виде личности, а затем использовать смарт-контракты для определения того, кому разрешено их расшифровывать. Шаг 1. Правила доступа к смарт-контрактам (на языке Sui) Все начинается со смарт-контракта. Когда вы используете SEAL, вы определяете функцию seal_approve в контракте Move. Здесь вы пишете условия для расшифровки. Например, вот простое правило блокировки времени, написанное в Move: entry fun seal_approve(id: vector, c: &clock::Clock) { let mut prepared: BCS = bcs::new(id); let t = prepared.peel_u64(); let leftovers = prepared.into_remainder_bytes(); assert!((leftovers.length() == 0) && (c.timestamp_ms() >= t), ENoAccess); } После развертывания этот контракт выступает в роли привратника. Всякий раз, когда кто-то захочет расшифровать данные, его запрос будет проверен в соответствии с этой логикой. Если ответ будет принят, ключ будет освобожден. В противном случае они заблокированы. Никто не должен вмешиваться. ##Шаг 2: шифрование на основе личных данных (IBE) Вот где происходит волшебство. Вместо шифрования данных определенного адреса кошелька (например, в PGP или RSA) SEAL используетидентификационные строки, то есть вы шифруете что-то вроде: 0x адрес кошелька dao_voted:proposal_xyz pkGid_2025_05_01 (правило, основанное на отметках времени) или даже game_user_nft_holder Когда данные зашифрованы, они выглядят следующим образом: Encrypt(mpk, identity, message) mpk = мастер-публичный ключ (известный всем) личность = логически определенный получатель сообщение = фактические данные Позже, если кто-то захочет расшифровать данные, сервер ключей проверяет, соответствуют ли они политике (с помощью вызова seal_approve onchain). Если запрос одобрен, он возвращает производный закрытый ключ для этого удостоверения. Derive(msk, identity) → sk Decrypt(sk, encrypted_data) Затем пользователь может локально расшифровать содержимое. Таким образом, шифрование выполняется без необходимости заранее знать, кто будет расшифровывать данные. Вы просто определяете условия, а SEAL выяснит остальное позже. Это динамично. ##Шаг 3: Сервер ключей — вне блокчейна, но не централизован Возможно, вы задаетесь вопросом: у кого эти мастер-ключи? Здесь на помощь приходитСервер ключей SEAL. Думайте об этом как о бэкенде, который: Содержит главный секретный ключ (msk) Следит за контрактами в блокчейне (например, за вашей логикой seal_approve) Выпускает производные ключи только при соблюдении условий Но — и это главное — SEAL не полагается только на один* сервер ключей. Вы можете запустить его в режимеthreshold, когда перед выдачей ключа дешифрования необходимо согласование нескольких независимых серверов. Например: запрос должны одобрить 3 из 5 ключевых серверов. Это позволяет избежать основных точек сбоя, а также обеспечивает децентрализацию на уровне управления ключами. Более того, в будущем SEAL будет поддерживатьMPC (многопартийные вычисления) иконфигурации на основе анклав(например, TEE), чтобы вы могли получить еще более надежные гарантии без ущерба для удобства использования. ##Шаг 4: расшифровка на стороне клиента Как только ключ возвращается пользователю, фактическое дешифрование происходитна его устройстве. Это означает: Сервер никогда не видит ваши данные Бэкэнд никогда не хранит расшифрованный контент Только пользователь может получить доступ к окончательному сообщению Это надежная модель конфиденциальности. Даже если кто-то взломает уровень хранения данных (IPFS, Arweave и т. д.), он все равно не сможет прочитать данные, не пройдя логику доступа. Вот краткая ментальная модель: Эта структура позволяет легко создавать dApps, правила доступа которых не жестко закодированы — они динамичны, поддаются аудиту и полностью интегрированы в логику цепочки. ##Команда, стоящая за печатью SEAL возглавляетSamczsun, известная фигура в сообществе блокчейн-безопасности. Ранее он был партнером по исследованиям в Paradigm, а затем провел аудит и спас несколько экосистем от серьезных эксплойтов. Теперь он полностью сосредоточен на превращении SEAL в основную часть инфраструктуры конфиденциальности Web3. Судя по его опыту и авторитету, SEAL — это не просто еще один экспериментальный инструмент — это серьезная попытка сделать децентрализованную конфиденциальность данных практичной и масштабируемой. Внедрение SEAL в тестовой сети Sui Testnet открывает новый стандарт управления секретными данными приложениями Web3. Сочетая контроль доступа в блокчейне, пороговое шифрование и конфиденциальность на стороне клиента, SEAL обеспечивает более надежную основу для децентрализованной обработки данных. Независимо от того, создаете ли вы dApps, DAO или децентрализованные игры, SEAL предоставляет мощный набор инструментов для управления доступом и защиты пользовательских данных без ущерба для децентрализации. Если Web3 собирается двигаться вперед, безопасная инфраструктура, такая как SEAL, не является факультативной, а просто необходима

      8
    • BigSneh.Peera.
      ДляSuiJul 30, 2025

      Как объединить два объекта с монетами в Move?

      *Я пытаюсь разобраться в этом аспекте сети Sui Network, потому что занимаюсь разработкой, отладкой или развертыванием чего-то, затрагивающего эту область. Мне нужно подробное объяснение работы этого механизма или функции, а также соответствующего использования интерфейса командной строки, структуры кода Move или архитектурных концепций. Моя цель — получить достаточно ясности, чтобы применить эти знания в реальном проекте, будь то специальный смарт-контракт, система NFT, интеграция кошельков или инструмент DeFi. Сеть Sui обладает уникальными возможностями по сравнению с сетями EVM, поэтому мне особенно интересно, что её отличает и как это влияет на передовые практики разработки. Было бы полезно ознакомиться с образцами кода, примерами командной строки или типичными ошибками, особенно при использовании интерфейса командной строки Sui, SDK или развертывании в localnet/testnet. В конечном итоге я хочу избежать распространенных ошибок, следовать лучшим принципам безопасности и обеспечить, чтобы функциональность, над которой я работ��ю, работала должным образом в реальных условиях. *

      7
      15