Комментарии 11
А вы как думаете?
Я думаю, что надо было бы добавить опрос в конце статьи с хотя бы двумя вариантами ответов: "согласен с изложенным" и "не согласен с изложенным" :)
Придерживаюсь такого же мнения. Использовать блокчейн ради использования блокчейн - такое себе решение (хоть и весьма распространённое)
Если вы пытаетесь применить блокчейн, то надо и искать случаи, в которых он становится полезен, а не рассуждать абстрактно.
Представим обычную систему учета паспортов, раз в сутки бэкапющуюся в блокчейн. Нужно проверить на фальшивость паспорт. В общей системе он есть, но в день выдачи по дате в паспорте он не выдавался.
Представим систему регистрации права собственности. Коррумпированный регистратор регистрирует земельный участок на лицо А и удаляет связанную информацию о лице Б, но по блокчейну видно, что он до этого был зарегистрирован именно Б.
По закону судопроизводство у нас открытое, все решения суда якобы доступны в инете. Вы знаете сколько решений суда выносится задним числом, или втихую изменяется? Я примерно представляю. Блокчейн решил бы эту проблему легко и просто.
Ни одна сколь-нибудь коррумпированная власть не будет внедрять блокчейн.
Блокчейн это открытое (то есть кто угодно может посмотреть все данные) и децентрализованное (то есть кто угодно может внести изменение) хранилище. Оба свойства обязательны, нельзя как-то убрать или уменьшить одно из них, чтобы блокчейн оставался оправданным.
Традиционная база данных это централизованное хранилище, которое может быть как открытым, так и ограниченным.
Что нужно от хранилища для паспортов? Однозначно оно не должно быть открытым, иначе множество злоумышленников смогут выдавать себя за других граждан. Поэтому увы, блокчейн тут не подойдет.
Про шифрование, подпись, хэши не слышали?
Открытость не значит "кто угодно", децентрализация не значит, что кто угодно может внести изменения.
Под открытостью понимается возможность для каждого получить доступ к реестру и определенным фактам в нем, но не обязательно ко всем данным или к каким-либо данным в принципе. Посмотрите на Монеро и любые другие общепризнанные и много лет работающие блокчейны с нулевым разглашением. Всем доступен факт транзакции, ее время и список всех задействованных аккаунтов (не меньше 16), но выяснить, кто в рамках этой транзакции, что, кому и в каких количествах переводил - невозможно, можно лишь получить список возможных отправителей и получателей. Проверить статус транзакции может только отправитель и продавец, так как только они могут предъявить блокчейну соответствующие ключи.
Это больше придирки, но вот "децентрализация" никак не означает возможности всем внести какие-то изменения. Децентрализация в общем смысле значит только то, что у системы нет точки централизации, всё. Может быть руководящий орган. У него может быть условный рубильник (зашитый в сеть). Блокчейн может быть по своей сути и открытым, и децентрализованным, только очень сильно зависеть от единого оператора, контролирующего условные 80% монет/мощностей/валидаторов и т.п, и при этом он будет оставаться блокчейном. Блокчейн вообще может быть частично закрытым и централизованным, при этом оставаясь блокчейном. Это как раз государственные блокчейны для выборов, банковские решения типа Мастерчейн, да и банально тот же XRP
Открытость самого блокчейна и означает "кто угодно". Вы можете в блокчейн положить зашифрованные данные, тогда "кто угодно" сужается до "тех кому известен ключ", но это уже не имеет никакого отношения к блокчейну. Можно сделать любое хранилище, такое же открытое как блокчейн, и хранящее такие же зашифрованные данные.
Децентрализация в общем смысле значит только то, что у системы нет точки централизации, всё
Это и означает что все пользователи имеют одинаковые права, в том числе по изменению данных. Это одновременно означает, что ни один участник единолично не сможет какие-то данные в блокчейне подменить.
Блокчейн, у которого 80% того, что позволяет плодить новые блоки, сконцентрировано в одних руках теряет все преимущества децентрализации. Так как эти одни руки вполне могут переписать блокчейн, внеся любые свои правки и отменив запись любого участника.
Получается что бокчейн - плохое решение для любых баз данных, где участником может быть кто угодно. Например может быть оправдан блокчейн для банков, чтобы осуществлять межбанковские переводы, но блокчейн для выборов - профанация в чистом виде.
Мне кажется, на этом уровне, а именно структуры данных и хранения вопрос в принципе не имеет смысла. Поясню
Хранить данные можно в чем угодно. Можно в реляционной базе, можно в noSQL-базе, можно в файлах, ... Для задачи хранения важно понимать, какие операции с данными происходят НЕПОСРЕДСТВЕННО. Т.е. в "современной" архитектуре обычно вопросы авторизации операции, консистентности, целостности выносятся на уровни выше. Трех-уровневая модель давно победила, оставив за базой задачу "хранить" и "выдавать". В общем, понятно, всегда есть исключения.
Блокчейн - это не только хранение. Это распределенность "реестар" и "контракты", которые позволяют участникам процесса вносить в реестр изменения. Т.е. он и "хранение" и "логика". И сравнение в статье в принципе не имеет смысла, так как сравниваются не "яблоки с яблоками", а "яблоко" с ... не знаю, яблочным пирогом.
На мой взгляд, блокчейн нужен там, где есть среда, в которой присутствуют разные участники, с разными ролями, и вы хотите строить именно децентрализованную модель взаимоотношений. И слово "децентрализованная" критично, так как именно это и есть суть блокчейна. Нет главного.
Если же главный есть, и он не просто условно "центр сертификации", т.е. некий "пассивный" участник, а непосредственно действующее лицо - смысл искать себе сложности? Это если по требованиям, главный хочет делегировать свои функции всем в какой-то степени, тогда да. К примеру, какой-то участник (это не обязательно само физ. лицо) может поменять фамилию (барышня замуж вышла или развелась), либо адрес проживания. Если центральный орган не хочет участвовать в этом всем и ему проще выдать правила и дать разным участникам это делать самостоятельно - блокчейн вполне подойдет, наверное.
------------
Можно ли сделать аля "блокчейн" на обычной базе? Конечно, но опять же вопрос - зачем. Для целостности давно придумали подписи, для авторизации - реализацию соответствующей модели любой сложности, для отслеживания - аудит записи. Не обязательно копировать логику, если есть много более традиционных способов сделать все тоже самое
Вы правы, но всё это не отменяет того факта, что очень часто блокчейн сравнивается с БД.
Я на эту тему привел цитату в статье.
А вот здесь: https://habr.com/ru/companies/aktiv-company/articles/760730/ обсуждались схемы выбора технологии хранения данных, где в подавляющем большинстве случаев выбор делался между этими же технологиями.
Получается, что все привыкли думать, что блокчейн - это альтернатива СУБД, просто другая по структуре, набору возможностей и свойствам.
Оптимален ли блокчейн для хранения идентификационных данных?