Proof-of-Work
POW (доказ виконаної роботи) - принцип захисту мережевих систем від зловживання послугами (наприклад, від DdoS-атак або організації розсилок спаму). Алгоритм консенсусу, який заснований на доказі виконаної роботи. Даний процес включає в себе спробу знайти хеш (хеш-функція є односторонньою функцією, що дозволяє легко вводити інформацію і обчислювати хеш, але надзвичайно складно виводити хеш і визначати вихідну інформацію) заголовку блоку, який містить посилання на попередній блок і підсумкове значення транзакцій в нього включених.
Proof-of-Work передбачає обов'язкове виконання трудомістких обчислень і в той же час швидку і легку перевірку результатів. Ця особливість PoW-алгоритму називається асиметрією витрат часу.
В технології PoW вирішальним фактором знаходження блоку є використання великих обчислювальних потужностей її учасників і, отже, існують проблеми, пов'язані з великими витратами електроенергії.
Вперше висування вимоги доказу виконання роботи наведені в статті «Pricing via Processing or Combatting Junk Mail» в 1993 році. У 1997 році Адам Бек запустив проект Hashcash, присвячений захисту від спаму. Завдання формулювалася так: «Знайти таке значення x, щоб хеш SHA (x) містив би N старших нульових бітів».
У 1999 році з'являється термін Proof-of-Work - використаний він був в статті «Proofs of Work and Bread Pudding Protocols» (автори - Маркус Якобссон і Арі Джуелс) в журналі Communications and Multimedia Security.
16 серпня 2004 року Хел Фінні в своєму листі на форумі шифропанків запропонував використовувати багаторазовий доказ виконання роботи (англ. Reusable-Proofs-of-Work, RPOW, RPoW) для організації електронної валюти.
Незабаром Сатоші Накамото запропонував криптовалюту Bitcoin, де доказ виконання роботи використано для значного ускладнення подвійного витрачання. Було запропоновано знаходження хешу блоку інформації через функцію SHA-256 з підбором параметрів, щоб у результаті задане число старших бітів були б нульовими.
Алгоритм Proof-of-Work використовується в: Bitcoin, Ethereum, Litecoin, Dogecoin, Zcash, Monero.
Proof-of-Stake
PoS (підтвердження частки володіння) - принцип роботи, який може зробити криптовалютні транзакції дешевими, швидкими і навіть екологічно чистими. Метод захисту в криптовалюті, при якому ймовірність формування чергового блоку в блокчейні пропорційна частці криптовалюти, яка належить майнерові. Отже, більше шансів згенерувати новий блок має майнер з найбільшим балансом.
У деяких мережах, що використовують систему PoS, винагорода за блок відсутня, а дохід майнера складають тільки комісії з транзакцій. Для майнінгу в системі PoS існує окремий термін - форджинг.
PoS є альтернативним механізмом PoW, вперше реалізованим в 2012 році в криптовалюті PPCoin (перейменована в PeerCoin). Ідея Proof-of-Stake полягає у вирішенні проблеми Proof-of-Work, пов'язаної з великими витратами електроенергії.
Прихильники PoS стверджують, що, якщо недобросовісні криптоінвестори захочуть атакувати всю мережу, їм доведеться накопичити значну частину криптовалюти на своєму балансі, що робить сам напад недоцільним з фінансової точки зору.
Є й скептики концепції Proof of Stake. Один з їхніх аргументів - загроза децентралізації криптовалюти. Адже принцип PoS може спонукати інвесторів концентрувати все більше криптовалюти в одних руках. Якщо це станеться, то монополіст зможе диктувати власні умови всім учасникам мережі.
На PoS працюють: PayCoin, Blackcoin, Nxt, Clobal. В майбутньому Ethereum також планує перейти на Proof-of-Stake.
Leased Proof-of-Stake
LPoS - це гібридний вид алгоритму PoS. Його суть полягає в тому, що більш дрібні учасники форджингу (або ті, які не можуть брати участь в ньому через недостатню кількість монет на рахунку) ніби-то здають в оренду свої монети повноцінним нодам, підвищуючи цим шанс останніх згенерувати блок. Натомість «орендодавці» отримують свою частку в загальній винагороді. Це має схожість з майнінг-пулами, які на даний момент в своїй більшості обслуговують мережу Bitcoin. В системі LPoS учасник має повне право зробити зі своїми монетами що завгодно в будь-який момент: витратити їх, обміняти на інші монети і т.д. При цьому «договір оренди» автоматично розривається і з цього моменту «орендодавець» вже не може розраховувати на частку.
Алгоритм LPoS дозволяє зробити мережу більш децентралізованою, залучаючи велику кількість дрібних вузлів. Також це відмінний шанс для власників невеликої кількості монет отримувати невеликий, але стабільний прибуток, просто тримаючи монети на «довгострок».
Наприклад, монета Waves працює за алгоритмом LPoS.
Delegated Proof-of-Stake
Це підвид алгоритму PoS. Суть DPoS полягає в тому, що ноди мережі методом голосування обирають вузол, який буде генерувати блоки. В цьому випадку працює правило: чим більшу кількість монет має нода, тим більшу вагу має її голос. Правила нарахування винагороди також визначаються учасниками мережі. У деяких спільнотах винагорода нараховується не тільки ноді, якій делегували право генерувати блоки, а й іншим учасникам.
Перша монета, в якій був застосований алгоритм DPoS - Bitshares. Також він застосовується в: EOS, Lisk, Ark, Steem.
Proof-of-Importance
PoI - доказ важливості. Цей алгоритм схожий на Proof-of-Stake, проте в ньому враховується не тільки кількість монет на рахунку, а й інші чинники, такі як репутація ноди (визначається через спеціальний сервіс), кількість вхідних і вихідних транзакцій. Тобто цей алгоритм дає право генерувати блоки тільки «корисним» членам мережі. На PoI розроблені: NEM, Nebulas
Proof-of-Activity
Доказ активності. Це гібридний варіант, який створений на основі алгоритмів PoW і PoS. У цьому алгоритмі блоки PoS паралельно шукаються з блоками PoW, тобто блокчейн Proof-of-Activity складається з блоків обох типів.
Якщо виникає конфлікт в системі, то вага блоків PoW більше, ніж блоків PoS, так як в Proof-of-Work практично неможливо здійснити атаку «double-spend», яку теоретично можливо реалізувати в Proof-of-Stake. В цьому випадку форджери «приймаються за роботу» тільки після того, як проведена робота майнерів. Це створює заходи безпеки, які не дозволяють монополістам-холдерам кожен раз отримувати винагороду за генерацію нового блоку або здійснити атаку 51%. Це допомагає зробити роботу мережі більш безпечною і захищеною.
Proof-of-Burn
Це доказ спалювання певної кількості монет, який відбувається шляхом відправки монет на адресу, з якої неможливо їх витратити. Наприклад, на адресу, яка є хешем випадкового числа і шанси підібрати до нього відповідний публічний і приватний ключі мізерно малі. Позбавляючись таким чином від своїх монет, користувач отримує право на довічний майнінг, який влаштований так само, як лотерея серед всіх власників спалених монет.
За даним алгоритмом працює Slimcoin.
Proof-of-Capacity
Доказ ємності. Для можливості створювати блоки необхідно виділити суттєвий обсяг свого дискового простору (місце на жорсткому диску). Для майнінгу можна використовувати навіть звичайний ПК, головне, щоб на жорсткому диску були тисячі (а краще сотні тисяч) терабайт вільного місця, яке буде «забиватися» випадковими хешами в надії на те, що один з них допоможе згенерувати блок. Даний алгоритм застосований в монеті Burst.
Proof-of-Storage
Доказ зберігання. Схожа з Proof-of-Capacity схема, при якій виділене місце використовується всіма учасниками як спільне хмарне сховище.
Proof-of-Signature
PoSign - доказ підпису. Це новий алгоритм, який з'явився досить недавно (в листопаді 2017 року) і ще навіть не розроблений до кінця. Суть його полягає в тому, що блоки підписуються кожним вузлом мережі, за що останні отримують винагороду. Якщо один з вузлів спробує зробити атаку, то він буде виключений з мережі без подальшого права брати участь в майнінгу. На даний момент ця технологія застосовується в монеті XTRABYTES - це перший і поки єдиний проект, який працює на основі алгоритму PoSign.
Proof-of-Authority
PoA - доказ повноважень. Створення блоків визначається не обчислювальними потужностями, як при POW, і не часткою учасника, як при POS, а рішенням валідаторів, чий авторитет покликаний служити гарантією безпеки всієї мережі. Суворий підхід до вибору валідаторів гарантує їх чесність і зводить до мінімуму можливість змови з метою маніпулятивних або шахрайських дій. Цей алгоритм дозволяє тільки обраним (спочатку певним нодам) генерувати блоки і встановлювати свої правила в мережі. Ідеально підходить для приватних блокчейнів: створення приватних мереж або державних криптовалют. Як приклад можна назвати мережу Kovan. Термін був придуманий Гевіном Вудом - співзасновником Ethereum і Parity Technologies.
Proof-of-Brain
Доказ «мозкової діяльності». Майнінг відбувається шляхом створення якісного контенту, який підтримується іншими учасниками мережі через голосування (лайки і коментарі). Чим більше лайків і коментарів отримає вузол, який створив контент, тим більше монет він зможе «намайнити».
На даній технології працює мережа Steemit і її форк Golos.
Zero Knowledge Proof
Zk-snark - доказ з нульовим розголошенням (інформації). У протоколі zk-snark мають місце два учасники: сторона, яка доводить (прувер) і сторона, яка перевіряє (верифікатор). Доказ нульового знання - це процес, в якому прувер переконує верифікатора в тому, що він володіє певними секретними знаннями, не розкриваючи їх. Використання zk-snark дозволяє приховувати те, з якої адреси пішов платіж, куди він прийшов, скільки грошей було переведено, а також дозволяє довести, що транзакція дійсно пройшла і на рахунку одержувача знаходиться вірна сума. Для роботи протокол повинен відповідати певним параметрам:
- Повнота: якщо твердження вірне, то чесний прувер може переконати доказом чесного верифікатора.
- Коректність: якщо сторона, яка доводить бреше, то вона не може переконати в коректності сторону, яка перевіряє.
- Нульове розголошення: якщо твердження істинне, верифікатор не може дізнатися його зміст.
Поняття 'нульове розголошення' було вперше запропоновано в 1980-х фахівцями MIT Шафі Голдвассером, Сільвіо Мікалі і Чарльзом Ракоффом.
Zk-snark реалізований в криптовалюті Zcash і його форках, а також в оновленні Ethereum - Metropolis.
Алгоритми консенсусу відіграють найважливішу роль в «житті» монети, оскільки визначають її функціонал, емісію і загальні правила мережі. В даний момент на першому місці за популярністю знаходиться Proof-of-Work, за ним йде PoS, все частіше зустрічаються і гібридні алгоритми.
Кожен з алгоритмів має свої переваги і недоліки, але в загальному ідеальний алгоритм консенсусу повинен виконувати два важливі завдання:
- Атаки на мережу повинні бути максимально витратними і мати погані наслідки для самого атакуючого
- Захист мережі повинен добре винагороджуватися