Двойное Дно: пост про современную экосистему, в которой мы платим данными за все, а еще про быстрые Blockchain Protocols +11


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


В середине этого года один мой знакомый должен был познакомить меня с очень полезным деловым партнером. Прежде чем посылать письмо, он написал мне, что, вероятно, тот человек будет искать мое имя в интернете, и что перед этим неплохо бы почистить мой 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!




К сожалению, не доступен сервер mySQL