Ядро Контракта является основным компонентом протокола Wormhole на блокчейне. Он развернут на каждой поддерживаемой блокчейн-платформе и отвечает за эмиссию и проверку сообщений, которые позволяют осуществлять межцепочечное взаимодействие. Когда dApp или токен-мост взаимодействует с Wormhole, он обычно отправляет сообщения через этот контракт. Ядро Контракта выступает в качестве первой точки контакта для любого действия, которое нужно передать на другую цепочку.
Когда сообщение отправляется на исходной цепочке, Основной контракт фиксирует событие, которое включает в себя полезную нагрузку сообщения, адрес эмитента, номер последовательности и уровень согласованности. Эти данные затем наблюдаются Сетью Стражей. Важно отметить, что Основной контракт специфичен для цепочки, что означает, что каждая цепочка в экосистеме Wormhole имеет свою собственную версию контракта, развернутую и независимо контролируемую.
Основной контракт не выполняет логику, выходящую за рамки эмитации сообщений и верификации. Его роль заключается в надежной публикации событий в журнал транзакций, который впоследствии может быть прочитан и проверен внецепочечными компонентами. Простота его логики является намеренной — она снижает поверхности атаки и улучшает проверяемость на всех интегрированных цепях.
На целевой цепи Основной контракт также отвечает за получение VAA и проверку их подписей. Сообщение не может быть выполнено на целевой цепи, если VAA не соответствует необходимому порогу подписей, который обычно составляет 13 из 19 подписей Хранителей. Это обеспечивает согласованную и проверяемую модель безопасности на всех цепях.
Эмиттер — это любой смарт-контракт, который вызывает опубликоватьСообщение
функция в Основном Контракте для генерации сообщения между цепями. Это могут быть контракты, специфичные для приложений, или другие интеграции на уровне протокола, которые хотят отправить данные на другую блокчейн. Излучатели присваивают уникальный номер последовательности каждому сообщению, которое они создают, что помогает Стражам отслеживать и точно проверять каждое событие.
Каждое отправляемое сообщение включает три основных компонента: полезную нагрузку (то, что приложение хочет отправить), nonce (для предотвращения повторного использования) и номер последовательности (для сохранения порядка). Полезная нагрузка обычно представляет собой закодированные данные, которые представляют инструкции для выполнения на целевой цепочке, такие как создание токена, обновление состояния или выполнение действия.
Эмиттеры не обрабатывают сообщения — они просто отправляют их. Их ответственность заканчивается, как только сообщение записано в журнал транзакций. После этого сообщение полагается на Сетевой Гардий для проверки, подписания и передачи его на целевую цепочку, где оно может быть выполнено другим смарт-контрактом.
Ключевым преимуществом этой модели является модульность. Любой контракт может быть эмитентом, если он интегрирует соответствующий интерфейс и вызываетопубликоватьСообщение
функционирует правильно. Это позволяет разработчикам создавать собственные потоки сообщений, используя Wormhole, без необходимости понимать или изменять внутренние протоколы.
Журналы транзакций — это способ, с помощью которого Wormhole обеспечивает безопасную связь без необходимости полного сканирования цепочки. Когда сообщение публикуется через Основной контракт, контракт создает событие журнала, которое записывается в журнал событий блокчейна. Эти журналы доступны в цепочке и служат источником истины для наблюдения за сообщениями.
Стражи наблюдают за этими логами, чтобы определить, когда было отправлено действительное сообщение. Они анализируют логи в реальном времени и извлекают соответствующие данные (адрес эмитента, полезная нагрузка, номер nonce, номер последовательности). Логи также содержат временную метку блока, которая может быть использована для обеспечения соблюдения временных политик или зависимостей по порядку.
Логи являются эффективным механизмом для обнаружения сообщений, поскольку они избегают необходимости анализировать все состояние цепочки. Вместо этого Сеть Стражей может отслеживать конкретные сигнатуры событий, что значительно снижает вычислительные затраты. Это особенно важно при масштабировании на несколько цепочек с высокой пропускной способностью транзакций.
Поскольку журналы являются неизменяемыми и криптографически проверяются консенсусом основной цепи, они обеспечивают надежный источник для валидации сообщений. Это позволяет Wormhole поддерживать согласованную модель безопасности на различных цепях, даже если эти цепи имеют разные виртуальные машины или модели консенсуса.
Подтверждаемые действия (VAA) являются основным механизмом, который позволяет Wormhole безопасно связывать события между блокчейнами. После того как сообщение отправлено в исходной цепочке и перехвачено Стражами, они коллективно подписывают VAA, чтобы подтвердить, что сообщение было зафиксировано и проверено. VAA — это не просто подпись; он включает полный пакет данных, метаданные, такие как временные метки и детали эмитента, а также схему многосторонней подписи, подтверждающую консенсус среди Стражей.
VAA считается действительным только в том случае, если он содержит подписи от супербольшинства группы Защитников. На данный момент Wormhole требует 13 из 19 Защитников для подписания VAA. Этот порог сбалансирован между безопасностью и производительностью, позволяя быстро передавать сообщения, при этом обеспечивая сопротивление сговору или компрометации. Если порог не будет достигнут, VAA будет отклонен принимающей цепью.
VAA содержит точное сообщение, изначально отправленное, без каких-либо преобразований или изменений. Эта неизменность важна, потому что она позволяет целевой цепочке проверить сообщение по сравнению с оригинальным событием в цепочке. Если подписи и данные корректны, сообщение обрабатывается; в противном случае оно игнорируется.
Приложения, использующие Wormhole, не должны самостоятельно управлять процессом создания VAA. Это полностью обрабатывается Сетью Хранителей. Однако разработчики, интегрирующие Wormhole, должны создать логику на целевой цепочке для проверки VAA и выполнения соответствующих действий. Это может включать в себя эмиссию токенов, обновление состояния или вызов другой функции смарт-контракта.
Гардианы — это децентрализованные валидаторы, которые обеспечивают безопасность Wormhole. В настоящее время существует 19 узлов Гардианов, управляемых независимыми поставщиками инфраструктуры, включая известные организации в области блокчейна. Каждый Гардиан следит за всеми поддерживаемыми блокчейнами в экосистеме Wormhole, отслеживая новые сообщения, исходящие от основных контрактов.
Хранители наблюдают за каждой цепочкой в реальном времени и анализируют журналы транзакций, чтобы обнаружить, когда публикуется новое сообщение. Когда это происходит, каждый Хранитель независимо проверяет подлинность сообщения, формирует полезную нагрузку сообщения и подписывает её своим приватным ключом. Эти подписи затем объединяются в VAA, когда достигается порог подписи.
Роль Хранителей строго наблюдательная и аттестационная — они не выполняют никакой бизнес-логики и не управляют средствами. Эта разделение ответственности делает систему более безопасной и менее подверженной эксплуатации. Хранители не осуществляют консенсус между цепочками; вместо этого они выступают в качестве внешнего слоя валидации, который предоставляет криптографические гарантии относительно наблюдаемых событий.
Шпион — это легковесный наблюдательный процесс, который слушает сообщения, транслируемые в Сети Хранителей. Он не участвует в валидации или подписании, но обеспечивает полную видимость потока сообщений, включая VAA, наблюдения и пульсации Хранителей. Разработчики и приложения могут запустить собственный экземпляр Шпиона для отслеживания активности Wormhole, не становясь частью набора Хранителей.
Шпион подключается к одноранговой сети сплетен, используемой Хранителями, и получает сообщения по мере их передачи по системе. Это включает как подписанные VAA, так и необработанные наблюдения — неподтвержденные сообщения, которые еще не достигли порога подписи. Это дает разработчикам доступ к внутренней связи Wormhole почти в реальном времени.
Распространенный случай использования Spy — это панели аналитики в реальном времени или системы оповещения, которые уведомляют операторов, когда сообщения задерживаются или Guardians работают неэффективно. Поскольку Spy может видеть сообщения от всех Guardians, он служит прозрачным окном в здоровье и активность сети.
Запуск Шпиона не требует специальных разрешений или учетных данных. Это демон с открытым исходным кодом, который может развернуть любой желающий. Это делает его особенно полезным для команд dApp, которые хотят отслеживать сообщения Wormhole, связанные с их приложением, не полагаясь на сторонние ретрансляторы или инфраструктуру.
Релейеры — это оффчейн-агенты, которые доставляют VAA на целевые блокчейны. Хотя любой может технически передать VAA (поскольку они являются публичными и самопроверяемыми), Wormhole поддерживает структурированные релейеры, которые обеспечивают автоматическую доставку и мониторинг. Эти релейеры гарантируют, что как только сообщение подписано Стражами, оно быстро и надежно достигает целевой цепи.
Релееры не являются частью консенсуса и не требуют доверия. Их единственная задача — отправить подписанный VAA в основной контракт на целевой цепи, который примет или отклонит его на основе проверки подписи. Это означает, что даже если релеер неисправен или злонамерен, он не может изменить или подделать сообщение — VAA является единственным источником истины.
Существует два основных типа ретрансляторов в Wormhole. Стандартные ретрансляторы обрабатывают общие VAA и отправляют их без изменений. Они используются в базовом мосте токенов, обмене сообщениями и коммуникации протоколов. Специализированные ретрансляторы, с другой стороны, предназначены для более сложных случаев использования, таких как Wormhole Connect или Переводы Нативных Токенов, где они могут объединять сообщения, оптимизировать использование газа или выполнять логику постобработки.
Релееры улучшают пользовательский опыт, устраняя необходимость в ручной отправке VAA. Без них пользователям пришлось бы загружать VAA с конечной точки Guardian и вручную передавать его с помощью кошелька. Автоматизируя этот процесс, релееры позволяют dApps предлагать бесшовный кросс-чейн опыт.
Основные моменты
Ядро Контракта является основным компонентом протокола Wormhole на блокчейне. Он развернут на каждой поддерживаемой блокчейн-платформе и отвечает за эмиссию и проверку сообщений, которые позволяют осуществлять межцепочечное взаимодействие. Когда dApp или токен-мост взаимодействует с Wormhole, он обычно отправляет сообщения через этот контракт. Ядро Контракта выступает в качестве первой точки контакта для любого действия, которое нужно передать на другую цепочку.
Когда сообщение отправляется на исходной цепочке, Основной контракт фиксирует событие, которое включает в себя полезную нагрузку сообщения, адрес эмитента, номер последовательности и уровень согласованности. Эти данные затем наблюдаются Сетью Стражей. Важно отметить, что Основной контракт специфичен для цепочки, что означает, что каждая цепочка в экосистеме Wormhole имеет свою собственную версию контракта, развернутую и независимо контролируемую.
Основной контракт не выполняет логику, выходящую за рамки эмитации сообщений и верификации. Его роль заключается в надежной публикации событий в журнал транзакций, который впоследствии может быть прочитан и проверен внецепочечными компонентами. Простота его логики является намеренной — она снижает поверхности атаки и улучшает проверяемость на всех интегрированных цепях.
На целевой цепи Основной контракт также отвечает за получение VAA и проверку их подписей. Сообщение не может быть выполнено на целевой цепи, если VAA не соответствует необходимому порогу подписей, который обычно составляет 13 из 19 подписей Хранителей. Это обеспечивает согласованную и проверяемую модель безопасности на всех цепях.
Эмиттер — это любой смарт-контракт, который вызывает опубликоватьСообщение
функция в Основном Контракте для генерации сообщения между цепями. Это могут быть контракты, специфичные для приложений, или другие интеграции на уровне протокола, которые хотят отправить данные на другую блокчейн. Излучатели присваивают уникальный номер последовательности каждому сообщению, которое они создают, что помогает Стражам отслеживать и точно проверять каждое событие.
Каждое отправляемое сообщение включает три основных компонента: полезную нагрузку (то, что приложение хочет отправить), nonce (для предотвращения повторного использования) и номер последовательности (для сохранения порядка). Полезная нагрузка обычно представляет собой закодированные данные, которые представляют инструкции для выполнения на целевой цепочке, такие как создание токена, обновление состояния или выполнение действия.
Эмиттеры не обрабатывают сообщения — они просто отправляют их. Их ответственность заканчивается, как только сообщение записано в журнал транзакций. После этого сообщение полагается на Сетевой Гардий для проверки, подписания и передачи его на целевую цепочку, где оно может быть выполнено другим смарт-контрактом.
Ключевым преимуществом этой модели является модульность. Любой контракт может быть эмитентом, если он интегрирует соответствующий интерфейс и вызываетопубликоватьСообщение
функционирует правильно. Это позволяет разработчикам создавать собственные потоки сообщений, используя Wormhole, без необходимости понимать или изменять внутренние протоколы.
Журналы транзакций — это способ, с помощью которого Wormhole обеспечивает безопасную связь без необходимости полного сканирования цепочки. Когда сообщение публикуется через Основной контракт, контракт создает событие журнала, которое записывается в журнал событий блокчейна. Эти журналы доступны в цепочке и служат источником истины для наблюдения за сообщениями.
Стражи наблюдают за этими логами, чтобы определить, когда было отправлено действительное сообщение. Они анализируют логи в реальном времени и извлекают соответствующие данные (адрес эмитента, полезная нагрузка, номер nonce, номер последовательности). Логи также содержат временную метку блока, которая может быть использована для обеспечения соблюдения временных политик или зависимостей по порядку.
Логи являются эффективным механизмом для обнаружения сообщений, поскольку они избегают необходимости анализировать все состояние цепочки. Вместо этого Сеть Стражей может отслеживать конкретные сигнатуры событий, что значительно снижает вычислительные затраты. Это особенно важно при масштабировании на несколько цепочек с высокой пропускной способностью транзакций.
Поскольку журналы являются неизменяемыми и криптографически проверяются консенсусом основной цепи, они обеспечивают надежный источник для валидации сообщений. Это позволяет Wormhole поддерживать согласованную модель безопасности на различных цепях, даже если эти цепи имеют разные виртуальные машины или модели консенсуса.
Подтверждаемые действия (VAA) являются основным механизмом, который позволяет Wormhole безопасно связывать события между блокчейнами. После того как сообщение отправлено в исходной цепочке и перехвачено Стражами, они коллективно подписывают VAA, чтобы подтвердить, что сообщение было зафиксировано и проверено. VAA — это не просто подпись; он включает полный пакет данных, метаданные, такие как временные метки и детали эмитента, а также схему многосторонней подписи, подтверждающую консенсус среди Стражей.
VAA считается действительным только в том случае, если он содержит подписи от супербольшинства группы Защитников. На данный момент Wormhole требует 13 из 19 Защитников для подписания VAA. Этот порог сбалансирован между безопасностью и производительностью, позволяя быстро передавать сообщения, при этом обеспечивая сопротивление сговору или компрометации. Если порог не будет достигнут, VAA будет отклонен принимающей цепью.
VAA содержит точное сообщение, изначально отправленное, без каких-либо преобразований или изменений. Эта неизменность важна, потому что она позволяет целевой цепочке проверить сообщение по сравнению с оригинальным событием в цепочке. Если подписи и данные корректны, сообщение обрабатывается; в противном случае оно игнорируется.
Приложения, использующие Wormhole, не должны самостоятельно управлять процессом создания VAA. Это полностью обрабатывается Сетью Хранителей. Однако разработчики, интегрирующие Wormhole, должны создать логику на целевой цепочке для проверки VAA и выполнения соответствующих действий. Это может включать в себя эмиссию токенов, обновление состояния или вызов другой функции смарт-контракта.
Гардианы — это децентрализованные валидаторы, которые обеспечивают безопасность Wormhole. В настоящее время существует 19 узлов Гардианов, управляемых независимыми поставщиками инфраструктуры, включая известные организации в области блокчейна. Каждый Гардиан следит за всеми поддерживаемыми блокчейнами в экосистеме Wormhole, отслеживая новые сообщения, исходящие от основных контрактов.
Хранители наблюдают за каждой цепочкой в реальном времени и анализируют журналы транзакций, чтобы обнаружить, когда публикуется новое сообщение. Когда это происходит, каждый Хранитель независимо проверяет подлинность сообщения, формирует полезную нагрузку сообщения и подписывает её своим приватным ключом. Эти подписи затем объединяются в VAA, когда достигается порог подписи.
Роль Хранителей строго наблюдательная и аттестационная — они не выполняют никакой бизнес-логики и не управляют средствами. Эта разделение ответственности делает систему более безопасной и менее подверженной эксплуатации. Хранители не осуществляют консенсус между цепочками; вместо этого они выступают в качестве внешнего слоя валидации, который предоставляет криптографические гарантии относительно наблюдаемых событий.
Шпион — это легковесный наблюдательный процесс, который слушает сообщения, транслируемые в Сети Хранителей. Он не участвует в валидации или подписании, но обеспечивает полную видимость потока сообщений, включая VAA, наблюдения и пульсации Хранителей. Разработчики и приложения могут запустить собственный экземпляр Шпиона для отслеживания активности Wormhole, не становясь частью набора Хранителей.
Шпион подключается к одноранговой сети сплетен, используемой Хранителями, и получает сообщения по мере их передачи по системе. Это включает как подписанные VAA, так и необработанные наблюдения — неподтвержденные сообщения, которые еще не достигли порога подписи. Это дает разработчикам доступ к внутренней связи Wormhole почти в реальном времени.
Распространенный случай использования Spy — это панели аналитики в реальном времени или системы оповещения, которые уведомляют операторов, когда сообщения задерживаются или Guardians работают неэффективно. Поскольку Spy может видеть сообщения от всех Guardians, он служит прозрачным окном в здоровье и активность сети.
Запуск Шпиона не требует специальных разрешений или учетных данных. Это демон с открытым исходным кодом, который может развернуть любой желающий. Это делает его особенно полезным для команд dApp, которые хотят отслеживать сообщения Wormhole, связанные с их приложением, не полагаясь на сторонние ретрансляторы или инфраструктуру.
Релейеры — это оффчейн-агенты, которые доставляют VAA на целевые блокчейны. Хотя любой может технически передать VAA (поскольку они являются публичными и самопроверяемыми), Wormhole поддерживает структурированные релейеры, которые обеспечивают автоматическую доставку и мониторинг. Эти релейеры гарантируют, что как только сообщение подписано Стражами, оно быстро и надежно достигает целевой цепи.
Релееры не являются частью консенсуса и не требуют доверия. Их единственная задача — отправить подписанный VAA в основной контракт на целевой цепи, который примет или отклонит его на основе проверки подписи. Это означает, что даже если релеер неисправен или злонамерен, он не может изменить или подделать сообщение — VAA является единственным источником истины.
Существует два основных типа ретрансляторов в Wormhole. Стандартные ретрансляторы обрабатывают общие VAA и отправляют их без изменений. Они используются в базовом мосте токенов, обмене сообщениями и коммуникации протоколов. Специализированные ретрансляторы, с другой стороны, предназначены для более сложных случаев использования, таких как Wormhole Connect или Переводы Нативных Токенов, где они могут объединять сообщения, оптимизировать использование газа или выполнять логику постобработки.
Релееры улучшают пользовательский опыт, устраняя необходимость в ручной отправке VAA. Без них пользователям пришлось бы загружать VAA с конечной точки Guardian и вручную передавать его с помощью кошелька. Автоматизируя этот процесс, релееры позволяют dApps предлагать бесшовный кросс-чейн опыт.
Основные моменты