Оригинал.
24.12.2017
Биткойн, всё ещё главная криптовалюта планеты, переживает очередной непростой период. С одной стороны, всё складывается так удачно, что и желать лучшего нельзя: наконец-то крупнейшими биржами запускаются фьючерсы на биткойн, что означает фактическое признание миром традиционных финансов и гарантирует внимание со стороны крупных инвесторов, а значит, и новые высоты обменного курса.
С другой стороны, именно внимание «китов», принёсших миллиардные суммы, беспрецедентно обострило проблему ограниченной пропускной способности сети биткойн. Подробный рассказ об этом здесь уже был (см. «Bitcoin в режиме критической перегрузки»), но сейчас стало ещё хуже: каждая операция теперь требует уплаты сотен рублей комиссии — и даже это не гарантирует, что деньги будут перечислены быстро.
В свете этого, конечно, полно прогнозов относительно курса биткойна на ближайшие месяцы, но... Как и год, и три, и пять лет назад, обменный курс криптовалюты к валютам обычным на самом деле не важен. Важно то, как используется криптовалюта и какие технологии лежат в её основе. Поэтому если уж строить прогноз, логично отыскать в истории ИТ проекты, идейно и технически близкие Bitcoin, и экстраполировать их опыт.
И такие проекты, оказывается, есть — только не в сегменте электронных денег. Очень о многом задуматься и многое рассказать о будущем первой криптовалюты способна биография проекта Gnutella: первой полноценной файлообменной P2P-сети. Те из вас, кто застал нулевые, конечно её вспомнят. Тем, кто не застал, полезно будет эту страницу прочитать. Потому что хоть Gnutella теперь уже ни на что не влияет, она всё-таки ухитрилась выжить на протяжении почти целых двух десятилетий, пройдя через невообразимое число революций и кризисов.
Что за P2P, вероятно, спросите вы? P2P — аббревиатура, расшифровывающаяся как peer to peer, то есть буквально «от узла к узлу», от равного равному. Это одна из основополагающих цифровых технологий третьего тысячелетия. Расцвет её, всплеск идей, пришёлся как раз на первую половину нулевых годов — и сегодня мы по сути всё ещё лишь пожинаем плоды того мозгового штурма.
В классической модели интернета, навязанной бизнесом потребителю, когда интернет стал публичным продуктом (то есть в начале 80-х), участвуют две неравных стороны: сервер и клиент. Клиент — это пользователь, который только потребляет контент. Сервер же обычно принадлежит бизнесу и контент поставляет. Возможности, права и обязанности участников этой схемы разные. Например, если владельцы сервера не желают чего-то делать, у клиента нет возможности их заставить. Вот так и работал Интернет, а потом и WWW, до конца 90-х, когда появились первые P2P-сети.
В них классическую схему нарушили: каждый участник получил равные (или почти равные) права со всеми. А первым их применением стал файловый обмен: Napster, KaZaA, BitTorrent и прочие — всё это P2P. Если интересны подробности, пятнадцать лет назад я написал большую статью для «Домашнего компьютера», не утратившую актуальности и сегодня: см. «Рождённые равными», там всё в деталях, но просто.
А Gnutella, появившаяся в 2000-м году, стала первым образцом «чистого P2P», то есть такого, где участники наделены абсолютно равными правами. В ней впервые не было центрального узла, поломка которого помешала бы работе сети. И каждый участник в равной степени с остальными помогал «тащить» сеть: в частности, обрабатывал чужие поисковые запросы.
Это очень смелое решение, потому что прохождение сигнала в такой сети, разумеется, не может гарантировать никто: пользователи предоставлены сами себе, захотел — подключился, захотел — ушёл... И тем не менее Gnutella просуществовала больше полутора десятилетий и работает и сейчас. Да, она подверглась не одной реформе, но в общем и целом её структура та же, что и семнадцать лет назад. И вот какие три главных наблюдения в её биографии можно сделать.
Первое: «чистый P2P» действительно устойчив к внешним атакам. Все те годы, что Gnutella работает, она была и остаётся бельмом на глазу сторонников «строгого копирайта», то есть тех, кто выступает против бесконтрольного обмена медиафайлами. Однако же поделать с «Гнутеллой» они ничего не смогли. Да, не раз и успешно через суды запрещались некоторые программы для подключения к сети Gnutella. Однако, поскольку исходники свободны и протокол, естественно, тоже, сама сеть Gnutella продолжала функционировать. Центрального же узла, который можно было бы выключить (как это сделали с печальной памяти Napster), здесь нет.
Второе: «чистый P2P» практически оказался не самым эффективным решением. После достижения некоторого размера P2P-сети, роли между её участниками лучше перераспределить слегка неравно. В Gnutella, в частности, сильнее нагрузили узлы, которые подключены к сети дольше других. Это помогло сделать работу сети более стабильной и повысить производительность. Кроме того, здесь научились транслировать поисковые запросы не всем без разбору (так что даже один запрос порождает лавину), а по наиболее вероятному пути — и это тоже облегчило сетке жизнь.
Третье: несмотря на то, что Gnutella сыграла революционную роль, доказав практическую применимость «чистого P2P», несмотря на то, что она работает и сегодня, доля её в общем файловом обмене невелика. В лидеры выбились другие файлобменные сети — успешно позаимствовавшие часть функций у «Гнутеллы», но поступившиеся децентрализацией ради удобства пользователей. Сегодня, например, это BitTorrent, в котором произошёл возврат к частичной централизации: списки файлов хранятся на сайтах с торрентами, что, конечно, снижает устойчивость к атакам (сайт можно закрыть), но и снижает нагрузку на клиентские устройства, от которых не требуется тратить ресурсы на поддержание работы сети.
Таковы уроки Gnutella. А вот теперь давайте переключимся и попробуем экстраполировать их на Bitcoin и прочие криптовалюты (львиная доля которых, хоть и не все, построены по его подобию). Биткойн — суть, чистая P2P-структура, только ориентированная не на файлообмен, а на поддержание так называемого блокчейна, то есть «гроссбуха», куда заносятся операции всех пользователей. Центрального узла здесь тоже нет, а «гроссбух» хоть и один на всех, но хранится тысячами копий на компьютерах участников. Для электронных денег Bitcoin стал первой чистой P2P-системой, идейно и технически повторив революцию Gnutella. Вот почему взлёты и падения «Гнутеллы» могут быть, пусть с оговорками, распространены и на биткойн. Давайте по порядку.
Первое: не бойтесь, что Bitcoin запретят или отключат. Ни крупным спекулянтам, ни банкам, ни государствам это не под силу. Атака на уязвимые элементы чистой P2P-структуры приведёт максимум к временным перебоям в работе. Но спрос со стороны пользователей, пока ещё не удовлетворённый другими проектами, поможет эту работу восстановить: будут написаны форки биткойн-кошельков и системного софта, откроются новые форумы, доработан протокол... Спасибо Сатоши, исходники Bitcoin опубликованы под свободной лицензией.
Второе: от «чистого P2P» разработчики со временем, вероятно, уйдут в сторону некоторой неравномерности прав и обязанностей, не вредящей стабильности. Собственно процесс этот мы уже наблюдаем. Большинство простых пользователей Bitcoin уже не держат полноценный Bitcoin-узел, потому что это слишком накладно в смысле вычислительных ресурсов: требуется хранить полную базу транзакций, тратить трафик на поддержание работы сети. Вместо этого пользователи всё чаще подключаются через «лёгкие», неполноценные, кошельки: такие требуют существования компании-посредника (например, Blockchain.info), зато использоваться могут даже на смартфоне или в браузере.
Как и в случае с «Гнутеллой», потеря децентрализации, конечно, вредит, но не фатальна. Да, пользователи «лёгких» кошельков более уязвимы к атакам извне: они могут пострадать, если их обманет компания-владелец кошелька, если эту компанию ограбят, либо её закроет суд. Зато такое перераспределение ролей делает пользование криптовалютой проще и облегчает некоторые реформы (в частности, становление Lightning Network, которая примет на себя мелкие частые платежи, не нагружая блокчейн).
Наконец, третье и главное: фундаментальные ограничения. Блокчейн произвёл революцию, но он же стал и главным препятствием для развития. Пора признать, что система, построенная на блокчейне, принципиально не в состоянии справиться с большим числом операций. Сегодня в блокчейн биткойна, грубо говоря, каждые 10 минут заносится один миллион байт информации об операциях (один «блок»). Само собой разумеется, что чем короче удастся каждую операцию записать, тем больше в этот мегабайт операций поместится. Поэтому работа по минимизации размера операций кипит — и спектр идей по-настоящему впечатляет.
Но даже со всеми реализованными (Segwit) и реализуемыми (Lightning Networks (впрочем, начало её эксплуатации дарит надежду), схема Шнорра, MimbleWimble, Rootstock и др.; есть хорошая англоязычная статья на эту тему) реформами, даже допустив увеличение размера блока или частоты его выпуска, блокчейн всё равно останется узким местом. Он не в состоянии вместить те миллионы операций в секунду, которые требуются от него при условии, что Bitcoin станет альтернативой обычным деньгам и пластиковым картам.
И, разумеется, это должно быть как-то компенсировано. Сегодня неспособность Bitcoin переварить (грубо) больше шести операций в секунду компенсируется высоким размером комиссии и/или временем ожидания (операции с небольшой комиссией подтверждаются часами и даже сутками). Собственно, если биткойн готов удовольствоваться только лишь ролью замены золоту, то есть инвестиционного инструмента, хранилища ценности, можно так всё и оставить. Да, операции с биткойном будут очень дорогими и небыстрыми, но и пользоваться им будут только крупные инвесторы и редко.
Однако если биткойн претендует на замену обычным деньгам, то есть нацеливается на простых людей и мелкие покупки, его придётся радикально реформировать. Решение, в общем, известно — вот только для Bitcoin оно выглядит неосуществимым!
Суть: если блокчейн — проблема, от блокчейна необходимо отказаться. Нужно перейти к распределённому гроссбуху/блокчейну — который не хранится целиком ни на одном узле, а вместо этого разбросан по всем узлам частями. Это навсегда снимет ограничение на число операций в секунду и сделает операции практически бесплатными. «С нуля» такую схему пытаются реализовать в проекте IOTA — уже вошедшем в десятку популярнейших криптовалют. Однако перевести на распределённый блокчейн Bitcoin кажется невозможным: это потребует слишком больших преобразований, в том числе отказ от майнинга, переосмысление алгоритма эмиссии новых монет и мн. др.
Вместе с тем нужно понимать, что и распределённый блокчейн — тоже не панацея. У него тоже есть аналоги среди файлообменных P2P (см. Freenet, где реализовано распределённое хранение файлов), которые страдают от своих проблем. Если коротко, такая схема весьма накладна для клиентов из-за высоких требований к ёмкости на жёстком диске, интернет-каналу и вычислительной мощности/энергопотреблению.
Так что не ставьте пока на биткойне крест. Нам предстоит интересный, насыщенный событиями год. Если вы простой пользователь, постарайтесь скорее разобраться с кошельками, поддерживающими SegWit/Lightning Network. Так вы поможете и себе, сэкономив на комиссионных, и сообществу — ускорив реформы, которые расширят пропускную способность сети в разы, если не на порядки, и устранят потребность во многих альткойнах (Ethereum, LiteCoin и др.), просто-напросто заменив их биткойном. Если же вы инвестор, наблюдайте! Прочитав этот текст, вы теперь знаете больше, чем 99% «вложившихся в биткойн» в надежде на быструю наживу. Время сделать выводы у вас есть.
P.S. Продолжение разговора: «Биткойн и Самый Важный График: Lightning Network стартовала!».
Bitcoin,P2P,криптовалюта,IOTA,распределённый_блокчейн,блокчейн,Gnutella,open_source