4 октября 2021

С заботой о разработчиках: обзор обновления Hangzhou

Два месяца назад сеть Tezos активировала обновление Granada. А в конце сентября разработчики предложили новое обновление — Hangzhou. Его назвали в честь города Ганчжоу, в котором сосредоточена IT-индустрия Китая.

Обновление Hangzhou увеличит безопасность средств пользователей, скорость выполнения смарт-контрактов и удобство разработки. Также оно продлит бейкинг ликвидности минимум до активации следующего восьмого обновления Tezos.

На момент публикации Hangzhou почти перешло во вторую фазу голосования. Прогресс принятия в реальном времени — на Tezos Agora.

Рассказываем о нововведениях Hangzhou: Timelock, On-Chain Views, глобальных константах и кэше.

Timelock

Timelock — это тип примитивов смарт-контрактов, с помощью которого содержание транзакции нельзя увидеть до заданного времени. 

Timelock нужен для защиты пользователей Tezos от так называемой «торговли вперед». Пример: Алиса обращается к контракту Qupiuswap для обмена токенов. Бейкер, который создает текущий блок, видит эту транзакцию. Он может быстро создать встречный запрос к Qupiswap и поставить его в начало блока, а запрос Алисы — в конец. Блокчейн выполнит его транзакцию быстрее, и бейкер получит прибыль за счет торговли против Алисы.

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

Michelson On-Chain Views

View-функции контрактов нужны для просмотра состояния хранилища других смарт-контрактов. В текущей версии протокола View первого контракта запрашивает данные, а второй контракт их возвращает. У этой реализации есть уязвимость: первый контракт не имеет гарантии того, что второй контракт не подменил данные.

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

Глобальные константы

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

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

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

Кэш

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

Команда Nomadic Labs разработала концепцию кэша, которая хранит часто используемые данные в оперативной памяти бейкеров. Сеть быстрее получает код контрактов и состояние хранилищ, и быстрее выполняет популярные операции вроде обмена на DEX или перевода популярных токенов.

Подписывайтесь на нас, чтобы не пропустить новости Tezos:

  1. Telegram-канал
  2. Facebook
  3. Twitter на русском и украинском языках
  4. Twitter на английском языке
  5. YouTube-канал
  6. Instagram
  7. LinkedIn
  8. hub на ForkLog

Изначально мы опубликовали этот материал в блоге Tezos Ukraine.