![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Дня не проходит, чтобы не появилось десятка-двух панегириков блокчейну (так и тянет дописать: "Великому и Ужасному"). Чтобы лишний раз вызвать скуку у тех, кто в курсе, и лёгкое непонимание у тех, кто нет, вначале вкратце о том, что такое блокчейн. Совсем вкратце: "распределённое хранилище (в оригинале: "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").
И так далее. Вас может ограничить только ваше воображение.
Однако до того, как попасть в цепочку, транзакция должна пройти подтверждение несколькими владельцами копий этой самой цепочки (не забыли слово "распределённая"?). Достижение согласия участников достигается разработанным в 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").
И так далее. Вас может ограничить только ваше воображение.
Решение задачи о византийцах
Date: 2017-12-24 04:14 pm (UTC)Выигрышная стратегия в такой постановке: независмо от приказа от Алекса, взять командование на себя и сообщить всем, что нужно наступать. Поскольку все верные генералы понимают, что их совместное наступление приведет к победе, противник обречен. Даже если все остальные - продались, наступление единственного верного Юстаса приведет к победе.
С блокчейном документооборота не все так просто. Допустим, что условный Витя договорился и отстегнул условному Вове какие-то 146 процентов за красивые глаза. В блокчейне окажется запись о таком поступке, всего-и-делов-то. Транзакция состоялась, а спросить не с кого, поскольку Витя благополучно уехал к Вове в Тамбов.
Re: Решение задачи о византийцах
Date: 2017-12-25 12:13 am (UTC)Если в Гроссбухе не публикуются все документы, касающиеся сделок, то максимум, что удастся отследить - движение средств. Естественно, что для правления под девизом "Учёт и Контроль" нужно, чтобы в блокчейне фиксировались все до единого действия, публикация которых поможет если не раскрыть сговор, то как минимум обнародовать его.
Block-chain and Version Control
Date: 2017-12-25 02:10 am (UTC)Мне однажды пришлось решать следующую задачу. В общих библиотеках находились исходные модули программ, которые были доступны для просмотра и модификации программерам на трех континентах. Обычно программер получал задание и имел возможность забрать необходимый модуль ( как правило - совокупность модулей, макросов и файлов конфигурации ) в свою личную или общую рабочую библиотеку, и заниматься корректировками, модификациями и тестированием автономно, то есть независимо от других сотрудников.
Обычно такие корректировки и модификации занимали пару дней, но бывало, что до освобождения модулей и возвращения их в боевую библиотеку проходила пара-другая месяцев. Тестирование, сертификация, деплоймент, и прочие дела.
При этом от заказчиков могли поступать запросы-сообщения о проблемах с production-кодом, которые требовалось устранять как только, так сразу. В таком случае, для срочного исправления бага ( или паньскых вытрэбэнек заказчика по случаю изменений в интерпретации спецификаций третьей стороной или конкурентами-контрагентами ) модули из боевых библиотек приходилось экстренно править программерам, служившим на первой линии обороны. А в результате довольно часто возникала задача сведения нескольких вариантов чертовой прорвы модулей в окончательный вариант, учитывающий все сделанные, иногда конфликтующие изменения, да еще а дух-трех одновременно сопровождаемых версиях-поколениях кода.
Вот этот Fork-Fork-Fork-Join-Fork...Join-Join процесс было не сравнить с задачей ведения учета изменений, когда новое звено можно присоединять к цепи только после как остыло предыдущее.
Re: Block-chain and Version Control
Date: 2017-12-25 03:56 am (UTC)В реальности же всё совсем не так, и даже фомральные парвила зачастую идут к чёрту.
Но это у людей. Программы, по счастью, таки свободой воли не обладают.
Как сказать... Иные программы - от лукавого.
Date: 2017-12-25 05:12 am (UTC)Иной раз вендор меняет что-то в своем коде и непокобелимые, казалось бы, устои, на которых базируется, например, перехват и обработка прерываний, идут под три черты... Или в компиляторе под новую операционную среду вдруг запрещают применение оператора goto и забывают реализовать inline-вставки в машинном коде и на языке Ассемблера...
Программы ведь нынче все чаще производят такими же умелыми ручками, что и прочую халтуру. Хотят стать незаменимыми, и иной раз лучше свою версию системной утилиты написать, чем регулярно маяться в догадках, почему стандартная работает не так, как это было в прежнем релизе.
Был у меня один работодатель, который от безрыбья запряг в реализацию проекта полтора десятка IBM-ских кобольщиков, наскоро перезаточенных для кодирования на языке Ассемблера, а потом два десятка лет запрещал вносить изменения в несопровождаемый код, мотивируя это тем, что не следует инвестировать в инспекцию и стандартизацию, пока Заказчик не видит проблем. А вот когда Заказчик жаловался и открывал рот, вот тогда приходилось фокусничать и ставить заплатки на лету, потому что we have no chose, we need introduce a fix sofort.
Re: Как сказать... Иные программы - от лукавого.
Date: 2017-12-25 11:00 pm (UTC)Зато когда прижало... разверзлась бездна, явила чудеса свои непрошеные, и был нам глас: переписывайте всё это нафиг. И пришлось.
Несопровождаемый код, который к тому же никогда не проходил даже статический анализ - жуткое зло.