Блокчейн, выборы и прозрачность, ч. 1

24.07.19

Разработка - Математика и алгоритмы

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

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

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

 
 В двух словах, что такое блокчейн
 
 Пример простейшего блокчейна
 
 Взрослые хэш-функции
 
 Промежуточные итоги
 
 Точно всё? А если найду?
 
 Публичные, распределённые, твои
 
 Опять подведём итоги

 

С основами блокчейна разобрались, в следующей статье посмотрим на применение его как средства решения задач.

блокчейн биткоин распределённые вычисления хэш

См. также

Метод Дугласа-Пойкера для эффективного хранения метрик

Математика и алгоритмы Платформа 1C v8.2 Конфигурации 1cv8 Россия Абонемент ($m)

На написание данной работы меня вдохновила работа @glassman «Переход на ClickHouse для анализа метрик». Автор анализирует большой объем данных, много миллионов строк, и убедительно доказывает, что ClickHouse справляется лучше PostgreSQL. Я же покажу как можно сократить объем данных в 49.9 раз при этом: 1. Сохранить значения локальных экстремумов 2. Отклонения от реальных значений имеют наперед заданную допустимую погрешность.

1 стартмани

30.01.2024    1886    stopa85    12    

34

Алгоритм симплекс-метода для решения задачи раскроя

Математика и алгоритмы Бесплатно (free)

Разработка алгоритма, построенного на модели симплекс-метода, для нахождения оптимального раскроя.

19.10.2023    4687    user1959478    50    

34

Регулярные выражения на 1С

Математика и алгоритмы Инструментарий разработчика Платформа 1С v8.3 Мобильная платформа Россия Абонемент ($m)

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

1 стартмани

09.06.2023    7681    4    SpaceOfMyHead    17    

56

Модель распределения суммы по базе

Математика и алгоритмы Платформа 1С v8.3 Россия Абонемент ($m)

Обычно под распределением понимают определение сумм пропорционально коэффициентам. Предлагаю включить сюда также распределение по порядку (FIFO, LIFO) и повысить уровень размерности до 2-х. 1-ое означает, что распределение может быть не только пропорциональным, но и по порядку, а 2-ое - это вариант реализации матричного распределения: по строкам и столбцам. Возможно вас заинтересует также необычное решение этой задачи через создание DSL на базе реализации текучего интерфейса

1 стартмани

21.03.2022    7951    7    kalyaka    11    

44

Изменения формата файлов конфигурации (CF) в 8.3.16

Математика и алгоритмы Платформа 1С v8.3 Бесплатно (free)

Дополнение по формату файлов конфигурации (*.cf) в версии 8.3.16.

16.12.2021    4559    fishca    13    

36

Интересная задача на Yandex cup 2021

Математика и алгоритмы Бесплатно (free)

Мое решение задачи на Yandex cup 2021 (frontend). Лабиринт. JavaScript.

12.10.2021    8955    John_d    73    

46

Механизм анализа данных. Кластеризация.

Математика и алгоритмы Анализ учета Платформа 1С v8.3 Анализ и прогнозирование Бесплатно (free)

Подробный разбор, с примером использования, встроенного механизма кластеризации 1С.

31.08.2021    7984    dusha0020    8    

70
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. CheBurator 3119 24.07.19 19:47 Сейчас в теме
Спсб за понятное разъяснение.
.
"Получается, если база внутренняя, с санкционированным доступом ограниченного количества ответственных лиц, то блокчейн для проверки изменения базы тоже не нужен, в том числе и как защита от несанкционированного доступа."
- здесь понимается, что если есть несанкционированный доступ - то злоумышленник может подменить/модифицировать данные, в т.ч. и переформировать хеши.
- но ведь можно "сделать" так чтобы вычисление хеша было достаточно ресурсоемким, тогда пересчет множества хешей за приемлемое время (а ресурс у лоумышленника ограничен) будет проблемным...?
.
опять же - если мы в текущий момент времени не можем сразу сказать изменилось что-то где-то раньше в цепочке - то смысл всей цепочки? только в том, что рано или поздно когда-то будет обнаружено что было вмешательство и блок данных, по которому стоит "неверный" хеш является "неправильным" - и все? какая с этого существенная польза в момент расчета текущего хеша? (как пример, есть блокчейн собственности на "квартиру". я, покупая "квартиру", в момент покупки (а покупака должна совершаться БЫСТРО, за отведенное время) - должен быть уверен, что я покупаю "правильную" квартиру. и еслия я не проверю всю цепочку - я не смогу этого сказать (а время проверки всей цепочки превышает отведенное время на покупку)... И - всё, приплыли..?!
.
или я неправильно все понимаю?
for_sale; +1
5. for_sale 971 24.07.19 20:24 Сейчас в теме
(1)
но ведь можно "сделать" так чтобы вычисление хеша было достаточно ресурсоемким, тогда пересчет множества хешей за приемлемое время (а ресурс у лоумышленника ограничен) будет проблемным...?


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

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


(1)
... И - всё, приплыли..?!

Именно приплыли - вы всё правильно поняли) В том же биткоине, если вы когда-нибудь пользовались обменниками, то вы им перечисляете биткоины, а они вам деньги слать не торопятся - потому что ждут подтверждения от множества узлов о том, что ваша транзакция попала в правильный блок и блок не отвергнут сетью. Т.е. да, приходится ждать, пока не будет проверена вся цепь от начала времён. Уже от разработчика зависит - как долго это всё будет происходить. Теоретически, наверное, можно придумать какие-то "индексы", но я бы в правильную техническую реализацию какого-то большого блокчейна не лез без как минимум докторской степени.
sukorskis; +1
2. CheBurator 3119 24.07.19 19:51 Сейчас в теме
Вот это как-то не особо понятно
"Что если база-блокчейн будет копироваться каждым пользователем к себе на компьютер, каждая строка будет записываться в конец блокчейна, а при записи хэши будут сверяться между всеми базами? Если я удалю строку, у себя в базе - она останется у всех, если я удалю базу - она останется у всех, если я попробую перезаписать строку - все узнают, если я попробую отправить неправильный хэш, его не примут."
- еслия пишу в базу которая у меня на компе - то все должны ждать пока я посчитаю хеш и выложу последний блок в общедоступный экземпляр..? если пишущих - много - то будут длинные исключительные "блокировки"...?
+
4. for_sale 971 24.07.19 20:13 Сейчас в теме
(2)
еслия пишу в базу которая у меня на компе - то все должны ждать пока я посчитаю хеш и выложу последний блок в общедоступный экземпляр..? если пишущих - много - то будут длинные исключительные "блокировки"...?

Да, примерно так. На самом деле просто посчитать хэш практически ничего не стоит, если бы в этом состояла цель. Но там (снова нарушаю своё обещание не трогать реализацию, а плавать на абстракции) ещё всякие PoW обычно, т.е. хэш - это не просто хэш, а какой-нибудь хитрый хэш, чтобы вы конкурировали с другими пользователями за право сделать именно ваш блок следующим. Т.е. да - времени уходит много, в биткоине сейчас, я слышал, вообще одному компьютеру практически нереально создать блок - только целыми пулами мощных компьютеров вычисляют эти сложные хэши. Но суть примерно такая - да, работа с такими базами занимает время и в разных известных блокчейнах реализованы целые вселенные всяких хитростей для того, чтобы всё это работало приемлемо.
sukorskis; +1
3. CheBurator 3119 24.07.19 19:55 Сейчас в теме
"если я удалю базу - она останется у всех" - но где-то же д.б. общедоступный экземпляр базы, который каждый "копирует" к себе на комп? и если этот общедоступный экземпляр "погибнет" - то что считать правильной базой - какой из экземпляров, при том что они могут быть разные (часть из пиплов - "злоумышленники" и подправили базу в своих интересах). Какая из баз - правильная? брать все доступные экземпляры на частных компах и вычислять минимальный совпадающий у всех отрезок от начала базы? а если база подправлена близко к началу? кто будет арбитром, чтобы принимать (?) решение какая база правильная?
+
6. for_sale 971 24.07.19 20:31 Сейчас в теме
(3)
Это опять же зависит от реализации. Но для настоящего публичного распределённого блокчейна какая-то эталонная база, наверное, будет противоречить самому принципу. Ведь ею кто-то владеет, а это уже получается приватный блокчейн. Эталонной базой будет консенсус - подтверждённая большинством копий совокупность данных. Т.е. по какому-то алгоритму вы соединяетесь с одним узлом, берёте оттуда копию, дальше соединяетесь с другими узлами и сверяете вашу копию. Как торрент. Но, повторюсь - блокчейн - это просто способ работы с БД. А уже прикладные детали реализации могут быть очень разными.
sukorskis; +1
7. CheBurator 3119 24.07.19 20:33 Сейчас в теме
(3) дочитал до конца, вроде этот вопрос ок.
+
8. mkalimulin 1164 25.07.19 16:03 Сейчас в теме
Ваши ошибки относительно приватного блокчейна.
1. Он не дает существенной дополнительной нагрузки на базу. Потому что база сама по себе, а блокчейн сам по себе. Он физически может вестись в другой базе.
2. Блокчейн прекрасно работает в ситуации, когда требуется менять уже введенные документы. Запись о таком изменении точно так же попадает в блокчейн. Тут нет ничего особенного.
Ваш вывод о бесполезности приватного блокчейна - неверен. Также неверно противопоставление распределенного блокчейна и приватного. Они оба полезны. Но для разных случаев. Для криптовалюты нужен распределенный. Для доверия достаточно приватного.
+
9. for_sale 971 25.07.19 16:29 Сейчас в теме
(8)Михаил, я вас давно жду)) Вы в самой новости поучаствовали в спорах на 200 комментариев, так и не приведя ни одного аргумента, теперь и сюда перебрались)) И вот теперь здесь вы пишете глубокомысленные:


(8)
Для доверия достаточно приватного.

, опять не приведя никаких доказательств. Особенно смешно то, вы спорите с тем, чего я не говорил - что приватный блокчейн бесполезен в принципе, я привёл разобранный аргументированный пример только того, что приватный блокчейн бесполезен в выборах, в результате которых заинтересован владелец базы. В остальном использовать приватный блокчейн или нет - дело каждого, если он вам нужен, то используйте, не нужен - не используйте. Само по себе владение блокчейном уже убивает доверие и вы так и не смогли ничего привести в противовес. Но если доверие обеспечивается какими-то внешними инструментами, или если все участники согласны с тем, что есть какой-то владелец у блокчейна и всех это устраивает, то... ну используйте, я ж не против)


(8)
1. Он не дает существенной дополнительной нагрузки на базу. Потому что база сама по себе, а блокчейн сам по себе. Он физически может вестись в другой базе.

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

Я понимаю, почему вам больно слышать укоры в адрес приватного блокчейна - вы создали блокчейн на 1С, почему-то этим гордитесь (хотя особого ума для вашего варианта не нужно) и даже кое-как пытаетесь продавать это чудо техники. Поэтому вас разражает, что всякие тут ходят и пишут, что приватный блокчейн не вызывает доверия. Но, поверьте, я ничего против вашего блокчейна не имею - если вам удастся кому-то его продать и кому-то он действительно нужен - ну здорово же, я за вас буду очень рад!
+
10. for_sale 971 25.07.19 16:33 Сейчас в теме
(8)
Потому что база сама по себе, а блокчейн сам по себе.

Кстати, видите, вы до сих пор так и не поняли сути блокчейна)) База сама по себе быть не может, иначе это не блокчейн, а какое-то непонятное создание. Допускаю, что теоретически можно считать хэши динамически, но вот это действительно будет сумасшедшая ненужная нагрузка по сравнению со стандартной реализацией. Это же надо постоянно бегать по всей базе и вычислять их, более того, вам ведь всё равно нужно где-то хранить уже вычисленные хэши, чтобы данные не поменяли. И только для того, чтобы не записывать хэши вместе с данными? А зачем?

Так что, как и прежде, я крайне рекомендую вам разобраться в работе блокчейна и вообще в том, что это такое. Потому что, насколько я понял, вы смастерили какую-то обработку на 1С и решили, что вы - мастер блокчейнов)) И теперь не хотите больше ничего понимать. А понимать вам ещё много, насколько я вижу по вашим комментариям.
sukorskis; +1
11. mkalimulin 1164 25.07.19 16:41 Сейчас в теме
(10) Можно хранить в отдельной базе ИД документов и хэши. Вот вам и будет "база сама по себе, а блокчейн сам по себе".
+
12. for_sale 971 25.07.19 16:45 Сейчас в теме
(11)
И велосипед, который будет постоянно ходить по базе и пересчитывать хэши?)
+
14. mkalimulin 1164 26.07.19 08:41 Сейчас в теме
(12) А в чем проблема? Пользователи постоянно ходят по базе и чего-там считывают. У вас появляется еще один пользователь (очень скормный, потому что он ничего не пишет в базу). Вот и вся дополнительная нагрузка.
+
16. for_sale 971 26.07.19 08:53 Сейчас в теме
(14)
Михаил)) Я вам в который раз предлагаю разобраться с работой блокчейна)) Вам ведь не только я говорю, что вы совершенно безграмотны в этой сфере. Не верить одному человеку - это ладно, но когда вам целый хор говорит, что вы мелете чушь... я бы прислушался. Устал вам что-то доказывать, если хотите - сами смоделируйте ситуацию, когда ваш велосипед может обмануть пользователей, или сам себя, или владелец базы может обмануть этот велосипед (если он снаружи) или с помощью этого велосипеда обмануть пользователей. Повторю то, что говорят вам уже неделю - вы так ничего и не поняли. И, видимо, уже и не поймёте. Удачи в продажах велосипеда)) Не удивляйтесь, если они будут идти плохо))
+
18. mkalimulin 1164 26.07.19 09:16 Сейчас в теме
(16) С работой блокчейна вообще, и в приложении к криптовалютам, я знаком. И познакомился с ней задолго до того, как реализовал приватный блокчейн на 1С. И, по видимому, значительно раньше вас. На чем основано ваше стремление отправить меня учиться? Вы думаете, что в области блокчейна я не знаю чего-то, что знаете вы? Почему вы так решили?
+
13. tolyan_ekb 104 26.07.19 08:15 Сейчас в теме
У меня такой вопрос. Допустим база существует несколько лет и я новый участник. Скачал и обновил базу с нескольких узлов. Теперь я должен на своем компе хранить все это добро и стать узлом базы? Обычный пользовательский ПК потянет такую базу?
+
15. for_sale 971 26.07.19 08:49 Сейчас в теме
(13)
Да, так и есть. Например, даже если вы скачаете клиент того же лайткоина (форк биткоина) и скачаете себе его клиент, то он вам закачает на комп всю базу за все годы существования. И пользоваться им вы сможете только пока у вас лежит вся база. Комп тянет, но скачать нужно десятки Гб.

Сейчас уже появились всякие шлюзы, т.е. сайт в интернете, который хранит эту базу за вас, а вам предоставляет только окошко пользователя. Но тут уже вступает пример из приватного блокчейна - т.е. вам нужно доверять этому сайту, потому что проверить, что он там делает вообще и с вашими ключами доступа в частности, никто не знает.
+
17. for_sale 971 26.07.19 08:56 Сейчас в теме
(13)
Именно поэтому выгода от владения копией базы должна быть обязательно. Иначе пользователи просто не будут этим геморроем заниматься.
+
19. tolyan_ekb 104 26.07.19 09:32 Сейчас в теме
(17) Спасибо за ответ. Во второй части статьи самостоятельно нашел его ))
+
20. tolyan_ekb 104 26.07.19 09:34 Сейчас в теме
(17) Сам почему-то не дошел до этой мысли, а в прочитанных ранее статьях это как-то особенно не выделялось, хотя и было написано.
+
Оставьте свое сообщение