JavaRush /Java блог /Random UA /Про криптовалюти. Not so creepy crypto, частина перша: те...

Про криптовалюти. Not so creepy crypto, частина перша: технологія блокчейн

Стаття з групи Random UA
Останнім часом однією з найбільш обговорюваних новинних тем пов'язаних з IT залишаються криптовалюти. Людей цікавить заробіток на зростанні курсу та майнінгу різних коїнів, проте мало хто розуміється, що вони являють собою. І навіть якщо ви захочете зрозуміти, про що це, то виявите, що більшість статей про блокчейн і майнінг написані тими, хто глибоко в темі і для тих, хто знайомий з нею не з чуток. Термінологія та базові поняття, що використовуються в статтях, мають на увазі рівень знань вищий за середній. Ми ж у цій серії матеріалів намагатимемося розкрити принципи роботи блокчейн та криптовалют, пояснюючи все буквально на пальцях. І сьогодні пропонуємо до вашої уваги першу частину — про технологію blockchain.
Про криптовалюти.  Not so creepy crypto, частина перша: технологія блокчейн - 1
Розбираючись у суті технології блокчейн (blockchaine) на думку спадає аналогія з кам'яною сокирою або списом. Людство довгий час використовувало каміння та палиці окремо: ціпками копали, а камінням кидалися в хижаків або розколювали ними горіхи. Але, об'єднавши їх разом, люди отримали набагато ефективніші знаряддя праці та зброю. Так і блокчейн — зв'язка з бази даних та технологій шифрування дали в результаті зовсім новий інструмент, який має нові цікаві властивості. Додаткова властивість блокчейн полягає в гарантуванні цілісності та незмінності збережених даних .

Як будується ланцюг

Принцип роботи технології блокчейн є простим, як і все геніальне. Уявіть собі блокнот, в якому записуються дані: дні народжень, нотатки в особистому щоденнику, дані про переказ грошей що завгодно. Коли сторінка (яку називають блоком) закінчується, створюється хеш її вмісту.
Хеш — це літерно-цифровий рядок, що генерується спеціальним алгоритмом на основі надісланих до нього даних. Вона використовується для перевірки цілісності та достовірності інформації.
Ми не розглядатимемо «начинки» алгоритму хешування, а уявимо його собі як чорну скриньку. Скринька ця корисна тим, що при передачі в неї будь-яких даних він створює унікальний рядок. Наприклад, якщо ми передаємо в нього "12345", то на виході отримуємо "F5", а якщо передамо "12354", то на виході буде "2T1". І щоразу, коли ми передаємо в нього ті самі дані, ми отримуємо ті самі результати. Друга корисна властивість хеша полягає в тому, що маючи його на руках, отримати вступні дані з нього неможливо. Зате з його допомогою можна перевірити достовірність даних, захешованих - якщо вам відомий хеш переданої інформації (зазвичай його роблять загальнодоступним), то ви можете отриманий запис прогнати через хеш-алгоритм і порівняти результат з наявним еталоном. Якщо хеші збігаються - то дані вірні, а якщо ні - значить,
Про криптовалюти.  Not so creepy crypto, частина перша: технологія блокчейн - 2
Отже, отримавши хеш нашої сторінки даних, ми відправляємо її до архіву (базу даних), а хеш відкладеної сторінки додаємо першим записом на нову сторінку. Таким чином, ми за допомогою хешей зв'язуємо блоки даних в один ланцюг: від першого до поточного. Звідси власне і походить назва блокчейн (ланцюг із блоків) . Такий зв'язок дозволяє гарантувати достовірність даних у збережених блоках. Якщо хтось спробує їх змінити, то збережений у наступному блоці хеш не співпаде з хеш перетвореного блоку.

Безпека блокчейн - три варіанти захисту

Втім, сам собою хеш — лише частина захисту. Адже якщо комусь захочеться підмінити дані, то він може перегенерувати хеші всіх наступних блоків і підмінити весь ланцюжок. Тому для додаткової безпеки можуть використовуватися три різні варіанти захисту ланцюжка даних: централізований з довіреним центром сертифікації, централізований з недовіреним центром та децентралізований блокчейн. У першому випадку, кожен блок додатково підписується сертифікатом довіреного центру. Так що, перевіривши підпис, можна переконатися, оригінальний блок або підроблений. В принципі, використання блокчейн у такому варіанті це швидше додаткове перестрахування, ніж необхідність.
Про криптовалюти.  Not so creepy crypto, частина перша: технологія блокчейн - 3
У другому випадку (якщо немає 100% впевненості в тому, що центр сертифікації не буде зламаний) згенеровані та підписані хеші поміщаються у незалежне довірене сховище. Таке сховище може приймати нові дані, але не дає їх редагувати або видаляти. Третій варіант, децентралізований блокчейн, найцікавіше, оскільки саме він і використовується в криптовалютах. У цьому випадку, коли набирається блок даних (він у всіх ідентичний), всі учасники мережі починають генерувати хеш. Але хеш не просто блоку, а блоку з печаткою.

Без друку не дійсний

Що це за друк? Справа в тому, що для забезпечення безпеки кола даних нам потрібно ускладнити генерацію хешу для блоків. Для цього вводяться умови правильності хешу – він повинен відповідати якимось параметрам. Наприклад, кожен другий символ хешу має бути банкрутом. Відповідно, для виконання цієї умови до блоку даних додається рядок, що забезпечує потрібний результат і «запечатує» блок. Оскільки хешування це односторонній процес, ми не можемо із заданих умов безпосередньо отримати її значення, і змушені шукати потрібний рядок простим перебором значень. І саме процес пошуку друку називається майнінгом - за аналогією з просіюванням піску в пошуках крихти золота. Коли один із учасників мережі знаходить друк, він розсилає її іншим і ті перевіряють правильність рішення. На цьому етапі відбувається додаткова звірка даних блоку. Якщо у всіх (понад 50% учасників мережі) все зійшлося, а у когось немає, то блоки відмовників вважаються збійними і вони з мережі завантажують правильні дані. Якщо ж друк більшості не підійшов, то вона відкидається і вже її автор завантажує правильну версію блоку.
Про криптовалюти.  Not so creepy crypto, частина перша: технологія блокчейн - 4
Через складність знаходження печаток, спроба підмінити старий блок і перегенерувати всі наступні блоки вимагає дуже великих обчислювальних потужностей. Через це підміна даних зловмисним одинаком практично неможлива. Атака на свіжостворюваний блок більш реалістична. Але вона можлива тільки в тому випадку, якщо під контролем атакуючого перебуває понад 50 відсотків користувачів, що перебувають у блокчейн мережі (наприклад, він є власником пулу з яким працює багато майнерів). Такий тип атак можливий лише на «молоді» децентралізовані блокчейни мережі, в яких учасників ще небагато. Якщо ж мережа велика, то щоб її «переважити» потрібен дуже-дуже великий пул, або змова кількох власників пулів що охоплюють більшу частину мережі. Оскільки кількість учасників блокчейн мереж може змінюватись, в них передбачено автопідстроювання складності пошуку хешу через рівну кількість виконаних блоків. Якщо обчислювальна потужність мережі зростає, завдання ускладнюється, якщо потужність мережі знизилася і пошук друку займає багато часу, завдання спрощується. Так досягається нормальний темп роботи мережі - блоки з транзакціями регулярно запечатуються (у мережі біткоїн - раз на 10 хвабон) і починаються пошуки рішення для наступної порції даних.

Проміжний підсумок

Децентралізовані системи, порівняно з централізованими, мають як свої переваги, так і недоліки. Вони більш живучи в загальному плані і не схильні до катаклізмів — від землетрусів і ураганів може постраждати частина учасників мережі (що знизить її продуктивність), але сама система від цього не загине. У централізованій системі землетрусу досить зруйнувати датацентр, щоб поставити її на коліна. У той же час децентралізовані системи схильні до кількісних атак. Достатньо отримати контроль над більш ніж 50% учасників, щоб мати можливість вносити в блоки вигідну вам інформацію та видаляти невигідну. У централізованій системі для такого рівня доступу потрібно зламати дуже добре захищені центральні сервери. Загалом ідеального захисту немає, і заходи безпеки потрібно постійно і невпинно вдосконалювати будь-яку систему. No so creepy crypto. Частина друга: криптовалюти та майнінг
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ