З турботою про розробників: огляд оновлення 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 Ukraine, щоб нічого не пропустити:
- Telegram-канал.
- Facebook.
- Twitter українською та російською мовами.
- Twitter англійською мовою.
- YouTube-канал.
- Instagram.
- LinkedIn.
- hub на ForkLog.
