Про CryptoNote, Lightning Network, Plasma, PoS и прочее
Автор статьи — Алексей Маланов, эксперт отдела развития антивирусных технологий «Лаборатории Касперского».
Недавно мы опубликовали статью «Шесть мифов о блокчейне и Биткойне, или Почему это не такая уж эффективная технология». Статья была положительно встречена Хабра-сообществом и активно обсуждалась в комментариях, что явно свидетельствует о большом интересе к этой теме.
Было среди комментаторов и несколько возмущенных. Кто-то негодовал: «Зачем вы пишете очевидное, ведь это все давно всем прекрасно известно?» На это трудно возразить по существу. Но были и те, кто писал в ключе: «Все это неправда, на самом деле все проблемы решены там-то и там-то».
В ближайшее время мы планируем выпустить еще две статьи, в которых мы анализируем и критикуем те или иные аспекты, относящиеся к теме блокчейна. Чтобы не расстраивать блокчейн-адептов и Биткойн-оптимистов, мы решили, что для разнообразия стоит вне очереди написать и оптимистичную статью. Мы рассмотрим те же мифы, что и в прошлый раз, но только с позиции того, как решаются эти проблемы.
Ознакомление с оригиналом хоть и не обязательно, но весьма желательно для лучшего понимания, почему же мы выбрали именно такие мифы.
Прошлая статья была о Биткойне и его блокчейне. Мы выбрали конкретную криптовалюту, чтобы разговор был предметнее и не изобиловал десятками оговорок и отступлений. За это нам досталось от комментаторов, которые слышали и о других криптовалютах.
Тут важно напомнить, что блокчейн и технология Биткойн — не одно и то же. Технология Биткойн объединяет в себе несколько других: принцип передачи денег, криптографические принципы, собственно блокчейн, понятие консенсуса, принцип Proof-of-Work, одноранговую сеть, мотивацию участников, деревья Меркла для организации транзакций, принципы прозрачности, хеширование и другие.
Но справедливо также и то, что биткойноподобные блокчейны, основанные на Proof-of-Work, доминируют на рынке. Общая капитализация криптовалют составляет $155 млрд (на 26.08.2017 года). Из них только в первой десятке на PoW-блокчейны приходится $120 млрд. А ниже многие валюты попросту являются прямыми клонами Биткойна с концептуально идентичным блокчейном.
![](https://habrastorage.org/r/w1560/web/e61/5ab/acc/e615abacc77b410eb415df1a2d174a8d.png)
Но дьявол в деталях. В этот раз мы пойдем на хитрость и будем писать не о блокчейне, а о различных надстройках и улучшениях «альткойнов». Неденежные применения блокчейна мы (почти) не затронем, потому что иначе тема становится необъятно широкой.
Эффективность — это отношение полезной работы к затраченным усилиям. В случае с платежными системами полезной работой можно считать проведение транзакций, а затраченными усилиями разумно считать объем «железа» и израсходованного электричества.
Напомним, что пропускная способность у Биткойн — 7 транзакций в секунду на всех участников, а у второй по капитализации валюты Ethereum — 15 простых денежных переводов или 3–5 исполнений умных контрактов в секунду. Вдобавок принцип Proof-of-Work гарантирует, что потребление электричества и объем «железа» будут расти до тех пор, пока майнить не перестанет быть выгодно, и этот рост накладных расходов никак не будет связан с качеством предоставляемых услуг.
Те, кто убеждает нас: «Да Биткойну и не надо много транзакций в секунду, у него другая цель», не правы. Тема давно беспокоит специалистов, и вот что они придумали.
Если отбросить все-все и оставить только самую суть, то Lightning Network работает так. Сначала участники сети устанавливают «канал»: они вносят залог в основной сети Биткойн. А потом начинают обмениваться платежами напрямую, изолированно от всей остальной сети — с любой скоростью.
Когда канал более не нужен, участники пишут в публичный блокчейн результат «общения» и забирают залог. Если же один из участников в процессе общения, пока никто посторонний не видел, сыграл не по правилам, то другой участник имеет возможность «предъявить» это блокчейну, и нарушитель потеряет залог.
Потенциально такая схема позволяет участникам совершать транзакции с любой удобной им скоростью. Но есть тонкости. Реализовать все надо на имеющейся в Биткойне базе. В том числе и ради Lightning Network правила даже совсем недавно подкрутили (так называемый SegWit). Кроме того, помимо технических проблем остаются еще и неопределенности из области теории игр. Например, нет уверенности, что всем участникам выгодно играть по правилам. Вдруг кто-то захочет потерять залог, но получить что-то большее взамен?
Как бы там ни было, по оптимистичным прогнозам Lightning Network может быть запущена уже в 2017 году, и тогда в «медленном блокчейне» смогут совершаться миллионы транзакций в секунду.
Блокчейн большой, но это перестало быть проблемой, когда в сети появилось хоть какое-то доверие. Дело в том, что вам необязательно качать и проверять его весь, чтобы убедиться, что вас не обманывают.
Во-первых, есть веб-кошельки и веб-сервисы, которые сделают всю работу. В этих сервисах вы видите, что происходит с вашим балансом, и видите, как к вам летит какой-то перевод. Вряд ли общедоступный сервис будет обманывать именно вас, верно? И если никто на него не жалуется, то вполне можно считать его достоверным источником информации и пользоваться в свое удовольствие.
Преимущество по сравнению с традиционными платежными системами в том, что если закроется один веб-кошелек, то вы просто переключитесь на другой, ведь у всех одинаковая база. Для сравнения: если вдруг ваш классический банк столкнется со сбоем — ляжет интернет-банк или возникнут проблемы в процессинге, то вам понадобятся карта другого банка или наличные.
А во-вторых, есть и более продвинутый способ (и более надежный), о котором писал еще сам Сатоши в 2008 году. Вы можете качать и проверять только заголовки блоков, а не сами блоки, а также доказательства правильности транзакций, имеющих непосредственное отношение к вам.
Дело в том, что транзакции упакованы в элегантную структуру: дерево Меркла.
![](https://habrastorage.org/r/w1560/web/88f/fa2/4d7/88ffa24d718245e6a6be626e4bcb1954.png)
Для проверки включения транзакции Tx3 в блокчейн вам достаточно знать Tx3, Hash2, Hash01 и все заголовки блоков
А значит, небольшой объем данных (доказательство Меркла) позволяет убедиться, что транзакция действительно существует в блокчейне. То есть полные узлы сети посчитали ее корректной.
Далее, если много случайных узлов в сети, к которым вы подключаетесь, рапортуют, что заголовки блоков у них именно такие, то вы можете с большой долей уверенности считать, что все верно, без подделок.
Заголовки всех блоков сейчас занимают всего 40 Мб, что уже вполне компактно. Но можно еще больше сэкономить: не обязательно хранить заголовки всех транзакций за всю историю — вполне достаточно начать с определенного момента.
Масштабируемость означает, что, добавляя ресурсы в систему, вы увеличиваете ее производительность. Так вот, классический блокчейн абсолютно не масштабируем — увеличение ресурсов никак не влияет на пропускную способность системы.
Забавно также то, что классический блокчейн не масштабируем не только вверх, но и вниз. То есть по тем же принципам нельзя построить достаточно маленькую систему для решения локальных задач, потому что она будет уязвима к «Атаке 51%».
Но вот что буквально на днях предложили Джозеф Пун (изобретатель Lightning Network из первого мифа) и Виталик Бутерин (идейный вдохновитель сети Ethereum).
Plasma — это способ делать блокчейн блокчейнов. Концепция схожа с Lightning Network — кто-то вносит залог в основной сети Ethereum и начинает общаться с другими клиентами независимо и отдельно, самостоятельно контролируя исполнение правил своего смарт-контракта и общих правил Ethereum. Смарт-контракт — это мини-программа по работе с деньгами и кошельками, ключевая фишка Ethereum.
Время от времени результаты обособленного общения записываются в основную сеть. Так же как и в случае Lightning Network, все участники контролируют исполнение правил смарт-контракта и «жалуются» в случае чего.
Интересно, что в такой обособленной мини-сети «отпочкование» можно повторить.
Пока остается много открытых вопросов. Например, а несет ли ответственность хозяин главного ответвления за выполнение правил теми, кто ответвился от него? А наоборот? Все это интересные задачи из теории игр. Пока предложение — лишь черновик, но ясно одно: если задуманную концепцию удастся реализовать, то проблема масштабируемости блокчейна останется в прошлом.
Proof-of-Work — пока самый популярный среди криптовалют принцип достижения консенсуса. В нем новый блок создается после длительных вычислений — это нужно исключительно для того, чтобы нельзя было быстро переписать финансовую историю. Майнеры PoW-сетей жгут электричество, причем количество сожженных мегаватт регулируется не соображениями безопасности или здравого смысла, а только экономикой: мощности наращиваются до тех пор, пока это еще выгодно при текущей цене криптовалюты.
Но есть и альтернативный подход к распределению права на создание блоков — Proof-of-Stake. В этой концепции вероятность создать блок, а значит, и право получить награду (в виде комиссий или эмитируемой валюты) зависят не от того, сколько вы вложили усилий (сожгли электричества), а от того, сколько у вас валюты в этой системе.
Если у вас треть всех монет, то псевдослучайный алгоритм с вероятностью одна треть будет обращаться к вам с просьбой сформировать блок. Этот принцип точно так же мотивирует участников вести себя по правилам, ведь чем больше у вас валюты, тем больше вы заинтересованы, чтобы сеть функционировала исправно.
Но есть и тонкие места. Например, представьте, что вы за бесценок скупаете нынче пустые кошельки, на которых всего год назад суммарно лежала львиная доля всех денег. После этого вы можете переписать финансовую историю с того момента, когда вы якобы были богачом. И в этой истории вы останетесь богачом, а все другие участники примут вашу версию, потому что вашу историю поддерживает больший капитал, чем общепринятую.
![](https://habrastorage.org/r/w1560/web/e11/d90/761/e11d90761cb64678b483c6c3dc09fda1.png)
Павел Иванович Чичиков горячо одобряет Proof-of-Stake без дополнительных мер защиты
Разные реализации по-разному решают описанную проблему. Например, можно регулярно подписывать ключом разработчика корректные блоки, чтобы историю нельзя было переписать слишком глубоко.
Важно то, что технические сложности решаемы. Приятно видеть, что самые современные и продвинутые криптовалюты отказываются от принципа Proof-of-Work.
Но есть и более радикальный метод. Дать возможность создавать блоки только доверенным участникам. Например, 10 больниц могут писать в блокчейн эпидемиологическую обстановку в городе. У каждой больницы свой ключ для подписи, больницам мы доверяем. Вместе с тем сохранится открытость — важное свойство блокчейна.
Хотя справедливости ради PoA сильнее всего разрушает изначальную задумку, ведь в этом случае сеть по сути централизованна и может обойтись без распределенности.
В другой раз мы расскажем про сети, которые выполняют полезную работу в рамках Proof-of-Work: ищут простые числа специального вида (PrimeCoin), рассчитывают третичную структуру белка (FoldingCoin) или выполняют другую научную задачу, связанную с вычислениями (GridCoin). А награда за «майнинг» стимулирует вкладывать в науку больше ресурсов.
Не так просто вносить изменения в протокол децентрализованной сети. Если вы разработчик и контролируете исходный код, то одно из двух: либо вы принудительно можете обновить всех клиентов, но такая сеть не может считаться действительно децентрализованной; либо вы вносите в код изменения и должны уговорить всех участников эти изменения принять. Если значительная часть останется против, то велик шанс, что сообщество расколется, цепочка блоков разделится на две несовместимые, и будет уже две валюты.
Порой уговоры протекают болезненно, потому что разные участники в зависимости от их роли преследуют разные интересы. Например, майнеры заинтересованы в росте наград и комиссий; пользователи, наоборот, хотят поменьше платить за переводы; фанатам не важны комиссии, они хотят, чтобы криптовалюта становилась более популярной, а технологическим гикам хочется, чтобы в технологии добавляли полезные инновации.
Расколы уже происходили и с Биткойн — не договорились о стратегии по увеличению размера блока (чтобы влезало побольше транзакций), и в Ethereum — не договорились, справедливо ли будет «отменить» взлом одного инвестфонда и вернуть деньги вкладчикам. В результате из двух валют стало четыре.
Обычно голосование по предложениям проходит так:
![](https://habrastorage.org/r/w1560/web/d34/3f4/1a3/d343f41a31bd419290ef10ebbc13854b.png)
Результаты голосования разных майнеров по трем предложениям развития сети биткойн. Источник
Выходит, что учитывается только мнение майнеров, причем чем больше мощность пула, тем больше у него голосов.
Худо-бедно по такому принципу в протокол вносятся изменения.
Но готовится к выходу криптовалюта Tezos, которая упрощает процесс внесения изменений в протокол, потому что это заложено в валюту архитектурно. При этом:
Предполагается, что такой подход значительно снизит накал страстей и необходимость в «хардфорках».
Есть вполне реальная возможность, что путем таких вот изменений в какой-то момент мажоритарии лишат миноритариев права голоса. По-простому — править станут богатые. Сами разработчики считают, что это должно негативно сказаться на цене валюты и поэтому вряд ли произойдет. Что ж, увидим.
Представьте, что вы WikiLeaks и собираете пожертвования в биткойнах. Все знают ваш адрес, знают, сколько денег вы собрали, а когда вы попытаетесь поменять эти деньги на бирже на доллары, правоохранительные органы еще и будут знать ваш долларовый счет. Иными словами, есть проблема.
Причем в одиночку «отмыть» деньги, за которыми ведется наблюдение, в Биткойн невозможно. Попытка раскидать деньги на 10 кошельков ведет только к тому, что теперь 10 кошельков ассоциированы с вами.
В прошлой статье мы рассказывали о «миксерах». Это анонимные сервисы, которые за плату перемешивают большое количество денег, и становится непонятно, где чьи. Но пользоваться ими неудобно по целому ряду причин.
Сначала придумали встроить миксер прямо в валюту. Так появилась Dash (бывшая Darkcoin) с функцией PrivateSend. Она работает следующим образом:
Нетрудно видеть, что если кто-то (например, правоохранительные органы) контролирует значительную часть мастернод, то отследить перевод он все-таки сможет. Хотя это и маловероятно.
Кроме того, смешивание грязных денег с чистыми делает все деньги серыми, то есть подозрительными. Выходит, чтобы серые деньги стали белыми, микшировать деньги должны все и всегда.
И был придуман более надежный подход. Про валюту Monero можно по праву сказать, что она анонимна.
Во-первых, она использует кольцевые подписи для анонимизации. Кольцевая подпись (ring signature) — это такая электронная подпись, которая позволяет одному из участников группы (называемой кольцом) выполнить подписание некоторого сообщения от имени всей группы, при этом не будет доподлинно известно, кто из участников группы выполнил подписание. Это свойство позволяет отправителю самостоятельно заметать следы. При этом протокол по-прежнему будет защищать от двойных трат.
Во-вторых, по адресу кошелька нельзя увидеть историю транзакций и баланс, потому что в Monero у вас есть не только приватный spendkey для траты денег, но и дополнительно приватный viewkey для просмотра поступлений на ваш адрес.
Ну а в-третьих, для разных отправителей стоит генерировать одноразовые адреса. Например, деньги от мамы, «грязные» деньги и деньги с биржи не стоит принимать на один адрес. Но это правило давно рекомендовано даже в Биткойн.
Ради справедливости упомянем еще валюту Zcash, анонимность в которой построена по другим, но не менее продвинутым принципам.
Что ж, краткий обзор недостатков, превращенных талантливыми людьми в достоинства, завершен. Но это далеко не все, ведь мы почти не писали о смарт-контрактах Ethereum, перспективах Ripple в банковской сфере или криптовалюте без блокчейна IOTA.
Строго говоря, в заголовке этой статьи содержалась ложь: ведь мы говорили не о блокчейне, а о его надстройках. Но в том и преимущество блокчейна, что он вдохновляет людей искать пути к совершенству.
Автор статьи — Алексей Маланов, эксперт отдела развития антивирусных технологий «Лаборатории Касперского».
![](https://habrastorage.org/web/24d/dcc/ebf/24ddccebfa0b4a4e87ae11e016ad8c07.jpg)
Было среди комментаторов и несколько возмущенных. Кто-то негодовал: «Зачем вы пишете очевидное, ведь это все давно всем прекрасно известно?» На это трудно возразить по существу. Но были и те, кто писал в ключе: «Все это неправда, на самом деле все проблемы решены там-то и там-то».
В ближайшее время мы планируем выпустить еще две статьи, в которых мы анализируем и критикуем те или иные аспекты, относящиеся к теме блокчейна. Чтобы не расстраивать блокчейн-адептов и Биткойн-оптимистов, мы решили, что для разнообразия стоит вне очереди написать и оптимистичную статью. Мы рассмотрим те же мифы, что и в прошлый раз, но только с позиции того, как решаются эти проблемы.
Ознакомление с оригиналом хоть и не обязательно, но весьма желательно для лучшего понимания, почему же мы выбрали именно такие мифы.
Не о Биткойне
Прошлая статья была о Биткойне и его блокчейне. Мы выбрали конкретную криптовалюту, чтобы разговор был предметнее и не изобиловал десятками оговорок и отступлений. За это нам досталось от комментаторов, которые слышали и о других криптовалютах.
Тут важно напомнить, что блокчейн и технология Биткойн — не одно и то же. Технология Биткойн объединяет в себе несколько других: принцип передачи денег, криптографические принципы, собственно блокчейн, понятие консенсуса, принцип Proof-of-Work, одноранговую сеть, мотивацию участников, деревья Меркла для организации транзакций, принципы прозрачности, хеширование и другие.
Но справедливо также и то, что биткойноподобные блокчейны, основанные на Proof-of-Work, доминируют на рынке. Общая капитализация криптовалют составляет $155 млрд (на 26.08.2017 года). Из них только в первой десятке на PoW-блокчейны приходится $120 млрд. А ниже многие валюты попросту являются прямыми клонами Биткойна с концептуально идентичным блокчейном.
![](https://habrastorage.org/web/e61/5ab/acc/e615abacc77b410eb415df1a2d174a8d.png)
Но дьявол в деталях. В этот раз мы пойдем на хитрость и будем писать не о блокчейне, а о различных надстройках и улучшениях «альткойнов». Неденежные применения блокчейна мы (почти) не затронем, потому что иначе тема становится необъятно широкой.
Миф 1: Блокчейн медленный и неэффективный
Эффективность — это отношение полезной работы к затраченным усилиям. В случае с платежными системами полезной работой можно считать проведение транзакций, а затраченными усилиями разумно считать объем «железа» и израсходованного электричества.
Напомним, что пропускная способность у Биткойн — 7 транзакций в секунду на всех участников, а у второй по капитализации валюты Ethereum — 15 простых денежных переводов или 3–5 исполнений умных контрактов в секунду. Вдобавок принцип Proof-of-Work гарантирует, что потребление электричества и объем «железа» будут расти до тех пор, пока майнить не перестанет быть выгодно, и этот рост накладных расходов никак не будет связан с качеством предоставляемых услуг.
Lightning Network
Те, кто убеждает нас: «Да Биткойну и не надо много транзакций в секунду, у него другая цель», не правы. Тема давно беспокоит специалистов, и вот что они придумали.
Если отбросить все-все и оставить только самую суть, то Lightning Network работает так. Сначала участники сети устанавливают «канал»: они вносят залог в основной сети Биткойн. А потом начинают обмениваться платежами напрямую, изолированно от всей остальной сети — с любой скоростью.
Когда канал более не нужен, участники пишут в публичный блокчейн результат «общения» и забирают залог. Если же один из участников в процессе общения, пока никто посторонний не видел, сыграл не по правилам, то другой участник имеет возможность «предъявить» это блокчейну, и нарушитель потеряет залог.
Потенциально такая схема позволяет участникам совершать транзакции с любой удобной им скоростью. Но есть тонкости. Реализовать все надо на имеющейся в Биткойне базе. В том числе и ради Lightning Network правила даже совсем недавно подкрутили (так называемый SegWit). Кроме того, помимо технических проблем остаются еще и неопределенности из области теории игр. Например, нет уверенности, что всем участникам выгодно играть по правилам. Вдруг кто-то захочет потерять залог, но получить что-то большее взамен?
Как бы там ни было, по оптимистичным прогнозам Lightning Network может быть запущена уже в 2017 году, и тогда в «медленном блокчейне» смогут совершаться миллионы транзакций в секунду.
Миф 2: Блокчейн громоздкий
Блокчейн большой, но это перестало быть проблемой, когда в сети появилось хоть какое-то доверие. Дело в том, что вам необязательно качать и проверять его весь, чтобы убедиться, что вас не обманывают.
Веб-кошельки
Во-первых, есть веб-кошельки и веб-сервисы, которые сделают всю работу. В этих сервисах вы видите, что происходит с вашим балансом, и видите, как к вам летит какой-то перевод. Вряд ли общедоступный сервис будет обманывать именно вас, верно? И если никто на него не жалуется, то вполне можно считать его достоверным источником информации и пользоваться в свое удовольствие.
Преимущество по сравнению с традиционными платежными системами в том, что если закроется один веб-кошелек, то вы просто переключитесь на другой, ведь у всех одинаковая база. Для сравнения: если вдруг ваш классический банк столкнется со сбоем — ляжет интернет-банк или возникнут проблемы в процессинге, то вам понадобятся карта другого банка или наличные.
Тонкие кошельки
А во-вторых, есть и более продвинутый способ (и более надежный), о котором писал еще сам Сатоши в 2008 году. Вы можете качать и проверять только заголовки блоков, а не сами блоки, а также доказательства правильности транзакций, имеющих непосредственное отношение к вам.
Дело в том, что транзакции упакованы в элегантную структуру: дерево Меркла.
![](https://habrastorage.org/web/88f/fa2/4d7/88ffa24d718245e6a6be626e4bcb1954.png)
Для проверки включения транзакции Tx3 в блокчейн вам достаточно знать Tx3, Hash2, Hash01 и все заголовки блоков
А значит, небольшой объем данных (доказательство Меркла) позволяет убедиться, что транзакция действительно существует в блокчейне. То есть полные узлы сети посчитали ее корректной.
Далее, если много случайных узлов в сети, к которым вы подключаетесь, рапортуют, что заголовки блоков у них именно такие, то вы можете с большой долей уверенности считать, что все верно, без подделок.
Заголовки всех блоков сейчас занимают всего 40 Мб, что уже вполне компактно. Но можно еще больше сэкономить: не обязательно хранить заголовки всех транзакций за всю историю — вполне достаточно начать с определенного момента.
Миф 3: Блокчейн не масштабируем
Масштабируемость означает, что, добавляя ресурсы в систему, вы увеличиваете ее производительность. Так вот, классический блокчейн абсолютно не масштабируем — увеличение ресурсов никак не влияет на пропускную способность системы.
Забавно также то, что классический блокчейн не масштабируем не только вверх, но и вниз. То есть по тем же принципам нельзя построить достаточно маленькую систему для решения локальных задач, потому что она будет уязвима к «Атаке 51%».
Plasma
Но вот что буквально на днях предложили Джозеф Пун (изобретатель Lightning Network из первого мифа) и Виталик Бутерин (идейный вдохновитель сети Ethereum).
Plasma — это способ делать блокчейн блокчейнов. Концепция схожа с Lightning Network — кто-то вносит залог в основной сети Ethereum и начинает общаться с другими клиентами независимо и отдельно, самостоятельно контролируя исполнение правил своего смарт-контракта и общих правил Ethereum. Смарт-контракт — это мини-программа по работе с деньгами и кошельками, ключевая фишка Ethereum.
Время от времени результаты обособленного общения записываются в основную сеть. Так же как и в случае Lightning Network, все участники контролируют исполнение правил смарт-контракта и «жалуются» в случае чего.
Интересно, что в такой обособленной мини-сети «отпочкование» можно повторить.
Пока остается много открытых вопросов. Например, а несет ли ответственность хозяин главного ответвления за выполнение правил теми, кто ответвился от него? А наоборот? Все это интересные задачи из теории игр. Пока предложение — лишь черновик, но ясно одно: если задуманную концепцию удастся реализовать, то проблема масштабируемости блокчейна останется в прошлом.
Миф 4: Майнеры жгут ресурсы планеты
Proof-of-Work — пока самый популярный среди криптовалют принцип достижения консенсуса. В нем новый блок создается после длительных вычислений — это нужно исключительно для того, чтобы нельзя было быстро переписать финансовую историю. Майнеры PoW-сетей жгут электричество, причем количество сожженных мегаватт регулируется не соображениями безопасности или здравого смысла, а только экономикой: мощности наращиваются до тех пор, пока это еще выгодно при текущей цене криптовалюты.
Proof-of-Stake
Но есть и альтернативный подход к распределению права на создание блоков — Proof-of-Stake. В этой концепции вероятность создать блок, а значит, и право получить награду (в виде комиссий или эмитируемой валюты) зависят не от того, сколько вы вложили усилий (сожгли электричества), а от того, сколько у вас валюты в этой системе.
Если у вас треть всех монет, то псевдослучайный алгоритм с вероятностью одна треть будет обращаться к вам с просьбой сформировать блок. Этот принцип точно так же мотивирует участников вести себя по правилам, ведь чем больше у вас валюты, тем больше вы заинтересованы, чтобы сеть функционировала исправно.
Но есть и тонкие места. Например, представьте, что вы за бесценок скупаете нынче пустые кошельки, на которых всего год назад суммарно лежала львиная доля всех денег. После этого вы можете переписать финансовую историю с того момента, когда вы якобы были богачом. И в этой истории вы останетесь богачом, а все другие участники примут вашу версию, потому что вашу историю поддерживает больший капитал, чем общепринятую.
![](https://habrastorage.org/web/e11/d90/761/e11d90761cb64678b483c6c3dc09fda1.png)
Павел Иванович Чичиков горячо одобряет Proof-of-Stake без дополнительных мер защиты
Разные реализации по-разному решают описанную проблему. Например, можно регулярно подписывать ключом разработчика корректные блоки, чтобы историю нельзя было переписать слишком глубоко.
Важно то, что технические сложности решаемы. Приятно видеть, что самые современные и продвинутые криптовалюты отказываются от принципа Proof-of-Work.
Proof-of-Authority
Но есть и более радикальный метод. Дать возможность создавать блоки только доверенным участникам. Например, 10 больниц могут писать в блокчейн эпидемиологическую обстановку в городе. У каждой больницы свой ключ для подписи, больницам мы доверяем. Вместе с тем сохранится открытость — важное свойство блокчейна.
Хотя справедливости ради PoA сильнее всего разрушает изначальную задумку, ведь в этом случае сеть по сути централизованна и может обойтись без распределенности.
Ресурсы можно тратить с пользой
В другой раз мы расскажем про сети, которые выполняют полезную работу в рамках Proof-of-Work: ищут простые числа специального вида (PrimeCoin), рассчитывают третичную структуру белка (FoldingCoin) или выполняют другую научную задачу, связанную с вычислениями (GridCoin). А награда за «майнинг» стимулирует вкладывать в науку больше ресурсов.
Миф 5: Блокчейн децентрализован и поэтому не развивается
Не так просто вносить изменения в протокол децентрализованной сети. Если вы разработчик и контролируете исходный код, то одно из двух: либо вы принудительно можете обновить всех клиентов, но такая сеть не может считаться действительно децентрализованной; либо вы вносите в код изменения и должны уговорить всех участников эти изменения принять. Если значительная часть останется против, то велик шанс, что сообщество расколется, цепочка блоков разделится на две несовместимые, и будет уже две валюты.
Порой уговоры протекают болезненно, потому что разные участники в зависимости от их роли преследуют разные интересы. Например, майнеры заинтересованы в росте наград и комиссий; пользователи, наоборот, хотят поменьше платить за переводы; фанатам не важны комиссии, они хотят, чтобы криптовалюта становилась более популярной, а технологическим гикам хочется, чтобы в технологии добавляли полезные инновации.
Расколы уже происходили и с Биткойн — не договорились о стратегии по увеличению размера блока (чтобы влезало побольше транзакций), и в Ethereum — не договорились, справедливо ли будет «отменить» взлом одного инвестфонда и вернуть деньги вкладчикам. В результате из двух валют стало четыре.
Голосование
Обычно голосование по предложениям проходит так:
- Разработчики что-то предлагают изменить в правилах сети.
- Майнер, который создает блок, в специальном месте блока выставляет флажок «согласен/не согласен с предложением X».
- Через определенное время проводятся замеры, кто за что голосовал.
- Потом майнеры вручную интегрируют новые правила.
![](https://habrastorage.org/web/d34/3f4/1a3/d343f41a31bd419290ef10ebbc13854b.png)
Результаты голосования разных майнеров по трем предложениям развития сети биткойн. Источник
Выходит, что учитывается только мнение майнеров, причем чем больше мощность пула, тем больше у него голосов.
Худо-бедно по такому принципу в протокол вносятся изменения.
Tezos
Но готовится к выходу криптовалюта Tezos, которая упрощает процесс внесения изменений в протокол, потому что это заложено в валюту архитектурно. При этом:
- За новые правила голосуют не майнинговыми мощностями, а капиталами.
- Свой голос можно делегировать тому, кто разбирается лучше.
- Разработчики имеют право вето весь первый год после запуска, а при необходимости могут его продлить.
- Изначальный кворум составляет 80%, но он будет меняться со временем, подстраиваясь под фактическую активность «держателей».
Предполагается, что такой подход значительно снизит накал страстей и необходимость в «хардфорках».
Есть вполне реальная возможность, что путем таких вот изменений в какой-то момент мажоритарии лишат миноритариев права голоса. По-простому — править станут богатые. Сами разработчики считают, что это должно негативно сказаться на цене валюты и поэтому вряд ли произойдет. Что ж, увидим.
Миф 6: Блокчейн слишком прозрачен
Представьте, что вы WikiLeaks и собираете пожертвования в биткойнах. Все знают ваш адрес, знают, сколько денег вы собрали, а когда вы попытаетесь поменять эти деньги на бирже на доллары, правоохранительные органы еще и будут знать ваш долларовый счет. Иными словами, есть проблема.
Причем в одиночку «отмыть» деньги, за которыми ведется наблюдение, в Биткойн невозможно. Попытка раскидать деньги на 10 кошельков ведет только к тому, что теперь 10 кошельков ассоциированы с вами.
В прошлой статье мы рассказывали о «миксерах». Это анонимные сервисы, которые за плату перемешивают большое количество денег, и становится непонятно, где чьи. Но пользоваться ими неудобно по целому ряду причин.
CoinJoin
Сначала придумали встроить миксер прямо в валюту. Так появилась Dash (бывшая Darkcoin) с функцией PrivateSend. Она работает следующим образом:
- Сначала платеж делится на кусочки по 100, 10, 1, 0,1 и т.д., чтобы его нельзя было отследить по размеру.
- Потом одинаковые части из разных транзакций перемешиваются.
- Перемешивание состоит из нескольких этапов, на каждом этапе выбирается новая перемешивающая мастернода. Мастерноды управляются волонтерами и получают комиссию.
- После смешивания сумма возвращается владельцу на новые анонимные адреса и может использоваться, когда потребуется (нет нужды ожидать смешивания).
Нетрудно видеть, что если кто-то (например, правоохранительные органы) контролирует значительную часть мастернод, то отследить перевод он все-таки сможет. Хотя это и маловероятно.
Кроме того, смешивание грязных денег с чистыми делает все деньги серыми, то есть подозрительными. Выходит, чтобы серые деньги стали белыми, микшировать деньги должны все и всегда.
CryptoNote
И был придуман более надежный подход. Про валюту Monero можно по праву сказать, что она анонимна.
Во-первых, она использует кольцевые подписи для анонимизации. Кольцевая подпись (ring signature) — это такая электронная подпись, которая позволяет одному из участников группы (называемой кольцом) выполнить подписание некоторого сообщения от имени всей группы, при этом не будет доподлинно известно, кто из участников группы выполнил подписание. Это свойство позволяет отправителю самостоятельно заметать следы. При этом протокол по-прежнему будет защищать от двойных трат.
Во-вторых, по адресу кошелька нельзя увидеть историю транзакций и баланс, потому что в Monero у вас есть не только приватный spendkey для траты денег, но и дополнительно приватный viewkey для просмотра поступлений на ваш адрес.
Ну а в-третьих, для разных отправителей стоит генерировать одноразовые адреса. Например, деньги от мамы, «грязные» деньги и деньги с биржи не стоит принимать на один адрес. Но это правило давно рекомендовано даже в Биткойн.
Ради справедливости упомянем еще валюту Zcash, анонимность в которой построена по другим, но не менее продвинутым принципам.
Заключение
Что ж, краткий обзор недостатков, превращенных талантливыми людьми в достоинства, завершен. Но это далеко не все, ведь мы почти не писали о смарт-контрактах Ethereum, перспективах Ripple в банковской сфере или криптовалюте без блокчейна IOTA.
Строго говоря, в заголовке этой статьи содержалась ложь: ведь мы говорили не о блокчейне, а о его надстройках. Но в том и преимущество блокчейна, что он вдохновляет людей искать пути к совершенству.