ББ-080: Егор Хомяков (Fairlayer) о проблемах Lightning и платёжных каналах с кредитами

Егор Хомяков — исследователь в области информационной безопасности. Обсуждаем перспективы layer-2, архитектурные недостатки биткоина и Lightning, идею Extended Lightning Network (сеть платёжных каналов с кредитами) и её имплементацию в проекте Fairlayer.

  • 00:30 как Егор пришёл в security research (спойлер: сломав Github)
  • 04:06 где гость расположен на шкале биткоин-максимализма?
  • 05:40 архитектурные проблемы биткоина: давайте добавим снэпшоты!
  • 13:20 on-chain governance как неограниченная власть большинства?
  • 17:20 какое отношение скрипты имеют к governance (снова вспоминаем прекомпайлы)
  • 21:37 Lightning: проблема с ликвидностью как уловка-22
  • 29:42 почему раскрутка Lightning отличается от биткоина
  • 34:19 Extended Lightning Network (XLN): чему нужно учиться у реально работающих систем. Частные счета в центральном банке и Coinbase как кастодиальный L2
  • 41:21 и как повесить долг на банк с помощью balance proof
  • 44:45 можно ли отказаться неколлатеризированный платёж?
  • 47:41 зачем нужен блокчейн с постоянными identity?
  • 50:41 проект Fairlayer
  • 54:20 перспективы IOU на базе биткоина
  • 56:20 перспективы интеграции Fairlayer в Lightning
  • 58:46 proof-of-work себя изжил? Перспективы proof-of-stake и proof-of-authority
  • 1:08:17 перспективы блокчейн-технологий
  • 1:09:51 почему биткоин ещё жив?
  • 1:13:43 что смотивирует банки внедрить блокчейн?

Ссылки:

Поддержите подкаст!

basicblockradio.com

 

Всем привет. Снова в эфире подкаст «Базовый Блок». Это подкаст про блокчейн. И с вами Сергей Тихомиров и Иван Иваницкий.

Привет, друзья.

И сегодня у нас в гостях Егор Хомяков — security research. Привет.

Привет. Рад быть тут.

Спасибо, что зашел. Мы собираемся сегодня поговорить преимущественно про всякий второй уровень. Биткоин Lightning, в чем его недостатки, и как можно эти недостатки решить. Но прежде, чем мы начнем разговаривать о главной теме нашего выпуска, Егор, я хотел бы попросить — ты мог бы пересказать потрясающую кул-стори, которую я прочитал у тебя на медиуме о том, как ты пришел в security research, как ты нашел уязвимость и вот эта вся история?

Да, это довольно дикая история. Я работал программистом в районе 2010-2011 года. И плотно работал над Ruby Rails проектами. И совершенно случайно нашел довольно крупную зиму с Github’и и тем образом совершенно поменял направление своей карьеры с программинга на поиск уязвимостей. С тех пор я 5 лет ездил по миру и консалтил удаленно разного рода проекты через консалтинг секурити и в том числе  под конец уже этой деятельности большая часть стала связана как-то с криптовалютами. И потом я уже перетек в работу над архитектурой криптовалют, потому что там security как никогда лучше реализуется, потому что там понятно, как профит получить сразу, потому что ты взламываешь и получаешь от этого понятный и осязаемый профит, вместо того, чтобы это было некая XSS на каком-то сайте социальной сети. То есть, проблема уязвимости, как правило, security — что они очень сложно монетизированы, даже если это серьезный браузерный баг. И очень сложно продать и превратить в деньги. А вот всё, что связано с криптовалютами и security — оно напрямую деньги. И меня это так завлекло, что последние 3 года я перестал брать клиентов на аудит и сконцентрировался на архитектурах, особенно на layer-2 проектах.

Давай немножко ещё вернемся. Просто интересно. Казалось бы с точки зрения вообще такой общей истории, время относительно недавнее — какой-то 2011 или 2012 год, да? Когда это было? 2011? Как отличался вообще пейзаж в области информационной безопасности тогда и сейчас? Ведь, видимо, если можно было в таком известном проекте найти такую вопиющую уязвимость и при этом её не починили быстро, как-то вещи были совсем по-другому устроены.

Я тоже был весьма удивлен. То есть, баг-то нашелся просто путем тыканья. С тех пор мое мировоззрение поменялось — я понял, что на самом деле баги повсюду, их просто надо тыкать. В 8 крупных проектах можно найти очень серьезную уязвимость просто если поверить, что они там есть и попытаться найти. То есть, никто не застрахован от этого. В идеале, конечно, пробовать не те уязвимости, про которые все знают, а искать что-то новое или вот на грани. Потому что тот баг с mass assignment, он был технически всем известен, но это insecure by default, это проблема, когда если человек не делает лишние действия, то он не безопасен. Это старая-добрая сказка, когда кто-то поленился и поэтому он остался не в безопасности. И в этом главная задача любого security research’a — всё пытаться толкать в сторону дефолтной безопасности. И по поводу как было тогда security и сейчас — я не знаю, это сложный вопрос. По-моему, она и тогда и сейчас была плохой. То есть, она во все времена была плохой, потому что очень сложно толкать всё в дефолтную безопасность, все предпочитают простоту и удобство — и что тогда, что сейчас. Может, чуть-чуть улучшилось всё.

Да, но тогда оставим ссылку обязательно в шоуноты на эту потрясающую историю, потому что я когда готовился к эфиру, я её читал и вспоминал, что когда-то, несколько лет, мне кажется, я это уже читал и где-то это уже видел. То есть, это широко очень разлетелось.

Это было просто life changing момент, так сказать. То есть, в один день я превратился из программиста в конторке — мне стали написывать в разные Твиттеры и Фэйсбуки: «Давай, чувак, что-нибудь замутим. Приходи к нам на работу». Не конкретные офферы, но прям заинтересованность была видна — это 20 писем за день пришло. Я тогда сильно поверил в себя. Но это всё-таки была случайность. Это не то, чтобы я над этим багом работал годы — это просто тыканье, и оно произошло.

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

Вопрос прям напрямик. Я реально на шкале биткоин-максимализма не могу себя расположить не как максималиста.. Из всех криптовалют я предпочитаю биткоин, да. И если мне предложат перевести деньги, я в первую очередь предпочту биткоин, потому что остальное не в моем вкусе. Но при этом жуть какие есть проблемы в архитектуре биткоине и в твердолобости его биткоин кор разработчиков, поэтому я ни там, ни там. То есть, я свято верю в layer-2, но в Lightning есть крупные проблемы, про которые я постоянно говорю. То есть, я не в лагере биткоин кэша. Блок сайз увеличивать нельзя. его надо даже уменьшать, но это не значит, что Lightning — ответ на все вопросы. То есть, такого третьего лагеря просто не существует. Поэтому я не знаю, куда расположить на шкале биткоин-максимализма.

Можно сказать, что и я тоже принадлежу к этому лагерю. То есть, лагерь людей, которые считают, что биткоин — он объективно №1, но помимо этого ещё могут быть разные интересные вещи другие. 

Лагерь реалистов, наверное.

Да, лагерь реалистов. Мне хочется, чтобы люди к нему как-то примыкали, потому что, мне кажется, здравый смысл в наибольшей степени здесь именно присутствует. Но я хотел бы спросить тебя ещё про биткоин. Ты сказал, что там есть дефекты в архитектуре самого биткоина на первом уровне. Вот какие главные проблемы по твоему мнению стоят перед биткоином?

Ой, я с удовольствием про это поговорю. Да, там есть список. Это довольно долго обсуждать, потому что всё, что я буду говорить, сейчас будет contrarian — противоположно общей идее. Первое самое главное что бы я изменил — это добавление системы snapshot, потому что сейчас так как block size маленький, любой девайс может быть full node, и стоит быть full node — это реально дешево.  Ты скачиваешь 2-4 гигобайта в месяц, если у тебя уже рабочие фулноды — это всё, что требуется, чтобы поддерживать синхронизацию. Единственная проблема — это именно genesis sync, который около 200 гигабайт тебе надо за раз скачать и пропроцессить. Всё это решается тем, что определенный набор облачных нод, они делают снэпшот самого себя — то есть, архив какой-то версии синхронно. Раз в день, например, или раз в сто блоков. И все об этом договариваются. Таким образом, когда новый человек подсоединяется к сети, он не скачивает снэпшот-1, то есть снэпшот, который был сделан на 1-й блок. По сути, генезис версия — это тоже снэпшот, просто он был сделан в момент создания биткоина. Всё, что нам надо — это продолжить эту традицию создания снэпшотов в какие-то reasonable участки времени, а не раз в 10 лет.

То есть, это примерно то же самое, что сейчас уже есть в исходном коде Bitcoin core, Чекпоинт, где захардкошены несколько номеров, блоков?

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

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

Я пытался это продвинуть, потому что это скорее не по линии биткоина, а по линии сайта bitcoin.org. Я создавал там пул-реквест и в какой-то степени люди были согласны с тем, что снэпшоты — хорошо. Но в данный момент времени, при процессинге биткоина мне детерминистично, чейнстейт, вот эта папка, она меняется. То есть, если у нас есть два сервера, оба делают снэпшоты, они не могут друг с другом говорить, чтоб у них был одинаковый хэш. Это было год назад. Возможно, сейчас это изменилось. Но проблема в том, что это вообще не видят, как некую drastic issue, то есть не видят это, как серьезную проблему, которая самое худшее, что сейчас есть и что проще всего изменить. Потому что вот этот genesis sync, он абсолютно бесполезен, он не добавляет никакой безопасности. Ты только что скачал код, которому ты доверяешь на 100%. Какая разница что там будет — стейт, который был вчера или стейт, который был 10 лет? Ты всё равно ему доверяешь. Какая разница? То есть, это trust first used   — ты доверяешь на момент скачивания. Такая модель безопасности всех биткоин нод. И с этим уже ничего не сделать. Это довольно долгий topic, потому что есть там такой corner case, когда реально генезис синк полезен. Он полезен в тех случаях, когда это proof of work — то есть, случай с биткоином. В proof of stake снэпшоты ничем абсолютно не отличаются, потому что ничто не стоит подделать 10 лет proof of stake истории. Второе — это когда ты полностью проаудировал весь код, каждую библиотеку. Практически нереалистичный сценарий. И там ещё пара детелай. То есть, есть некий corner case, когда реально генезис синк безопаснее, но для большинства юзеров снэпшоты должно быть дефолты. Это то, во что я верю больше всего и что стоит имплементировать в ближайшем будущем. 

Я правильно понимаю, что речь идет о том, что на части нот всё-таки держать полную историю, а большую часть запускать на смартфонах и там опираться на последний снэпшот?

Не совсем даже полную историю.  Я предлагаю определить некий грейс-период. Например, 1 год. И после 1 года по консенсусу просто никому не рекомендовать держать историю. То есть, ты можешь её держать. Для чего нужна история? Хранить мне, пользователю сети, историю? Она мне не нужна, потому что я пользуюсь своим стейтом, история просто лежит отдельно. Она мне нужна, чтобы помочь другим запрыгнуть на тот же стейт, где нахожусь я. И мы просто все должны коллективно изменить этот грейс период бесконечности, какой он сейчас. То есть, все держат это будет 20 лет — значит 20 лет истории. Поставим это какое-то более адекватное время. То есть, человек ушел в армию на год — давайте поставим 1 год и 1 месяц мы держим историю, чтобы он за месяц засинхронизировался. То есть, мобильные ноды, им вообще не нужна никакая история — должно быть prooned node by default. То есть, мобильному телефону никакие блоки хранения даже на секунду не нужны, он запроцессил блок и выкинул. Хранить должны только облачные ноды, потому что они с кем-то делятся, то есть они полезную работу производят с этими данными, которые они у себя хранят. А всякие юзер девайсы, им не нужна история вообще, их интересует только текущий стейт, на который они накидывают будущие транзакции, новые транзакции.

То есть, грубо говоря, те транзакции, которые были 2 года назад, они всё равно все в стейте содержаться?

Конечно. Это вообще огромнейшая просто проблема, что люди говорят о Блокчейне вместо того, чтобы поговорить о replicated state. Потому что вещи не хранятся на блокчейне, они хранятся именно в стейте. То есть, блокчейн — это история. Нельзя  хранить что-то в истории, потому что ты с ней не сможешь обратиться, если она не сохранился в стейте. Если ты, например, в эфире, в транзакции что-то напишешь, но она никак в контракте не зафиксируется, то ты не хранишь на блокчейне, потому что большинство нот, которые prooned, они никак это объем данных не сохранят, потому что он просто прольется в пустоту. То есть, люди хранят вещи в стейте и то же самое надо делать с мобильными девайсами и со всеми девайсами. А историю вот эту должны хранить только те, кто 24/7 онлайн и готовы делиться ею. То есть, некие валидаторы или просто экономически важные ноды. То есть, эта история как сейчас работает 10 лет — это абсолютный overwork, это бессмысленная трата computational ресурсов и на диске.

Окей. Давай ещё одну какую-нибудь проблему именно с биткоином и дальше пойдем именно в Lightning. Какая-нибудь самая суровая, самая опасная?

Я бы сконцентрировал скорее фокус именно на этой первой, потому что она самая простая в исправлении и наибольший эффект произведет, потому что сейчас любой может быть фулнодой вот прям с легкостью. Все эти истории, что фулнодой стать тяжело — это из-за генезиса. Но раз уж у нас есть ещё один слот на ещё одну проблему, то там она уже реально contrarian, потому что я считаю, что смарт-контракты и скрипты, они не нужны. Вот эти Bitcoin Script и Ethereum Virtual Machine — это такие интересные задачки для людей, поразбираться, посоздавать скрипты. Но это просто было не нужно, потому что можно было создать on-chain governance, как это, например, делают Tezos. Но они зачем-то тоже добавили язык смарт-контрактов. Просто любой функционал, договариваться с помощью текущего консенсус-механизма, будь это майнеры или стейк, и добавлять функционал через патчи, как это сделано на любом сайте, например. То есть, мы сейчас добавляем pull request на сайт, некий набор владельцев этого сайта его одобряют и таким образом деплоят на сайт. То же само делается и с Блокчейном — pull request добавляется у фулноду, каждый человек, у которого есть voting power, он этот pull request изучает. То есть, это некий diff внутри своего кошелька. Голосует за него. И через несколько недель этот diff оплаится в один момент на всех нодах сразу. Таким образом, мы просто избавляемся от проблемы виртуальной машины, потому что они супер сложные, что на Биткоине, что на Эфире. Невозможно создать layer-2, который безопасен и.. 

Подожди. У меня есть возражение уже. Даже есть два возражения. Одно такое скорее политико-идеологическое, а другое технологическое. Политическое возражение заключается в том, что механизм governance, даже если мы представим, что он работает, всё равно это получается некая неограниченная власть большинства, что, мне кажется, не совсем правильно, потому что, если сравнивать с политическими системами, то в развитых демократиях,  с одной стороны, большинство решает на выборах какую-нибудь партию и т.д., с другой стороны — пришедшая к власти партия обычно ограничена Конституцией, какими-нибудь законами и т.д., большинство не может проголосовать, чтобы съесть на ужин меньшинство. А в блокчейнах получается, что да — если у тебя будет 51%, который примет решение у остальных 49% отобрать все деньги, они его примут с помощью governance и всё замечательно заработает. Вот это же не совсем такой исход, который мы бы хотели?

Сейчас это в той мере уже и рабоатет. То есть, есть Биткоин Кор, есть некие github репозитории у каждого проекта, которые задают тон. Ethereum хардфодкается, например, когда ему это удобно. Биткоин избрал другую стратегию -они сортфоркаются 14:17 и какие-то идеологические пункты давления. Но суть приблизительно такая же — то есть, Биткоин кор задает некую адженду, которую все преследуют. И если они что-то совсем плохое сделают, то тогда толпа якобы сделает хардфорк от них в сторону, что-то поменяет, сменет команду. И тут тот же принцип — когда некий дифф добавляется.. Просто разница в том, что это становится более транспарент. Тот же самый процесс становится более прозрачным, потому что сейчас это один человек добавляет один диф на гитхабер репозитории, все качают с некого сервера гитхаба. А это будет — тот же человек добавляет этот дифф на все фулноды сразу, все остальные валидаторы четко голосуют. То есть, гитхаб не может сам в свою очередь поменять код биткоин кошелька. Точнее гитхаб это может сделать, а в случае с on-chain governance это просто невозможно. То есть, нужны реальные подписи реальных валидаторов. И потом, у нас опять-таки delay period в несколько недель — когда реальные пользователи могут подумать и увидеть этот diff, и понять, что он сумасшедший, и сделать харфорк от меньшинства. То есть, та же ситуация, просто мы даем больше власти большинству, потому что сейчас меньшинство может делать пакости и это будет заметно, потому что гитхаб репозиторий, за ним никто постоянно не следит. Гитхаб сервер, например, могут взломать и какому-то одному человеку могут залить malware, а другому нет. То есть, просто добавляется транспарентности в тот же самый процесс, который уже существует. Глупо сказать, что люди держат биткоин кошельки годами без обновления. Они их как-то обновляют. А как они их обновляют?  С централизованных серверов, которые были загружены непонятно кем.

Как непонятно кем? Мне кажется, там коммиты же подписаны. И у главных биткоин разработчиков есть какие-то PGP ключи. Они скорее всего есть там в web of trust, кто-нибудь их лично встретил, эти ключи, друг друга они подписали, как это бывает.

Под «непонятно кем» я не имею ввиду, что это непонятно какие люди, а то, что это некий понятный entity, а не общий консенсус. То есть, это намного меньший набор людей, которые могут изменить код, чем если бы это было прописано в самом процессе обновления. На самом деле, есть люди, которые эту идею передают намного лучше. Можно почитать Tezos whitepaper, Polkadot, Cosmos. То есть, почти все современные блокчейны рассматривают on-chain governance в том или ином виде, поэтому я не хочу эту идею особо распространять, потому что она реально  уже не contrarian даже в новой волне.

Окей. Почему тогда биткоин в эту сторону не движется? Есть какие-то контраргументы со стороны core-разработчиков?

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

Многие говорят, что это в том числе его security model, потому что те же заходы со стороны государств именно через разработчиков, попытки протолкнуть какие-то сомнительные предложения. И здесь его консерватизм — как раз одна из ступеней его защиты.

Да, в какой-то степени. Поэтому я и рассматриваю больше какие-то новые архитектуры, потому что завязываясь на биткоин, ты завязываешься на этот консерватизм и не можешь позволить воображению просто думать «А что, если бы?»

Извини. Я хочу просто ещё к предыдущему пункту вернуться. У меня ещё остался не совсем проясненный вопрос. С governance понятно, идея понятна. Но при чем здесь смарт-контракты и скриптовые языки? Потому что, насколько я понимаю, процесс governance, который ты описал, представим, что он работает, он определяет, как развиваются правила всей сети в целом. А скрипт, Bitcoin Script или Ethereum смарт-контракты нужны для того, чтобы определить, по каким правилам ты сможешь забрать, условно, биткоины, которые я тебе пошлю. Вот эта программируемость происходит на уровне конкретных транзакций, а не на уровне всей системы.  Это всё-таки разные вещи, не находишь?

Да, это разные вещи. Тут уже немного субъективное мнение. Наблюдая за сетью всех этих смарт-контрактов, нельзя не заметить, что они очень похожи друг на друга. Взять те же токены. То есть, весь этот функционал, всё, что сделано на уровне смарт-контрактов — например, payment каналы, эти plasma сети и всё, что угодно, оно всегда будет реализовано намного чище, понятней, безопасней и быстрее, если оно засунуто прямо в код консенсус. Что есть код консенсус? Например, в реестрах есть набор контролеров и экшенов. Точно так же работает код консенсусы — там есть экшн transfer money. И, например, в Биткоине только такой экшен и есть. Только там ещё есть attachment в виде байт кода. Этот attachment нужен, чтобы именно люди могли добавлять функционала. А что есть мы весь функционал выкинем из байт кода и засунем его на уровень именно консенсуса. Чтобы если тебе нужен мультисиг, то у нас будет именно такой функционал мультисига супер удобный. Пусть не такой гибкий, как на байт коде, но зато он будет более читемый, безопасный и понятный, потому что он сделан не с помощью виртуализации, а с помощью всех известных нам языков программирования, том же C++.

Нет, где он будет этот мультисиг? Вот ты на C++ плюс плюс написал мультисиг, кто его будет исполнять?

Тот же C++. То есть, это будет новый код для транзакций. Я вижу транзакции просто как череду пост запросов к сайту. То есть, был некий сайт, который мы зареплицировали. И все пост-запросы мы теперь кладем в блоги. И те контролеры, которые эти пост-запросы обрабатывают, сейчас это. В Этериуме, например, это перевод денег и выполнение контракта, а мы уничтожаем выполнение контракта, такую абстракцию виртуальной машины, и все функции, которые она ранее выполняла, мы их реализовываем нативно, добавляем сами экшены эти. То есть, сама  фулнода на языке, на котором она написана, мы реализовываем тот код, который может понадобиться юзерам. Это уже становится не так гибко, но намного более читаемо и более крутые вещи можно делать — например, использовать какие-то крутые базы данных, реляционные или графовые. Что невозможно в языках смарт контракта. Там только key-value, например.

Окей. Я понял, что это мне напоминает. И мне кажется, это уже не первый выпуск подкаста за последнее время, когда кто-то что-то рассказывает, а я говорю: «Ага, вот что это мне напоминает!». А напоминает мне это precompile в Эфириуме. То есть, там есть контракты, которые реализованы таким образом, что их логика имплементирована прям на том языке, на котором сама нода написана. И как захардкоженая логика там. 

Да, да. Только для тебя это как precompiled контракт, а для меня контракт — это непонятно вообще зачем нужна абстракция, когда можно было просто сделать по-простому, по-человечески в самом коде, а контракты пошли не туда. По той причине, что всё равно ноду надо обновлять. То есть, governance процесс для самого базового слоя всё равно будет существовать. А если он существует, почему бы нам через этот же governance-механизм не реализовывать всякие вещи типа токенов, мультисигов и прочего, просто что люди просят. Это мое мнение и я не так на него настаиваю, я просто считаю.. Как с security стороны я смотрю на солидити и понимаю, что это никогда не станет mature. То есть, на этом никогда люди не смогут написать реально сложную, мощную систему. 

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

Будет, если оно пользуется популярностью, но не взломано слишком часто. Сейчас это взламывают настолько часто, что оно не будет пользоваться популярностью. То есть, это настолько небезопасно, что популярность не прибудет. И даже скорее меня безопасность не так сильно волнует, как именно удобство. Почему? Я изначально систему Extended Lightning Network, которую я вижу как основную идею этого подкаста, я и пытался на солидити реализовать и даже в какой-то степени реализовал, но потом я просто фэйспалмил и понимал что это вообще такое? Это слишком сложно, это сложно поддерживать.

Давайте перейдем тогда к Lightning и через его проблемы перейдем к Extended Lightning. Про Lightning мы многом говорим в этом подкасте.  Я сейчас занимаюсь в основном исследованием его. Опиши свои впечатления, свои мысли по этому поводу, что ты, может, видишь в этом хорошее и какие ты видишь в этом проблемы?

Проще истории рассказать, как я заинтересовался Lightning’ом. И как многие, наверное, потому что в какой-то момент транзакции стали дороже вмещаться, блоки стали полными, умещаться они перестали и все начали искать пути решения. Это был 2017 год, тоже лето. То есть, буквально 2 года назад. Я прочитал всё, что было на тему Lightning, бонус протокол, вайтпейпер и т.д. И в тот момент я был поражен, я считал, что это очень крутая идея. И почти всё складывалось в пазл. Но когда я пытался прогонять ментальную модель, как оно реально работает в реальности — то есть, кто кому открывает каналы и как проходят платежи. Я видел, что эта проблема с ликвидностью с capacity, она как-то сама на себе замкнута. Нет интереса нодам, которые дальше от юзера, предоставлять capacity в сторону получателя.

Расскажите немножко сначала что такое capacity и в чем, собственно, проблема заключается? А то вдруг  слушатели не совсем знакомы с механикой этого процесса.

Объяснить механику Lightning..

Что конкретно скрывается за проблемой capacity? Потому что мне-то, может, это понятно, но слушателям может быть не совсем.

Хорошо. Попробуем. Lightning — это пейпер, который предлагает набор escrow, которые позволяют залочить деньги между некими любимыми двумя участниками сети. Создатели этого пейпера это видят как некую межсеть, по которой люди будут пускать платежи, они магически будут доставляться финальному участнику сети. Но всё это будет за счет collaterala, который хранится в руте. Давайте рутом будем называть on-chain слой, чтобы не говорить on-chain. Потому что я считаю, что Lightning пытается создать некую новую entity, когда можно было это на самом деле даже вписать в существующую экономику, без всякого блокчейна. То есть, у нас есть центральный банк — это рут, в котором мы рутовые деньги, которые самые настоящие, как кэш. И у нас блокчейн выполняет ту же самую задачу. То есть, это тот же централ банк, который просто реплентируем на каждой машине. И тот факт, что он реплентируем — это не так важно. Поэтому мы просто можем говорить «рут», подразумевая и централ банк, и блокчейн. Просто это некий рут, который любой может прочитать, но туда дорого писать, туда дорого делать некий запрос. И чтобы нам избегать каждый раз делать транзакцию в рута для перевода денег за какую-то дешевую вещь, не касаясь рута. И в этом его идея — что можно будет офчейн обмениваться подписями и выходя в рут только в том случае, когда вот эта ликвидность… Capacity — это объем денег, которое человек может послать в сторону следующего участника, с которым у него канал. И проблема Lightning в том, что вот этот capacity ограничен не только тем, сколько ты можешь послать в сторону следующего участника — интермиди или хаба какого-то, в котором ты держишь деньги, а скорее в том, сколько он держит в свою очередь в сторону твоего получателя, мерчанта например. А у этого хаба нет никакой инициативы закладывать деньги заранее, потому что чтобы деньги по Lightning можно было флайт, нужно заранее выделить деньги из рута и положить их в этот escrow между собой и следующим участником. В этом суть проблемы. То есть, сейчас если ты ставишь Lightning кошелек, ты не сможешь получить ни от кого платеж вообще. И это catch-22, то есть проблема завязана сама на себе, потому что adoption не может расти там, где у пользователя нет таких действий, чтобы просто использовать эту сеть, как платежную, хоть какие-то платежи получать.

Сейчас я просто хотел немного это переформулировать и дальше выступить адвокатом Дьявола, не Дьявола. Не знаю. Адвокатом Lightning’а. Ты ответишь на мои возможные возражения, что всё возможно не так плохо. Опять-таки, как я понимаю эту проблему:  Lightning — это что такое? Это сеть каналов. Абстрагируемся от того, где у нас хабы, не хабы, эти банки, не банки. Просто сеть с какой-то топологией участников соединенных каналов. И каналы — это просто мультисиг, в котором заперто какое-то количество биткоинов, которые можно основываясь на этом мультисиге, переслать в разных пропорциях между участниками канала. И проблема в том, что я могу послать не больше, чем я запер в канал с моей стороны. Соответственно, я могу принять не больше, чем в моем канале лежит с другой стороны, и если я через своего партнера по каналу передаю какой-то платеж дальше, соответственно, если я Алиса передаю через Боба, у Боба тоже должно быть какое-то количество биткоинов заперто в канале по направлению к моему пункту назначения.  Но дальше с одной стороны, я понимаю аргумент про уловку-22, но здесь мне кажется, можно было бы на неё возразить таким образом, что в принципе, чуть ли не любая система типа социальной сети, любая система типа денег обладает таким свойством, что вначале, пока у неё мало пользователей, никто ей не хочет пользоваться, потому что у неё мало пользователей, а по мере того, как пользователей будет становиться всё больше и больше, ею будут пользоваться всё охотней и охотней. То есть, условно говоря, как с тем же самым биткоином — пока я биткоины никуда не мог потратить, мне не было никакого резона их принимать, допустим, за свою работу. Но сейчас, когда биткоины уже легко относительно потратить, я более склонен за свои услуги принимать оплату в биткоинах. Можно ли это рассуждение продолжить на Lightning? Условно говоря, да, у меня нет сейчас входящей ликвидности, но поскольку я верю в Lightning, я буду предлагать свои услуги за Lightning, ты мне будешь платить — вот у меня уже будет входящая какая-то capacity. И это расширяется на всю сеть так. Почему это не работает так же, как с биткоином? Вот этот бутстреппинг не работает?

Я думаю, это не работает, потому что там это был некий бесплатный фактор, то есть Фэйсбук мог расти, потому что аккаунт регистрировался бесплатно, как вначале, так и после миллиарда юзеров. То есть, это совершенно эфемерное действие, которое может любой произвести. А факт приложения денег в канал — то есть, депозита в escrow, — в руте это действие будет только дорожать, потому что блок маленький и в него все хотят влезть. Это может  быть и 100 долларов, и 50 долларов. Это раз — это стоимость самой транзакции. Плюс это собственно сама ликвидность, которую надо туда положить. Которая далеко не всегда может быть достаточна. И третье, самое главное — мы просто не знаем заранее, как некий хаб. Почему я говорил про хабы? Потому что история про mesh-сеть, где к людям открывать каналы — это настолько утопично, что мне кажется, её всерьез даже в Lightning никто никогда не рассматривал.

Почему они не должны говорить? По-моему, это уже довольно давно было понятно, что у разных узлов разное количество каналов с другими узлами и это в общем-то нормально. Разве нет?

Да, это абсолютно нормально. Нет ничего плохого в банковской системе. Я имею ввиду топология банковская, когда есть 24/7 онлайн узлы, которых 8 тысяч. Сейчас в мире существует 8 тысяч банков — это довольно-таки дофига. Вы можете выбрать большое количество. А если это permissionless сеть, то можно будет ещё и открыть самому ещё плюс 100 тысяч таких. Но проблема в том, что они должны быть онлайн и постоянно принимать, это их бизнес должен быть. А когда мы строим это как mesh сеть — человек к человеку, то insentives ломаются. Человек не обязан быть онлайн, он не обязан иметь ликвидность, чтобы в чью-то сторону ложить. А почему они пытались это как mesh-сеть продвигать — я это не совсем понимаю. Мне кажется, это попытка избегать любого сравнения с банковской сетью, что было бы плохой идеей, потому что это было легко доказать как техническим людям, так и не техническим, что это будет централизуемо вокруг хабов, потому что так это вообще единственный путь, как это может работать вообще. Потому что через людей это не работает. Если у вас получается часто роутить через некоего человека, то скорее всего этот человек попросту хаб. То есть, он и человек, но он всё равно уже хабом становится просто от того, что он хорошо роутит.

Окей. Мне кажется, проблему более менее мы адресовали, но тогда давай перейдем собственно говоря к решению, которое ты предлагаешь.

Можно я ещё вопрос задам?

Да, да.

Сергей, ты говорил про то, что в биткоин тоже люди сначала входили, сначала в этом не было смысла, потому что не было гарантии, что кто-то этот биткоин примет. Потом они постепенно появлялись и мотивации входить в биткоин было больше. Мне кажется, мы не обсудили, почему этот процесс нельзя будет в итоге перенести на Lightning. То есть, Егор, ты сказал, что при росте Фэйсбука вложения в то, чтобы завести себе страницу были нулевые, но вложения в то, чтобы купить себе биткоин были всё-таки не нулевые.

Да, но вложения в биткоин, оно имело понятную перспективу, что он во что-то превратится, он будет расти, потому что там майнинг ограничен, про него всё больше говорят и т.д. А с каналами, как я описал, есть 3 причины, которые ограничивают это — это стоимость транзакций, которая будет расти и неизвестно получишь ли ты прибыль, потому что оффчейн комиссия якобы мизерная. Второе — это ликвидность, которую надо заранее иметь. То есть, мне кажется очень странным сравнение именно это с социальной сетью, потому что тогда можно что угодно сравнивать с социальной сетью. Типа «Сейчас плохо, но смотрите — социальные сети растут — это значит будет хорошо».

Нет, нет. Слушай, мы сравниваем не с социальной сетью в смысле Фэйсбука, потому что действительно традиционные социальные сети, они же на начальном этапе прожигают деньги инвесторов на то, чтобы делать user acquisition и т.д. А мы говорим именно про децентрализованные такие штуки типа биткоина, у которого не было никакого бюджета на раскрутку, а он вот так органично вырос до такой степени, до которой он вырос. То есть, у меня на самом деле нет понимания в голове, не то чтобы я специально пытаюсь подловить. Я с одной стороны понимаю чем отличается биткоин от Lightning, в том смысле, что биткоин ты завел адрес — ты можешь принимать, Lightning — ты открыл кошелек и ты без дополнительных действий не можешь принимать. Но как это непосредственно связанно с возможностью или невозможностью такой органичной раскрутки за счет постепенного повышения ценности сети по мере того, как туда приходит больше участников? 

Во-первых, я не знаю, почему биткоин вообще раскрутился. То есть, для того, чтобы сравнить, мне нужно найти какую-то точку опоры, которую я знаю. То есть, я честно не знаю, как биткоину это удалось. Мне кажется, это куча факторов и везения, потому что если переместиться на 10 лет назад, это казалось интересной, но не слишком перспективной идеей. То есть, это так произошло просто. Любой, кто говорит, что он знал, что это произойдет — тут можно просто show me your money, так сказать. Если он не купил его, значит он не знал. Почему с Lightning этого не будет? Потому что зададим вопрос: в какой момент времени что должно произойти, чтобы при установке кошелька ты мог сразу начать пользоваться сетью? В контексте оригинального Lightning, где нет понятия, как кредиты, это всегда подразумевается, что кто-то в твою сторону залочит capacity некий, collateral. То есть, он сделает усилие со своей стороны абсолютно на основе обещания, что ты получишь платеж. То есть, при установке кошелька ты делаешь запрос на некую ноду и говоришь: «Я хочу стать новым участником сети. Пожалуйста залочь в мою сторону в руте за свои деньги. То есть, оплати комиссию в транзакцию и сам свои деньги залочь в мою сторону». И вот я не вижу, что это может как-то поменяться на корню. Единственное, что можно добавить жесткий KYC и как-то кэшем оплатить на начальном этапе, но это не выглядит, как масштабируемая схема.

Честно говоря, для меня это выглядит, как проблема юзер экспириенса в первую очередь. То есть, условно мы делаем кошелек на Google Play, который ты скачиваешь. Это платное приложение, которое стоит 25 баксов. Ты его скачиваешь и у тебя сразу на счету 25 баксов. Эта проблема для меня выглядит не столько прям технической, архитектурной, сколько того, как мы это реализуем в конкретном кейсе. 

Как конкретно это будет технически реализовано? То есть, 25 баксов — пример так не может работать. Потому что ты заплатишь 25 баксов за скачивание, а допустим ты установишь это приложение тысячу раз. Это значит, 25 тысяч раз они должны тебе 25 тысяч баксов в твою сторону залочить на основе обещания. То есть, если будет конкретный пример, я покажу, почему он не работает. То есть у меня тут вопрос стоит: «Докажи, почему это не может работать. Приведите контрпример». Потому что 2 года назад я, например, заявлял, что вот этот capacity, он будет ограничивать рост, но система была не запушена. Но сейчас система уже год, как запущена и наглядно можно увидеть, что рост именно вот этот adoption аспект, он серьезно ограничивает. И платежи гоняются по сугубо предоплаченым энтузиастским путям. То есть, сейчас некие Lightning  платежи работают только по той причине, что есть хабы и известные merchant’s. В их сторону хабы залочивают небольшие суммы или даже средние суммы, которые достаточно, чтобы купить футболку, например. То есть, ты открываешь канал в сторону би три фила, и покупаешь футболку на blockstream. В таком юзкейсе это будет работать, но дальше это не распространяется. 

Хорошо. Что же тогда делать? Как же нам решить эту проблему? Кредиты? Центральный банкинг не обеспеченный?

Да. Не обязательно сразу необеспеченный. Я предлагаю изначально как можно больше смотреть на реальную систему. Почему? Потому что реальная система уже работает и сейчас, например, с её помощью я оплатил отели, купил себе еды. То есть, зачем создавать какую-то эфемерную систему, придумывать новые сущности, как payment канал, когда можно взять центральный банк, добавить в него новые сущности? И про это я хотел как раз рассказать. То есть, у меня вообще теория, она немного от блокчейна отходит тут. То есть, первый этап — это мы добавляем суверенные аккаунты в центральный банк — это то, что делает блокчейн и биткоин, то есть возможность любому индивиду держать деньги прямо в руте. Таких попыток было, насколько мне известно, две в реальном мире. Это в Швейцарии было Sovereign money initiative. Она была отклонена. Это возможность любому гражданину иметь счет в Централбанке. Таким образом тебе не нужно было бы доверять некоему коммерческому банку свои деньги, с которыми он гэмблит, делает рисковые ставки. Вместо этого ты мог бы держать какую-то сумму денег в Центральном банке и иметь гарантии у государства, что он их не переинвестирует и ты их не можешь потерять ни в коем случае. А в случае биткоина мы получаем именно это. Забудем про факт репликационности, блокчейна, просто представим, что это некая сущность, в которой мы можем хранить деньги напрямую. Я считаю, главная крутая штука в блокчейн архитектуре, что любой индивидуум получил возможность именно держать суверенные деньги, без вот этой прослойки банков, которую тебя сейчас форсит государство пользоваться ею. Либо кэш, либо коммерческий банк, который твоими деньгами гэмблит. А с помощью блокчейна мы получаем ещё и доступ прямо к руту для любого человека — для мерчанта, бабушки, дедушки. И эти деньги они не гэмблят, потому что они хранятся в руте, они не инвестируются. Но потом мы всё равно так или иначе получаем второй слой по нескольким причинам. То есть, на самом деле у биткоина был layer-2 буквально с самого начала — это всякие биткоин банки. Coinbase — это такой же layer-2, просто там никакой криптографии. Когда ты кладешь деньги на Coinbase, внутри него ты можешь гонять бесконечно много и бесконечно быстро денег. Это такие же переводы, это такой же layer-2, просто там нет commitment транзакций и криптографии, которая тебя защищает. Lightning — это просто добавление новых свойств к твоему балансу. Я рассматриваю это как 4 уровня защиты твоих денег. 1 уровень — это хранение их на руте. Они не могут потеряться, потому что их не реинвестируют, они гарантированно принадлежат тебе. Единственный способ их передвинуть в базе данных — это custodian баланс на Coinbase, например. То есть, чтобы у нас появился кастодиан баланс, мы переводим в руте со своего счета на рутовский счет Coinbase и он уже оффчейн обещает эту сумму. То есть, оффчейн мы можем через него эту сумму кому-то ещё передать. Теперь Lightning добавляет 3-й способ — хранение денег тоже оффчейн, но при этом имея collateral, который залочен в руте, который ты гарантировано получишь назад, если ты не давал подпись той ноде, с которой ты имеешь этот канал. То есть, эта безопасность сильно лучше, чем кастодиан, чем хранение на Coinbase, но имеет те же свойства, удобства, как и хранение на Coinbase, потому что ты можешь её послать молниеносно. И свойства безопасности, как у рута, потому что украсть деньги из канала практически невозможно. Там очень маленькое количество корнер кейсов, когда это становится что-то такое. Насколько понятно я объясняю? То есть, вот эти вот 3 варианта у нас сейчас есть. Это хранение денег просто в on chain балансе, хранение денег custodian баланс у Coinbase и хранение денег, подписано и застраховано у Intermediary. Насколько это понятно звучит?

Пока вроде всё понятно. 

Я предлагаю просто объединить эти два варианта, когда у нас есть кредитные деньги вот эти с Coinbase, и гарантированные защищенные деньги просто в одну  сущность. То есть, сам факт коллатеризации, он должен стать как свойство канала, а не как его requirement, не как требование для того, чтобы им пользоваться. То есть, я предлагаю взять за основу — когда человек подсоединяется к сети, он устанавливает кошелек, он выбирает некий банк в списке, какой-то публичный регистр банков. И открывает к нему кредит лимит на некую сумму. Например, 10 тысяч долларов. То есть, он заявляет банку: «Я готов тебе доверять на 10 тысяч долларов». С другой стороны, Алиса так же делает — добавляет этот банк. Но у Алисы есть деньги на руте и она хочет их переслать теперь уже оффчейн в сторону Боба, нашего получателя. Она в депозите деньги на руте в сторону банка и теперь у неё хранятся они.. Не выбрал ещё слова, но мне кажется, «застрахованные» — самое подходящее. То есть, Lightning канал — это застрахованные деньги, потому что ты имеешь на них гарантию. То есть, Алиса сейчас может послать 100 баксов в сторону банка. Но проблема Lightning была в том, что банк не может послать в сторону Боба, потому что он не заинтересован положить в руте, в руте в эскроу эти деньги. Для него это слишком дорого, у него нет на это мотивации и т.д. А в случае, когда Боб открыл кредит лимит в сторону банка, он может просто пообещать эту сумму.

Подожди. Давай проясним термины. Что значит «Боб открыл кредитный лимит к банку»? Это что означать человеческим языком? 

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

То есть, вот я прихожу, новый участник системы. У меня 0 денег, вообще нет ничего. И я говорю банку: «Я тебе доверяю тратить моих 1 тысячу долларов». Что-то в этом духе. При этом у меня этой тысячи долларов нет.

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

Я просто не понимаю, от кого инициатива исходит. Вот я пришел в систему от юзера. И юзер говорит. Что он говорит банку? «Я разрешаю тебе..» что сделать?

Он посылает ему запрос по сокету авторизованный, что «Я доверяю тебе на 10 тысяч долларов, ты мне можешь их слать». То есть, если кто-то другой участник системы через банк в мою сторону зароутит сумму, то банк может мне слать сообщение: «Окей, ты получил 100 баксов, ты получил 200» и так до 10 тысяч. После 10 тысяч я отказываюсь принимать обещание от банка, потому что они не колаторизованны. То есть, если банк исчезнет, то никто мне эти деньги не вернет. Поэтому нам нужно добавить такой дополнительный буфер, то есть расширить канал по сторонам, чтобы банк сначала в будущем, когда эта сумма, например, достигнет 3000 долларов. То есть, произошло 30 платежей по 100 баксов и сейчас банк мне обещает 3 тысячи долларов. Я делаю ему новый запрос: «Пожалуйста, ребалансируй. Застрахуй эти 3000 долларов». В этот момент банк делает рутовую тразакцию, ончейн транзакцию, в которую он закладывает уже колатеризованные деньги, тем самым подкрепляя то обещание, которое он мне этого дал. 

Окей. Но никто не может банк заставить это делать. Он может просто отказаться это делать технически. 

Да. Тут уже мы говорим про техническую реализацию, потому что я работал над блокчейном, в котором это сделано более красиво, потому что на биткоине это просто невозможно. То есть в этом блокчейне ты получаешь подпись и у тебя там balance proof, в котором сказано сколько у тебя денег. Если банк начинает тебя игнорировать, ты можешь с этим balance proof пойти в onchain, и на банк повесится долг, который будет заенфорсин, как только у банка появятся деньги в руте. А это появится рано или поздно, если он оперирует как-то.

Сейчас, одну секунду. Но вся эта конструкция, получается, подписи, вот этот enforcement, когда деньги появятся предполагает, что у нас сеть не является permissionless, то есть кто-то ограничивает создание новых айдентитив. Потому что если никто не ограничивает, никто не мешает мне войти в долги, отказаться от них платить, потом создать новый публичный ключ, не связанный с предыдущим, и начать всё заново. 

Но это permissionless, anonimous identity сеть. Айдентити банка — она дорогая. По той причине, что он хочет зарабатывать деньги на комиссиях. То есть, ему должно быть не выгодно сейчас всех кинуть, потому что он планирует за следующий год заработать больше денег на комиссиях. Конечно, он может это сделать и тогда все не застрахованные деньги будут потеряны. В этом часть модели. Но предполагается, что он имеет какой-то оффлайн presense, у него есть офис, команда и это скорее всего будет как-то связано с реальным банком. То есть, некий Совкомбанк, например, регистрирует просто внутри сети свой URL, что он compliant по какому-то API, то есть он подчиняется какому-то языку запроса внутри этой сети. И ему не с руки кидать всех пользователей. Но это, конечно, возможно. То есть, добавляется некий риск в систему.

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

Мы просто смотрим на реальный мир. То есть, у нас есть гарантии, что кредитные системы прекрасно работают, потому что там ничего не стоит переслать деньги на основе доверия. То есть, это как минимум внешне будет работать с первого раза. То есть, человек установил клиента, нажал на банк «Добавить», там допустим, кредитный лимит создался автоматически на 10 тысяч долларов. Некая дефолтная сеттинг, чтобы человеку не выбирать. И всё. Он может получать платежи. Это тот же самый user experience, как у PayPall’a . И это отлично, потому что люди с этим знакомы. Будут работать мотивации лайтнинг хабов оригинальных или нет — это уже задача Lightning доказать. Пока год в продакшене доказывает совершенно обратное. И прикол этой системы в том, что она именно расширяет, потому что эти кредит лимиты становятся опциональными. То есть, ты можешь их ставить на 0. И тогда система выглядит точно так же, как Lightning, потому что когда у тебя кредит лимит в сторону банка 0, ты не получаешь от него никаких обещаний. Единственная возможность от него получить деньги — это чтобы он сначала заколотиризировал в твою сторону деньги. Или ты можешь держать кредитные лимиты настолько маленькими, что тебе в принципе всё равно, что тебя взломают. Таким образом, держа кредит лимит на тысячу долларов, ты не открыт риску, как в случае с Coinbase, потому что, например, на Coinbase ты держишь огромную сумму и она вся рискованная. А тут ты можешь часть денег держать в кредите, а часть денег держать коллатеризированно, так сказать, в канале. Хотя, обе части на самом деле в канале. Я бы назвал всю конструкцию каналом, просто часть коллатеризированна, а часть кредитная, обещанная.

Я могу получать от платежа, если ты допустим мне хочешь через этот хаб, или банк, или whatever переслать какой-то платеж. Могу ли я сказать: «Чувак, у тебя этот платеж не колатеризирован, я не хочу его принимать, потому что я не хочу нести риск. Мне пожалуйста, плати только fully collateralized». Есть такая опция у меня?

Ты общаешься только на прямую со своими контрагентами. То есть, ты общаешься с банком. Когда тебе приходит некий платеж, если у тебя открыл кредит лайн, то твой кошелек принимает платеж. Ты можешь закрыть кредит лайн и тогда откажешься принимать некие необеспеченные деньги. А то, что в свою очередь шлет реальный отправитель, ты в принципе даже не знаешь. Он может слать сам свои кредитные деньги, он может слать коллатеризированные деньги. То есть, это тебя просто не интересует. Тебя интересует твое отношение напрямую с банком. Попросту говоря, тут есть некая паралелль. Есть такая схема в традиционном мире, как страховка депозитов. То есть, Deposit insurance program — она есть в каждой развитой стране. И я вижу payment каналы, как улучшенную версию. То есть, страховка депозитов работает как shared pool — туда все банки раз в месяц скидывают некую часть своих доходов, комиссию и потом, когда какой-то банк схлопывается, все из общака берут. И это очень плохая схема, потому что её легко абюзить, её очень выгодно использовать, потому что скидываются все, а кто-то один может из этого общака забирать. А тут каждый пользователь банка сам ответственен за тот collateral, тот escrow, который у него хранится с этим банком. То есть, попросту бэйлауты в экономике становятся не нужны. Если мы используем эту схему для фиатных денег, а не для биткоина.

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

Но этот код можно записать и в самом блокчейне. То есть, некая переменная, куда каждый банк по таймеру раз в месяц вычисляет деньги. Но я не предлагаю это делать. То есть, я против текущей схемы, где есть некий бассейн, куда все скидывают. И мне кажется, это очень плохая схема, потому что её легко абюзить. И во-вторых, она имеет около 1% тех денег, которые ей реально надо. То есть, все Deposit insurance  схемы на планете, они underfunded — в них недостаточно денег, чтобы покрыть крушение какого-то реально крупного банка. В этом проблема. АСВ называется эта штука в России, например. То есть, это работает скорее для успокоения вкладчиков. А против реального коллапса в экономике это не сработает. Это уже не сработало в 2008 году. В 2008 году в DFC как раз была такая проблема — у них не было достаточно денег, чтобы покрыть всех, у кого деньги пропали. Им пришлось будущие 3 года у банков отчислять. То есть, взять деньги из будущего. То есть, проблема FDIC совершенно  реальная, её можно исправить с помощью вот этих пэйментов каналов. Можно даже не вносить новый констркут, просто назвать это Central Bank Escrow.

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

Я не ответил на твой вопрос, потому что ты сказал: «Айдентити банка можно создать много банков». У меня этот вопрос был в голове, но я его упустил. Нет, тут айдентити условная. Просто если ты хочешь быть успешным бизнесом банком и роутить платежи, то ты нарабатываешь сначала айдентити, больше людей открывает тебе каналы, потому что человек при открытии кошелька видит название банка, логотип, общую сумму коллатерала вокруг него залоченную. Потому что фулнода может это просто посчитать всё запросом на твой стейт. И таким образом предполагается, что твоя будущая комиссия за год будет более выгодная, чем кинуть всех прямо сейчас.

Окей. Допустим. Мне это предположение представляется немного недоказуемым. Но допустим, можно из него исходить. Но я немножко другое хотел спросить. Я хотел спросить, что если мы действуем в парадигме, где у нас более менее постоянное айдентити с какой-то репутацией, зачем нам вообще тогда каналы? Почему мы не можем просто написать какую-то базу данных, которая будет менеджиться каким-нибудь Центральным банком. Или какой-нибудь permissioned blockchain написать. И там это всё менеджить более менее центрально или под руководством BFT алгоритма. Если у нас есть fixed identities, то у нас топ 20 банков объединяются в BFT протокол и делают replicated states себе. Зачем нам тогда блокчейн, как base layer, зачем нам каналы? 

Я не понял, откуда fixed identity? То есть, identity — это сам человек заявляет, какой у него identity, какой у него URL, чисто для удобства. Он может себе аватарку загрузить. Как я предлагаю, юзер френдли сделать. Чтобы можно было любому новому пользователю к нему подключиться. Потому что сейчас эти ноды, к которым надо подключиться, их надо где-то искать, на каких-то форумах. То есть, нет понятного списка банков, к которым можно сразу подключиться с нового кошелька. Ни больше, ни меньше. Больше это слово identity — оно ничего не значит. Это такая же нода абсолютно анонимизированная. 

Она анонимизированная, но её ничто не защищает от cybil attack, получается?

Тут ты как пользователь сам решаешь, какая нода с наименьшей вероятностью тебя взломает. Оглядываясь на оффлайн присутствие этой ноды, насколько она связана с реальными банками, например, это Bank of Ameriсa запустил такую ноду — уже доверие повышается. То есть, много факторов подстраивается и ты как человек, сам решаешь, насколько ты доверяешь этой ноде. Если это Coinbase запускает, то очевидно пользоваться Coinbase через эту сеть, чем просто отдавать ему на абсолютно не подписанное хранение биткоины. То есть, как минимум, апгрейд с существующей ситуации.

Окей. Давай тогда поговорим про реализацию этого проекта. Я правильно понимаю, что те идеи, которые ты выше описал — это всё сейчас реализуется в Fairlayer? Как это всё связано с Fairlayer?  И что за проект? На какой стадии он находится?

Я вначале пытался это сделать на биткоине. Потом я понял, что там невозможно реализовать enforced dept. То есть, там просто нет такой конструкции, как identity, на которую можно повесить долг и в будущем взять, если этот человек тебя игнорирует. Я перешел на Solidity, на Ethereum. Там в каком-то виде это реализовал, но опять таки, сложность была слишком большая и многие вещи, которые я хотел сделать отсутствовали. И в качестве эксперимента начал писать блокчейн, взял Tendermint. Также я имею что-то против proof of work,  но это уже совсем не contrarian. По-моему, сейчас proof of work уже становится сомнительной идеей. Все признали, что есть..

Нет, давай ещё ниже про это поспорим. Я тут не соглашусь. Но давай пока про Fairlayer.

Окей. В общем, там я реализовал все крутые штучки, которые меня интересовали. То есть, отсутствие смарт-контрактов, при этом использование вот этих on-chain governance, где ты любой функционал можешь через diff реализовать. Там снапшоты. То есть, ты можешь сконфигурировать, например, 100 или 200 блоков и раз в это время нода сама делает архив себя и любой новый пользователь скачивает архив текущего стейта на момент снапшота, вместо того, чтобы делать генезис синкс со стейта №1. Всё это было реализовано на nodejs. И там пеймант каналы были как first class citizens. То есть, они реально простые и красивее сделаны, чем Lightning или Raiden, просто потому что они изначально задуманы были layer-1. Это я могу как-то отдельно скинуть кодом, но это довольно легко читается. И там реализовал эту систему с кредит лимитами и долгами. То есть, всё это реализовывается через 3 числа по сути — 2 числа хранятся ончейн, одно число обменивается оффчейн. Ончейн хранится объем страховки и он дельта, а оффчейн хранится офф дельта. И эти два числа — он дельта и офф дельта сплюсовываются. 

И потом мы узнаем, какую часть денег из insurance мы отдаем левому участнику, какую часть мы отдаем правому. Вот через 3 числа всё реализовывается. То более простой конструкт, чем у Raiden или Lightning. Как минимум, ради этого я это реализовывал. Дореализовал я это до той стадии, где оно выглядит как оно должно работать, но как и любой сложный проект, это требует множество тестирования и я не совсем понимаю, какой маркет фит прямо сейчас у такой системы может быть, поэтому я пока наблюдаю и пытаюсь понять, как это можно реализовать. 

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

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

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

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

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

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

Ну да. Но сейчас это работает, но слишком много фрикшена и просто не скелится обманывание банков, потому что они тебя проверяют при создании. А мы же хотим permissionless экономику, чтобы можно было брать в кредит быстро и по клику в интернете. То есть, тут как раз криптография просто всё упрощает, потому что процесс dispute и уже суд становится не нужным. Один человек создает диспьют на блокчейне, в руте. И если он выигрывает этот dispute, то вешается долг на другого участника. То есть, на другое identity противоположного counterparty в его канале. Это, конечно, можно переложить, опять-таки, на кастодиан все балансы и решать это как-то совсем  физически через традиционные суды и т.д. Это реализуемо. Но зачем, когда можно это сделать реально в коде on chain и просто исключить как класс понятие «суды», потому что если у тебя есть подпись и есть обещание, то ты можешь заенфорсить это на другой identity. Если нет, то не можешь. Зачем кормить суды тут?

Окей. Тогда хотелось бы поговорить ещё про перспективу проекта. Насколько я понял, сейчас Fairlayer в какой-то степени имплементирован и ждет своего часа. Возможно ли здесь сценарий  совместной работы или какого-то внедрения его в Lightning, on top of Lightning или, скажем так, интеграция идей кредита в качестве дополнительной функциональности в тех же Bolt спецификациях? Оно вообще совместимо или это должно быть на отдельной системе обязательно? 

Мне самое интересное, чтобы вот эта архитектура была как-то реализована, потому что она классная, она понятная и там есть все инсентивы на месте. Как это будет на Lightning мы уже сегодня обсуждали — человек просто выбирает банк и открывает ему кредит лимит. Просто тут не будет свойства enforcebility. Кредит будет полностью custodian. Это будет просто число, которое тебе другая Lightning нода посылает и говорит: «Я тебе обещаю», но подписи у этого чела не будет. А даже если она будет, ты с этой подписью ничего не сделаешь, потому что ончейн слою биткоина всё равно на эту подпись. 

То есть, можно реализовать это на Lightning уже сегодня и довольно быстро. Это займет несколько сотен строк кода, просто надо будет его внутрь протокола. Я даже больше скажу, Lightning сейчас активно использует кредиты в том виде, как custodian Lightning. Любой Lightning кошелек в облаке — по сути когда ты им пользуешься, ты открываешь кредит в его сторону, потому что он тебе обещает деньги, он в твою сторону канал не открывает. То есть, htlc.me и такого рода клиенты, они уже активно получают хоть какую-то пользу от XLN. От XLN Lightning, потому что там нет открытия каналов от каждого участника к участнику. Там есть некий хаб, который тебе обещает из облака. Просто они это так не называют. 

Я же предлагаю это встроить именно в протокол, потому что это удобно и это необходимо. То есть, это сделать просто, только это будет not enforcible в биткоине, потому что там нет такого конструкта просто в ончейн слое, чтоб можно было создать долг на другом участнике. Это было бы нам в 100 раз круче, если можно было бы создать долг, потому что без долга, особенно в контексте биткоина все будут это как-то абюзить, все будут просто игнорировать свои обещания. 

Только самые трастовые игроки, которые уже давно на рынке, может быть будут хоть как-то держать себя в рамках, потому что эта подпись, которую тебе даст кастодиан, она никак не заенфорситься, её в лучшем случае можно сделать так, чтобы можно было доказать, что тебя обманули. Но заенфорсить это будет невозможно. А на Ethereum можно будет сделать правильно — можно создать некий storage с долгами на identity и их енфорсить. Но опять таки, сложность реализации довольно большая.

Я хотел бы завершить нашу главу про Extended Lightning и Fairlayer, и немножко похоливарить про proof-of-work — вот эта тема, которая раньше всплывала. И уже двигаться после этого постепенно к завершению. Почему ты считаешь и считаешь ли ты, что proof-of-work себя изживает или изжил? И что должно прийти на смену, по твоему мнению, ему? 

Опять таки, из-за не связанности XLN.. То есть, мое мнение по поводу proof-of-work, оно никак не связано правильно ли моё мнение по поводу Lightning. Но я считаю, что proof-of-work не обладает тем свойством, ради которого он существует, именно децентрализации. Потому что техническая возможность атаки сейчас слишком большая, потому что большая часть майнинговых сил находится в Китае. И можно создать такую операцию довольно малыми суммами денег и усилий, чтобы соверишть даблспенд. А Дабл спенд — это самое худшее, что может произойти, потому что одна половина земного шара будет думать, что они получили биткоины, а другая половина, что они. И потом им надо будет решать, кто прав. Соответственно, всё повалится как карточный домик.

Подожди. Но у какой-то у этих половин будет больше хэшинговой мощности и она победит по правилу fork choice rule. Более тяжелая цепочка. 

Но пройдет-то 6 блоков и им уже будет всё равно, у кого там 7 блоков и 8. То есть, можно хакнуть обменки с помощью этого на большую сумму. То есть, тут несколько вариантов атаки.

Я с одной стороны согласен с таким опасением, но с другой стороны — нельзя ли про proof-of-work сказать, как известная цитата про демократию — что это худшее за исключением всего остального. То есть, какие лучшие-то варианты, если мы хотим полностью децентрализованный механизм прихода к консенсусу в сети, где никто не стоит над механизмом создания identity?

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

Сама по себе такая система может быть полностью централизованной, но тут прикол в том, что юзеры когда подсоединяются к этой сети, они могут со своей стороны как следует изучить все существующие identity, ссылки на твиттеры и фэйсбуки, изучить, насколько они реальные и уже поверить. То есть, это такое алгоритм — вместо sha256, ты можешь своими глазами убедиться, кто сейчас каким стейком обладает и если тебе нравится — пользоваться этой сетью. Если не нравится — пользоваться другой сетью.

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

Я ещё немножко к этой же теме добавлю, немного по-другому сформулирую по сути то же выражение, что чем proof-of-work хорош? Что проверка того, какая цепочка является более тяжелой с точки зрения  proof-of-work — это абсолютно механизированная задача, она решается компьютером и человеческое участие вообще не требуется никак. То есть, мой софт это решает, я даже не должен про это думать. А если у нас система появляется, где я должен сознательно принимать решение о том, кому я доверяю, то не разрушает ли это всю социальную масштабируемость social scalability, которой обладает proof-of-work?

Я тут процитирую параграф из Bitcoin Whitepaper, что Сатоша говорит, например: «Как мы будем реализовывать защиту от сибилов? Давайте, например, использовать IP?» Но тут, конечно, у нас есть проблема, что тот, у кого большие блоки IP, он будет иметь больше всего голосов. Именно эта проблема случилось собственно с  proof-of-work — что у кого больше электричества и майнинговых мощностей, имеет больше всего голосов. То есть, понятное дело..

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

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

Определенно не подойдет там, где это просто дженерик люди, которых не нагуглить даже — Иван Иванов. То есть, это должны быть четкие, твердые identity, которые большое количество людей знает, иначе это бессмысленно становится, потому что ты не сможешь узнать что это за человек. Я не уверен на 100% как это в реальности будет работать, потому что это никто не пробовал, но в голове это выглядит довольно стройно. То есть, если много популярных людей заинтересованы просто в этом поучаствовать, то они могут identity свое доказать и не обязательно каждому пользователю при присоединении именно реализовывать. Он может довериться большому другому количеству пользователей, которые ему говорят: «Вот это крутая сеть, потому что я там знаю большинство чуваков. Точно они. И там нет одного с большим количеством стейка». 

Я хочу рассказать историю на эту тему. То, что ты описываешь — система, в которой юзеры сами выбирают, кому верить, она мне очень напоминает Stellar. Ripple я не очень хорошо понимаю, но мне кажется, они схожим образом устроены, что там консенсус построен на так называемых Quorum Slices — то есть, ты выбираешь какой-то подбор юзеров, которым ты доверяешь, оно с чем-то должно пересечься. Если всё со всем пересекается, то вся система должна сводиться по идее к консенсусу. Вот так Stellar по крайней мере работает. High level view. Но недавно же была такая история.. Я даже был на конференции пару недель назад, слушал там доклад про то, как выяснилось, что более менее все участники Стелара совершенно добровольно включали в свои эти Quorum Slice ноды, которые поддерживаются самой Stellar Foundation, как доверенный узел. Потом в какой-то момент два из этих трех нодов Stellar Foundation упали и вся сеть просто остановилась на несколько часов. То есть, выяснилось, что все абсолютно добровольно централизовали сеть и создали там единую точку отказа. Эта точка отказа отказала и всё совершенно предсказуемо упало. Не очень хороший сценарий получается.

Да, то что с Стеларом — это плохой сценарий. Но я говорю про другую тему. То есть, я не говорю про схему, где каждый сам выбирает, кому он верит, я говорю, где каждый сам выбирает, какому блокчейну он верит. А в блокчейне уже есть заранее определенный набор валидаторов сейчас. То есть, ты доверяешь блокчейну Х — значит, ты доверяешь валидаторам, которые в нем есть. 

Ты не можешь выбирать сам валидаторов в блокчейне Х. То есть, я считаю, что создание вот этого идеального механизма — это просто нерешаемая задача, поэтому наша задача — нафигачить побольше этих механизмов и смотреть, какой выживет. То есть, возможно, это будет proof-of-work и что-то ещё, возможно только proof-of-work. 

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

Что я хочу заметить ещё момент — это, как минимум, будет не хуже, чем  proof-of-stake, потому что эта схема, так называемая proof-of-authority, она является сабсетом  proof-of-stake, потому что в proof-of-stake любой может просто прийти на рынок и купить огромное количество стейка, а тут есть хотя бы ограничение на трансфер. То есть, ты не можешь перевезти свой стейк абсолютно анонимному участнику, если ты не даешь какое-то четкое определение, что это за участник, почему ты переводишь. То есть, любой перевод стейка в proof-of-authority системе должно быть очень прозрачным и понятным всем.

То есть, есть ещё такое возражение, что proof-of-stake — это по сути.. Скажу так, что..

Rich get reacher

Да. Во-первых, да. А во-вторых, что если экономические мотивации будут работать так, как мы и предполагаем, что они работают в децентрализованных сетях, то proof-of-stake будет сводиться к неэффективному и как-то замаскированному proof-of-work. То есть, по сути если есть какая-то сеть, в ней есть какие-то валидаторы со стейком, если в их экономических интересах будет проинвестировать N долларов, чтоб приобрести какую-то долю влияния на сеть, они эти N  долларов проинвестируют. 

Только в случае proof-of-stake им придется пользоваться услугами каких-то рынков, каких-то бирж, покупать токены, куда-то эти токены класть и т.д. То есть, такая немножко система не прямая, в отличие от proof-of-work, где она прямая как топор — ты покупаешь просто оборудование и просто тупо жжешь электричество. То есть, ты доказываешь свою инвестицию, что ты готов потратить N долларов, потому что тебе важно влияние на сеть получить. Ты это делаешь наиболее прямым способов в отличие от proof-of-stake. Такое рассуждение находит какое-то понимание?

Понимание находит, но я думаю, что параллель нечеткая. То есть, не будет того же влияния на экосистему, тех же денежных вливаний по размеру. Потому что ты не можешь потратить 100 тысяч долларов, чтобы увеличить на 1% свое влияние. Это не линейно. Ты не можешь заставить людей любить себя, так сказать. Я сейчас говорю про proof-of-authority, потому что proof-of-stake мне не нравится тоже. Мне кажется, это хуже даже, чем proof-of-work. Я голосую за подвид proof-of-stake, в котором identity должны быть прозрачными, чтобы никакой ключ не мог владеть большим стейком без публичного профайла о себе, который хранится в каждой ноде, так сказать.

Окей. Мне кажется, что такого рода разговоры, они неизбежно сводятся к разговору об identity. И понятно, что в системе с identity у нас есть одно дизайн пространство систем, которое мы можем реализовывать, как-то проектировать. В системе, где у нас identity полностью permissionless, у нас другой вообще набор. Набор таких возможных решений, которые можно принимать. 

Но я предлагаю как-то закруглять наш разговор уже. Мы наговорили уже больше, чем на час значительно. Давай поговорим про какие-то перспективы. Что считаешь ждет биткоин, Lightning, какие-то другие блокчейны и проекты, о которых ты считаешь стоит вообще упоминать?

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

Поэтому я и «направил лыжи», так сказать, в сторону реальной экономики, начал её изучать, потому что мне кажется, что к ней надо втереться в доверие и заинтересовать её некими инструментами, которые мы тут придумали. То есть, payment канал — это эскроу в Централбанке. Надо как-то заинтересовать людей в Централбанке, что такая функция сделает экономику более здоровой, например. 

Мне кажется, надо отбросить механизмы создания неких эфемерных красивых систем, которые существуют в совершенно отдельной экономике и начать вписываться в реальную экономику хотя бы по шагам, шаг за шагом. Например, самое крутое,  что я ожидал бы от реальной экономики — это суверенные аккаунты, опять-таки. То есть, аккаунты в Централбанке. Это было бы просто прекрасно. Потому что это решит огромное количество проблем для меня, как минимум. Потому что я бы с удовольствием держал бы аккаунт в Централбанке и не доверял бы коммерческому банку.

Хорошо. Давайте тогда завершать. Иван, у тебя есть ещё предложения, вопросы?

Да, у меня есть вопрос. Егор, если всё так мрачно, то почему биткоин до сих пор жив? То есть, ты описывал в своей статье, как, например, легко Китай может сделать атаку 51% и другие сложности. Если это всё имеет место, то во-первых, почему он жив, а во-вторых, жив ли он на самом деле? То есть, может быть, эта атакая 51%, она регулярно осуществляется, просто это делается тонко и мы не замечаем?

Если бы она осуществлялась, мы бы это точно заметили. Тот человек, на которого она осуществлялась, он бы легко мог это доказать — просто показать блоки, которые идут параллельно с основной цепочкой и содержат огромное количество майнинговой power.  Но этого нет.

Да. Или может быть осуществляется цензурирование каких-то транзакций? Или это тоже легко доказуемо?

Я думаю, это тоже доказуемо, потому что просто берется транзакция и говорится: «Смотрите, её никто не может вставить в блок. Все её пытаюсь заброудкастить, она не вставляется» — вот и доказательство. Но это чуть сложнее. По поводу почему всё так мрачно, я просто говорю, что я на самом деле не знаю. То есть, я раньше пытался что-то думать, но я честно говорю, что я понятия не имею, мне нравится технология. А то, как люди на это смотрят.. Потому что большинство людей же не понимают, что это за технология, а значит тут вдвойне сложно угадать, как они будут далее о ней думать, потому что их решение невозможно предугадать. И ещё проблема именно с маркет фитом. Потому что у биткоина есть хорошая позиция, что у него маркетфит вполне понятный и поэтому я его предпочитаю. Потому что это Store of Value, я знаю, что большинство людей, которые как-то связаны с криптой, скорее предпочтут биткоин, если мне надо что-то заплатить, например. Может, уже скоро гражданство можно будет купить за биткоин, хотя на данный момент это невозможно.

Подожди. Я почти уверен, что я читал новость, что какой-то тихоокеанский остров объявил, что продает гражданство за биткоин.

Нет, это фейк. 

Фейк?

Да, я изучал.

Супер. Спасибо, что прояснил этот вопрос.

Да, это было некое агентство от Вануату, которое было на самом деле не официальным агентством, а так пиарились. Вполне возможно, они принимали платежи и больше никогда не появлялись в сети, так сказать. Что-то такое.

Да. В общем, про юзкейс, что у биткоина есть Store of Value — и это более менее понятный юзкейс.

Да, это очень понятный юзкейс и меня это радует. То есть, я верю, что он как минимум, сильно не потеряет в цене, поэтому мне не страшно в нем хранить какие-то велью. Может, это какой-то Emotional Attachment, я не знаю. Но про остальные блокчейны я такого сказать не могу. Мне не понятна их на данный момент сиюминутная польза. Потому что ими никто не пользуется и зачем мне вообще преодолевать этот user friction, чтобы как-то заставить кого-то пользоваться dapp-ом или что-то такое? То есть, всем нужно стать намного более скромнее и вместо того, чтобы завоевывать мир, выбрать хотя бы парочку новых юзкейсов, которые вот сейчас начнут становиться полезными. 

Да, здесь я кстати с тобой полностью согласен, но возвращаясь к исходному вопросы — если всё так плохо с governance биткоина и плохо изучена модель атак, то почему он до сих пор жив? Есть ли у тебя какие-то на этот счет мысли?

Это две разные вещи. Почему он жив и всё так плохо? Может быть, у него очень мощный паровоз движения вперед.

Хорошо. Если сузить вопрос — почему 51% до сих пор не произошла?

Инсентивы так не сложились. В данный момент кто может произвести атаку? Это Китайское правительство, потому что оно может произвести операцию по захвату этих майнинг power за один день и произвести форк. Но это теоретическая возможность. Я понятия не имею, какие у них инсентивы в голове, я вообще не понимаю, как они относятся локально к биткоину. То есть, то, что сама возможность эта есть — это уже плохо, но вполне возможно, это никогда не будет использовано. Я не знаю.

То есть, другими словами, в том поле, о котором мы знаем, причин, чтобы этого не произошло нет? Если они есть, то они находятся в том, о чем мы не знаем.

Причин, чтобы это произошло я пока не вижу. Мне они не ясны. Но такие атаки уже были сделаны на менее популярные блокчейны. Если я не ошибаюсь, на Ethereum Classic.

Да, и это мы обсуждали даже не так давно в подкасте с Игорем Артамоновым из Ethereum Classic. И, может, вопрос под занавес, который сейчас у меня тоже возник спонтанно, про распространение технологий и про то, что нам было бы хорошо не изобретать какие-то малоиспользуемые, но классные технологии, а идти в реальную экономику. 

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

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

Я считаю, что главным колесом, которое может что-то двигать со стороны безопасности — это именно вера людей, что их существующая система небезопасна, что вот эта fractional reserve система очень хрупка, и чтобы большинство людей в это поверили. Только это подтолкнет к каким-то изменениям в системе. То есть, как люди начали ставить себе крепкие двери по миру? Потому что кто-то ворует. То есть, надо, чтобы люди почувствовали реальный страх по отношению к своим деньгам, и тогда они начали задумываться, потому что сейчас об этом мало кто задумывается.

Ну что, наверное, у меня больше вопросов не осталось. Более менее всё обсудили, что мы планировали. Иван, завершаем?

Да, да, да. 

Егор, если хочешь ещё что-то добавить, порекламировать или объявить — можешь сделать это сейчас.

Спасибо. Да рекламировать нечего. Очень классно было послушать интересное мнение, ответить на вопросы и подумать. Всё это опять-таки у меня тоже мнение, поэтому вполне возможно, во многом я был не прав, но в XLN я свято верю.

Отлично. Спасибо за разговор. В шоунотах, конечно, будут ссылки на всякие ресурсы, на XLN, на блог Егора, ещё на то, что мы найдем.

Да, спасибо, Егор.

Спасибо вам. 

С нами был Егор Хомяков. Это был подкаст Базовый Блок. Иван Иваницкий, Сергей Тихомиров. Заходите на сайт basicblockradio.com — там есть все наши выпуски, все наши шоуноты. Подписывайтесь на нас через iTunes,в РСС, оставляйте отзывы, комментарии, лайки, шеры и ретвиты. А также мы завели Patreon и на Patreon можно оформить регулярное пожертвование в адрес нашего подкаста — это очень нам поможет. 

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

Добавить комментарий