Блокчейн (биткойн) как база данных?

16

Я читал эту статью BBC News, и следующая выдержка привлекла мое внимание. Звучит как « Всегда в группах доступности» или « Зеркалирование высокой доступности», возможно, с автоматически включенной защитой.

Является ли блокчейн потенциально жизнеспособным решением для баз данных для современных приложений с большим объемом транзакций?

Довольно легко увидеть его ценность для транзакций с небольшим объемом, таких как личные медицинские записи, но как насчет баз данных большого объема?

Что такое блокчейн?

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

Удаление посредника сокращает расходы практически во всех секторах.

Блокчейн - это регистр, в котором записывается все, что происходит с коллекцией данных, известной как «блок» в хронологическом порядке или «цепочке».

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

«Технология Blockchain будет способом, которым мы создаем активы, потому что он позволяет передавать цифровую информацию без копирования», - говорит Адам Людвин, исполнительный директор Chain.com, которая строит сети блокчейнов.

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

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

Джеймс Дженкинс
источник

Ответы:

15

Является ли блокчейн потенциально жизнеспособным решением для баз данных для современных приложений с большим объемом транзакций ?

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

Взгляните на биткойны, например. Среднее количество транзакций в день никогда не превышало 300K: транзакций в день (источник blockchain.info)

введите описание изображения здесь

Еще более важно, что среднее время подтверждения транзакции составляет около 8 минут! Среднее время подтверждения транзакции (только с комиссией ) и прекрасное изображение от Quandl :

введите описание изображения здесь

Сколько компьютеров в мире несут ответственность за хранение базы данных биткойнов? Я не эксперт по биткойнам, но я думаю, что вся история транзакций хранится в цепочке блоков, поэтому все компьютеры, которые участвуют в биткойн-сети, по существу, хранят копию всей базы данных (часть транзакций, конечно, не информация об аккаунтах) и секретные ключи, они хранятся в личных кошельках).

Мы можем только оценить, сколько их, но я предполагаю, что их больше миллиона. 300 000 транзакций в день с миллионами компьютеров - это не похоже на большую громкость. И 8 минут для подтверждения?

Современная СУБД в приличном оборудовании может легко обрабатывать до 1K транзакций в секунду. Это около 86 миллионов транзакций в день. Время подтверждения? Это зависит от размера транзакции (на сколько таблиц и строк она влияет), но для небольшой транзакции типа биткойн (удалите 42 монеты со счета A и добавьте 42 монеты к счету B), это будет миллисекунда.

Таким образом, сегодня разница в объемах и времени составляет от 1000 до 100000 раз.

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

ypercubeᵀᴹ
источник
другая проблема, которую я имею с блокчейном, - это кровавое противоречие. Это все под нагрузкой, и клиент, который обрабатывает транзакции, не «выделен», так что вы можете увидеть, как группа выпадает или добавляется. 8 минут звучит правдоподобно, может быть, последние 10 минут были дополнительной или двумя минутами для одобрения всех клиентов? Не уверен, кто знает с большим количеством узлов, может быть, это пошло вниз! В любом случае отличные ссылки. Благодарю.
Али Разеги
2
В этой статье technologyreview.com/s/540921/… утверждается, что существует концептуальный предел в семь транзакций в секунду.
a_horse_with_no_name
Боковые цепочки @a_horse_with_no_name могут легко масштабироваться без жестких ограничений и остаются синхронизированными с цепочкой биткойнов, которая может быть прозрачно обработана.
Джангорецкий
16

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

Используя блокчейн как живую базу данных:

Думайте об этом как о первой нормализованной форме без каких-либо действительно хороших встроенных возможностей поиска или индексации в отношении блокчейна. В основном это лист Excel без каких-либо вычислительных возможностей, который просто дает вам возможности «чтения / записи» с большим количеством проверок и валидаций. Блокчейн - это отличный способ проверить и очистить ваши данные перед тем, как поместить их в базу данных, что позволит вам запрашивать их по-другому, индексировать и т. Д.

Преимущества блокчейна:

Блокчейн в этом случае является чисто бухгалтерской книгой и API для запросов PUT и GET. Вот и все. Блокчейн интересен тем, что вам нужно большинство узлов, чтобы передать транзакцию как действительную, и откатов не было, после того как она зафиксирована, она зафиксирована. Таким образом, если кто-то попытается ввести поддельную транзакцию, она будет поймана, если только у человека, который ее совершает, нет пула, который имеет значительную долю большинства. Затем они могут проверить его в своем пуле, прежде чем кто-то может отклонить его. Это сильная сторона блокчейна. Проверка достоверности данных. Это также обычно довольно медленно. Вы ожидаете около 10 минут при нормальной нагрузке, чтобы его можно было проверить. Под большой нагрузкой время немного увеличивается.

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

Запрос данных из схемы блокчейна в СУБД:

Вот диаграмма биткойнов, которую вы можете использовать для создания схемы в PostgreSQL. Используя это, вы можете поместить его в реляционную СУБД: https://bitcointalk.org/index.php?topic=38246. введите описание изображения здесь

Это повторение кода также полезно, если вы хотите импортировать данные в настоящую СУБД: https://github.com/bitcoin-abe/bitcoin-abe

Что касается того, в какую СУБД вы должны его вставить, это зависит от вашего варианта использования. Если вы хотите проанализировать идентификаторы транзакций / кошельков, чтобы увидеть некоторые шаблоны или выполнить работу BI, я бы порекомендовал реляционную БД. Если вы хотите настроить активную загрузку с несколькими криптовалютами, я бы порекомендовал что-то, для чего не нужен журнал транзакций, поэтому решение MongoDB было бы хорошо. Я не думаю, что вам нужно беспокоиться об Elastic Search, если вы не хотите начать делать живую запись всех криптовалют одновременно и использовать ее для автоматической торговли или чего-то такого же безумного. :)

Али Разеги
источник
8

В 2014 году мы создали ascribe.io с целью использования Биткойна в качестве базы данных для заявок на интеллектуальную собственность. После выпуска мы подключили сеть, потому что она не могла справиться с пропускной способностью, задержка составляла не менее 10 минут, и мы были ограничены тем, что мы могли поместить в OP_RETURN, заставляя нас хранить фактический цифровой файл, относящийся к заявке, в Amazon S3. , Мы поняли, что Биткойн в его нынешнем виде никогда не может быть базой данных с высокими транзакциями.

Но идея о том, можем ли мы иметь базу данных в стиле блокчейна - децентрализованное управление, неизменность (защита от взлома) и живые активы в сети, осталась у нас. Итак, в середине 2014 года мы начали работать над BigchainDB

Короче говоря - мы можем обрабатывать 100 тыс. Пакетов в секунду с задержкой 100 мс и иметь петабайтную емкость. Код - наш BigchainDB Github, техническая документация здесь и основополагающее мышление в нашем техническом документе .

Если у вас есть сценарий использования децентрализованной базы данных с высокой транзакцией - мы специально для этого создали BigchainDB.

Брюс Пон
источник
2

Блокчейн, полученный из Биткойна, медленный и дорогой; объем данных, которые могут храниться в блоке, очень скромен. Механизмы, лежащие в основе цепочек блоков (распределенных регистров), предназначены для обеспечения нетленного, сильно реплицированного хранилища данных; Одноранговая связь - менее существенная особенность, чем «политическое требование», чтобы избежать появления централизованного контроля. Я около 18 месяцев работал над созданием высокопроизводительной распределенной бухгалтерской книги (см. Metrognomo.com для одного экземпляра), которая потребляет как можно меньше Биткойн. В конце концов, распределенный регистр выглядит как последовательный файл, который можно добавлять, но не редактировать после добавления. Это ценная вещь для некоторых приложений, но не то, что большинство людей считают базой данных.

Лондон
источник