Практическое эссе о сути псевдовалют
§ о том, что и как будет здесь исследоваться и разворачиваться
Итак, в связи с известными событиями на графике обменного курса Биткоина, которые привели к истерии в соответствующих кругах, товарищи поставили передо мной задачу разобраться в сути этого явления. Никто, разумеется, не виноват, если он не получил технического образования, однако, полагаю, добросовестное штудирование польских и немецких источников (не одних только латвийских) не сделает предлагаемый материал бесполезным. Задача состоит в целом в том, чтобы разобрать политэкономическую сущность псевдовалют, подтвердив разбор классическим примером - Биткоином. Из этой политэкономической сущности нужно будет сделать определённые выводы, касающиеся освободительных перспектив разнообразных псевдовалют. О наличии и явной выраженности указанных перспектив говорят, например, некоторые агенты известного польского издания Krytyka Polityczna. Их шумное мнение, несомненно, заслуживает самой внимательной перепроверки и оценки.
Каков выбираемый способ исследования? Элементарной основой для развития и приложения мысли было известное положение из «Капитала», где Маркс указывает на те свойства золота, которые позволили ему стать идеальным представителем трудовых затрат вообще, следовательно, воплощением абстрактной формы стоимости в практике и идеологии. Автор «Капитала» указывает на редкость, высокую делимость, относительную мягкость, химическую устойчивость. Как в подобном же смысле исследовать псевдовалюты? Их свойства вообще недоступны для непосредственного созерцания. Те формы логики, которые воплощены в псевдовалютах как независимые от конкретных информационных машин принципы их объединения (да ещё при полном взаимном недоверии), у Гегеля исследуются на «верхних этажах» «Феноменологии духа» и «Науки Логики». Тем не менее, как сложные общественные идеи, так и принципы работы псевдовалют - это формы практического суждения, если вспоминать способ материалистического изучения подобных логических форм. Любая форма практического суждения образует понятие, которое разворачивается из своей практики. Способ изучения псевдовалют состоит, следовательно, в том, чтобы не боясь чёрной работы и неизведанных трудностей, своими руками воспроизвести все узловые формы деятельности, образующие в целом логическую систему псевдовалюты. Намечается вовсе не политэкономическое исследование с известными абстракциями, происхождение которых не исследуется. Намечается также вовсе не техническое исследование с целью получить очередную базу данных очередной псевдовалюты. Намечается оценка выработанных в системах псевдовалют практических форм с сточки зрения современного освободительного процесса. Как писал Гёте о Лессинге, задача состоит тут в том, чтобы ничего не взять на веру, чтобы, самому достигнув достаточных успехов в этой сфере, беспощадно убрать ложные мнения, поставив на их места истину без всякого укрытия. Это значит, что все эти практические формы должны быть по существу верно получены и опробованы, воспроизведены как форма чувственно-практической деятельности. Где же человеку, почти ничего не понимающему в программировании кроме характера этой сферы деятельности, узнать эти принципы?
Без особой пользы были просмотрены несколько популярных украинских и российских статей, а также две белорусских. Увы, без немецких описаний и польских популярных статей с намёками на направление углубления знания, они оставляли только вопросы. Поскольку Биткоин реализуется довольно сложной программой, то естественно, что нужны будут некоторые стендовые проверки. Здесь появляется значительная авторская трудность. Без умения работать с языками программирования пришлось ограничиться терминалом операционной системы. Поэтому сразу приношу извинения программистам. Исходный код программы, реализующей Биткоин, то есть его база данных, находится в публичном доступе. Однако попытки разобраться в нём привели к обнаружению большого количества английской лексики, что делает этот исходный код бесполезным в познавательном плане для трёх четвертей населения континентальной Европы, исключая франкофонов. Поэтому пришлось ограничиться доступными немецкими описаниями.
§ о том, какие соотношения необходимы для реализации псевдовалюты на примере Биткоина
Биткоин основан на трёх операциях, которые должны быть полностью необратимыми, чтобы все его отношения могли реализоваться. Обратимостью в данном случае называется такое свойство, когда некий результат вычислений получается из исходных данных довольно быстро, а по результату вычислений достоверно подобрать исходные данные невозможно иначе как пробами всех возможных комбинаций. Вот какие операции с такими свойствами и положены основу работы Биткоина.
1. Операция проверки выполнения затрат. Это основа операции введения элементов биткоина в действие. Подобно этому золото перед введением в денежный оборот должно получить подтверждение своей физико-химической сущности, чтобы войти в денежный оборот.
Операция проверки затрат предполагает, что в базу данных Биткоина поставляется некое число или массив байт, которое после заданного преобразования обладает известными свойствами. То есть некоторая функция позволяет в этих свойствах легко убедиться. Здесь лежит основательное отличие от золота, для которого экспертиза смесей весьма дорога, а соблазн изменить концентрацию весьма велик.
Проверка в псевдовалютах относительно проста, но результат всё так же не открывает основы прямо или косвенно. Разумеется, можно составить словарь результатов так, что для данного результата основа должна быть известной, но по желаемому результату должно быть невозможно определить возможную основу. Иными словами, в поиске ещё не достигнутого результата нужно перебирать все возможные основы. Это и составляет суть т. н. добычи виртуальной валюты. С точки зрения добытчика или майнера (нем. Mina - рудник, отсюда же польское mina) данный процесс напоминает разработку золотого полигона. Свойства результата известны и легко проверяемы тогда как результативные входные массивы неизвестны и более чем случайно распределены - они непредсказуемы.
2. Операция сокращения или «подведения итога» под произвольным объёмом данных. Иными словами, операция, позволяющая иметь не просто замену, а замену, представляющую оригинал до малейших деталей, но, вместе с тем, не раскрывающую об оригинале ничего, кроме его наличия. Это так называемая функция сокращения, перемешивающая функция или хеш[1]-функция. Результат здесь должен изменяться от любого изменения в исходных данных. Также для результата должно быть невозможно определить входные данные.
3. Операция создания электронной подписи. По некоторым публикуемым (публичным) числам должно быть легко проверить, что результат мог быть получен только тем, кто знает тайные числа. Но также по публичным числам должно быть невозможно определить тайные числа, позволяющие совершить подпись.
§ о том, с какой функцией сокращения пришлось разбираться и о том, как машина хранит простые латинские и диакритические буквы, встречающиеся в испытательных текстах
Из всех этих популярных описаний выходило, что в первую очередь разбираться надо с функциями сокращения (хеш). Конкретно упомянуто, что в Биткоине используется функция sha256. Почти все дистрибутивы линукса имеют в составе программу sha256sum. С её помощью приступим к испытаниям.
На вход этой функции может поступать любой массив, выход же всегда имеет известную длину и непредсказуемо меняется при любом изменении исходного массива. Перед тем, как нечто испытывать, нужно решить что именно поступит на вход. Выбирать можно из всего, хеш может употреблять любые данные любой технически достижимой длины. Обычно машинные данные сводятся к таким формам как число, текст, звук, изображение (видео). Число будет слишком абстрактно. Изображения и звуки обычно велики, чтобы их можно было написать в кодовом (математическом) виде. Остаётся использовать для демонстрации тексты, которые относительно невелики, чтобы их написать, но различаются и явно несут разный смысл. Так как информационная машина сама по себе не знает принципов работы с текстом и всегда переводит тексты в набор чисел, то оказалось, что подвигаться далее без знакомства с преобразованием текста в числа нельзя. Иначе мой результат нельзя будет проверить другим людям.
Сначала определим кодировку для текстов. В терминале операционной системы следует написать
echo "$LANG"
Мой ответ: pl_PL.UTF-8
После точки указано UTF-8. Это популярная кодировка (одна из наиболее популярных в мире, самая распространённая в Европе), позволяющая иметь рядом символы классической латыни, любые диакритики европейских языков или эсперанто, кириллицу, греческие буквы и пр. Ранее соседство символов разных алфавитов было невозможно, и документ на польском языке для прочтения требовал от немцев при прочтении настройки всей операционной системы на польский язык. Это же относилось к белорусским и латышским текстам, которые были несовместимы между собой по сути так, что цитировать в латышском документе белорусские источники было невозможно как и наоборот. Теперь циркулирующие документы рассылок, писем, переписки через терминал и пр. имеют по умолчанию именно UTF-8 вид. Это относится ко всей известной мне международной переписке за исключением Китая, где символы зачастую представляют в своей кодировке даже несмотря на то, что они все есть в составе Уникода, который реализуется через UTF-8. Изредка моим немецким товарищам попадаются также документы UTF-16, однако в данном случае этот способ хранения символов не интересен.
Программа hexdump позволяет увидеть шестнадцатиричное представление любых данных, направленных ей на вход. Для программистов этот вид может что-то сказать, но для меня это просто набор условных чисел. Шестнадцатиричный вид важен здесь потому, что он используется как универсальная форма числового представления, приближенная к работе информационных машин так, что даже их элементарные процессорные команды программисты нередко пишут и знают в подобном виде.
Пишу
echo "Latvijas Padomju Sociālistiskā Republika" | hexdump
Мой ответ
0000000 614c 7674 6a69 7361 5020 6461 6d6f 756a
0000010 5320 636f c469 6c81 7369 6974 6b73 81c4
0000020 5220 7065 6275 696c 616b 000a
Первый столбец это всего лишь адрес, а остальные 8 столбцов состоят из четырёх шестнадцатеричных цифр как-то связанных с текстовым сообщением. Что написано в столбце адреса? Это шестнадцатиричные числа, то есть 0 байт, 16 байт, 32 байта. Всего показано 48-4(осколок в нижней строке) = 44 байта.
Пробую выяснить как показанные числа связаны с текстом на входе.
Пишу
echo "L" | hexdump
Мой ответ
0000000 0a4c
По таблице Уникода ( https://unicode-table.com/pl/ ) можно выяснить код любого символа. «4c16» это «L». Что такое «0a16»? Это перевод строки, который добавляется автоматически к любому сообщению. Чтобы прожить без него нужно писать
echo -n "L" | hexdump
Мой ответ
0000000 004c
Пытаюсь продвинуться дальше.
echo -n "La" | hexdump
Мой ответ
0000000 614c
«6116» это маленькая латинская «a».
Попробую дальше.
Пишу.
echo -n "Latv" | hexdump
Мой ответ:
0000000 614c 7674
«7616» это «v» «7416» это «t».
Принцип почти понятен - читать надо с конца столбца два числа, потом начальные два числа, потом с конца следующего столбца.
Латвийская «ā» при этом превращается в «81c416», хотя её код 010116. Как связаны эти числа? По диапазону 81c416 превосходит 17610 или 80 в шестнадацатиричном виде. По принципу, находимому в польской википедии, превращаем уникодовский код в двоичный вид (каждая шестнадцатиричная цифра соответствует навсегда установленной комбинации четырёх двоичных цифр или бит)
Для дураков вроде меня существует программа-вычислитель bc, которая может показать двоичный вид чисел.
echo "obase=2; ibase=16; C481" | bc;
Устанавливаю двоичный выход, шестнадцатеричный вход и пишу число, потом передаю команду вычислителю.
Мой ответ:
1100010010000001
По аналогии
echo "obase=2; ibase=16; 0101" | bc;
Мой ответ
100000001
С дополнением до байтов
1000000010000000
Теперь UTF-8 шаблон из википедии применим к Уникодовскому коду
Википедия: 0x80 do 0x7FF - bity 110xxxxx 10xxxxxx
1000 0000 1000 00002
110x xxxx 10xx xxxx2
1100 0100 1000 00012
Всё ясно! «X» были заменены реальными числами кода, у которого в конце было много нулей. Код идёт от конца (слева направо), где видна 1, семь нулей, снова 1 и два нуля. Разобраться в этом было непросто.
Повторяю. Пишу
echo -n "ā" | hexdump
Мой ответ:
0000000 81c4
Следовательно, в первоначальной таблице эта буква встречающаяся 2 раза видна так:
c469 6c81 7369 6974 6b73 81c4,
что должно соответствовать фрагменту «iālistiskā».
К счастью, читать в таком виде приходится не часто даже программистам. Перехожу к функции сокращения (хешу).
§ о том, как запускалась функция сокращения на пробных текстах исследованного способа кодирования и как она показывает все свои свойства
Пишу
echo -n "Latvijas Padomju Sociālistiskā Republika" | sha256sum
Мой ответ:
8a251e8f4bb8ce0fae29e6470dcbde76ef76705c1798b2271273bc40269a2e26 -
Сзади прилепился какой-то дефис и пробел. Можно показывать результат без добавлений, то есть «до первого пробела». Для этого есть программа сut, где нужно указать, какую часть оставить и что считать разделителем. У этой программы -f это параметр поля (нем. Feld), -d это разделитель (фр. délimiteur)
Пишу:
echo -n "Latvijas Padomju Sociālistiskā Republika" | sha256sum | cut -f 1 -d " "
Мой ответ:
8a251e8f4bb8ce0fae29e6470dcbde76ef76705c1798b2271273bc40269a2e26
Из этого ответа следует, что сокращения (хеши) показывают в шестнадцатиричном виде и hexdump, показывающий его не нужен. Действительно, результат работы хешевой функции - это всего лишь некоторое число, которое нет смысла писать иначе, ибо оно не имеет иного смыла - скажем, оно не кодирует ни текст, ни звук.
Изменим сообщение по сути и по длине.
Пишу:
echo -n "Polska Rzeczpospolita Ludowa" | sha256sum | cut -f 1 -d " "
Мой ответ:
ff7bf8cf6ba28400f25fc359266e58c73f65ecb741039d24399a28dc06fe3ae7
Ещё проба:
echo -n "Deutsche Demokratische Republik" | sha256sum | cut -f 1 -d " "
Мой ответ:
a9d4d9d1f29302a852beb37936c8ae9e80de39a2906c4824be3737fac42aacee
Везде ответ получается известной длины, но его внутренности расходятся очень сильно.
Попробую поменять один из символов на символ с соседним кодом (a и b имеют соседние коды, различающиеся ровно на единицу, в итоге на один бит: для echo -n "a" | hexdump код 6116, а для echo -n "b" | hexdump код 6216).
Изначально:
echo -n "Latvijas Padomju Sociālistiskā Republika" | sha256sum | cut -f 1 -d " "
Мой ответ:
8a251e8f4bb8ce0fae29e6470dcbde76ef76705c1798b2271273bc40269a2e26
Подмена:
echo -n "Latvijas Padomju Sociālistiskā Republikb" | sha256sum | cut -f 1 -d " "
Мой ответ
e74cb71c37d7fdc984293d7f29d0d805929e859542fa67aab63bc976e64d8f91
Некоторые выводы.
Для разных сообщений получаются разные сокращения. При незначительном изменении они меняются значительно. Хотя сокращение основано на исходном массиве, оно само по себе его не может раскрыть, ибо по этому признаку сократительные (хешевые) алгоритмы подбирают математики. То есть, имея сокращение, невозможно догадаться, что было на входе, если только не иметь заранее такое же входное значение и не знать, что это его сокращение. Если есть некоторое желаемое сокращение, то подобрать под него исходное сообщение можно только подбором всех вариантов.
§ о том, почему результат функции сокращения - это идеальный представитель исходного массива
Называя сокращение или хеш идеальным представителем сообщения, меньше всего хочется утверждать, что это представительство заключается в одной только замене или в изоморфизме результата и исходного массива. Изоморфизм, как правило, вообще не реализует феноменов идеального, если речь не идёт о фетишизме.
Очень интересный с точки зрения содержательной логики классический пример, находимый как в немецких, так и в отечественных популярных очерках, описывает пример того, как кража базы данных, используемой для проверки паролей, не приводит ни к какому их раскрытию. Этот же пример касается вопроса о том, как проверить пароль, не зная его.
Итак, предположим, что нужно придумать пароль для некоторой службы.
Пишу свой замысел. В переменную pw (Paßwort) помещаю текст:
pw="Hasło";
Служба присылает от себя:
dodatek="abracadabra";
Эти два фрагмента соединяются:
echo -n "$pv$dodatek" | sha256sum | cut -f 1 -d " "
Мой ответ:
045babdcd2118960e8c8b8e0ecf65b734686e1b18f58710c9646779f49e942ae
Тот, кто желает выявить пароль, может иметь словарь, в котором будет хеш от "abracadabra" и хеш от "Hasło", что вовсе не поможет.
Разумеется, можно составить словарь хешей, которые заканчиваются на "abracadabra". Однако служба, пароль которой нужно было придумывать, могла составить "abracadabra" из двух частей. Например, добавление для всех начинается с "abra", но только для меня завершается "cadabra", а для другого случая может завершаться любыми другими элементами текста, например, "PliniusMaior".
Как происходит проверка пароля?
Служба получает хеш суммарного сообщения с участием пароля и считает его заменителем. То есть хранится
1. Кто я - название личной записи
2. Какая фраза мне назначена "cadabra"
3. Какая фраза назначена всем "abra"
4. Что у меня получилось в результате sha256 от моего пароля, продолжаемого фразой для всех и фразой для меня - 045babdcd2118960e8c8b8e0ecf65b734686e1b18f58710c9646779f49e942ae
При проверке пароля служба высылает мою добавочную фразу "abracadabra" и ждёт, что я вышлю хеш своего пароля с добавлением этой фразы. Если будет иметь место несовпадение, очевидно, что я не знаю пароля, который придумал. При этом сам пароль для службы, которая убеждается что я это я (daß Ich bin Ich, как написал бы Фихте) не известен, он не покидает место вычисления сокращения, которое расположено на моей машине. Однако никакой общий словарь не будет полезен, потому что фраза "abra" в середине может быть где угодно. Но даже создавая большой словарь с завершением на "abracadabra", нельзя сказать, что он будет полезен для раскрытия какого-либо иного пароля, а не только моего. Кроме того, получая сокращение от сокращения (хеш от хеша) можно вдвое усложнить работу составителю словаря, не сильно усложняя работу себе. Подводя итог этого яркого случая идеального представительства пароля без его известности, мой консультант сказал, что «Если некто сильно не нравится, то проще найти этого человека и спустить ему на голову кирпич, чем подбирать его пароли с составлением словарей сокращений (Streuwertfunktionproduktions[2])». Подбор нужного сокращения-хеша, следовательно, трудная задача, когда целиком неизвестен исходный массив.
Чешские и немецкие товарищи рассказали о практическом применении функции сокращения (хеширования). Например, можно подтверждать фотографии, не занимаясь хранением фототеки. Чешские анархисты делают это так. Некто, кто хочет узнавания, проносит свою фотографию к товарищу, имеющему авторитет. Тот смотрит на фотографию, снимает с неё сокращение-хеш и создаёт свою числовую подпись под сообщением «Хеш *** имеет фотография, где изображена Златка». После этого сама фотография не нужна вовсе тому, кто высказал о ней авторитетное суждение. Приехав туда, где автора суждения уважают и где могут проверить его числовую подпись, Златка может предъявить свою фотографию, с которой тоже снимут сокращение и сверят его с тем сокращением, которое указано в сообщении. При совпадении очевидна авторитетность суждения. Сама фотография помимо взгляда и создания сокращения никак не участвует, её хранение может быть поручено самой Златке[3].
§ о том, как сокращение-хеш, являющееся идеальным представителем исходного массива, используется в выпуске новых биткоинов
В Биткоине функция sha256 используется для подтверждения усилий, образует основу местного эквивалента стоимости. Считается, что на выпуск Биткона имеет право тот, кто обнаружит исходные значения для хеша sha256 с особыми свойствами. Именно в случае Биткоина особые хеш-значения должны начинаться с нулей.
В других псевдовалютах используются другие принципы подтверждения усилий, роль золота, следовательно, имеет иную математическую форму, исключая, однако, везде находимую трудность решения задачи и относительную простоту подтверждения должных качеств решения.
Предъявляя иным участникам сети исходный массив, сокращение которого начинается с нулей, некий участник выпуска биткоинов получает признание своих прав на выпущенные значения сокращений или на выпущенные исходные массивы. Потому в рассылке любой псевдовалюты публично рассылаются лишь исходные данные, а критерии их пригодности легко вычисляются каждым проверяющим так, что получаются выводы о пригодности или непригодности заявленного исходного массива к подтверждению затрат.
Попробую собрать демонстрационный пример, чтобы понять механизм выпуска. Кроме программы-хеша нужен файл с хаотическим содержимым, которое никак не осмыслено. Хаотическое или псевдослучайное значение это тоже сложная математическая модель, как и функция смеси (хеш-функция).
После поисков оказалось, что у меня хаотические значения содержит файл /dev/urandom (это стандартное название, наверняка есть на всех универсальных информационных машинах). Из этого файла нужно изъять некоторое число байт. Для этого используем стандартную программу head. В параметре -c нужно указать число байт.
Пишу:
То есть файл хаотических данных разворачивается в программу head, а результат идёт на вход hexdump и показывается в шестнадцатиричном виде, ибо это такая же «abracadabra», как сокращение-хеш. То есть это нечто не имеющее иного (не числового) смысла - это не текст, не изображение и т. д.
Мой ответ:
0000000 d2de 4139 c186 fe40
Если читатель решит повторить этот опыт, его результат должен быть другим.
Цикл добычи в общем заключается в том, чтобы получить хаотические данные, отложить их, провести сокращение (хеш), проверить его. Если результат подходит под известные свойства, то исходный массив подлежит предъявлению как факт выполнения работы.
Хаотические данные нельзя просто сохранить в переменной, потому что в них может содержаться символ конца текста, за которым переменная не сохраняется. Поэтому сохранить хаотические данные можно только сделав их текстовыми, например, сохранив в почтовой текстовой кодировке base64 с помощью одноимённой программы.
Итак, сохраним хаос:
chaos=$(
Посмотрим что там:
echo "$chaos"
Мой ответ:
BkyA9FdKgbc=
Но это вид base64. Для расшифровки обратно используется «base64 -d». Итого, хаосу в данном случае соответствует подлинный шестнадцатиричный вид:
echo "$chaos" | base64 -d | hexdump
Мой ответ (у читателя будет другой):
0000000 4c06 f480 4a57 b781
Теперь вместо показа сделаем сокращение-хеш:
echo "$chaos" | base64 -d | sha256sum | cut -f 1 -d " "
Мой ответ:
da0684695b33f211e1aa19afe87508aad6e95f9e06a0c094782f609775befec1
Вывод. Для поиска нужного исходного массива нужно повторять цикл
chaos=$(
Повтор идёт до обнаружения результата (сокращения, хеша) с нужными свойствами.
Например, первыми символами должны быть нули для Биткоина. По некоторым данным, в 2017 году нужно было найти массив, где 67 первых бит результата sha256 нулевые. Это требует первых 16 шестнадцатиричных нулевых цифр, а 17 цифру либо 00012 (116) либо 00002 (016). Подбор таких значений более чем непрост. Каждый следующий двоичный ноль требует в 2 раза больше проб.
После нескольких десятков поисков для входного массива из 8 байт (или 16 шестнадцатиричных чисел) удалось получить хеш, начинающийся с нуля. Для поиска двух первых шестнадцатеричных нулей нужно приложить усилий в квадрате. Если мне удалось найти одну нулевую начальную цифру за 27 раз, то две найдутся за 27*27 = 729 проб, а три за 19683 проб. Мои числа не очень достоверны, средняя успешность должна быть другой (может, совсем другой - моя цель не выпуск биткоинов, а понимание логики этого процесса), но принцип должен быть понятен. Подбор 16 цифр в моём примере требует (пишу вычисление 2716)
echo "27^16" | bc;
Мой ответ:
79766443076872509863361
Столько раз нужно было бы мне попробовать разные массивы. Это крайне затратный и сложный процесс.
Не нужно, однако, думать, что результат равен 1 биткоину, пропорция зачисления определяется совершенно независимым от сути работы sha256 образом, хотя и необходимо (но не достаточно) основана на её результате. Вернёмся к примеру добычи.
Команда
chaos=$(
Показала мне:
04ed48086746f580808a3e4cbb4b56cc2744466850a171a85c9cd0ca8a7305b6
Тогда нужно просмотреть исходный массив
echo "$chaos" | base64 -d | hexdump
В этом хаотическом массиве у меня были такие числа
0000000 84da 4429 4386 6d13
Напомню, первый столбец это адрес, а содержимое чисел это следующие столбцы.
По аналогии с этим примером, для Биткоина нужно предъявить всем прочим участникам исходный массив. Проверив, что установленный результат (выход sha256) действительно начинается с нуля, они начислят сообразно установленным правилам некоторую величину. Это и есть выпуск нового Биткоина. Вновь появляющийся хеш-результат вместе с исходным массивом должен быть подписан функцией числовой подписи, чтобы было понятно к кому он зачисляется. Очевидно, что для проверки нужно хранить именно исходный массив, а его хеш-результат (не он сам) подвергается числовой подписи лишь в силу принципа числовой подписи, который будет исследован позже.
Реальные условия Биткоина не столь просты, как в моём опыте. Повторимся, нулей должно быть несколько. Простые хаотические массивы из 8 байт (это число я взял по симпатии), разумеется, все уже были перепробованы без меня. Биткоин достаётся первому заявителю, и потому с момента проникновения исходного массива в большинство копий БД Биткоин обнаружение известного массива более не предоставляет никаких прав на Биткоин - массив и его хеш опубликованы и становятся общим достоянием, удостоверяющим права автора на Биткоин через признаваемую всеми вычислительную затрату - аналог трудовой затраты в денежном выражении стоимости.
Подсчёт числа биткоинов за найденные хеши регулируется сложным принципом - в самом начале существования биткионов каждый хеш оценивался высоко, затем, по мере увеличения числа известных хешей, оценка падает. Во всяких популярных работах указано, что вознаграждение за хеш является убывающим числовым рядом, предельной суммой которого является 21 000 000 (21*106) биткоинов. Как точно найденный хеш соотносится с числом биткоинов сказать сложно. Если учесть упоминание предела делимости в 10-8 биткоинов, то можно подумать, что так оценивался некогда единственный хеш. Соответственно, общее количество начинающихся на нули хешей должно быть как-то связано с числом 21*106*108 или 21*1014=2,1*1015, то есть тысячью миллионов миллионов. Однако позднее найденные хеши оцениваются ниже. Кроме того, к названному предельному числу хешей можно подойти с той стороны, что нормативная длина хеша известна. Для sha256 она равна (разделим число шестнадцатеричных чисел на два, чтобы узнать размер в байтах[4]) 32 байтам. Если некоторые первые числа приравнять к нулям, то можно узнать число возможных комбинаций оставшихся. Формула здесь довольно проста. Каждая шестнадцатиричная цифра - это 16 комбинаций, а две цифры имеют 16*16 комбинаций, тогда как 3 цифры 16*16*16 комбинаций. Всего хеш sha256 имеет 1664(цифр) комбинаций. Это примерно 1077.
Для 16 или 17 первых нулевых шестнадцатиричных цифр возможны (пишу):
echo "16^(64-17)" | bc;
Мой ответ:
392318858461667547739736838950479151006397215279002157056
Это почти 4*1057, что много больше, чем число всех возможных отдельных единиц подтверждения затрат для биткоинов (2,1*1015). Диспропорция велика и неравноправность оценки разных однотипных результатов тоже велика. Соответствие находок с должным критерием и присвоение доказательных единиц биткоинов реализуется специальной частью программы, которая нуждается в отдельном обсуждении, ибо по смыслу она не сводится ни к функции сокращения (хеша), ни к иному математическому агрегату.
Принципы диспропрциональности вознаграждения, реализованные в Биткоине, оставляются здесь без внимания как в силу трудностей с математикой, так и, главным образом, в силу того, что они как таковые не являются необходимой частью псевдовалютной автоматизированной системы общественных отношений.
§ с некоторыми выводами из обнаруженных свойств - из формы подтверждения затрат, из неравноценной награды за единицы такого подтверждения и из иных
Биткоин имеет стоимость, выражающую затраты человеческого труда на создание средств поиска результативных комбинаций.
Биткион подтверждает факт затрат собственником средств добычи некоторого труда. Однако этот труд обладает двумя важными свойствами:
1. Он не обладает потребительной стоимостью в отдельности. И даже в составе псевдовалютной системы в целом, потребительная стоимость отдельного элемента подтверждения затрат сильно преувеличена. Начинающиеся с нулей результаты смешивающего сокращения sha256 не несут на себе никакого иного применения, кроме применения в БД Биткоин.
2. Объективность подтверждения затраченного труда зависит от невозможности по желаемому результату функции sha256 найти исходный массив.
В интернете распространена ссылка на материал, по адресу https://link.springer.com/content/pdf/10.1007%2F978-3-642-38348-9_16.pdf[5]. Там находится английский текст, где, как утверждает немецкое описание, показана возможность узнать разные входные массивы с одинаковым хешем-сокращением. Это ещё не разрушает всю работу sha256, но позволяет её нарушать. Как это влияет на объективность подтверждения затрат? Чтобы ответить на этот вопрос, нужно отметить, что реализация сокращающей хеш-функции является попыткой технического разрешения противоречия антиномические стороны которого выглядят так
1. Результат должен в выходном значении известной длины представлять любой массив входных значений любой длины.
2. Результат заданной длины имеет только 256(число байт) комбинаций, тогда как число комбинаций входных массивов бесконечно велико, ибо они могут быть любой комбинацией любой длины.
Очевидно, что каждому итоговому значению-хешу соответствует бесконечное множество входных массивов. Если брать длину входных массивов от минимальной до некоторой, то число таких соответствий оказывается конечным. Тем не менее, установление взаимосвязей массивов с одинаковыми сокращениями-хешами должно быть максимально затруднено. Также должно быть затруднено раскрытие по результату хоть одного из многих массивов, приводящих именно к данному желаемому результату.
Если же косвенным способом можно подобрать хоть один массив по желаемому результату, то вычисление по подбору массива под результат теряет значение общественно необходимого труда, ибо можно будет выбрать желаемый результат и только на его основе некоторым процессом найти хоть один из массивов, приводящий именно к этому результату. Старое дорогое производство вытесняется подобно тому, как производство свечей почти целиком вытеснено электрической промышленностью, дающей тот же самый результат дешевле и за меньшее общественное время. Таким образом, превращение функции sha256 в предсказуемую в обе стороны автоматически девальвирует все счета Биткоина. В этом случае предполагается, что лишь результаты-хеши, найденные до открытия обратимости sha256, выражают большие общественно-необходимые затраты, а поздние затраты могут быть ничтожными. Выпуск новых Биткоинов, следовательно, исключается с момента такого открытия, ибо иначе получится приравнивание неравных затрат труда в масштабах куда больших, чем те, что уже сейчас существуют в Биткоине.
Золото как всеобщий эквивалент имеет потребительную стоимость и «слабую» историческую природу (недавно добавилось электротехническое использование золота, а хирургическое, ювелирное и химическое применения никуда не делись). Биткоин не имеет потребительной стоимости (являясь более проявлением меновой стоимости внутри современной финансовой циркуляции) и математические открытия угрожают ему полной потерей меновой стоимости. Именно такой потерей является ситуация обмена результата сложных подборочных вычислений на результат во много раз более простого предугадывания возможного исходного массива по желаемому результату (с нулями впереди).
Другой важной особенностью Биткоина является неравноценная оценка вычислительных усилий, которая уже существует до открытия обратимости хешей sha256. Поздние и объёмные вычисления оцениваются как менее весомые, чем исходные (относительно простые), осуществлявшиеся при основании БД Биткоин. Это сильно напоминает капиталистический принцип, когда по мере удаления от средств производства оценка трудового эффекта уменьшается. То есть, скажем, стекло вырезанное и фасцированное станком, оценивается не просто выше стекла, вырезанного и фасцированного руками ремесленника, а вдвое, вчетверо выше, несмотря на однородность результата и разницу необходимого времени не в такой, а в меньшей пропорции.
Кроме того, при выпуске БД Биткоина, основатель этой системы зарезервировал за собой некоторый массив вычисленных хешей, эквивалентных сейчас довольно большой денежной массе, несмотря на то, что вычислительные усилия человека, известного как Сатоши Накамото явно были не очень значительны относительно усилий современных организаций, выпускающих новые биткоины. Таким образом, для неизвестного основателя БД Биткоин вся эта база данных является всего лишь способом обогащения. Меновая стоимость биткоина обусловлена лишь факторами его обращения, что является полным аналогом ситуации с долларом США, за которым также (учитывая долг США и американских ТНК) нет почти никаких ресурсных гарантий.
§ об принципе числовой подписи и проверки чисел этой подписи на популярном примере
Попробуем перейти к попыткам разобраться в сущности БД большинства псевдовалют. Это известная технология цепочек хешированных блоков, наложенная на технологию подтверждения действий. В сумме это называется łańcuch blokowy или блокчейн[6]. Каждый блок создаётся распорядителем, который его публикует. Распорядитель рассылает публикацию всем, кто имеет копию соответствующей базы данных (псевдовалюты или иного назначения). Как подтверждаются именно его действия, то, что именно эти действия должны считаться допустимыми и правомерными? Или, как проверяется явное наличие воли распорядителя или собственника к действию?
Моделирование цепочки стоит начать с выработки некоего псевдопаспорта, который будет использоваться как средство доказать свою волю к некоторому действию. Именно псевдопаспортный принцип позволил полностью автоматизировать проверки явного наличия воли к действию.
Для создания псевдопаспорта по популярному алгоритму RSA (одному из примерно двух десятков, но относительно простому для понимания) придётся просто использовать немецкую инструкцию. При испытаниях использовалась программа openssl которая не считается стандартной. Кому-то может понадобиться установить её.
Пишу:
openssl genrsa -des3 -out /tmp/Paß.pem 2048
2048 это битовая длина одного из важных публичных чисел.
После двойного ввода защищающего пароля по /tmp/Paß.pem образуется файл псевдопаспорта с тайными и публичными числами.
Публичные числа можно выделить из псевдопаспорта для распространения. Это делается так:
openssl rsa -in /tmp/Paß.pem -pubout -out /tmp/öffentlich_Paß.pem;
После этого, введя свой придуманный пароль, по адресу /tmp/öffentlich_Paß.pem получаем часть псевдопаспорта, пригодную для проверок. То есть этой частью можно проверить, что нечто было совершено только с помощью знания тайного числа, а само тайное число нельзя узнать из публичных чисел псевдопаспорта, если алгоритм подобран верно.
Создавая псевдопаспорт RSA (ведь команда начиналась с «openssl genrsa»), пытаюсь найти описание этого алгоритма. Он не описан должным образом в польской википедии, но зато есть хорошая украинская статья.
В алгоритме участвуют числа p, q, n, e, d.
Публичными числами являются e и n.
Чтобы посмотреть на эти числа, нужно ввести команду:
openssl rsa -inform pem -text -noout -in /tmp/Paß.pem
После ввода пароля будут даны шестнадцатеричные формы этих чисел.
Судя по соотношениям (сравнивая пример из википедии и реальные числа) в «modulus» узнаётся n,
в «publicExponent» узнаётся e,
за «prime1» и «prime2» скрываются p и q, за «privateExponent» - d.
Что такое «exponent1», «exponent2» и «coefficient», относящиеся к тайным числам, выяснить не удалось. Среди публичных чисел их нет.
Файл публичных чисел содержит вот что:
openssl rsa -pubin -inform PEM -text -noout < /tmp/öffentlich_Paß.pem
Ответ может быть разным.
Это числа n и e.
Имея выводы конкретных чисел, я задумался над вопросом о том, как проверить соотношение, указанное в украинской википедии? Как проверить то, что в выводе чисел под странными именами (вроде publicExponent, prime1, prime2 и др.) я узнал правильные переменные e, n, p, q и иные? Как убедиться на примере, что тут возможна проверка числовой подписи, что указанные принципы вообще подходят к работе в качестве псевдопаспорта?
Здесь начались проблемы, ибо все числа находятся далеко за пределами работы не только ручных подсчётов и арифмометров, но и простых калькуляторов. Кроме того, нужно считать в шестнадцатеричном виде. Следовательно, числа нужно cначала извлечь. Типовая программа galculator не принимает столько шестнадцатеричных разрядов даже в инженерном режиме.
Поиск по польским статьям, описывающим стандартные программы linux, привёл к описанию вычислителя bc, который использовался выше для относительно простых вычислений. Однако ему на вход нужны конкретные числа, а не пригодные для печати красиво оформленные выводы программы openssl.
Присмотримся к выводу от «openssl rsa -inform pem -text -noout -in /tmp/Paß.pem». Здесь колонки с числами отделены слева четырьмя пробелами с новой строки. Попробуем собрать числа в одну строку заменив перевод строки и табуляцию с помощью стандартной программы sed, используя её команду. Суммой получается:
openssl rsa -inform pem -text -noout -in /tmp/Paß.pem | tr 'n' 'X' | sed 's/X //g' | sed 's/X/n/g'
Сначала новая строка заменяется на отсутствующий в тексте «X» (tr 'n' 'X'), затем этот символ с четырьмя[7] пробелами после себя удаляется (sed 's/X //g'), ибо это перевод строки в рамках одного числа. После этого перевод строки восстанавливается там, где сохранился 'X' (sed 's/X/n/g').
Теперь в каждой строке содержится одно из чисел алгоритма.
После этого нужно название числа отделить от его содержимого, заменив первый «:» на по симпатии выбранный символ «|» (sed 's/:/|/'), а затем убрать двоеточия в составе числа (tr -d ':')
Суммарная команда похожа на монструозную хаотическую строку
openssl rsa -inform pem -text -noout -in /tmp/Paß.pem | tr 'n' 'X' | sed 's/X //g' | sed 's/X/n/g' | sed 's/:/|/' | tr -d ':'
Этот результат нужно сохранить в переменную, ибо потом из него будем извлекать числа для проверок.
rsa=$(openssl rsa -inform pem -text -noout -in /tmp/Paß.pem | tr 'n' 'X' | sed 's/X //g' | sed 's/X/n/g' | sed 's/:/|/' | tr -d ':');
n извлечём так
n=$(echo "$rsa" | grep "modulus" | cut -d '|' -f 2 | tr '[:lower:]' '[:upper:]')
Выводя числа, мы отбираем строку, где есть слово modulus, и выбираем второе поле после разделителя. В ходе испытаний вычислителя bc оказалось, что он принимает только заглавные латинские буквы в качестве шестнадцатеричных цифр. Загадочная команда ( tr '[:lower:]' '[:upper:]') превращает малые буквы в заглавные. Она, подобно многим прошлым, взята из перечня текстовых операций, предоставленного чешскими товарищами. В перечне нет ни одного пояснения, почему именно такая команда делает указанное действие.
По аналогии
p=$(echo "$rsa" | grep "prime1" | cut -d '|' -f 2 | tr '[:lower:]' '[:upper:]')
q=$(echo "$rsa" | grep "prime2" | cut -d '|' -f 2 | tr '[:lower:]' '[:upper:]')
Теперь можно проверить некоторые соотношения:
echo "obase=16;ibase=16;$p*$q-$n" | bc
Мой ответ:
0
Для вычислителя bc было установлено что все входные (ibase) и выходные (obase) числа даны как шестнадцатеричные. В разбираемой команде, используя содержимое переменных p, q и n, проверяется соотношение N=p*q.
Также, можно вычислить упоминаемый в википедии эйлериан φ(n)
echo "obase=16;ibase=16;($p-1)*($q-1)" | bc
Для дальнейшего использования сохраним в переменную
phi=$(echo "obase=16;ibase=16;($p-1)*($q-1)" | bc)
e должна быть меньше полученного Эйлериана. Чтобы получить e, нужно сделать две команды - сначала получит обычный вид, а потом сделать число шестнадцатиричным. Почему авторы программы openssl так необычно показывают e неизвестно.
e=$(echo "$rsa" | grep "publicExponent" | cut -d ' ' -f 2)
e=$(echo "obase=16; $e"|bc);
Проверю это соотношение
echo "1<$e<$phi"|bc;
Мой ответ:
1
Что это за ответ? Попробую указать нечто неправильное
echo "1<-20"|bc;
Мой ответ:
0
Значит, выражение неверно.
φ(n) и e должны быть взаимно простыми. Это непросто проверить, потому тут приходится капитулировать. Однако вообще в данном алгоритме проверка на простоту чисел - это главное, а качество создаваемых программами чисел невысоко. Потому оказывается, что главная проверка на взаимную простоту p и q, совершающаяся по аналогии, также выпадает из внимания.
Пробуем разобраться дальше
d=$(echo "$rsa" | grep "privateExponent" | cut -d '|' -f 2 | tr '[:lower:]' '[:upper:]')
Это число было получено для проверки того соотношения, что произведение e*d даёт при делении на эйлериан остаток = 1.
Суммарное выражение таково
echo "obase=16;ibase=16;($d*$e)-$phi*($d*$e/$phi)" | bc
Мой ответ:
1
В выражении из d*e отнималось φ(n), умноженное на целое число - частное (d*e)/φ(n).
По википедии это соотношение должно быть равно 1, что наблюдается.
Остальные соотношения читатель может проверить самостоятельно, ибо принцип дан, а сноровки не хватает. Настойчивому читателю можно дополнительно посоветовать сайт https://pkijs.org/, где разбор всех упомянутых чисел и их соотношений явно можно как-то провести используя веб-функции.
От вынужденной капитуляции приходится переходить к демонстрации практического механизма электронной подписи, который используется далеко не только в Биткоине или удостоверении фотографий из чешского примера.
§ с примером использования числовой подписи, совпадающим с принципом определения принадлежности в системах пседовалют
Итак, используя созданный псевдопаспорт, продолжим.
Запишем сообщение в файл:
echo -n "Latvijas Padomju Sociālistiskā Republika" > /tmp/lt.txt
Подпишем это сообщение (нужны тайные числа):
openssl dgst -sha256 -sign /tmp/Paß.pem -out /tmp/lt.sha256 /tmp/lt.txt
Введя свой пароль, получим файл, в котором сокращение (хеш) подвергнуто некоему преобразованию так, что всем должно быть видно, что при создании были известны тайные числа. Но проверяется это без всяких тайных чисел по публичным числам. Моя подпись получилась размером 256 байт (2048 бит). Это размер числа n из псевдопаспорта, тогда как сообщение имеет в составе только 42 байта, а его хешированный результат лишь 32 байта.
Проверка подписи делается так:
openssl dgst -sha256 -verify /tmp/öffentlich_Paß.pem -signature /tmp/lt.sha256 /tmp/lt.txt
Для проверки подписи нужна сама подпись, файл сообщения и публичные числа псевдопаспорта - всё это в должном порядке перечислено в команде.
Ответ программы был «Verified OK». При попытке любого изменения подписи, файла сообщения или публичной части псевдопаспорта получается сообщение «Verification Failure», что означает провал проверки. От иностранных и не полностью понятных надписей можно отвлечься. Результат можно сохранить сразу после команды проверки подписи
stan_podpisu=$?;
Тогда при успешной проверке в переменной stan_podpisu будет 0, а при провале 1 или другое число больше нуля.
§ об определении принадлежности вновь введённых биткоинов
Рассмотренный пример это пока что просто система подписания сообщений, которая используется, например, в научных публикациях. К тексту добавляется электронная подпись и публичная часть псевдопаспорта. Если некто претендует на авторство, он должен показать возможность создания электронной подписи, проверяемой теми же публичными числами к любому заданному проверяющими сообщению. Тогда, если его публичные числа из псевдопаспорта подтвердят это сообщение, то он считается автором. Возможен также и простой нотариат, то есть перенос доверия в отношении связи псевдопаспорта и личности на нотариуса. Именно нотариат в отношении обладания тайными числами является основной правовой процедурой в польском законодательстве о числовом подписывании.
Принадлежность биткоинов определяется технически подобным же образом, через проверку публичными числами правомерности указаний, созданных с помощью тайных чисел. Каждый участник операций должен иметь псевдопаспорт. Его можно использовать как для нескольких операций, так и создавать новый псевдопаспорт для каждой следующей операции. Судя по всему, публичные числа псевдопаспортов всех участников циркуляции биткоинов размещены в БД Биткоина. У некоторых псевдовалют публичные числа размещены за пределами базы данных.
БД Биткоина довольно велика. Потому её нет в моём распоряжении, да и способ разбора этой БД мне неизвестен. Вероятно, он требует навыков специального программирования и больших умений, чем чтения перечня типовых текстовых операций, которым подвергались числа разобранного выше алгоритма.
Вернёмся к полученному массиву, который дал сокращений по функции sha256 с первым «0»:
echo "$chaos" | base64 -d | hexdump
В этом хаотическом массиве у меня были такие числа
0000000 84da 4429 4386 6d13
Этот массив нужно оформить в файл-сообщение и подписать с помощью тайных чисел псевдопаспорта
echo "$chaos" | base64 -d > /tmp/praca; openssl dgst -sha256 -sign /tmp/Paß.pem -out /tmp/praca.sha256 /tmp/praca;
После этих двух команд, разделённых «;» за тем, кто знает тайные числа, подтверждено авторство на данный входной массив нужного хеша. То, что этот массив приводит к нужному хешу, проверяется каждым самостоятельно, и только после этого появляется очередная копия подтверждения принадлежности этого входного массива его автору.
Переопределение владельца псевдовалюты определяется сообщением, которое делает признанный владелец с указанием получателя. Указать получателя можно по публичным числам его псевдопаспорта или по сокращённому хешу псевдопаспорта - в разных псевдовалютах принцип разный. Если указанию не соответствует никакой реальный псевдопаспорт, то никому не известны и тайные числа к неизвестному псевдопаспорту. Так элемент псевдовалюты оказывается уничтоженным. Утрата тайных чисел существующего псевдопаспорта также уничтожает элементы псевдовалюты, ибо указание на его переназначение любому иному участнику обмена невозможно сформировать без тайных чисел. Это противопоставляет пседовалютную систему нефальсифицируемому протоколу, где уничтожение тайных чисел псевдопаспорта лишь закрепляет потребительную стоимость всей автоматизированной системы, тогда как в псевдовалютах это уничтожение всякой стоимости.
§ о последовательности ввода новых элементов псевдовалюты в оборот
Итого получается примерно такой алгоритм:
1. Публикуется псевдопаспорт.
2. Создаётся доказательный элемент затрат.
3. Доказательный элемент затрат подписывается тайными числами псевдопаспорта.
4. Подписанный доказательный элемент распространяется по всем копиям БД у всех участников псевдовалюты (все псевдовалюты это сети, об этом ниже)
5. Формируется с помощью тайных чисел указание на следующего владельца. Оно также прямо содержит упоминание размера перевода, сопровождающего текста и сокращение от предыдущего блока цепи блоков, следовательно, поэтому, сокращение от всех возможных блоков с первоначального. Такое указание на изменение владельца может быть сформировано только с помощью тайных чисел исходного владельца. Таким образом, числовая подпись каждого следующего установленного владельца зависит от результата хеш-функции всех предыдущих состояний данного элемента подтверждения затрат. Это позволяет видеть все переходы данного элемента подтверждения затрат между разными владельцами в хронологическом порядке. Анонимность вовсе не является безусловным свойством БД Биткоин, скорее наоборот. Все указания не только публичны, но также возможно определение той копии базы данных, откуда это публичное указание распространилось.
§ замечание о цепях блоков, суть которых оставляется здесь неисследованной
С этим заключением о глубокой и разнородной зависимости будущих сообщений от прошлых в блоковой цепи можно завершить первоначальное упоминание цепочной технологии. Её применение явно намного шире, чем псевдовалюты. В частности, любое следующее изменение всё труднее фальсифицировать, чем прошлое. Например, для фальсификации первого перевода принадлежности доказательной единицы затрат нужно лишь подменить один псевдопаспорт или заставить владельца тайных чисел указать другой приёмник. Когда перевод получен, для фальсификации (подмены) истории нужно знать тайные числа начального владельца и того, кому он переопределил доказательную единицу. Когда доказательная единица сменила нескольких владельцев, её историю можно фальсифицировать только с использованием тайных чисел всех участников, что не под силу даже самым мощным современным ТНК. Технология нарастающих блоков, где последняя числовая подпись зависит от всех предыдущих позволяет также избавиться от возможности ретроспективной фальсификации прошлых сообщений в любой базе данных, а не только псевдовалютной и сетевой. В частности земельные реестры Индии и Украины запланированы именно к такому устройству, потому что там особенно многочисленны подделки ранее выдаваемых земельных удостоверений.
Цепи блоков предполагают только необратимые операции. После того как все БД записали новый адрес распорядителя единицы подтверждения затрат никто иной, кроме знающего тайные числа псевдопаспорта нового распорядителя, не сможет дать указания осуществить дальнейшие операции. Ни отмена ошибочных операций, ни полицейский возврат принципиально невозможны.
§ об отсутствии потребительной стоимости у сокращений в Биткоине и о нефальсифицируемых протоколах в связи с числовым подписанием
Потребительная стоимость, выражаемая работой нефальсифицируемого протокола, не обязана использовать псевдовалютную систему. Тем более работа нефальсифицируемого протокола не обязана предполагать неравномерное (как в Биткоине) вознаграждение за равные по технической сути элементы подтверждения затрат. Необходимые условия нефальсифицируемого протокола не требуют подтверждения затрат именно как необходимого. При отсутствии злонамеренных массовых рассылок (вроде спама) нефальсифициремость является простым следствием массовости - невозможности массового принуждения к фальсификации большинства держателей копий нефальсифицированного протокола, если запись считается действительной при наличии в большинстве копий. Для фатального затруднения попыток фальсификации не менее, чем огромные вычислительные затраты создателей биткоинов, срабатывают более простые средства. Например, уничтожение тайных чисел псевдопаспорта, создающих числовую подпись. Результат оставляется в истории, но его повторимость (в смысле фальсификации замены) принципиально ограничена возможностью превращения публичных чисел в тайные. Против такой возможности работают признанные в сообществе математики.
В случае прямой опоры на массовость и уничтожение тайных чисел, псевдовалютная система отношений вовсе не создаётся. Именно подобный случай без подтверждения затрат, но с массовостью и без потока злонамеренных сообщений подходит для достоверной реализации некоторых функций автоматизированных систем типа Киберсин или ОГАС. Важно также понимать, что в нефальсифицируемом протоколе оставляются совсем не факты внешнего мира, а имеющиеся числовые подписи к текстовым знакам, в отношении которых гарантируется наличие воли на их появление между прошлой и будущей записями блоковой цепи. Как эти знаки относятся к действительности и имеют ли они вообще смысл, это подлежит критической оценке каждый раз. Несомненно лишь то, что не позднее и не ранее именно такие знаки поместил именно такой автор. При этом время отмеряется лишь относительно (после, но до), ибо в условиях полного взаимного недоверия показания часов также считаются фактором фальсификации, а, следовательно, бесполезным добавлением. Автоматические договоры, известные по реализации в БД Этэрум (Etherum), следовательно, могут опираться лишь на факты «до» и «после», связанные с некоторыми результатами поиска предшествующих или последующих записей. Например, с их авторством, направлением передачи единиц подтверждения затрат, количеством их передачи и пр. Всё же, это небольшое множество вполне достоверных внутренних фактов базы данных позволяет очень и очень многое автоматизировать. Автоматические договоры - это наиболее перспективное направление для изучения, оставляемое здесь, впрочем, без внимания.
§ об альтернативных Биткоину псевдовалютах с потребительной стоимостью
Среди альтернатив Биткоина следует отметить Праймкойн или Primecoin. В этой базе данных доказательство затрат при выпуске праймкоина сводится не к поиску сокращений (хешей), а к поиску цепей Кунингама первого и второго видов либо ещё одной последовательности простых чисел. Сами по себе цепи Кунингама имеют некоторое значение в решении третьестепенных хозяйственных задач, что выгодно отличает их от игры цифр в биткоинах. Также очевидно, что цепи Кунингама не потеряют своего значения с открытием новых алгоритмов вычисления, тогда как красивые хеширования биткойна станут бесполезными с открытием двухсторонней предсказуемости функции sha256. Интересно, что для потребителей цепей Кунингама уже открытые цепи не будут ничего стоить - нужно лишь извлечь эти цепи из БД Праймкоин. Кроме того, авторы Праймкоин не помещали в этой БД никаких предварительно найденных им цепей Кунингама, что также отличает их от автора Биткиона.
Другие многочисленные аналоги Биткоина преимущественно отличаются типом хеш-функции и пропорциями вознаграждения. Особое значение имеет среда существования автоматических договоров - БД Этэрум (Etherum) и её ответвления. Однако здесь нужно не только дополнительное изучение, но и замечание, что потребительная стоимость автоматических договоров вполне может здесь не поддерживать, а подавить меновую стоимость элементов самой базы данных. Это связано с тем, что псевдовалютная суть базы данных выступает для автоматического договора как издержка со всеми вытекающими капиталистическими законами. Буржуазия захочет получить автоматические договоры без побочных вычислений лишь на основе фильтрации нежелательных записей, увеличивающих размер базы данных. Эти принципы фильтрации не обязаны связываться лишь с созданием псевдовалютного элемента подтверждения затрат, - они могут иметь любые другие принципы, начиная от административной фильтрации псевдопаспортов авторов сообщений и заканчивая установлением предела числа сообщений за время со стороны любой из копий базы данных, которая желает распространить некий «факт».
§ О Биткоине как сети и базе данных
Биткоин является не просто программой, а сетью и базой данных. Для того, чтобы возникла псевдовалютная система общественных отношений, необходимо, чтобы все участвующие в обмене имели каждый свою максимально синхронную копию всей БД, да так, что никто не может доверять никому иному. Однако предполагается, что контроль над большинством участников сети может привести к тому, что БД псевдовалюты будет рассматривать явно неразумные действия как реальные. Классический пример - подтверждение двух переводов одной и той же единицы подтверждения затрат по разным псевдопаспортам. Очень сложные для проникновения в существо дела математические исследования описывают способ, которым разрешаются различные несогласованности в разных копиях БД Биткоин. Кстати, полной БД Биткоин не является ни одна копия, но только все они вместе и в тенденции. Здесь используется такая же формулировка, которую Энгельс давал описывая влияние экономических факторов на общественную жизнь - в конечном счёте[8]. Изменение принципов действия БД Биткоин таким образом, также возможно только в том случае, если большинство участников согласятся на него, однако до сих пор такие решения принимались группой основных добывающих организаций. Демократизм Биткоина, таким образом, сильно преувеличен. Разнородная награда за равные вычислительные затраты также указывает на создание диспропорций, и это не говоря об отмечаемом всеми анализировавшими БД Биткоин накоплении большинства единиц доказательств затрат в руках небольшого множества владельцев псевдопаспортов. В реальности круг владельцев основных доказательных единиц затрат может быть ещё уже, ибо никто не обязан иметь лишь один псевдопаспорт для всех счетов. О взаимосвязи копий БД Биткоина с центрами накопления капитала красноречиво говорит карта (https://bitnodes.earn.com/), которая оформлена английскими надписями (их не обязательно понимать). По аналогии можно понять, что сейчас БД имеет почти 12 тысяч непрерывно взаимно обновляемых копий, причём большинство этих копий сосредоточено в США, Западной Германии, Англии, Швейцарии, Китае и пр. Из почти 12 тысяч копий лишь 12 копий относятся к Белоруссии, 81 копия к Польше, 111 к Украине, почти 400 к России, 82 к Литве, 15 к Латвии. Таково распределение тех, кого на Украине на своём языке зовут "майняками" (с ударением на "я" - ред)[9]. Содержать полную обновляемую копию БД Биткоин должен всякий, кто желает вводить новые биткоины в оборот, ибо в противном случае можно рассчитывать только на добросовестность того, кто не введёт обнаруженный массив с «правильным» хешем под своим псевдопаспортом. А такая подмена псевдопаспорта уже неоднократно встречалась.
Ряд служебных графиков, которые должны быть понятны программистам, можно найти рядом на https://bitnodes.earn.com/dashboard/ - это отображение ситуации за последние 2 года. Первый график показывает число обновляемых копий БД Биткоин.
Как формируются записи о переводах биткоинов, попадающие затем во все многие тысячи копий БД? Очевидно, что если дать возможность всем желающим формировать записи-кандидаты на включение в тысячи копий БД, то возникает опасность замусоривания этих баз данных, опасность чрезмерно большого потока обновлений между отдельными копиями. Уже в настоящее время для одной копии объём хранения БД Этэрум (Etherum) составляет почти 400 Гб, а для одной копии БД Биткоин около 200 Гб. Это больше полного объёма моего жёсткого диска (160Гб). Для сравнения, фотокопии djvu 55 томов полного собрания сочинений Владимира Ленина на польском языке имеют объём хранения около 1 Гб, а в гипертекстовом виде с использованием UTF-8 и на языке оригинала около 0,07 Гб.
Относительно стоимости владения ассигнациями стоимость владения псевдовалютами не так уж и мала - нужно иметь жёсткий диск (от 50€) и постоянный доступ к интернету, чтобы копия БД была актуальной.
Отсутствие явного вредительского раздувания в БД Биткоин обусловлено тем, что каждая группа сообщений о переводах биткионов к новому владельцу должна сопровождаться тем самым объективным подтверждением затрат, то есть введением новых биткоинов. Это одновременно сильнейшая и слабейшая сторона Биткоина. Публикацию распоряжений по операциям (десятками и сотнями в одном блоке), следовательно, могут осуществлять только те, кто имеет полную копию БД и осуществляет выпуск новых единиц псевдовалюты. Самый слабый и бытовой аналог публикационной затраты - картинка с текстом, который нужно набрать. И всё же в ближайшие годы при увеличении популярности Биткиона копия БД может выйти за пределы демократического хранения. Диск в 1000Гб стоит уже 90€ - значительная сумма как при среднем польском доходе, так и при среднем белорусском или (тем более) украинском. Для Патагонии или Уганды 90€ - вовсе целое состояние.
§ О местной таблице коротких соответствий, лежащей в основе местной копии БД
Каковы принципы построения копий БД Биткоин? Они обязаны предполагать, что как процесс хранения, так и процесс поиска должен быть ориентирован на множественное копирование. Исследования в этом направлении были произведены раньше основания БД Биткоина. Во французской литературе по информатике (informatique) можно встретить такой термин как Table de hachage distribuée - растворённая таблица коротких соответствий. «hachage» здесь точно соответствует российскому хешированию. Латиноамериканская литература подобную же реализацию называет «Tabla de hash distribuida», отечественная - «Rozproszona tablica mieszająca».
Нетрудно догадаться, что основой здесь является обычная таблица хешей (Tablica mieszająca, tablica z haszowaniem). Всё необходимое для понимания уже было разобрано. Приведём только в нужный вид результаты команд вида
echo -n "$tekst" | sha256sum | cut -f 1 -d " "
Основа (wartość) |
Сокращение для поиска (klucz) |
Latvijas Padomju Sociālistiskā Republika |
8a251e8f4bb8ce0fae29e6470dcbde76ef76705c1798b2271273bc40269a2e26 |
Polska Rzeczpospolita Ludowa |
ff7bf8cf6ba28400f25fc359266e58c73f65ecb741039d24399a28dc06fe3ae7 |
Deutsche Demokratische Republik |
a9d4d9d1f29302a852beb37936c8ae9e80de39a2906c4824be3737fac42aacee |
Lietuvos Tarybų Socialistinė Respublika |
d5ad1279d42e56aab75c0cdaeeeac020d35c3eba1b1865374c0a04f397e96784 |
Нетрудно заметить, что результат с очень большой вероятностью не совпадает. Кроме того, результат сортировки ключа не повторяет алфавитной сортировки основ. Именно поэтому функцию называют перемешивающей.
Если читатель не занимается специализированными вычислениями, то он не сможет обнаружить при современных (май 2017) методах одинаковое сокращение для разных основ. Следовательно, при объединении системы «основа-сокращение для поиска» в мировом масштабе возможно выявление дубликатов сокращений для поиска с выводом об одинаковой основе. Такова идея растворённой таблицы коротких соответствий. Отличия от местнохранимой таблицы здесь не столь уж огромны.
§ О принципах расширения таблицы коротких соответствий на множество машин
Немецкая и польская статьи об Kademila показывают все особенности растворения копий таблицы соответствий на неограниченное число хранящих узлов. Для сетевого взаимодействия необходимо реализовать лишь 4 команды. В Kademila 3 команды названы терминами, пришедшими из лексикона одной из американских исследовательских групп, одна международным термином.
Ping - широко распространённая команда проверки доступности, известная в паре с ответом pong. Узел должен согласится на взаимодействие и указать свои особенности. Иначе узел не считается участником обмена.
Store - команда пересыла для поиска, она же команда обобществления.
Некто присылает нам известную пару значений «
Polska Rzeczpospolita Ludowa |
ff7bf8cf6ba28400f25fc359266e58c73f65ecb741039d24399a28dc06fe3ae7 |
» и требует, чтобы далее наличие основы можно было проверять только по сокращению для поиска (ключу). То есть запросить текст (в нашем случае) основы нельзя иначе как прислав «ff7bf8cf6ba28400f25fc359266e58c73f65ecb741039d24399a28dc06fe3ae7».
Find_node - поиск узла
Именно в Kademila каждый узел опознаётся как IP адрес + порт + код. Эти данные подвергаются хешу. Проводя поиск узла, надлежит обратиться к тем известный узлам, чей хеш от тройки «IP адрес + порт + код» ближе всего к требуемому (хеш это числа, вполне подверженные сравнению). Этот узел должен либо указать искомый узел, либо соседа, который знает об искомом.
Find_value - поиск основы по сокращению. Идея этой процедуры обсуждалась. Узел обязан прислать ответ «Polska Rzeczpospolita Ludowa», если получит «ff7bf8cf6ba28400f25fc359266e58c73f65ecb741039d24399a28dc06fe3ae7» и обнаружит такое сокращения для поиска у себя.
Таким образом, на этих четырёх операциях строятся самые разные базы данных - от торрентов до Биткоина. Суть того, что хранится, как называются узлы, какие порты они используют и пр. меняется от разу к разу, ибо принцип растворённой таблицы коротких соответствий нашёл более несколько десятков разных применений в самых разных сферах. Общим во множестве сетей, основанных на таких таблицах и работающих через интернет, является то, что всегда нужно иметь где-то список тех основных узлов, которые наверняка участвуют во взаимодействиях. Случайный опрос случайных адресов может очень долго ничего не давать, ибо число участников надстроенных сетей ничтожно относительно общей численности адресов интернета - можно сравнить даже 20 тысяч копий БД Биткоина (участников сети обмена) с числом всех используемых адресов интернета (около 4290 миллионов). То есть необходимо наличие неких ворот, через которые можно войти в состав растворённых БД. Это самое централизованное место во всех однородных сетях с полным взаимным недоверием.
§ О реализации одного из узлов таблицы коротких соответствий в духе Kademila
Думается, что в терминале операционной системы не так сложно реализовать простейший аналог Kademila из четырёх команд. Программа nc позволяет с первого захода реализовать простые серверы и клиенты. Например, выбрав порт 2222 для обмена, командой «nc -l -p 2222» можно организовать в терминале простой телетайпный сервер. Тогда команда «nc $Adresa 2222» в другом терминале должна организовывать клиент. При получении ответа, всё, что пишется во втором терминале, будет показано в первом и наоборот - работает телетайп, завершаемый по Ctrl+C. Нужно заметить, что вместо $Adresa или внутри этой переменной должен быть адрес машины, выступающей сервером. У меня испытание было на одной и той же машине, поэтому там было «127.0.0.1» - адрес моей единственной машины. Если подобную службу организовать в сети, то адреса могут быть разными.
Впрочем, для организации полноценной серверной службы, «nc» оказалась в моих руках непригодна. Приходится соглашаться только на местную реализацию отдельных команд.
___
Отношение основы и сокращения для поиска обычно реализуется как соотношение названия файла и его содержимого.
Организуем для опытов каталог:
mkdir "Rozproszona tablica mieszająca"; cd "Rozproszona tablica mieszająca";
Затем приготовим текст:
tekst="Latvijas Padomju Sociālistiskā Republika";
Получим сокращение для поиска текста:
klucz=$(echo -n "$tekst" | sha256sum | cut -f 1 -d " ");
Запишем файл с названием сокращения выбранными данными:
echo -n "$tekst" > "$klucz";
С этапа подготовки текста можно повторить ввод любых данных для хранения. Эти данные можно даже получать по сети, от того же самого nc, но у меня это не получилось.
Поиск делается проще. Готовим переменную
klucz="384b1e4d4ee795abb99f2457ef015af8a2dd6f7db485c475ec002c5d7ce5e718";
Затем команда в скобках «[»проверяет, что в переменной "$klucz" содержится название файла «-f». При отсутствии ошибок (за это отвечает &&) программа cat показывает содержимое файла из текущего каталога с названием из сокращения для поиска. При ошибке (за это отвечает ||) пишем, что ключа такого нет.
[ -f "$PWD/$klucz" ] && cat "$PWD/$klucz" || echo "✘ Niema!";
У читателя не должно быть ключа из примера. Этот ключ породило название исчезнувшей российской государственной формы: «tekst="РСФСР";».
Пишу:
klucz="8a251e8f4bb8ce0fae29e6470dcbde76ef76705c1798b2271273bc40269a2e26";
[ -f "$klucz" ] && cat "$PWD/$klucz" || echo "Niema!";
Мой ответ
Latvijas Padomju Sociālistiskā Republika
Поиск узлов и их взаимные ответы пока что недоступны мне для понимания. Это требует знания работы сетей машин. У меня же нет ни времени, ни многих машин для испытаний сетевых принципов. Однако, считаю, главная работа для прояснения сделана.
§ об обобществлении и пределах взаимного недоверия в системе узлов таблицы коротких соответствий
Особенность БД Биткоин в отношении хранения основ и сокращений для поиска состоит в том, что предполагается возможность фальсификации записей с любой из сторон. Принцип обмена в БД Биткоина (команда обобществления) сделан потому так, что лишь фальсифицировав большинство копий БД можно утвердить действия, считаемые по общему согласию участников неуместными (например, двойную трату). Это - предельный демократизм сродни демократизму социальной революции. Ведь если большинство населения действенно решило, что какая-то форма собственности не должна более существовать, то лишь вопросом времени является то, когда она потеряет остатки практического функционирования. Существуют ли вообще в обществе более сильные гарантии, чем добровольное демократическое решение половины добровольных участников? Вероятно, нет, ибо гарантии принудительности и подавления всегда намного слабее. Господина Януковича не выручил самый изощрённый подавительный аппарат, а ведь это не самый сильный из уничтоженных конкурентами при поддержке или нейтралитете масс буржуазных режимов.
Нефальсифицируемость именно Биткоина основана на том, что лишь обладатель более чем половины мощностей, вырабатывающих единицы подтверждения затрат может утвердить в базе данных в целом неразумные решения. Но это не единственный принцип «голосования», то есть отбраковки недостаточно достоверных фактов. Где-то (не в Биткоине) может быть достаточно большинства копий или исключительной трудности получения единицы подтверждения затрат, даже если это подтверждение произошло в небольшом числе копий БД. Именно «половина вычислительной мощности выработки единиц подтверждения затрат» - это критерий, который имеет «интервал слабости». При сильной конкуренции никто не может монополизировать такую половину, в начале псевдовалютной базы данных никто не имеет такой потребности, но между «ненужным началом» и «выматывающей гонкой» есть значительный зазор, во время прохождения которого упреждающая монополизация весьма вероятна. И эта стратегия поведения весьма популярна для обильно появляющихся псевдовалютных систем. Успех такой монополизированной системы может быть весьма интересен инвесторам, превращающимся в банальных манипуляторов всех обращающихся в данной базе данных элементов стоимости.
§ Некоторые выводы о политэкономическом значении Биткоина
Без предшествующих исследований данные выводы не имеют никаких оснований, а их усвоение бесполезно. Пробы получения сокращений, числовых подписей и создания распределённой таблицы соответствий в совокупности могут подсказать нечто о политэкономических перспективах Биткоина. Вообще же эти перспективы любой псевдовалюты небывало сильно зависят от её внутреннего устройства и математических свойств. Марксистская политическая экономия позволяет надёжно установить лишь те контуры, за пределы которых никогда не выйдет никакая автоматизированная система псевдовалюных общественных отношений. Но внутри этих контуров весьма и весьма просторно. Относительно известной исторической системы мировых денег золото-серебро-платина-палладий система псевдовалют небывало разнообразна. Поэтому в выводах о Биткоине нужно будет совместить его конкретную сущность с нахождением его как явления в контурах псевдовалютной системы общественных отношений вообще.
Итак, за современными мировыми деньгами - долларом США стоят операции в базе данных Федеральной Резервной Системы - частной организации под сильно ограниченным контролем структур государственности США. Общеизвестно, что ресурсные гарантии доллара США исключительно непрочны, и что они всё уменьшаются, в том числе, из-за роста долгов ТНК и государственных структур в США по отношению к заграничным организациям. В совокупности меновая стоимость доллара США обусловлена факторами политического (военного) и инерционного порядка. Ведь центры накопления капитала, в особенности мировой центр накопления капитала (финансовая система США), это очень инерционные системы отношений, реализующие очень инерционные (из-за объёмов циркуляции) изменения денежного обращения. Именно из-за указанных выше факторов оказывается, что меновая стоимость доллара США ни прямо, ни в виде гарантий, не ссылается на некую потребительную стоимость, что она есть простой циркулят (производная в дифференциальном смысле величина) от способности финансовой системы США поглощать прибавочную стоимость со всего мира. Известное нарушение финансовой циркуляции 2008 года заставило капитал искать средства объективизации - переноса в некую объективную форму, более устойчивую чем валюты. Нелишне заметить, что многие валюты прямо или косвенно являются синонимами долларов США - члены МВФ не имеют права заметно превышать внутренний денежный оборот над величиной запасов, номинированной в долларах США и имеющей их, обыкновенно, главным компонентом. В этих условиях пустые гниющие города в Китае являются проявлением той же тенденции. Биткоин - один из многих способов объективизации накопленного капитала в условиях нарушений финансовой циркуляции, сокращения её оборота. Как способ существования изъятой прибавочной стоимости он выполняет, следовательно, реакционную задачу стабилизации частнособственнического накопления околофинансовыми (псевдовалютными) средствами. Думается, как инструмент господства частной собственности, Биткоин имеет немалые перспективы. Если БД ФРС США не публикуется, а принципы её работы известны лишь отрывочно, то среди двух финансовых циркулятов без потребительной стоимости (доллара США и Биткоина), капитал вполне может предпочитать Биткоин. За ним есть некоторая (пусть глупая) стабильная объективизация в виде труднонаходимых хешей, тогда как за долларом США объективизация имеет лишь политическое, военное и инерционное значение. Учитывая, что капитализация Биткоина достигла величин, соизмеримых с наличным оборотом долларов США в США, можно предположить, что для ликвидации проблемы долларового долга ТНК, они могут объективизировать денежный капитал в псевдовалютах и девальвировать доллар США после того, как к нему останутся привязаны только «вредные» активы. Указанная схема, разумеется, не является последовательностью сознательных, тем более согласованных, действий, но она вполне вписывается в законы капиталистического накопления. В целом, нет даже заметных шансов со стороны БД Биткона в пользу более равномерного распределения центров накопления капитала по планете. Сама возможность покупки тут же воспроизвела в БД Биткоина всю иерархию накопления и неравномерного доступа. Даже если в будущем БД Биткоина будет иметь многие десятки тысяч копий по всем странам, то обслуживать все они будет процесс капиталистического накопления, осуществляемый через переводы собственников крупных массивов биткоинов. Эти собственники в общем соответствовали, соответствуют и будут соответствовать представителям современной крупной финансовой частной собственности. То, что это немного иные группировки, чем господствующие сейчас, для сути отношений собственности заметного значения не имеет. Кроме того, разрастание БД Биткоина до, например, 3000Гб (всего лишь в 10 раз), приведёт к затратам на хранение на уровне 300€, что приближается в большей части Европы к половине месячного дохода, а в целом по миру много где превосходит среднемесячный душевой доход. Это означает, что эти 300€ должны быть потрачены с некоей отдачей. Но это соображение приводит к новому витку коммерциализации посреднических услуг с биткоинами. Известно уже о существовании простых биткоинных вексельных банков. Близится существование всех возможных банковских услуг на основе БД Биткиона, что тоже не говорит об её освободительной природе. Разумеется, обязательства банка по биткоинам можно проверить, ибо для привлечения клиентов он укажет свои публичные числа, по которым будет понятно состояние счёта, но внутренних махинаций банка это вовсе не исключает. Счёт банка известен, но сколько биткоинов он провозгласил на счетах клиентов в сумме, это всё также остаётся конторской информацией. В общем нельзя сильно полагаться на множественных мелких взаимозачётных посредников, которые будут отправлять в БД Биткоин лишь суммарные операции - ибо посредники точно также будут паразитами, да ещё возможными нарушителями тайны сути операций, что работает против подобных организаций. Следовательно, БД Биткоин будет всё дальше отдаляться от демократизма - моего жёсткого диска, даже если стереть операционную систему, библиотеку и личные файлы уже не хватает для размещения хоть бы сжатой копии. Каков же освободительный выход?
§ Об освободительном выходе в сфере денежного обращения в связи с действием псевдовалют
Освободительный выход из современного денежного и финансового обращения состоит не в поиске средств его объективизации, имеющих хотя бы иллюзорную потребительную стоимость, а в купировании всего денежного и финансового обращения. Давно прошли времена, когда обильная денежная циркуляция отражала обилие и разнообразие материальной деятельности человека, когда рост денежной циркуляции в целом совпадал с ростом деятельных способностей каждого члена общества. В настоящий момент большая часть денежной циркуляции обслуживает только извлечение прибыли в финансовом секторе, происходящее через перераспределение результатов живого труда в пользу абсолютно (в гегелевском смысле) непроизводительных собственников. Эта денежная циркуляция должна быть не просто купирована, она должна быть отсечена полным и насколько можно непроницаемым размыканием контура циркуляции. Денежная циркуляция, имеющая экономическую необходимость, тоже должна быть рассечена примерно так, как это уже происходило на литовских землях (а, судя по документам - также в других западных странах СССР). Суть состояла в том, что учёт промышленных средств, которые обеспечивают благосостояние работников и потребителей их продукции, выделяется в отдельный контур, из которого выводится лишь трудовой доход. Этот отдельный контур регулируется политэкономическими законами, действие которых применяют так, чтобы оно содействовало достижению внеэкономических политических целей, главной из которых является расширение полноты чувственной (небезразличие), теоретической (понимание), хозяйственной (достаток) и нравственной (поступки) жизни каждого трудящегося. База данных промышленного контура циркуляции, превращающегося всего лишь в элемент учёта общественных усилий, очевидно, должна публиковаться и быть доступной для полного копирования за исключением части о военных по целям промышленных средствах. Накопление и циркуляция капитала, следовательно, замыкается вне промышленности, которая имеет определяющее влияние на благосостояние общества. Однако капитал нужно подавить и вне промышленности. Не только решающие для жизни людей промышленные директивы, но и просто любые важные и значительные личные покупки удобно привязать исключительно к не имевшему ещё наличной формы трудовому доходу, карая за применение полнооборотных денег. Экономия здесь колоссальная, падение валового продукта огромное, но также здесь одновременно происходит рост материальной обеспеченности и улучшение нравственной обстановки за счёт всё более плотного ущемления нетрудовых доходов. Псевдовалюты в этом смысле могут остаться последним контуром полной циркуляции, однако и его нетрудно подорвать, причём без опоры на бесполезные заперты. Очевидно, что смешанный наличный контур с достижением жилищного изобилия преимущественно превратиться в сферу покупок и услуг. Имея статистику покупок от магазинов, можно легко перевести наиболее популярные в данной местности продукты в сферу безналичных квитанций-прав, реализация которых сможет сократить места хранения и торговый персонал в пользу транспорта и производства, высвобождая паразитически потраченное общественное время, ибо даже не профессиональные, но всё же стабильные продавцы редко имеют широкие возможности личностного развития. Таким образом, успехи обнаружения хозяйственных связей в единой общественной базе данных и ихвыведение из денежного обращения сделают само денежное обращение со временем непривлекательным и остаточным, ликвидировав также замкнутый на наличные деньги контур псевдовалют, ибо их неприменимость в промышленности и для важных или престижных покупок будет установлена в первые же годы нетоварной экономической политики.
Таким образом, если Биткоин и псевдовалюты, начатые Сатоши Накамото - это наш завтрашний день, то единые общественные базы данных для размыкания и подавления денежного обращения - это наш послезавтрашний день, когда для повышения экономической эффективности нужно будет исключить возможность образования прибыли. Принципы советских кибернетиков Китова и Глушкова оказываются всё ещё не только актуальными, но едва не впервые оживающими под углом знания о принципах работы Биткоина. Ибо это принципы экономически намного более привлекательные, чем имитация всех особенностей частнособственнического накопления путём операций в БД Биткоина. Единственный практический вопрос здесь - это получение возможности нетоварных экономических преобразований, то есть режима, называемого в общественной науке диктатурой пролетариата. Приёмы же построения общественной единой базы данных в таком случае будут сильно отличаться от тех, что использованы в Биткоине. Разумеется, все рассмотренные в этой работе элементы, найдут своё применение в единой общественной БД, правда, в других комбинациях и для других общественных целей, которые будут тесно связаны уже не с увеличением прибыли, а с массовым созданием всесторонне развитых личностей через политехническое (трудовое) воспитание в той форме, которая известна нам по практике известных педагогов одной из крупных европейских стран - Саввы Христофоровича Чавдарова и Антона Семёновича Макаренко.
___
[1] Укр. геш, бел. тарашк. гэш, бел. акад. хэш, польск. skrót и связанные понятия - funkcja skrótu, funkcja mieszająca, funkcja haszująca.
[2] Hashfunktion или Streuwertfunktion это точное соответствие терминам funkcja skrótu, funkcja mieszająca, funkcja haszująca.
[3] Эту схему с хешированием фотографий чешские анархисты заимствовали из Германии, где она появилась в таком виде вскоре после скандального случая в политическом коммунизме, когда некие приезжие, выдавая себя в каждом новом городе за новых людей из новых организаций, заводили новые переговоры, заканчивавшиеся тем, что им оказывали финансовую помощь. Позднее оказалось, что ни к политике, ни к коммунизму, ни к Германии эти люди никак не принадлежат. С тех пор появилось правило, что для финансовых переговоров нужно, чтобы хешевое сокращение фотографии было подписано кем-нибудь известным и ответственным из отечественных деятелей. Но такую подпись тоже получить не везде просто. Осторожные немцы будут пытаться найти статьи с числовой подписью того, кто к ним приехал, а потом изучать эти публикации. Действительно авторитетные числовые подписи можно получить только от тех, кто будет тщательно искать в переводах признаки принадлежности к идеалистической гносеологической партии. В противном случае, когда подписывает какой-нибудь скурвленный фигурант Die Linke, подпись хеша фотографии не приведёт ни к чему, кроме очередных бесполезных политических переговоров. Однако ни совместные издательские, ни совместные переводческие планы в таком случае никто не станет обсуждать - слишком часто под видом практических материалистов в международные публицистические и теоретические контакты пытались проникнуть идеалистические, нередко просто глупые, квазиполитические фрики.
[4] Один байт содержит две шестнадцатеричных цифры, полубайта (тетрады, у французов semioctet или quartet) - это соотношение неизменно и постоянно.
[5] Материал, опубликованный через издательскую группу Шпрингера, собственники которой традиционно поддерживают реакционные империалистические круги Германии, имеет такие выходные данные:
Mendel F., Nad T., Schläffer M. Improving Local Collisions: New Attacks on Reduced SHA-256 // Advances in Cryptology - EUROCRYPT 2013: 32nd Annual International Conference on the Theory and Applications of Cryptographic Techniques, Athens, Greece, May 26-30, 2013. Proceedings / T. Johansson, P. Q. Nguyen - Springer Berlin Heidelberg, 2013. - P. 262-278. - 736 p. - (Lecture Notes in Computer Science; Vol. 7881) - ISBN 978-3-642-38347-2 - ISSN 0302-9743 - doi:10.1007/978-3-642-38348-9_16
[6] Российское и украинское написание. Белорусское написание - блокчэйн. Польский термин или łańcuch bloków.
[7] При испытаниях следите за количеством пробелов, иначе числа в читаемом виде не соберутся в переменных.
[8] Контекст таков (добавлено выделение обсуждаемой фразы):
... Nach materialistischer Geschichtsauffassung ist das in letzter Instanz bestimmende Moment in der Geschichte die Produktion und Reproduktion des wirklichen Lebens. Mehr hat weder Marx noch ich je behauptet. Wenn nun jemand das dahin verdreht, das ökonomische Moment sei das einzig bestimmende, so verwandelt er jenen Satz in eine nichtssagende, abstrakte, absurde Phrase.
...Согласно материалистическому пониманию истории в историческом процессе определяющим моментом в конечном счете является производство и воспроизводство действительной жизни. Ни я, ни Маркс большего никогда не утверждали. Если же кто-нибудь искажает это положение в том смысле, что экономический момент является будто единственно определяющим моментом, то он превращает это утверждение в ничего не говорящую, абстрактную, бессмысленную фразу.
[9] Украинское название добытчиков калькирует российское, которое калькирует английское, имеющее произношение майнер.