Local-first и децентрализация
707 subscribers
140 photos
19 videos
3 files
312 links
Replicated Object Notation,
CRDT, распределёнщина и децентрализация.
Ведёт @gritzko
Чат @Ronzgovory
Download Telegram
Russ Cox тут твитнул интересное и внезапно оказалось, что моя работа над двоичными Меркелевыми деревьями (2009-2010), которая в результате стала RFC7574, вошла в DAT protocol и немножко в BitTorrent 2.0, очень сильно оверлапит с рядом современных ей и более поздних работ по криптографии
https://research.swtch.com/tlog
https://twitter.com/_rsc/status/1468260916902907914
А вот мой первый драфтик
https://datatracker.ietf.org/doc/html/draft-grishchenko-ppsp-swift-00
# Это называется credibility.

Если у меня есть 10 яблок, а у чувака из Google есть яблоко, то у чувака из Google больше яблок, и он изобрёл яблоки.
Если у меня есть 10 яблок, а у чувака из Оксфорда есть пол-яблока.... та же история.
Если я говорю непонятное - я псих; если чувак из Google говорит непонятное - он гений.
Ну и так далее...
С одной стороны, я привык. С другой стороны, я устал.
Заодно нашёл, откуда есть пошёл RON: был у меня и язык запросов для версионированного текста в тот же период. Из CT и этого языка и вырос в результате RON.
# Rust

Неоднократно у меня возникал этот вопрос: писать на Rust или на C++? C++ я использую *очень* ограниченный, C++11 плюс пара забекпорченных фич из более поздних стандартов. Практически, это C с классами и шаблонами. И вот читаю я статью про внедрение Rust в Linux kernel и таки возникает у меня FOMO. Линус за Rust - говорит статья. Читаю чуть повнимательней и понимаю: Линус просто поработал над собой и теперь выражает свои сомнения в позитивном ключе. В духе "начните пока с чего-нибудь неважного, а через 10 лет поговорим".
Очевидные трудноразрешимые проблемы: сложность Rust, необходимость постоянной низкоуровневой работы в ядре, где особо не абстрагируешься, сопряжение с C кодом, отсутствие поддержки архитектур кроме Intel и ARM.
На мой взгляд, сложность кода может оказаться поважнее всего остального, в перспективе, и нивелировать выгоды от более строгой модели работы с памятью. Но результат будет понятен лет через k.
https://www.theregister.com/2021/11/10/where_rust_fits_into_linux/
# Разбор TON whitepaper

Для студентов разобрал TON whitepaper (блокчейн от не-Дурова); продублирую выводы здесь. Уязвимости порой находятся в коде, где казалось бы всё очень прямо и понятно (Diffie-Hellman logjam или на прошлой неделе log4j). А авторы предлагают реализацию трёхэтажного TON блокчейна с гиперкубическим раутингом, виртуальной машиной, цифровыми фонтанами и Kademlia DHT (да, всё сразу). Это имеет нулевую вероятность не только отсутствия уязвимостей, но и общей работоспособности.
Но динамика у whitepaper'а драматическая, конечно: сначала они предлагают крутой механизм... Но, есть маленькая очевидная проблемка. Тогда они предлагают добавить другой, часто более сложный, механизм, для её решения. Но... тут ещё проблемка... И эта история продолжается 120 страниц.
https://www.youtube.com/watch?v=L6DFGSY05IQ
# Консенсус

Классические алгоритмы консенсуса подразумевают ограниченный круг участников. Это предположение, в частности, перешло из классических работ 1980-х в современные Proof of Stake и Паксосы.
А что если нам нужно достичь консенсуса в рое, где точное количество участников и топология сети неизвестны? Как оказалось решение есть и оно очень интересное - консенсус Шмебюлока. О чём мы с Мишей и написали статью.
Удивительно, но в ходе работы мы обнаружили концепцию куда более мощную, чем время Лампорта - время роя. Это логическое время для массивно параллельных само-синхронизирующихся систем.
Кто осилит текст - будем рады отзывам.

https://arxiv.org/abs/2112.07065
чудо само-синхронизации роя (подробности в статье :)
Не очень грамотный обзор по Web 3.0 [1] от К.Сарханянца в Коммерсанте. Вот некоторые говорят, что нельзя журналистам давать что-то писать самим, потому что в чём они разбираются?
Попробую просуммировать эпический твиттер-срач последних двух недель и положение дел с "Web 3.0" в целом.
Центральный твиттер аккаунт в сраче - @kelseyhightower. Это вроде бы девопс в Гугле, большой influencer. Итак, он начал спрашивать в общем-то очевидные вещи относительно блокчейна и "Web 3.0" и поднял нешуточную волну. Включились и Grady Booch и Elon Musk и Jack Dorsey, только Elvis Presley почему-то молчал. Действительно, BitCoin-like блокчейн это принципиально немасштабируемая технология. То, что Джек Дорси - фанат именно BitCoin, это очень интересный факт. Упомянутый в статье "проект децентрализованных соцсетей Bluesky" - это просто одна приятная девушка, реальной работы там не происходит, только говорильня. Вообще, с инженерными успехами у Web 3 пока сложно. IPFS после 7 что ли лет разработки так толком и не используется. Я предлагал им пока выкинуть DHT в пользу Tiered Network [2] чтобы хоть что-то заработало. Поскрипели мозгами и стали искать, кто бы им сделал Tiered DHT. Не комментирую. Ethereum не то чтобы сильно лучше в плане масштабирования чем BitCoin, но там происходит всяческая движуха, по крайней мере. Про TON coin я уже высказывался. Вообще, эта блокчейн волна отличается очень шумным хайпом и очень маленьким выхлопом. Вот помню когда BitTorrent переехал на uTP/LEDBAT, до четверти траффика в интернете разом переключилось с TCP на UDP - а никто и не заметил. Прямая противоположность. Код вроде бы писали два человека - Шалунов и Норберг. Но возвратимся к чейнам. Вся эта тема мне напоминает диалог из фильма Sneakers (1992) [3].
"Not reality but the perception of reality" - это объяснение очень многого, что происходит.

[1]: https://www.kommersant.ru/doc/5152037
[2]: http://replicated.cc/netarch
[3]: https://www.youtube.com/watch?v=coDtzN6bXAM
Новый драфт Swarm consensus уже на arxiv:
https://arxiv.org/abs/2112.07065
Добавлено: Византизм, объяснение swarm time, диаграмма Минковского, многое другое.
P.S. HackerNews: https://news.ycombinator.com/item?id=29711381
Собрал все очевидные вопросы, осталось поправить текст.
Поправьте меня, если я что-то не понимаю, но ведь если "добыча биткойна" в Казахстане остановится, биткойн должен подорожать? 😋
К слову вспомнилось. Был скандальчик небольшой некоторое время назад, когда выяснилось, что в Twitter модерацией по региону EMEA руководит офицер из подразделения по информационным войнам. Причём, он как-то глупо спалился, чуть не в LinkedIn всё указал.
Это я к тому, что любая "централизованная" сеть будет максимизировать выгоду для владельцев этого самого центра - через цензуру, управление нарративами, фильтрацию информации. Это неизбежно. А всяческие революции - это очень выгодно даже в банальном денежном смысле, десятки миллиардов долларов могут за ночь поменять хозяев.
https://www.ft.com/content/53017272-e37f-11e9-b112-9624ec9edc59
https://www.independent.co.uk/news/uk/home-news/twitter-executive-british-army-officer-psyops-gordon-macmillan-a9127036.html
Кстати, помню в Копене когда работал, там в соседнем офисе был стартап, торгующий influencer-ами. Звонили серьёзным дядям постоянно, питчили своих подопечных. Не индивидуально, а сразу оптом. Индивидуально это будет муторно - instagram celebrity скупать, они мелкие слишком. Собственно, эту проблему стартап и решал.
Про пользователя бесплатных сервисов говорят "if you are not paying, you are the product". Наверное, это можно и для случая influencers переформулировать.
И вот ещё подумалось. Во всех мэйнстримовых социальных сеточках сейчас алгоритмические фиды. Соответственно, акт цензуры - это не когда гестаповцы в дверь стучат; это когда кто-то кликает мышкой - и урезает вам outreach, ну или добавляет. А может даже не человек, а алгоритм. И вы даже и не узнаете, что это произошло - никто тут не обязан вам что-либо сообщать. Но если вы influencer, то вы это точно *ощутите*. И, возможно, в следующий раз последите за базаром аккуратней.
Децентрализация конечно может помочь с цензурой... Теоретически, монетизация и токенизация медиа может даже решить проблему продажности influencer-ов. Но это, конечно, очень теоретически.
(Не утверждаю, что казахстанские события инспирированы Моссадом через твиттер. Просто Nexta навела на мысли о монетизации подобных вещей, а эти мысли давно меня преследовали.)
Moxie Marlinspike побаловался с NFT. Выводы неутешительные, но прогноз оптимистичный.
Из забавного: NFT как правило это URL, причём часто указывающий на сервер компании. Децентрализация фиктивная, таким образом.
https://twitter.com/moxie/status/1479567493215637506?t=aVJsXFW7V6I2L-BvW6ZKyQ&s=09
К слову о тотальной слежке. Итальянского мафиози поймали в Испании, распознав лицо на Google Maps. То есть, Google Maps распознаёт все лица (в публичном сервисе они замазаны). Это не то что бы шокирующая новость, все гуглы и фейсбуки распознают лица на фотографиях лет уже 10, но тут фото сделано Google и без согласия, то есть небольшую границу переступили. А если быть точным, мы только узнали, что они её переступили. Как показал Сноуден, самые странные бредни конспирологов часто весьма бледны по сравнению с реальным положением вещей. https://www.reuters.com/world/europe/google-maps-helps-italian-police-capture-mafia-fugitive-2022-01-05/
Доклад ЦБ по рискам криптовалют весьма разумный. Действительно, широкое использование крипты физиками в теории может расшатать экономику. Тут единственная заминка, что популярные криптовалюты на сегодня и не обладают достаточной масштабируемостью. Хотя, вот уже 10 лет совершенно по-клоунски заявляют, что масштабирование будет решено с новым релизом.
Так же по-клоунски они 10 лет говорят про децентрализацию, хотя для любой более-менее используемой крипты нужны профессиональные посредники - майнеры, биржи, и прочие. А степень концентрации во владении криптой и майнинге, как правило, весьма высока. Соответственно, представленные в проекте драконовские меры с ответственностью за владение криптой совершенно излишни - достаточно ударить по посредникам и неквалифицированный пользователь отвалится сам. А массовое облапошивание физиков в крипто-пирамидах - это именно то, что подрывает социальную стабильность.
Самый на сегодня разрушительный компонент крипто-мира - это майнинг. И с экологической точки зрения, и с экономической, и с политической. Мы знаем, что майнинг может вызвать энергетический кризис (Иран, Казахстан). Мы знаем, что энергетический кризис может вызвать бунты и стрельбу на улицах (Иран, Казахстан).
Специфических мер по искоренению майнинга доклад не упоминает, хотя, в принципе, это тоже предлагается сделать противозаконным. Тут, опять же, небольшая заминка в том, что значительная часть майнинга и сегодня противозаконна, так как ведётся на ворованном электричестве или на субсидированных тарифах.
То есть, меры в принципе правильные предлагают, но приоритеты неправильны - бомбить нужно посредников, а не физиков. Майнеров, в принципе, уже давно можно и нужно бомбить, только идёт этот процесс крайне медленно.
Доклад, тем не менее, хороший, трезвый. То, что выдали в ответ представители криптоиндустрии - гораздо менее когерентно.
Идею криптовалюты в принципе не считаю порочной, но ныне популярные проекты - однозначно на свалку.

https://www.cbr.ru/Content/Document/File/132241/Consultation_Paper_20012022.pdf
В рамках борьбы с остатками STL написал свой linked list. Заняло пол-дня. Потом написал fuzz test, стал фаззить. После >14 исправлений, связный список выдержал ночь фаззинга, что для 200 строк кода достаточно. Подумал, какой я старый и медленный. Потом понял: мой linked list выдерживает любую последовательность вызовов с любыми аргументами и корректно возвращает ошибки. C++ STL linked list обвалит программу на первом же неправильном аргументе. Очень разные вещи. Ну, и мой linked list - сериализуемый и хранимый.
Вообще, это уже сильно отличается и от типичного индустриального "C with classes" и от типичного студенческого "modern C++". "Paranoid C++"?