В связи с возросшими в последнее время нагрузкой на сеть и комиссиями за транзакции (из-за ординалов и их производных), вновь, как в 2015–2017 годах, зазвучали идеи о необходимости увеличить размер блоков в Биткойне. Им тут же возражают, ссылаясь на “войну за размер блоков” тех лет, имея в виду нежелательность её повторения. Но кто здесь ещё помнит, что именно тогда происходило, кто какой вклад вносил и на какой стороне? Большинство участников тех событий и сегодня остаются ключевыми фигурами в отрасли и активными инфлюенсерами криптотвиттера с тысячами подписчиков — в большинстве максималисты с лазерными глазами на аватарках, — но как эти персонажи проявили себя тогда? (Очень по-разному.) Об этом эпизоде в истории Биткойна, среди прочего, подробно рассказал musclesatz в статье Bitcoin 101: past, present and future. Здесь мы предлагаем вашему вниманию перевод соответствующей части этой статьи.
Навигация:
- Предпосылки и направления
- Blockchainlab и первые раздоры
- Койн тысячи нарративов и Bitcoin Jesus
- SegWit и лже-Сатоши
- Bitcoin Classic
- События в Blockchainlab
- Bitcoin Unlimited
- Нью-йоркское соглашение и Bitcoin Cash
- Эпилог. Современная эра протокола
Предпосылки и направления
“Официально” война за размер блоков началась в 2015 году, но небольшая подводка из более ранней истории не повредит, чтобы обозначить её предпосылки и представить часть действующих лиц.
- 15 июля 2010 года Сатоши ввёл ограничение на размер блока в 1 Мб; изменение было активировано в сентябре того же года. А 4 октября разработчик Джефф Гарзик выпустил новый клиент с патчем, снимавшим ограничение, введённое Сатоши. Тогда Theymos, владелец Bitcointalk и r/reddit, ответил, что исправленную версию Гарзика не следует использовать, потому что в противном случае те, кто будет её использовать, окажутся отрезаны от сети. Сатоши на это ответил «+1 Theymos», а Гарзик, со своей стороны, возразил Сатоши, что это вопрос не столько о форке или его отсутствии, но скорее вопрос маркетинга: если в один прекрасный день сеть дорастёт до уровня транзакций Visa, то лимит на размер блока будет ограничивать количество транзакций, которое может обработать блокчейн. На это Сатоши ответил, что если будет необходимо изменить размер блока, это будет сделано в будущем, но контролируемо и медленно.
- В 2011 году можно выделить три релевантных факта:
- 7 марта 2011 года Майк Хирн стал первым разработчиком Биткойна, получавшим за это зарплату. В Google, где он тогда работал, действовала политика, позволяющая сотрудникам уделять 20 процентов рабочего времени на личные проекты, согласованные заранее. Майк Хирн предложил в качестве такого личного проекта BitcoinJ, версию Биткойна на языке Java.
- 23 апреля 2011 года Майк Хирн раскрыл электронную переписку с Сатоши, в которой говорилось, что Гэвин Андресен должен стать “духовным преемником” Сатоши.
- 5 мая 2011 года к bitcointalk присоединился новый пользователь Грегори Максвелл, один из самых плодовитых исследователей и разработчиков Биткойна, почитаемый как «главный злодей» сторонниками больших блоков. Он представился длинным постом, в котором поддержал лимит на размер блока, установленный Сатоши, поскольку это не только исключает риск того, что блоки могут быть не загружены вовремя, минимизируя число орфанныхблоков, но и с чисто экономической точки зрения: без этого ограничения пространство блоков будет бесконечным, и, как следствие, комиссии майнерам будут очень низкими. Инфляционная субсидия на блок при этом тоже станет слишком низкой со временем (не забывайте, что к 2140 году она сократится до нуля), поскольку мы знаем, что цена формируется только на дефицитные товары, и если пространство блоков не является дефицитным, то не имеет и цены — никто не захочет за него платить.
- В 2012 году вторым биткойн-разработчиком “на полную ставку” становится Гэвин Андресен.
- В 2013 Майк Хирн убеждает Гэвина переименовать Bitcoin в Bitcoin Core.
- В мае 2013 Питер Тодд стал ещё одним злодеем для бигблокеров, сделав сайт keepbitcoinfree.org, где разместил постановочное видео, объясняющее, что вопрос о лимите на размер блока — выбор не только технический, но моральный, и что есть два видения: одно стремится к централизации Биткойна, давая майнерам возможность взять его под контроль, другое — сохранить Биткойн свободным и проверяемым кем угодно.
- Вскоре после этого, 19 августа 2013, Грегори Максвелл представил идею coin witness, опубликовав на bitcointalk статью Really Really ultimate blockchain compression: CoinWitness, — первую идею сайдчейна. Грег сказал:
«У нас может быть много блокчейнов, и в блокчейне Биткойна мы могли бы использовать нечто что-то вроде SNARK, которые используются для создания небольших компактных доказательств для длинных историй. Мы могли бы реализовать в Биткойне оператор, проверяющий SNARK(и), и таким образом у нас были бы целые блокчейны, основывающиеся на Биткойне. Преимущество [такого решения] в том, что мы можем замораживать биткойны в основном блокчейне и создавать вторичные монеты на сайдчейнах, а при возврате нашей ноде нужно будет подтвердить только компактное доказательство истории сайдчейна. Это улучшит масштабируемость и позволит экспериментировать без создания шиткойнов»,
— Грегори Максвелл - 14 октября Адам Бэк опубликовал статью под названием “Bitcoin Staging”, где высказался в том смысле, что эксперименты с большими или меньшими блоками и различными компромиссами в области конфиденциальности — это хорошо, но следует это делать через создание новых шиткойнов, а идею Максвелла можно использовать при создании сайдчейнов.
- Гэвин Андресен отказался от контроля над GitHub Bitcoin Core и передал эту роль Владимиру Ван дер Лаану (Wladimir Van Der Laan), сославшись на то, что администрирование репозитория занимало слишком много времени и сил, необходимых ему для других дел.
- 23 октября 2014 года была опубликована уайтпейпер о сайдчейнах. В статье говорилось, что идея Coin Witness со SNARK всё ещё неосуществима, но с помощью «своего рода SPV» в стиле Сатоши можно создать отдельные блокчейны, в которых будут перемещаться монеты, с различными вариантами компромисса между приватностью, скоростью и масштабируемостью. Под этим документом подписались Adam Back, Gregory Maxwell, Matt Corallo, Luke Dashjr, Pieter Wuille, Andrew Poelstra, Andrew Miller и Jorge Timón. Но как оказалось, создание такого конгломерата со слишком большим (но закрытым) списком имён, было ошибкой, создав впечатление «централизации» Биткойна.
- 27 декабря 2014 года Майк Хирн запустил BitcoinXT, альтернативный программный клиент, который воспроизводил и дополнял Биткойн. Версия XT возникла потому, что незадолго до того Майк создал BIP 64 (getutxo message), однако это предложение не было реализовано в Биткойне достаточно быстро, и Майк решил создать альтернативную версию клиента, содержавшую несколько небольших отличий от оригинала, включая поддержку BIP 64.
С этой предысторией, мы можем переходить непосредственно к “войне за размер блока”. Основной темой в ней будет лимит на максимальный размер блока в Биткойне и, как следствие, чисто технические аспекты, касающиеся:
- времени подтверждения для загрузки блока таймчейна;
- времени распространения [блока по сети], повышающего или не повышающего вероятность орфанных блоков;
- возможности “эгоистичного майнинга”;
- возможности для крупного майнера бросить вызов более мелким;
- управления комиссиями.
Эти технические аспекты ставят перед нами ряд других вопросов:
- Как менять размер блока: быстро или медленно?
- Следует ли его менять посредством хардфорка без обратной совместимости или через софтфорк?
- Определять ли лимит на максимальный размер блока динамически или фиксированно?
Blockchainlab и первые раздоры
В январе 2015 года была основана Blockchainlab Джакомо Зукко— консалтинговая компания, которая должна была функционировать как инкубатор для стартапов Зукко, бизнес-модель которых в то время основывалась на том, чтобы терять деньги, делая всякие классные штуки на Биткойне, так что это было ok.
Бизнес-модель Blockchainlab заключалась в том, чтобы ходить по клиентам Зукко, продавать консультации и тренинги по Биткойну — предлагаемые не Зукко, а командой, собравшей в себе опыт и экспертизу крупнейших стартапов и разработчиков Биткойна, — а также выступать в качестве инкубатора для новых стартапов. Первым проектом инкубатора стал Geobit Рикардо Касатта, который впоследствии создал Eternity Wallet. Позже к нему добавились другие деятели, в том числе Франко Чиматти (HostFat), один из старейших итальянских биткойнеров, который перевёл на итальянский клиент Биткойна и получил за это благодарность от самого Сатоши.
Вскоре после этого «стартап-инкубатор» перестал существовать, потому что Зукко понял, что у большинства этих проектов не было ни бизнес-модели, ни даже желания её иметь. Вместо доли в перспективных проектах, бизнес-модель, вокруг которой консолидировался Blockchainlab, теперь состояла в том, чтобы быть исследовательской лабораторией для разработчиков, получая от них привилегированную информацию для упаковки и перепродажи — то есть помощь разработчикам в обмен на информацию и её последующая продажа.
В феврале 2015 года Thaddeus Dryja и Joseph Poon опубликовали первую статью о Lightning Network, а всего через 3 месяца, 15 апреля 2015, в Лондоне состоялась крупная конференция, на которой Гэвин Андресен выступил с речью под названием “Why we need the bigger chain”, где заявил о необходимости гораздо более крупных блоков и о том, что ограничение, установленное Сатоши, должно быть отменено.
После выступления, в сессии вопросов и ответов, Гэвина спросили: что произойдёт, если в дискуссии вокруг размера блоков не будет достигнут консенсус? На что Гэвин отвечает предельно откровенно: «Мы будем делать то, что я скажу, как это уже было с P2SH». Такой ответ оставил автора вопроса в полном ошеломлении, и действительно, 7 мая возникают первые трения: Владимир Ван Дер Лаан (новый админ репозитория на GitHub) заявляет, что не согласен с Гэвином в вопросе об увеличении размера блока: он предупреждает, что это было бы опасным и преждевременным решением, особенно без консенсуса в комьюнити.
Тогда 29 мая Гэвин выдвинул ультиматум, заявив, что Майк Хирн реализует самые большие блоки в альтернативном клиенте BitcoinXT, а 22 июня Гэвин опубликовал BIP 101, которое, простыми словами, увеличивало максимальный размер блока с 1 Мб до 8 Мб, после чего удваивало его ежегодно.
Гэвин мотивировал это тем, что по закону Мура объём памяти на жёстких дисках удваивается каждый год. Жаль только, что проблема на самом деле состоит не в объёме памяти, а в:
- пропускной способности, которая, по закону Мура, не удваивается каждый год; и
- вычислительной мощности для проверки цифр, валидации и т.д., которая тоже каждый год не удваивается.
Выбор 8 Мб Гэвин обосновал тем, что изначально они с Майком Хирном планировали расширить блоки до 20 Мб, но китайские майнеры (на которых приходилось более 60% хеш-мощностей сети) были против, потому что это отрезало бы их от сети из-за правительственных файрволов. Поэтому Китай согласился на 8 Мб в качестве компромисса. Позже Майк рассказывал также, что они выбрали 8 Мб, потому что число 8 в китайской традиции символизирует процветание и богатство и должно было понравиться китайским майнерам (ну чем не солидная научная мотивация 😁).
После этого Джефф Гарзик выдвинул два предложения:
- BIP 100 (динамическое ограничение на максимальный размер блока, определяемое голосованием майнеров). Если майнеры контролируют большую часть хешрейта сети, они и определяют размер блока. Спорное предложение, потому что слишком большие блоки потенциально позволяют одному крупному майнеру вытеснить с рынка меньших: если один майнер достигнет большинства хешрейта, то сможет в одиночку определить достаточно большой размер блока, чтобы вытеснить с рынка всех меньших конкурентов, что, безусловно, опасно.
- BIP 102 (увеличение размера блока до 2 Мб). Более быстрое решение: удвоить размер блока сейчас, отодвинув проблему «на несколько лет». Это предложение тоже не получило одобрения, поскольку многие задавались вопросом, какой смысл делать хардфорк только для того, чтобы избежать проблемы, которая всё равно возникнет через несколько лет.
Затем в дискуссию вмешался Петер Вуйе (он же sipa), предложивший BIP 103 — увеличение размера блока в соответствии с технологическим ростом, — сказав: давайте сейчас увеличим размер блоков через хардфорк, но не вдвое, а на 17,7% до 2063 года. Sipa ссылается в своём предложении на мейнтейнеров Владимира Ван дер Лаана и Грегори Максвелла, поблагодарив их в конце за положительные отзывы. Позже Грегори скажет: «Меня упоминают в благодарностях, но мой фидбэк был таким: “Не делайте этого”. Я совершенно не согласен с Sipa».
Самый агрессивный из всех — Адам Бэк, который соглашается с Гарзиком по BIP 102, считая его «безопасным», и в шутку предлагает BIP 248, в котором говорит: давайте прямо сейчас удвоим лимит до 2 Мб, со следующим халвингом поднимем его до 4 Мб, со следующим халвингом — до 8 Мб и так далее; тем временем офчейн- и сайдчейн-технологии должны смягчить проблему.
Адам Бэк — “бигблокер” вроде Гарзика, полностью расходящийся во взглядах с Грегори Максвеллом и Люком Dashjr. Однако в одном они все сходятся: без полного консенсуса хардфорк не состоится.
Койн тысячи нарративов и Bitcoin Jesus
30 июля 2015 года появился (к сожалению) Ethereum. Виталик Бутерин, очень молодой и талантливый журналист, опубликовал (по заказу Джимми Сонга) серию статей о протоколах Bitcoin 2.0 — для “создания активов» на Биткойне. Виталик пришёл к верному выводу, что в Биткойне активами нужно управлять иначе, потому что майнеры не обеспечивают соблюдение правил работы с активами (та же логика позже приведёт Питера Тодда и Джакомо Зукко к работе над такими актуальными проблемами, как RGB). Однако о рождении этого шиткойна всё же важно упомянуть, потому что это тоже часть истории Биткойна, хотя у него всегда была тысяча разных нарративов:
- Первый нарратив: «Мы должны сделать активы лучше, чем Биткойн».
- Второй: «Экологичность: мы будем использовать proof-of-stake, а не proof-of-work».
- Третий: «Расширим язык смарт-контрактов, чтобы выполнять распределённые общие вычисления».
- Четвёртый похож на нарратив Litecoin: «Низкие комиссии и быстрые широкие блоки».
Виталик становится — хоть и на другом блокчейне — ярым сторонником идей бигблокеров, и согласно его видению, нет предела масштабируемости блоков, в них можно помещать всё что угодно, все смарт-контракты и данные должны быть в блокчейне, а блоки должны быть большими и с низкими комиссиями.
Пользуясь случаем, хочу поделиться с вами довольно умеренным мнением Джакомо Зукко об Ethereum:
«Я считаю Ethereum одной из худших афер в индустрии и думаю, что всем, кто интересуется Биткойном, лучше полностью её игнорировать и не загрязнять этим такую серьёзную вещь, как Биткойн. Ethereum обладает всеми характеристиками централизации разработки, характерными для альткойнов, но ещё усугублёнными такими историческими прецедентами, как спасение TheDAO и странные запросы вроде “окей, а ты не мог бы перестать торговать?”, а также эпизодом с “дампом” и “пампом” цены монеты на фейковых новостях о её создателе. Этому койну свойственны все проблемы неустойчивости при масштабировании, вызванные базовым непониманием компромиссов блокчейна («хотим, чтобы всё было на блокчейне!”), типичным для бигблок-скамкойна с неизбежной тенденцией к технической централизации узлов. В нём собраны все проблемы безопасности, характерные для псевдотехнической пустышки от тех, кто вообще плохо понимает, что он делает (на сегодняшний день в Ethereum оказалось невозможно даже простую multisigсделать безопасной — так, чтобы она не была потом “убита” случайным пользователем, — не говоря уже о сложных “смарт-контрактах»). В нём одновременно присутствуют все моральные, этические и юридические проблемы, а также искажённые экономические стимулы, присущие койнам с премайном и ICO. В нём есть вся эта мошенническая риторика в духе «это не coin, это appcoin”, характерная для ICO. Нарративы в нём меняются каждый месяц, чтобы игнорировать ложные обещания, развенчанные фактами, и продвигать новые ложные обещания на будущее (всемирный компьютер с эппкойном — нет, провал; полнота по Тьюрингу — нет; неостановимые приложения — нет; богатое состояние — нет; коллекционные котята — нет; DeFi — нет; открытые финансы — нет; средство сбережения — нет…). У него есть создатель, который до запуска этого скама продавал аферы с «квантовыми вычислениями, эмулируемыми на обычных компьютерах» — ничем не лучше целебных кристаллов и машины времени, в общем-то. Фраза об “unstoppable applications” на сайте проекта в контексте спасения TheDAO выглядит как полновесный скам. Его инфраструктура проверки полностью централизована одной компанией, infura. Его «дорожная карта» для “версии 2.0” представляет собой декларацию провала прежней модели, прикрытую обещаниями из области научной фантастики. В моём понимании, это даже хуже, чем Bitconnect, Dentacoin или BSV, потому что на тех проектах, даже если несколько трейдеров заработали или потеряли какие-то деньги, ни один человек не выбросил на ветер свои репутацию, мастерство, талант и время. Ethereum же оттянул на себя огромное количество потенциально ценных интеллектуальных ресурсов»,
— Джакомо Зукко
15 августа 2015 года война за размер блоков официально началась. Гэвин Андресен и Майк Хирн опубликовали в блоге совместное заявление о том, что BitcoinXT в новой версии реализует BIP 101 Гэвина и что Гэвин больше не будет напрямую поддерживать Bitcoin Core. Никакого голосования майнеров — прямая активация.
Прошло почти 5 лет с момента ухода Сатоши, и волшебным образом с одного из его адресов приходит email, в котором он пишет:
«Я следил за недавней дискуссией и надеялся, что она будет разрешена общим консенсусом, но с релизом BitcoinXT 0.11a это уже видится невозможным, и я вынужден поделиться своими опасениями по поводу этого очень опасного форка. Разработчики этого псевдобиткойна утверждают, будто следуют моему первоначальному видению, но ничто не может быть дальше от истины. Создавая Биткойн, я спроектировал его таким образом, чтобы в будущем внести изменения в него было сложно или почти невозможно без глобального консенсуса. Я создал его таким образом, чтобы защитить от влияния харизматических лидеров, будь это Гэвин Андресен или хоть Барак Обама или Сатоши Накамото. Они используют мои старые записи, чтобы сказать, мол, Биткойн должен быть таким-то, но даже я могу ошибаться, к тому же с тех пор многое изменилось. Но если два разработчика в одиночку смогут изменить Биткойн, переделав его по своему усмотрению, то я буду вынужден объявить этот проект провалившимся»,
— Сатоши Накамото
Это письмо не поддаётся проверке на то, что его действительно написал Сатоши, но сути это не меняет: даже если это был сам Сатоши, поражением было бы поставить будущее децентрализованного протокола в зависимость от его создателя.
17 августа 2015 года Theymos объявил о новой политике на Bitcointalk и r/bitcoin. До этого момента там обсуждался только BitcoinXT, монополизировав практически все сообщения на этих двух форумах. Теперь Theymos заявил, что, раз предмет обсуждения нарушает консенсус Биткойна, значит, он является альткойном. И как владелец форума, он призывает всех, кто хочет поговорить об альткойнах, использовать для этого другую площадку. Здесь же будут удаляться любые сообщения, связанные с шиткойнами. На Bitcointalk BitcoinXT был помещён в категорию альткойнов, а в реддите — установлен прямой запрет на его обсуждение.
Роджер Вер, известный также как Bitcoin Jesus, открыл для себя Биткойн в 2010 году и стал его убеждённым сторонником. Это суперлибертарианец, который даже отказался от гражданства США и инвестировал в небольшие биткойн-стартапы; Роджер не обладает глубокими техническими знаниями, но он просто пытался немного политизировать Биткойн против Гэвина Андресена, Майка Хирна, Люка Dasjr и Грегори Максвелла, пытавшихся сделать Биткойн более нейтральным и менее пугающим. Что касается размера блоков, эта тема Роджера Вера не особенно волновала, но он всегда высказывался в пользу того, чтобы больше пользоваться биткойнами для оплаты и переводов, а не просто накапливать (легко говорить, конечно, когда ты уже заработал на Биткойне миллионы). В какой-то момент Роджер совершенно теряет рассудок и публикует пост в поддержку Гэвина с Майком, но Theymos этот пост забанил. Для “биткойн-Иисуса” это стало болезненным ударом по самолюбию: забанить на официальном биткойн-форуме его — это уж слишком. В результате Роджер Вер становится одним из самых яростных оппонентов r/bitcoin, Bitcointalk, Blockstream или Bitcoin Core, а заодно и пламенным сторонником бигблокеров (и, позже, всевозможных шиткойнов).
24 августа BitPay, blockchain.info, Circle, BitGo, KnCMiner, itBit и Xapo опубликовали публичное письмо, в котором заявили, что, обсудив с Гэвином, “лидером Биткойна”, все за и против, они поняли, что путь вперёд лежит через увеличение размера блоков. Они пришли к согласию и решили поддержать Гэвина. Вся индустрия решает поддержать BitcoinXT, который, кажется, уже одержал победу, ведь “капитаны”, похоже, уже сделали свой определяющий выбор, что вызывает беспокойство у любого мыслящего человека, поскольку имеет весомые политические последствия: управляется ли Биткойн консенсусом, который нельзя изменить, или конкретными субъектами и организациями, регулируемыми и находящимися в основном в американской юрисдикции? Получается, что этот рынок очень легко регулировать, и если правительство США возьмёт его под контроль, то он тут же станет цензурируемым, как это было с Linden Dollar, e-gold или PayPal.
SegWit и лже-Сатоши
Через две недели Pindar Wong, бывший член IETF | Internet Engineering Task Force (неформальной группы инженеров, разработавших протокол TCP/IP) предлагает перестать тратить время на обмен постами в блогах, а решить вопрос очно, с глазу на глаз, и просит Грегори, Гэвина, Адама и компанию обсудить всё лично во время конференции Scaling Bitcoin Phase One 12 сентября 2015 года в Монреале.
Очень робко в общем маразме конференции, Грегори начинает спорить с Гэвином, и этот дружеский обмен мнениями быстро перерастает в настоящую панельную дискуссию, когда вы вдруг видите, что выслушать точки зрения двух разработчиков собралось около 80 человек. Минут через 40 Грегори прервал встречу, заявив, что им двоим нечестно решать судьбу Биткойна и что было бы уместно дать высказаться тем, кому есть что сказать по этому поводу, или, ещё лучше, записать всё это на доске.
6 декабря состоится второй эпизод Scaling Bitcoin, на этот раз в Гонконге. Если на первой конференции (за исключением дискуссии между Грегори и Гэвином) основное внимание было уделено презентациям Lightning Network, то в этот раз явно доминировало предложение Петера Вуйе под названием Segregated Witness. SegWit нацелен на улучшение масштабируемости сети Биткойна за счёт увеличения числа транзакций, которые могут быть включены в каждый блок, и сокращения места, требуемого для хранения транзакций. SegWit достигает этих целей путём отделения данных подписи (т.н. «свидетеля») от остальных данных транзакции. При таком подходе размер транзакции может быть уменьшен, что позволяет включать в каждый блок больше транзакций, не превышая ограничения в 1 Мб. Кроме того, Люк Dashjr заметил, что с помощью SegWit можно немного увеличить максимальный размер блока без необходимости в хардфорке.
Во время конференции в Гонконге на сцене появился новый крупный игрок, Джихан Ву, CEO Bitmain (производителя ASIC с 80% долей мирового рынка), который заявляет, что идея SegWit ему нравится как хардфорк, а не софтфорк. Почему так, мы поймём позже.
3 января 2016 CEO Coinbase Брайан Армстронг объявляет о своей поддержке BitcoinXT, публично преуменьшая значимость Bitcoin Core. Но возникает проблема: 14 января Майк Хирн заявляет, что побывал в Гонконге и понял, что большинство майнеров не хотят BitcoinXT и не поддержат его. Тогда он публикует в личном блоге пост под названием The resolution of the Bitcoin experiment, в котором объявляет о завершении эксперимента с BitcoinXT. На фоне криптоиндустрии это объединение казалось очень сильным, заручившись даже поддержкой Coinbase, но в сравнении с майнерами они были очень слабы, потому что майнеры пришли к молчаливому согласию поддержать активацию SegWit с хардфорком и увеличением максимального размера блоков до 2 Мб. Опять же, почему все так хотят активировать SegWit именно через хардфорк, мы поймём позже.
5 февраля 2016 года два американских журнала, Gizmodo и Wired, опубликовали статьи, в которых утверждалось, что за псевдонимом Сатоши Накамото на самом деле скрывается австралийский инвестор и предприниматель Крейг Райт. Райт утверждал, что владеет 1,3 миллионами BTC, связанных со знаменитым паттерном “Patoshi”, которые, как считается, были намайнены самим Сатоши Накамото.
Эти новости вызвали немало противоречий в комьюнити. Многие биткойнеры, включая Грегори Максвелла, Люка Dashjr и Владимира Ван дер Лаана, дистанцировались от Райта, считая, что в его заявлениях есть что-то подозрительное. Позже Райт изменил свой “основной нарратив”, провозгласив себя лидером бигблокеров и заявив, что лимит на размер блока нужно увеличить до гигабайта или даже терабайта, а SegWit — это «дерьмо».
Bitcoin Classic
10 февраля 2016 года Гэвин Андресен запустил новый биткойн-клиент под названием Bitcoin Classic, снискавший гораздо меньшую поддержку, чем BitcoinXT. Вскоре после этого в Гонконге прошёл круглый стол с участием некоторых разработчиков и майнеров, до того встречавшихся во время конференции Scaling Bitcoin phase 2. Эта встреча состоялась потому, что некоторые майнеры угрожали поддержать Bitcoin Classic Гэвина. Суть же осталась прежней, и чёткое послание, прозвучавшее из уст Джихана Ву, в очередной раз показывает, что дело не столько в размере блока, сколько в том, что SegWit должен быть активирован как хардфорк без обратной совместимости, а не как софтфорк.
Название Bitcoin Classic как будто говорит: «Давайте внесём изменения, но так, чтобы соблюсти оригинальное видение Сатоши». То есть вносимые изменения практически выдаются за возвращение к основам — довольно подлый маркетинговый ход, надо сказать.
После двух дней напряжённых дискуссий было достигнуто следующее соглашение:
«Мы, китайские майнеры, обязуемся не использовать Bitcoin Classic, но только Bitcoin Core. В свою очередь, мы, разработчики Биткойна, обязуемся разработать хардфорк для активации SegWit, который будет принят только в том случае, если будет принят сообществом».
Грегори Максвелл, в то время CTO в Blockstream, поспорил с Адамом Бэком, сказав ему: «Вы никого не представляете, вы не Биткойн, и не можете заключать сделки за закрытыми дверями. Биткойн — это Биткойн, и ему нет дела до ваших соглашений». Адам на это отвечал, что они не имеют намерения менять Биткойн через заключённую с майнерами сделку, но намереваются разработать код для хардфорка, который пойдёт в продакшн только в случае консенсуса.
2 мая 2016 Гэвин Андресен делает шаг, полностью поменявший ход войны, написав в своём блоге пост, в котором утверждал, что слетал в Лондон по приглашению Крейга Райта на частном джете, и тот в частном порядке представил доказательства того, что Сатоши Накамото — это он. Утверждалось также, что через несколько дней Райт представит неопровержимое доказательство в виде публичной подписи всему миру.
Через несколько дней Крейг опубликовал пост, в котором представил какую-то подпись, но, как оказалось, фальшивую. Позже в очередном посте Крейг написал, что не может представить подпись, поскольку не обладает такой силой: он не может открыть себя публике, потому что слишком беспокоится о собственной приватности… И удалил блог. (Ну что за чудный персонаж! 😁)
Вскоре после этого, 5 мая 2016 года, на конференции Consensus Гэвин продолжил утверждать, что Крейг Райт — это Сатоши, и тогда сидевший рядом на той же сцене Бутерин выдал отличную реплику:
https://www.youtube.com/watch?v=2qLI3VIHuKU
6 мая 2016 Ван дер Лаан (мейнтейнер GitHub Bitcoin Core) удаляет ключи Гэвина и говорит, что поддержка Гэвином Крейга Райта опасна и вызывает опасения, что Гэвин может быть “скомпрометирован”. Так Гэвин потерял все особые права доступа к репозиторию Биткойна.
События в Blockchainlab
27 июля 2016 года произошёл раскол в Blockchainlab. Lawrence Nahum (главный научный сотрудник группы) был “куплен” компанией Blockstream, одним из трёх символов зла для бигблокеров и одновременно символов героического сопротивления для “смолблокеров”. Этими тремя символами были:
- Bitcoin Core;
- круг модераторов форумов/реддитов, включая theymos и cobra;
- Blockstream.
Итак, в Blockchainlab теперь есть человек, являющийся также сотрудником Blockstream. Ещё одним членом лаборатории был Франко Чиматти (HostFat), который был ярым сторонником больших блоков, но больше с точки зрения свободы слова против всякой цензуры: его темой было не столько «лучше ли чем-то большие блоки для Биткойна”, сколько «лучше ли иметь возможность изменять Биткойн; каждый должен иметь возможность это сделать и высказывать своё мнение».
Раскол в Blockchainlab стал непоправимым, и Джакомо Зукко, больше не связанный обязательствами сдерживать фракции под контролем, стал занимать стороны и предложил Пиндеру Вонгу Милан в качестве места проведения третьего эпизода Scaling Bitcoin.
Было два «больших шага”, воспринимавшихся как демонстрация позиции Зукко и Blockchainlab:
- Выбор места проведения и организации конференции, ориентированное на смолблокеров.
- Непосредственное участие в составлении программы конференции: Зукко и другие организаторы решали, какие доклады могут быть на ней представлены, а какие нет. За два дня на конференции успевают выступить только несколько десятков человек, поэтому выбор делается на качественной основе. Ключевая тема: учитывая идею ограниченного размера блоков в блокчейне, как лучше масштабировать протокол?
- Несмотря на основную тему, организаторы всё же оставили секцию для обсуждения радикальных изменений в консенсусе и увеличения лимита на размер блока. В этой секции была презентация Мени Розенфельда об эластичном размере блока: идея заключалась в том, что можно временно увеличивать блоки, когда есть нагрузка на мемпул, и потом снова сокращать, когда период высокой нагрузки заканчивается. Очевидно, что решать, когда увеличивать и уменьшать блоки, должны не майнеры; это определяется правилами и рассчитывается на основе минимально возможных комиссий за транзакции в течение блока. Это предложение не было представлено, зато был Bitcoin Unlimited: новый Святой Грааль бигблокеров после того как Bitcoin Classic сошёл с дистанции. Жаль только, что качество статьи было неприемлемо низким.
- Питер Тодд представил идею валидации Биткойна на стороне клиента, положившую начало RGB. Питер Тодд говорил: майнерам не только не нужно определять размер блоков, им не необязательно даже знать, какие транзакции действительны, а какие нет. Майнеры должны получать доход только за то, что включают в блокчейн то, что он называет “одноразовой печатью” (single-use-seal). То есть, если Алиса платит Бобу, то доказательство оплаты, включая подписи, которые включают в себя скрипты входов и выходов, должно передаваться от Алисы к Бобу напрямую, и только хеш транзакции должен попадать в блокчейн, чтобы даже майнеры не могли знать, что делают Алиса и Боб. Это должно было бы обеспечить бы потрясающую масштабируемость и фантастическую конфиденциальность.
- Единственное реальное изменение консенсуса, обсуждаемое и допускаемое на той конференции, — это SegWit с активацией через софтфорк, частично увеличивающий вместимость и размер блоков. Это обновление можно реализовать через софтфорк, потому что транзакция, которую видят старые ноды, очень мала, поскольку она больше не включает скрипты расхода — только входы и выходы. Все расходные скрипты, включая подписи, перемещаются в параллельную структуру, называемую “свидетелем” (witness), которая отправляется отдельно с блоком и коммитится в нём; в результате появляются новые ноды, которые могут передавать до теоретического максимума в 4 Мб данных на блок, в то время как старые узлы видят эти транзакции как валидные и видят только до 1 Мб данных (без witness-данных).
Настоящее объявление войны происходит, когда группа бигблокеров решила “форкнуть” даже закрытие конференции: они организовали альтернативную вечеринку под названием Free Speech Party, заявив для неё довольно обычную идею: «На конференции вам позволили услышать только то, что не противоречит взглядам и интересам её комитета; мы же гарантируем вам полную свободу слова: каждый может взять микрофон и предложить любое изменение консенсуса».
Эта альтернативная вечеринка собрала довольно много людей, и самое шокирующее, что им удалось притащить на неё всех китайских майнеров, с одним исключением: Ван Чунь, CEO F2Pool, побывал и на альтернативном, и на официальном закрытии.
Это была третья в мире конференция, где под одной крышей собрались важнейшие биткойн-разработчики, и проблема единой точки отказа была очевидна. В связи с этим международный организационный комитет ввёл строгие правила: например, вся цепочка производства продуктов питания должна быть особо проверяемой. Джакомо Зукко заказал услуги международной охранной компании с опытом организации антитеррористических мер, поскольку та могла гарантировать отличную безопасность вкупе с высокой степенью конфиденциальности: биткойнеры, как известно, не любят, когда их останавливают, обыскивают или преследуют.
После конференции Зукко предоставил офисы Blockchainlab для двух задач:
- Провести Bitcoin Core Meetup, официальную встречу разработчиков, в ближайшие дни после конференции.
- Габриэле Доменикини (Gabriele Domenichini) был сотрудником Blockchainlab, которому было поручено протестировать:
- Реализации Lightning Network в GO от Таддеуса Драйи и Джозефа Пуна;
- Реализацию Кристиана Декера, который изобрёл нечто вполне сопоставимое с Lightning Network, а позже нанят Blockstream вместе с давним разработчиком Linux Расти Расселом. Оба они работали над этой реализацией на языке C.
- Два очень умных французских парня, они начали делать аппаратный кошелёк, но потом сообразили, что в Париже уже есть аппаратный кошелёк, и очень сильный, — Ledger. Тогда они сменили направление и построили реализацию Lightning под названием Eclair, и создали также компанию ACINQ. Габриэле, ознакомившись со всеми этими начинаниями, понял, что, хотя в теории все они работают над одной и той же идеей, им не хватает общих спецификаций. Тогда Зукко убедил Элизабет Старк из Lightning Labsсобрать все эти компании и разработчиков и заставить их работать совместно до тех пор, пока они не создадут совместимые спецификации, которым будут следовать все реализации — для поддержки маршрутизации и открытых каналов между различными реализациями.
Это не первый случай успешного применения такого подхода: несколькими месяцами ранее Рикардо Касатта работал над нотификацией в блокчейне и метками времени. И Питер Тодд и ещё 3 человека тоже работали над чем-то подобным. В результате объединения их усилий и общего мозгового штурма в Милане был выбран уникальный протокол opentimestampsПитера Тодда.
Возвращаясь к Lightning, все участники, наконец, сошлись на протоколе под названием Protocol Milano, хотя уже через пару дней название протокола было изменено на BOLT (от “basics of lightning technology”).
В ноябре 2016 года выходит версия 0.13.1 Bitcoin Core, которая включает в себя код для SegWit и сигнальный механизм [для майнеров, готовых поддержать новую версию протокола], позволяющий активировать софтфорк. Новая версия протокола выкладывается в продакшн немедленно, но активация её откладывается на месяцы и требует порога поддержки не менее 95 процентов.
Bitcoin Unlimited
30 января 2017 года майнер, работающий на Bitcoin Unlimited, добыл блок размером больше 1 мб, который тут же был отброшен сетью, став орфанным.
12 марта 2017 года Shaolin Fry (псевдоним, к сожалению) предложил BIP 148 с обязательной активацией segwit — в сущности, версию Bitcoin Core, требующую от майнеров сигнализировать о принятии SegWit к определённой дате. Если майнеры этого не сделают, то все блоки, не включающие SegWit, будут считаться недействительными. Это крайне агрессивное предложение, поскольку требует от майнеров не просто принять SegWit, но и сигнализировать о его принятии, иначе они рискуют быть исключёнными из сети. Большинство разработчиков Bitcoin Core выступили против BIP 148, за исключением Люка Dashjr, заявившего, что «пользователи устанавливают правила, а майнеры должны адаптироваться или рисковать тем, что их блоки будут отвергнуты сетью». Из этого возникло движение, утверждающее, что решение Bitcoin Core не поддержать BIP 148 — это решение меньшинства в сообществе. Оппоненты же возражали, что, хоть SegWit и является хорошим рабочим решением, его не следует навязывать силой и в срочном порядке, поскольку это может дестабилизировать консенсус в сети.
15 марта 2017 года в Bitcoin Unlimited произошла любопытная история. На этой альтернативной версии Биткойна была создана целая серия новых технологий, одна из которых оказалась подвержена ошибке, отключающей от сети все ноды одновременно. Джихан Ву и Гэвин Андресен в сообщении в Slack заявили о возможности контратаковать Биткойн путём создания пустых блоков: по их логике, поскольку это был баг, и он вывел из строя все ноды, это должно было быть чьим-то умыслом. Наверняка это были плохие парни из Bitcoin Core, и теперь они жаждали мести.
Bitmain (компания Джихана Ву) написала в чате — хотя официального подтверждения не сохранилось, — что на атаку на сеть Биткойна путём создания пустых блоков выделено 100 миллионов долларов. Таким образом они планируют уничтожить сеть, оставив в живых только Bitcoin Unlimited.
Через два дня все крупнейшие биржи мира (кроме Coinbase) подписали открытое письмо против Bitcoin Unlimited, в котором заявили:
- Они не внесут Bitcoin Unlimited в биржевой листинг до тех пор, пока в нём не будет включена защита ответов (reply protection; то есть, если при разделении сети я потрачу UTXO на одной версии блокчейна, никто не сможет взять этот расход и транслировать его на другую ветку).
- Исправление защиты ответа равносильно объявлению, что Bitcoin Unlimited является альткойном по отношению к оригинальному Биткойну.
Весьма удачно для Биткойна, на следующий день, 18 марта, Bitcoin Unlimited потерпел ещё более серьёзный удар: биржа Bitfinex запустила торги фьючерсами (контрактами), по которым пользователи могут отдать один биткойн и получить взамен два фьючерса: один на основную версию, другой на Unlimited. С открытием торгов фьючерс на Unlimited торговался на 20 процентов дороже основной версии, позже его стоимость стабилизировалась на уровне около 3 процентов. Это наглядно показало, что, когда дело доходит до реального размещения капитала, 97% было направлено в Bitcoin, а не в Bitcoin Unlimited.
5 апреля произошло ещё одно сокрушительное событие: Грегори Максвелл выложил пост о скрытом AsicBoost в майнерах Bitmain. Идея была в том, что при применении sha256 вы не хешируете весь файл, а делите его на чанки и хешируете каждый чанк. В случае конкретно заголовка блока вам нужно два чанка, чтобы сделать блок размером 1 Мб. Если вам нужно изменить хеш, не найдя валидного решения для блока, то, вместо того чтобы делать хеш из двух новых фрагментов заголовка, вы можете сохранить первый из них и изменить только второй, что позволит вам сэкономить время на каждом хеше. Есть два способа это сделать: очевидный — использовать в качестве энтропии сигнальные биты заголовка блока (это было бы способом явной AsicBoost оптимизации). Но вместо этого Грег обнаруживает, что, располагая транзакции в определённом порядке, можно воспроизвести AsicBoost, никак этого не выдав. И он также понимает, что:
- SegWit как хардфорк не создаёт проблем для AsicBoost;
- SegWit как софтфорк нарушает возможность скрытого использования AsicBoost.
Тогда, изучив прошивку FPGA, на которой работают ASIC компании Bitmain, Грегори понимает, что во всех этих машинах есть скрытая AsicBoost оптимизация. У Bitmain было конкурентное преимущество в производстве — поэтому Джихан Ву так хотел активации SegWit именно через хардфорк 🤢. Разразился большой скандал, за которым последовал ещё один, также вскрытый Грегом Максвеллом, с уязвимостью, получившей название antbleed: оказывается, Bitmain могли дистанционно, через интернет, отключить от сети и “убить” любые ASIC, поставляемые компанией.
6 апреля происходят ещё два события:
- Самсон Моу приходит в Blockstream: один из врагов номер один для бигблокеров помимо Blockstream присоединился к врагу номер один.
- Джозеф Пун, один из двух создателей Lighining Network, будучи противником SegWit, предложил альтернативу под названием extension blocks, которая по какой-то причине устраивала Джихана Ву и в качестве софтфорка, в отличие от SegWit. Позднее выяснилось, что extension blocks не влияет на скрытый ASICBoost в ASIC(ах) Bitmain.
Джозеф Пун вскоре ушёл из биткойн-разработки, переключившись на Ethereum. Покинув мир Биткойна, Джозеф узнал, что в Slack есть скрытый чат Dragon’s Den под руководством Самсона Моу, цель которого — координировать онлайн-буллинг людей в интернете. Себя Джозеф считает одной из его жертв.
Нью-йоркское соглашение и Bitcoin Cash
22 мая 2017 года проходит очередная конференция Consensus (на предыдущей Гэвин был высмеян Бутериным), и вот что там происходит: организатор конференции (Coindesk) объявляет, что они разрешили спор о масштабировании; в частности, организовали соглашение между всеми основными биткойн-компаниями о том, что те принимают SegWit, но через хардфорк. Это стали называть нью-йоркским соглашением. В следующие два дня ещё около 50 стартапов заявили о поддержке этого решения, среди них Blockstream, Lightning Labs и другие.
Кажется абсурдным, что в их числе были и явные сторонники сохранения лимита на размер блоков. И действительно, многие из этих компаний заявили, что никогда не принимали и не подписывали подобного соглашения. Вскоре выяснилось, что один из сотрудников Coindesk попросту “дополнил” список произвольными стартапами, никого не спросив. В результате подтверждённо ложными оказались около двадцати из пятидесяти подписантов.
Джеймс Хиллиард, разработчик и майнер, сделал предложение всем тем, кто поддержал SegWit через хардфорк, опубликовав BIP 91, в котором говорилось: «Вы хотите SegWit, и мы тоже хотим SegWit. Согласитесь на активацию через софтфорк (что не нравится Джихану Ву), и если он пройдёт, то мы согласимся провести хардфорк, что является центральной частью спора».
С 22 мая по 5 июня 2017 года ещё ведётся активная дискуссия, но обнаружение скрытого AsicBoost сыграло большую роль в общественном мнении: даже многие убеждённые бигблокеры стали скептиками.
21 июля было принято BIP 91, что вызвало очень резкую реакцию у оппонентов: Джихан Ву написал в блоге, что была допущена очень серьёзная ошибка, что этого не было в договорённостях, и о намерении провести активируемый пользователями хардфорк (UAHF). Джихан объявил о создании форка Биткойна, Bitcoin Cash, который станет доступен с 1 августа. В нём будут более крупные блоки и не будет SegWit.
9 сентября состоялась новая конференция, Breaking Bitcoin. Наконец они перестали прикрываться масштабируемостью и перешли к обсуждению того, «как сломать Биткойн” — всевозможных векторов атаки и проблем безопасности:
https://www.youtube.com/watch?v=R2Ohxdwtp80
На той же конференции на сцене нескольких майнеров спросили, будут ли они поддерживать форк с двукратным увеличением блоков, и в этом случае Алекс Петров из BitFury отвечал: «Нет, погодите, когда я подписывал соглашение, я имел в виду, что, если будет консенсус, то мы сделаем хардфорк; ясно, что если консенсуса нет, то мы никогда не будем майнить блоки размером 2 Мб (до 8 Мб с учётом дисконта на witness-данные)». После этого многие другие, включая RootStock и Xapo, поддержали эту версию. Другие же, как Coinbase или BitPay, разослали своим пользователям письма с предупреждением о необходимости загрузить новую версию ПО, поскольку в противном случае они будут отрезаны от сети. Безрассудный шаг. И кроме всего прочего, ещё до официального запуска этой новой версии (немедленно отменённой) в коде была обнаружена ошибка, которая должна была вывести сеть из строя сразу же, с первого дня. Кроме того, версия содержала две довольно странные вещи:
- Реализацию чёрных списков адресов.
- Отказ от бутстрап-узлов в пользу корпоративных (🤔). Эти узлы нужны потому, что при первом запуске Bitcoin Core не знает, где найти другие узлы, поэтому использует начальные узлы — 6 (шесть) штук, — жёстко закодированные в коде клиентского ПО и принадлежащие нескольким историческим разработчикам, и на основе этих шести узлов строит свою P2P-сеть.
Когда BitPay разослали письма с предложением скачать новую версию ПО из соображений безопасности (без каких-либо дополнительных пояснений), французский разработчик Николя Дорье написал в твиттере: «Это ложь, моё доверие к вам подорвано, и я сделаю вас устаревшими».
Спустя несколько дней он выложил BTCPay Server, написанный на C#, клон BitPay без BitPay, с открытым исходным кодом и бесплатный для всех.
8 ноября 2017 года война за размер блоков завершилась.
Эпилог. Современная эра протокола
Победа над участниками нью-йоркского соглашения принесла ощущение того, что Биткойн — это зверь, которого невозможно приручить. Если 80% хешрейта, крупнейшее новостное издание отрасли и организатор крупнейшей биткойн-конференции вместе с крупнейшим производителем ASIC, крупнейшей биржей и большинством разработчиков — все вместе и порознь потерпели сокрушительное поражение в попытке взять Биткойн под контроль, то да, по-видимому, Биткойн и правда неукротим, и в воздухе витал огромный энтузиазм на этот счёт.
Однако этот энтузиазм был несколько приглушён двумя негативными событиями и ещё одним неоднозначным:
1. 14 ноября 2017 года, за несколько дней до начала конференции Baltic Honeybadger, программист Bitcoin Cash обнаружил инфляционный баг в коде Bitcoin Core и заявил, что, если его использовать, это приведёт к неконтролируемой инфляции, как это уже случалось в ранней истории Биткойна, вынудив Сатоши выполнить софтфорк.
Баг был занесён в протокол с обновлением Мэтта Коралло. Простыми словами, ноды проверяют каждую транзакцию на то, что она действительна, имеет валидный скрипт, валидные подписи и не создаёт инфляцию (т.е. не увеличивает количество расчётных единиц в сети). Все эти проверки производятся и перед включением транзакции в мемпул, и с получением нового блока; то есть каждая транзакция проверяется дважды.
Мэтт, в ряду прочих оптимизаций, отбросил одну из этих проверок, в результате чего взаимодействие между двумя последовательными версиями позволяло создавать неограниченную инфляцию — эксплойт, сложный в использовании, однако вполне реальный. Разница с багом Сатоши была в том, что тот ранний баг был в протоколе изначально, а этот появился позже и для многих стал поводом критически взглянуть на собственную систему взглядов, потому что:
- Разработчики Bitcoin Core, пренебрежительно отзывались о «еретиках” в лице Андресена, Гарзика и Ко, высмеивая их за баг Bitcoin Unlimited и “нью-йоркское соглашение” — реализация их предложений, как оказалось, могла попросту уничтожить сеть. Но оказалось, что и они не непогрешимы.
- Была создана социальная динамика, при которой некоторые разработчики могут делать коммиты без ревью, посколько считается, что они слишком хороши, чтобы ошибиться.
- Баг был обнаружен контрибьюторами Bitcoin Cash, а не Bitcoin Core.2. Steam отказывается от поддержки биткойна — после почти года принятия. Компания объявила об этом в своём блоге, мотивировав решение волатильностью и слишком высокими комиссиями Биткойна (усилиями Джихана, мемпул Биткойна в то время был забит пустыми блоками).3. 9 декабря было объявлено о запуске торгов фьючерсными контрактами на биткойн на Чикагской бирже опционов. Незадолго до даты начала торгов 17 декабря биткойн достиг своего абсолютного пика за тот период ~$20 тыс.
2018 год начался с депрессии на рынке, но 22 января Грегори Максвелл выдвинул интереснейшую идею. Изменения в протоколе обсуждались уже давно, но наибольшее внимание получили две идеи:
- Подписи Шнорра. Самое очевидное преимущество этой схемы подписи состоит в том, что, если у вас есть ключ, который является суммой ключей Алисы и Боба, то, когда нужно что-то подписать, данные может подписать Алиса, потом Боб, и когда сложите их подписи вместе, то полученная подпись будет действительной для суммы ключей. Это напоминает офчейн-вариант многосторонней подписи.
- Merkelized Abstract Syntax Trees (MAST). Это технология, которая работает путём создания дерева хешей, представляющего все предусмотренные для транзакции варианты расхода монет. Затем, при расходе, в транзакцию включается только фактически активируемый вариант расхода, что делает транзакцию легче и эффективнее. Кроме того, MAST позволяет создавать контракты, которые могут быть выполнены только при определённых условиях, делая транзакции более гибкими и мощными. В январе 2018 уже существовало два предложения с различными способами реализации этой идеи в Биткойне: BIP 114(Merkelized Abstract Syntax Tree) и BIP 117 (Tail Call Execution Semantics). Они были несовместимы друг с другом, поэтому нужно было выбрать только одну из них.
Тогда Грегори Максвелл подал блестящую идею:
«Вместо того чтобы помещать корень хеш-дерева нашего скрипта в таймчейн в качестве выхода, давайте поместим туда подпись по схеме Шнорра с открытым ключом, потому что у любого контракта практически всегда есть вырожденный (наиболее очевидный) кейс, который состоит в том, что все участники согласны с его исполнением. Возьмём типичный контракт на Биткойне, где открытый ключ является суммой открытых ключей всех участников контракта, так что, если все участники согласны, они все подписывают транзакцию, подписи складываются, выход расходуется, и нет необходимости в управлении контрактом. Этим открытым ключом можно манипулировать, умножая его на корень хеш-дерева. Если же возникают разногласия, мы выбираем, какая из веток контракта активируется, возвращаемся по дереву с доказательствами и показываем, что соответствующий корень Меркла был включён в манипулируемый открытый ключ»,
— Грегори Максвелл
Грег берёт предложение с подписями Шнорра, оба предложения с MAST и объединяет их в идею, которую он называет Taproot, положив начало новой эре для Биткойна. Первые наглядные результаты этого в виде ординалов и токенов на их основе мы наблюдаем последний год.
Читайте также: Taproot: новая эра для Биткойна
Подписывайтесь на BitNovosti в Telegram!
Делитесь вашим мнением об этой статье в комментариях ниже.
На основе источника
Здравствуйте!
Очень нравится ваш портал, материалы прекрасные, спасибо большое за ваши труды.
Подскажите пожалуйста, как можно связаться с предложением о партнерстве? У нас есть альтернативный клиент Telegam с криптокошельком и дополнительными функциями. Заранее благодарю за ответ.