Ключові моменти
Proof of Work (PoW) — це механізм консенсусу, створений для запобігання подвійного витрачання в цифрових платіжних системах.
PoW — це ключова частина майнінгу, який включає додавання блоків з транзакціями в блокчейн і створення нових одиниць криптовалюти.
Біткоїн і багато інших криптовалют використовують механізм PoW для захисту своїх блокчейн-мереж і даних.
Введення
Якщо коротко, Proof of Work (PoW) — це механізм, створений для запобігання подвійного витрачання в цифрових платіжних системах. Біткоїн і багато інших криптовалют використовують PoW для захисту своїх блокчейн-мереж і даних. Такі елементи називають механізмами — або алгоритмами — консенсусу, оскільки вони дозволяють кільком сторонам досягти консенсусу без необхідності довіряти один одному.
Proof of Work був першим алгоритмом консенсусу і досі залишається одним з найважливіших нарівні з Proof of Stake (PoS). PoW був представлений Сатоші Накамото в технічній документації Біткоїна в 2008 році, але сама технологія була запропонована задовго до цього.
В якості раннього прикладу використання алгоритму Proof of Work можна навести систему HashCash від Адама Бека, яка з'явилася ще до криптовалют. Необхідність виконання невеликої кількості обчислень перед відправкою електронної пошти дозволила зменшити кількість спаму. Такі обчислення практично нічого не коштують для звичайного відправника, але суттєво ускладнюють процес масової розсилки.
Що таке подвійне витрачання?
Подвійне витрачання відбувається, коли одні й ті ж кошти витрачаються більше одного разу. Цей термін практично завжди використовують у відношенні цифрової валюти, оскільки в реальному житті складно уявити ситуацію, в якій одні й ті ж гроші витрачаються двічі.
Наприклад, при покупці кави ви передаєте гроші касиру, який кладе їх у касу. У вас не вийде піти в інше кафе і заплатити за другу каву тією ж купюрою. Однак у системах цифрових грошей це можливо.
Напевно, вам вже доводилося копіювати файли на комп'ютері. Один і той же файл можна без зусиль відправити десяткам людей. А оскільки цифрові гроші — це просто дані, необхідно виключити ймовірність подвійного витрачання, тобто копіювання і відправки одних і тих же одиниць у різних місцях. Якщо цифрова платіжна система не здатна запобігти подвійним витратам, вона швидко зруйнується.
Щоб дізнатися більше про подвійне витрачання, ознайомтеся зі статтею Що таке подвійне витрачання.
Для чого потрібен Proof of Work?
Якщо ви вже читали наше керівництво по блокчейну, то знаєте, що користувачі криптовалюти транслюють транзакції в мережу. Але транзакції стають дійсними не відразу, а тільки після перевірки і додавання в блокчейн.
Наприклад, блокчейн Біткоїна працює як публічна база транзакцій (реєстр), яку може переглянути будь-який користувач. Припустимо, у вас і трьох ваших друзів є блокнот, в який ви записуєте транзакції з біткоїнами. Якщо хтось з вас захоче перевести кошти, він зробить у блокнот запис:
Аліса платить Бобу 5 BTC. Боб платить Керол 2 BTC і так далі.
При здійсненні кожного переказу необхідно посилатися на попередню транзакцію, від якої були отримані кошти. Тобто, коли Боб переводить Керол 2 BTC, запис виглядає наступним чином:
Боб переводить Керол 2 BTC, отримані з попередньої транзакції з Алісою.
Таким чином, ми можемо відстежувати всі перекази BTC. Якщо Боб спробує здійснити іншу транзакцію, використовуючи ті ж 2 BTC, які він тільки що відправив Керол, всім відразу стане про це відомо. Група не дозволить йому записати таку транзакцію в блокнот, оскільки він вже витратив ті 2 BTC.
Така система може добре працювати в невеликій групі людей, де всі учасники добре знають один одного, адже їм буде легше домовитися про те, хто з них стане відповідальним за додавання транзакцій у загальний список. Але що, якщо ми хочемо зібрати групу з 10 000 учасників? Суть використання блокнота погано масштабується, оскільки ніхто не стане довіряти незнайомцю управління таким фінансовим реєстром.
Для цього і потрібен алгоритм Proof of Work. Він гарантує, що користувачі не витратять гроші, які не можуть витратити. Використовуючи теорію ігор разом із криптографією, алгоритм дозволяє будь-якому користувачу оновлювати блокчейн відповідно до правил системи.
Як працює PoW?
Уявіть, що блокнот з прикладу вище — це блокчейн. Однак транзакції не додаються в систему одна за одною, а об'єднуються в блоки. Користувачі, які створюють блок, включають транзакції в блок-кандидат. Транзакції будуть вважатися дійсними тільки після підтвердження блоку-кандидата і додавання в базу блокчейна.
Процес підтвердження транзакцій і додавання нових блоків називається майнінгом. Він достатньо складний і вимагає витрат, але може приносити прибуток у вигляді винагороди за блок. Вона складається з комісій за транзакції і нових біткоїнів, створених протоколом.
Механізм Proof of Work вимагає, щоб майнер (користувач, що створює блок) вкладав ресурси (електроенергію та обчислювальну потужність) у хешування даних блоку-кандидата до тих пір, поки не буде знайдено рішення.
Хешування блоку передбачає проведення його через хеш-функцію для генерації хеша. Хеш блоку виконує роль «відбитка пальця» і слугує ідентифікатором вхідних даних, унікальних для кожного блоку.
Іншими словами, майнер повинен перевірити і зібрати незавершені транзакції, потім об'єднати їх у блок-кандидат і пропустити дані блоку через хеш-функцію, щоб отримати правильний хеш. Якщо у майнера вийде знайти правильний хеш для свого блоку-кандидата, він передасть його в мережу, додасть блок у блокчейн і отримає винагороду за майнінг.
Коли майнер передасть блок-кандидат і хеш у мережу, інші учасники мережі повторять процес хешування, щоб впевнитися в достовірності результату.
На пошук правильного хеша йде величезна кількість спроб, а ось перевірити правильність готового хеша досить легко. Для цього необхідно просто пропустити ті ж вхідні дані (дані блоку) через хеш-функцію і перевірити, чи збігається результат.
В Proof of Work ви повинні надати дані, хеш яких відповідає певним правилам, установленим у протоколі, за умови, що ви не знаєте, як його витягти безпосередньо. Єдиний варіант — це пропустити дані через хеш-функцію і перевірити, чи відповідають вони умовам. Якщо відповідності не буде, вам доведеться змінити дані, щоб отримати інший хеш. Зміна хоча б одного символу у ваших даних призведе до зовсім іншого результату, з цієї причини неможливо просто так передбачити, яким саме може бути висновок.
Отже, для створення блоку потрібно обчислити хеш. Для цього користувач хешує разом інформацію про всі транзакції, які потрібно додати в блоки, і деякі інші дані. Але оскільки набір даних не змінюється, користувач додає частину інформації, яка стане змінною. В іншому випадку на виході завжди буде отримуватися один і той же хеш. Ці змінні дані називаються 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. Одна з них — менший вуглецевий слід. Це пов'язано з тим, що Proof of Stake не вимагає утримання потужних майнінг-ферм, тому споживає набагато менше електроенергії, ніж Proof of Work.
Однак у PoS не такий великий послужний список, як у PoW. Хоча PoW може сприйматися як марнотратство, на цей момент майнінг — це єдиний алгоритм консенсусу, добре працюючий більше десяти років. За цей час механізм PoW Біткоїна безпечно обробив транзакцій на трильйони доларів. Протоколу PoS ще належить довести свою ефективність і конкурентоспроможність у довгостроковій перспективі.
У висновку
Proof of Work — надійне і безпечне рішення проблеми подвійного витрачання. Біткоїн довів, що для цього не потрібні централізовані організації. При грамотному використанні криптографії, хеш-функцій і теорії ігор учасники децентралізованого середовища можуть самі відстежувати правильність роботи всієї фінансової бази даних.
Рекомендувана література
Що таке майнінг криптовалюти і як він працює
Що таке криптографія з публічним ключем?
Що таке алгоритм консенсусу блокчейна?
Відмова від відповідальності: наступні матеріали надаються на умовах «як є» без жодних гарантій виключно для загальних довідкових і освітніх цілей. Ця інформація не повинна розглядатися як фінансова, юридична консультація або рекомендація щодо придбання будь-якого конкретного продукту чи послуги. Вам слід самостійно звернутися за порадою до відповідних професійних консультантів. Оскільки стаття написана стороннім автором, зверніть увагу, що висловлені думки належать сторонньому автору і не обов'язково відображають точку зору Binance Academy. Для отримання більш детальної інформації перейдіть за посиланням. Вартість цифрових активів може бути волатильною. Вартість інвестованих коштів може збільшуватися і зменшуватися. Ви можете не повернути інвестовані кошти. Ви несете повну відповідальність за свої інвестиційні рішення. Binance Academy не несе відповідальності за ваші можливі збитки. Ця інформація не є фінансовою, юридичною або професійною рекомендацією. Щоб дізнатися більше, ознайомтеся з нашими Умовами використання та Попередженням про ризики.
