За ці роки в індустрії криптовалют з’явилося досить багато алгоритмів консенсусу для різних блокчейн-систем. Розглянемо один з незвичайних механізмів валідації – Proof-of-Capacity.
Пам’ять і криптографія
Замість складних обчислень для забезпечення консенсусу можуть використовуватися простори пам’яті комп’ютера. Ця ідея з’явилася досить давно. Його концептуально розробив польський ентузіаст Стефан Дзембовський ще у 2013 році, назвавши його Proof-of-Space. Proof of Space був розроблений як альтернатива Proof-of-Work (PoW). Proof-of-Space запропонував виділяти значну кількість дискового простору, а не обчислювальних потужностей, як це реалізовано в PoW.
Згодом цей алгоритм консенсусу був перетворений на інші алгоритми, такі як Proof-of-Storage (Proof-of-Retrievability), Proof-of-Space-time та Proof-of-Capacity. Варто відзначити, що незважаючи на те, що всі ці алгоритми можна відрізнити за специфікою їх роботи, поняття часто використовуються як синоніми. Наприклад, Proof-of-Space можна назвати синонімом Proof-of-Capacity, що, строго кажучи, не зовсім правильно. Тому будемо виходити з того, що Proof-of-Capacity – це алгоритм, зав’язаний на механіці побудови графіків та майнінгу.
Що таке Proof-of-Capacity?
Замість пошуку рішення в режимі реального часу, як це відбувається в PoW, Proof of Capacity передбачає попереднє створення файлів графіків (графіків) на жорсткому диску, що містять набір рішень, попередньо обчислених на основі унікального ідентифікатора учасника мережі. Тобто процес розрахунку та зберігання рішень на комп’ютері відбувається ще до початку Майнінг. А жорсткий диск (або будь-який інший пристрій пам’яті), на якому зберігається найшвидший розв’язок останньої головоломки блоку, отримує винагороду за блок.
У Proof-of-Capacity блок видобувається в середньому кожні чотири хвилини. Така швидкість досягається за рахунок того, що всі розрахунки і рішення зберігаються на жорсткому диску заздалегідь. В кінцевому підсумку виходить, що чим більше розмір сюжетного файлу на жорсткому диску, тим вище шанс отримати винагороду за блок.
Побудова графіків у режимі Proof-of-Capacity
Коли майнер створює файл графіка, він, по суті, створює число nonce. Нонс народжується шляхом багаторазового хешування даних, включаючи ID облікового запису майнера. Тому файли сюжетів не можна використовувати двічі – жоден з них не є унікальним і прив’язаний до ID користувача. Файл сюжету може містити величезну кількість нонцесів – і чим їх більше, тим вищий шанс отримати винагороду.
Чим більше місця на жорсткому диску майнер виділяє для побудови графіків, тим більше нічого він не може зберігати. Один нонс міститиме 8192 хеші. Ці 8192 хеші організовані в пари, відомі як совки. Кожній мірній ложці присвоюється номер від 0 до 4095. Наприклад, хеш 0 і 1 – це мірна ложка 0 – хеш 2 і 3 – черпак 1 – і так далі, аж до 4095. Кожен совок важить 64 байта, а хеш вдвічі менше, тобто 32 байти, або 256 біт.
На створення таких файлів і заповнення ними великої кількості дискового простору можуть піти дні або навіть тижні. Це пов’язано з тим, що PoC часто використовують алгоритм хешування Shabal256, 256-бітний варіант Shabal. Shabal – досить важкий і повільний алгоритм у порівнянні з SHA256. Тому ефективніше заздалегідь обчислювати хеші і зберігати результати в пам’яті, ніж виконувати обчислення в режимі реального часу.
Майнінг у режимі Proof-of-Capacity
Майнінг влаштований так. Майнер обчислює номер мірної ложки від 0 до 4095. Припустимо, розрахунок дає совок під номером 42. Потім майнер переходить до совка під номером 42 у першому nonce і використовує дані з цього совка для розрахунку кількості часу, який називається терміном.
Процес повторюється для всіх незначностей, які є у майнера на пристроях пам’яті. Розрахувавши всі терміни, майнер вибирає найкоротший. Дедлайн – це час у секундах, який має пройти з моменту створення останнього блоку до того, як цьому конкретному майнеру буде дозволено створити новий блок. Відповідно, якщо жоден з інших майнерів не встигає згенерувати блок у встановлений термін, майнер створює блок і забирає за нього винагороду.
Наприклад, майнер отримує мінімальний дедлайн у 25 секунд з усіх своїх нонцесів. Якщо ніхто інший не зможе створити блок в найближчі 25 секунд, то йому буде надана можливість створити блок і отримати винагороду.
Тобто дедлайн – це по суті найкоротший час, за який майнер здатний вирішити блок. А той, хто виявиться швидшим, з часом зможе забрати нагороду.
Переваги Proof-of-Capacity
А навіщо взагалі потрібен Proof-of-Capacity, коли Proof-of-Work працює і показує себе відмінно? Особливо, якщо поставити це питання в контексті 2013 року, коли був винайдений PoC. На той момент побоювання з приводу екологічної загрози PoW були не такими сильними, і це один з найбільш вагомих аргументів противників PoW.
Причин насправді кілька:
- Майнінг, прив’язаний до пристроїв пам’яті, значно енергоефективніший, ніж той, який покладається на обчислювальні потужності. Використання спеціалізованого обладнання, такого як ASIC або навіть звичайний графічний процесор (GPU), вимагає багато енергії. Сьогодні цей аргумент виглядає ще більш переконливо, оскільки має пряме відношення до екологічного сліду видобутку корисних копалин. Взаємозв’язок дуже проста: чим менше енергії витрачається, тим краще навколишнє середовище.
- Майнери, які вклали гроші в спеціалізоване обладнання, наприклад, ASIC, не матимуть конкурентної переваги при видобутку монет. Більш того, вони навіть не зможуть скласти конкуренцію, так як Майнінг в Proof-of-Capacity – це зовсім інше.
- Proof-of-Capacity забезпечує більший ступінь диверсифікації. У той час як PoW продовжує використовувати ASIC і GPU, PoC також дозволить використовувати жорсткі диски та твердотільні накопичувачі для майнінгу на інших блокчейнах. Як наслідок, у світі просто стане більше блокчейнів, криптовалют і задоволених криптоентузіастів.
- В результаті Proof-of-Capacity виявляється досить демократичним алгоритмом. Це пов’язано з низькими бар’єрами для придбання обладнання. Жорсткі диски (які є більш ефективними для PoC-обладнання в порівнянні з дорожчими SSD) зазвичай досить дешеві, і це дозволяє більшій кількості майнерів активно добувати монети.
- Після видобутку жорсткий диск можна повторно використовувати як звичайне обладнання для повсякденних завдань, чого не можна сказати про ASIC. Поріг зносу жорстких дисків досить високий, і PoC-майнінг насправді не так сильно зношує залізо, як, наприклад, PoW-майнінг, який буквально вбиває відеокарти.
- Нові жорсткі диски мають дуже мало переваг для оптимізації, крім ємності, порівняно зі старими моделями. Тому новітнє обладнання не є обов’язковою умовою для отримання переваги в видобутку монет.
Недоліки Proof-of-Capacity
Переваги невеликої популярності Proof-of-Capacity при широкому використанні цього алгоритму швидко обертаються недоліками.
- Популяризація Proof-of-Capacity швидко призвела до нової гонки за залізом, як це сталося з відеокартами та асіками. Жорсткі диски швидко почали б зникати з прилавків, а ціна на диски злетіла до небес.
- За допомогою Proof-of-Capacity жорсткі диски зберігають дані, які не приносять користі поза майнінгом. Це не дуже раціональне використання. І якщо ціна на носії зросте, то можна буде сказати, що Майнінг на Proof-of-Capacity витісняє інші цілі використання HDD.
- Доказ дієздатності є недостатньо перевіреною технологією, а це означає, що вона може містити болючі вразливості. Сам процес, який не вимагає розрахунків у реальному часі, здається менш надійним у порівнянні з PoW.
Випадки використання Proof-of-Capacity
Тим не менш, варто зазначити, що цей алгоритм консенсусу дійшов до практичної реалізації цього алгоритму консенсусу і найвідомішим проектом на ньому є Burstcoin, який був перейменований в Signum в результаті хардфорка. Все, про що ми писали вище, спочатку було успішно реалізовано.
Однак після хардфорка і ребрендингу проект трохи оновив алгоритм консенсусу, давши йому назву Proof-of-Commitment (PoC+). Але насправді мова йде про додавання елементів стейкінгу до існуючої логіки PoC.
Висновок
Незважаючи на те, що Proof-of-Capacity не склав конкуренцію таким популярним рішенням, як Proof-of-Work або Proof-of-Stake, в цілому технологія представляє певний інтерес. Вона пропонує своєрідні рішення проблем енергоспоживання та конкуренції з основними гравцями гірничодобувного ринку. Більш того, не варто забувати, що PoC сусідить з іншими аналогічними алгоритмами в рамках парадигми Proof-of-Space, тому є ймовірність, що технологія буде розвиватися далі або сприятиме іншим рішенням на основі пам’яті.