it Новини Як працює блокчейн: розбір для розробників без зайвої теорії
Як працює блокчейн: розбір для розробників без зайвої теорії

Як працює блокчейн: розбір для розробників без зайвої теорії

3 249
09 квітня 2025 в 13:40

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

Що таке блокчейн простими словами?

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


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


Базові компоненти блокчейну

Основні елементи:

  • Блоки з транзакціями
  • Хеш-функції та криптографія
  • Механізм консенсусу
  • Мережа вузлів (нод)

Розглянемо детальніше кожен компонент на практиці.


Як влаштовані блоки в блокчейні

Кожен блок містить три ключові елементи:

  • Дані (транзакції)
  • Хеш поточного блоку
  • Хеш попереднього блоку


Приклад структури блоку на 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) – зберігають лише заголовки блоків.


Висновок: де використовується блокчейн?

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


Як розробнику, вам не обов'язково глибоко занурюватися у всю теорію. Важливо розуміти базові принципи роботи блокчейну та вміти застосовувати інструменти на практиці.


Тепер ви знаєте, як працює блокчейн без зайвої теорії — саме час написати власний проєкт!

Telegram group

Підписуйтесь на нашу групу в Телеграмі 🇺🇦

Більше цікавих новин

Коментарі
Додати коментар

Поки що коментарів немає