Ще 13 консенсус-протоколів для розподілених систем. Частина 2

Продовжую опис консенсус-протоколів від Intellectsoft Blockchain Lab . Раніше я розглядав 12 популярних протоколів консенсусу . У другій частині розповім про самих екзотичних алгоритми, що використовуються в технології розподіленого реєстру (DLT) — від BFT-характеристики до Leased Proof-of-Stake, Proof-of-Stake-Time і Proof-of-Asset.

1. Візантійські Fault Tolerance (BFT) протоколи. Продовження
1.1. Протокол SIEVE
1.2. Протокол Round Robin
1.3. Протоколи Paxos і Raft
1.4. HoneyBadger Візантійські Fault Tolerance (hbBFT)
1.5. Loopchain Fault Tolerance (LFT) (Стійкість до проблеми платформи Loopchain)
1.6. Cross-Fault Tolerance (XFT) (Стійкість до проблеми системних збоїв)

2. Консенсус-протоколи для інших задач
2.1. Proof-of-Asset (PoA) (Доказ активу)
2.2. Proof-of-Authority (PoA) (Доказ повноважень)
2.3. Proof-of-Brain (PoB) (Доказ «мозкової діяльності»)
2.4. Proof-of-Capacity (PoC) (Доказ ресурсів)
2.5. Proof-of-Contribution (PoCo) (Доказ вкладу)
2.6. Proof-of-Stake-Time (PoST) (Доказ частки часу)
2.7. Leased-Proof-of-Stake (LPoS) (Орендоване доказ частки)

1. Візантійські Fault Tolerance (BFT) протоколи. Продовження

У цьому розділі розглянемо кілька технічних характеристик протоколів, «стійких до візантійської проблеми» (BFT). Їх особливість в тому, що навіть коли нода (один з валідаторів) не може виконати дію, інші ноди продовжують працювати, підтримуючи систему. Незначні відмінності в технічних характеристиках протоколу допомагають розподілених систем адаптуватися до конкретних умов і бути більш надійними.

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

1.1. Протокол SIEVE

Принцип виконання операцій, порівняння вихідних даних в копіях і пошук будь-яких розбіжностей.

Продуктивність : висока.

Середа DLT : приватний блокчейн c дозволами.

Завершеність : негайна.

Приклад використання : Hyperledger .
Оскільки Hyperledger є модульною структурою, у вас є можливість додати варіанти консенсусу, і SIEVE один з них. Стандартним варіантом є протокол PBFT або Practical Візантійські Fault Tolerance, який ми розглянули у попередній статті . SIEVE та XFT все ще знаходяться в бета-версії, але нижче описаний функціонал, деталі якого вже відомі.

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

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

1.2. Протокол Round Robin

Принцип : кілька нод відіграють ключову роль у підтвердженні і голосуванні за транзакції. Процес валідації блоку не залежить від одного учасника.

Продуктивність : висока.

Середа DLT : приватний блокчейн c дозволами.

Завершеність : негайна.

Приклад використання : Multichain , Tendermint .

Механізм протоколу Round Robin краще всього підходить для бізнесу в сфері фінансової торгівлі і ланцюжки поставок. Цей алгоритм передбачає, що валідатори досягають консенсусу, голосуючи за блоки. Голосування проходить у три етапи:

Отримання більш 2/3 фіксованих голосів означає отримання фіксованих голосів від більшості валідаторів. Блок вважається фіксованим, коли 2/3 валідаторів віддали за нього фіксовані голосу.

1.3. Протоколи Paxos і Raft

Існують протоколи особливо стійкі до збоїв системи (crash-fault tolerant або CFT), відомі як Paxos і Raft. Обидва є більш швидкими версіями BFT і діють за принципом реплікації операції (state machine replication), яким користується Microsoft.

1.4. HoneyBadger Візантійські Fault Tolerance (hbBFT)

Принцип : поділ на епохи, що припускає додавання кожної нової партії транзакцій до зафіксованому (і распределенному) ловга в кінці кожної епохи.

Продуктивність : висока.

Середа DLT : блокчейн з дозволами і не вимагає дозволів.

Завершеність : негайна.

Приклад використання : n/a.

HoneyBadger Візантійські Fault Tolerance (hbBFT) — це перший BFT протокол атомарного мовлення, що забезпечує оптимальну асимптотическую ефективність в асинхронних умовах. Говорячи простою мовою, HoneyBadgerBFT стійкий до збоїв у глобальних мережах, що перевершує інші алгоритми BFT. Ноди HoneyBadger можуть залишатися прихованими за анонімними реле, на подобі браузера Tor. Транзакції відбуваються в різний час і протокол працює з будь-якою швидкістю, яку підтримує мережу.

1.5. Loopchain Fault Tolerance (LFT) (Стійкість до проблеми платформи Loopchain)

Принцип : скорочує модель роботи Round Robin до двох кроків і дозволяє обмежена кількість нод.

Продуктивність : висока.

Середа DLT : приватний блокчейн з дозволами.

Завершеність : негайна.

Приклад використання : ICON .

Протокол Loopchain Fault Tolerance (LFT) є продовженням Tendermint (який об'єднує DPoS і PBFT, ми описали їх в першій статті) і вдосконаленою версією BFT, що дозволило йому стати безпечним, високопродуктивним і масштабованим консенсус-алгоритмом.

LFT нагадує алгоритм Round Robin своєї трьохетапної системою голосування (попередній, попередньо фіксований, фіксований), але скорочений до 2 кроків. В голосуванні бере участь обмежена кількість нод. LFT використовує техніку «Spinning» (Обертання), щоб спростити заплутаний алгоритм вибору первинної ноди.

1.6. Cross-Fault Tolerance (XFT) (Стійкість до проблеми системних збоїв)

Принцип : вдосконалений BFT протокол. Об'єднує синхронні і асинхронні протоколи для зв'язку.

Продуктивність : дуже висока.

Середа DLT : приватний блокчейн з дозволами.

Завершеність: негайна.

Приклад використання : Hyperledger .

Нарешті ми підійшли впритул до протоколу, який використовує комбінацію асинхронних і синхронних методів для мережевих комунікацій. Cross-Fault Tolerance (XFT) поєднує в собі швидкість протоколу Crash-Fault Tolerance (CFT) і надійність BFT характеристики. Згідно авторам технології, «XFT розумно зрізає кути і ігнорує можливі атаки, які сьогодні вважаються або дорогими, або вкрай малоймовірними».

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

Дослідження алгоритмів консенсусу від KPMG

2. Консенсус-протоколи для інших задач

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

2.1. Proof-of-Asset (PoA) (Доказ активу)

Принцип : токенизация активів, часто фізичних товарів.

Продуктивність : висока.

Середа DLT : публічний/приватний блокчейн.

Завершеність : негайна.

Приклад використання : Digix , BANKEX .

Ви вже знаєте, що, по своїй суті, блокчейн є незмінним регістром. Оскільки його природа не допускає помилок обліку, він може об'єднувати фізичний актив або сертифікат з технологією блокчейна при співвідношенні 1:1. Цей підхід відомий як протокол Proof-of-Asset (PoA).

Що ще можна токенизировать з допомогою алгоритму PoA, крім золота? Наприклад:

В цьому відношенні протокол Proof-of-Asset простий, гнучкий і надійний. Потрібно лише невелика адаптація та/або додавання дійових осіб в протокол, і система буде готова для роботи з іншими типами активів.

2.2. Proof-of-Authority (PoA) (Доказ повноважень)

Принцип : право валідації транзакцій мають тільки відомі учасники (BFT).

Продуктивність : висока.

Середа DLT : публічний/приватний блокчейн.

Завершеність : імовірнісна.

Приклад використання : POA network , Parity .

Алгоритм Proof-of-Authority (PoA) використовується як у приватних, так і публічних блокчейн-проектах. Він забезпечує порівняно швидкі транзакції через механізм консенсусу, заснований на ідентичності (повноваження учасників).

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

2.3. Proof-of-Brain (PoB) (Доказ «мозкової діяльності»)

Принцип : мотивація учасників створювати і контролювати контент, який буде зберігатися в блокчейне.

Продуктивність : середня.

Середа DLT : публічний/ приватний блокчейн.

Завершеність : імовірнісна.

Приклад використання : Basic Attention Token , Steem .

Що, якщо ваш бізнес — це ЗМІ чи соціальна мережа? Що, якщо ви пов'язуєте творців контенту з рекламодавцями, але ніхто з них не довіряє нинішній системі? На сьогоднішній день економіка спільного вжитку і економіка доданої вартості вимагають нових моделей для вирішення цих проблем.

Протокол Proof-of-Brain (PoB) базується на активності користувачів і заохочує якісний контент на відповідних платформах. Майнінг відбувається шляхом створення або взаємодії з контентом через голосування (лайки та коментарі) або перегляди. Чим більше лайків, коментарів або підтверджених переглядів на сторінці, тим більше монет може бути намайнено. Цей підхід, заснований на колективному розумі, робить цей алгоритм як розумних, так і соціальним.

2.4. Proof-of-Capacity (PoC) (Доказ ресурсів)

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

Продуктивність : висока.

Середа DLT : публічний блокчейн.

Завершеність : імовірнісна.

Приклади використання : Burst .

Proof-of-Space (Доказ вільного місця), Proof-of-Storage (Доказ місця для зберігання) або Proof-of-Capacity (Доказ ресурсів). Називайте як завгодно. Запропонований ще в 2014 році, цей алгоритм є одночасно енергоефективним і позиціонується як рівномірно розподілене.

Концепція «мегабайти як ресурси» передбачає використання значного обсягу пам'яті, щоб заповнити його даними. Чим більше пам'яті виділить учасник, тим вищі його шанси створити блок. Storj працює за аналогічним протоколу з назвою Proof-of-Retrievability (Доказ ізвлекаемості), але з невеликими змінами.

2.5. Proof-of-Contribution (PoCo) (Доказ вкладу)

Принцип : механізм консенсусу поза блокчейна, заснований на обчислювальній потужності.

Продуктивність : низька.

Середа DLT : публічний блокчейн.

Завершеність : негайна.

Приклад використання : iExec , CyberVein .

Proof-of-Contribution заснований на потужності комп'ютера в мережі і подібний до протоколу Proof-of-Research (Доказ проведеного дослідження), який винагороджує добровольців за те, що вони витрачають свою комп'ютерну потужність на великі наукові обчислення. Наприклад, на дослідження даних астрономічних спостережень SETI@Home на платформі BOINC.

Прикладом протоколу PoCo є iExec — це децентралізований проект хмарних обчислень на основі блокчейна. Він використовує ідею грід-обчислень (Desktop Grid), також звану «обчисленнями на волонтерській основі» (Volunteer Computing). Ця форма розподілених обчислень означає збір комп'ютерних ресурсів через інтернет, які мало використовуються, для їх об'єднання в «віртуальний суперкомп'ютер». Таким чином можна паралельно запускати дуже великі програми за частку від вартості традиційного суперкомп'ютера.

2.6. Proof-of-Stake-Time (PoST) (Доказ частки часу)

Принцип : Покращення протоколу PoS, при якій перевага віддається більш старим нодам.

Продуктивність : висока.

Середа DLT : публічний блокчейн.

Завершеність : імовірнісна.

Приклад використання : Peercoin , VeriCoin .

У протоколі Proof-of-Stake-Time (PoST) розмір хеш менше, ніж кратну кількість монет, частка часу і мета. Таким чином, учасники з меншою кількістю токенів як і раніше мають можливість брати участь у майнинге (майнінг в проектах на основі протоколу Proof-of-Stake). Це дещо схоже на протокол Proof-of-Importance (PoI) (Доказ важливості), використовуваний проектом NEM, який ми розглянули в першій статті, але з невеликими відмінностями. Наприклад, коли потужність мережі нижче, час простою збільшується.

2.7. Leased-Proof-of-Stake (LPoS) (Орендоване доказ частки)

Принцип : дати можливість всім брати участь у майнинге через протокол PoS.

Продуктивність : висока.

Середа DLT : публічний/приватний блокчейн.

Завершеність : імовірнісна.

Приклад використання : WAVES .

Leased Proof-of-Stake — це гібридна форма алгоритму PoS. По суті, дрібні учасники, які не мають достатньої частки і, отже, не можуть майнить нові монети, отримують можливість здавати свої крипто-активи повним нодам. Так перші отримують можливість брати участь у майнинге і отримують прибуток, а другі — більш високу ймовірність створення такого блоку, і вся мережа стає більш децентралізованою.
Це нагадує майнінг пули, які найчастіше обслуговують мережу Биткоин. Більш того, система LPoS дозволяє учасникам у будь-який час робити з монетами все, що завгодно: витратити їх або обміняти на альткоины. У цьому випадку «орендний» договір автоматично анулюється, і власник орендованих монет більше не може розраховувати на частку.

Висновок

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

Опубліковано: 25/01/19 @ 11:00
Розділ Різне

Рекомендуємо:

Як побудувати посилальну стратегію сайту
Crew resource management в IT-команді, або Чому нам повчитися у пілотів
DOU Проектор: SimpleAdmin — універсальна адмінпанель без допомоги програміста
Наталя Денисенко — як в 17 років стати Software Solutions Architect, а в 19 отримати роботу в Amazon
Technical Writing дайджест #1: підбірка технічних словників, розглядаємо вміння та навички техрайтерів