Принцип роботи блокчейна: хто створює блоки

Anonim

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

У матеріалі розповімо, хто створює і перевіряє блоки в блокчейне. Ви дізнаєтеся як алгоритми консенсусу забезпечують безпеку цього процесу.

  1. P2P: де використовуються однорангові мережі
  2. Шифрування в блокчейне: на пальцях
  3. Блокчейн - ланцюжок блоків транзакцій. Розбираємо визначення за словами
  4. Шифрування в блокчейне: навіщо потрібна цифровий підпис
  5. Принцип роботи блокчейна: хто створює блоки
  6. Для яких цілей і завдань підходить блокчейн

Згадуємо основні поняття

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

Недовіра в блокчейне

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

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

Майнер - учасники блокчейна, які займаються створенням нових блоків і перевіркою транзакцій.

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

Таке завдання було сформульовано і вирішено математиками ще в минулому столітті. Зараз це рішення забезпечує безпеку як в блокчейне, так і в інших складних технологіях. Щоб зрозуміти, як Майнер вдається не порушувати інтереси один одного, розглянемо цю задачу докладніше.

Завдання візантійських генералів

У науковій статті 1982 року було сформульована логічна дилема. Вона ілюструє проблему комунікації вузлів тимчасової мережі, які домовляються про наступний крок. В якості аналогії була використана Візантія - древнє феодальну державу з безліччю незалежних армій. Звідси і взялася назва - Завдання Візантійських Генералів.

Дія відбувається під час облоги міста візантійською армією. Вночі легіони з різних боків оточили місто. Генерали кожного легіону чекають наказу головнокомандувача. Варіанти наказу: «атакувати» або «відступати».

Принцип роботи блокчейна: хто створює блоки 21098_1
Генерали чекають наказу головнокомандуючого, щоб вирішити «атакувати» або «відступати»

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

Успішний результат. Якщо все генерали атакують - Візантія знищить супротивника.

Принцип роботи блокчейна: хто створює блоки 21098_2

Проміжний результат. Якщо все генерали відступлять - Візантія збереже свою армію.

Принцип роботи блокчейна: хто створює блоки 21098_3

Несприятливий результат. Якщо деякі генерали атакують, а деякі відступлять - противник згодом частинами знищить всю армію Візантії.

Принцип роботи блокчейна: хто створює блоки 21098_4

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

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

Принцип роботи блокчейна: хто створює блоки 21098_5
Один з генералів не відправив вірне повідомлення, тому інші не знають, атакувати їм або відступати

Математики довели, що отримати рішення в даній задачі завжди можливо, якщо вірних генералів більше двох третин від загального числа. У різних системах завдання може бути вирішена по-різному.

Візантійська відмовостійкість - здатність мережі продовжувати працювати, навіть якщо деякі з вузлів відмовили або діють зловмисно. Іншими словами, це властивість мережі, в якій вирішена Завдання Візантійських Генералів.

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

Якщо це завдання застосувати до контексту блокчейна, то генерали є Майнер. Вони повинні домовитися і визнати транзакцію дійсної, щоб вона потрапила в блокчейн. Даний процес називається досягненням консенсусу.

Принцип роботи блокчейна: хто створює блоки 21098_6
Майнер розглядають всі транзакції і вирішують підтверджувати їх або відхиляти

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

Так як у Завдання Візантійських Генералів кілька рішень, то різні блокчейни домагаються візантійської відмовостійкості з допомогою різних алгоритмів консенсусу. Розглянемо докладніше найпоширеніші.

алгоритми консенсусу

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

Алгоритм консенсусу - метод, який описує як вибирається майнер в блокчейне і за якими правилами він створює блоки.

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

Proof of Work (PoW) - алгоритм докази роботи. Майнер може стати будь-який мешканець будинку. Щоб створювати нові блоки, він повинен буде використовувати свій комп'ютер для вирішення складних криптографічних завдань.

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

Принцип роботи блокчейна: хто створює блоки 21098_7
Нові блоки створюють ті мешканці, у яких включений комп'ютер

Proof of Stake (PoS) - алгоритм докази частки володіння. Майнер стають ті, у кого найбільше активів в блокчейне. У нас це будуть мешканці з найбільшими квартирами. А в блокчейне Ефіріума, наприклад, це будуть користувачі, у яких на рахунку найбільше криптовалюта ETH. При такому алгоритмі витрати на електроенергію мінімальні, так як створення блоків в блокчейне більше не вимагає вирішення складних криптографічних завдань. Чим більше твоя частка в блокчейне, тим частіше ти будеш створювати нові блоки.

Вірною версією блокчейна, як і в Proof of Work, вважатиметься та, в якій найбільше блоків. Але Proof of Stake не можна назвати демократичним. Найбільше блоків створять не більшість мешканців, а найбагатші мешканці. Однак, це ще більш безпечно. Якщо Майнер належить велика частина будинку, то діяти зловмисно їм буде невигідно.

Принцип роботи блокчейна: хто створює блоки 21098_8
Нові блоки створюють мешканці з найбільшими квартирами

Proof of Authority (PoA) - алгоритм докази особистості. Може бути так, що мешканці зібралися і вирішили, що створювати блоки буде одна квартира. Даний алгоритм поширений в приватних, закритих блокчейнах. Наприклад, він добре підходить для управління багатоквартирним будинком з нашого прикладу.

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

Принцип роботи блокчейна: хто створює блоки 21098_9
Нові блоки створює той мешканець, якого обрали заздалегідь

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

висновок

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

У статті 1982 року було описана Завдання Візантійських Генералів. У ній вперше був описаний алгоритм того, як мережа може продовжувати працювати, навіть якщо деякі з вузлів відмовили або діють зловмисно.

У блокчейне використовують три різновиди алгоритмів консенсусу:

  • Proof of Work (PoW) - алгоритм докази роботи.
  • Proof of Stake (PoS) - алгоритм докази частки володіння.
  • Proof of Authority (PoA) - алгоритм докази особистості.

Читати далі