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

Базы данных

В традиционных базах данных всегда присутствует клиент, у которого есть возможность работать с данными в базе данных используя полные возможности. Например, пользователь может добавить данные, а после изменить их или даже удалить.

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

database

Базы данных в блокчейн

Базы данных в блокчейн находятся на неограниченном количестве децентрализованных узлов (node). И каждый узел является администратором базы данных, в свою очередь участвуя в каждой транзакции. Для того чтобы транзакция была одобрена узлы должны достигнуть консенсуса. Благодаря этому консенсусу злоумышленнику гораздо сложнее вмешаться в работу.

В Ethereum консенсус достигается использованием механизма proof of stake, тогда как Bitcoin использует механизм майнинга.

blockchain database

CRUD vs RW-only

В традиционных базах данных клиент может использовать все операции CRUD (create, read, update, delete), если у него есть права конечно.

CRUD database

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

RW-only database

Прозрачность

Одна из главных идей блокчейна это прозрачность. Это достигается тем, что доступ к данным в блокчейн может получить каждый, в отличии от традиционных баз данных (в среднем).

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

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

Валидация данных

Мы уже говорили о том, что в блокчейн старая запись всегда остаётся неизменной. Для примера представим ситуацию что в вашем кошельке сейчас находится 100 BTC или ETC (какая больше нравится). Далее вы переводите 10 BTC или ETC мне за хорошую статью (мечты), в следствии чего создается новая транзакция в сети блокчейн. Сейчас же у вас в кошельке баланс будет равен 90 BTC или ETC, но, если рассматривать транзакции мы всегда сможем просмотреть что у вас было 100 BTC или ETC в своё время. Т.е. мы сохраняем всю информацию о движениях в нашем кошельке.

validating

В итоге

В итоге можно выделить два основных отличия:

  1. Децентрализация - управление не происходит одним узлом (человеком)
  2. Неизменность данных - каждая новая транзакция создаёт новую запись с новым значением, вместо обновления старой записи