Уже две недели Рунет шумит про Telegram и ситуацию с его бессмысленной и беспощадной блокировкой Роскомнадзором. Рикошетом задело многих, но всё это — темы для постов на Geektimes. Меня же удивило другое — я до сих пор не видел на Хабре ни одного разбора запланированной к выходу на базе Telegram сети TON — Telegram Open Network. Мне захотелось восполнить этот недостаток, ибо поизучать там есть что — даже несмотря на отсутствие официальных заявлений о нём.
Напомню — ходят слухи о том, что Telegram запустил очень масштабное закрытое ICO, уже собрав в нём невероятные суммы. Предполагается, что уже в этом году будет запущена собственная криптовалюта Gram — и у каждого пользователя Телеграма автоматически появится кошелёк, что само по себе создает немалое преимущество перед остальными криптовалютами.
К сожалению, так как официальных заявлений нет, дальше я могу отталкиваться только от документа неизвестного происхождения, о чём я сразу вас предупреждаю. Конечно, он может оказаться очень искусной подделкой, но не исключено и то, что это — реальный whitepaper будущей системы, написанный Николаем Дуровым (и слитый, вероятно, кем-то из инвесторов). Но даже если это фейк, никто нам не запретит его поизучать и обсудить, верно?
Что же говорится в этом документе? Я попробую пересказать его своими словами, близко к тексту, но по-русски и чуть более человечно (да простит меня Николай со своей склонностью уходить в формальную математику). Имейте в виду, что даже в случае его подлинности, это черновое описание системы и оно, весьма вероятно, изменится к моменту публичного запуска.
Мы узнаём, что кроме криптовалюты предполагается ещё очень и очень много всего. Давайте разберём по порядку.
- TON Blockchain. Это основа всей системы. Если вы совсем не знаете, что такое блокчейн — рекомендую узнать, потому что тут блокчейнов будет много. Вложенные друг в друга, виртуально раздроблённые и даже «вертикальные» блокчейны внутри блоков других блокчейнов. А ещё тут будет несколько круто звучащих терминов типа Instant Hypercube Routing и Infinite Sharding Paradigm, но об этом позже. И, конечно, proof-of-stake и смарт-контракты.
- TON P2P Network. Пиринговая сеть, на основе которой будет построена работа системы. О ней в первую очередь пойдёт речь в этой части повествования.
- TON Storage. Файловое хранилище, которое независимо от блокчейна будет построено на вышеупомянутой пиринговой сети. Можно сравнить с торрентами.
- TON Proxy. Это сервис, цель которого — повысить анонимность участников сети. Любой пакет можно отправить не напрямую, а через туннели-посредники с дополнительным шифрованием — подобно I2P или TOR.
- TON DHT. Распределенная хэш-таблица для хранения произвольных значений. Она тоже построена поверх TON Network (но при этом используется им же) и помогает TON Storage находить «раздающие» узлы, а TON Proxy — промежуточные ретрансляторы. Но нужно отметить, что, в отличие от блокчейна, эта хэш-таблица не является защищённым хранилищем — хранить важную информацию в ней нельзя.
- TON Services. Платформа для произвольных сервисов. По сути — это новый интернет поверх всего вышеописанного. Обмен данными — через TON Network/TON Proxy, а логика — в смарт-контрактах самого TON Blockchain. И интерфейс с довольно привычными URL.
- TON DNS. Раз уж зашла речь про привычные URL, нужен и преобразователь из них в 256-битные адреса — аккаунтов, контрактов, сервисов и узлов.
- TON Payments. И вот только тут затрагивается денежный вопрос. И это будет не только gram — как с эфиром, будут возможны любые «токены»; грамы тут будут всего лишь валютой «по умолчанию».
Это первая часть, описывающая «приземлённый» уровень TON — его сетевую часть, строящуюся поверх традиционных протоколов. В следующей части речь пойдёт про «мякотку» — блокчейн, который будет поддерживаться описанной далее системой. Таким образом, мой порядок пересказа несколько отличается от использованного в вышеупомянутом документе (который начинается сразу с абстрактного уровня).
Базовые понятия
TL (Type Language). Это абстрактный бинарный формат для произвольных структур данных. Он используется в протоколе Телеграма и будет активно использоваться в TON. Если хотите подробно ознакомиться с ним — вот его описание.
Хэш (hash). Функция, производящая необратимое преобразование произвольной структуры данных в единственное число фиксированной длины. В рамках документации повсеместно идёт речь о функции SHA-256.
Узел сети (node). Узел — это ПО, которое будет обеспечивать работу системы. В частности, предполагается, что каждое клиентское приложение Телеграма будет включать в себя узел TON'а. На низком уровне узлы имеют IPv4/IPv6-адреса и общаются по протоколу UDP, на более высоком — обладают абстрактными адресами и реализуют протокол ADNL (об абстрактных адресах и ADNL — см. ниже). Когда речь идёт о том, что какие-то части системы что-то делают или хранят какие-то данные — подразумевается, что это делают узлы сети.
Абстрактный адрес (или просто адрес, address). Адрес узла определяется его публичным ключом. Более строго — это 256-битный хэш (SHA256) от структуры данных, содержащей публичный ключ (конкретный криптографический алгоритм при этом не уточняется — в качестве примера приводятся эллиптические кривые и RSA-2048). Чтобы один узел мог взаимодействовать с другим, ему нужно знать не только адрес того, но и эту структуру данных. Теоретически один физический узел может создать любое количество адресов (соответствующих разных ключам).
Далее часто используется именно такая связка: «прообраз» в виде TL-структуры (содержащей практически любые данные), и 256-битный хэш от неё, используемый для адресации.
Блокчейн (blockchain). Блокчейн — это структура данных, элементы (блоки) которой упорядочены в «цепь», и каждый следующий блок цепи содержит в себе хэш предыдущего. Таким образом достигается целостность — изменения могут вноситься только добавлением новых блоков.
Сервис (service). Сервисы в рамках TON могут быть различных типов — в зависимости от того, используют они блокчейн или нет. Например, один (или множество) из узлов сети может обрабатывать некие RPC-запросы по описанному далее протоколу ADNL, не создавая никаких записей в блокчейне — наподобие традиционных веб-серверов. В том числе рассматривается возможность реализации HTTP поверх ADNL, а также переход самого мессенджера на этот протокол. По аналогии с TOR или I2P, это сделает его более устойчивым к различным блокировкам.
В то же время, ряд сервисов подразумевает и взаимодействие с блокчейном, и обработку запросов вне его. Например, для TON Storage — файлового хранилища — не очень разумно хранить сами файлы в блокчейне. В нём будут содержаться только хэши файлов (вместе с какой-то метаинформацией о них), а в качестве «файловых серверов» будут выступать специализированные узлы сети, готовые отдавать их другим узлам по ADNL.
Туманный сервис (fog service). Речь идёт о некоторых сервисах, которые подразумевают децентрализацию и открытое участие в них. Например, TON Proxy — это сервис, который может поддерживать любой участник, желающий предоставить свой узел в качестве посредника (прокси), пересылающего пакеты между другими узлами. При желании он может взымать за это установленную им плату — используя систему TON Payments для микроплатежей (которая, в свою очередь, тоже является туманным сервисом).
ADNL: Abstract Datagram Network Layer
На самом низком уровне взаимодействие между узлами будет производиться по протоколу UDP (хотя допустимы и другие варианты).
Как упомянуто выше, чтобы один узел мог послать пакет другому, он должен знать один из его публичных ключей (и, следовательно, адрес, который им определяется). Он зашифровывает пакет этим ключом и добавляет в начало пакета 256-битный адрес получателя — поскольку один узел может иметь несколько таких адресов, это позволит ему определить, какой ключ использовать для расшифровки.
Кроме того, вместо адреса получателя в начале пакета данных может находиться т.н. идентификатор канала. В таком случае обработка пакета уже зависит от конкретных договорённостей между узлами — например, отправленные в некий канал данные могут предназначаться другому узлу и должны быть ему переадресованы (это и есть сервис TON Proxy). Другим частным случаем может быть взаимодействие напрямую между узлами, но с шифрованием по индивидуальной паре ключей для этого канала (предварительно сформированных по протоколу Диффи-Хеллмана).
Наконец, специальным случаем является «нулевой» канал — если узел ещё не знает публичных ключей своих «соседей», он может посылать им пакеты без шифрования совсем. Это предназначено только для инициализации — как только узлы пришлют информацию о своих ключах, их стоит использовать для дальнейшего взаимодействия.
Вышеописанный протокол (256 бит идентификатора канала + содержимое пакета) называется ADNL. Документация упоминает возможность реализации аналога TCP поверх него или собственной надстройки — RLDP (Reliable Large Datagram Protocol), но не вдается в подробности об их реализации.
TON DHT: Распределённая хэш-таблица
Как в случае с другими распределёнными системами, TON предполагает реализацию DHT — распределённой хэш-таблицы. Более конкретно — таблица является Kademlia-подобной. Если вы не знакомы с такой разновидностью хэш-таблиц — не беспокойтесь, далее я примерно опишу, как они устроены.
В абстрактном смысле, DHT ставит в соответствие 256-битным ключам некие бинарные значения произвольной длины. При этом ключи в таблице — это хэши от определённой TL-структуры (сами структуры тоже хранятся вместе с DHT). Это очень похоже на формирование адресов узлов — и они действительно могут присутствовать в DHT (например, по такому ключу может находиться IP-адрес узла соответствующего заданному абстрактному адресу, если он не скрывает его). Но в общем случае, «прообразы ключей» (их описания, key descriptions) — это метаданные, которые указывают на «владельца» записи в хэш-таблице (то есть публичный ключ какого-то узла), тип хранимого значения и правила, по которым эта запись может впоследствии изменяться. Например, правило может разрешать изменять значение только владельцу — или запрещать изменение значения в меньшую сторону (чтобы защититься от replay-атак).
Кроме 256-битных ключей вводится понятие DHT-адресов. Разница с обычными адресами узлов в том, что DHT-адрес обязательно привязан к IP-адресу. Если узел не скрывает своего IP, он может использовать обычный адрес для DHT. Но чаще для нужд DHT будет заводиться отдельный, «полу-постоянный» адрес.
Над ключами и DHT-адресами вводится понятие расстояния — в этом всё совпадает с таблицами Kademlia — расстояние между ключами равно XOR (побитовому исключающему ИЛИ) от них. Как и в таблицах Kademlia, значение, соответствующее некоему ключу, должно храниться на s узлах, имеющих наименьшее расстояние до этого ключа (s тут — относительно небольшое число).
Для того, чтобы узел DHT мог взаимодействовать с другими такими узлами, он держит в памяти таблицу маршрутизации DHT — DHT- и IP-адреса узлов, с которыми он взаимодействовал до этого, сгруппированные по расстоянию до них. Таких групп 256 (они соответствуют старшему выставленному биту в значении расстояния — то есть узлы на расстоянии от 0 до 255 попадут в одну группу, от 256 до 65535 — в следующую, и т.д.). Внутри каждой группы хранится ограниченное число «лучших» узлов (в плане пинга до них).
Каждый узел должен поддерживать несколько операций: сохранение значения для ключа, поиск узлов и поиск значений. Поиск узлов подразумевает выдачу по заданному ключу ближайших к нему узлов из таблицы маршрутизации; поиск значений — то же самое, за исключением ситуации, когда узлу известно значение для ключа (тогда он просто возвращает его). Соответственно, если узел хочет найти в DHT значение по ключу, он посылает запросы небольшому числу ближайших к этому ключу узлов из своей таблицы маршрутизации. Если среди их ответов нет искомого значения, но есть другие адреса узлов, то запрос повторяется уже к ним.
TON DHT может использоваться для различных целей, например — для реализации торрент-подобного хранилища файлов (см. TON Storage); для определения адресов узлов, реализующих определённые сервисы; для хранения информации о владельцах аккаунтов в блокчейне. Но самое важное применение — обнаружение узлов по их абстрактным адресам. Для этого адрес используется в качестве ключа, значение которого нужно найти. В результате запроса либо найдётся сам узел (если искомый адрес был его полу-постоянным DHT-адресом), либо значением окажется IP-адрес и порт для подключения — или же другой адрес, который следует использовать в качестве тоннеля-посредника.
Оверлейные сети в TON
Описанный выше протокол ADNL подразумевает возможность любым узлам обмениваться информацией друг с другом — правда, не обязательно оптимальными путями. Можно сказать, что благодаря ADNL все узлы образуют глобальный граф TON (в идеале — связный). Но дополнительно предусмотрена возможность создавать оверлейные сети — подграфы внутри этого графа.
Внутри такой сети взаимодействие производится только напрямую — по предварительно сформированным связям между узлами-участниками сети (по каналам ADNL, описанными выше). Формирование таких связей между соседями, поиск самих соседей — автоматических процесс, стремящийся сохранить связность оверлейной сети и минимизировать задержки при обмене данными в ней.
Кроме того, предусмотрен способ быстро распространять крупные широковещательные обновления внутри сети — они разбиваются на части, дополняются кодом коррекции ошибок, и все эти куски пересылаются от одного участника другому. Таким образом участнику не обязательно полностью получить все части, прежде чем пересылать их дальше по сети.
Оверлейные сети могут быть публичными и приватными. Стать участником публичной сети несложно — нужно найти TL-структуру, описывающую её (она может быть публичной — или доступна по определённому ключу в DHT). В случае с приватной сетью эта структура должна быть известна узлу заранее.
Продолжение следует
Я решил разделить обзор TON на несколько статей. На этом данная часть заканчивается, а в следующей я планирую перейти к рассмотрению структуры блокчейна (точнее, блокчейнов), из которых будет состоять TON.
Комментарии (71)
rudinandrey
27.04.2018 21:28Я правильно понимаю, майнить в этом случае будут наши с вами телефоны? или Дуров отказался от этой модели как в биткоинах?
deNULL Автор
27.04.2018 21:34+3Нет. Полезную работу будет выполнять группа крупных узлов — валидаторов. Так как TON подразумевает реализацию Proof-of-Stake, им не нужно будет майнить бесполезные хэши, но они будут рисковать определенными (крупными) ставками, которые у них отберут в случае, если они будут выполнять работу недобросовестно.
Клиент на телефоне будет легковесным узлом — ему не понадобится даже хранить весь блокчейн у себя.
Подробнее об этом и о ролях участников я собираюсь рассказать в следующей статье.lostmsu
27.04.2018 22:38Коммьюнити Ethereum по какой-то причине уже несколько раз откладывает переход на PoS. Думаете Telegram решил все связанные проблемы безопасности? Вам можно будет переадресовывать вопросы на эту тему, если таковые будут?
deNULL Автор
27.04.2018 22:40Не уверен, что смогу на любой такой вопрос адекватно ответить.
Я всего лишь изучил тот документ, о котором упомянул в статье. К команде разработчиков Телеграма я отношения не имею.
NIKOSV
28.04.2018 07:33Тяжело вносить подобные изменения в уже работающую систему — шаг в сторону и на тебе форк. Сколько у них уже есть предложений по той же масштабируемости, всякие там касперы, плазма, а воз все еще там. А ведь технически заимплементировать это не сложно, особенно учитывая размер команды.
С PoS никаких особых проблем нет, по крайней мере не хуже PoW в том виде в котором он сейчас когда все контролируется кучкой пулов. Практически все новые системы сейчас сразу запускаются на PoS.lostmsu
28.04.2018 20:24Как раз главная проблема PoS, AFAIK — это то, что пока не придумали как запретить майнерам майнить форки. На пальцах, если у меня есть 100 PoSCoin, и в сети происходит форк на PoSCoin+1 и PoSCoin-1, я могу майнить оба, т.к. теперь у меня в обоих есть 100 монет.
NIKOSV
29.04.2018 02:33Впервые слышу о такой проблеме. Пусть себе майнят, что в этом плохого? Сам факт того что в случае форка распределение монет сохраняется куда больше проблема, то есть если у меня было 100 PoSCoin, у меня будет 100 PoSCoin+1 и 100 PoSCoin-1. На фоне этого, то кто и сколько майнит это фигня. Не говоря уже что форк сам по себе это проблема с которой нужно бороться, все остальное это следствие.
Основным недостатком PoS всегда считался несправедливый майнинг, то есть тот у кого больше существующих момент будет получать больше новых монет, то есть богатые становятся богаче. Но оказалось что в PoW с этим не лучше учитывая в какую степь ушел PoW со всеми этими ASICами, фермами, и пулами. Поэтому с этим недостатком PoS смирились.lostmsu
29.04.2018 07:43Несправедливый майнинг реальная фигня. Проблема с форками — вот это проблема. Как определить какой из форков настоящий? В PoW это определяется тем, в каком из форков больше работы. Но в PoS майнеру ничего не стоит майнить оба форка.
Странно, что вы не знаете про эту поблему. Она на Википедии в статье про PoS — единственная указана. Несправедливость никого не должна волновать когда речь в первую очередь идёт о компьютерной безопасности вычислений, в данном случае выливающейся в потерю консенсуса.
marshersusanin
28.04.2018 16:47У эфира другая проблема, переход на PoS уже следствие. Изначальная архитектура не подразумевала этого консенсуса, а сегодня, когда сеть насчитывает порядка 20 млн пользователей (инфа со статьи сравнения эфира с еос, ссылку давать не буду, можно нагуглить), а также множество активных проектов (процентов 90 всех токенов — это порождения эфирки), то резко сменить алгоритм консенсуса не выйдет, случится много траблов, в том числе технических. Плюс такой переход породит неизбежный сплит, а также создаст прецедент с хардфорками злоумышленников.
А теперь представьте, что у вас сотни проектов, автономно существующих в экосистеме, и вы просто берёте и переезжаете. Проектам что делать? Часть из них отвалятся просто потому что, часть придётся переносить с бубном, но абсолютно все получат свои клоны в других ветках. Как с ними быть? Вот эту проблему и решает сейчас Бутерин и ко.lostmsu
28.04.2018 17:48Простите, это догадка или вы лично знакомы с Бутериным и командой и знаете какая конкретно проблема останавливает переход?
marshersusanin
28.04.2018 19:37Это логичное умозаключение после некоторых изысканий :) Если моё понимание вопроса неверно, то да поправят меня более сведущие люди. Потому что просто переход от PoW к PoS — невелика задача, многие проекты делают в начале эмиссию через PoW, а после отключают этот тип консенсуса, активируя PoS
lostmsu
28.04.2018 20:12Короче догадка. Банально в той же Вики написано, что для PoS пока не придумали как запретить майнерам майнить форки.
marshersusanin
29.04.2018 09:49Некоторые проекты решают эту проблему списком доверенных нод. В случае разночтения среди уже этих нод, просто обновляется список на новый, с верной веткой, а кошелёк перекачивает блокчейн
Expany
29.04.2018 15:25С нетерпением жду следующую часть, это должно быть более занятно к размышлению.
decomeron
27.04.2018 22:27Вроде П Дуров не сказал ни да ни нет.
Но все равно спасибо, интересно. Буду следить. Вдруг и правда так и получится
bano-notit
27.04.2018 23:42Круто придумано! Я то думал, откуда у телеги деньги на поддержание такой сети, а это оказывается просто был бесплатный набор нод для их собственной P2P сеточки… Круто! Теперь кроме покупки телеги государством есть ещё и другие интересные способы заработка телегой денег.
bano-notit
27.04.2018 23:58Я тут подумал, даже если это выдумка автора, то это реально круто и интересно. Ведь у телеги, да и у любого другого ПО производителя с большой юзверской базой есть возможность сделать ноды и работать с ними.
В общем круто. Спасибо автору, читать было интересно в любом случае)
Alex_ME
28.04.2018 00:38Не понял, для чего тут блокчейн.
По-идее ADNL+DHT+TON STORAGE+TON DNS позволяют построить полностью децентрализованную одноранговую сеть обмена и хранения информации. А блокчейн вводит эти валидаторы, которые делают сеть уже не одноранговойи греют атмосферу майнингом.deNULL Автор
28.04.2018 00:48Блокчейн гарантирует целостность распределённой информации. Тот же TON Storage не может работать без него — файлы лежат на узлах, но их хэши сохраняются в блокчейне. Поэтому отдельный недобросовестный узел не может вмешаться в содержимое файлов. То же с TON DNS.
lostmsu
28.04.2018 00:52Я не понял, блокчейн планируется централизованный что ли, как у Ripple?
deNULL Автор
28.04.2018 00:58В следующей части всё расскажу, правда :)
Не централизованный, но простому человеку будет сложно стать валидатором (просто потому что нужна крупная сумма, которую надо будет отдать в залог). По предварительной оценке, валидаторов будет порядка тысячи.
Можно дискутировать на тему того, насколько централизованным получается такое решение, и на это в документе приводится аргумент о том, что биткоин и эфир сейчас даже более централизованы, поскольку крупных майнерских пулов в них даже меньше (десятки).luntik2012
28.04.2018 08:57валидаторы — это инвесторы, которые будут иметь комиссию за раскрытые блоки? (далёк от темы)
deNULL Автор
28.04.2018 11:02По сути так, да. Они должны будут вкладываться в мощное оборудование (кроме того, что вносить залог), а взамен получать комиссию, взимаемую за транзакции с пользователей.
forcam
28.04.2018 01:09Походу Паша будет рисовать себе сколько угодно.
deNULL Автор
28.04.2018 01:20Есть ещё хорошая новость: если кто-то из вышеупомянутой тысячи валидаторов захочет себе что-то «нарисовать», то любой желающий сможет его поймать за руку, исправить нарисованное, и получить за это небольшой бонус.
Разумеется, вся эта механика будет так же реализована с помощью смарт-контрактов, доступных для контроля другими участниками сети.
neobuh
28.04.2018 08:15Вот здесь опубликован Whitepaper TON на английском от декабря 2017 года.
Вот еще перевод .deNULL Автор
28.04.2018 08:19Если бы вы прочитали хотя бы вступление моей статьи, то увидели бы, что именно на этом документе она и основана.
А второе — это перевод и вовсе другого документа (краткого буклета о проекте, а не whitepaper). Да и не перевод вовсе, а надругательство над языком.
VolCh
28.04.2018 09:40Может из-за Телеграм и блокируют де-факто, не из-за ключей, которые он не дал, даже не из-за ещё одной крипты, о создание криптосети доступной каждому?
А по документу: проблема клиентов за NAT как-то решается? Я вот подумал и понял, что только у одно го проводного роутера у меня есть публичный IP, де-факто статический, но де-юре нет. Все остальные интернеты и девайсы только внутренние адреса имеют.
ankh1989
28.04.2018 11:03Интересно, что общего у TON с IPFS. Идея подобных распределённых хранилищ вообщем то известная (проект IPFS кажется в 2015 году начался, а он основан на всех этих кадемиях которые начались ещё раньше). Вопрос лишь в том, кто это реализует нормальным способом.
Boneyards
28.04.2018 17:16Есть уже проект разрабатываемый в Японии на основе блокчейна и IPFS — proximax, сайт благополучно забанен роскомнадзором: proximax.io через Тор работает, как по мне крутая вещь, там же whitepaper можно почитать.
phillennium
28.04.2018 11:51+1Денис, спасибо за проделанную работу! У меня есть глупые вопросы человека, слабо разбирающегося в децентрализованных системах:
1. Когда читаю «каждое клиентское приложение Телеграма будет включать в себя узел TON», задумываюсь о том, как это будет сказываться на конечных пользователях. Окей, майнить на наших смартфонах никто не собирается, но воображение все равно рисует картины, где это ест у пользователя интернет-трафик, заряд аккумулятора и место в постоянной памяти. Что ты можешь сказать по этому поводу?
2. Как потенциальная децентрализация сказывается на (не)возможности заблокировать Telegram? Станет ли он резко на порядки неблокируемее?
3. Если ты продолжаешь смотреть Silicon Valley, то скажи, насколько корректно проводить параллели между TON Services и текущей версией Pied Piper? :)deNULL Автор
28.04.2018 12:13+1Когда читаю «каждое клиентское приложение Телеграма будет включать в себя узел TON», задумываюсь о том, как это будет сказываться на конечных пользователях. Окей, майнить на наших смартфонах никто не собирается, но воображение все равно рисует картины, где это ест у пользователя интернет-трафик, заряд аккумулятора и место в постоянной памяти. Что ты можешь сказать по этому поводу?
Не думаю, что это будет значительно отличаться от того трафика и потребления аккумулятора, которые есть сейчас. По сути будет возможность делать те же запросы, но по новому протоколу. Единственное, что немного беспокоит — поддержание в актуальном состоянии таблицы маршрутизации (остальные вещи не нужно постоянно синхронизировать). В любом случае, надо будет смотреть, как реализуют.
Как потенциальная децентрализация сказывается на (не)возможности заблокировать Telegram? Станет ли он резко на порядки неблокируемее?
В документе про сервис TON Proxy заявлено, что он может сделать Телеграм “effectively unblockable”. Но мне все равно видится проблема начального поиска узлов сети — кажется, что какие-то IP-адреса в клиенте должны быть захардкожены, чтобы с них началось обнаружение других соседей. Кажется, что для десктопных клиентов будет возможно искать друг друга мультикастом, но для мобильных — сомнительно. Возможно, тут ошибаюсь и меня поправят.
Впрочем, как мы видим, у Телеграма и без всего этого получается быть довольно-таки unblockable.
Если ты продолжаешь смотреть Silicon Valley, то скажи, насколько корректно проводить параллели между TON Services и текущей версией Pied Piper? :)
Стыдно признаваться, но за пятый сезон ещё не брался, поэтому не могу сказать. К выходу следующей части статьи постараюсь исправиться :)phillennium
28.04.2018 12:30Ну там в пятом сезоне пока толком не добавилось информации к той, которая была в четвёртом :)
Несмотря на пост, мне всё-таки не вполне ясно, как TON Services будут выглядеть на практике. Могут ли там возникать масштабные и сложные проекты, или это для простых сервисов? Сервисы будут целиком находиться в инфраструктуре Telegram/TON, или им может требоваться внешний хостинг?deNULL Автор
28.04.2018 12:41+1Примерно любой веб-сервис или мобильное приложение можно представить себе в виде сервиса TON (точнее там и предполагается браузер-подобный интерфейс).
Хостинг понадобится скорее всего, так как я предполагаю, что код самих узлов (реализующих эти сервисы) надо будет поднимать на своих серверах (грубо говоря — некий демон, принимающий запросы из сети TON и передающий обратно ответы).
powerman
28.04.2018 15:13По сути будет возможность делать те же запросы, но по новому протоколу.
Могу ошибаться, но по-моему и из iOS и из Android уже некоторое время как выпилили возможность поддерживать постоянное сетевое соединение. Чтобы что-то передать по своей инициативе приложение должно сначала "проснутся", и делать это по своей инициативе и достаточно регулярно — довольно проблематично. А чуть ли не единственный способ принять что-то по инициативе кого-то другого — получить штатное пуш-уведомление от серверов гугла/эппла.
Для работы обычного мессенджера это не очень критично (статус "онлайн" поддерживать проблематично, но всё остальное работает без проблем), а вот для работы P2P протокола условия практически невозможные.
roman901
29.04.2018 08:30Нет, можно поднять Background service и попросить пользователя отключить энергосбережения для конкретного приложения, буквально на ОК нажать. Xabber и Conversations так делают.
kryvichh
28.04.2018 13:00Мне тут подумалось, система кармы-рейтинга Хабра отдалённо напоминает криптовалюту. Пусть карма — это криптовалюта. Написание статей — это майнинг. У каждого участника свой багаж знаний — это ASIC / видеокарты, и умение их изложить — это электричество. Получение + в карму за статьи — это добыча крипты.
Дальше идут мои измышления на тему.
«Крипту» можно: 1) передать другому участнику (поставить кому-то плюс в карму за статью или комментарий), либо наказать другого участника, взгляды которого вы не разделяете (поставить кому-то минус). При этом собственная карма должна уменьшаться! Чтобы общий объём кармы всех участников (Market Cap) не был нулевым, можно сделать чтобы при минусовании собственная карма уменьшалась бы на 0.5. Но при постановке кому-то плюса карма в любом случае должна уменьшаться на то же количество, чтобы избежать «прокачки» двух или более аккаунтов взаимным плюсованием…videochel
28.04.2018 16:43Хехе…
тогда основная масса минусит то, что не понимает. Т.е. людей смотрящих в будущее и продвигающих новые идеи здесь успешно выпиливают.
Продвигают только тех кто своровал или купил ЧУЖИЕ технологии и зарабатывает на этом деньги — т.е. программисты (из которых состоит весь этот сайт на 95%), продавцы техники и софта.
Ну и кумирами данного сайта — апофеоз, так сказать, здешнего мировоззрения и морали, являются Джобс, Маск и Цукерберг… ))
Что и достаточно.
quod erat demonstrandum. (хотя они же не знают латыни, они же все пипи-эм, айби-эм, и просто «эээм» когда нечего сказать, а рот уже открылся ))))videochel
30.04.2018 06:50Ну хорошо, вы минусите, подтверждая мои слова о вашей детской самоорганиации.)) Это смехотворно.
Но посмотрите например всемирный форум в Санктъпьтербургь, где выступала Касперская. Очень интересное выступление про Теслу Иляна Муска и и.т.д.
Дискуссия Касперской и Чубайса — Цифровой форум 2018 Санкт-Петербург
Всего 15 минут, но очень отрезвляющих минут, для детей, Муска-поклонцев и прочих Мускоидов Головного Музга.)
vire
28.04.2018 16:35Нравится как Павел с братом умело используют технологии. Ведь по сути здесь ничего нового, все это уже было, а теперь заиграет новыми красками. Молодцы!
Напрягает немного, что скоро в любом утюге будет своя валюта, которая естественно не совместима ни с одной другой.
Спасибо за статью, очень интересно узнать особенно про оверлейные сети и дешевый броадкаст в них.deNULL Автор
28.04.2018 16:47+1У них в данной ситуации есть самый важный козырь по сравнению с другими криптовалютам — продукт, популярный среди обычных пользователей (не гиков, интересующихся криптой). Мне кажется, это действительно даст большое преимущество перед другими коинами.
vire
28.04.2018 17:16Даже не сомневаюсь что взлетит, мне этим и нравится Паша как он монетизирует технологии.
А получится должно, как я понял, TOR + этериум со смарт контрактами, для юзера это будет выглядеть как возможность оплатить прямо на месте в чате и немного анонимности.
Вангую, что взлетит из всего этого простая оплата — нажал и оплатил, когда юзера не парят терминами DHT, Proxy, и не нужно держать на телефоне весь блокчейн. А всякие скрытые сервисы, оверлейные сети, смарт контракты — все это крутые технологии, но использовать их будут 2.5 человека.deNULL Автор
28.04.2018 17:23Именно так. Но про сервисы не совсем — кроме внутренних, утилитарных, среди них будут и вполне доступные рядовому пользователю. Наподобие ботов сейчас — но с возможностью легко принимать оплату в тех же грамах (плюс, как я понял, появится нечто вроде «внутреннего аппстора» для всего этого — наподобие того, что есть в WeChat). А для владельцев каналов — возможность публиковать рекламные посты с оплатой за клики/просмотры.
vire
28.04.2018 17:40Чисто технически перепилить сеть с клиент-сервер на распределенную оверлейную — это безумство, особенно когда у тебя уже 200млн юзеров. Это геморрой на ровном месте на всю оставшеюся жизнь и вечные проблемы у юзеров.
Мне кажется, что все останется как есть: мессенджер — клиент-сервер, а эти распределенные штуковины будут прикручены сбоку, а в маркетинге будет использоваться так, как будто вся сеть на этом работает.deNULL Автор
28.04.2018 17:42Будем смотреть.
Честно говоря, зная амбиции Павла, я бы ничему не удивлялся. Как он там в ВК говорил, «сначала вы будете нас ненавидеть, а потом полюбите ещё сильнее».vire
28.04.2018 23:33Очень хочется увидеть в реальной жизни такую масштабную распределенную систему.
Из того что есть на ум приходят тор и интернет)
Тор по масштабам не тянет и тор не вытащит реалтайм траффик 200 млн. домохозяек. А если их будет миллиард или несколько? В централизованной системе просто добавляешь сервера, как масштабируются децентрализованные сети на миллиарды нод — хз, в теории — автоматически и радужные пони, но мы то знаем…
Интернет — как я понимаю заточен под статическую маршрутизацию, все пути тупо прописаны. Но вся эта прелесть сломается на глобальном p2p, а Павел обещает, что он поверх этой системы построит свои софтовые циски и наступит p2p для всех — вот это чудо хочу увидеть в реалайф. И почему-то я верю)
saag
28.04.2018 17:34Что-то напоминает IPFS, что-то CJDNS, может заимствования отовсюду…
powerman
28.04.2018 18:58Что-то I2P… да пофигу, пусть уже хоть кто-то наконец-то реально распространит эти технологии, а называть он это может как угодно, и будут ли юзеры знать чем пользуются — тоже не принципиально.
ivanrt
28.04.2018 17:57А для чего будет токен использоваться в системе? Я так понимаю для оплаты за хранение файлов. Послать сообщение и может быть с картинкой надеюсь будет бесплатным, а то не думаю что взлетит, даже если цена будет чисто символической.
deNULL Автор
28.04.2018 18:02Не думаю, что какая-то из ныне существующих фич внезапно станет платной. Если хранение файлов и затронет, то, скорее всего, очень больших.
А вот сервисы, сделанные сторонними разработчиками — вполне могут (точнее, и там рекомендуется фримиум модель). Плюс рекламная платформа для владельцев каналов.
BlessYourHeart
29.04.2018 08:31Почитав вот это вот все у меня сразу мысль возникла: технологии все усложняются и усложняются, все меньше людей способны понимать как работает та или иная система, все выше порог вхождения в новые области. Последствия этого придется решать рано или поздно. Интеллектуальная сегрегация не за горами. Будут ли учтены уроки прошлого или же появится новая техно-элита, с большими деньгами, амбициями и желанием вести народы куда то…
NIKOSV
30.04.2018 01:59Та да, что-то оно все не а ту степь идет — блокчей в блокчейне запихнутый в блокчейн. Вместо того чтобы концептуально менять подход, все пытаются построить какие-то костыли вокруг блокчейна, будто блокчейн это единственное правильное решение. Ладно если бы костыли еще работали, но ведь там не без компромиссов.
Expany
Очень напомнило мне собственную идею организации исключительно своей сети(была такая идея, но умерла за не имением технологий), поверх существующего интернета. Занятно, подписался, есть о чем подумать
rudinandrey
в сериале «Силиконовая долина» это как мне кажется экранизировали. Подлость ситуации в том, что люди используют чужие ресурсы в собственных интересах. Типа а что, мобильники сейчас мощные, все равно лежат в карманах и не используются.
asandler
Тут, кажется, соль в том, что можно назначить плату за использование узла. Т.е. хочешь вычислять что-нибудь на телефоне в моём кармане — заплати чуть-чуть
domix32
Что-то вроде ZeroNet и Matrix?