Декомпозиція blockchain

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

Ми почнемо від найпростішої тривіальної моделі і будемо доповнювати її можливості, поки не отримаємо повноцінну модель.

Визначимо мету використання блокчейна:
Є кілька учасників, які зацікавлені підтримувати цілісність загального масиву даних та доповнювати його.
Базова модель
Дані представлені послідовністю записів, яку можна доповнювати. Записи разом з допоміжною інформацією зберігаються в блоках. Блоки зберігаються у вигляді односвязного списку. Кожен учасник представлений вузол(node), який зберігає весь актуальний масив даних і контактує з іншими вузлами. Вузли можуть додавати нові записи в кінець списку, а також повідомляють один одному про зміни списку.

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

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

Обчислювальна складність створення блоку
У блоці додається нове поле — counter — довільне число. Потрібно підібрати таке значення counter'а, щоб хеш-код блоку закінчувався на певне число нулів.

Пул необроблених записів
Нові записи потрапляють в пул. Вузли дістають запису з пулу, формують блок, і після додавання блоку в список видаляють запис з пулу.

Доручення майнінгу третім особам
Записи з пулу вибирають майнеры, формують блок і передають готовий блок вузла. На майнер перекладається основне обчислювальне навантаження.
Вузол перевіряє блок і додає в список.

Кілька записів в блоці
У блоці може бути кілька записів. Майнеры вибирають будь-які записи для формування блоку. Блок обмежений максимальною довжиною.

Ну ось і все — концептуальна модель готова, дякую за увагу.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.