Що таке блокчейн простими словами – Комп’ютер для новачків

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

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

В даний час прийнята централізована система ведення баз даних, тобто є хто то, хто уповноважений вести цю базу даних (реєстр), а всі інші звертаються до нього в разі потреби отримати, відредагувати, додати або видалити дані. Наприклад, Держреєстр веде базу даних прав власності на нерухоме майно. ЗАГС відає записами актів цивільного одруження, а ваш банк веде ваші рахунки і враховує грошові кошти на них.

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

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

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

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

Технологія блокчейн на простому прикладі

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

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

Тут виникла проблема, вони не змогли вибрати людину, якій би повністю довіряли, адже від розчерку його пера залежало б скільки у кого буде грошей. Тому було вирішено скористатися розробкою Сатоши Накомото і зробити розподілену систему обліку руху грошових коштів без єдиного центру. Домовилися таким чином. Кожен записав собі на аркуш паперу список всіх людей на острові і поставив навпроти кожного імені 100 монет. Це відправна точка, а далі будуть по кожній людині віднімати його витрати і плюсовать його доходи. Даний лист вони назвали блоком і привласнили йому номер один.

Протягом дня вони домовилися повідомляти один одному про всі свої витрати (транзакціях) за допомогою записок зі своїм підписом. Припустимо Іра хоче заплатити 10 монет Павлу за в’язку банан, для цього вона пише відповідну записку зі своїм підписом, яку інші жителі записують до себе і передають далі. Щоб система справно працювала, необхідно зробити деякі перевірки.

Потрібно перевірити кому належить підпис, а також доведеться простежити всі вхідні і вихідні руху монет на рахунку Іри. Може у неї є тільки 5 монет або вона має негативний баланс, і вона не може відповідно витратити 10 монет. А в один вона вирішила смошенничать і одночасно відправила ці гроші Наді, так звана проблема подвійних витрат. Втім, шахраєм може виявитися хтось інший, написавши записку від імені Іри, що вона нібито оплатила йому 30 монет.

Щоб виключити всі ці негативні варіанти, потрібно виконати певні перевірки. Для початку потрібно переконатися, що її дійсно написала Іра для цього перевіряється її підпис. Далі потрібно простежити всі рухи грошових коштів на рахунку Іри з самого початку і переконатися, що необхідна сума у ​​неї є. Тільки після цього можна враховувати дану транзакцію. Хоча навіть в цьому випадку немає гарантій, що гроші у неї є, можливо вона їх вже витратила, але відомості про це до нас ще не дійшли. Тому поки це не підтверджена транзакція, щоб визнати її підтвердженої потрібно виконати певні умови, про це буде далі. Все це доводиться робити для кожної операції з грошима на острові.

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

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

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

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

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

Іншими словами, одного вечора Антон і Світу одночасно оформили новий блок з номером 24, причому список транзакцій в них був не ідентичний. Наступним ввечері першим вирішив математичну задачку Ігор і створив новий блок номер 25 на основі блоку Свєти. Ті жителі, хто прийняв напередодні версію Антона повинні будуть, отримавши блок номер 25 прийняти його і блок 24 створений Світланою, так як це більш довгий ланцюжок, а блок 24 Антона викинути. При цьому транзакції, які були в блоці Антона, але були відсутні в блоці Свєти так само зникають, вірніше їх ніби і не було ніколи. Тільки коли з’явиться блок номер 26 заснований на блоці 25 Ігоря можна вважати, що всі транзакції з блоку 24 створеного Світланою підтверджені.

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

Однак, що буде, якщо з якихось причин частина жителів продовжить вести облік на основі блоку 24 Антона, а інша блоку 24 створеного Світланою і будуть ігнорувати блоки з іншого ланцюжка. В цьому випадку відбудеться розкол блокчейна на дві незалежні ланцюжка, не пов’язані між собою, це явище отримало назву hardfork. Фактично виникнуть дві незалежні грошові системи.

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

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

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

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

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

Втім, у неї є і недоліки. Фактично кожен учасник робить одне і теж, просто дублюючи дії інших. Отже, в класичному вигляді система не масштабируема. Необхідність кожній завантажити і зберігати весь ланцюжок блоків, що займає дуже багато часу і вимагає багато місця для зберігання. Наприклад, блокчейн біткоіни на даний момент займає приблизно 170 ГБ. Необхідність мати дороге високопродуктивне обладнання щоб мати можливість створювати нові блоки і багато електрики для цього. Відносно висока швидкість роботи мережі в базовому варіанті, що не дозволяє на її основі побудувати систему платежів на зразок Visa / Mastercard. Не у всіх випадках «прозорість» блокчейна є благом. Втім, деякі з наведених недоліків мають ті чи інші варіанти вирішення.

Ссылка на основную публикацию