Що таке спрямований ациклічний граф (DAG) у криптовалюті?
Головна сторінка
Статті
Що таке спрямований ациклічний граф (DAG) у криптовалюті?

Що таке спрямований ациклічний граф (DAG) у криптовалюті?

Середній рівень
Опубліковано Jul 19, 2020Оновлено Dec 27, 2022
8m

Зміст


Вступ

Коли ви думаєте про криптовалюти, на думку, швидше за все, приходять терміни "блокчейн" або "технологія розподіленого реєстру". З моменту запуску Bitcoin створено сотні інших криптовалют. Більшість із них покладаються на схожу мережеву архітектуру. Їхні структури даних дозволяють користувачам передавати цінність або взаємодіяти з децентралізованими додатками.
У блокчейні новий блок періодично додається до зростаючого ланцюга блоків. Кожен блок пов'язаний із попереднім свого роду криптографічним зв'язком (зокрема, хешем). У кожному з цих блоків є останні транзакції, які транслювалися користувачами.
Але часто існує період очікування між трансляцією транзакції та її включенням до блоку. Думайте про це як про очікування поїзда на вокзалі. Залежно від розміру вагонів (розмір блоку) та кількості інших людей, що очікують (очікуючих транзакцій), ви можете навіть не встигнути на наступний поїзд. Або навіть і на ще один. Ви можете чекати на підтвердження транзакції від декількох секунд до декількох годин.
Для багатьох це гідний компроміс. Зрештою, він забезпечує дуже високий рівень безпеки, не покладаючись на централізованого координатора. Для інших блокчейн-технологія застаріла. Скептики вважають, що в довгостроковій перспективі проблеми масштабованості, з якими стикається технологія-блокчейн, завадять масовому застосуванню.

Дехто вважає, що майбутнє криптовалютних платіжних мереж пов'язане із зовсім іншою архітектурою – спрямованими ациклічними графами (або DAG).


Що таке DAG?

DAG – це структура даних іншого типу. Уявіть її як базу даних, яка поєднує різні частини інформації разом. "Спрямований ациклічний граф" – багатозначний термін, тому давайте почнемо з його розбору.


Спрямований ациклічний граф.


Загалом, групи DAG виглядають приблизно так, як показано вище. Вони складаються з вершин (сфер) і  ребер (ліній, що з'єднують їх). Вони спрямовані, тому що вони рухаються в одному напрямку (це показано стрілками). Вони ациклічні (тобто не циклічні) тому що вершини не зациклюються самі на собі – якщо ви починаєте з однієї точки і слідуєте графу, ви не можете повернутися до тієї ж точки. Незабаром ви все зрозумієте.

Такі структури зазвичай використовуються для моделювання даних. Ви можете покладатися на DAG у наукових чи медичних галузях, щоб спостерігати взаємозв'язок між змінними та визначати, як вони впливають один на одну. Наприклад, ви можете взяти такі речі, як харчування, цикли сну та фізичні показники, щоб встановити зв'язок між ними та їх вплив на пацієнта.

Для нас більш цікаво, як вони можуть допомогти досягти консенсусу в розподіленій мережі криптовалют.


Як це працює?

У криптовалюті на основі DAG кожна вершина в структурі є транзакцією. Тут немає ні поняття блоків, ні майнінгу, необхідного для розширення бази даних. Таким чином, замість того, щоб збирати транзакції в блоки, кожна транзакція будується поверх іншої. Проте є невелика операція Proof-of-Work, яка виконується, коли нода відправляє транзакцію. Це гарантує, що мережа не розсилатиме спам, а також перевіряє попередні транзакції.

Щоб додати нову транзакцію, вона має будуватися поверх старих. Припустимо, Аліса створює нову транзакцію. Для підтвердження ця транзакція має посилатися на попередні. Це трохи схоже на те, як блок Bitcoin посилається на попередній блок, але там існує посилання на декілька транзакцій. 

У деяких системах алгоритм вибирає, на яких транзакціях (або "підказках") має ґрунтуватися нова транзакція. З більшою ймовірністю будуть обрані ті підказки, які мають більшу накопичену вагу – показник того, скільки підтверджень має шлях до підказки.

Транзакції, на основі яких Аліса будуватиме вершину, є непідтвердженими. Але як тільки Аліса посилається на них, вони підтверджуються. Транзакція Аліси тепер не підтверджена, тому хтось ще має побудувати поверх неї, перш ніж її буде прийнято.

Користувачі з більшою ймовірністю підтверджуватимуть транзакції з "більшою" вагою, щоб система продовжувала зростати. А якщо ні, то ніщо не завадило б користувачам постійно будувати на основі старих транзакцій.

З блокчейнами захист від подвійних витрат досить простий. Одні й ті самі кошти не можуть бути витрачені двічі в блоці – ноди можуть легко виявити будь-яку спробу і відхилити будь-який блок, який містить конфліктуючі транзакції. Оскільки для майнерів дуже дорого виробляти блоки, вони зацікавлені в тому, щоб грати чесно.

DAG також мають механізм запобігання подвійних витрат. Мезанізм схожий на той, що ми маємо на блокчейні, але без майнерів. Коли нода підтверджує більш старі транзакції, механізм оцінює весь шлях назад до першої транзакції DAG, щоб переконатися, що відправник має достатній баланс. Шляхів може бути декілька, але потрібно перевірити тільки один.



Якщо користувачі будуватимуть на невірному шляху, вони ризикуватимуть, що їхня власна транзакція буде проігнорована. Їхній шлях може бути дійсним, але оскільки попередній не був таким, ніхто не захоче розширювати цей конкретний шлях.

Спочатку це здається трохи заплутаним. Чи не опинимося ми в ситуації, коли є декілька напрямків, які не знають одие про одного? Тоді хіба люди не могли б витрачати ті самі кошти на ці різні напрямки?



Це дійсно можливо, але це вирішується за допомогою алгоритму вибору, який віддає перевагу підказкам із більшою накопиченою вагою. Це означає, що з часом ви отримаєте гілку, яка буде набагато міцніша за інші. Більш слабкі будуть залишені, а мережа продовжуватиме будуватися на основі найважчої. 

Як і у випадку з блокчейнами, тут немає абсолютної остаточності – ви ніколи не можете бути на 100% впевнені, що транзакція не буде скасована. Це малоймовірно, але теоретично ви можете скасувати блок Bitcoin або Ethereum, скасувавши всі транзакції всередині. Чим більше блоків додано після того, в якому знаходиться ваша транзакція, тим більше ви можете бути впевнені у транзакції. Ось чому рекомендується дочекатися шести підтверджень, перш ніж витрачати гроші.
У DAG, такому як Tangle IOTA , є ідея достовірності підтвердження. Алгоритм відбору запускається 100 разів, і ви підраховуєте, скільки разів ваша транзакція була прямо чи опосередковано схвалена у вибраних підказках. Чим вищий відсоток, тим більша у вас впевненість у тому, що ваша транзакція залишиться "оплаченою".

Може здатися, що це призводить до поганого досвіду користувача. Але це не так. Якщо Аліса відправить Бобу 10 MagicDAGTokens, то їй не потрібно турбуватися про вибір правильних вершин графа. Її гаманець може виконувати наступні дії:

  • Вибирати важкі підказки (пам'ятайте, що це ті, які мають найбільше підтверджень).
  • Слідувати за попередніми транзакціями, щоб переконатися, що підказка має достатній баланс для витрати.
  • Після виконання всіх вимог, гаманець додає свою транзакцію DAG, підтверджуючи транзакції, на яких вона була побудована.
Для Аліси це буде виглядати як звичайний робочий процес з криптовалютою. Вона вводить адресу Боба та суму, яку хоче витратити, потім натискає надіслати. Наведений вище список є алгоритмом Proof of Work, який кожен учасник запускає при створенні транзакції.



Плюси та мінуси спрямованих ациклічних графів

Плюси DAG

Швидкість

Незалежно від часу блоку, будь-хто може транслювати та обробляти свої транзакції у будь-який час. Немає обмежень на кількість транзакцій, що надсилаються користувачами, за умови, що вони підтверджують більш старі транзакції.


Без майнінгу

DAG не використовує алгоритми консенсусу PoW у тому вигляді, до якого ми звикли. Таким чином, їх вуглецевий слід становить лише частину від криптовалют, які покладаються на майнінг для захисту блокчейн мережі.


Відсутність комісій за транзакції

Оскільки майнери відсутні, користувачам не потрібно сплачувати комісію за трансляцію своїх транзакцій. Проте деякі користувачі вимагають, щоб за особливі типи нод стягувалася невелика комісія. Низькі комісії (або, краще, нульові комісії) привабливі для мікроплатежів, оскільки їм перешкоджають значні мережеві комісії.


Відсутність проблем із масштабованістю

Незалежно від часу блоку, DAG можуть обробляти набагато більше транзакцій за секунду, ніж традиційні блокчейн мережі. Багато прихильників вважають, що це зробить їх цінними у випадках використання Інтернету речей (IoT), де всі види машин взаємодіятимуть одна з одною.


Мінуси DAG

Неповна децентралізація

Протоколи, що базуються на DAG, мають різні елементи централізації. Для деяких це, можливо, короткострокове рішення для початкового завантаження мережі, але ще невідомо, чи зможуть DAG процвітати без втручання третіх сторін. В іншому випадку вони відкриті для атак, які в кінцевому підсумку можуть вивести з ладу їхню мережу.


Не тестувалися глобально 

Хоча криптовалюти на основі DAG існують вже декілька років, вони мають пройти довгий шлях, перш ніж набути широкого прийняття. Таким чином, важко передбачити, які стимули можуть мати користувачі для використання цієї системи в майбутньому.


Заключні думки

Спрямовані ациклічні графи, безумовно, є цікавою технологією для побудови криптовалютних мереж. Поки що існує декілька проєктів, що використовують структуру даних, і вони ще не повністю розвинені. 
Проте, якщо вони зможуть розкрити свій потенціал, вони зможуть забезпечити екосистему, що масштабується. Технологія DAG має безліч варіантів використання в областях, що вимагають високої пропускної спроможності та відсутності комісій, наприклад, в Інтернеті речей (IoT) і мікроплатежах.
Поділіться дописами
Реєстрація акаунту
Застосуйте свої знання на практиці, відкривши акаунт Binance вже сьогодні.