Что такое Taproot и чем он полезен для Биткоина?

Данная запись является продолжением предыдущей фундаментальной записи о Биткоине. Будущее наступило. Изначально данный запись является переводом данного материала, и будет обновлена в тот момент, когда автор испробует все прелести на себе.

Данная статья не является инвестиционным советом и автор не несёт никакой ответсвенности за возможные потери любой природы. Делайте свое исследование, вникайте во всё сами. Не доверяйте, а проверяйте.

Taproot является самым ожидаемым обновлением протокола Биткоина. В записи будет объяснено в чем заключается это обновление и из-за чего оно так важно.

tarpoot update

Тапрут привнесет две важных особенности в протокол Биткоина:

  • MAST
  • Shnorr signature scheme

Каждое из этих особенностей является крайне заметной для протокола Биткоина, а вместе они серьезнейшим образом улучшают конфиденциальность Биткоина и добавляют возможность умных контрактов (привед, любидели эфира-бутирата и прочие одепты “крипты” 2++ поколения).

Что такое MAST?

MAST является аббревиатурой от Merkelized Abstract Syntax Tree, или Меркилизованное дерево абстрактного синтаксиса, прежде чем объяснить, что же такое MAST, необходимо объяснить как в данный момент Биткоин оперирует умными контактами.

P2SH

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

Для примера, первым условием умного контракта может быть что сатошики могут быть переданы только черз 1 день, вторым условием может быть то что Иван может перевести сатошики моментально. Как минимум, одно из условий должно быть выполнено чтобы сатошики(напомню, 100 миллионов сатоши составляет 1 биткоин) переместились.

Эти условия внутри умного контракта спрятаны от публики и только создатель контракта знает их. Эти условия скрыты с помощью т.н. хэша* (условие – секретный ключ, хэш – публичный). Это также известно как P2SH(pay to script hash), или оплата по хэшу скрипта. Когда сатошики перемешаются, тогда условие и его хэш становятся публичными. Позже любой может проверить условие и хэш передающего скрипта.

*хэш – это случайная псевдо-последовательность цифр и букв, на манер адреса Биткоина. Для получения хэша(или также используется слово дайджест “сообщения”). Для получения хэша используется однонаправленная функция (некоторый аналог производной в математическом анализе, но с дополнительными свойствами), с помощью которой всегда можно из сообщения X получить хэш Y, но наоборот, из Y получить X практический невозможно(в этом основное отличие от производной, в случае которой разыскание первообразной функции хоть и представлет собой занчительно более сложныую задачу, но зачастую при должном навыке решаемую за разумное время). В данном случае Y получается публичным ключом, а Х – секретным(или приватным) ключом.

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

Другим недостатком является то, что большой объем данных записывается в блокчейн для каждого условия, что в свою очередь негативно сказывается на стоимости транзакции(transaction fee).

Зачем MAST вместо P2SH?

Меркилизованное дерево абстрактного синтаксиса является способом решения задач конфиденциальности и объема данных при использовании умных контрактов в системе Биткоина.

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

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

Что есть Schnorr?

(SDSS) Schnorr Digital Signature Scheme или цифровая подпись по схеме Шнорра — это грядушее изменение текущей схемы подписания транзакций с системе Биткоина, известной как ECDSA или алгоритм цифровой подписи построенный не на конечном поле простых чисел, а на группе точек принадлежащей некотрой эллептической кривой(в случае Биткоина используется кривая известная как secp256k1, или y^2 = x ^3 + 7).

Может выглядеть странно, но Шнорр-подписи были созданы раньше ECDSA, но не использовались в сети Биткоина в силу того, что Клаус Шнорр запатентовал их. Патент истек в 2008 году, и Сатоши вероятно предпочел ECDSA из-за того, что они были открытыми, более понятными и более широко известными.

Что есть подпись?

Все транзакции в сети Биткоина, которые сохраняются в цепи блоков, должны быть подписаны прежде чем разосланы всем остальным участникам сети. Каждая транзакция требует либо единичной подписи (обычные кошельки) либо множественные подписи (мульти-подписные кошельки). Обычные кошельки прекрасно подходят для персонального использования, и прививают пользователям ответсвенность за собственные фонды, в то же время мульти-подписные кошельки требуют нескольких подписей (например 2 из 3, 3 из 5, и т.п.) и могут быть использованы некоторым коллективом физических\юридических лиц.

Что есть мульти-подписанная транзакция?

Мульти-подписанная транзакция должна быть подписана несколькю конфиденциальными ключами. Для примера, такая транзакция должна быть подписана минимум 4 из 5 конфиденциальных ключей прежде чем она будет разослана по сети.

Зачем Шнорр вместо ECDSA?

По умолчанию, Биткоин не поддерживает мульти-подпись (можете проверить например поставив Bitcoin core 0.20.x), и использует некоторые ободные пути, чтобы поддержать мульти-подпись (не буду вдаваться в детали, но можете поставить Electrum и там будет возможность создать мульти-подписной кошелёк). В реальности это увеличивает размер транзакции и напрямую влияет на плату за транзакцию(больше байт, больше сатошиков тратится), поскольку используется больше одного конфиданциального ключа. А теперь прадставим себе мультиподпись в которой 10000 участников, так недолго и за пределы блока выйти.

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

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

Все мульти-подписанные транзакции объединяются в одну “большую” транзакцию и снова хешируются. Это решает сразу две задачи – улучшается конфиденциальность и уменьшается объем затраченных данных.

Как использовать кошелёк Electrum и Eclair

Данный пост написан с целью показать насколько просто завести достаточно безопасный биткоин кошёлек и как безопасно, опять же относительно хранить\тратить свои сатошики. Итак начнём:

  1. скачиваем electrum c https://electrum.org/#home Естественно, в браузере надо проверить, что вы действительно скачиваете с указанного адреса, и я не направил вас на свои скам)
так выглядит сайт electrum, со временем может измениться
  1. Щёлкнув на зелененький замочек в хроме, или в лисице можно дополнительно проверить сертификат
проверяем что сертификат действителен для посещаемого сайта

Конечно можно проверить ещё много всего, например подпись разработчика, чек-суммы и так далее. Оставим это пока вне рассмотрения. Скачав например установшик для винды, ждем пока загрузиться, он небольшой по современным меркам ~25мб на момент написания и подтверждаем ей что хотим запустить. Ждем немного пока установиться, можно указать куда, но можно оставить и по умолчанию (это мы потом учтём) и запускаем.

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

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

  1. Для целей текущей статьи создаём “простой кошелёк”. Это не означает, что он чем-то хуже
создание простого кошелька
  1. Электрум является детерменистическим кошельком с упрощенной верификацией транзакций. Пары ключей выводяться из семечки, или SEED, и в данном случае это куда удобнее, т.к. его можно запомнить) Выбираем segwit
segwit семечко кошелька
  1. Семечка будет сгенерирована случайно, её надо ЗАПИСАТЬ НА БУМАЖКУ и ХРАНИТЬ как основный документы (если вдруг у вас в кошельке заметная сумма), и желатьлно в нескольких местах. ОБЛАДАНИЕ ВАШИМ Сидом РАВНОЦЕННО ОБЛАДАНИЮ ВСЕМИ ВАШИМИ САТОШИКАМИ. Никогда не храните его электронно.
да, даже от пустого кошелька я сделал половину сида нечитаемым
  1. На следующим шаге Electrum попросит вбить обратно семечку, чтобы убедиться что вы запомнили семечку правильно. Он будет вам помогать, заодно предоставляя вам возмоность оценить словарь)
вбиваем семечку для подтверждения
  1. После того как семечка вбита, он настоятельно попросит зашифровать её, вместе со всем кошельком. Правило простое: короткие пароли типа RjkbtQ4#&7 – плохо, мнемонические пароли типа La_gatta_ciara_come_el_sombrero_negro хорошие.
он и тут помогать будет
  1. Можете вбить пароли которые я упомянул и посмотреть как он их оценит, я использовал один из своих любимых паролей немного его обрезав, СССР…)
и даже в таком обрезанном виде
  1. Уже всё, это было просто правда?
Можно посмотреть некоторое количество адресов.

Когда вы создавали кошелёк можно посмотреть где он его создал, зависит от операционной системы, и удалить его оттуда предварительно сохранив на съёмном носителе. Также вашу семечку можно будет использовать в другом кошельке. Рекомендуется создавать несколько семечек, одна из которых создаёт файл который никогда не бывает онлайн, и несколько “горячих”, т.е. постоянно настоящихся на компьютере имеющим доступ в сеть.

9 заблуждений о Биткоине

К сожалению из каждой щели сегодня мы слышим про то какой Биткоин такой сякой плохой. Удивительным образом – все что на нас выплескивают, за редким исключением, либо прямая ложь, либо введение в заблуждение. Сегодня я хочу попробовать немного развеять по вентилятору выливаемые фекалии.

1. Майнеры используют компьютеры для решения ОЧЕНЬ СЛОЖНЫХ задач

С точностью наоборот. Эти компьютеры решают НАИМЕНЕЕ СЛОЖНУЮ задачу которую можно представить: они случайным образом перебирают числа, и после каждой попытки сравнивают хеш(побайтовые арифметические операции) числа с данным. Как и любой другой не-майняший полный узел.

2. Майнинговое оборудование подтверждает транзакции, обеспечивая соблюдение правил Сети!

Опять нет, майнинговое оборудование ничего не подтверждает. Оно только получает (вероятно действительную) транзакцию от полных узлов: либо от оператора фермы, но чаще от майнинг пула.

3. Если кто-то контролирует 51% сетевого хэшрейта, то он контролирует Биткоин.

Нет, даже если кто-то обеспечит себе 100% хэшрейта всей Сети он не сможет сделать недействительные транзакции действительными (украсть существующие, увеличить количество, т.е. создать инфляцию, изменить правила, например ввести центральную сущность в сеть). С 50%+ можно попробовать блокировать некоторые транзакции в будущем ИЛИ  переписать ВСЮ прошлую историю, т.е. затратить столько же мощности, сколько уже было затрачено на генерацию текущей цепи блоков в Сети.

4. Блокчейн более эффективен, быстр и дешёв чем централизованные решения.

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

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

А ещё мы можем их использовать чтобы зашифровать\зашифровать чувствительные данные. Ога. В чистом виде сам по себе блокчейн не зашифрован, читабелен, публичен и доступен для ВСЕХ и КАЖДОГО, НАВСЕГДА, большого кошмара для приватности\конфиденциальности и представить сложно.

6. Биткоин можно превзойти, блокчейн это революция – пора забыть про Биткоин.

См. пункты 4 и 5. Нет, блокчейн можно превзойти, но мы преуменьшаем ценность биткоина, как первого децентрализованного средства хранения ценности. Пора начинать развивать Биткоин забыв про блокчейн. Привет Лайтнинг.

7.  Биткоин чаще всего используют криминальные элементы.

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

8. Биткоин – криптовалюта первого поколения. Скоро будет 3, 4 и 5ое вот  мы заживем!

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

9. Альткоины изобрели столько всего, что разработчикам Биткоина даже не пришло в голову

Нет. Абсолютно все моменты обеспечивающие продажи альтов (посы, мастерноды, блоки с большими транзакциями), были уже оценены и проигнорированы\отвергнуты самыми первыми разработчиками Биткоина, иногда даже задолго до Биткоина (привет ПоС, использованный в BMONEY, Аж 1998 год).

 

 

 

 

Почему Биткоин отличается?

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


Почему Биткоин отличается?

Если Биткоин для вас является чем-то новым, и вы знакомы с ним менее 6 месяцев, то последние месяцы могут показаться вам сумасшедшими. Как я и предупреждал в одном из предыдущих постов – волатильность убийственная для людей не знакомых с чудным зверьком по имени ЛОСЬ. Цена взлетала с бешенной скоростью, заставляя всех затаить дыхание, и индуцируя СОВС (Страх Остаться В Стороне – аналог английского FOMO – Fear Of Missing Out), а затем падала с неменьшим энтузиазмом, возбуждая уже СНС – Страх, Неуверенность, Сомнение. Вместе с тем все крипто-монетки кажутся очень связанными между собой, и двигуются как минимум с 60% корреляцией, в чем же разница? Как различить одну монетку от другой? И, самое важное, как инвестору определить ценность монеты в долгосрочной перспективе?

В этой статье, Я расскажу о том, что делает Биткоин отличающимся, как Биткоин, как система, несмотря на все попытки клонирования и бесконечные форки, все ещё по-настоящему не воспроизводимым.

Настоящая инновация

Для истинного понимания предположения о ценности биткоина, нелишне взглянуть на историю. Мысль о том, что вот эта-та новая монетка на ICO (initial coin offering), наконец-то “улучшит” или “исправит” Биткоин, и разом решит все проблемы, которые Биткоин отправил в мусор, только потому, что ему не хватало какой-то “фичи” (особенной функциональности), может показаться очень привлекательной. Ога, купим за грамм песка, продадим за тысячу грамм калифорния. В самом деле, на почти каждом ICO, в каждом новом альт-коине или хард-форке мы видим очередную фундментальную инновацию. Единстенно, все эти ребята упускают из виду самое главное, самая большая инновация, не побоюсь этой оценки, аж за 500 с лишним лет, уже произошла. Об этом я расскажу в следующем материала, пока же речь немного не о этом.

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

Важно помнить, что альтернативы Биткоина предлагаются с 2011 года, и ни одна так и не приблизилась к тому чтобы заместить Биткоин в плане цены, использования или защищенности. IxCoin  был клоном Биткоина, созданным в 2011 году с большими наградами за блок и значительным премайном (долей монет отправляемой разработчикам.  Tenebrix был альт-коином также созданным в 2011 году, в попытке добавить устоичивость к добыче на видео-картах (напомню, что изначально биткоин прекрасно добывался на процессорах, потом быстро появились программы для утилизации под эти нужды видеокарт, и только потом появились асики) и опять-же имела значительный премайн. Solidcoin был ещё одной монетой, созданной в 2011 году с более быстрым временем блока, а соответсвенно и подтверждении транзакции, и, вы угалали, с большим премайном. Одни из немногих выживщих монет тех времен являются Namecoin и Litecoin, которые отличаются тем, что в них премайна не было.

Капитализация крипто-монет 5 лет назад

ICO также не новость. Mastercoin провел ICO в 2013 и да, вы догадались, с премайном, подняли более 5000 биткоинов и спустя некоторое время переименовались в Omni из-за того, что окружающая экосистема была весьма анемичной в то время. Factom провели ICO в 2015 и подняли более 2000 биткоинов, после чего провели еще несколько раундов дополнительного финансирования из-за нехватки денег. Другими словами, все эти “новые” монеты показали себя бледно и не обеспечили какого-либо применения.

Альткоины и ICO испробовали множество “новых фич”, но большинство так и не показало особенной полезности и широкого принятия. Что нам это даёт? Почему Биткоин обладает, как-будто, специальным местом в экосистеме? Исследуем два аспекта, делающих Биткоин отличным от большинства: сетевой эффект и децентрализацию.

Сетевой эффект

Поскольку Биткоин обладает широчайшей сетью и сетевым эффектом, все другие монеты играют в догонялки. Если вы знакомы с теорией игр, то знаете, что производитель молока с одной коровой имеет нулевые шансы продавать своё молоко в одном ареале с какои-нибудь ТНК, у которой миллионы коров на всех континетах; при условии свободной конкуренции естественно, но это опять-же другая история. Биткоин – это неделя из 7 дней, а каждая другая монетка – это некая вариация: давайте сделаем неделю из 4 дней! А давайте сделаем в дне 18 часов! А давайте называть дни по другому! Давайте менять длину недель по желанию некоторой группы лиц! Нет нужды говорить, что такой вид “инноваций” в лучшем случае незначителен, и естественно не находит широкого принятия. Это происходит в силу того, что сетевой эффект Биткоина растет со временем, и люди используют сеть для оптимизации и создания стандартов в соответсвии с сетью, привлекая все больше людей.

С ростом сети, то что кажется нам неустоичивым и тонким, постоянно нарашивает невидимые преимущества, играющие в пользу нормализации сети. Таким образом, то что изначально не лежит на поверхности, и кажется незначительным, на самом деле несет в себе эффекты вторго, третьего и далее порядков (привет SegWit, о котором я писал ранее), которые опять же делают сеть более доступной, в тоже время утверждая норму сети. Для примера, автомобили не летают, и не плавают, а предназначены для передвижения по твердой поверхности. Отсутвие дополнительных функциональностей, в данном случае делает автомобили более полезными, их, например легче парковать, дешевле содержать, потребляют меньше горючего и т.д.

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

В самом деле, сомнительная природа таких дополнительных “фич” становиться очевидной только со временем. К примеру, кеЭфирная полнота по Тьюрингу, обернулась большей уязвимостью сети эфира(см. DAO и Parity багами). Протокол же Биткоина, в противоположность, изначально воздерживался от полность по Тьюрингу по этой самой причине. Обычнымы ответными мерами централизованых разработчиков\лиц на такие уязвимости являются еще более авторитарные меры (откаты, хард-форки, и т.д.). Другими словами, сетевой эффект в сочетании со временем делает альты ещё более хрупкими.

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

Децентрализация

Другое главное свойство Биткоина, которое я затрагивал в предыдущем посте, это децентрализация. Под этим я понимаю отсутсвие единой точки уязвимости сети. Любая другая монета обладает основателем или компанией за ней, что делает её более уязвимой к давлению с их стороны. Хардфорк (не обратно-совместимое изменение) который навязывают пользователю явялется индикатором излишней централизации монеты.

Централизованные монеты имеют “преимущество” – они могут быстро адаптироваться, в ответ на требования рынка. Централизация безусловно неплоха для бизнеса, предоставляющего определенный товар и услугу для своих клиентов. Централизованный бизнес может быстрее адаптироваться к меняющимся условиям рынка, и тем самым увеличивать/сохранять прибыль.

Для денег же, однако, централизация не несёт ничего хорошего. Во-первых, одним из главных критериев ценности для хранилища ценности является количественная неизменность, т.е. единица хранилища ценности остается как минимум единицец с течением времени. Также хранилище ценности требует, чтобы его качества со временем не ухудшались (да, даже алмазы не вечны). Изменения которые ставят под сомнения эти особенности (инфляция предложения, снижение принятия, изменения в протоколе) сказывается на использовани такого хранилища ценности самым неприятным образом. Тут сразу приходит на ум доллар. В начале XX века на 1 доллар можно было купить хороший шерстяной костюм у портного….

Во-вторых, централизация валюты/монеты испытывает тенденцию к изменению правил игры, что имеет катастрофический эффект. Весь прошлый век полон историйцентральных банков, медленно обесценнивающих свои валюты в качестве хранилища ценности. На минуточку, средняя продолжительность жизни таких валют составляет 27 лет, несмотря на то, что их поддерживают правительства и повсеместно на территории целого государства их принимают. “Фичи”, способность быстро адаптироваться и используемость даже близко не так значимы для валюты/монеты как дефицитность и неизменность.

Всякая другая крипто-валюта и ICO, кроме Биткоина, является централизованной. В случае ICO – очевидно. Сущность выпускающая токен/монету на ICO является центальной. Они выпускают монету, и тем самым, могут менять её использование, и даже выпускать дополнительные токены. Также они могут отказаться принимать свои-же токены задним числом.

Альт-коины тоже испытывают подобные проблемы, но в менее очевидном виде. Обычно создатель является фактическим диктатором монеты, и может делать со своей монетой тоже, что и правительства и банки с традиционными валютами. Налоги (налог разработчика, налог на держателей и т.п.), инфлация, игнорирование недовольных (DAO, Proof-of-X изменения) часто возникают по воле создателей. Как держателю альт-коина вам приходиться не только доверять текущему лидеру, но и всем грядущим лидерам, в том что они не конфискуют ваши монеты, не обложат налогом, не подвергнут монету инфляции. Другими словами, альты и ICO ничем качественно не отличаются от обычных централизванных валют. С альтами и ICO вы не являетесь правителем ваших монет.

Это особенно явно на примере наибольшего “конкурента” Биткоина: Эфира. По любым меркам, Эфир – централизован. Было как минимум 5 хард-форков в которых пользователей принуждали переходить на новую версию. Они исключили несогласных c их решением по DAO. И теперь они даже говорят о введении платы(налога) за хранение. Централизованный контроль явно показан в значительном начальном премайне. Представьте себе 12 миллионов биткоинов в первом блоке….

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

С Биткоином вы являетесь единоличным праителем ваших монет.

Для монеты очень благотворно отсутствие центральной сущности которая может влиять на используемость ваших монет. Это означает, что Биткоин – настояший дефицит (вместо временного или теоретического дефицита), и не измениться количественно без всеобщего на то согласия. Таким образом на сегодняшний момент Биткоин – это единственное хранилище ценности, которое обеспечено не просто каким-то там правительством, а фундаментальными законами Вечности.

Заключение

С таким изобилием альтов, читатель может задаться вопросом – а почему же индекс доминирования Биткоина падает? Начнем с того, что это не свосем адекватная метрика, т.к. легко подвержена манипуляциям. Также рынки подвержены шуму, пампам-дампам и реальная картина имеет смысл только на долгих промежутках времени.

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

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

Что нужно для того, чтобы сместить Биткоин с его доминирующего положения? Во-первых это такая же большая инновация которой является сам Биткоин, а как я покажу в следующей статье, это не каждую сотню лет происходит, или же фатальная ошибка в системе, как уже описывалось для Эфира, которая сделает Биткоин уязвимым. Изменение нескольких переменных в коде недостаточно для того, чтобы даже приблизиться к Биткоину (привет БиткоинАнлим, БиткоинХТ, БиткоинКэш, БиткоинГолд и т.д.). Даже добавление большой “фичи”, такой как абсолютная приватность, вполне вероятно недостаточна для захвата экосистемы Биткоина. Тем более что, с внедрением сегвита и лайтнинга, абсолютная приватность всё ближе.

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

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

Как идеалисты-инвесторы, очень завлекательно верить в то, что вы сделаете альткоин или ICO, которое улучшит Биткои тем самым сделав вас самыми ранними адептами новой революции. К сожалению, мечтательное видение не изменит фундаментальных своиств таких как сетевой эффект или децентрализация. Тысячи монет, миллионы часов и миллиарды единиц традиционных валют были потрачены в попытке воспроизвести эти свойства, внесшие такой весомый вклад в Биткоин.

 

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

До скорого, котятки!!!

POS (proof-of-stake), или ошибка в ДНК.

TL;DR пруф-оф-стейк отстой, скам и развод для гуманитариев.

Основные определения

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

Нокойнер (англ nocoiner) – это человек, который:

  • полагает что блокчейн >> биткоин
  • постоянно говорит о том, что биткоин – это первое поколение криптовалют, и будет лучший биткоин
  • верит в регулирование и фиатные валюты
  • постоянно вспоминает про тюлпаноманию, компанию южных морей, пузыри, пирамиды и медофа с понзи.
  • не то чтобы не написал ни одной строки кода, но даже не потрудился ознакомится с репозиторием хотя-бы биткоина. Это из серии “гуманитарию скажу в ответ: пакет не надо, карты-нет”.

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

Критические системы и цена ошибки.

Теперь же определившись с понятиями рассмотрим корневую ошибку в ДНК у разработчиков Etherium Casper, Cardano Ouroboros и прочих и прочих. Возможный интерес разработчиков в PoSу вероятно продиктован желанием неограниченно скалировать(т.е. увеличивать) блокчейн и ложным представлением о том что PoW Биткоина “расточителен”.

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

Кто-то может подумать что такие события маловероятны и вряд-ли когда-либо произойдут, однако 1) они могут быть  не так редки как оцениваются 2) даже если вероятность события крайне мала, например 0.1%, это лишь означает, что оно всё равно произойдёт, просто чуть позже. Т.н. “Черные лебеди”

Проще говоря, Черные лебеди  – это маловероятные и трудно прогнозируемые события, которые имеют масштабные последствия. Иллюзия безопасности, основанная на том, что предыдущие 10-100-1000 лет было безопасно.

Когда мы имеем дело с системами, претендующими на глобальное влияние, такими как Биткоин, или иная крипто-монета, которая может в определенный момент стать основным носителем ценности, с миллионами предпринимателей и потребителей её использующими, мы просто не можем полагаться на малую вероятность, а создавать системы с учетом возможных Черных Лебедей. Когда мы говорим о таких системах, мы говорим о критический важных системах. Различают четыре основных типа таких систем:

  • для сохранности, нарушения в таких системах могут привести к потере жизни, тяжелому увечью, обширному повреждению окружающей среды. Примеры таких систем – управляющие системы на хим. производствах, атомных реакторах, автопилоты, и т.п.
  • для предназначения, нарушения в таких системах могут привести к потерям несопоставимо большим самой системы: система подачи топлива в ракетоносителе, система управления багажом в крупных аэропортах, и т.п.
  • для бизнеса, нарушения в таких системах ведут к прямому материальному и репутационному урону, часто выражаются в том что система уходит в состояние “перестала отвечать на запросы”.  К таким системам относятся банковские продукты, крупная интернет торговля, биржи, ERP-системы предприятий и т.п.
  • для информационной безопасности, в таких системах при нарушениях может быть утечка чувствительных данных. Тут всё ясно, такие системы вокруг сплошным плотным забором.

Биткоин удовлетворяет требованиям, предъявляемым ко всем типам критических систем. Права на ошибку просто нет. Хороший опытный разработчик всегда знает что мы лишь в шаге от катастрофы, неважно как прекрасно всё выглядит на бумаге и как гладко всё шло до сих пор.

Приведу несколько примеров того, где инженерные просчеты на высочайшем уровне привели к катарстрофам

Катастрофа Конкорда в 2000 году

Конкорд, считавшийся одним из самых безопасных самолетов в мире, и один из двух пассажирских сверхзвуковых самолетов, находился в эксплуатации с 1976 года, взлетая с ВПП через 4 минуту после предыдущего самолёта порвал одну из покрышек шасси об отвалившеюся от того титановую створку  реверса двигателя (что не представляло для того опасности), и обрывок лопнувшей покрышки попал в топливный бак на крыле, вызвал в нём утечку, а другим обрывком покрышки повредило проводку топливных насосов, вызвав искрение. Вытекающий керосин воспламенился и включил систему пожаротушения двигателя, который тут-же был отключен экипажем, при этом второй двигатель на том же крыле уже не мог обеспечить тягу из-за окружавших его раскаленных продуктов горения и тоже отключился. И тут читатель должен себе представить Конкорд, огромный самолет у которого уже 75% ВПП позади и тяга есть только на одном крыле, т.к. второе крыло охвачено огнём, и двигатели там не тянут совсем, таки отрывается от полосы и взлетает. Шансы на выживание? 0.

Катастрофа Челленжера в 1986

NASA оценивало вероятность катастрофы в 1:100000,  однако позже всё оказалось совсем иначе и уже оценивалась как 1:100. Катастрофа развивалась подобно вышеописанной, только с тем отличием, что началась из-за недостаточной термической эластичности уплотнительного кольца, повлекшее за собой его повреждение в следствие необычайно низкой температуры (аж -1 по Цельсию!) , и дальше уже пошла цепь непредвиденных катастрофических последствий.

Чернобыль 1986

Истинной картины данной катастрофы, по всей видимости мы уже не узнаем никогда. Однако можно немного поразмыслить. Катастрофа началась за день до взрыва. Энергоблок планировали заглушить для планово-предупредительного ремонта. В штатном режиме в реакторе идёт контролируемая реакция распада, энергия которой нагревает прокачиваемую воду в перегретый пар, который вращает ротор электрогенератора. В ходе эксперимента планировалось использовать кинетическую энергию ротора для питания циркуляционных насосов.  Но как оказалось считать энергию вращения ещё не умели, и её не хватило. Реактор сначала заглушили, введя в него поглощающие стержни, и заглушив реактор примерно до 1% от номинальной мощности, чего было недостаточно для прокачки теплоносителя через него, и тогда его стали в ручном режиме разгонять, выводя поглощающие стержни, что при этом происходило в рабочем теле делящегося вещества – одной В. известно, но когда началось лавинообразное нарастание мощности реактора, его уже было не остановить и весь этот радиоактивный адок вырвался наружу.

Фукусима 2011

Спустя 25 лет после Чернобыля, в Японии, в которой землетрясения происходят регулярно, и которая к ним привычно случилось самое мощное из известных землетрясений в Японии, в 9 магнитуд. За ним последовало цунами, что и вызвало остановку реакторов и их перегрев и расплавление.

Как итог: когда речь идёт о критических системах глобального масштаба, даже самые невероятно-плохие сценарии надо держать в голове. Один из основных законов В. “если какая-то хрень может случиться, она обязательно случиться, когда её меньше всего ожидаешь”.

Критические события: PoW vs PoS.

А сейчас рассмотрим как POS и POW поведут себя в сценариях, вполне возможных и уже даже осуществляемых: фрагментация сети и неожиданный простой в течение отрезка времени.

Собственно, почему я сказал уже осуществляемых, чтобы вы не думали о малых, чисто умозрительных, вероятностях. В течение т.н. Арабской весны, турецкое правительство использовало BGP-перехват, для блокировки всего трафика  Twitter исходящего от своих же граждан. Китай имеет в своём распоряжении куда более сложные инструменты, такие как DPI, чтобы блокировать вообще весь специфический трафик в рамках Великого Китайского Брандмауэра (слово которое нам любезно предоставили мелкомягкие для подмены английского firewall).

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

Итак обратимся непосредственно к тому, как поведут себя оба протокола и PoW и PoS в таких сценариях:

Сценарий 1: Вся сеть вынужденно прекращает функционирование на некоторый отрезок времени. Потом перезагружается.

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

С течением времени коммуникация между регионами восстановиться и узлы этих независимых сетей начнут обмениваться между собой.

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

В случае PoS, у узлов не будет ни малейшего понятия какая цепь является той самой, единственно корректной. В отличие от PoW, в PoS нет единого объективного (напомню, что объективной является реальность, материя, явления существующая в независимости от нашего знания) критерия того, какая из двух сравнимых сетей “настоящая”. Поведение после разделения в таком случае не является предопределенным и соответственно невозможно автоматизировать процесс слияния без введения дополнительных произвольных правил, что как раз и влечет за собой расширение потенциальных уязвимостей сети.  Разделение вообще может стать постоянным, поскольку некоторые протоколы делают невозможным возврат далеко назад.

Разработчики PoS-а вообще часто доходят до того, что надо “наказывать” узлы которые ведут себя не по правилам. Что они при этом забывают упомянуть, так это то что при разделении цепи, все узлы вели себя по правилам, но разделение цепи произошло.

Сценарий 2: Некоторые части сети фрагментируются от остальной сети.

Несложно догадаться что всё сведется к той же ситуации, что и в первом сценарии. Фрагменты будут продолжать функционировать как обычно, кроме того, что количество узлов с которыми они будут обмениваться, станет сильно меньше. Когда же полная сеть восстановиться появится путаница в том, какая же версия цепи настоящая.

Основное отличие от сценария 1 в том, что сценарий 2 куда более вероятен. Перенаправление трафика куда проще чем вывод всего фрагмента сети в отключенное состояние. Мы уже видели как это делается на примере Турции. Фрагменты сети могут быть произвольно малых размеров – хоть город, хоть район, не важно. Можно предположить, что с нашим бешеным принтером, и мировой банковской олигархией такое будет происходить сплошь и рядом.

Сценарий 3: Утраченные приватные ключи.

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

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

(как вариант, возможна покупка старых ключей у держателей потерявших интерес к данной PoS монете)

В случае PoW это эквивалентно получения контроля над 50%+ хеш-мощности сети.

Допустим, что кому-то удалось получить большую часть хеш-мощности сети, для Биткоина это не реально практический, но для других PoW-монет, может быть осуществимо. И что можно сделать с этой мощностью? Можно попробовать осуществлять двойные траты или переписать всю цепь. Но чтобы осуществить двойную трату, нужно потратить кучу средств, получение большой части мощности в данном случае – это только первый шаг. Даже несмотря на то как ужасно это звучит, получение кем-то 50%+ процентов хэш-мощности сети, сам протокол PoW продолжает работать как обычно, и только одна цепь может быть истинной (однако SPV, simplified payment verification, ноды можно обмануть, т.к. они не загружают блоки полностью и не хранят весь блокчейн, из-за этого крайне рекомендуется иметь хотя-бы одну полную ноду). Для того чтобы переписать весь блокчейн ещё требуется куда большая мощность чем мощность половины сети. В данном случае сами пользователи сети могут предпринять смену алгоритма и свести смысл этих усилий к эффективному нулю.

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

В тоже время PoS являет собой полную противоположность. Получение 50%+ ставки дает неограниченные возможности. Двойная трата становиться возможной без каких-либо дополнительных затрат. Также можно либо а) переписать историю если в протоколе нет чекпоинтов б)если они есть (привет Каспер, ссылка есть выше), то можно сделать несовместимые ответвления сети. Изменения алгоритма в PoS  не даёт в данном случае ничего, т.к. нет цены переключения, в виде например инвестиций в железо.

Вместо завершения, или почему PoS – ошибка ДНК разработчиков.

Подводя итог, PoW предоставляет два преимущества, когда речь идёт о безопасности сети:

  1. PoW защищает будущее: когда происходит разветвление сети, есть объективный механизм, автоматический разрезающий конфликты между воссоединившимися узлами, без человеческого вмешательства и без необходимости доверия третьей стороне-арбитру.
  2. PoW защищает прошлое: для того чтобы изменить ваш баланс, надо не только получить 50%+ мощности, но и затратить всю ту мощность что уже была затрачена на создание блокчейна.

PoS  не предлагает ни того, ни другого. PoS-фаны могут спекулировать на тему того, что чекпоинты решают эти проблемы, однако они лишь переносят их в другую плоскость. Чекпоинты – это централизованное решение, что открывает лишь ещё одну выгребную яму.

(в теории можно реализовать чекпоинты децентрализовано, но это лишь приведет к проблемам которые потребуют централизованных решений, об этом в другой раз, что делает чекпоинты эффективно централизованным решением)


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

Протоколы PoS построены на неверных и наивных представлениях, которые не принимают во внимание худшие возможные сценарии. PoS – это шаг в неправильном направлении: вместо поднятия планки качества, её снижение ради фальшивых бенефиций. Я называю это ошибкой в ДНК, т.е. в самом основании любого начинания.

Будущее биткоина

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

Не так давно биткоин преодолел отметку в 10 тыс, долларов, после чего провёл пару днй в плоской коррекции, нарисовав две не очень приятные для говядины свечки подряд:

После чего, ракетой полетел дальше, и выше и выше…

Поскольку сейчас можно услышать уже и бабушек в сбербанках упоминающих биткоин, и по федеральным каналам стали попискивать, то критический важно понимать, что на графике приведенном выше вы скорее всего потеряете. Соблазн зашортить на всю котлету на исторических хаях очень велик. И вместо того, чтобы заниматься или примериваться к спекуляциям, лучше немного осведомится о том, что ждет биток в технологическом плане. Как сказал Уоррен Баффет, “инвестиции не рискованны, риск начинается тогда, когда вы не понимаете что вы делаете”.

Поскольку биткоин и лежащая в основе технология блокчейн относительно новы, например они куда свежее чем например СТО или ядрена бомба, или даже полевой транзистор, но уже всё таки постарше чем такие умопомрачительные вещи как CRISPR (про него в другой раз), попытка проникнуть в суть этой технологии может показаться пугающе сложной. Это статья написана для того, чтобы осветить проблему масштабирования, которая в настоящий момент стоит перед биткоином, и чего можно ожидать в ближайшем будущем для ее решения.

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

Масштабируемость биткоина, или почему #NO2X

Когда Биткоин был впервые введен в оборот, его полумифический создатель Сатоши Накамото, описал Биткойн в своём вайтпепере как “исключительно пир-ту-пир версию электронной наличности, которая позволит осуществлять прямой обмен между участниками сети, без участия какого-либо централизованного института посередине”. Привед, центробанки!

Одной из фундаментальных ценностей биткоина была почти мгновенная и безопасная транзакция от пользователя к пользователю (пир-ту-пир). Сейчас, как никогда ранее, Биткоин становиться превалирующей мировой крипто-валютой, с ростом за последний год более чем в 12 раз.

Такой бурный рост породил помимо огромного числа “онолитегов”, верещащих про тюльпаны и прочие пузыри, еще и рост количества транзакций в сети, вплоть до 400000 и более в день.

Уже из одного этого графика становится очевидна основная проблема Биткоина – что такое, пусть миллион транзакций в сутки в глобальном масштабе – капля в море, та же Visa в сутки осуществляет 150+ миллионов, т.е. около 1600 в секунду. Теперь вспомним, что все транзакции в сети Биткоина записываются в блоки размером около 1 мегабайта, т.е. миллиона байт. Блоки идут +- раз в 10 минут, т.е. 600*1600=960000, т.е. на одну транзакцию должно приходится чуть больше байта, чтобы обеспечить пропускную способность визы. Это нереально, т.к. в транзакцию входит адрес отправителя, получателя, количество битков, временной отпечаток, нонс, хэш предыдущего блока. Ну никак. Небольшая инфографика о том, что на самом деле происходит при транзакции в сети биткоина:

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

  • медиана размера транзакции находится в районе 250 байт(именно медиана, потому что мы знаем что у 9 медсестёр и одного игорюши сечина средняя зп огого какая)
  • Как уже упоминалось, размер блока около 1 мб.
  • т.е. в блоке около 4000 транзакций
  • время блока – около 10 минут
  • т.е. мы получаем 6,6(6) транзакций в секунду.  маловато.

Транзакции которые не вошли в блок попадают в так называемый mempool который есть на каждой ноде, где и находятся до попадания в блок. И вот у нас в мемпуле сидит тысяч 100 транзакций ждущих подтверждения. И как майнерам выбрать какую именно подтверждать? Правильно, с помощью платы за транзакцию. Обычно она исчисляется с сатоши(10 миллиардных биткоина) за байт, и может доходить до 1000 сатоши/байт. Еще немного математики:  0.00000001 * 1000 * 250 = 0.0025 биткоина, т.е. в моменте 40 долларов. Дорого. Здесь следует сделать оговорку, что это плоская плата, будете переводить 0.01 биткоина или 10 или 100 – не важно, плата будет одинаковой.

Теперь представим что Саша хочет послать Маше 10 баксов – т.е. он либо заплатит еще 10 за транзакцию, либо будет ждать несколько десятков блоков.

Одним из предлагаемых решений был так называемый SegWit2x, который предполагал увеличение блока в два раза, каждый раз когда надо. По небольшому размышлению становится понятно, что это – путь в никуда. пусть 10 транзакций в секунду до 100000 в секунду даст нам увеличение блока в 10 тысяч раз, т.е. до 10 гб. Как такие блоки передавать по сети? я уж не говорю что хранить такой блокчейн можно будет только на очень больших массивах жестких дисков или в облаке, что приведет к предельной концентрации корневых нод и всей сети. Но есть и другие пути…

Segregated Witness (SegWit)

Или разделённое свидетельство. Оно уже было имплементировано в сеть, еще в августе. Суть в том что размер транзакции уменьшается, тем самым позволяя большему количеству транзакции войти в блок. Сегвит это мягкая вилка (soft fork), т.е. полностью совместимая с предудущими версиями блоков.

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

Более того, сегвит изменяет определение размера транзакции: вместо того чтобы исчислять его в байтах, ей присваивается вес, вес блока составляет 4000. До-сегвитовская транзакция имеет вес 4, а поддерживающая сегвит 0.25, что позволяет поместить в блок примерно в 16 раз больше транзакций при увеличении размера блока максимум до 2 мб. Однако для того, чтобы полностью перевести всю сеть биткоина на сегвит, необходимо чтобы все корневые узлы и все кошельки внедрили поддержку сегвита, что пока идёт не очень быстро (в данном случае уместна аналогия с апгрейдом с винХП на вин7, против перехода с винХП на хромОсь в случае харфорка сегвитХ2), и к текущему моменту только 12% всех транзакций идут в сегвит формате.

Поскольку принятие сегвита несет выгоды для всей сети в целом, и для каждого пользователя в частности, настоятельно рекомендуется использовать кошельки с поддержкой сегвита. Конечно будет не лишним упомянуть, что кошельки рекомендованные мной ранее поддерживают сегвит. Сам себя не похвалишь….)

Слоёные решения

Дя, я долго подбирал русский аналог для multi-layered и многоуровневое решение как то не отражает сути.

Как уже описывал выше, покупка чашки кофе за биткоины может оказаться не самой удачной идей (как впрочем и используя банковскую карту), и цена транзакции может быть выше покупки и время подтверждения в лучшем случае 10 минут – в общем не-не-не.

Протокол Lightning Network – одно из текущих решений, находящихся в разработке, от которого ожидается решение проблемы, или во всяком случае значительное её смягчение. Эта сеть состоит из двух дополнительных слоёв, которые позволяют пользователям создавать прямые каналы между собой, фактический позволяя осуществлять неограниченное количество транзакций между собой практический мгновенно.  Так так, скажет внимательные читатель, вот мы тут уединимся и наплодим целую кучу биткоинов, которые не в сети, а потом…. А вот потом не будет, и сейчас разберем каким образом все предполагается осуществлять.

Второй слой

Пользователь присоединяется к сети второго слоя производя транзакцию в основной блокчейн, в которой он декларирует количество биткоинов которое он собирается использовать в сети второго слоя. После чего пользователь присоединяется к группе связанных между собой узлов, называемых фабриками каналов (channel factories). Этот канал по сути представляет собой группу пользователей, заинтересованных в проведении между собой большого количества мелких транзакций (вот же ж мечта состоятельного разумного человека – раз в месяц выделяет сотую биточка на кофе, сотую на вино и т.д. присоединяясь к соответствующим каналам, идеальное планирование расходов!). После чего фабрики каналов уже на третьем слое делают возможным неограниченное количество транзакций между участниками, но в рамках декларированного количества биткоинов.

lightning network channel structure

Третий слой

Каналы микроплатежей создаются на третьем уровне для обеспечения расчетов между любыми двумя участниками (в картинке наверху их 3 посколку участников три, простейгая комбинаторика, 4 участника – окей, 6, n участников – n*(n-1)/2, на два делим из-за того что сочетания AB = BA в нашем случае). Поскольку на третьем уровне основной блокчейн уже не присутствует, он не может быть использован для подтверждения. Вместо этого используются смарт-контракты (умные контракты, в отличие от тех к которым мы привыкли, они не статичны во времени и не могут быть изменены в одностороннем порядке, как мы это любим), такие как мультиподпись, означающая адрес который может быть подписан несколькими участниками для перемещения фондов, или же хэшированные ограниченные по времени контракты, представляющие собой криптографический подписанный автоматический контракт который замораживает фонды на определенное заранее время, и коль скоро у вас в кармане нет квантового компьютера который сломает криптографическую подпись.

Рассмотрим на примере, как работает микротранзакция в лаитнинг сети:

  1. Маша хочет зарезервировать 1 биткоин для расчетов с Сашей. Она декларирует этот 1 биткоин в передающую транзакцию в блокчейн. Это означает, что этот 1 биткоин зарезервирован за адресом с мультиподписью, который может быть освобожден если обе стороны решат прекратить действие этого адреса. Сам адрес защищен хэшированным, ограниченным по времени контрактом, который можно интерпретировать так: “У Маши есть 1 биткоин, у Саши есть 0 биткойнов, которые будут освобождены через сутки”. Это означает, что у Маши есть на 1 биткоин меньше на сутки, после чего он вернется к Маше с соответствующей записью в блокчейн (если конечно Маша не решит не обламывать Сашу).
  2. Маша, спустя 4 часа, всё таки решает, что ну на биток Саша не тянет, но на 0.1 вполне. Теперь контракт изменяется на “У Маши есть 0.9 биткоина, у Саши есть 0.1 биткоина, которые будут освобождены через 18 часов”.
  3. Полные сутки проходят и эта передающая транзакция закрывается, и финальный контракт содержащий балансы Саши и Маши отправляется в блокчейн. Если Саша и Маша хотят продолжать расчеты дальше, то они могут продлить действие контракта сколь им угодно. Если один из них захочет прекратить действие досрочно – то он\она выходит из передающий транзакции, что влечет немедленную публикацию контракта в блокчейн с актуальными на момент выхода балансами.

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

Имплементация лаитнинг сети весьма сложна, и полностью её понять практический с нуля невозможно, но для конечного пользователя это и не важно: слыхали про ПеГеПе? ака pretty good privacy, в ранних имплементациях это было клево, вы полторы минуты стучите рандомно по клавиатуре, у вас создаётся случайный ключ, вы этим ключом шифруете свое сообщение, и шифруете этот ключ публичным ключом адресата, и отправляете шифрованное сообщение и шифрованный ключ, получатель дешифрует ключ своим приватным ключом, и с помощью полученного ключа, наконец расшифровывает ваше сообщение? уже мозг закипел? окей, а если я теперь скажу что тот же самый пгп используется в телеграмме\ватсапе\и т.д. и вы этого даже не замечаете)) Тоже самое произойдёт с лаитнинг сетью со временем.

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

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

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

Шнорр подписи (Schnorr Signatures)

Когда пользователь посылает транзакцию в биткоинах, входные данные транзакции (количество, что вы посылаете) вычисляется просто изымая из блокчейна данные об общем количестве биткоинов, которые были у вас до сих пор не потраченными. Для примера:

  • Начиная с пустого кошелька, Я получаю 1 биткоин в транзакции №1, потом в отдельной транзакции №2 Я получаю ещё 1 биткоин (яхууу!)
  • Теперь я хочу отправить 2 биткоина, у этой транзакции №3, будет 2 входящие транзакции №1 и №2

В текущей сети, каждая транзакция требует своей подписи. Это увеличивает размер транзакции и тем самым поднимая стоимость транзакции.

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

текущая и шнорр подпись

Сверх того, Шнорр-подписи могут помочь блокчейну биткоина в плане анонимности, дополняя CoinJunction транзакции. CoinJunction, как следует из названия – объединение\соединение монет, является методом анонимизации биткоина путем смешения входящих транзакции от множества людей прежде чем отправлять их дальше. Поскольку происходит смешение из множества источников, требуется больше подписей, тем самым опять же делая транзакцию неоправданно дорогой. Здесь Шнорр-подпись может объединить все входящие транзакции в одну подпись, тем самым снижая цену транзакции и побуждая больше использовать CoinJunction.

И еще сверх этого, Шнорр позволяет вводить мультиподпись по цене одной. Не важно сколько подписей нужно  – они все объединяются в одну, Шнорр-подпись.

Шнорр-подписи стали возможны только с внедрением СегВита, поскольку данные подписи не могут быть изменены третьими лицами, они могут быть объединены в одну Шорр-подпись.

MimbleWimble

MimbleWimble – это радикальное, но необыкновенно мощное предложение по улучшению биткоина, которое было сделано анонимно еще в июле 2016.

Названное по имени проклятия из Гарри Поттера, которое заставляло проклятого замолчать (silence же!, ака сало, чертовы нубы блин), МW нацелена на то, чтобы полностью удалить транзакции из блоков. Т.е. оставить в транзакции только входящее количество, исходящее количество и подпись, при том что подпись может быть расшифрована только получателем, соответственно верификация транзакции остается на совести получателя  – не подтвердил, не получил, ок… Я один чую здесь запах пе-ге-пе?

С помощью этого расширения, блоки состоят только из списка входящих транзакций, списка исходящих транзакций и зашифрованных подписей. Блоки могут быть связаны между собой без каких-либо проблем, поскольку количество на входе и выходе из блока не шифрованы. Узлам (нодам) остаётся только проверить, что разница между входом и выходом нуль, а подписи останутся зашифрованными.

Удаление полных данных о транзакции ведёт к существенному снижению объема текущего блокчейна и делает невозможным отслеживание транзакций (просто мечта криптопанков, и кошмар властей и хозяев денег). Более того, с блоками содержащими только не истраченные биткоины (т.е. те что поступили на адрес но никуда оттуда еще не ушли), нодам нужно будет отслеживать только неистраченное количество биткоинов, вместо того чтобы хранить всю историю транзакций, что приведет к огромному росту производительности сети (вспомним что только 3% из всех биткоинов в обороте, остальные лежат в холодную где-то).

Математические детали MW явно не попадают в предмет рассмотрения этой статьи. Однако внедрение, пусть и дающее очевидные преимущества, требует отказа от алгоритма SHA-256, на который опирается вся экосистема биткоина, делая внедрение не реализуемым.

Однако, существуют предложения по имплементации MW в виде так называемого sidechain – стороннего блокчейна с взаимооднозначным соответствием с основным блокчейном биткоина. Эта связь чем то похожа на часовой механизм, или цепную передачу. Эта связь позволит переносить ценность из блокчейна биткоина в блокчейн MW, проводить в ней приватные и мгновенные(во всяком случае значительно более шустрые транзакции), и возвращать ценность в биткоинах в основной блокчейн.

связанная цепь

По факту уже есть группа разработчиков в процессе разработки отдельной криптовалюты на основе MimbleWimble – GRIN; недавно запущенной в тестовом режиме и готовящейся к полноценному запуску в скором будущем (интересно каков будет пре-майн и какое будет ICO:).

Rootstock

Rootstock по какой-то непостижимой причине является одним из наименее обсуждаемых улучшений, но тем не менее одним из самых многообещающих. Rootstock описывают как “первая платформа с открытым исходным кодом для умных контрактов с взаимооднозначным соответствием с Биткоином, которая также позволяет майнерам получать дополнительную награду при помощи совмещенного майнига (одновременная добыча двух монет без какого-либо ущерба для добычи основной, не путать с обычным дуал-майнингом, тут второй алгоритм использует данные первого), позволяя им активно участвовать в РЕВОЛЮЦИИ в умных контрактах”. Устал я от всевозможных революционеров, правда ж… доколе?)))

Во многом походя на MimbleWimble, Rootstock разрабатывается как сайдчейн. Его фундаментальная ценность заключается в фокусе на умных контрактах. Rootstock нацелен на то чтобы стать платформой для умных контрактов полной по Тьюрингу(т.е. платформой на которой можно запрограммировать любую вычислимую функцию, пример функции не-вычислимой очень прост: функция равная 0, если в записи числа Pi нет подряд 4х нулей, и равной 1 если есть, поскольку число нулей которое мы может попросить произвольно, а Pi иррационально, что означает что она содержит все возможные комбинации цифр подряд. Для нас эта функция всегда равна 1, для машины всегда 0, потому что за конечное время PI  не вычислить). При этом эта платформа сможет исполнять умные контракты на базе эфира, и разработанные на собственной платформе.

Разработчики Rootstock рассчитывают имплементировать  обширный функционал умных контрактов, сохраняя доминирующую пользовательскую базу пользователей биткоина, с помощью сайдчейна с взаимооднозначным соответствием с блокчейном биткоина. Также она создаётся с расчетом на уже существующую вычислительную мощность сети биткоина, тем самым избегая необходимости отдельно защищать свой блокчейн. Также предполагается внедрить собственный механизм многослойности под названием Lumino, с помощью которого они обещают 20000 транзакций в секунду.

Rootstock планируют запуск к концу 2017 года, т.е. уже практический завтра! Судя по всему платформа прекрасно дополняет блокчейн биткоина, и если все что они обещают смогут реализовать это добавит огромный пласт функционала в сеть биткоина, тем самым увеличив его ценность.


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

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

Никоим образом эта статья не освещает всё что происходит в области блокчейна сейчас. Если у вас есть что добавить – оставляете в комментариях.

Данная статья является дополненным и расширенным переводом этой.

Если вам интересно углублять своё понимание биткоина дальше, то вот несколько ссылок:

И конечно можно купить мне пиво или кофе:)

BTC: 1JMRpXEB9kCtpegdFpe6YEx4JEafDxZRTq

ETH: 0xbB7a62236948e12097523EA9dAD489B37BCd2A2F

>:^_^:<