Як працює блокчейн: розбір для розробників без зайвої теорії
Блокчейн – сучасна технологія, на базі якої будуються тисячі проектів. Просте пояснення блокчейну з прикладами. Без складних термінів і зайвої теорії лише те, що потрібно знати програмісту.
Що таке блокчейн простими словами?
Блокчейн — це розподілена база даних, яка складається з окремих блоків. Кожен блок містить транзакції та пов'язаний з попереднім блоком за допомогою спеціального хешу. Завдяки цьому блоки утворюють незмінний і захищений від змін ланцюг.
Головна відмінність блокчейну від традиційної бази даних у тому, що він зберігається одночасно на безлічі комп'ютерів (нод), а отже, змінити або підробити дані практично неможливо.
Базові компоненти блокчейну
Основні елементи:
- Блоки з транзакціями
- Хеш-функції та криптографія
- Механізм консенсусу
- Мережа вузлів (нод)
Розглянемо детальніше кожен компонент на практиці.
Як влаштовані блоки в блокчейні
Кожен блок містить три ключові елементи:
- Дані (транзакції)
- Хеш поточного блоку
- Хеш попереднього блоку
Приклад структури блоку на Python:
class Block:
def __init__(self, data, previous_hash):
self.data = data
self.previous_hash = previous_hash
self.hash = self.calculate_hash()
def calculate_hash(self):
import hashlib
block_content = str(self.data) + str(self.previous_hash)
return hashlib.sha256(block_content.encode()).hexdigest()У цьому прикладі ми використовуємо SHA-256 для обчислення хешу блоку. Цей хеш гарантує, що блок унікальний і не може бути змінений без зміни всіх наступних блоків.

[]
Як блоки з'єднуються в ланцюг
Блоки пов'язані один з одним за допомогою попередніх хешів. Це забезпечує безпеку та цілісність даних:
blockchain = []
# Створення першого блоку
genesis_block = Block("Перший блок", "0")
blockchain.append(genesis_block)
# Додаємо другий блок
second_block = Block("Другий блок з даними", genesis_block.hash)
blockchain.append(second_block)Якщо спробувати змінити дані в першому блоці, хеш першого блоку зміниться, і зв'язок з наступним блоком порушиться. Це робить блокчейн стійким до змін і підробок.

Криптографія в блокчейні
Для захисту транзакцій використовуються цифрові підписи та публічно-приватні ключі (асиметричне шифрування). Розглянемо спрощений приклад генерації ключів і підпису даних за допомогою Python-бібліотеки cryptography:
from cryptography.hazmat.primitives.asymmetric import rsa, padding
from cryptography.hazmat.primitives import hashes, serialization
# Генерація ключів
private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048)
public_key = private_key.public_key()
# Підпис даних
data = b"Моя транзакція"
signature = private_key.sign(
data,
padding.PSS(mgf=padding.MGF1(hashes.SHA256()), salt_length=padding.PSS.MAX_LENGTH),
hashes.SHA256()
)Завдяки цифровим підписам транзакції в блокчейні захищені від підробки та гарантують ідентичність відправника.
Консенсус у блокчейні: як погоджуються транзакції
Щоб додати блок до ланцюга, ноди мають дійти згоди щодо його валідності. Найвідоміший алгоритм консенсусу — це Proof-of-Work (PoW). У ньому учасники мережі (майнери) розв’язують складні математичні задачі, щоб підтвердити новий блок.
Спрощена схема Proof-of-Work:
import hashlib
def proof_of_work(block, difficulty=4):
prefix = '0' * difficulty
nonce = 0
while True:
guess = f"{block.data}{block.previous_hash}{nonce}".encode()
guess_hash = hashlib.sha256(guess).hexdigest()
if guess_hash.startswith(prefix):
return nonce, guess_hash
nonce += 1Тут майнери перебирають значення nonce, поки хеш не задовольнить умові. Чим вища складність (difficulty), тим більше обчислювальної потужності потрібно.
Мережа і ноди: розподіл даних
Блокчейн — це розподілена мережа. Вузли мережі (ноди) зберігають повну копію ланцюга блоків і обмінюються інформацією. При додаванні нового блоку, ноди перевіряють його валідність і лише тоді приймають.
Типи нод:
- Повні ноди (Full Nodes) – зберігають повну копію блокчейну.
- Полегшені ноди (Light Nodes) – зберігають лише заголовки блоків.
Висновок: де використовується блокчейн?
Блокчейн вже давно перестав бути виключно технологією для криптовалют. Сьогодні він застосовується в різних сферах: фінанси, логістика, голосування, медицина та багато інших.
Як розробнику, вам не обов'язково глибоко занурюватися у всю теорію. Важливо розуміти базові принципи роботи блокчейну та вміти застосовувати інструменти на практиці.
Тепер ви знаєте, як працює блокчейн без зайвої теорії — саме час написати власний проєкт!
Більше цікавих новин
Топ-10 лучших бэкенд-фреймворков для web-мастеров в 2022 году
Розробка гри на C# WPF. Створюємо гру без ігрового двигуна
Почему стоит сменить Windows на Linux?
Самые медленные из популярных языков программирования