Що таке Proof of Work (PoW)?
Головна сторінка
Статті
Що таке Proof of Work (PoW)?

Що таке Proof of Work (PoW)?

Середній рівень
Опубліковано Dec 6, 2018Оновлено Apr 18, 2024
10m

Ключові моменти:

  • Proof of Work (PoW) – це механізм консенсусу, створений для запобігання подвійним витратам у системах цифрових платежів.

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

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

Вступ

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

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

HashCash від Адама Бека – це ранній приклад використання алгоритму Proof of Work ще до криптовалют. Вимагаючи від відправників виконання невеликого обсягу обчислень перед надсиланням електронного листа, одержувачі могли фільтрувати спам. Такі обчислення практично нічого не коштували для звичайного відправника, але вони суттєво ускладнювали процес масового розсилання.

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

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

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

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

Щоб отримати більш детальну інформацію про подвійні витрати, перегляньте статтю "Пояснення подвійних витрат".

Навіщо потрібен Proof of Work?

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

Блокчейн Bitcoin, наприклад, працює як публічна база даних транзакцій (реєстр), яку може бачити кожен користувач. Уявіть собі це так: у вас і трьох друзів є блокнот для відстеження ваших транзакцій з bitcoin. Щоразу, коли хтось із вас хоче здійснити переказ вартості, ви записуєте це:

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

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

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

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

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

Ось тут і з'являється Proof of Work. Він гарантує, що користувачі не витрачають гроші, на які вони не мають права. Використовуючи комбінацію теорії ігор і криптографії, алгоритм PoW дозволяє будь-кому оновлювати блокчейн відповідно до правил системи.

Як працює PoW?

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

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

Механізм 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 майнери замінюються валідаторами. Тут немає майнінгу та гонки за вгадування хешів. Натомість користувачі вибираються випадковим чином – якщо вони вибрані, вони повинні запропонувати (або "викарбувати") блок. Якщо блок є дійсним, вони отримають винагороду, що складається з комісій від транзакцій у блоці.

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

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

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

Підсумки

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

Пов'язані статті

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

Поділіться дописами
Реєстрація акаунту
Застосуйте свої знання на практиці, відкривши акаунт Binance вже сьогодні.