temmokan: (Default)
[personal profile] temmokan
Дня не проходит, чтобы не появилось десятка-двух панегириков блокчейну (так и тянет дописать: "Великому и Ужасному"). Чтобы лишний раз вызвать скуку у тех, кто в курсе, и лёгкое непонимание у тех, кто нет, вначале вкратце о том, что такое блокчейн. Совсем вкратце: "распределённое хранилище (в оригинале: "distributed ledger", т.е., распределённая бухгалтерская книга, гроссбух) записей, позволяющее эффективно, достоверно и на постоянной основе фиксировать транзакцию между любыми двумя участниками". Блокчейн - цепочка записей, в которой каждая следующая хранит контрольную сумму (точнее, хэш) предыдущей - таким образом, с высокой вероятностью подделать уже попавшие в цепочку записи не получится.

Однако до того, как попасть в цепочку, транзакция должна пройти подтверждение несколькими владельцами копий этой самой цепочки (не забыли слово "распределённая"?). Достижение согласия участников достигается разработанным в 1999 году алгоритмом PBFT ("Practical Byzantine Fault Tolerance", в примерном переводе "Практическое решение задачи византийских генералов"). Интересующимся: почитайте про эту задачу - это само по себе интересно.

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

Очевидно, теперь я должен сказать "биткойн" и пояснить, отчего это революционно, круто и неизбежно (голосом Агента Смита). Ну, сказать мне не жалко: биткойн, биткойн, биткойн! Могу ещё упомянуть алгоритм "Proof of work" - то, что используется для того, чтобы участники сети не слали безвозмездно свои транзакции сколько хотят - пусть сперва потратят ресурсы на сложные мат.вычисления в большом объёме - т.е., потратят свои ресурсы, включая время.

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

То, что предложена технология условно вечного хранения информации (не забыли: "на постоянной основе") во множестве копий по всему свету - это хорошо (хотя позже я расскажу о чудовищных возможных неприятностях, с этим связанных). Что нас раздражает в современной экономике (прикинусь, что у нас всех есть то единственное, что раздражает)? Например, то, что экономику очень легко прогнуть под неэффективные или неэтичные способы использования.

Когда (пофантазируем) у нас есть "Great Distrubuted Ledger" ("Великий Гроссбух"), не будет ничего проще задачи отследить транзакции. Скажем, я, честнейший и преданнейший слуга народа ("я" в данном случае говорит лирический герой моей публикации, а не её автор - прим. автора), решаю помочь своему народу в решение одной из фундаментальных его проблем - например, починить дороги. Я создаю компанию, которая предлагает наилучшие условия для освоения бюджета (вы правильно поняли слово "освоение" - прим. лирического героя), и небольшую часть полученных от бюджета средств перевожу, через десяток фирм-однодневок куда-нибудь на счета цюрихских гномов. А что? Все так делают. Всё равно то, что удастся купить на оставшееся, разворуют уже в материальном виде. А так деньги целее будут. И главное, при использованных отработанных механизмах передачи уже не понять никогда, куда именно делись деньги.

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

Улавливаете позитивные последствия для экономики (ничего позитивного - прим. лирического героя; тебя не спрашивают - прим. автора)? Забавно, когда слуги народа всерьёз говорят о "государственном блокчейне". Сейчас все до единого документы можно подделать и заменить, и прощайте, шансы найти истину - кто именно куда именно что именно дел. Блокчейн будет это всё фиксировать. Если дать возможность Кому Положено модифицировать записи задним числом - это уже не блокчейн, а ещё одна чёрная бухгалтерия в электронном виде. Если не дать - ещё смешнее. Как если бы коррумпированный чиновник крал деньги, чтобы с их помощью противостоять коррупции.

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

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

Первый пункт для орингинального блокчейна оригинального биткойна уже не представляется возможным решить; предельное число транзакций для биткойна порядка 7 в секунду (этого всегда и всем хватит для всех потребностей бизнеса - голосом Билла Гейтса). Да-да, продвинутый читатель уже знает про BIT 91, про SegWit и Lightning Network. Но пока всего этого нет, плюс неизбежные для любого ПО ошибки и проблемы безопасности... словом, желающие видеть блокчейн на горе пока могут развлечься, спекулируя на возникающих и сдувающихся ICO.

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

Для нужд учебных заведений (на основе протокола "Proof of brains").
Для нужд медицинских учреждений ("Proof of health").
Для духовных организаций и учреждений (семейство протоколов "Proof of faith").
Для гос.учреждений и органов власти ("Proof of bribe").
Для политических партий и объединений ("Proof of lies").
Для СМИ и примкнувших к ним ресурсов ("Proof of buzz").
Для всех, кто участвует в культурно-массовых мероприятиях ("Proof of clap").
Для математических сообществ разного рода ("Proof of proof").
Для всех творческих людей и выдающихся деятелей в целом ("Proof of fame").
Для соц.сетей ("Proof of like").
Для работников автоинспекции ("Proof of fine").

И так далее. Вас может ограничить только ваше воображение.

lion_casserole: (Default)
From: [personal profile] lion_casserole
.
Выигрышная стратегия в такой постановке: независмо от приказа от Алекса, взять командование на себя и сообщить всем, что нужно наступать. Поскольку все верные генералы понимают, что их совместное наступление приведет к победе, противник обречен. Даже если все остальные - продались, наступление единственного верного Юстаса приведет к победе.

С блокчейном документооборота не все так просто. Допустим, что условный Витя договорился и отстегнул условному Вове какие-то 146 процентов за красивые глаза. В блокчейне окажется запись о таком поступке, всего-и-делов-то. Транзакция состоялась, а спросить не с кого, поскольку Витя благополучно уехал к Вове в Тамбов.

Block-chain and Version Control

Date: 2017-12-25 02:10 am (UTC)
lion_casserole: (Default)
From: [personal profile] lion_casserole
.
Мне однажды пришлось решать следующую задачу. В общих библиотеках находились исходные модули программ, которые были доступны для просмотра и модификации программерам на трех континентах. Обычно программер получал задание и имел возможность забрать необходимый модуль ( как правило - совокупность модулей, макросов и файлов конфигурации ) в свою личную или общую рабочую библиотеку, и заниматься корректировками, модификациями и тестированием автономно, то есть независимо от других сотрудников.

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

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

Вот этот Fork-Fork-Fork-Join-Fork...Join-Join процесс было не сравнить с задачей ведения учета изменений, когда новое звено можно присоединять к цепи только после как остыло предыдущее.
Edited Date: 2017-12-25 02:18 am (UTC)
lion_casserole: (Default)
From: [personal profile] lion_casserole
.
Иной раз вендор меняет что-то в своем коде и непокобелимые, казалось бы, устои, на которых базируется, например, перехват и обработка прерываний, идут под три черты... Или в компиляторе под новую операционную среду вдруг запрещают применение оператора goto и забывают реализовать inline-вставки в машинном коде и на языке Ассемблера...

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

Был у меня один работодатель, который от безрыбья запряг в реализацию проекта полтора десятка IBM-ских кобольщиков, наскоро перезаточенных для кодирования на языке Ассемблера, а потом два десятка лет запрещал вносить изменения в несопровождаемый код, мотивируя это тем, что не следует инвестировать в инспекцию и стандартизацию, пока Заказчик не видит проблем. А вот когда Заказчик жаловался и открывал рот, вот тогда приходилось фокусничать и ставить заплатки на лету, потому что we have no chose, we need introduce a fix sofort.

Profile

temmokan: (Default)
Konstantin Boyandin

June 2022

S M T W T F S
   1 234
5 67891011
12131415161718
19202122232425
2627282930  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags