Що, якби ти щогодини втрачав пам'ять? І вам потрібно постійно когось просити розповісти, що ви зробили? Це поточний стан розумних контрактів. У таких блокчейнах, як Ethereum, смарт-контракти не можуть отримати прямий доступ до станів, що перевищують 256 блоків. Ця проблема ще більше загострюється в екосистемі з кількома ланцюжками, де пошук і перевірка даних на різних рівнях виконання ще складніше.
У 2020 році Віталік Бутерін і Томаш Станчак запропонували спосіб доступу до даних у часі. У той час як EIP застоїв, потреба в ньому знову виникла в багатоланцюжковому світі, орієнтованому на згортання. Сьогодні докази зберігання з’явилися як рубіж, щоб надати обізнаності та пам’яті розумним контрактам.
Є кілька способів, за допомогою яких прикладні програми можуть отримати доступ до даних і стану. Усі підходи вимагають, щоб програма довіряла людям/організаціям або криптоекономічній безпеці чи коду, і мали певні компроміси:
Враховуючи проблеми та обмеження цих рішень, існує очевидна потреба зберігати та надавати хеші блоків у мережі. Ось де з’являються докази зберігання. Щоб краще зрозуміти докази зберігання, давайте швидко поглянемо на зберігання даних у блокчейнах.
Блокчейн — це публічна база даних, яка оновлюється та використовується багатьма комп’ютерами в мережі. Дані та стан зберігаються в послідовних групах, які називаються блоками, і кожен блок криптографічно посилається на свого батька, зберігаючи хеш заголовка попереднього блоку.
Візьмемо для прикладу блок Ethereum. Ethereum використовує певний тип дерева Merkle, відомий як «дерево Merkle Patricia» (MPT). Заголовки блоків Ethereum містять корені чотирьох різних спроб Merkle-Patricia, тобто Trie стану, Trie зберігання, Trie квитанцій і Trie транзакцій. Ці 4 спроби кодують відображення, які містять усі дані Ethereum. Дерева Merkle використовуються завдяки їх ефективності зберігання даних. Використовуючи рекурсивні хеші, зрештою потрібно зберігати лише кореневий хеш, що економить багато місця. Вони дозволяють будь-кому довести існування елемента в дереві, довівши, що рекурсивне хешування вузлів призводить до того самого кореневого хешу. Докази Merkle дозволяють легким клієнтам Ethereum отримати відповіді на такі запитання:
Замість завантаження кожної транзакції та кожного блоку «легкий клієнт» може лише завантажити ланцюжок заголовків блоків і перевірити інформацію за допомогою Merkle Proofs. Це робить загальний процес високоефективним. Щоб краще зрозуміти реалізацію, переваги та проблеми, пов’язані з Merkle Trees, перегляньте цю статтю дослідження Віталіка та Maven11.
Докази зберігання дозволяють нам довести, що щось закріплено в базі даних і є дійсним, а також за допомогою криптографічних зобов’язань. Якщо ми можемо надати такий доказ, це підтверджене твердження про те, що щось сталося в блокчейні.
Докази зберігання дозволяють дві основні функції:
Докази зберігання на дуже високому рівні перевіряють, чи є конкретний блок частиною канонічної історії блокчейну, а потім перевіряють, чи є певні запитувані дані частиною блоку. Цього можна досягти за допомогою:
Деякі з проектів, які використовують цей підхід, включають Herodotus, Lagrange, Axiom, Hyper Oracle, Brevis Network і nil Foundation. Незважаючи на те, що докладаються значні зусилля, щоб зробити додатки свідомими стану в кількох блокчейнах, IBC (Inter Blockchain Communication) виділяється як стандарт сумісності, який дає змогу таким програмам, як ICQ (міжланцюгові запити) та ICA (міжланцюгові облікові записи). ICQ дозволяє програмам у ланцюзі A запитувати стан ланцюга B, включаючи запит у простий пакет IBC, а ICA дозволяє одному блокчейну безпечно контролювати обліковий запис в іншому блокчейні. Їх поєднання може створити цікаві варіанти використання між ланцюгами. Постачальники RaaS, такі як Saga, за умовчанням пропонують ці функції для всіх своїх мереж додатків за допомогою IBC.
Існує багато способів оптимізації доказів зберігання, щоб знайти правильний баланс споживання пам’яті, часу перевірки, часу перевірки, ефективності обчислень і досвіду розробника. Загальний процес можна розділити на 3 основні підпроцеси.
Доступ до даних: у цьому підпроцесі постачальник послуг отримує доступ до заголовків блоків вихідного ланцюжка безпосередньо на рівні виконання або через підтримку кешу в ланцюжку. Для доступу до даних через ланцюги потрібна перевірка консенсусу ланцюга джерела щодо ланцюга призначення. Деякі підходи та оптимізації, які застосовуються, включають:
Разом із доступом до даних смарт-контракти також повинні мати можливість виконувати довільні обчислення поверх даних. Хоча деякі випадки використання можуть не вимагати обчислень, це важлива додаткова послуга для багатьох інших випадків використання. Багато постачальників послуг дозволяють обчислювати дані, оскільки zk-доказ обчислень може бути згенерований і наданий у ланцюжку для перевірки. Оскільки існуючі AMP-рішення, як-от Axelar, LayerZero, Polyhedra Network, потенційно можуть використовуватися для доступу до даних, обробка даних може стати відмінною рисою для постачальників послуг із збереженням даних.
Наприклад, Hyper Oracle дозволяє розробникам визначати спеціальні обчислення поза мережею за допомогою JavaScript. Brevis розробив відкритий ринок ZK Query Engines, який приймає запити даних від dApps і обробляє їх за допомогою атестованих заголовків блоків. Смарт-контракт надсилає запит на дані, які збирає перевірка з торгової площадки. Програма перевірки генерує доказ на основі вхідних даних запиту, відповідних заголовків блоків (із рівня агрегації Brevis) і результатів. Lagrange представив ZK Big Data Stack, щоб підтвердити моделі розподіленого програмування, такі як SQL, MapReduce і Spark/RDD. Докази є модульними і можуть бути згенеровані з будь-якого заголовка блоку, що походить від існуючих перехресних мостів і протоколів AMP. ZK MapReduce, перший продукт у стеку Lagrange ZK BigData, є механізмом розподілених обчислень (на основі добре відомої моделі програмування MapReduce) для підтвердження результатів обчислень із залученням значних наборів багатоланцюжкових даних. Наприклад, одне підтвердження ZKMR може бути використане для підтвердження змін у ліквідності DEX, розгорнутого на 4–5 ланцюжках протягом певного часового вікна. Для відносно простих запитів обчислення також можна виконувати безпосередньо в ланцюжку, як це робив Геродот на даний момент.
Докази стану та зберігання можуть розблокувати багато нових варіантів використання смарт-контрактів на прикладному, проміжному програмному забезпеченні та рівні інфраструктури. Деякі з них:
Управління:
Усі наведені вище докази можна використовувати для надання користувачам персоналізованого досвіду. Dapps може пропонувати знижки або привілеї, щоб утримати досвідчених трейдерів або користувачів, і запропонувати спрощену роботу для користувачів-початківців.
Останні два випадки використання вимагатимуть оновлення доказу кожного разу, коли до вихідного ланцюга додається новий блок.
Поінформованість дає змогу технологічним компаніям краще обслуговувати своїх клієнтів. Від ідентифікації користувача до купівельної поведінки та соціальних графіків, технологічні компанії використовують обізнаність, щоб розблокувати такі можливості, як точне націлювання, сегментація клієнтів і вірусний маркетинг. Традиційним технологічним компаніям потрібен чіткий дозвіл від користувачів, і вони повинні бути обережними під час керування даними користувачів. Однак усі дані користувача в блокчейнах без дозволу є загальнодоступними, без розкриття особи користувача. Розумні контракти повинні мати можливість використовувати загальнодоступні дані для кращого обслуговування користувачів. Розробка та впровадження більш спеціалізованих екосистем зробить обізнаність держави з часом, а блокчейни стануть все більш важливою проблемою, яку потрібно вирішити. Докази зберігання можуть дозволити Ethereum стати рівнем ідентифікації та власності на активи, а також бути рівнем розрахунків. Користувачі могли підтримувати свою особу та ключові активи в Ethereum, які можна було використовувати в кількох блокчейнах без постійного з’єднання активів. Ми продовжуємо радіти новим можливостям і сценаріям використання, які відкриються в майбутньому.
Що, якби ти щогодини втрачав пам'ять? І вам потрібно постійно когось просити розповісти, що ви зробили? Це поточний стан розумних контрактів. У таких блокчейнах, як Ethereum, смарт-контракти не можуть отримати прямий доступ до станів, що перевищують 256 блоків. Ця проблема ще більше загострюється в екосистемі з кількома ланцюжками, де пошук і перевірка даних на різних рівнях виконання ще складніше.
У 2020 році Віталік Бутерін і Томаш Станчак запропонували спосіб доступу до даних у часі. У той час як EIP застоїв, потреба в ньому знову виникла в багатоланцюжковому світі, орієнтованому на згортання. Сьогодні докази зберігання з’явилися як рубіж, щоб надати обізнаності та пам’яті розумним контрактам.
Є кілька способів, за допомогою яких прикладні програми можуть отримати доступ до даних і стану. Усі підходи вимагають, щоб програма довіряла людям/організаціям або криптоекономічній безпеці чи коду, і мали певні компроміси:
Враховуючи проблеми та обмеження цих рішень, існує очевидна потреба зберігати та надавати хеші блоків у мережі. Ось де з’являються докази зберігання. Щоб краще зрозуміти докази зберігання, давайте швидко поглянемо на зберігання даних у блокчейнах.
Блокчейн — це публічна база даних, яка оновлюється та використовується багатьма комп’ютерами в мережі. Дані та стан зберігаються в послідовних групах, які називаються блоками, і кожен блок криптографічно посилається на свого батька, зберігаючи хеш заголовка попереднього блоку.
Візьмемо для прикладу блок Ethereum. Ethereum використовує певний тип дерева Merkle, відомий як «дерево Merkle Patricia» (MPT). Заголовки блоків Ethereum містять корені чотирьох різних спроб Merkle-Patricia, тобто Trie стану, Trie зберігання, Trie квитанцій і Trie транзакцій. Ці 4 спроби кодують відображення, які містять усі дані Ethereum. Дерева Merkle використовуються завдяки їх ефективності зберігання даних. Використовуючи рекурсивні хеші, зрештою потрібно зберігати лише кореневий хеш, що економить багато місця. Вони дозволяють будь-кому довести існування елемента в дереві, довівши, що рекурсивне хешування вузлів призводить до того самого кореневого хешу. Докази Merkle дозволяють легким клієнтам Ethereum отримати відповіді на такі запитання:
Замість завантаження кожної транзакції та кожного блоку «легкий клієнт» може лише завантажити ланцюжок заголовків блоків і перевірити інформацію за допомогою Merkle Proofs. Це робить загальний процес високоефективним. Щоб краще зрозуміти реалізацію, переваги та проблеми, пов’язані з Merkle Trees, перегляньте цю статтю дослідження Віталіка та Maven11.
Докази зберігання дозволяють нам довести, що щось закріплено в базі даних і є дійсним, а також за допомогою криптографічних зобов’язань. Якщо ми можемо надати такий доказ, це підтверджене твердження про те, що щось сталося в блокчейні.
Докази зберігання дозволяють дві основні функції:
Докази зберігання на дуже високому рівні перевіряють, чи є конкретний блок частиною канонічної історії блокчейну, а потім перевіряють, чи є певні запитувані дані частиною блоку. Цього можна досягти за допомогою:
Деякі з проектів, які використовують цей підхід, включають Herodotus, Lagrange, Axiom, Hyper Oracle, Brevis Network і nil Foundation. Незважаючи на те, що докладаються значні зусилля, щоб зробити додатки свідомими стану в кількох блокчейнах, IBC (Inter Blockchain Communication) виділяється як стандарт сумісності, який дає змогу таким програмам, як ICQ (міжланцюгові запити) та ICA (міжланцюгові облікові записи). ICQ дозволяє програмам у ланцюзі A запитувати стан ланцюга B, включаючи запит у простий пакет IBC, а ICA дозволяє одному блокчейну безпечно контролювати обліковий запис в іншому блокчейні. Їх поєднання може створити цікаві варіанти використання між ланцюгами. Постачальники RaaS, такі як Saga, за умовчанням пропонують ці функції для всіх своїх мереж додатків за допомогою IBC.
Існує багато способів оптимізації доказів зберігання, щоб знайти правильний баланс споживання пам’яті, часу перевірки, часу перевірки, ефективності обчислень і досвіду розробника. Загальний процес можна розділити на 3 основні підпроцеси.
Доступ до даних: у цьому підпроцесі постачальник послуг отримує доступ до заголовків блоків вихідного ланцюжка безпосередньо на рівні виконання або через підтримку кешу в ланцюжку. Для доступу до даних через ланцюги потрібна перевірка консенсусу ланцюга джерела щодо ланцюга призначення. Деякі підходи та оптимізації, які застосовуються, включають:
Разом із доступом до даних смарт-контракти також повинні мати можливість виконувати довільні обчислення поверх даних. Хоча деякі випадки використання можуть не вимагати обчислень, це важлива додаткова послуга для багатьох інших випадків використання. Багато постачальників послуг дозволяють обчислювати дані, оскільки zk-доказ обчислень може бути згенерований і наданий у ланцюжку для перевірки. Оскільки існуючі AMP-рішення, як-от Axelar, LayerZero, Polyhedra Network, потенційно можуть використовуватися для доступу до даних, обробка даних може стати відмінною рисою для постачальників послуг із збереженням даних.
Наприклад, Hyper Oracle дозволяє розробникам визначати спеціальні обчислення поза мережею за допомогою JavaScript. Brevis розробив відкритий ринок ZK Query Engines, який приймає запити даних від dApps і обробляє їх за допомогою атестованих заголовків блоків. Смарт-контракт надсилає запит на дані, які збирає перевірка з торгової площадки. Програма перевірки генерує доказ на основі вхідних даних запиту, відповідних заголовків блоків (із рівня агрегації Brevis) і результатів. Lagrange представив ZK Big Data Stack, щоб підтвердити моделі розподіленого програмування, такі як SQL, MapReduce і Spark/RDD. Докази є модульними і можуть бути згенеровані з будь-якого заголовка блоку, що походить від існуючих перехресних мостів і протоколів AMP. ZK MapReduce, перший продукт у стеку Lagrange ZK BigData, є механізмом розподілених обчислень (на основі добре відомої моделі програмування MapReduce) для підтвердження результатів обчислень із залученням значних наборів багатоланцюжкових даних. Наприклад, одне підтвердження ZKMR може бути використане для підтвердження змін у ліквідності DEX, розгорнутого на 4–5 ланцюжках протягом певного часового вікна. Для відносно простих запитів обчислення також можна виконувати безпосередньо в ланцюжку, як це робив Геродот на даний момент.
Докази стану та зберігання можуть розблокувати багато нових варіантів використання смарт-контрактів на прикладному, проміжному програмному забезпеченні та рівні інфраструктури. Деякі з них:
Управління:
Усі наведені вище докази можна використовувати для надання користувачам персоналізованого досвіду. Dapps може пропонувати знижки або привілеї, щоб утримати досвідчених трейдерів або користувачів, і запропонувати спрощену роботу для користувачів-початківців.
Останні два випадки використання вимагатимуть оновлення доказу кожного разу, коли до вихідного ланцюга додається новий блок.
Поінформованість дає змогу технологічним компаніям краще обслуговувати своїх клієнтів. Від ідентифікації користувача до купівельної поведінки та соціальних графіків, технологічні компанії використовують обізнаність, щоб розблокувати такі можливості, як точне націлювання, сегментація клієнтів і вірусний маркетинг. Традиційним технологічним компаніям потрібен чіткий дозвіл від користувачів, і вони повинні бути обережними під час керування даними користувачів. Однак усі дані користувача в блокчейнах без дозволу є загальнодоступними, без розкриття особи користувача. Розумні контракти повинні мати можливість використовувати загальнодоступні дані для кращого обслуговування користувачів. Розробка та впровадження більш спеціалізованих екосистем зробить обізнаність держави з часом, а блокчейни стануть все більш важливою проблемою, яку потрібно вирішити. Докази зберігання можуть дозволити Ethereum стати рівнем ідентифікації та власності на активи, а також бути рівнем розрахунків. Користувачі могли підтримувати свою особу та ключові активи в Ethereum, які можна було використовувати в кількох блокчейнах без постійного з’єднання активів. Ми продовжуємо радіти новим можливостям і сценаріям використання, які відкриються в майбутньому.