Представляємо проєкт Massa

Переклад публікації “An Introduction to Massa”. Щоб переглянути оригінальну статтю, будь ласка, натисніть тут.

Сьогоднішні високомасштабовані блокчейни або централізовані, або небезпечні.

Для Massa ми розробили повністю нову архітектуру, яка називається Blockclique. Вона дозволяє досягти до 10 000 транзакцій на секунду, не жертвуючи децентралізацією, ні безпекою. Наша архітектура побудована на поділі транзакцій у багатопотоковому блоковому графі. І у цій статті ми представимо основні концепти технології Blockclique. Ви також можете заглибитися в технічні документи або взяти участь у тестнеті, що проходить на massa.net/testnet. Чекаємо на ваш зворотний зв’язок!

Коротко:

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

Проблема масштабованості

Існуючі блокчейни не масштабуються. Щоб стати справжньою альтернативою класичним фінансовим системам, блокчейн повинен підтримувати таку ж кількість транзакцій на секунду. На сьогоднішній день Bitcoin обробляє 5 транзакцій на секунду, Ethereum близько 15–20 транзакцій на секунду. Ці цифри дуже далекі від показників класичних фінансових систем. Наприклад, система VISA опрацювала 111 мільярдів транзакцій за 2017 рік (середнє значення 3500 транзакцій на секунду). Очевидно, блокчейни можуть бути легко перевантажені як вже було продемонстровано під час хайпа Cryptokitties.

Чому? Структура даних та правило консенсусу Накамото

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

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

Через затримку в трансляції блоку, нода A ще не отримала блок, випущений нодою C (синій блок), створює свій блок (червоний), у якого той же батьківський блок (жовтий). У результаті виходить форк.

Так як альтернативні ланцюги можуть містити різні, несумісні набори транзакцій, ноди повинні дійти узгодження і вибрати єдиний правильний ланцюг, щоб досягти консенсусу у виконаних транзакціях. Відточений спосіб досягнення консенсусу в децентралізованій мережі — правило консенсусу Накамото. З погляду ноди, ідея в тому, щоб оцінити кожен ланцюг блоків дерева і дати йому скалярну придатність, а нові блоки робити тільки продовженням ланцюга найбільшої придатності. Ланцюг максимальної придатності і називається “блокчейном”: тільки транзакції, які з’являються в блоках блокчейну вважаються виконаними.

Щоб запобігти Атаці Сівіли, ця придатність повинна являти собою щось, що складно створити або відтворити, наприклад ресурс. У системах Proof-of-Work, таких як Bitcoin, придатність ланцюга визначається як сумарна обчислювальна потужність, яка була витрачена на створення всіх її блоків. У системах Proof-of-Stake, таких як Tezos, придатність визначається значенням кількістю монет, відправлених у стейкінг за всі попередні блоки в ланцюгу. Консенсус Накамото є найбільш широко використовуваним правилом консенсусу для децентралізованих блокчейнів, але було створено багато інших. Щоб детальніше розібратися в механізмах консенсусу, ми рекомендуємо прочати цю статтю або цю статтю.

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

Вижати максимум?

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

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

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

Різні криптовалюти змогли отримати приріст кількості транзакцій за секунду шляхом зміни розміру блоку та їх частоти. Наприклад, Bitcoin Cash збільшив розмір блоку у 8 разів, при цьому збільшивши кількість транзакцій за секунду в стільки ж разів. Однак це все ще дуже мало. Для того, щоб суттєво збільшити кількість транзакцій, що обробляються, потрібно, як ми вже зрозуміли, переглянути підхід.

Обмежити розмір мережі?

Одним із шляхів скорочення часу на трансляцію блоку в мережі є обмеження його розміру. Наприклад, у EOS, лише 21 обраний виробник блоків має право обробляти транзакції, що дає близько 3000–4000 транзакцій на секунду. У Ripple, лише компанія вирішує, хто може стати валідатором і виробляти блоки, що дозволяє протоколу досягати близько 1500 транзакцій в секунду.

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

І, виходить, що найскладніше завдання — створити блокчейн, який би дозволяв обробляти тисячі транзакцій за секунду, водночас залишаючись абсолютно децентралізованим і безпечним, дозволяючи тисячам нод брати участь у процесі створення блоків та консенсусі.

Змінити структуру даних та правила консенсусу?

Останнім часом було вже кілька спроб масштбування децентралізованих валют шляхом змін у структурі даних та правилах консенсусу. Одним із напрямків роботи є поділ транзакцій, що є розподілом транзакцій на кілька груп (“розділів”), які можуть оброблятися паралельно, як у Elastico або Zilliqa. Однак у цих протоколах, ноди, що обробляють різні групи, повинні регулярно узгоджуватися з основним блокчейном, що обмежує потенціал розпаралелювання транзакцій.

Інший напрямок розвитку вивчає перехід від структури дерева блоків до структури графа блоків, дозволяючи блокам мати більше одного батьківського блоку. Перші структури орієнтованого ациклічного блочного графа описуються в [Lewenberg, 2015], [Sompolinsky, 2015] та [Sompolinsky, 2016]. Однак у цих рішеннях транзакції з одного блоку можуть бути несумісні з транзакціями з іншого паралельного блоку, тому що транзакції власними силами не розділені. Потрібний додатковий процес голосування, щоб згрупувати транзакції та вибрати, які з них будуть виконані.

Рішення Blockclique, яке використовується в Massa

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

Структура даних у Blockclique і правило консенсусу

В архітектурі Blockclique блоки можуть створюватися в обмеженій кількості потоків. Блок створений у певному потоці надсилається до батьківського блоку кожного з потоків. Отримана структура даних — багатопотоковий орієнтований ациклічний блоковий граф (багатопотоковий DAG).

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

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

У цій новій структурі блоків, ноди всеодно можуть створювати форки в певних потоках шляхом створення двох несумісних блоків в одному потоці з батьківським блоком у цьому потоці. Тому ми розширюємо консенсус Накамото, щоб дозволити нодам приходити до консенсусу щодо глобального набору сумісних блоків (називається “clique”/”Клік”) максимальної придатності. Це правило консенсусу гарантує, що кожен потік є, за фактом, звичайним блокчейном, і блоки, що знаходяться в одному потоці, також ґрунтуються і на попередніх блоках інших потоків, допускаючи невелику десинхронізацію між потоками.

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

Результати симуляцій Massa

Ми тестували наші ідеї через симуляцію, відкритий код можна знайти тут. Використовуючи параметри мережі, подібні до тих, що в Ethereum (середній обсяг даних, що відправляються 32 Мб/с і середня затримка в 100 мс, кілька тисяч нод), ми продемонстрували, що, використовуючи 32 паралельних потоки та Proof-of-Stake, який стійкий до Атаки Сівіли, наша архітектура може обробляти до 10 000 транзакцій в секунду із середнім часом підтвердження транзакції близько 40с!

Ця різниця пояснюється так:

  • У звичайних блокчейнах нодам потрібен останній блок, щоб почати працювати над наступним (інакше вони утворять форк);
  • У Blockclique необов’язкова наявність всіх останніх блоків для того, щоб почати працювати над наступним. Ноди створюють блоки у паралельних потоках, не йдучи у форк;
  • Архітектура Blockclique гарантує послідовну узгодженість отримання монет, при цьому дозволяючи витратам бути трохи розсинхронізованими.

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

Візьміть участь!

У нас проходить тетснет! На https://massa.net/testnet ви можете стежити за створенням блоків у режимі реального часу. У цьому експлорері ви також можете взаємодіяти з тестнетом шляхом створення гаманця та отриманням або надсиланням монет. Якщо у вас є комп’ютер зі стійким підключенням до Інтернету, пропонуємо вам поставити ноду! Також можете стежити за розвитком проєкту на нашому Github.

Висновки

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

Ми віримо в те, що Massa може втілити всі ідеали масштабованого, безпечного та повністю децентралізованого блокчейну. Ми сподіваємося, що ви так само приємно схвильовані, як і ми, і ми з нетерпінням чекаємо на ваш зворотній зв’язок! Будемо дуже раді, якщо ви приєднаєтесь до наших соціальних мереж — TelegramDiscord або Reddit та поділитесь своїми думками!

Корисні посилання:

Наш вебсайт – https://massadopted.com/

Експлорер тестової мережі: test.massa.net

Вихідний код та посібники: github.com/massalabs/massa

Приєднуйтесь до нашого чату Telegram — https://t.me/massa_ua

Приєднуйтесь до нашого серверу Discord — https://discord.com/invite/massa

З більш ніж 7000 тисячами активних нод в останньому епізоді нашого тестнету Massa вже є однією з найбільш децентралізованих мереж.

Total
0
Shares
Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Next Post

Massa – від державних грантів до 5,8 мільйона доларів, залучених від інвесторів


Відмова від відповідальності: цей вебсайт не спонукає нікого інвестувати в криптопроєкти, про які тут написано. Це проста інформація про криптопроєкти, які нам цікаві.
Related Posts