31 жовтня 2023 року TON (раніше Telegram Open Network) встановив новий світовий рекорд, досягнувши приголомшливого піку в 104 715 транзакцій на секунду у своєму першому загальнодоступному тесті продуктивності в прямому ефірі, виконавши загалом 107 652 545 транзакцій за 25 хвилин. Ця продуктивність, перевірена та підтверджена Certik, робить TON найшвидшим і наймасштабованішим блокчейном у світі, перевершуючи швидкість обробки всіх блокчейнів L1 та відомих централізованих платіжних мереж, таких як PayPal, Visa та Mastercard.
TON - це, безсумнівно, чудовий проект. У цій статті ми детально розглянемо технічний документ TON, розкривши його унікальні технічні функції та інновації, а також чому TON є найшвидшим блокчейном у світі.
Масштабованість була величезною проблемою в розвитку технології блокчейн. Основною метою схеми масштабування блокчейну є збільшення пропускної здатності системи та зниження комісій за транзакції, щоб мережа блокчейн могла обробляти більше транзакцій та краще адаптуватися до масштабних додатків. Незважаючи на те, що різні публічні ланцюжки продовжують випробовувати нові консенсуси та архітектурні проекти, поточні результати все ще незадовільні та стали вузьким місцем для переходу блокчейну до великомасштабного застосування, яке важко втілити в життя наше бачення мільярдів користувачів TG. В даний час основні рішення для масштабування можна розділити на наступні категорії:
Шардинг: поділ мережі на менші частини, кожна з яких здатна паралельно обробляти транзакції та смарт-контракти, значно збільшуючи пропускну здатність мережі. Але шардинг пов'язаний з потенційними проблемами безпеки, оскільки кожен шард може бути менш безпечним, ніж вся мережа. Крім того, комунікація між шардами є технічною проблемою. Репрезентативні приклади: протоколи Ethereum 2.0 і NEAR.
Сайдчейни: Сайдчейн — це тип блокчейну, який працює незалежно від основного ланцюга, і він може мати власний механізм консенсусу та параметри блоку. За допомогою сайдчейнів користувачі можуть передавати активи між двома ланцюгами, знімаючи навантаження з основного ланцюга. Репрезентативний приклад: Polygon
Рішення рівня 2: Побудувавши ще один рівень поверх основного ланцюга, L2 може забезпечити швидший час підтвердження транзакцій і нижчі комісії за транзакції. Візьмемо більш відомі L2, Optimism і Arbitrum: обидва є рішеннями для масштабування, розробленими спеціально для Ethereum. В результаті частина архітектури Optimism і Arbitrum знаходиться на рівні 1. З оновленням Ethereum їхня верхня межа транзакцій за секунду (TPS) зросла з 2-4 тисяч до приблизно 2 Вт.
zkSync 2.0: У порівнянні з обмеженням TPS у zkSync 1.0 у кілька сотень, zkSync 2.0 приносить значні покращення. Команда zkSync стверджує, що його версія 2.0 може досягти верхньої межі 10 Вт TPS, але більшість установ прогнозують, що справжня верхня межа може становити 1-2 Вт. Starknet: Після завершення оновлення до Quantum Leap у червні, його TPS тепер трохи перевищує 100 TPS.
Solana: Solana використовує інноваційний алгоритм консенсусу під назвою Proof of History (PoH) як ядро свого рішення для масштабування. Хоча Solana стверджує, що має до 65 000 TPS, більша її частина фактично діє як міжвузловий зв'язок. Справжній об'єм торгів може бути обмежений лише 6-8k TPS. Крім того, завдяки централізованому дизайну механізму консенсусу Solana зазнала численних простоїв через велику кількість запитів, наприклад, під час карбування NFT. Крім того, Solana поки що не успішно реалізувала обертання центрального вузла.
Блокчейн TON розроблений засновником і основною командою Telegram. Як одна з найпопулярніших соціальних платформ у світі, Telegram має майже 900 мільйонів активних користувачів щомісяця, забезпечуючи стабільну та безперебійну роботу користувачів, зберігаючи при цьому високий рівень безпеки та конфіденційності, щодня в програмному забезпеченні передаються десятки мільярдів повідомлень. Концепція web3 стала відносно відомою, але фактичні користувачі криптовалют все ще становлять меншість, і більшість покладаються на централізовані біржі для доступу до токена. Metamask, найпопулярніший у світі децентралізований криптогаманець, наразі має лише 30 мільйонів активних користувачів щомісяця. А філософія дизайну TON з самого початку ґрунтувалася на обслуговуванні мільярдів користувачів, а не лише кількох вундеркіндів web3.
Шардинг - це концепція, яка походить від проектування баз даних. Це стосується розділення великого логічного набору даних, а потім розподілу його між кількома базами даних, які не є спільними один з одним, які можуть бути розподілені між кількома серверами. Простіше кажучи, шардинг надає можливість горизонтального масштабування, дозволяючи розбивати дані на незалежні частини, які можна обробляти паралельно.
TON - не перший проект, який впроваджує технологію шардингу в блокчейн, наприклад, Ethereum 2.0 одного разу оголосив про фіксовані 64 шарда, а потім відмовився від нього через занадто велику складність, в той час як протокол Night Shadow від NEAR планує досягти 100 шардів в наступному році, і в даний час їх 4.
На відміну від традиційних методів шардингу, TON використовує стратегію нескінченного шардингу.
Однак підхід TON вважається просунутим не тому, що в ньому більше шардів, а через дві унікальні особливості:
Кількість шардів не фіксована: TON підтримує зростаючу кількість шардів відповідно до потреб бізнесу, до 2^60 робочих ланцюжків, що майже нескінченно.
Еластична кількість шардів: TON може автоматично розділяти шарди, коли навантаження на систему високе, і об'єднувати їх, коли навантаження низьке. Це дуже ефективна стратегія боротьби з потребою в динамічному масштабуванні.
В даний час TON складається з двох робочих ланцюжків, основного ланцюга (Masterchain) для синхронізації та управління, і робочого ланцюга (Workchain) для смарт-контрактів. Під робочим ланцюжком знаходиться шардчейн і найнижчий рівень ланцюжка віртуальних рахунків (Accountchain)
Робочий ланцюжок можна розділити на N шардів (від 1 до 256 шардів). Кожен шард має власну групу валідаторів. Робоча команда ланцюга відповідає за виконання транзакцій у власних шардах. При цьому він постійно завантажує блоки з усіх інших шардів свого робочого ланцюжка. Загалом, блокчейн — це серія блоків, які фіксують зміни у своєму стані. Для POS-блокчейнів валідатори спочатку домовляються про те, як вони хочуть змінити стан блокчейну, склавши блок, що містить список змін. Після голосування за цей блок, якщо зібрано достатню кількість голосів, вони застосовують блок до стану блокчейну та переходять до наступного блоку.
Пропускна здатність потоку блоку дуже обмежена, оскільки валідатори повинні перевірити всі транзакції в цьому блоці, перш ніж погодитися прийняти його. Таким чином, у TON є багато потоків, і ви можете просто думати про них як про міні-мікроблокчейни. Вони існують паралельно, і кожен має свій набір валідаторів.
Головний ланцюг
Основний ланцюг - це різьба основного блоку в TON. Він використовується для синхронізації всіх блоків, що залишилися, і перерахунку набору валідаторів. Коли всі потоки домовляються про новий блок, вони підписують його і реєструють в основному ланцюжку. Однак валідатори mainchain не перевіряють валідність блоку, вони лише перевіряють, чи підписаний він відповідним валідатором. Тому багато ниток можуть співіснувати паралельно. Контракти з різних потоків спілкуються між собою за допомогою відправки повідомлень.
Ланцюжок робіт
Ланцюжок роботи – це незалежний адресний простір, який можна запускати за своїми правилами. Наприклад, вони можуть мати різні віртуальні машини або збільшувати час, необхідний для публікації блоків з високими лімітами газу. Найголовніше, що робочі ланцюжки повинні мати однаковий формат черги повідомлень, щоб вони могли обмінюватися повідомленнями. Це також означає, що всі робочі ланцюжки повинні мати приблизно однакові гарантії безпеки. Оскільки вони можуть обмінюватися повідомленнями, ці повідомлення несуть мережеві токени. Зараз активні два робочі ланцюги: основний ланцюг і перший робочий ланцюг обробки. Ланцюжок роботи визначається префіксом адреси: -1:ax... 1s2 - Адреса аккаунта в основному ланцюжку. -1 - префікс основного ланцюга.
0:zx... 123 - Адреса рахунку в першій робочій ланцюжку. 0 - перший префікс для обробки робочого ланцюжка.
Ланцюжки сегментів
Процесинговий потік, або ланцюг шарда, — це незалежний потік блоку, який обробляє робочий ланцюг. За замовчуванням робочий ланцюжок 0 має лише один потік і один ланцюжок. Валідатори цього потоку приймають зовнішні повідомлення та обробляють внутрішні повідомлення, які вони надсилають самі або з інших робочих ланцюжків. Якщо виникає ситуація, коли потік перевантажується під час останніх N блоків, потік розбивається: один потік розбивається на два, а транзакції здійснюються паралельно.
Адреси починаються з 0:00: - 0:88.. Розповідь на початку тепер знаходиться в потоці 1 з рахунком 0:88: . - 0:ФФ.. Знаходиться в різьбі 2. Оскільки всі смарт-контракти взаємодіють один з одним асинхронно без будь-яких збоїв, пропускна здатність зросла втричі. Коли навантаження падає, нитки через деякий час зливаються назад. Якщо навантаження продовжує збільшуватися, дві нитки можуть розділятися знову і знову, і так далі. На основному ланцюжку є лише одна нитка.
Блоки в TON - це більше, ніж просто список транзакцій, які необхідно виконати, щоб досягти зміни стану. Замість цього блок це:
Список повідомлень, які виконують транзакцію, видаляючи їх з вхідної черги. Нове повідомлення потрапляє у вихідну чергу після обробки повідомлення, а потім обробка повідомлення викликає зміну стану смарт-контракту. Тобто, для того, щоб валідатор шарда X зберігав поточний стан шарда Y, йому не потрібно виконувати всі транзакції в блоці шарда Y. Він просто завантажує блок і підсумовує зміни, що відбулися. Зустрічається в чергах повідомлень і станах смарт-контрактів.
Фундаментальна зміна світу блокчейну не може відбутися без ціни. Щоб скористатися перевагами цього радикального підходу, розробники смарт-контрактів TON повинні розробляти свої контракти по-іншому. Базовою атомарною одиницею блокчейну TON є смарт-контракт. Смарт-контракти мають адреси, код і одиниці даних (постійний стан). Такі одиниці називаються атомарними, тому що смарт-контракти завжди мають атомарно синхронізований доступ до всіх своїх постійних станів.
Маршрутизація мережі Hypercube
TON створив інтелектуальний механізм маршрутизації, щоб гарантувати, що транзакції між будь-якими двома блокчейнами завжди обробляються швидко, незалежно від того, наскільки велика система, а час, необхідний для надсилання інформації між блокчейнами TON, лише логарифмічно збільшується зі збільшенням кількості ланцюжків, так що навіть масштабування до мільйонів ланцюгів дозволяє їм спілкуватися з найвищою швидкістю.
У блокчейні TON миттєва маршрутизація Hypercube і повільна маршрутизація – це два механізми маршрутизації, які використовуються для обробки крос-чейн транзакцій.
Миттєва маршрутизація Hypercube: ідея TON прискорити маршрутизацію повідомлень, дозволяючи виконувати крос-чейн транзакції за частку часу. У традиційній повільній маршрутизації кубів повідомлення спрямовується ланцюжком шардів уздовж мережі гіперкуба до цільового ланцюжка сегментів. Однак під час маршрутизації повідомлень валідатор, до якого належить цільовий ланцюжок шардів, може заздалегідь обробити повідомлення, щоб додати його до блоку, а потім надати доказ Меркель (квитанцію) та надіслати квитанцію про знищення повідомлення, що передається. Це дозволяє завершити крос-чейн транзакції за дуже короткий проміжок часу. Швидка маршрутизація забезпечує ефективну міжланцюгову взаємодію шляхом побудови високовимірної структури маршрутизації куба. У цій структурі кожен ланцюг розкладається на одну вершину куба, а відстань між ланцюгами виражається як кількість переходів між вершинами. Завдяки такому підходу транзакції можуть бути швидко спрямовані найкоротшим шляхом, що робить крос-чейн взаємодію ефективною. Швидка маршрутизація дозволяє завершити крос-чейн транзакції за лічені секунди, не чекаючи підтвердження блоку.
Повільна маршрутизація: повільна маршрутизація є відносно традиційним методом обробки крос-чейн транзакцій шляхом поступового перенесення транзакцій із вихідного ланцюга до ланцюга призначення. У цьому методі транзакції спочатку упаковуються в блок у ланцюжку джерел, а потім передаються в ланцюжок призначення через передавач. Валідатор ланцюга призначення перевіряє дійсність транзакції, а потім упаковує її в блок ланцюга призначення. Перевага повільної маршрутизації перед швидкою полягає в тому, що вона забезпечує вищий ступінь безпеки та децентралізації, оскільки крос-чейн транзакції повинні проходити повний процес підтвердження блоку. Подібно до мережі TCP/IP, цільова IP-адреса адресується адресату, щоб забезпечити надійну передачу повідомлень у ланцюжок призначення по порядку. Для гіперкубічної мережі ланцюга шард-ланцюга масштабу N має пройти проміжний перехід ланцюга шард-ланцюга = log16(N)-1. Таким чином, для підтримки мільйонів ланцюгів сегментів даних потрібно лише 4 вузли маршрутизації (проміжні ланцюги сегментів даних).
Чому він так влаштований? **
Для розповсюдження потрібні валідатори. Якщо система дуже велика, з десятками тисяч вузлів, вона занадто перевантажена для масштабування. Після шардингу кожен шард має набір, shard0, shard1... Також необхідно досягти міжшардової комунікації. Зв'язок може бути перехресним, і перехід від одного шарда до іншого означає, що повинен існувати механізм маршрутизації для шардів і шардів. З'єднання утворює маршрут, який пропускає через деякий проміжний вузол. Щоразу, коли повідомлення маршрутизується, це еквівалентно збільшенню часу передачі на один блоковий час.
Оскільки загальна кількість ланцюгів шардів зростає, це вимагатиме великої обчислювальної потужності та пропускної здатності мережі, що обмежує масштабованість системи. Як наслідок, неможливо доставити повідомлення безпосередньо з будь-якого одного шарду до всіх інших шардів. Натомість, кожен шард лише «з'єднується» з іншим шардом із шістнадцятковим номером на їхньому ідентифікаторі (w,s). Таким чином, всі ланцюжки шардів утворюють граф «гіперкуб», а повідомлення передаються по краях цього гіперкуба.
Якщо повідомлення надсилається на сегмент, відмінний від поточного, шістнадцятковий номер поточного ідентифікатора сегмента (вибраний детерміновано) буде замінено відповідним номером цільового сегмента, а отриманий ідентифікатор слугуватиме приблизним місцем призначення, щоб стати одержувачем пересланого повідомлення.
Основною перевагою гіперкубової маршрутизації є умова валідності блоку, коли валідатори, які створюють блоки ланцюга шардів, повинні збирати та обробляти повідомлення з вихідної черги «сусідніх» ланцюгів шардів або втратити свій стейкінг. Таким чином, можна очікувати, що будь-яке повідомлення рано чи пізно досягне кінцевого пункту призначення; Повідомлення не губляться під час передавання та не доставляються повторно.
Маршрутизація Hypercube вносить деяку додаткову затримку та витрати через необхідність пересилання повідомлень через кілька проміжних ланцюгів сегментів даних. Однак кількість цих проміжних ланцюгів шардів зростає дуже повільно, що пов'язано з log N від загальної кількості ланцюгів шарда.
Зв'язок асинхронний
Смарт-контракт на TON реалізує асинхронний зв'язок, який можна порівняти з інтернет-мікросервісами. Кожен мікросервіс має лише атомарно синхронізований доступ до своїх локальних даних. Зв'язок між двома мікросервісами передбачає надсилання асинхронних повідомлень через мережу.
В архітектурі систем більші системи часто вимагають архітектури мікросервісів. Цей розподілений підхід вимагає певних компромісів для прийняття, але може принести переваги користувацькому досвіду. Управління сучасними системами покладається на секвенсори, такі як Kubernetes, щоб взяти набір контейнеризованих мікросервісів і автоматично розкручувати нові екземпляри за потреби (автомасштабування) та ефективно розподіляти їх між машинами.
Якщо використовувати аналогію з Kubernetes (Massive Cluster Management System), то саме цим і займається TON. У міру збільшення навантаження на конкретний ланцюг шардів він розбивається на дві частини. Оскільки смарт-контракти атомарні, вони ніколи не діляться навпіл. Це означає, що деякі смарт-контракти, які колись були в одному ланцюжку шардів, одного разу можуть опинитися в різних ланцюгах сегментів.
Віртуальна машина (TVM) від TON застосовує концепцію розподілених мікросервісів до загальної архітектури, яка порівнюється з EVM Ethereum.
Децентралізація держави
Це один із найскладніших і найскладніших механізмів шардингу в просторі шардингу. Вся база даних розбивається і розміщується на різних шардах. Кожен шард зберігає всі дані у своєму власному шарді, а не стан усього блокчейну.
У шардингу блокчейну TON всі сервіси реалізовані у вигляді смарт-контрактів, а дані про стан смарт-контрактів зберігаються лише у відповідній мережі шарда, щоб досягти шардингу стану.
Мало того, в TON контракт досяг унікального шляху реалізації в галузі, де кожен користувач може керувати станом токена у своєму власному контракті, по-справжньому реалізуючи децентралізацію зі стану блокчейну. Я детально розгляну принципи цього дизайну на кейсах.
Перш за все, вам потрібно розібратися в контракті Wallet і контракті гаманця Jetton. Контракт Wallet – це специфічний для користувача смарт-контракт, який керує токенами користувача на блокчейні TON. Джеттон (рос. Jewel) Контракт гаманця - це особливий тип контракту гаманця, який призначений для управління токенами Jetton користувача. Ці токени можна використовувати для оплати мережевих комісій і виконання смарт-контрактів. У кожного користувача є свій контракт Wallet і контракт гаманця Jetton. Ці контракти діють як цифрові гаманці, за допомогою яких користувачі можуть зберігати свої токени та керувати ними. У той же час ці контракти також можуть взаємодіяти з контрактами інших користувачів, щоб забезпечити децентралізовану передачу активів і торгівлю.
У цьому випадку передбачається, що користувач А і користувач Б мають власний контракт гаманця. Користувач А хоче передати певну кількість токенів користувачеві Б. У цьому випадку контракт гаманця користувача А взаємодіє з контрактом гаманця користувача Б, щоб реалізувати передачу токенів. Весь процес не повинен покладатися на один централізований контракт, а через два децентралізованих контракти.
Всі користувачі блокчейну TON мають власні контракти для управління станом своїх активів, а це означає, що не існує єдиного централізованого контракту, який би брав на себе ризик управління всіма активами. Це підвищує децентралізацію системи і знижує ризик єдиної точки відмови. Стан усіх активів користувачів управляється спеціальним контрактом, і зловмисник не може вплинути на всю систему, атакувавши один централізований контракт. Транзакції з активами між користувачами також можуть автоматично виконуватися за допомогою смарт-контрактів, уникаючи ризику людської діяльності. Ви також можете налаштувати власний контракт гаманця та контракт гаманця Jetton відповідно до ваших потреб, щоб досягти більшої кількості функцій та сценаріїв застосування. Це дає користувачам більше гнучкості та автономності. Кожен керує станом активів у власному контракті, а масштабованість системи покращується. Зі збільшенням кількості користувачів зростає і кількість контрактів, але це не створює надмірного навантаження на загальну систему, оскільки кожен контракт працює незалежно.
Вище наведено мій аналіз масштабованості блокчейну TON і технічної архітектури білої книги, спасибі доктору Awesome Doge за редагування першої чернетки. Спасибі російським і українським командам розробників за їх наполегливість і, нарешті, засновнику Telegram пану Миколі Дурову за його чудовий дизайн багато років тому, і це на славу людського розуму.
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
Пояснення білої книги TON: Демістифікація технології, що лежить в основі найшвидшого у світі блокчейну
31 жовтня 2023 року TON (раніше Telegram Open Network) встановив новий світовий рекорд, досягнувши приголомшливого піку в 104 715 транзакцій на секунду у своєму першому загальнодоступному тесті продуктивності в прямому ефірі, виконавши загалом 107 652 545 транзакцій за 25 хвилин. Ця продуктивність, перевірена та підтверджена Certik, робить TON найшвидшим і наймасштабованішим блокчейном у світі, перевершуючи швидкість обробки всіх блокчейнів L1 та відомих централізованих платіжних мереж, таких як PayPal, Visa та Mastercard.
TON - це, безсумнівно, чудовий проект. У цій статті ми детально розглянемо технічний документ TON, розкривши його унікальні технічні функції та інновації, а також чому TON є найшвидшим блокчейном у світі.
! Аналіз білої книги TON: Демістифікація технології, що лежить в основі найшвидшого у світі блокчейну
Виклики масштабування
Масштабованість була величезною проблемою в розвитку технології блокчейн. Основною метою схеми масштабування блокчейну є збільшення пропускної здатності системи та зниження комісій за транзакції, щоб мережа блокчейн могла обробляти більше транзакцій та краще адаптуватися до масштабних додатків. Незважаючи на те, що різні публічні ланцюжки продовжують випробовувати нові консенсуси та архітектурні проекти, поточні результати все ще незадовільні та стали вузьким місцем для переходу блокчейну до великомасштабного застосування, яке важко втілити в життя наше бачення мільярдів користувачів TG. В даний час основні рішення для масштабування можна розділити на наступні категорії:
Шардинг: поділ мережі на менші частини, кожна з яких здатна паралельно обробляти транзакції та смарт-контракти, значно збільшуючи пропускну здатність мережі. Але шардинг пов'язаний з потенційними проблемами безпеки, оскільки кожен шард може бути менш безпечним, ніж вся мережа. Крім того, комунікація між шардами є технічною проблемою. Репрезентативні приклади: протоколи Ethereum 2.0 і NEAR.
Сайдчейни: Сайдчейн — це тип блокчейну, який працює незалежно від основного ланцюга, і він може мати власний механізм консенсусу та параметри блоку. За допомогою сайдчейнів користувачі можуть передавати активи між двома ланцюгами, знімаючи навантаження з основного ланцюга. Репрезентативний приклад: Polygon
Рішення рівня 2: Побудувавши ще один рівень поверх основного ланцюга, L2 може забезпечити швидший час підтвердження транзакцій і нижчі комісії за транзакції. Візьмемо більш відомі L2, Optimism і Arbitrum: обидва є рішеннями для масштабування, розробленими спеціально для Ethereum. В результаті частина архітектури Optimism і Arbitrum знаходиться на рівні 1. З оновленням Ethereum їхня верхня межа транзакцій за секунду (TPS) зросла з 2-4 тисяч до приблизно 2 Вт.
zkSync 2.0: У порівнянні з обмеженням TPS у zkSync 1.0 у кілька сотень, zkSync 2.0 приносить значні покращення. Команда zkSync стверджує, що його версія 2.0 може досягти верхньої межі 10 Вт TPS, але більшість установ прогнозують, що справжня верхня межа може становити 1-2 Вт. Starknet: Після завершення оновлення до Quantum Leap у червні, його TPS тепер трохи перевищує 100 TPS.
Solana: Solana використовує інноваційний алгоритм консенсусу під назвою Proof of History (PoH) як ядро свого рішення для масштабування. Хоча Solana стверджує, що має до 65 000 TPS, більша її частина фактично діє як міжвузловий зв'язок. Справжній об'єм торгів може бути обмежений лише 6-8k TPS. Крім того, завдяки централізованому дизайну механізму консенсусу Solana зазнала численних простоїв через велику кількість запитів, наприклад, під час карбування NFT. Крім того, Solana поки що не успішно реалізувала обертання центрального вузла.
Блокчейн TON розроблений засновником і основною командою Telegram. Як одна з найпопулярніших соціальних платформ у світі, Telegram має майже 900 мільйонів активних користувачів щомісяця, забезпечуючи стабільну та безперебійну роботу користувачів, зберігаючи при цьому високий рівень безпеки та конфіденційності, щодня в програмному забезпеченні передаються десятки мільярдів повідомлень. Концепція web3 стала відносно відомою, але фактичні користувачі криптовалют все ще становлять меншість, і більшість покладаються на централізовані біржі для доступу до токена. Metamask, найпопулярніший у світі децентралізований криптогаманець, наразі має лише 30 мільйонів активних користувачів щомісяця. А філософія дизайну TON з самого початку ґрунтувалася на обслуговуванні мільярдів користувачів, а не лише кількох вундеркіндів web3.
! Аналіз білої книги TON: Демістифікація технології, що лежить в основі найшвидшого у світі блокчейну
Парадигма нескінченного шардингу
Шардинг - це концепція, яка походить від проектування баз даних. Це стосується розділення великого логічного набору даних, а потім розподілу його між кількома базами даних, які не є спільними один з одним, які можуть бути розподілені між кількома серверами. Простіше кажучи, шардинг надає можливість горизонтального масштабування, дозволяючи розбивати дані на незалежні частини, які можна обробляти паралельно.
TON - не перший проект, який впроваджує технологію шардингу в блокчейн, наприклад, Ethereum 2.0 одного разу оголосив про фіксовані 64 шарда, а потім відмовився від нього через занадто велику складність, в той час як протокол Night Shadow від NEAR планує досягти 100 шардів в наступному році, і в даний час їх 4.
На відміну від традиційних методів шардингу, TON використовує стратегію нескінченного шардингу.
Однак підхід TON вважається просунутим не тому, що в ньому більше шардів, а через дві унікальні особливості:
! Аналіз білої книги TON: Демістифікація технології, що лежить в основі найшвидшого у світі блокчейну
В даний час TON складається з двох робочих ланцюжків, основного ланцюга (Masterchain) для синхронізації та управління, і робочого ланцюга (Workchain) для смарт-контрактів. Під робочим ланцюжком знаходиться шардчейн і найнижчий рівень ланцюжка віртуальних рахунків (Accountchain)
Робочий ланцюжок можна розділити на N шардів (від 1 до 256 шардів). Кожен шард має власну групу валідаторів. Робоча команда ланцюга відповідає за виконання транзакцій у власних шардах. При цьому він постійно завантажує блоки з усіх інших шардів свого робочого ланцюжка. Загалом, блокчейн — це серія блоків, які фіксують зміни у своєму стані. Для POS-блокчейнів валідатори спочатку домовляються про те, як вони хочуть змінити стан блокчейну, склавши блок, що містить список змін. Після голосування за цей блок, якщо зібрано достатню кількість голосів, вони застосовують блок до стану блокчейну та переходять до наступного блоку.
Пропускна здатність потоку блоку дуже обмежена, оскільки валідатори повинні перевірити всі транзакції в цьому блоці, перш ніж погодитися прийняти його. Таким чином, у TON є багато потоків, і ви можете просто думати про них як про міні-мікроблокчейни. Вони існують паралельно, і кожен має свій набір валідаторів.
Головний ланцюг
Основний ланцюг - це різьба основного блоку в TON. Він використовується для синхронізації всіх блоків, що залишилися, і перерахунку набору валідаторів. Коли всі потоки домовляються про новий блок, вони підписують його і реєструють в основному ланцюжку. Однак валідатори mainchain не перевіряють валідність блоку, вони лише перевіряють, чи підписаний він відповідним валідатором. Тому багато ниток можуть співіснувати паралельно. Контракти з різних потоків спілкуються між собою за допомогою відправки повідомлень.
Ланцюжок робіт
Ланцюжок роботи – це незалежний адресний простір, який можна запускати за своїми правилами. Наприклад, вони можуть мати різні віртуальні машини або збільшувати час, необхідний для публікації блоків з високими лімітами газу. Найголовніше, що робочі ланцюжки повинні мати однаковий формат черги повідомлень, щоб вони могли обмінюватися повідомленнями. Це також означає, що всі робочі ланцюжки повинні мати приблизно однакові гарантії безпеки. Оскільки вони можуть обмінюватися повідомленнями, ці повідомлення несуть мережеві токени. Зараз активні два робочі ланцюги: основний ланцюг і перший робочий ланцюг обробки. Ланцюжок роботи визначається префіксом адреси: -1:ax... 1s2 - Адреса аккаунта в основному ланцюжку. -1 - префікс основного ланцюга.
0:zx... 123 - Адреса рахунку в першій робочій ланцюжку. 0 - перший префікс для обробки робочого ланцюжка.
Ланцюжки сегментів
Процесинговий потік, або ланцюг шарда, — це незалежний потік блоку, який обробляє робочий ланцюг. За замовчуванням робочий ланцюжок 0 має лише один потік і один ланцюжок. Валідатори цього потоку приймають зовнішні повідомлення та обробляють внутрішні повідомлення, які вони надсилають самі або з інших робочих ланцюжків. Якщо виникає ситуація, коли потік перевантажується під час останніх N блоків, потік розбивається: один потік розбивається на два, а транзакції здійснюються паралельно.
Адреси починаються з 0:00: - 0:88.. Розповідь на початку тепер знаходиться в потоці 1 з рахунком 0:88: . - 0:ФФ.. Знаходиться в різьбі 2. Оскільки всі смарт-контракти взаємодіють один з одним асинхронно без будь-яких збоїв, пропускна здатність зросла втричі. Коли навантаження падає, нитки через деякий час зливаються назад. Якщо навантаження продовжує збільшуватися, дві нитки можуть розділятися знову і знову, і так далі. На основному ланцюжку є лише одна нитка.
Блоки в TON - це більше, ніж просто список транзакцій, які необхідно виконати, щоб досягти зміни стану. Замість цього блок це:
Список повідомлень, які виконують транзакцію, видаляючи їх з вхідної черги. Нове повідомлення потрапляє у вихідну чергу після обробки повідомлення, а потім обробка повідомлення викликає зміну стану смарт-контракту. Тобто, для того, щоб валідатор шарда X зберігав поточний стан шарда Y, йому не потрібно виконувати всі транзакції в блоці шарда Y. Він просто завантажує блок і підсумовує зміни, що відбулися. Зустрічається в чергах повідомлень і станах смарт-контрактів.
Фундаментальна зміна світу блокчейну не може відбутися без ціни. Щоб скористатися перевагами цього радикального підходу, розробники смарт-контрактів TON повинні розробляти свої контракти по-іншому. Базовою атомарною одиницею блокчейну TON є смарт-контракт. Смарт-контракти мають адреси, код і одиниці даних (постійний стан). Такі одиниці називаються атомарними, тому що смарт-контракти завжди мають атомарно синхронізований доступ до всіх своїх постійних станів.
Маршрутизація мережі Hypercube
TON створив інтелектуальний механізм маршрутизації, щоб гарантувати, що транзакції між будь-якими двома блокчейнами завжди обробляються швидко, незалежно від того, наскільки велика система, а час, необхідний для надсилання інформації між блокчейнами TON, лише логарифмічно збільшується зі збільшенням кількості ланцюжків, так що навіть масштабування до мільйонів ланцюгів дозволяє їм спілкуватися з найвищою швидкістю.
У блокчейні TON миттєва маршрутизація Hypercube і повільна маршрутизація – це два механізми маршрутизації, які використовуються для обробки крос-чейн транзакцій.
! Аналіз білої книги TON: Демістифікація технології, що лежить в основі найшвидшого у світі блокчейну
Миттєва маршрутизація Hypercube: ідея TON прискорити маршрутизацію повідомлень, дозволяючи виконувати крос-чейн транзакції за частку часу. У традиційній повільній маршрутизації кубів повідомлення спрямовується ланцюжком шардів уздовж мережі гіперкуба до цільового ланцюжка сегментів. Однак під час маршрутизації повідомлень валідатор, до якого належить цільовий ланцюжок шардів, може заздалегідь обробити повідомлення, щоб додати його до блоку, а потім надати доказ Меркель (квитанцію) та надіслати квитанцію про знищення повідомлення, що передається. Це дозволяє завершити крос-чейн транзакції за дуже короткий проміжок часу. Швидка маршрутизація забезпечує ефективну міжланцюгову взаємодію шляхом побудови високовимірної структури маршрутизації куба. У цій структурі кожен ланцюг розкладається на одну вершину куба, а відстань між ланцюгами виражається як кількість переходів між вершинами. Завдяки такому підходу транзакції можуть бути швидко спрямовані найкоротшим шляхом, що робить крос-чейн взаємодію ефективною. Швидка маршрутизація дозволяє завершити крос-чейн транзакції за лічені секунди, не чекаючи підтвердження блоку.
Повільна маршрутизація: повільна маршрутизація є відносно традиційним методом обробки крос-чейн транзакцій шляхом поступового перенесення транзакцій із вихідного ланцюга до ланцюга призначення. У цьому методі транзакції спочатку упаковуються в блок у ланцюжку джерел, а потім передаються в ланцюжок призначення через передавач. Валідатор ланцюга призначення перевіряє дійсність транзакції, а потім упаковує її в блок ланцюга призначення. Перевага повільної маршрутизації перед швидкою полягає в тому, що вона забезпечує вищий ступінь безпеки та децентралізації, оскільки крос-чейн транзакції повинні проходити повний процес підтвердження блоку. Подібно до мережі TCP/IP, цільова IP-адреса адресується адресату, щоб забезпечити надійну передачу повідомлень у ланцюжок призначення по порядку. Для гіперкубічної мережі ланцюга шард-ланцюга масштабу N має пройти проміжний перехід ланцюга шард-ланцюга = log16(N)-1. Таким чином, для підтримки мільйонів ланцюгів сегментів даних потрібно лише 4 вузли маршрутизації (проміжні ланцюги сегментів даних).
Чому він так влаштований? **
Для розповсюдження потрібні валідатори. Якщо система дуже велика, з десятками тисяч вузлів, вона занадто перевантажена для масштабування. Після шардингу кожен шард має набір, shard0, shard1... Також необхідно досягти міжшардової комунікації. Зв'язок може бути перехресним, і перехід від одного шарда до іншого означає, що повинен існувати механізм маршрутизації для шардів і шардів. З'єднання утворює маршрут, який пропускає через деякий проміжний вузол. Щоразу, коли повідомлення маршрутизується, це еквівалентно збільшенню часу передачі на один блоковий час.
Оскільки загальна кількість ланцюгів шардів зростає, це вимагатиме великої обчислювальної потужності та пропускної здатності мережі, що обмежує масштабованість системи. Як наслідок, неможливо доставити повідомлення безпосередньо з будь-якого одного шарду до всіх інших шардів. Натомість, кожен шард лише «з'єднується» з іншим шардом із шістнадцятковим номером на їхньому ідентифікаторі (w,s). Таким чином, всі ланцюжки шардів утворюють граф «гіперкуб», а повідомлення передаються по краях цього гіперкуба.
Якщо повідомлення надсилається на сегмент, відмінний від поточного, шістнадцятковий номер поточного ідентифікатора сегмента (вибраний детерміновано) буде замінено відповідним номером цільового сегмента, а отриманий ідентифікатор слугуватиме приблизним місцем призначення, щоб стати одержувачем пересланого повідомлення.
Основною перевагою гіперкубової маршрутизації є умова валідності блоку, коли валідатори, які створюють блоки ланцюга шардів, повинні збирати та обробляти повідомлення з вихідної черги «сусідніх» ланцюгів шардів або втратити свій стейкінг. Таким чином, можна очікувати, що будь-яке повідомлення рано чи пізно досягне кінцевого пункту призначення; Повідомлення не губляться під час передавання та не доставляються повторно.
Маршрутизація Hypercube вносить деяку додаткову затримку та витрати через необхідність пересилання повідомлень через кілька проміжних ланцюгів сегментів даних. Однак кількість цих проміжних ланцюгів шардів зростає дуже повільно, що пов'язано з log N від загальної кількості ланцюгів шарда.
Зв'язок асинхронний
Смарт-контракт на TON реалізує асинхронний зв'язок, який можна порівняти з інтернет-мікросервісами. Кожен мікросервіс має лише атомарно синхронізований доступ до своїх локальних даних. Зв'язок між двома мікросервісами передбачає надсилання асинхронних повідомлень через мережу.
В архітектурі систем більші системи часто вимагають архітектури мікросервісів. Цей розподілений підхід вимагає певних компромісів для прийняття, але може принести переваги користувацькому досвіду. Управління сучасними системами покладається на секвенсори, такі як Kubernetes, щоб взяти набір контейнеризованих мікросервісів і автоматично розкручувати нові екземпляри за потреби (автомасштабування) та ефективно розподіляти їх між машинами.
Якщо використовувати аналогію з Kubernetes (Massive Cluster Management System), то саме цим і займається TON. У міру збільшення навантаження на конкретний ланцюг шардів він розбивається на дві частини. Оскільки смарт-контракти атомарні, вони ніколи не діляться навпіл. Це означає, що деякі смарт-контракти, які колись були в одному ланцюжку шардів, одного разу можуть опинитися в різних ланцюгах сегментів.
Віртуальна машина (TVM) від TON застосовує концепцію розподілених мікросервісів до загальної архітектури, яка порівнюється з EVM Ethereum.
Децентралізація держави
Це один із найскладніших і найскладніших механізмів шардингу в просторі шардингу. Вся база даних розбивається і розміщується на різних шардах. Кожен шард зберігає всі дані у своєму власному шарді, а не стан усього блокчейну.
У шардингу блокчейну TON всі сервіси реалізовані у вигляді смарт-контрактів, а дані про стан смарт-контрактів зберігаються лише у відповідній мережі шарда, щоб досягти шардингу стану.
Мало того, в TON контракт досяг унікального шляху реалізації в галузі, де кожен користувач може керувати станом токена у своєму власному контракті, по-справжньому реалізуючи децентралізацію зі стану блокчейну. Я детально розгляну принципи цього дизайну на кейсах.
Перш за все, вам потрібно розібратися в контракті Wallet і контракті гаманця Jetton. Контракт Wallet – це специфічний для користувача смарт-контракт, який керує токенами користувача на блокчейні TON. Джеттон (рос. Jewel) Контракт гаманця - це особливий тип контракту гаманця, який призначений для управління токенами Jetton користувача. Ці токени можна використовувати для оплати мережевих комісій і виконання смарт-контрактів. У кожного користувача є свій контракт Wallet і контракт гаманця Jetton. Ці контракти діють як цифрові гаманці, за допомогою яких користувачі можуть зберігати свої токени та керувати ними. У той же час ці контракти також можуть взаємодіяти з контрактами інших користувачів, щоб забезпечити децентралізовану передачу активів і торгівлю.
У цьому випадку передбачається, що користувач А і користувач Б мають власний контракт гаманця. Користувач А хоче передати певну кількість токенів користувачеві Б. У цьому випадку контракт гаманця користувача А взаємодіє з контрактом гаманця користувача Б, щоб реалізувати передачу токенів. Весь процес не повинен покладатися на один централізований контракт, а через два децентралізованих контракти.
Всі користувачі блокчейну TON мають власні контракти для управління станом своїх активів, а це означає, що не існує єдиного централізованого контракту, який би брав на себе ризик управління всіма активами. Це підвищує децентралізацію системи і знижує ризик єдиної точки відмови. Стан усіх активів користувачів управляється спеціальним контрактом, і зловмисник не може вплинути на всю систему, атакувавши один централізований контракт. Транзакції з активами між користувачами також можуть автоматично виконуватися за допомогою смарт-контрактів, уникаючи ризику людської діяльності. Ви також можете налаштувати власний контракт гаманця та контракт гаманця Jetton відповідно до ваших потреб, щоб досягти більшої кількості функцій та сценаріїв застосування. Це дає користувачам більше гнучкості та автономності. Кожен керує станом активів у власному контракті, а масштабованість системи покращується. Зі збільшенням кількості користувачів зростає і кількість контрактів, але це не створює надмірного навантаження на загальну систему, оскільки кожен контракт працює незалежно.
Вище наведено мій аналіз масштабованості блокчейну TON і технічної архітектури білої книги, спасибі доктору Awesome Doge за редагування першої чернетки. Спасибі російським і українським командам розробників за їх наполегливість і, нарешті, засновнику Telegram пану Миколі Дурову за його чудовий дизайн багато років тому, і це на славу людського розуму.