Протягом останніх кількох місяців значні зусилля були спрямовані на розробку Sui Bridge, рідного мосту для екосистеми Sui. Ця ініціатива покращує доступність Sui для ширшої спільноти та покращує взаємодію з іншими блокчейнами.
Sui Bridge, важливий компонент екосистеми Sui, забезпечує безпечну та ефективну передачу активів і даних між Sui та іншими блокчейн-мережами. Ця можливість не тільки розширює охоплення додатків, створених на основі Sui, але також пропонує шлях до більш глибокої інтеграції в ширший ландшафт блокчейну. Взаємодія збільшує зростання та впровадження Sui, дозволяючи активам в інших мережах, таких як Ethereum, безпечно та легко переносити на Sui.
Sui Bridge фон
У контексті екосистеми блокчейну міст — це протокол, який забезпечує взаємодію та зв’язок між незалежними мережами блокчейну. Мости полегшують передачу даних через кордони, дозволяючи користувачам переміщувати свої активи з одного ланцюга в інший і навіть виконувати більш складні операції, такі як передача повідомлень між ланцюжками.
Серед небагатьох варіантів дизайну мосту Sui Bridge використовує замок і монетний механізм, одне з найбільш широко використовуваних рішень. Як дизайн блокування та монетного двору, Sui Bridge зберігає рідні активи Ethereum у смарт-контрактах Ethereum, тоді як він карбує або спалює актив Sui залежно від напрямку взаємодії мосту.
Як рідний міст на Sui, Sui Bridge не потребує додаткової довіри. Об’єкти, які захищають Sui, ті самі, що захищають Sui Bridge, а код для Sui Bridge запікається в структуру Sui.
У своєму поточному стані Sui Bridge доступний у Testnet і підтримує з’єднання токенів, таких як ETH, WETH, WBTC і USDT, між Ethereum Sepolia та Sui Testnet. Після того, як Sui Bridge буде випущено в Mainnet, підтримка більшої кількості ресурсів буде пріоритетною. Пізніші версії Sui Bridge додадуть нові функції, такі як користувацькі міжланцюгові повідомлення та інтеграція з іншими блокчейнами.
Архітектура високого рівня
Sui Bridge має чотири ключові компоненти: комітет Sui Bridge або мережа вузлів, смарт-контракти Sui Bridge, повні вузли, що працюють на Ethereum і Sui, і клієнт мосту.
Клієнт — це інтерфейс між користувачем та інфраструктурою Sui Bridge. Він координує дії користувача, надсилаючи правильно відформатовані транзакції та збираючи підписи вузлів Sui Bridge за потреби. Клієнт використовує повні вузли для подання транзакцій з обох сторін мосту. Вузли Sui Bridge також запускають повні вузли Ethereum і Sui, щоб прослуховувати дії з’єднання та відповідати на них за допомогою наступної транзакції. У той час як клієнт мосту не має дозволу і може бути запущений будь-ким, багато вузлів мосту вмикатимуть клієнтів мосту, щоб забезпечити життєдіяльність мережі.
Sui Bridge використовує інфраструктуру, що працює як на Ethereum, так і на Sui разом із мережею вузлів Sui Bridge.
Під час перемикання активів з Ethereum на Sui користувач вносить активи в смарт-контракт Sui Bridge на Ethereum. Потім клієнт спостерігає за цією транзакцією та координує процес з’єднання. Комітет Sui Bridge керує повними вузлами Ethereum, які також відстежують такі дії з’єднання, щоб перевірити, чи запити клієнта є законними.
Після перевірки дія з’єднання завершується карбуванням з’єднаних ресурсів для користувача через пакет Sui Bridge на Sui. Завдяки таким низьким витратам на підключення Sui Validators наразі субсидує плату за газ, пов’язану з перехідними транзакціями на Sui, і дозволяє клієнту виконувати транзакції автоматично, створюючи безперебійний досвід підключення до Sui.
Під час переходу від Sui до Ethereum процес подібний, за винятком того, що користувачі повинні вручну подати заявку на транзакцію в Ethereum. Ця транзакція включає дані підпису з вузлів Sui Bridge у дані виклику транзакції, що дозволяє обліковому запису Ethereum викупити вказані активи, заблоковані в мостовому контракті.
Крім того, усі записи та схвалення мостів зберігаються в ланцюжку об’єктів мосту. Це можливо в Sui, оскільки його зберігання та витрати на газ доступно низькі. Контракт Sui Bridge також керує діями управління, які контролюються комітетом Sui Bridge.
Містові повідомлення
Щоб забезпечити низькі витрати на газ, Sui Bridge створює повідомлення в спрощений спосіб, який легко декодувати для приймального ланцюга. Загальний формат обміну повідомленнями використовується для того, щоб кожен ланцюжок міг ефективно декодувати та перевіряти повідомлення та підписи.
Приклад коду переміщення:
public struct BridgeMessage має copy, drop, store { message_type: u8, message_version: u8, seq_num: u64, source_chain: u8, payload: vector<u8> }
Приклад коду Solidity:
struct Message { uint8 messageType; версія uint8; uint64 nonce; uint8 ідентифікатор ланцюга; корисне навантаження байтів; }
Ці мостові повідомлення розроблені з урахуванням простоти та ефективності. Структура мінімалістична, містить лише важливі поля, такі як тип повідомлення, версія, порядковий номер, ідентифікатор джерела та корисне навантаження. Ця оптимізована конструкція зменшує складність і обчислювальні витрати, забезпечуючи низькі витрати на газ, одночасно сприяючи швидкому та надійному перехресному зв’язку.
Охорона мосту
Визначення моделі довіри мосту є одним із найважливіших проектних рішень при розробці мосту для підтримки жвавої екосистеми та великих потоків. Міст має бути безпечним і децентралізованим. Хоча в деяких конструкціях мостів ці атрибути можуть суперечити один одному, розробка рідного мосту дає можливість використовувати безпеку Sui для захисту Sui Bridge.
Ті самі оператори вузлів, які захищають Sui, запускаючи вузли перевірки, керують і підтримують інфраструктуру, на якій працює Sui Bridge. Sui Bridge успадковує децентралізовану мережу операторів вузлів, які мають високу здатність запускати та захищати інфраструктуру Sui.
Як згадувалося вище, більшість операцій Sui Bridge відбуваються на Sui та розглядають Sui як панель керування мостом. Це виграє від безпеки, яку успадковує програмне забезпечення, розроблене в Move.
Мостовий комітет
Sui Bridge захищено тим самим набором перевірок, що й Sui. На етапі Testnet комітет складається з підмножини валідаторів Testnet. У мережі Mainnet більшість, якщо не всі активні валідатори Sui, будуть частиною мостового комітету. Динамічне керування комітетом буде реалізовано після Мейннету, щоб уможливити приєднання нових валідаторів. Дозвол лише валідаторам Sui бути частиною комітету Sui Bridge забезпечує успадкування припущень щодо безпеки, властивостей і соціального консенсусу.
Для підтримки високого рівня безпеки та сумісності з іншими блокчейн-мережами Sui Bridge використовує алгоритм цифрового підпису еліптичної кривої (ECDSA) для підписів Комітету мостів. Використовуючи ECDSA, Sui Bridge забезпечує безперебійну взаємодію та безпечну перевірку транзакцій, зміцнюючи цілісність і надійність системи.
Перевірка підпису
Sui Bridge використовує відновлювані підписи ECDSA, які дозволяють відновлювати відкритий ключ безпосередньо з самого підпису. Ця функція спрощує процес перевірки, дозволяючи нам отримати відкритий ключ і підтвердити автентичність і цілісність підпису, не вимагаючи попереднього знання відкритого ключа.
Повідомлення вважається дійсним лише тоді, коли сукупна вага підписів досягає або перевищує попередньо визначене порогове значення. Цей пороговий механізм гарантує, що для підтвердження повідомлення потрібна достатня кількість автентифікованих підписів, тим самим підвищуючи безпеку та надійність системи. Застосовуючи цей підхід, ми захищаємось від шахрайства та забезпечуємо обробку лише законних транзакцій.
Приклад коду в Move:
... let mut message_bytes = SUI_MESSAGE_PREFIX; message_bytes.append(message.serialize_message()); нехай mut поріг = 0; while (i < signature_counts) { let pubkey = ecdsa_k1::secp256k1_ecrecover(&signatures[i], &message_bytes, 0); // перевірте дублікат // і переконайтеся, що пуб-ключ є частиною комітету assert!(!seen_pub_key.contains(&pubkey), EDuplicatedSignature); assert!(self.members.contains(&pubkey), EInvalidSignature); // отримати вагу підпису комітету та перевірити, що pubkey є частиною комітету let member = &self.members[&pubkey]; if (!member.blocklisted) { threshold = threshold + member.voting_power; }; seen_pub_key.insert(pubkey); i = i + 1; }; ...
Приклад коду в Solidity:
функція verifySignatures(bytes[] підписи пам’яті, повідомлення пам’яті BridgeUtils.Message) перевизначення зовнішнього вигляду { uint32 requiredStake = BridgeUtils.requiredStake(message); uint16 approvalStake; підписувач адреси; растрове зображення uint256; // Перевірка дійсності кожного підпису та агрегування частки схвалення для (uint16 i; i < signatures.length; i++) { bytes memory signature = signatures[i]; // відновити підписувача з підпису (bytes32 r, bytes32 s, uint8 v) = splitSignature(signature); (підписувач,,) = ECDSA.tryRecover(BridgeUtils.computeHash(повідомлення), v, r, s); require(!blocklist[підписувач], "BridgeCommittee: підписувач заблокований"); require(committeeStake[signer] > 0, "BridgeCommittee: підписант не має частки"); uint8 index = CommitteeIndex[підписувач]; uint256 маска = 1 << індекс; require(bitmap & mask == 0, "BridgeCommittee: надано дублікат підпису"); растрове зображення |= маска; approvalStake += CommitteeStake[підписант]; } require(approvalStake >= requiredStake, "BridgeCommittee: недостатня сума ставки"); }
Побудова взаємодії
Рідний міст Sui не тільки забезпечує безпечний та ефективний засіб передачі активів між блокчейн-мережами, але й закладає основу для більш просунутих крос-ланцюгових взаємодій. Використовуючи свою надійну модель довіри, використовуючи ECDSA для безпечних транзакцій, які можна перевірити, і використовуючи процес перевірки підпису на основі комітетів, Sui Bridge забезпечує високу безпеку та надійність, залишаючись при цьому гнучким.
Масштабованість і гнучкість архітектури мосту Sui дозволяють майбутні розширення та інтеграцію з іншими блокчейн-мережами. У міру розвитку екосистеми міст підтримуватиме ширший набір активів і можливостей, таких як користувацький міжланцюжковий обмін повідомленнями, що дозволяє створювати унікальні міжланцюгові взаємодії.
Sui Bridge являє собою значний крок вперед у сфері сумісності Sui, пропонуючи цілісне та високобезпечне рішення для передачі активів між мережами. Оскільки Sui Bridge запускається в Mainnet, користувачі можуть сподіватися на все більш надійний і універсальний міст, який відповідає поточним вимогам, а також передбачає майбутні потреби.