Блог
10 мин чтения
|
12 мая 2022 г.

Blockchain и база данных: ключевые различия

Чем blockchain отличается от традиционной базы данных: модель записи, консенсус, задержка, стоимость записи, а также список решений и гибридная схема платежей.

Главы
C
Chaingateway Team
Эксперты по блокчейну

Blockchain существует с 2009 года, и до сих пор термины blockchain и база данных используют как синонимы, или звучит утверждение, что «blockchain — это просто ещё одна база данных». Такая постановка вопроса приводит к настоящим архитектурным ошибкам, потому что эти две технологии отвечают на разные вопросы. База данных отвечает на вопрос: как эффективно хранить и запрашивать мои данные? Blockchain отвечает на вопрос: как нескольким сторонам, не доверяющим друг другу, договориться об общих данных?

Эта статья подробно разбирает различия — сначала в виде сравнительной таблицы из 10 строк, затем по пунктам, и завершается схемой, которую на практике используют большинство продакшн-систем: традиционная база данных и blockchain, работающие вместе.

Что такое blockchain (и «blockchain-база данных»)

Blockchain — это распределённый реестр: запись транзакций, реплицированная на множестве независимых node в одноранговой (peer-to-peer) сети. Каждый node участвует в администрировании реестра. Когда нужно добавить новые данные, сначала большинство node должно достичь консенсуса. Именно этот шаг согласования делает подделку настолько сложной: атакующему пришлось бы подавить большую часть сети, а не взломать один сервер.

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

Что такое традиционная база данных

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

Централизация — одновременно слабость и сила. Слабость: если центральный орган скомпрометирован, скомпрометирован весь набор данных, поэтому существуют резервные копии. Сила: поскольку одна сторона контролирует всё, данными легко управлять, их быстро запрашивать и дёшево хранить. Postgres, MySQL и их родственники обслуживают практически каждое приложение, которым вы пользуетесь, и они заслужили эту позицию.

Blockchain и база данных: 10 различий на одной странице

Традиционная база данныхBlockchain
СтруктураТаблицы или документы на серверах, которые контролирует одна сторонаБлоки, связанные хешами, реплицированные на независимых node
Модель записиCRUD: create, read, update, deleteТолько добавление: чтение и запись, без update, без delete
КонсенсусНе требуется, решает серверТребуется, через Proof of Work или Proof of Stake
ЗадержкаМиллисекунды на запросОт секунд до минут до финализации записи
Стоимость записиПочти нулевая на собственном оборудованииКомиссия за транзакцию (gas), оплачиваемая в coin chain
ДоступТо, что предоставит администраторПубличные chain: любой может читать и отправлять транзакции
ДовериеВы доверяете операторуВы доверяете протоколу и честному большинству node
МасштабированиеВертикальное и горизонтальное, хорошо изученоПропускная способность ограничена консенсусом; масштабирование — сложная задача
ЗрелостьРеляционная модель датируется 1970 годомBitcoin запущен в 2009 году
Типичное применениеДанные приложений, учётные записи пользователей, аналитикаПлатежи, расчёты, общее состояние между недоверяющими сторонами

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

Контроль

Самое большое различие между blockchain и базой данных — кто главный. В традиционной базе данных центральный орган проверяет и аутентифицирует пользователей перед предоставлением доступа. Власть над данными принадлежит одной стороне или небольшой группе.

У blockchain нет такого органа. Каждый node вносит вклад в работу реестра, и node обмениваются информацией без надзирающего администратора. Новые данные попадают в chain только после того, как node достигают консенсуса. Никто не может тихо переписать запись, потому что у всех остальных есть копия, которая говорит иное.

Архитектура

Традиционная база данных работает на архитектуре «клиент-сервер». Она делает это уже десятилетиями, и делает хорошо: модель масштабируется от ноутбука до дата-центра, всё общение проходит через соединение с центральным сервером, и шага консенсуса не существует, потому что слово администратора окончательно.

Blockchain работает как одноранговая сеть. Peer’ы напрямую соединяются друг с другом и сотрудничают, чтобы договориться о следующем блоке через алгоритм консенсуса. Классический — Proof of Work, где участники тратят вычислительную мощность на валидацию транзакций; Bitcoin до сих пор его использует. Ethereum перешёл на Proof of Stake в 2022 году, который заменяет вычислительную гонку экономическим залогом. В любом случае шаг согласования существует именно потому, что нет администратора, чьё слово могло бы быть окончательным.

Модель записи: CRUD против только добавления

Централизованная база данных поддерживает четыре операции CRUD: create, read, update, delete. Управление данными простое, потому что всё редактируемо.

Blockchain поддерживает две: чтение и запись. Как только транзакция попала в chain, за ней не следует ни update, ни delete. Эта неизменность и есть смысл, поскольку она предотвращает подделку и даёт каждому участнику проверяемую историю. Но у неё есть обратная сторона. Баг, записавший неверные данные, нельзя исправить инструкцией UPDATE, а персональным данным, которые должны удаляться по запросу (статья 17 GDPR), изначально нечего делать on-chain.

Производительность и стоимость записи

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

Записи также имеют цену. Каждая транзакция blockchain стоит комиссию, оплачиваемую в нативной coin chain, и эта комиссия существует, чтобы вознаградить node за проделанную работу по верификации. Комиссии различаются в зависимости от chain и нагрузки; на TRON, например, перевод USDT стоит примерно от 6 до 13 TRX в зависимости от состояния аккаунта получателя. Запись в базу данных на уже имеющемся у вас оборудовании не стоит ничего, что вы стали бы когда-либо указывать отдельной строкой. Если ваша нагрузка — тысячи записей в секунду, одно это решает вопрос blockchain против базы данных в пользу базы данных.

Пропускная способность и финализация в цифрах

Сравнения порядков величин делают разрыв наглядным. Приведённые ниже цифры намеренно приблизительны, поскольку пропускная способность blockchain зависит от структуры транзакций, а маркетинговые цифры регулярно указывают теоретические пики; все значения актуальны на середину 2026 года.

СистемаУстойчивые записи в секундуВремя до расчёта записи
PostgreSQL, один сервер среднего классадесятки тысяч простых записей строкмиллисекунды (commit)
Ethereum layer 1несколько десятков транзакций~13–16 мин до финализации (две эпохи)
TRON~2000 по дизайну, наблюдаемые дневные средние гораздо ниже~57 с (19 блоков)
Solana1000–4000+ реальных (не голосующих) транзакций~13 с до полной финализации
BNB Smart Chainнесколько тысяч по дизайну1–2 с

Читайте таблицу с двумя оговорками. Цифры TPS для chain нужно расшифровывать: заголовочные показатели Solana включают голосующие транзакции валидаторов, поэтому честная метрика — TPS без учёта голосований, а заложенные в дизайн TRON 2000 TPS намного выше 100–200 транзакций в секунду, которые сеть обычно несёт по дневным средним. Chain также являются движущимися целями. BSC сократила время блока до 0,45 секунды с хардфорком Fermi в январе 2026 года, а обновление Solana Alpenglow, одобренное голосованием валидаторов в сентябре 2025 года, призвано сократить финализацию с секунд до примерно 150 миллисекунд.

Ничто из этого не меняет вывод, потому что разрыв не мал. Один ничем не примечательный сервер Postgres записывает больше, чем все существующие публичные blockchain вместе взятые, при стоимости записи слишком малой, чтобы её выставлять к оплате. Самые быстрые chain впечатляюще сократили разрыв в задержке — с минут до одной-двух секунд, но каждая из этих записей всё равно несёт комиссию и раунд консенсуса. Chain конкурируют друг с другом по этим цифрам; они не конкурируют с базами данных.

ACID против финализации консенсуса

И специалисты по базам данных, и специалисты по blockchain говорят «транзакция прошла», но имеют в виду разные гарантии.

В базе данных гарантии — это свойства ACID. Атомарность: все изменения транзакции применяются, либо ни одно. Согласованность: ограничения соблюдаются до и после. Изоляция: параллельные транзакции не видят наполовину выполненную работу друг друга. Долговечность: после коммита данные переживают сбой, потому что они попали в write-ahead log на диске. Все четыре свойства обеспечиваются в момент коммита, миллисекунды после запроса.

Chain со смарт-контрактами удивительно близко подходит к первым трём. Вызов контракта атомарен; если один шаг откатывается, откатывается вся транзакция. Согласованность живёт в коде контракта, а не в ограничениях схемы. Изоляция максимально возможная: консенсус заставляет каждую транзакцию встать в единый глобальный порядок, что также в точности объясняет, почему пропускная способность ограничена, — полный порядок не оставляет ничего, что можно было бы безопасно распараллелить.

Долговечность — то место, где модели расходятся. Запись в базу данных долговечна при коммите. Запись в blockchain в свежем блоке всё ещё может исчезнуть, потому что конкурирующие блоки могут победить и реорганизовать chain. То, что заменяет долговечность, — это финализация: момент, после которого протокол гарантирует, что транзакцию больше нельзя вытеснить. На TRON это занимает 19 блоков, около 57 секунд. На Ethereum это занимает две эпохи аттестаций валидаторов, 13–16 минут; блоки между ними, вероятно, безопасны, но не доказуемо безопасны. Практическое правило для платёжных систем следует отсюда напрямую: зачислять клиенту при финализации, а не при первом включении, либо строить обработку откатов, тестирование которой вы возненавидите.

Где вписывается CAP

Теорема CAP гласит, что распределённая система, столкнувшаяся с разделением сети, должна выбрать между сохранением согласованности и сохранением доступности. Postgres с одним node полностью уклоняется от этого вопроса, поскольку разделять нечего, — недооценённая причина, почему однонодовые базы данных остаются приятными в эксплуатации. Распределённые базы данных выбирают сторону и документируют это.

Blockchain — распределённые системы, поэтому им тоже приходится выбирать. Дизайны с самой длинной цепочкой, как у Bitcoin, выбирают доступность: во время разделения обе стороны продолжают производить блоки, а согласованность восстанавливается позже, когда побеждает одна ветвь, — именно это и есть реорганизация. Дизайны на основе финализации склоняются в другую сторону: если слишком много валидаторов недоступны, Ethereum прекращает финализацию, а Super Representatives TRON прекращают закрепление блоков, жертвуя прогрессом ради избежания конфликтующих постоянных ответов. Ни один выбор не является неправильным. Но это означает, что «blockchain» — не побег от компромиссов распределённых систем; это конкретный набор таких компромиссов, купленный ценой задержки и комиссий.

В чём хороша каждая сторона и чего это стоит

Сильные стороны базы данных складываются вместе. Запросы за миллисекунды и дешёвые записи — видимая часть; под ней лежат пятьдесят лет инструментов, резервное копирование и восстановление на момент времени, репликация, миграции, индексы, настроенные под ваши шаблоны запросов, и рынок труда, полный людей, которые всё это умеют. Данные по умолчанию остаются приватными и удаляемыми по запросу, что регулирование иногда прямо требует. Цена всего этого удобства — сконцентрированное доверие. Оператор может изменить что угодно, поэтому аудиторский след достоверен ровно настолько, насколько достоверен оператор, а две компании, не доверяющие друг другу, не могут делить один Postgres как общий источник истины без того, чтобы одна его хостила, а другая надеялась на лучшее.

Сильные стороны blockchain — именно этот недостающий кусочек. Никто не управляет ею в одиночку, поэтому никто не может переписать её в одиночку; история проверяема любым, у кого есть node, включая посторонних, которых вы никогда не подключали. Специально для платежей это даёт свойство, которого не предлагает ни одна база данных: расчётную магистраль, где любой wallet на земле может заплатить вам без одобрения какой-либо из сторон посредником. Издержки — зеркальное отражение удобств базы данных. Каждая запись оплачивается и подчиняется темпу консенсуса, хранилище только добавляющее, всё публично, если вы специально не спроектировали иначе, а операционная страховочная сетка исчезает: никакой тикет поддержки не откатит транзакцию, а потерянный ключ — это потерянная стоимость, а не сброс пароля.

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

Когда что использовать: список для принятия решения

  • Если одна сторона контролирует данные и её пользователи это принимают — используйте базу данных. Она быстрее, дешевле и проще в эксплуатации.
  • Если нескольким сторонам нужно писать в общее состояние, не доверяя друг другу или посреднику, blockchain оправдывает свои накладные расходы. Это единственная задача, которую базы данных не могут выполнить.
  • Если записи должны быть доказуемо неизменными для сторонних наблюдателей (аудит, расчёты между компаниями), blockchain даёт это без нотариуса.
  • Если нужны обновления и удаления, или вы храните персональные данные, подпадающие под запросы на удаление, держите их в базе данных.
  • Если нужна низкая задержка или высокая пропускная способность записи — база данных, без обсуждений.
  • Если вы принимаете или отправляете крипто-платежи, уровень расчётов — это blockchain, нравится вам это или нет. Разумный шаг — держать всё остальное off-chain, что и приводит к гибридной схеме.

Три архитектуры на практике

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

Программа лояльности с баллами: чистая база данных

Ритейлер начисляет баллы, клиенты обменивают их на кассе, а команда маркетинга корректирует балансы, когда акция даёт сбой. Каждое свойство этой системы указывает в одну сторону. Одна компания контролирует баллы, и клиенты это принимают, поэтому разрыва доверия, который нужно преодолевать, нет. Объём записи — миллионы мелких обновлений в день, задержка на кассе должна оставаться незаметной, а данные аккаунтов подпадают под правила удаления. Postgres справляется со всем этим без церемоний. On-chain-версия платила бы комиссию за каждый начисленный балл, ждала бы консенсуса на кассе и не смогла бы выполнить ни одного запроса на удаление по GDPR. Здесь всё стало бы хуже на blockchain, поэтому решение занимает около минуты.

Децентрализованная биржа: полностью on-chain

Теперь переверните каждое допущение. DEX существует для того, чтобы незнакомцы могли торговать без того, чтобы какой-либо оператор держал их средства; введите доверенного оператора базы данных — и у продукта не остаётся причины существовать. Поэтому вся машина состояний — балансы, резервы пулов, логика свопов — живёт в контрактах, и каждая сделка оплачивает свой путь через консенсус. Ограничения chain тогда заметно формируют дизайн: классические книги ордеров требуют слишком частого размещения, изменения и отмены ордеров для записей, облагаемых комиссией, что во многом объясняет, почему автоматизированные маркет-мейкеры победили on-chain. Пользователи платят комиссии и ждут секунды ради сделок, потому что отсутствие доверия — это и есть тот продукт, за которым они пришли. Обратите внимание, что DEX всё же не выносит on-chain: её веб-фронтенд, аналитика и графики цен работают на обычных серверах и базах данных, даже здесь.

Крипто-депозиты для SaaS: гибрид

Обычный коммерческий случай находится между крайностями. SaaS хочет принимать USDT от клиентов по всему миру; его подписки, счета и учётные записи пользователей уже живут в базе данных и должны там остаться. Chain неизбежна ровно в одном месте — при расчёте, и всё остальное намеренно держится вне её. Этот третий сценарий — схема, которую в итоге на практике строит большинство команд, поэтому она получает подробный разбор ниже.

Гибридная схема: база данных off-chain, расчёты on-chain

Продакшн-платёжные системы почти никогда не выбирают исключительно одно или другое. Они делят работу: blockchain рассчитывает стоимость, база данных делает всё остальное. Записи клиентов, заказы, балансы и данные сессий живут в Postgres или MySQL, где они доступны для запросов и редактирования. Только фактическое движение средств касается chain, через API, поэтому приложение никогда не эксплуатирует собственный node.

Конкретный поток депозита выглядит так:

  1. Клиент хочет заплатить. Ваш бэкенд назначает ему выделенный адрес депозита через вызов API и сохраняет соответствие адрес-клиент в вашей базе данных.
  2. Клиент отправляет USDT на этот адрес. Вы не опрашиваете chain; вместо этого срабатывает webhook, когда перевод подтверждается.
  3. Ваш endpoint проверяет HMAC-подпись webhook, записывает депозит в собственную базу данных и там же зачисляет баланс клиента.

Обработчик намеренно ничем не примечателен:

app.post("/webhooks/deposits", (req, res) => {
if (!verifyHmacSignature(req)) return res.status(401).end();
const tx = JSON.parse(req.body);
db.query(
"INSERT INTO deposits (txid, address, amount, confirmed_at) VALUES ($1, $2, $3, now())",
[tx.txid, tx.to, tx.amount]
);
res.status(200).end();
});

Payload webhook содержит txid, from, to, amount, contractaddress и blocknumber, поэтому для insert ничего, кроме тела запроса, не нужно. С этого момента логика вашего приложения читает балансы из собственных таблиц, со скоростью и стоимостью базы данных. К chain снова обращаются только тогда, когда средства выходят. Webhook’и Chaingateway подписаны HMAC; неудавшиеся доставки появляются в GET /api/v2/tron/webhooks/notifications/failed и могут быть повторно отправлены вызовом API, а прошлые уведомления можно повторно получить через GET /api/v2/tron/webhooks/notifications для сверки после простоя; в руководстве по webhook есть полная настройка, а быстрый старт покрывает первый вызов API.

Так кто же побеждает?

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

Практический ответ для большинства команд — и то, и другое, соединённые API: база данных для приложения, blockchain для расчётов. Для выбора этого уровня API см. наше сравнение провайдеров blockchain API; тарифы со стороны Chaingateway — на странице цен.

Часто задаваемые вопросы

Только в самом широком смысле: она надёжно хранит данные. Обычному определению она не соответствует, потому что записи нельзя обновить или удалить, запросы ограничены, а записи стоят денег и занимают секунды до финализации. Назвать её «машиной доверия со встроенным хранилищем» точнее, чем назвать базой данных.

Для обычного приложения — нет. Задержка, комиссии за запись и отсутствие операций UPDATE и DELETE исключают её как основное хранилище данных. Blockchain заменяет уровень расчётов и нотариуса, а не Postgres.

Обычно этот термин означает сам реестр: историю транзакций, реплицированную по node. Некоторые продукты также индексируют данные chain в обычную базу данных, чтобы их можно было запрашивать через SQL, что полезно, но в этот момент вы снова запрашиваете базу данных, а не blockchain.

Потому что каждая запись должна быть подписана, распространена, согласована консенсусом и реплицирована на каждый node, прежде чем станет финальной. Запись в базу данных — это одна машина, записывающая на собственный диск. Медлительность — цена отказа от доверенного оператора, а не изъян реализации, который исчезнет с оптимизацией.

Частично. Транзакция смарт-контракта атомарна (она применяется полностью или откатывается полностью), код контракта обеспечивает согласованность, а консенсус даёт полный порядок — это более сильная изоляция, чем в большинстве баз данных. Долговечность — исключение: транзакция считается урегулированной только при финализации, от секунд до минут после включения в зависимости от chain, а до этого момента реорганизация может её вытеснить. Системы, начисляющие деньги, должны ориентироваться на финализацию, а не на первое включение.

Почти всегда только в одном месте: платежи. Бизнесу редко требуется общее состояние со сторонами, которым он не доверяет, но приём крипты означает, что уровень расчётов по определению становится blockchain. Работоспособная настройка — описанная выше гибридная схема, где chain рассчитывает стоимость, а всё операционное остаётся в вашей базе данных, подключённой через API, а не через собственный node.

Они не читают chain при каждом запросе. Explorer’ы и wallet’ы обращаются к индексам: данные chain копируются в обычные базы данных и обслуживаются оттуда со скоростью базы данных. Платёжные системы делают то же самое, по одному webhook за раз, записывая каждый подтверждённый депозит в собственные таблицы и с этого момента читая балансы локально. Chain — источник истины; база данных — рабочая копия.

Готовы собрать это сами? Получите свой API-ключ — 7-дневный пробный период, без карты — или посмотрите API блокчейна для полного справочника по эндпоинтам.

C
Chaingateway Team
Эксперты по блокчейну

Команда Chaingateway стремится упростить интеграцию блокчейна для разработчиков по всему миру.