Добавить в корзинуПозвонить
Найти в Дзене
Nervos Network

Обновление формата адреса Nervos

Формат адреса, используемый на L1 Nervos, обновляется для поддержки новых функций. Адреса уровня 1 начинаются с «ckb» и используются во многих популярных dApps и кошельках в экосистеме Nervos. В Nervos адрес представляет собой нечто большее, чем просто открытый ключ к учетной записи. Это формат, который используется для кодирования информации о том, как получить доступ к активу, в том числе о том, кто является владельцем, какой код смарт-контракта им управляет (скрипт блокировки) и какие конкретные условия должны быть выполнены для предоставления доступа. Существующий формат адреса устарел и «Full Payload Format», которые обычно называют «адресами CKB2021». Этот новый формат адреса позволяет использовать определенные функции, которые являются частью основного обновления протокола, а также лучше разработан, чтобы быть более ориентированным на будущее, устраняя необходимость частых обновлении. Удаление коротких адресов Первое, что вы заметите, это то, что адреса CKB2021 обычно длиннее,
Оглавление

Формат адреса, используемый на L1 Nervos, обновляется для поддержки новых функций. Адреса уровня 1 начинаются с «ckb» и используются во многих популярных dApps и кошельках в экосистеме Nervos.

В Nervos адрес представляет собой нечто большее, чем просто открытый ключ к учетной записи. Это формат, который используется для кодирования информации о том, как получить доступ к активу, в том числе о том, кто является владельцем, какой код смарт-контракта им управляет (скрипт блокировки) и какие конкретные условия должны быть выполнены для предоставления доступа.

Существующий формат адреса устарел и «Full Payload Format», которые обычно называют «адресами CKB2021». Этот новый формат адреса позволяет использовать определенные функции, которые являются частью основного обновления протокола, а также лучше разработан, чтобы быть более ориентированным на будущее, устраняя необходимость частых обновлении.

Удаление коротких адресов

Первое, что вы заметите, это то, что адреса CKB2021 обычно длиннее, чем старый формат коротких адресов, который вы, возможно, видели в широко используемых кошельках, таких как Neuron, imToken и на некоторых биржах.

Ниже приведен пример короткого адреса в старом формате:

ckt1qyqqvkyxvkpndndrt2xd6tk84clrz4elrnws5ewqm9

Используя формат адреса CKB2021, этот адрес будет преобразован в:

ckt1qzda0cr08m85hc8jlnfp3zer7xulejywt49kt2rr0vthywaa50xwsqgxtzrxtqekek344rxa9mr6u0332ul3ehgvcawxp

Оба эти адреса предназначены для одной и той же учетной записи, использующей сценарий блокировки SECP256K1 + Blake160, который чаще называют блокировкой по умолчанию. В коротком адресе отсутствует информация об используемом сценарии блокировки, а вместо этого используется однобайтовый предопределенный идентификационный код, указывающий на то, что использовалась блокировка по умолчанию. Это работает, потому что блокировка по умолчанию считается общеизвестной. Блокировка по умолчанию была включена в блок генезиса, и это наиболее поддерживаемый и часто используемый скрипт блокировки в экосистеме Nervos, поэтому каждое децентрализованное приложение должно знать о нем.

Однако есть проблемы с этим подходом. Все должны согласиться с тем, что такое хорошо известный сценарий блокировки. Пользователи Portal Wallet быстро заметили, что их адреса намного длиннее, чем адреса от Neuron и imToken. Это связано с тем, что Portal Wallet использует PW-Lock, который был создан командой Lay2 и не считался широко известным на момент его выпуска. Это создает проблему управления, поскольку кто-то должен решать, что считать общеизвестным, поэтому это также можно рассматривать как форму централизации.

В дополнение к проблеме управления для этого требуется, чтобы список известных сценариев блокировки был включен в конфигурацию каждого dApp и кошелька. Если список обновляется, каждый отдельный dApp и кошелек должен обновить свою конфигурацию, иначе они не смогут правильно отправлять на некоторые адреса. Это создает еще одну проблему, поскольку было чрезвычайно трудно заставить всех своевременно делать обновления. У некоторых пользователей были проблемы с тем, что некоторые биржи не могли отправить CKB только на некоторые адреса кошельков. Это связано с устаревшими библиотеками, которые биржа не обновила, хотя была уведомлена о проблеме и шагах по ее устранению.

Таргетинг CKB-VM V1

С основным обновлением протокола приходит CKB-VM v1, новая версия виртуальной машины, которая выполняет смарт-контракты на уровне 1 Nervos. В CKB-VM v1 есть множество обновлений, которые могут быть очень полезны для разработки смарт-контрактов, но в предыдущей версии формат адреса не позволял указать, какая версия виртуальной машины должна использоваться для сценария блокировки.

Формат адреса CKB2021 позволяет указать необходимую версию ВМ через значение `hash type`. Это значение явно определено как один байт в поле данных типа хэша, что означает, что если в будущем будет добавлено больше версий виртуальных машин, формат адреса CKB2021 сможет ориентироваться на них без необходимости изменять формат адреса специально для использования новой виртуальной машины.

Окончание

Если вы являетесь разработчиком, который использует адреса уровня 1 в любом качестве, вам может потребоваться внести обновления, чтобы добавить поддержку адресов CKB2021. В некоторых случаях это так же просто, как обновить ваши библиотеки и программное обеспечение узла. Мы рекомендуем всем разработчикам прочитать Руководство по миграции хардфорка CKB2021, чтобы убедиться, что ваше децентрализованное приложение правильно обновлено и готово к использованию.

Если вы являетесь пользователем какого-либо dApp, приложения или биржи, в котором возникают проблемы, мы рекомендуем вам сообщать о проблемах, с которыми вы сталкиваетесь, непосредственно разработчикам данного dApp. Только разработчики могут устранять проблемы с продуктом, который они предоставляют, и просмотреть отчеты своих клиентов — лучший способ сообщить им, что нужно исправить.

Несмотря на то, что эти типы изменений могут иногда приводить к несовместимости во время выполнения обновлений, мы считаем, что внесение этого изменения сейчас будет иметь гораздо большие преимущества в долгосрочной перспективе, поскольку мы продолжаем добавлять новые функции и расширять нашу экосистему.