Криптовалюты в терминах 1С. Продолжение

05.02.19

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

Продолжение рассказа о криптовалютах в терминах 1С.

Начало здесь: //infostart.ru/public/988498/

Итак, у нас уже есть способ гарантированно обнаружить изменение "задним числом". В принципе, мы уже сейчас могли бы построить работоспособную систему. Каждый участник, отправляя базу далее по цепочке, запоминает поледний хеш. Когда до него дойдет очередь в следующий раз, он сравнит запомненный хеш, с тем, что присутствует в базе. Если они не совпадут, он просто не станет передавать полученную им от предыдущего участника базу, а передаст дальше базу, которая есть у него сейчас (и в которой точно нет изменений задним числом). 

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

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

В ночь перед решающим сражением византийские генералы обмениваются сообщениями для того, чтобы принять совместное решение: атаковать врага или отступить. Им важно, чтобы решение было общим. Если значительна часть из них атакует, а другая значительная часть отступит, то кампания будет проиграна. Всем известно, что среди них есть какое-то количество предателей (но неизвестно кто именно), которые будут саботировать процесс принятия такого решения. Есть ли у лояльных генералов надежный способ выработать общее решение?

Было доказано, что в общем случае решение возможно при количестве честных генералов в 2/3 от общего числа плюс один.

 

 

Такой результат выглядел очень обнадеживающе. Для этой задачи находились новые, все более изощренные решения, и, наконец, в 2009 году было предложено такое, которое легло в основу первой криптовалюты. В этом решении использовалось другое изобретение конца прошлого века, т.н. "доказательство работы". Изначально оно было придумано для защиты от спама и DOS-атак. Но вернемся к нашим 1С-никам, и посмотрим как это работает.

Допустим, они все еще придерживаются последовательной схемы передачи базы от одного участника к другому. Но решили усложнить жизнь потенциальному злоумышленнику. Как вы помните, изменение прошлых записей должно сопровождаться пересчетом всех хэш-ключей, начиная с момента изменения. Превратим получение ключа в сложную задачу. Для этого добавим еще одно поле в наш документ и назовем его, скажем, "Добавка". Это поле будет участвовать в формировании ключа особым образом. Мы будем перебирать все возможные значения и пробовать подставлять их в это поле до тех пор, пока не получим "красивый" ключ. Например, такой в котором первые два символа будут "0". Обратите внимание на то, что подобрать такое значение будет не просто. А вот в плане проверки все останется по прежнему. Проверка будет работать все так же быстро.

Представим теперь, что большинство участников решило не тратить свои вычислительные ресурсы, а предоставить эту работу другим. А те, немногие, которые решили заниматься поиском "красивых" ключей, в качестве компенсации за это берут со всех прочих небольшую комиссию. Т.е. если вы обычный участник, то вы просто делаете платеж и подписываете его. Вы не заполняете поля "Добавка", "НачальныйКлюч" и "КонечныйКлюч". За вас это сделают другие участники, которых называют "майнерами". Такой участник соберет все необработанные еще платежи, найдет для них "красивый" хэш, и запишет результат в базу.

 

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

Если посмотреть внимательно на эту схему, то станет понятно, что уже можно отказаться от строгой последовательности в передаче базы от одного участника к другому. Обычные участники просто передают в сеть подписанные платежи.  Участники-майнеры собирают эти платежи в блоки и строят из этих блоков блокчейн. Да, конечно же, несколько майнеров будут работать параллельно с одними и теми же платежами. Но кто-то сделает свою работу быстрее. Этот кто-то и получит свое вознаграждение, а результаты его работы будут признаны всеми остальными и займут свое место в блокчейне.

Примерно так это и работает в самой первой криптовалютной сети известной как Биткоин. Я не буду далее углубляться в технические детали. Я думаю гипотетическая база 1С, которую я описал, дает достаточно ясное представление. Вместо этого, давайте обратим внимание на один удивительный факт. Я только что сказал, что действия одного участника будут приняты всеми. Сейчас-то мы знаем, что это работает. Но 10 лет назад это было неочевидно. Была просто некая теория. Абсолютное большинство людей, тогда, в 2009 году, сказали бы вам, что это не будет работать. Потому что каждый будет "тянуть одеяло на себя". А люди по природе своей не способны договориться друг с другом. Самое ценное во всей этой истории - не "математическая игрушка разума", как выразился предыдущий автор. И даже не очередная IT-технология. Самое ценное - это практическое доказательство того, что общество обладает свойством договариваться и приходить к согласию.

Вернемся к самой первой статье, в ответ на которую я стал все это писать (//infostart.ru/public/986126/).  С самого заголовка у автора чувствуется какое-то неприятие самой идеи криптовалют. Причем, как видно, автор и сам не понимает - в чем причина. Сначала он говорит о том, что система технически не совершенна и неспособна обеспечить действительно массовую обработку платежей. А через пару абзацев сам же себя поправляет, и теперь говорит, что технические проблемы, конечно же решаемы, а проблема совсем в другом. В том, что... ну не может такого быть, чтобы люди сами себе сделали хорошо. В этом он не одинок. "Криптоскептиков" довольно много. Давайте попробуем разобраться - в чем они правы, и в чем не правы.

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

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

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

В чем же все-таки неправы "криптоскептики"? Пообщавшись со многими из них, я для себя понял следующее. Все их аргументы (как бы они ни выражались) сводятся, по большому счету, к одному. Есть некий "большой дядя", назовем его так. Этот дядя готов применять насилие, для защиты своих интересов. И он не допустит никакой людской самодеятельности. И, между прочим, говорят они, и хорошо, что не допустит. Потому что люди сами для себя могут сделать только плохое. Если вдуматься - глубоко иррациональная позиция. Какой такой дядя? Откуда он взялся? Инопланетяне завезли? Конечно же, нет никакого "дяди" и никаких "дядиных" интересов. Есть плод общественного согласия, саму возможность которого скептики так категорически отрицают.  Есть общество, с присущей ему способностью приходить к согласию. А технологии блокчейна и криптовалют - всего лишь одно из доказательств этого. Здесь мы имеем дело не просто с какой-то новой компьютерной технологией. Гораздо важнее то, что здесь новые социальные практики. Отмахиваться от них также глупо, как пытаться игнорировать социальные сети и мессенджеры. Надо разбираться в том, как они работают, чтобы сознательно участвовать в этом процессе. И я надеюсь, что моя статья хоть немного вам в этом помогла.

См. также

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

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

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

1 стартмани

30.01.2024    1754    stopa85    12    

33

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

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

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

19.10.2023    4421    user1959478    50    

34

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

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

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

1 стартмани

09.06.2023    7464    4    SpaceOfMyHead    17    

56

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

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

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

1 стартмани

21.03.2022    7855    7    kalyaka    11    

44

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

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

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

16.12.2021    4446    fishca    13    

36

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

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

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

12.10.2021    8840    John_d    73    

46

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

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

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

31.08.2021    7806    dusha0020    8    

70
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Идальго 226 05.02.19 10:10 Сейчас в теме
Мне понравилась статья. Можно конечно было и попроще наверное и, я не понял зачем тут про скептиков писать. Знаете, были же скептики, которые утверждали, что машины нафиг не нужны, ведь есть же лошади и т.п. А так, крипта же с успехом функцию денег и финансового инструмента выполняет - фигли тут полимезировать и скептизировать)))
2. mkalimulin 1148 05.02.19 11:39 Сейчас в теме
(1) Спасибо за отзыв. Я вроде бы и так старался упростить, где только можно.
3. felix 06.02.19 11:59 Сейчас в теме
Огромное спасибо за статью! Прочитал этот небольшой "криптосериал" с большим удовольствием, т.к. полностью разделяю позицию автора. Впервые встречаю такое простое и доходчивое описание принципа консенсуса PoW )). Также, как и автор, считаю что блокчейн - один из 3-х китов цифрового будущего наряду с искусственным интеллектом и BigData. И криптовалюта, как платежное средство , лишь частный случай применения технологии, хотя никакой блокчейн и не будет нормально функционировать без вознаграждений поддерживающих его работу подписантов блоков. Будущее блокчейна, конечно, не в энергозатратном алгоритме консенсуса PoW, а в PoS, DPoS и других появляющихся им на смену. А причина нынешнего "криптокризиса" и "криптоскептицизма", на мой взгляд, не только и не столько в спекулянтах и волатильности, сколько в политике регуляторов всех стран, которые пока не могут найти способа, как приручить этого неподвластного им "зверя" и поэтому активно топят его. Кстати, еще в далеком 2015 году я пытался достучаться до 1С с предложением встроить в саму платформу контрольные механизмы на блокчейне, но понимания не встретил, письмо так и осталось без ответа.
4. mkalimulin 1148 06.02.19 12:09 Сейчас в теме
(3) Спасибо за отзыв. Я тоже примерно год назад пытался популяризовать безопасные базы данных. Но... видимо, всему свое время. Вот 200 лет назад никто не мылся и никого это не напрягало. Потом что-то произошло и все стали мыться. Думаю, с базами данных тоже самое будет. В какой-то момент пользоваться опасными базами станет "фу".
5. gaglo 15.02.19 12:43 Сейчас в теме
Ну-к чьтож, оставлю и я свои пять блокцентов.
Я только что сказал, что действия одного участника будут приняты всеми. Сейчас-то мы знаем, что это работает. Но 10 лет назад это было неочевидно.

Автор принимает желаемое за действительное. Это сегодня так же не очевидно, как и 10 лет назад.
Вот 200 лет назад никто не мылся и никого это не напрягало.

Возможно, дело в том, что вы опередили время на 190 лет???
Огромное спасибо за упорство в проповедовании идеи, которая вас поработила захватила очаровала,
но...

новые социальные практики

Биткоин ушел в лапы спекулянтов. Что тут скажешь

автор и сам не понимает - в чем причина


В конце концов, не путает ли автор биткойны с блокчейнами?
6. mkalimulin 1148 15.02.19 13:01 Сейчас в теме
(5)
10 лет назад это не работало, а сейчас работает.

Вы напрасно иронизируете про 200 лет. Тот факт, что все пользуются небезопасными базами данных, действительно удивителен.
7. gaglo 15.02.19 13:03 Сейчас в теме
(6) А давайте от баз данных к криптовалютам вернемся. Я не просто иронизирую. Я уверен, что ЭТО не работает.
8. gaglo 15.02.19 13:26 Сейчас в теме
(6) И никакого "большого дяди" я обязуюсь к моим рассуждениям не привлекать...
9. gaglo 15.02.19 13:42 Сейчас в теме
(6) Ну и раз уж меня настолько пробрало.... Постарайтесь простыми словами опровергнуть мои измышления.
Кибервалюта не является валютой!!! В узком смысле...
Ряд авторов считает, что валютой в широком смысле является любой товар, способный выполнять функцию денег при совершении обмена на рынке

А в узком смысле эта ваша кибервалюта - всего лишь драгоценность. Ну как алмаз, например. Вот я такой весь из себя старатель, пошлялся по Африке и намыл в ручье алмаз. Биткойн отличается от алмаза только привязвнным к нему блокчейном.
Алмаз я могу пропить в ближайшей лавке, а когда просплюсь, спрашивать будет не с кого.
Биткойн я могу всегда проследить по его блокчейну, даже если я его пропил продал в пьяном виде.
АДНАКА!!! Ни. алмаз, ни биткойн не обладают потребительной стоимостью.
Жрать их не будешь, штаны из них не сварганишь.
Так же, впрочем, не получится и из бумажных рублей, долларов, евро, юаней...
И в самом крайнем случае, после ядерной войны.... Алмазы, золотые слитки, рубли, баксы и евро будут котироваться на рынке крайне низко. Ну и особняк на Багамах - в центре Сибири - совсем низко. А в цене будут Водка, Тушенка и Патроны для Калаша
(и не обязательно в этом порядке)
А уж биткойны и прочая кибервалюта...
Ну возможно будет купить крышку от НьюкКолы за 20 биткойнов
(и хорошо если вместо крышки не дадут вморду)
10. mkalimulin 1148 15.02.19 15:37 Сейчас в теме
(9) Действительно, пробрало. Что вы предлагаете провергнуть?
Что водка, тушенка и патроны - это реальные ценности, а деньги - нет?
А кто с этим спорит? Деньги вообще не ценность, а информация, как я в первой статье утверждал.
Информацию действительно не съешь и штаны из нее не сделаешь.
11. gaglo 15.02.19 17:14 Сейчас в теме
провергнуть

-совсем не по-русски...

10 лет назад это не работало, а сейчас работает.

ЭТО НЕ РАБОТАЕТ. Вот и провергните.

Деньги вообще не ценность

Ага. А Ваши статьи не информация. И соответственно такая же ценность.
12. gaglo 18.02.19 20:21 Сейчас в теме
Ну вот, прошли выходные. Диалог со мной сам собой заглох. Даже когда я пообещал стать нетипичным криптоскептиком и ни разу не призывать "большого дядю" в свои аргументы...
Да у меня, собственно, аргументов-то и нет уже.
Деньги - не ценность, а информация. В этом мы согласны.
Водка и тушенка - ценность. Тоже вроде согласны. (Патроны пропустим, у нас еще не было апокалипсиса.)
Осталось только мне, вульгарному материалисту, объяснить:
ЗАЧЕМ я должен поменять одну информацию на другую?
Одну, за которую я могу в ближайшее время (почти) где угодно получить вполне понятное мне количество тушенки,
на другую, за которую я могу получить тушенку, если найду контрагента, согласного на такой обмен,
и заранее непонятно, в каком соотношении обмен произойдет?
Только потому, что это новая социальная практика, и я могу в ней поучаствовать?
Еще раз повторяю, мой вопрос - не как это работает, а зачем мне так работать?
Что я с этого буду иметь, кроме лозунгов???
(И про "большого дядю" мне не рассказывайте)
13. mkalimulin 1148 18.02.19 20:46 Сейчас в теме
(12) Вы, конечно, будете пользоваться тем, что вам удобнее. Тут сложно спорить. Я считаю, что криптовалюта будет удобнее. А вы считаете, что удобнее будут нынешние деньги. Поживем, увидим, как говорится. Тем более, что ждать не долго.
14. gaglo 19.02.19 07:56 Сейчас в теме
(13) Похоже, вам спорить не только сложно, но и неинтересно. Понимаю.
На всякий случай извиняюсь, если в процессе переписки как-то вас оскорбил.
Я действительно думал, что вы сможете ответить мне на вопрос "зачем".
Потому что "как" - расписано достаточно хорошо.
Я даже думал, что просто невнимательно читал и эту, и предыдущую,
и что вы мне просто скопируете абзац, в котором это "зачем" расписано по пунктам.
И я удивлюсь и признаю, что "ах я, старый дурак, читаю по диагонали,
а потом придираюсь, что ничего не понял".
Но нет, не сбылось ;-[
Кажется, люди, которые знают, "как", вообще не любят отвечать на "зачем".
Насчет же "поживем, увидим".
22/01 была опубликована статья одного автора про криптовалюты, которая получила 40 плюсов.
Другому автору "захотелось поспорить" - и он написал две статьи,
от 29/01 и от 05/02. Они набрали соответственно 6 и 13 плюсов.
На сегодня, 19/02.
Это даже не информация, это просто факт.
Всего хорошего!
15. mkalimulin 1148 19.02.19 08:41 Сейчас в теме
(14) Вы правы. Вопрос "зачем" совсем не был затронут. Может быть, я как-нибудь соберусь и напишу на эту тему статью. Это - отдельный и очень интересный вопрос.
16. gaglo 19.02.19 19:21 Сейчас в теме
(15) Тогда, возможно, подумайте, не написать ли и про "почему".
Зачем - это зачем читателям.
Почему - это почему автор.
Ну не обязательно; а так до свидания.
(Если ждать не долго ;-])
17. mkalimulin 1148 19.02.19 20:54 Сейчас в теме
(16) Не понял насчет "почему". Почему автор все это пишет?
18. gaglo 20.02.19 12:08 Сейчас в теме
(17) Извиняюсь, много слов проглотил. Имелось в виду "почему автор сам решил пользоваться этим инструментом".
Оставьте свое сообщение