Ключові моменти, які варто запам'ятати

  • Доказ роботи (PoW) - це механізм консенсусу, створений для запобігання подвоєнню витрат у цифрових платіжних системах.

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

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

Вступ

Коротко кажучи, proof-of-work (PoW) — це механізм, створений для запобігання подвійним витратам у цифрових платіжних системах. Біткоїн та багато інших криптовалют використовують PoW як спосіб забезпечення безпеки своєї мережі та даних блокчейну. Ці механізми часто називають алгоритмами консенсусу або механізмами консенсусу, оскільки вони передбачають, що кілька сторін досягають згоди без потреби довіряти одне одному.

Proof of Work був першим алгоритмом консенсусу, який з’явився, і він досі залишається одним із найважливіших разом із Proof of Stake (PoS). Його представив Сатоші Накамото в whitepaper (білому папері) про біткоїн у 2008 році, але технологія була розроблена задовго до цього.

HashCash Адама Блека — це приклад алгоритму proof-of-work, який існував ще до створення криптовалют. Попросивши відправників виконати невеликий обчислювальний розрахунок перед надсиланням електронного листа, можна було б легко зменшити спам. Цей розрахунок майже нічого не коштував би законному відправнику, на відміну від людини, яка масово надсилає електронні листи.

Що таке подвійні витрати?

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

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

Ви, мабуть, уже дублювали комп’ютерний файл за допомогою команд копіювати-вставити. Так само легко надіслати той самий файл електронною поштою десяткам людей. Оскільки цифрові монети врешті-решт є лише даними, потрібно не дати людям копіювати й витрачати ті самі одиниці в різних місцях. Цифрова платіжна система, яка не здатна запобігти подвійним витратам, дуже швидко «зламається».

Щоб дізнатися більше про подвійні витрати, не соромтеся прочитати статтю «Подвійні витрати пояснено».

Навіщо потрібен proof-of-work?

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

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

Аліса платить 5 BTC Бобу; Боб платить 2 BTC Керол тощо.

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

Боб платить 2 BTC Керол з цієї попередньої транзакції від Аліси.

Тепер ми маємо спосіб відстежувати одиниці BTC. Якщо Боб спробує здійснити транзакцію з тими самими 2 BTC, які він щойно відправив Керол, усі це побачать. Група не дозволить додати транзакцію до записника, адже ці 2 BTC уже були витрачені.

Це, мабуть, могло б працювати в маленькій групі. Усі знають одне одного й, імовірно, погодяться, які друзі мають додавати транзакції в записник. Але що буде з групою на цей раз із 10 000 людей? Записник не підходить, бо ніхто не захоче довіряти незнайомцю, щоб той вів його.

Саме тут у гру вступає proof-of-work. Він гарантує, що користувачі не витрачатимуть гроші, на які вони не мають права. Поєднавши теорію ігор з криптографією, алгоритм PoW дає змогу всім оновлювати блокчейн відповідно до правил системи.

Як працює PoW?

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

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

Механізм proof-of-work (доказу роботи) вимагає, щоб майнер (користувач, який створює блок) інвестував ресурси, такі як електроенергія та обчислювальна потужність, щоб хешувати дані свого кандидатного блоку, доки не буде знайдено розв’язання головоломки.

Хешування даних блоку означає пропустити їх через хеш-функцію, щоб згенерувати хеш блоку. Цей хеш блоку — це «цифровий відбиток»: він ідентифікує ваші вхідні дані й є унікальним для кожного блоку.

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

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

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

У випадку proof-of-work вам потрібно надати дані, для яких хеш відповідає певним умовам. Але ви не знаєте, як цього досягти. Тож у вас є лише один варіант: пропустити свої дані через хеш-функцію та перевірити, чи результат відповідає умовам. Якщо ні — вам доведеться трохи змінити свої дані, щоб отримати інший хеш. Якщо змінити навіть один символ у даних, ви отримаєте абсолютно інший результат. Отже, неможливо наперед передбачити результат.

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

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

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

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

Підсумуємо те, що ми вже знаємо:

  • Майнінг складний і дорогий, але він забезпечує безпеку мережі.

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

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

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

Саме тут у гру вступає криптографія з відкритим ключем. Тут ми не заглиблюватимемося в деталі, але ви все одно можете прочитати «Що таке криптографія з відкритим ключем?», щоб дізнатися більше. Якщо коротко, існують витончені криптографічні техніки, які дозволяють кожному користувачу перевірити, чи має хтось право перемістити кошти, які він намагається витратити.

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

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

Ось у чому краса proof-of-work: чесність є вигіднішою, ніж шахрайство. Раціональний майнер шукатиме прибуток від інвестицій, тож можна очікувати, що він поводитиметься так, щоб генерувати дохід.

Proof of Work (PoW) і Proof of Stake (PoS)

Існує багато алгоритмів консенсусу, окрім PoW, але один із найпопулярніших — Proof of Stake (PoS). Ця ідея з’явилася ще в 2011 році та була впроваджена в Ethereum і в багатьох інших протоколах.

У випадку proof-of-stake (PoS) майнерів замінюють валідатори. Немає майнінгу і немає гонитви за правильним хешем. Натомість користувачів обирають випадково: якщо їх обрали, вони мають запропонувати (або «форджити») блок. Якщо блок дійсний, вони отримають винагороди, що складаються з комісій за транзакції в цьому блоці.

Не всіх можна обрати — протокол, по суті, враховує певні параметри під час вибору. Щоб їх могли обрати, учасники мають заблокувати stake — заздалегідь визначену суму нативної валюти блокчейну. Stake працює як застава: так само як захисники вносять велику суму грошей, щоб утримати від ухилення від суду, валідатори блокують stake, щоб не шахраювати. Якщо вони діятимуть недоброчесно, весь їхній stake (або частина) буде забрано.

Proof of Stake (PoS) має переваги порівняно з Proof of Work (PoW). Найпомітніше — це зменшення вуглецевого сліду. Оскільки для PoS не потрібно мати потужні майнінгові ферми, споживана електроенергія становить лише частину тієї, що витрачається з PoW. 

Втім, у PoS немає такого ж «послужного списку», як у PoW. Хоча його можна сприймати як марнотратство, майнінг — це єдиний алгоритм консенсусу, який тестується вже понад одне десятиліття. Від запуску PoW біткоїна захищав транзакції на сотні мільярдів доларів. Щоб з упевненістю стверджувати, що PoS конкурує з PoW щодо безпеки, staking потрібно належним чином протестувати у великому масштабі.

Висновок

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

Більше інформації

  • Що таке майнінг криптовалют і як він працює?

  • Що таке криптографія з відкритим ключем?

  • Що таке алгоритм консенсусу блокчейну?

Юридичне застереження та попередження щодо ризиків: цей контент надається вам у форматі «як є» лише для загальної інформації та педагогічних цілей, без жодних заяв або гарантій будь-якого роду. Його не слід трактувати як фінансову, юридичну чи іншу професійну пораду, а також як спосіб рекомендувати купівлю конкретного продукту чи послуги. Перш ніж ухвалювати будь-які рішення, вам слід проконсультуватися з відповідними фахівцями. Якщо стаття була написана стороннім автором, будь ласка, зверніть увагу, що погляди в цій статті можуть не відображати позицію Binance Academy. Будь ласка, прочитайте повне юридичне застереження тут, щоб дізнатися більше. Ціни цифрових активів можуть бути волатильними. Вартість вашої інвестиції може як знижуватися, так і зростати, і ви можете не повернути суму, яку інвестували. Ви самі відповідаєте за свої інвестиційні рішення, а Binance Academy не несе відповідальності за збитки, які ви можете понести. Цей контент не слід трактувати як фінансову, юридичну чи професійну пораду. Щоб дізнатися більше, будь ласка, зверніться до наших Умов використання та попередження щодо ризиків.