Начинаем с основ · урок 3

Чем блокчейн отличается от обычной базы данных

Узнайте, как сеть проверяет транзакции и поддерживает общее состояние без единого владельца базы.

В прошлом уроке мы увидели обычную архитектуру:

Клиент → Сервер → База данных

У такой системы обычно есть владелец: компания или команда, которая управляет серверами и базой.

Блокчейн устроен иначе. Вместо одной организации, которая единолично хранит и изменяет данные, состояние системы проверяется сетью участников по общим правилам.

Обычная база данных

Представим интернет-магазин.

В его базе могут храниться:

  • пользователи;
  • товары;
  • заказы;
  • баланс бонусов.

Когда пользователь делает заказ, сервер проверяет запрос и изменяет записи в базе.

У владельца системы есть контроль над этой базой. Например, администратор с необходимыми правами может исправить ошибочную запись или изменить данные пользователя.

Упрощённо:

1Пользователь
2 ↓
3Сервер компании
4 ↓
5База данных компании

То есть существует центральная сторона, которая управляет системой.

Что меняется в блокчейне

В блокчейне нет одной обычной базы на одном сервере, изменение которой автоматически становится истиной для всех.

Вместо этого сеть поддерживает общее состояние.

Например, в нём может быть записано:

yaml
1Alice: 5 ETH
2Bob: 2 ETH

или состояние смарт-контракта:

ini
1owner = 0x...
2members = 125
3paused = false

Участники сети проверяют новые действия по одинаковым правилам протокола.

Если изменение принято сетью, оно становится частью общей истории.

Что такое транзакция

Чтобы изменить состояние блокчейна, пользователь обычно отправляет транзакцию.

Транзакцию можно представить как запрос:

«Я хочу выполнить это действие в блокчейне».

Например:

1Отправить 1 ETH Bob

или:

scss
1Вызвать функцию register() смарт-контракта

Но одного желания пользователя недостаточно.

Сеть сначала должна обработать транзакцию по правилам блокчейна.

Что происходит с транзакцией

Упрощённый путь выглядит так:

11. Пользователь отправляет транзакцию
2 ↓
32. Сеть проверяет её по правилам
4 ↓
53. Транзакция включается в блок
6 ↓
74. Общее состояние обновляется

Например, если Alice отправляет Bob 1 ETH, состояние может измениться:

yaml
1До:
2Alice: 5 ETH
3Bob: 2 ETH
4
5После:
6Alice: 4 ETH
7Bob: 3 ETH

Участники сети могут независимо проверить, что изменение соответствует правилам.

Зачем нужны блоки

Транзакции объединяются в группы — блоки.

Очень упрощённо блок можно представить так:

1Блок
2
3├── Транзакция 1
4├── Транзакция 2
5├── Транзакция 3
6└── ...

Новые блоки связываются с предыдущими, формируя последовательную историю.

Отсюда и название:

block + chain → blockchain

то есть цепочка блоков.

Почему нельзя просто переписать запись

В обычной централизованной базе администратор с достаточными правами может изменить запись напрямую.

В блокчейне уже принятую историю нельзя просто незаметно переписать на одном компьютере и заставить остальных считать новую версию правильной.

Другие участники сети проверяют данные по тем же правилам и не обязаны принимать произвольное изменение.

Именно поэтому блокчейн полезен там, где нескольким сторонам нужно иметь проверяемое общее состояние, не полагаясь полностью на одного владельца базы.

Важно понимать

Блокчейн не означает, что:

  • все данные автоматически приватны;
  • операции бесплатны;
  • система всегда быстрее обычной базы;
  • любую информацию обязательно нужно хранить в блокчейне.

Обычная база данных во многих задачах проще и эффективнее.

Главное отличие блокчейна — не в том, что это «лучшая база», а в том, как участники договариваются о правильном состоянии системы и проверяют его.

Связь со смарт-контрактами

Позже мы будем писать программы на Solidity — смарт-контракты.

Их состояние тоже хранится в блокчейне.

Например:

1uint256 public members = 10;

Транзакция может вызвать функцию контракта, после чего значение изменится:

makefile
1members = 10
2 ↓
3транзакция вызывает функцию
4 ↓
5members = 11

Поэтому понимание транзакций и состояния пригодится практически во всех следующих уроках.

Задание

Соберите упрощённый путь изменения состояния блокчейна — от отправки транзакции до обновления общего состояния.

Один из доступных блоков описывает действие, которое противоречит принципу работы такой системы.

Схема

Расположите шаги от отправки транзакции до обновления общего состояния.

Добавьте первый блок
Доступные блоки

Войдите, чтобы сохранить прохождение.