4. Підтвердження роботи

Щоб реалізувати розподілений сервер часових позначок на одноранговій основі, нам знадобиться використовувати систему підтвердження роботи, схожу на Hashcash Адама Бека [6], а не газетні повідомлення чи повідомлення Usenet.

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

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

Після того, як зусилля ЦП були витрачені, щоб він задовольняв підтвердження роботи, блок не можна змінити, не повторивши роботу. Оскільки пізніші блоки прив’язуються до нього, робота зі зміни блоку включатиме повторне виконання всіх блоків після нього.

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

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

Якщо більша частина потужності ЦП контролюється чесними вузлами, чесний ланцюжок розвиватиметься найшвидше та випереджатиме будь-які конкуруючі ланцюжки

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

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

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

#BinanceSquare

#BTC

#BitcoinWorld

#uniswap

#ftx