Введение, которое только частично релевантно


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

Я зашел на Facebook и полистал свой профиль — обычные посты обычного человека, ничего сверхестественного. На мой вопрос, а что собственно не так, мой знакомый ответил, что, когда он открывает мой аккаунт, он видит странную фотку, где я обнимаюсь с плюшевой уткой.

Эту фотографию я залил на Facebook пять лет назад, и благополучно забыл о том, что это когда-то произошло. Я открыл свой профиль в Incognito Mode и увидел эту же самую утку. Почему из тысячи фотографий, которые я залил на Facebook за 7 лет существования моего аккаунта, Facebook показывает незнакомым людям именно эту? Как давно люди, ищущие меня в интернете, находят эту страницу с компрометирующей меня фотографией? И главное — как много другой подобной информации я успел оставить в интернете, которая в будущем может нанести мне вред?

На самом деле в конкретно этой истории в большой мере вина лежит на мне — я сам выложил эту фотографию, и сам выставил (точнее, не поменял) на ней права на то, чтобы ее видел весь мир. Но тут кроется и другая проблема, о которой я начал думать с того дня. Это проблема того, что сервисы, которые собирают нашу информацию, используют ее в непрозрачном и непонятном виде. Либо Facebook глобально, либо я сам спустя короткое время после публикации мной этой фотографии поменял настройки по умолчанию на “только для друзей” для всех новых фотографий, и как следствие именно эта фотография в течение пяти лет показывалась любому человеку, который искал меня в интернете, как моя последняя публичная фотография. При этом я не мог об этом знать, потому что когда я искал себя сам и открывал первую ссылку на Facebook, я видел полный, а не публичный, профиль.

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

Например, я думаю, многие знают сервис AmIUnique, который говорит, можно ли вас однозначно идентифицировать по информации, которую можно собрать из заголовков запросов или с помощью JavaScript. Я проверил все свои браузеры, и каждый браузер на каждой из моих машин абсолютно уникален!

Давайте подумаем об этом еще раз. Каждый браузер создает отпечаток, который позволяет меня однозначно идентифицировать между сайтами, на протяжении долгого времени, в или вне Incognito Mode. Ну конечно никто не собирает такой отпечаток, верно? Я так думал, пока я однажды не установил плагин DuckDuckGo, который показывает, сколько аналитики висит на каждом сайте.

Это же кошмар! Каждый сайт, который я посещаю, записывает это посещение в десяток разных аналитик. И конечно в свои логи. А какие-то браузеры еще и отправляют каждый посещенный URL на свои сервера.

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

Замуроваться за стеной — это не вариант


У этой проблемы, кажется, есть решение. Можно поставить Tor Browser, использовать DuckDuckGo, и не идентифицировать себя вообще нигде. Я знаю огромное количество людей, которые так и делают. Но только это не удобно! И это только частичное решение.

Я не хочу не использовать Google Maps, потому что они удобные. Но они за мной шпионят. Не далее как на прошлой неделе они мне гордо прислали мой Timeline, где показали каждое мое передвижение за прошлую неделю. Да что за дно! Почему я не могу установить приложение для того, чтобы прокладывать маршруты, без того, чтобы за мной шпионили? Я же его даже не устанавливал, я просто купил телефон и сказал ему свой email, и вдруг все мои передвижения сливаются Google и ассоциируются с моим именем.

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

Blockchain to the Rescue


Я обсудил ситуацию с рядом ребят, и в ходе обсуждения начал склоняться к мысли, что идея, которая лежит за Smart Contracts, — она очень привлекательная для решения того дна, в котором мы все с вами как общество лежим, радуемся удобству этого дна и каждый день неосознанно сливаем мегабайты личной информации большим компаниям без малейшего представления, чем это в итоге для нас обернется.

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

Окрыленный идеей я пошел к ребятам которые занимались Blockchain, чтобы начать революцию. Из общения с ними я, к сожалению, быстро понял, что сегодня на Blockchain нельзя поднять вообще ничего, потому что он ужасно медленный. Он ужасно медленный с того самого дня в 2014 году когда запустился Ethereum, и конечно с тех пор кто-то уже серьезно занялся тем, чтобы его ускорить, правильно? И наверное мне нужно просто пойти и разобраться, кто пишет хороший быстрый Blockchain Protocol, и начать с ними работать. Я потратил пару месяцев на глубокое изучение ситуации и понял, что там тоже все плохо.

О каком дне мы говорить не будем
Я вообще не буду говорить обо всяких ICOs. Это тоже совершенное дно, и это тоже нанесло непоправимый вред репутации Blockchains, но эти ICOs не имеют ничего общего с самой технологией, и являются чистой спекуляцией.

О дне в разоботке протоколов


Количество протоколов, которые начали разрабатывать с 2014 года, которые должны были ускорить или стать быстрее чем Ethereum, поражает воображение. Для того, чтобы оказаться в теме, мне пришлось прочитать наверное около сотни статей. Но удивляло три вещи: первая — это то что за четыре года огромное количество таких протоколов подняли невероятное количество денег — по 30-100 миллионов долларов. Второе — что ни один протокол так и не был запущен (EOS является исключением из обоих этих пунктов — он поднял намного больше чем 100 миллионов долларов, и был запущен, но это полностью централизованный протокол, контролируемый 21-ой компанией, поэтому он не релевантен в контексте этой статьи). А третье — что ни один предложенный протокол, казалось бы, не решает проблемы целиком.

Я с 2011 года занимаюсь разработкой распределенных баз данных. У меня есть какое-то хорошее представление о том, как распределенные системы работают, и насколько это сложная и комплексная задача — разработать такую систему. Разработка хорошего масштабируемого протокола — это огромное количество инженерной работы, и на самом деле во многом просто умное использование каких-то уже известных технологий.

Но каждый протокол, который поднимает десятки миллионов долларов, зацикливается на одной идее, и везде ее активно продвигает, вообще не касаясь других проблем. DFinity каждый раз рассказывает про свои Threshold Relays для random number generation и что это панацея от всего. Algorand зацепился за то, что нельзя, чтобы создатели блоков были известны заранее, и везде про это говорит. Conflux предложил использовать DAG вместо Chain, и это должно решить все проблемы. Авторы каждого протокола на любой презентации тратят невероятное количество времени на то, чтобы рекламировать вот эту одну идею, и совсем немного на то, чтобы рассказать про остальные аспекты их протокола. И эти остальные аспекты всегда проработаны настолько плохо, что невозможно поверить, что авторы этого не понимают.

И это дно идет глубже. Я не случайно выбрал в качестве примеров Algorand и Conflux. Авторы обоих протоколов — это Turing Award Winners. Это самая престижная награда в области Computer Science. Они люди, на которых надо равняться. Ведь не может быть, чтобы они пытались обмануть людей, и просто использовать свое имя и позицию, чтобы поднять 60 миллионов долларов и обмануть всю планету?

Но есть подозрение, что это именно то, что происходит. Я был в Праге три недели назад на DevCon4 и пошел на презентацию Silvio Micali из Algorand. Для контекста, основная идея Algorand, которую они пытаются продать с невероятной силой — это что участник протокола, который должен сделать какое-то действие (предложить блок, или принять участие в консенсусе) не известен никому кроме него самого до тех пор, пока он собственно не сделает это действие. Идея, которая лежит за этим, звучит достаточно разумно: если такой участник известен заранее, то его можно подкупить, или заDDoS’ить, тем самым нарушив работу протокола. Silvio продвигает эту идею очень активно. Он утверждает, что даже если adversary может подкупить кого угодно моментально, их протокол выстоит:

?

В том, что и как Silvio продает, есть две проблемы.

Первая — это далеко не самая большая проблема, которая стоит при разработке протокола. Очень странно акцентировать столько внимания на ней.

Вторая — это в принципе не решает проблемы с подкупом! Когда я был на презентации Silvio, я задал ему вопрос о том, что в принципе ничего не мешает поднять smart contract на Ethereum, на котором любой участник может отправить доказательство того, что он будет следующим block producer или участником консенсуса в Algorand, вместе с приватным ключом, и получить за это награду, тем самым полностью нивелируя все преимущества того, что он не известен никому кроме себя заранее. Тот факт, что он известен самому себе, достаточен для того, чтобы быть подкупленым. Да, злоумышленник не может его найти сам, но участник-то все еще может найти злоумышленника.

На что Silvio ответил, что любой Blockchain оперирует под предположением, что 50% участников (в данном случае взвешенные токенами) — честные, и что участник, который в принципе может быть подкуплен, по определению не честный.

Разумно такое допущение или нет — это отдельная тема (спойлер: оно неразумно). Что важно, что если мы принимаем допущение что 50% участников в принципе не могут быть подкуплены, то половина идеи Algorand становится совершенно бесполезной, потому что нет ничего страшного, когда участники, которые делают какие-то действия, известны заранее, ведь их нельзя подкупить.

Сложно поверить, что Turing Award Winner и его команда не понимают, что идея с сокрытием участников не решает проблемы с подкупом. И что допущение о 50% неподкупаемых участников неразумно. И что сложный масштабируемый протокол — это намного больше, чем какая-то маленькая идея о сокрытии участников до поры до времени.

Намного проще поверить в то, что Silvio использует свое имя, чтобы поднять 60 миллионов долларов на не проработанную идею от людей, которые не упустят возможности инвестировать в Turing Award Winner. Это, разумеется, мое оценочное суждение.

Мне самому не довелось побывать на презентации Andrew Yao из Conflux, второго из двух упомянутых мной Turing Award Winners, но он на днях выступал в Stanford, и из общения с теми, кто ходил, складывается ощущение, что пока протокол тоже не проработан. Их статья тоже адресует только одну из множества проблем с тем, чтобы написать масштабируемый протокол, и есть неофициальная информация, что Conflux тоже только что пытался поднять 60 миллионов долларов. Неизвестно смогли ли они поднять все 60.

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

Я могу легко назвать почти десяток протоколов, которые подняли по 30-50 миллионов, с очень известными PhDs, использующими свое имя, чтобы поднять узнаваемость проекта. В каждом примере к моменту поднятия денег у этих протоколов была только статья, которая решает (или как в случае с Algorand не решает) какую-то одну из десятков проблем, и имя вот этого известного PhD. И все, 30 миллионов в кармане.

К чему это все


Я сильно верю в следующие тезисы:

  1. Масштабируемый юзабельный Blockchain Protocol может сильно помочь в разработке экосистемы сервисов, которые настолько же удобны, как существующие сервисы от больших корпораций, но не используют данные пользователя в качестве оплаты. Как я писал выше, Blockchain при этом нужен, потому что:
    1. Он дает возможность провести аудит кода, который выполняется на backend;
    2. Он дает возможность легко разрабатывать такие сервисы, используя распределенную инфраструктуру самой сети;
    3. Он дает возможность создать разумные способы для разработчиков монетизировать свои приложения.
  2. Чтобы разработать такой протокол не надо 60 миллионов долларов. По крайней мере не сразу. Именитые люди, которые подняли десятки миллионов долларов на пустых обещаниях, очень сильно пошатнули веру людей в то, что кто-то может разрабатывать такой протокол и не иметь своей целью просто поднять кучу денег и ничего никогда не запустить.


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

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

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

Посмотрим как пойдет
У меня не получилось у ТМ купить платный аккаунт, поэтому ссылок никаких не публикую.
Весь код, который мы пишем, открыт на GitHub.

Еще мы публикуем много хорошего контента про Blockchain Sharding на английском языке.
Все легко можно найти. DuckDuckGo to the rescue!

Комментарии (15)


  1. rPman
    29.11.2018 11:01

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

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

    p.s. во многих областях вполне дозволительно использовать не совсем децентрализованный блокчейн, типа eosio (внимание я говорю о программном обеспечении а не о конкретной сети на его базе) если в качестве результата вы получите высокую производительность.

    Пока не существует технологий, сочетающих уровень децентрализации и высокую производительность.


    1. powerman
      30.11.2018 14:59

      Пока не существует технологий, сочетающих уровень децентрализации и высокую производительность.

      Существуют, просто они работают без синхронизации, либо с не особо быстрой и надёжной синхронизацией (но при этом сама технология остаётся быстрой). Типичный и глобальный пример — интернет в целом. И протоколы вроде BGP как пример механизмов синхронизации, обеспечивающих работу интернета. Ещё один пример — торренты и DHT.


  1. worldmind
    29.11.2018 11:16

    У меня кстати накоплены заметки на тему децентрализованных систем, в частности про обсуждаемую социальную сеть немного есть, может пригодится.


  1. NeoCode
    29.11.2018 12:04

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


    1. ilammy
      29.11.2018 12:29

      Децентрализация в действии, господа!


      1. NeoCode
        29.11.2018 22:43

        Ну так я готов и в децентрализованных сетях искать (правда с поиском там как раз проблема). Главное чтобы ресурс был живой и информация актуальная.


  1. sheknitrtch
    29.11.2018 12:44

    Почему проблемы с анонимностью в интернете пытаются лечить с помощью Blockchain технологии? Как именно эта технология поможет, например, в случае картинки с утёнком, или в случае со сбором данных компанией Cambridge Analytica, или в случае сканирования писем в GMail для показа релевантной рекламы, или отслеживание положения смартфона через Google Maps?
    Кто-нибудь может показать замену соц сетям/почтовым клиентам/Google Maps на голом Blockchain? И чем такой сервис лучше коммерческих (кроме открытого исходного кода)?


    1. NeoCode
      29.11.2018 12:58

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


      1. solariserj
        29.11.2018 14:51

        Оу! Былые ICQ времена?


        1. NeoCode
          29.11.2018 16:40

          До недавнего времени все соцсети не требовали никаких телефонов и SMS.
          А вообще мне не нравится идея «найти человека из реального мира в интернете». К чему это? Если человек вам доверяет, он может быть и сам даст свои сетевые контакты.
          Гораздо интереснее — «сначала найти человека, у которого с тобой общие интересы, в интернете, а уже затем — если потребуется — встретиться в реальном мире».


          1. solariserj
            30.11.2018 15:37

            Так все перетекли с ICQ в соцсети, как раз из-за того что это реальные люди, и они просто продолжают общаться онлайн. (ну некоторые прятались за псевдонимы и аватарки, но под ними всегда были живые люди) (кроме тех для кого это работа) Теперь тебе не нужно раз в 5 лет собираться на встречу выпускников, когда они доступны в 1 клик.


  1. gar_den
    30.11.2018 01:16

    А действительно ли это дно? Статья интересная и многим действительно уже насточертела постоянная слежка от гугла, фб, инсты и пр. Но так ли все плохо на самом деле? Мало кто знает, но например в гугле можно зайти в Настройки аккаунта и отключить сбор всех данных в т.ч. из maps и почистить накопившуюся историю. Только потом ютуб будет выдавать полный мусор, а не то что тебе нравиться. Та же Реклама — она не отключиться, а будет раздражать ещё больше потому что будет показываться даже близко не то что ты искал. Не сливая свои данные в инет жизнь в инете станет невозможной. Мне кажется тут вопрос фундаментальный — не хочешь сливать личную инфу — нужно переходить на письма от руки через почту России и наличные деньги и никаких тебе эпл пэй и пр. удобств. Ту же статью писать не на хабе, а в журнале мир ПК. В конце концов за любые услуги нужно платить, и за удобство от пользования благами технического прогресса тоже, разве нет?


    1. powerman
      30.11.2018 15:27

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

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


      Не сливая свои данные в инет жизнь в инете станет невозможной.

      Это не так. Единственная используемая мной соц.сеть — хабр (ну, возможно ещё гитхаб можно считать таковой). Единственная моя фоточка в инете — выложена всего года три назад, потому что этого жёстко потребовали правила Upwork, что меня лично дико возмутило, но была нужна работа и пришлось пойти у них на поводу. (И да, мне приходится постоянно напоминать друзьям, чтобы не выкладывали фотки со мной в своих соц.сетях, а если случайно выложат, то чтобы не вздумали меня на них отмечать — странно, но пока вроде бы это работает, по крайней мере я других своих фоток в открытом доступе пока не находил.) Gmail-ом я пользуюсь, но, в основном, через POP3, и все важные письма у меня зашифрованы PGP, так что гугл их не читает. В браузере стоят uBlock Origin и uMatrix, так что рекламные сети обо мне не знают ничего, не смотря на уникальный отпечаток браузера (это реально беда, но никаких идей что можно с этим сделать кроме использования виртуалки с чистой системой и всеми настройками по умолчанию для браузера — я не знаю, а с такими настройками дико неудобно). На телефоне XPrivacyLua плюс AFWall+ плюс AdAway плюс выключена синхронизация с гуглом и определение местоположения, так что с него протекает крайне мало личных данных (в основном — список установленных приложений и кредитка указанная для Play Market).


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


  1. hv1
    01.12.2018 08:54

    Больше похоже на социальное дно, когда фотография с плюшевой уткой становиться проблемой для установления деловых связей. Если есть выбор, то я не жму руку людям с предубеждениями.


  1. tolik_zinovyev
    01.12.2018 08:55

    Интересная точка зрения, но мне кажется вы не совсем правильно поняли презентацию Silvio Micali. «Corrupt» в данном контексте не означает «подкупить». Это означает, атакующий может получить полный контроль над участником сети, например, с помощью уязвимости в имплементации блокчейн протокола или ядра ОС.

    В algorand подразумевается, что атакующий не контролирует больше чем 1/3 всех денег майнеров. Это могут быть деньги, которые атакующий сам вложил, или деньги участников, которых атакующий контролирует. (https://people.csail.mit.edu/nickolai/papers/gilad-algorand-eprint.pdf секция 3)

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