Гід по біткоіни. Майнінг

В традиційних грошових системах уряду друкують більше грошей, коли їм необхідно. У біткоіни-системі гроші не друкуються - вони видобуваються. Комп'ютери по всьому світу "викопують" монетки, змагаючись один з одним.

Як відбувається видобуток, вона ж Майнінг?

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

Створюємо хеші

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

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

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

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

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

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

Конкуренція за монетки

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

Проблема в тому, що порахувати хеш якоїсь кількості даних дуже легко. Комп'ютери відмінно справляються з цим. Мережа біткоіни влаштована по-іншому, в ній ці обчислення більш затратні. В іншому випадку кожен міг би налічувати б сотні блоків кожну секунду, і все біткоіни були б "розкопані" за хвилини. Біткоіни-код зробив обчислення більш складними, запровадивши так звану систему "докази виконаної роботи".

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

Джерело: coindesk