28 сентября 2017

Почему блокчейн – не такая уж и плохая технология

Технологии

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

Не о Биткойне

Важно помнить, что блокчейн и Биткойн — не одно и то же. Технология Биткойн объединяет в себе несколько технологий: принцип передачи денег, криптографические принципы, собственно, блокчейн, понятие консенсуса, принцип Proof-of-Work, одноранговую сеть, мотивацию участников, деревья Меркла для организации транзакций, принципы прозрачности, хеширование и другие.

Поэтому недостатки блокчейна в том виде, в котором он реализован в Биткойне, не являются универсальными — в других криптовалютах он может работать иначе. С другой стороны, несложно убедиться в том, что пока доминируют именно биткойноподобные блокчейны, основанные на Proof-of-Work.

Миф 1: Блокчейн медленный и неэффективный

Напомним, что пропускная способность у Биткойна — 7 транзакций в секунду, не на каждого участника, а на все миллионы участников сразу. А у второй по капитализации валюты, Ethereum, — 15 простых денежных переводов или 3-5 исполнений умных контрактов в секунду.

Принятый в большинстве криптовалют принцип Proof-of-Work (выполненная работа как доказательство) гарантирует, что потребление электричества и объем «железа» будет расти до тех пор, пока майнить не перестанет быть выгодно. И этот рост накладных расходов никак не улучшит качество предоставляемых услуг — можно сжечь хоть все электричество планеты, Биткойн все равно будет работать со скоростью 7 транзакций в секунду.

Lightning Network

Тема недостаточно высокой скорости проведения транзакций давно беспокоит специалистов, и чтобы это исправить, они придумали Lightning Network.

Работает это так: сначала участники сети устанавливают отдельный канал — примерно как приватный канал в чате. А в качестве гарантии, что они друг друга не обманут, они вносят залог в основной сети Биткойн. И потом начинают обмениваться платежами напрямую, изолированно от всей остальной сети — с любой скоростью.

Когда канал больше не нужен, участники записывают в публичный блокчейн результат «общения» и забирают залог. Если же один из участников в процессе обмена приватными платежами сыграл не по правилам, то другой участник имеет возможность «предъявить» это блокчейну, и нарушитель потеряет залог.

По оптимистичным прогнозам, Lightning Network может быть запущена уже в 2017 году, и тогда в «медленном блокчейне» смогут совершаться миллионы транзакций в секунду.

Миф 2: Блокчейн громоздкий

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

Веб-кошельки

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

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

Тонкие кошельки

А во-вторых, есть и более продвинутый способ (и более надежный), о котором писал еще сам Сатоши в 2008 году. Вместо того, чтобы хранить и обрабатывать весь огромный 100-гигабайтный блокчейн, можно качать и проверять только заголовки блоков, а также доказательства правильности транзакций, имеющих непосредственное отношение к вам.

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

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

Миф 3: Блокчейн не масштабируем

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

Забавно также то, что классический блокчейн не масштабируем не только вверх, но и вниз. Если по тем же принципам построить маленькую систему для решения каких-то локальных задач, она будет уязвима к «Атаке 51%» — придет кто-нибудь с большой вычислительной мощностью и сразу станет самым главным, имея возможность переписывать историю так, как ему заблагорассудится.

Plasma

Но вот что буквально на днях предложили Джозеф Пун (изобретатель Lightning Network из первого мифа) и Виталик Бутерин (идейный вдохновитель сети Ethereum).

Plasma — это способ делать блокчейн блокчейнов. Концепция схожа с Lightning Network, только придумано это не для Биткойна, а для его ближайшего конкурента — Ethereum. Работает это так: кто-то вносит залог в основной сети Ethereum и начинает общаться с другими клиентами независимо и отдельно, самостоятельно контролируя исполнение правил своего смарт-контракта и общих правил Ethereum. Смарт-контракт — это мини-программа по работе с деньгами и кошельками, ключевая фишка Ethereum.

Время от времени, результаты обособленного общения записываются в основную сеть. Так же, как и в случае Lightning Network, все участники контролируют исполнение правил смарт-контракта и если что-то идет не так — «жалуются».

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

Миф 4: Майнеры жгут ресурсы планеты

Proof-of-Work — пока самый популярный среди криптовалют принцип достижения консенсуса. В нем новый блок создается после длительных вычислений — которые нужны исключительно для того, чтобы нельзя было быстро переписать финансовую историю. Майнеры PoW-сетей жгут электричество, причем количество сожженных мегаватт регулируется не соображениями безопасности или здравого смысла, а только экономикой: мощности наращиваются до тех пор, пока это остается выгодным при текущей цене криптовалюты.

Proof-of-Stake

Но есть и альтернативный подход к распределению права на создание блоков — Proof-of-Stake. В этой концепции вероятность создать блок, а значит и право получить награду (в виде комиссий или эмитируемой валюты), зависит не от того, сколько вы вложили усилий (сожгли электричества), а от того, сколько у вас валюты в данной системе.

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

Proof-of-Authority

Есть и более радикальный метод: дать возможность создавать блоки только доверенным участникам. Например, 10 больниц могут писать в блокчейн эпидемиологическую обстановку в городе. У каждой больницы свой ключ для подписи, потому что больницам мы доверяем, а всем остальным — нет. Вместе с тем сохранится открытость — важное свойство блокчейна.

Правда, Proof-of-Authority сильнее всего разрушает изначальную задумку, ведь в этом случае сеть, по сути, централизована и может обойтись без распределенности.

Ресурсы можно тратить с пользой

Также существуют сети, которые в рамках Proof-of-Work выполняют полезную работу: ищут простые числа специального вида (PrimeCoin), рассчитывают третичную структуру белка (FoldingCoin) или выполняют другие научные задачи, связанные с вычислениями (GridCoin). А награда за «майнинг» стимулирует вкладывать в науку больше ресурсов.

Миф 5: Блокчейн децентрализован и поэтому не развивается

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

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

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

Как же можно избегать подобных ситуаций?

Tezos

Например, можно заложить в архитектуру криптовалюты возможность голосования за внесение изменений. Именно так сделано в криптовалюте Tezos, которая готовится к выходу на рынок. Основные особенности голосования таковы:

  1. За новые правила голосуют не майнинговыми мощностями, а капиталами.
  2. Свой голос можно делегировать тому, кто разбирается лучше.
  3. Разработчики имеют право вето весь первый год после запуска, а при необходимости могут его продлить.
  4. Изначальный кворум составляет 80%, но он будет меняться со временем, подстраиваясь под фактическую активность «держателей» криптовалюты.

Предполагается, что такой подход значительно снизит накал страстей и необходимость в «хардфорках».

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

Миф 6: Блокчейн слишком прозрачен

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

В одиночку «отмыть» деньги, за которыми ведется наблюдение, в Биткойне невозможно. Попытка раскидать деньги на 10 кошельков ведет только к тому, что теперь 10 кошельков ассоциированы с вами.

В прошлой статье мы рассказывали о «миксерах». Это анонимные сервисы, которые за плату перемешивают большое количество денег, и становится непонятно, где чьи. Но пользоваться ими неудобно по целому ряду причин.

CoinJoin в валюте Dash

Сначала эту проблему пытались решить создатели криптовалюты Dash (бывшая Darkcoin) с функцией PrivateSend. Они пошли по простому пути – встроили миксер прямо в валюту.

Однако есть пара проблем. Во-первых, если кто-то (например, правоохранительные органы) контролирует значительную часть тех узлов, которые занимаются смешиванием «чистых» денег с «грязными», то он может отследить перевод. Такая ситуация маловероятна, но возможна.

Во-вторых, смешивание «грязных» денег с «чистыми» делает все деньги «серыми», то есть подозрительными. Выходит, чтобы серые деньги стали белыми, смешивать деньги должны все и всегда.

CryptoNote в валюте Monero

Был придуман и более надежный подход. Про валюту Monero можно сказать, что она действительно анонимна.

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

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

Ну а в-третьих, для разных отправителей стоит генерировать одноразовые адреса. «Грязные» деньги и деньги с биржи не стоит принимать на один адрес. Но это правило давно рекомендовано даже в Биткойне.

Заключение

Что ж, краткий обзор недостатков, превращенных талантливыми людьми в достоинства, завершен. Но это далеко не все, ведь мы почти не писали о смарт-контрактах Ethereum, перспективах Ripple в банковской сфере или криптовалюте без блокчейна IOTA.

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