Блокчейн-база данных: действительно ли блокчейн — это база данных?
Блокчейн — это данные только для добавления, реплицированные и намеренно медленные при записи. База данных — быстрая, изменяемая и централизованно управляемая. Где они пересекаются и что это значит для чтения платёжных данных.
Называть блокчейн базой данных не ошибка, но это преуменьшает то, что делает его особенным. Блокчейн-база данных хранит записи так же, как это делает традиционная база данных — строки структурированных данных, которые можно запрашивать, — но добавляет три ограничения, которых нет ни у одной обычной базы данных: каждая запись постоянна, каждый узел хранит полную копию, и запись засчитывается только после того, как децентрализованный набор участников с ней согласился. Эти три свойства и составляют всю разницу между блокчейном и базой данных, и именно они объясняют, в чём блокчейн хорош, а для чего он подходит плохо.
Блокчейн против базы данных: свойство за свойством
Разница между блокчейном и обычной базой данных сводится к пяти свойствам. Ни одно из них не делает одну систему однозначно лучше — они компромиссны друг относительно друга.
| Свойство | Традиционная база данных | Блокчейн |
|---|---|---|
| Записи | Изменяемые — UPDATE и DELETE являются обычными операциями | Только добавление — записанная запись никогда не редактируется и не удаляется |
| Контроль | Централизованный — один оператор, один источник истины | Децентрализованный — ни одна сторона не контролирует реестр единолично |
| Подтверждение записи | Немедленное, определяется собственной логикой оператора | Определяется сетевым консенсусом, что требует времени и комиссии |
| Модель хранения | Одна копия (плюс реплики/бэкапы, управляемые оператором) | Полная репликация — каждый full-узел хранит всю историю |
| Стоимость записи | Практически нулевая предельная стоимость | Сетевая комиссия на каждую запись (gas, Energy, Bandwidth) |
Читайте эту таблицу как чек-лист, а не как таблицу результатов. Если вашему приложению нужны быстрые, дешёвые, исправляемые записи под контролем одной стороны — это работа для базы данных, а не для блокчейна.
Значит, блокчейн — это база данных или нечто совершенно иное?
Структурно — да: блокчейн является базой данных в буквальном смысле «организованных, запрашиваемых, персистентных данных». Вопрос, является ли блокчейн вообще базой данных, возникает потому, что он отбрасывает два допущения, которые делает почти любая другая база данных, — что доверенный оператор управляет записями и что ошибку можно исправить оператором UPDATE. Блокчейн как база данных работает там, где отсутствие доверенного оператора — это и есть смысл: платежи, записи о собственности, всё, где независимая проверяемость важнее возможности редактирования.
Что конкретно отличает блокчейн от обычной базы данных
Работу выполняют три механизма. Во-первых, консенсус: запись не считается окончательной, пока с ней не согласится достаточное число независимых участников, — именно это делает запись заслуживающей доверия без центрального органа, и именно это же делает записи медленнее и платнее, чем INSERT в базе данных. Во-вторых, неизменяемость по конструкции: как только блок подтверждён, его изменение потребовало бы переделать работу консенсуса для каждого последующего блока, что практически невозможно вычислительно на сколько-нибудь значимой глубине — здесь нет административного UPDATE. В-третьих, репликация как свойство системы, а не операционное решение: каждый full-узел хранит полную историю — избыточность, которую традиционная база данных получает, только если кто-то явно её настроил.
Блокчейн как база данных именно для платежей
Конкретно для платёжных данных компромисс «блокчейн как база данных» на самом деле работает в пользу блокчейна: вам нужны свойства «только добавление» и «через консенсус», потому что вы не хотите, чтобы кто-либо — включая вас самих — мог незаметно отредактировать проведённую транзакцию. Чего вы не хотите — так это писать сырые запросы JSON-RPC к этим данным каждый раз, когда вам нужен баланс или статус транзакции; с этой частью лучше справляется интерфейс, похожий на базу данных. Слой API поверх сети даёт вам оба преимущества: гарантии блокчейна для самой записи и REST-интерфейс в стиле базы данных для её чтения.
По сути, именно этим и является API Chaingateway — REST-интерфейс поверх данных сети. Создайте бесплатный аккаунт и запросите баланс в testnet без обращения к сырому JSON-RPC.
FAQ: блокчейн против базы данных
Читайте данные сети как базу данных
Создайте аккаунт и запрашивайте балансы и транзакции через REST вместо сырого JSON-RPC — 7-дневный пробный период, без карты, без KYC. Смотрите мультичейн blockchain API или начните с одной сети, например Ethereum API. Более глубокое техническое сравнение — в статье Blockchain vs Database в блоге.