Сколько времени занимает финализация транзакций на основных блокчейнах? Через какое время расчёт по биткойн-транзакциям можно считать совершённым? Каковы факторы риска, при наступлении которых нужно увеличить количество ожидаемых подтверждений? Как подтверждения влияют на расчёт по транзакциям?
Удивительно, но ни на один из этих вопросов так и не дано хорошего ответа, даже в 2019 году, через 10 лет после добычи первого блока Биткойна. Тщательное исследование свойств proof-of-work затрудняется как представлением о том, что это лишь временное решение на пути к некоему лучшему механизму консенсуса, устойчивому к атаке Сибиллы, так и, с другой стороны, убеждённости биткойнеров в непоколебимых преимуществах этого алгоритма.
Но это фундаментальные вопросы. Если вы считаете, что публичные блокчейны с открытыми группами валидаторов и распределёнными механизмами конвергенции будут существовать и в обозримом будущем использоваться для передачи стоимости, то об этих вопросах стоит задуматься. А если вы управляете биржей и ваш финансовый достаток зависит от правильной оценки требуемого количества подтверждений на различных блокчейнах, то они имеют и вовсе решающее значение. Для начала позвольте мне объяснить, почему я считаю, что гарантии расчёта по транзакциям (их финализация) – это главное, на что стоит обращать внимание при рассмотрении любого публичного блокчейна.
Что в Биткойне самое важное?
Как ни странно, на этот вопрос не так просто ответить. Задайте его десяти биткойнерам, и вы получите десять разных ответов. Фундаментальные разногласия в вопросе о том, для чего предназначен Биткойн, его теологии, практически раскололи сообщество в 2014–2017 годы. Мы с Hasu в прошлом году попытались кратко зафиксировать эти конкурирующие представления. Другие заметили наше начинание и развили эту тему. Я бы особенно выделил статью Мурада Махмудова и Адама Таше. Дэниэл Кравиц тоже затрагивал (англ.) эту тему в 2014 году.
По мнению Кравица, Биткойн очень по-разному понимается двумя основными категориями пользователей: инвесторами и предпринимателями. Инвесторы, пишет он, считают Биткойн новой формой высокоэффективной денежной базы, которая в первую очередь поддерживает суверенитет личности. Инвесторы склонны полагать, что Биткойн получит широкое распространение из-за врождённой силы его монетарных свойств. Для них евангелизм не имеет особого смысла: цена – вот лучший евангелист. Предприниматели же в понимании Кравица больше заинтересованы в Биткойне как глобальной платёжной системе, и уделяют больше внимание его использованию в торговле и коммерческой деятельности. Как известно каждому, кто следил за криптосферой в 2015–2017 гг., разногласия между этими двумя лагерями привели к ожесточённой «гражданской войне» за определение предназначения Биткойна, главным полем боя в которой был размер блоков.
Возможно, эти точки зрения можно гармонично согласовать между собой. Я склонен думать, что самое важное в Биткойне – его способность облегчить трансфер стоимости через коммуникационную среду при чрезвычайно сильных гарантиях. Я считаю, что Биткойн – это новая институциональная технология – технология хранения и трансфера ценности с высоким уровнем гарантий и без опоры на государство или финансовую систему, – которая откроет новые модели человеческой организации и позволит вести продуктивную коммерческую деятельность в местах, где слабо соблюдаются права собственности.
Итак, если ключевой особенностью системы являются гарантии в отношении расчёта по транзакциям, то как мы можем их оценить? И как провести последовательное сравнение между Биткойном и другими системами с открытой валидацией?
Оценка финализации транзакций
Так что в точности понимается под гарантиями расчёта по транзакциям? Под этим подразумевается способность системы обеспечивать получателям средств уверенность в том, что входящая транзакция не будет отменена. Электронные денежные переводы посредством системы передачи финансовых сообщений (например, SWIFT) популярны отчасти потому, что их практически невозможно отменить. Они считаются безопасными для получателей, поскольку банки-отправители будут высвобождать средства только в том случае, если они в полном объёме присутствуют на счёте отправителя.
Вот почему воры, организовавшие миллиардное ограбление центрального банка Бангладеша, использовали SWIFT и банковские переводы: они хотели воспользоваться гарантиями окончательности расчёта. Другими словами, они решили использовать для хищения систему, которую, как они знали, сложно обратить вспять. В итоге 61 млн долларов из похищенных в этом ограблении так и не были возвращены. Это является не доказательством провала системы SWIFT и банковских платежей, но скорее показывает сильные стороны системы. Даже в этом случае, когда практически все имевшие отношение к этим транзакциям стороны хотели их отменить, они не смогли этого сделать. Система устойчива к отмене транзакций, дискреции и ретроспективному изменению. Это отнюдь не делает её плохой системой. Напротив, это делает её системой, которая обеспечивает контрагентам высокую степень уверенности в окончательности транзакций.
Аналогичным образом, и Bitcoin является полезной системой, поскольку предоставляет пользователям мощные гарантии окончательности расчёта. Насколько эта система хороша, мы в точности не знаем. LaurentMT написал, вероятно, самое научное исследование этой темы. Хотя в целом свойства PoW Биткойна изучены ещё не полностью. В его истории есть несколько эпизодов реорганизации, но, насколько мы знаем, это не были преднамеренные реорганизации с целью хищения средств. И мы знаем, что майнеры выделяют на майнинг транзакций огромные ресурсы реального мира. Это означает, что получатели биткойн-транзакций могут иметь чрезвычайно высокую уверенность в том, что после получения нескольких подтверждений транзакция едва ли будет отменена.
Однако этого нельзя сказать о многих других криптовалютах. Хотя внешне они во многих случаях могут казаться аналогичными Биткойну, ни одна из них не может предоставить пользователям равных гарантий окончательности расчёта. Это не обязательно следствие каких-то недостатков дизайна, просто пространство блоков Биткойна имеет более высокую аккумулированную стоимость – а значит, и стоимость атаки – на единицу времени, и кроме того, Биткойн обладает практически монополией на свою хеш-функцию, и для его майнинга используется специализированное оборудование. Удивительно, но и многие более слабые блокчейны не подвергались взломам, даже если стоимость атаки на них была относительно невелика. Это, скорее всего, связано с тем, что для монетизации атаки 51% нужна биржа, что создаёт дополнительные сложности. Да и, честно говоря, большинство небольших койнов стоят довольно немного (и практически неликвидны), что существенно ограничивает доходность атаки.
Для того чтобы получить представление о том, насколько уязвимы многие криптовалюты, взгляните на crypto51.app. Методология ресурса исходит из несколько нереалистичного предположения о том, что злоумышленник может арендовать достаточное количество оборудования на Nicehash, однако она позволяет определить нижнюю границу стоимости атаки на эти системы.
Итак, каковы ключевые переменные для оценки финализации транзакций в системах публичных блокчейнов? Я предлагаю сначала классифицировать эти переменные по признаку удобства для количественной оценки: на те, что легче и те, что сложнее таким образом оценить.
Переменные, поддающиеся количественной оценке
Аккумулируемая стоимость реестра
Аккумулируемая стоимость (или «дороговизна», англ. costliness) реестра – это наиболее глубокая и самая непосредственная из доступных нам переменных для оценки гарантий окончательности транзакций на блокчейне. Попросту говоря, она эквивалентна сумме, выплачиваемой валидаторам/селекторам транзакций в единицу времени. В Биткойне майнеры получают в награду субсидии блоков и комиссии за транзакции, что даёт им финансовый стимул «играть по правилам», добросовестно выполняя свои задачи. В алгоритмах proof-of-work майнеры предоставляют неопровержимые доказательства того, что они потратили некоторое количество электроэнергии и, следовательно, понесли расходы на каждый предложенный ими блок. На момент добычи блока майнер должен потратить ресурсы, стоимость которых, за редким исключением, примерно эквивалентна стоимости блока (обычно с небольшой маржой). Поэтому майнеры имеют стимул создавать корректные блоки, соответствующие правилам сети.
Это как школьный проект, в котором вам нужно прочесть книгу и представить её письменный анализ. Вам нужно представить учителю доказательство того, что вы прочли книгу, поэтому вы пишете по ней аналитическую работу (как действительный хеш блока с достаточным количеством ведущих нулей), который вы можете выполнить, только если действительно прочли книгу (рассчитали достаточное количество хешей). Поскольку ваш учитель ещё и очень внимателен к стилю текста, вам понадобится правильно отформатировать свою работу (создать хорошо сформированный и валидный блок). Было бы трагедией прочесть всю книгу только для того, чтобы представить неправильно сформированную работу и получить неуд. Аналогичным образом работает и proof-of-work: сначала выполняется работа, а вознаграждение за неё получается позже. Вы несёте реальные расходы и ваш бизнес зависит от правильного выполнения всех бюрократических шагов, необходимых для получения вознаграждения, так что вы делаете всё возможное, чтобы не испортить эту часть. Недавно майнер проделал всю необходимую для формирования блока работу, но оступился на последнем этапе, создав недействительный блок. (Для более полного описания того, как работает система стимулов в PoW, почитайте статью Хьюго Нгуйена.)
Так почему же бóльшая аккумулируемая в единицу времени стоимость реестра означает бóльшую безопасность для контрагентов? Потому что бóльший размер вознаграждения майнеров (предполагается, что речь идёт о добросовестных майнерах) означает, что для победы над ними вам понадобится собрать больше наёмников. Эти ресурсы должны откуда-то поступать: вам нужно будет мобилизовать ресурсы и оборудование, способное производить хеши, электричество и так далее. (Существует аргумент о том, что, поскольку злоумышленники, проводя атаку 51%, получают субсидии блоков, безопасность сети в PoW реально обеспечивается только за счёт комиссий. Здесь я не буду вдаваться в полноценный разбор этой темы – пока что я буду просто исходить из того, что субсидии, особенно при использовании специализированного оборудования, – как огромная глыба, которую сперва нужно очистить от всего лишнего, прежде чем можно будет теоретизировать на тему сценариев атаки 51%.)
Подводя итог, пытаться превзойти множество честных майнеров, добросовестно производящих блоки Биткойна, стоит очень дорого. Их совокупный доход на сегодняшний день составляет 6,9 млрд долларов в год и многие из них, предположительно, инвестировали в этот бизнес значительные средства в ожидании будущих денежных потоков (это значит, что количество оборудования, активного в сети, может быть даже больше, чем соотносится с текущим валовым доходом майнеров).
Годовой валовый доход Биткойн-майнеров, в USD. Данные: Coinmetrics.ioТаким образом, Биткойн защищён не только тем вознаграждением, что протокол выплачивает майнерам сейчас, но и дисконтированным вознаграждением, которое эти майнеры рассчитывают получить в будущем.
У нас нет простого способа смоделировать ожидания, поэтому самое простое, что можно сделать, – это взять доход майнера в единицу времени и сравнить блокчейны по этому признаку. Даже если на этом вы перестанете читать статью и просто запомните последнюю мысль, то уже будете обладать лучшим пониманием безопасности блокчейнов, чем большинство людей. Очень немногие акторы, даже из тех, для кого ставки очень высоки – как биржи – дают себе труд провести подобный сопоставительный анализ блокчейнов.
Энтони Лусарди уже проделал большую разъяснительную работу по этой теме. Он представил (англ.) BitConf (от англ. confirmation – подтверждение), показатель того, сколько подтверждений требуется другим блокчейнам, таким как Litecoin, для достижения уровня безопасности, эквивалентного одному подтверждению Биткойна.
Достаточно сказать, что большинство людей не используют BitConf и не пытаются индексировать расчёт по транзакциям в разных блокчейнах. В «народном» представлении расчёт, финализация, является линейной функцией количества подтверждений. Это мнение, к сожалению, очень распространено. Даже на сайте Litecoin Foundation неявным образом допускается такое утверждение:
Litecoin-транзакции подтверждаются быстрее, чем в большинстве криптовалют, таких как Bitcoin, потому что в Litecoin блок генерируется каждые 2,5 минуты, в отличие от 10-минутного интервала в сети Биткойна. Это значит, что ваши деньги быстрее доходят до получателя.
Момент первоначального выбора транзакции из мемпула и включения её в цепочку в Litecoin действительно наступает быстрее, но в криптовалютах расчёт по транзакциям следует рассматривать в вероятностном ключе. Другими словами, если вас беспокоит только первое подтверждение, то Litecoin действительно быстрее, но как только вас начинает интересовать более долгосрочная финализация (через множество подтверждений), то становится ясно, что Litecoin намного медленнее.
Если вы считаете, что каждое подтверждение в Litecoin и в Bitcoin даёт равные гарантии окончательности расчёта, то графически это можно выразить следующим образом; и Биткойн в этом случае очевидно медленнее:
Но это неправильно. В Litecoin формируется больше блоков на единицу времени, но стоимость реестра он аккумулирует намного медленнее. В действительности Bitcoin платит своей армии майнеров намного лучше, и, как следствие, они производят в минуту значительно большую безопасность в форме хешей.
В отношении аккумулируемой стоимости Bitcoin-блоки значительно «тяжелее» блоков Litecoin. Даже если бы в Litecoin был 10-минутный интервал между блоками, в Bitcoin блок всё равно стоил бы в 14,5 раз больше, чем в Litecoin. Подтверждения в действительности не имеют большого значения. Упущенная выгода майнеров в единицу времени – вот что важно.
Как вариант, вы можете визуализировать аккумулируемую стоимость реестра в виде блоков, накапливаемых поверх своих предшественников, где транзакции становятся всё более окончательными по мере того, как погружаются глубже в массиве блоков.
Ширина блока примерно пропорциональна относительным расходам на безопасность каждого блокчейна
По мере того как в массив добавляется больше и больше блоков, вероятность отмены предыдущих блоков снижается, и транзакции становятся всё более окончательными. На этом рисунке я масштабировал ширину блоков в соответствии с накопленной относительной стоимостью реестра и изобразил дробление на блоки.
Суть здесь в том, что расчёт по транзакциям в блокчейн-системах – это поток. Интервал между блоками по большому счёту не имеет значения. В Ethereum создаётся намного больше блоков в час, чем в Биткойне, но расчёт по транзакциям в этих блокчейнах следует сравнивать основываясь на стоимости реестра, а не количестве подтверждений.
Прибыльность отмены: размер транзакций
Аккумулируемая стоимость реестра – не единственное, что имеет значение для окончательности расчёта. Важен также стимул для отмены транзакции, который может у кого-то возникнуть. Наиболее чистой кодификацией такого стимула является попросту размер транзакции. Если вы получатель транзакции на 50 000 BTC, то можете подождать и больше, чем общепринятые 6 подтверждений, из предосторожности. Если вы получаете 1000 сатоши, одного подтверждения, вероятно, будет достаточно. То есть в зависимости от размера транзакции могут обладать бóльшей или меньшей воспринимаемой «финализируемостью», приемлемым количеством подтверждений до того, как расчёт можно будет счесть окончательным.
Элейн У формализовала эту концепцию в замечательной статье (англ.) для Bloomberg, в которой она утверждает, что расчёт по транзакции можно считать совершённым, когда аккумулируемая стоимость реестра сравняется со стоимостью транзакции.
Формулировка Элейн удачно объединяет в себе две важнейших количественных переменных в блокчейн-расчётах: стоимость реестра и прибыльность отмены транзакций. Если бы вы хотели дождаться окончательного расчёта по входящей транзакции на 10 млн долларов в BTC, то в соответствии с этим правилом период ожидания составил бы около 60 блоков, или 10 часов. (По совпадению, при курсе BTC/USD 13 330 $, существовавшем на момент написания статьи, Биткойн аккумулировал стоимость реестра со скоростью 1 млн $/час.)
Теперь, когда мы назвали две наиболее важные для финализации переменные, давайте подставим цифры и сравним результат для крупнейших PoW-сетей.
Все цифры приведены по состоянию на 15.07.2019. Данные: Coinmetrics.ioНет нужды говорить, что окончательный расчёт по транзакциям в блокчейне Bitcoin пока происходит быстрее всего (если исходить только из этих двух переменных, без других важных показателей). Расчёт по входящей транзакции размером даже в 1 млн долларов на многих блокчейнах может происходить чрезвычайно медленно. За исключением Bitcoin, Ethereum и Litecoin, в любом другом децентрализованном реестре этот процесс занимает больше суток (я не рассматриваю Ripple и Stellar, потому что процесс валидации в них не децентрализован). Меньшие блокчейны просто не выплачивают майнерам достаточного вознаграждения, чтобы окончательный расчёт по транзакциям происходил в разумные сроки.
На ресурсе Howmanyconfs сравнительные сведения о необходимом количестве подтверждений представлены в виде динамически обновляемой таблицы.
Стоит заметить также, что в Bitcoin Cash и Bitcoin SV окончательный расчёт по транзакциям происходит соответственно в 33 и в 69 раз медленнее, чем в Биткойне. Будучи во многом функционально идентичными Биткойну, они де-факто значительно медленнее, поскольку предлагают майнерам меньшее вознаграждение. Это прямо противоречит их обычному позиционированию как «более быстрых» блокчейнов.
Это также может служить отличным примером тому, как Биткойн сопротивляется образованию дубликатов. Вы можете создать что-то, внешне похожее на Биткойн, но вы не можете воспроизвести его гарантии окончательности расчёта, вытекающие из аккумулируемой стоимости реестра. Майнеры существуют в экономической реальности и их нельзя склонить оказывать поддержку протоколу, который оплачивает их работу в недостаточном. На самом деле, как мы узнаем уже в следующем разделе, Bitcoin Cash и Bitcoin SV даже ещё слабее, чем показано в этой таблице, из-за наличия третьей переменной.
Монополия на собственную хэш-функцию
До сих пор я не упоминал третью критически важную переменную, непосредственно влияющую на гарантии окончательности расчёта по транзакциям на том или ином блокчейне: обладает ли он фактической монополией на оборудование, работающее с его хеш-функцией. Как я уже сказал, Bitcoin Cash и Bitcoin SV находятся в чрезвычайно невыгодном по сравнению с Биткойном положении, будучи поддерживаемыми лишь ничтожной долей от всех функционирующих SHA-256 ASIC-майнеров. Это означает, что любой пул – даже среднего или небольшого размера, – майнящий Биткойн, может временно перенаправить свою хеширующую мощность на один из меньших форков Биткойна и провести на него атаку 51%.
Относительная доля выручки майнеров: BTC (оранжевый), BCH (зелёный), BSV (красный). Coinmetrics.ioТо, что эти блокчейны пока ещё не были атакованы, не является гарантией их будущей безопасности. Это вполне может объясняться тем, что на данный момент в Биткойне нет манеров, желающих злонамеренно вмешиваться в работу какой-либо форка, но зависимость от доброй воли майнеров делает модель безопасности этих форков чрезвычайно слабой. Поскольку этот риск присутствует постоянно, можно утверждать, что ни один такой блокчейн в принципе не может обеспечить окончательность расчёта по транзакциям, независимо от числа подтверждений. Это связано с тем, что в Биткойне более чем достаточно майнинговых пулов, которые могли бы без особых сложностей реорганизовать блокчейн BSV на 100 и более блоков в глубину.
Эта переменная делает анализ сложнее. Больший хешрейт сам по себе ещё не обязательно означает, что блокчейн является более безопасным; он также должен поддерживаться большей долей специализированного оборудования.
В этом примере я бы охарактеризовал блокчейн A как менее безопасный в сравнении с B, даже при том, что он имеет бóльшую стоимость реестра в абсолютном выражении, потому что привлечь достаточное количество оборудования для атаки на блокчейн A теоретически проще.
Так что эту переменную следует рассматривать как логическую: если блокчейн обладает фактической монополией на совместимое с ним оборудование, то анализ прост. Если же он находится в неудачном положении, когда оборудование для работы с такой же хеш-функцией используется также для майнинга на других блокчейнах, и поддерживается лишь сравнительно небольшой долей этих хеширующих мощностей, то такой блокчейн, вероятно, принципиально небезопасен. Хотя определить, насколько именно он небезопасен, трудно: риск атаки зависит от способности злоумышленников привлечь достаточное количество электроэнергии и оборудования.
Переменные, в меньшей степени поддающиеся количественной оценке
Три упомянутые выше переменные не являются исчерпывающими, их просто легче количественно оценить. С ними вы, вероятно, могли бы построить правдоподобную модель, превосходящую те, что используются большинством бирж сегодня. Но есть ещё много факторов, которые тоже нужно учитывать.
Прибыльность отмены: атака «Голдфингер»
Название «Голдфингер» заимствовано из фильма о Джеймсе Бонде, в котором злодей планирует подвергнуть облучению всё золото в Форт-Нокс и повысить таким образом ценность собственного золота. Этим термином описывается класс атак, когда действия злоумышленника мотивированы неким финансовым стимулом, существующим вне протокола. Джозеф Бонне более научно описывает (англ.) их как атаки, в которых «атакующие [имеют] внешнюю мотивацию к срыву процесса консенсуса».
Количественно оценить риск таких атак практически невозможно, поскольку злоумышленники могут иметь самые разные мотивы и, как правило, не раскрывают их до нападения. Здесь я приведу два других примера, в которых прибыльность отмены транзакций резко возрастает, что может поставить под сомнение гарантии окончательности расчёта по транзакциям.
Перегрузка верхних слоёв
Это относится к состоянию, в котором большое количество финансово значимых активов создаётся в виде токенов поверх некоего протокола базового слоя – как активы Omni на Bitcoin или ERC20 на Ethereum. Поскольку эти токены наследуют свою безопасность от базового слоя и полностью от него зависят, они уязвимы для атак на базовый блокчейн.
По мере развития асимметрии между ценностью инструментов второго и более уровней и стоимостью атаки на базовый слой начинает проявляться проблема перегрузки верхних слоёв. Если асимметрия становится достаточно большой, злоумышленник может попытаться открыть короткую позицию по какому-то из инструментов верхнего уровня и одновременно атаковать базовый блокчейн, либо путём майнинга пустых блоков и DoS-атаки на соответствующие токены, либо путём реорганизации блокчейна и создания путаницы.
У нас уже есть реальные примеры последствий для систем с перегруженными верхними слоями. Злоумышленники в последнее время стали регулярно атаковать базовый индекс, устанавливающий цену на деривативы BitMEX. По причине значительной асимметрии между обеспечением, присутствующим на BitMEX (вершина), и базовым эталонным рынком (основа), сжигать средства в рыночных ордерах на Bitstamp становится выгодно, потому что злоумышленник может получить прибыль, спровоцировав преувеличенное за счёт ликвидации маржинальных позиций ценовое движение на BitMEX.
Я не думаю, что какой-либо из блокчейнов сталкивается с такой проблемой сегодня, но по мере того, как всё больше финансовых инструментов переводится в токены, существующие поверх блокчейнов, прибыльность атаки на базовый слой будет расти.
Ликвидные рынки деривативов
Это объясняется довольно просто. Производные финансовые инструменты, и, в частности, опционы, дают участникам финансовых рынков возможность торговать с бóльшим кредитным плечом и получать бóльший доход даже в результате относительно небольшого изменения цены базового актива. Как и в случае с перегрузкой верхних слоёв, риск для блокчейна возникает, когда существует значительная асимметрия между стоимостью атаки и её прибыльностью.
Создание ликвидных рынков деривативов позволяет атакующим увеличить свою прибыль от предсказания ценового движения; и если они могут спровоцировать падение цены актива путём атаки на него, то гарантии расчёта по транзакциям в блокчейне потенциально находятся под угрозой. По мере роста прибыльности атаки увеличивается и количество ресурсов, которое атакующий готов в ней задействовать. Так что увеличение левериджа на стороне продажи потенциально ослабляет гарантии окончательности расчёта на блокчейне. Но из-за неоднородности акторов и неуверенности в отношении возможности монетизировать такую атаку, количественно оценить этот риск с поправкой на уровень безопасности блокчейна становится невозможно.
Конечно, одним из противовесов таким атакам может являться потенциальное нежелание биржи выплачивать прибыль по позиции, если у неё есть подозрения, что соответствующий трейдер координировал свои действия со злоумышленником, атакующим блокчейн.
Дополнительные аспекты касаемо оборудования
Относительно оборудования для работы с определённой хеш-функцией следует отметить, что койны с GPU-майнингом не могут обладать монополией на использование оборудования, так как GPU в мире слишком много (благодаря играм и другим не связанным с криптовалютами приложениям).
Таким образом, для койнов с GPU-майнингом всегда должно требоваться больше подтверждений. Каким именно должно соотношение единицы аккумулируемой стоимости реестра с GPU-майнингом и реестра с ASIC-майнингом, сказать трудно. Но абсолютно точно построение модели безопасности на основе GPU-майнинга должно расцениваться как фактор дополнительного риска. Хотя бы даже из-за простоты мобилизации оборудования для GPU-майнинга.
Практический пример: Требования к подтверждениям, установленные Kraken
Удивительно, но из многих моих разговоров с представителями бирж, которым есть что терять от плохо сбалансированных правил расчёта по транзакциям, создаётся впечатление, что они обычно мало задумываются о правилах подтверждения. Я не смог найти детальной информации о том, через какое количество подтверждений биржи рассматривают входящие транзакции как финализированные. К счастью, Kraken опубликовал свои критерии.
Я решил сравнить требования к подтверждениям на Kraken с наивной имплементацией BitConf от Лусарди – просто требуя от всех блокчейнов предоставления эквивалента шести подтверждений в Биткойне.
Источник: Время обработки депозитов на Kraken, Coin MetricsРезультаты поражают. В зависимости от точки зрения, можно сказать, что Kraken предъявляет либо крайне жёсткие требования к Биткойн-транзакциям, либо заниженные требования к транзакциям на других блокчейнах. Требуя для зачисления депозита шести подтверждений на Bitcoin, они просят всего 12 подтверждений для Litecoin (где эквивалентно Биткойну с точки зрения безопасности было бы 174 подтверждения), 30 для Ethereum (эквивалентно Биткойну: 173) и 15 для Monero (эквивалентно Биткойну: 2000).
Моё предположение заключается в том, что шесть подтверждений явно избыточно для Биткойна, и в этом свете меньшая требовательность Kraken к другим блокчейнам выглядит несколько более разумно. И тем не менее, результаты сравнения с последовательным применением переменной аккумулируемой стоимости реестра порой выглядят даже комично. QTUM, например, для соответствия тому же уровню безопасности потребуется 67 000 подтверждений, или 115 дней ожидания. (QTUM, впрочем, вполне может иметь какой-то альтернативный незнакомый мне режим расчёта по транзакциям: мои вычисления основаны просто на размере выплат валидаторам).
Конечно, это очень наивная имплементация модели. Более сложная версия должна была бы учитывать более высокие требования к безопасности для немонополистических в отношении оборудования блокчейнов, койнов с GPU-майнингом, крупных входящих транзакций и т.д. Я бы рекомендовал всем биржам рассмотреть возможность введения систематического набора правил для входящих транзакций, если они ещё этого не сделали. Вне зависимости от выбранной формулы, результатом, скорее всего, будет меньшее количество подтверждений для Биткойна и большее для блокчейнов меньшего масштаба.
Некоторые выводы
Какую практическую ценность всё это имеет? Что ж, пока мы продолжаем ожидать формализации этих переменных в рамках стройной осмысленной модели, непосредственно применимой к каждодневному использованию криптовалют, вот несколько выводов, которые можно сделать и сейчас:
I. Интервал между блоками может быть каким угодно, это мало что меняет
Единственное, что меняет меньший интервал между блоками, – это сокращает расхождения во времени ожидания первоначального подтверждения. Нетерпеливый человек, вероятно, отдаст предпочтению блокчейну с 2,5-минутным интервалом между блоками, но это совершенно не значит, что расчёт по транзакциям на нём будет происходить сколько-нибудь быстрее. Это никак не повлияет на скорость аккумулирования стоимости реестра, которая является функцией от темпа выпуска и цены монет.
Действительно, Биткойн может уменьшить размер блока на 25% и уменьшить интервал между блоками до 2,5 минут – и никто не заметит разницы. Система осталась бы функционально идентичной, только общепринятое правило шести подтверждений было бы заменено правилом 24 подтверждений. Сатоши выбрал 10-минутный интервал, потому что не знал, насколько легко система сможет приходить к конвергентности. Задержки и крупные блоки мешают валидации и затрудняют конвергенцию между узлами. Здоровый 10-минутный интервал между блоками оставляет системе достаточный запас, а также даёт нам представление о том, какого рода систему планировал Сатоши (подсказка: не подходит для мелких денежных переводов).
Это правда, что первое подтверждение имеет значение, поскольку ваша транзакция не может начать погружаться глубже под весом последующих блоков, пока она не будет включена майнерами в блок. Кроме того, меньший интервал между блоками уменьшает дисперсию некоторых переменных, таких как суточный объём выпуска. Впрочем, с этими оговорками, интервал между блоками может быть абсолютно любым. Помимо качества аккумулирования стоимости реестра, окончательность расчёта по транзакциям определяется также расходами на безопасность в единицу времени. Меньший интервал между блоками означает только, что вы разбиваете этот поток безопасности на меньшие фрагменты. Это не делает окончательный расчёт сколько-нибудь быстрее.
II. Либо безопасность Биткойна избыточна, либо другие блокчейны принципиально небезопасны
Это самый ясный вывод, который можно сделать из всех упражнений в сравнительном анализе, проделанных мной для этой статьи. Если сравнивать блокчейны исключительно по параметру размера выплат селекторам транзакций (майнерам и валидаторам) в единицу времени, то по большей части они выглядят катастрофически слабыми в сравнении с Биткойном. Просто взгляните на эту диаграмму. Помимо Bitcoin, Ethereum и Litecoin, остальные криптовалюты на ней практически неразличимы – настолько минимальны их расходы на безопасность.
Суточный доход майнеров в USD (7-дневная скользящая средняя). Coinmetrics.ioЭто не обязательно смертельно. Может быть, Bitcoin существенно переплачивает за безопасность и proof-of-work на самом деле «лучше», чем мы думаем. На самом деле именно к этой точке зрения я сейчас склоняюсь: из-за текущего размера субсидий блоков в сочетании с высокой стоимостью BTC, Биткойн, вероятно, тратит на безопасность «слишком много». Но это создаёт запас прочности, который обеспечит ему хорошую степень защиты в будущий переходный период.
Так что эти результаты не обязательно являются апокалиптическими для небольших блокчейнов. В конце концов, хоть Сатоши и благословил правило шести подтверждений, вполне может быть, что для большинства транзакций достаточно одного или двух блоков. Это уменьшило бы нагрузку на другие блокчейны, пытающиеся как-то соответствовать расходам на безопасность Биткойна.
III. Финализация транзакций всегда носит вероятностный характер
Признаю, что я несколько погорячился в отношении того, когда новые блокчейны обретают «абсолютную окончательность». Единственный способ на самом деле получить окончательные транзакции заключается в том, чтобы некая организация поручилась за них, гарантируя их окончательность, то есть фактически их одобрив. Но в этом случае органы власти, которые могут быть заинтересованы в отмене транзакций (например, если заподозрят, что они связаны с криминальной деятельностью), обычно будут требовать от организации отменить соответствующие платежи, что подрывает воспринимаемую окончательность расчётов.
Возьмём для примера EOS. В EOS есть понятие «последнего необратимого блока» (Last Irreversible Block), по отношению к транзакциям в котором, согласно EOS Canada,
можно иметь 100% уверенность в том, что они являются окончательными, полностью подтверждёнными и неизменными. Если номер блока меньше последнего необратимого блока, значит он считается окончательным.
Согласно EOS Network Monitor, вершина блокчейна после текущего последнего необратимого блока (на момент написания статьи) насчитывала 330 блоков, что эквивалентно примерно 2 минутам и 40 секундам. В совокупности это делает заявленное время до финализации в блокчейне EOS очень небольшим.
Кроме того, здесь есть такой нюанс: в EOS есть (или был?) бюрократический процесс, посредством которого пользователи могут обратиться в Центральный арбитражный форум EOS (ECAF) и попросить заморозить и вернуть потерпевшим предположительно украденные средства и фактически отменить давно финализированные транзакции. Серия таких отмен была произведена в июле 2018 года. Это было возможно благодаря тому, что существовал только 21 субъект (производитель блоков), которому было поручено обрабатывать транзакции, и каждый из них был хорошо известен руководству и, следовательно, подотчётен.
Хотя многие наблюдатели приветствовали возврат украденных средств, с точки зрения расчёта по транзакциям это исключает качества, которые контрагенты ищут в блокчейне. На практике любой механизм отмены расчёта по транзакциям может быть использован для злоупотреблений. Причина, включения в транзакции по банковским картам комиссий заключается в распространённости мошенничества с возвратом платежей.
Представьте себе сложную аферу, в которой кто-то продал EOS за фиат в p2p-транзакции, а затем обжаловал сделку в ECAF и сумел получить эти EOS обратно, объявив транзакцию мошеннической. Такого рода схемы становятся возможными, когда существуют административные исключения из окончательности транзакций.
На эту тему я мог бы привести немало примеров, но пока ограничусь одним. На практике многие блокчейны, заявляющие о своей полной и действительной окончательности, оставляют в своих системах также возможности для выборочной отмены транзакций и блокировки аккаунтов. Вам в любом случае нужно учитывать вероятность отмены транзакций, даже если она не прописана явным образом в коде.
IV. Будучи открытым в отношении своей модели безопасности, PoW-алгоритм Биткойна совершенно прозрачен
Снова цитируя Элейн У, одно из самых полезных качеств модели безопасности Биткойна заключается в её открытости и понятности. Точно определить размер гарантий непросто (сколько нужно подтверждений для расчёта миллиардной транзакции?), но можно определить количество ресурсов, расходуемых на поддержание жизнеспособности системы. В любой момент наблюдатель может легко определить, сколько хешей и сколько примерно энергии потребуется для того, чтобы превзойти систему. За прошедшие годы стало ясно, что ни одному образованию, за исключением самых сильных государств, не под силу мобилизовать достаточное количество ресурсов, чтобы перевесить добросовестное большинство.
В противоположность простоте модели Биткойна, другие блокчейны пытаются повысить безопасность через сокрытие, повышение сложности или использование непрозрачных институциональных режимов финализации. Verge, например, объединил в своей экзотической proof-of-work-модели пять разных хеш-функций, и это в конечном счёте стало причиной провала. Злоумышленник понял, что он может провести атаку «Time Warp» (искажения времени), выбрав мишенью лишь одну из хеш-функций и постепенно снижая сложность до 1. Увеличение сложности системы не только не повышает её безопасность, но и добавляет новые векторы атаки.
Подводя итог
Если выбирать самое главное, что я хотел бы, чтобы вы вынесли из этой статьи, то оно будет заключаться в следующем. Вместо того чтобы рассматривать расчёт по транзакциям как функцию от некоторого заранее определённого количества подтверждений, воспринимайте расчёт в системе с proof-of-work как процесс медленного окаменения древесины. Он протекает с заданной скоростью, которую нельзя искусственно повысить. Скорость определяется перечисленными выше переменными: главным образом, аккумулируемой стоимостью реестра, размером транзакции и доступностью используемого в майнинге оборудования. По завершении процесса древесина замещается минералами и затвердевает. Формы и особенности древесины застынут во времени.
Подобным образом, и блокчейны, по формулировке Ника Сабо, это вычислительный янтарь. Изначально янтарь является древесным соком и только со временем становится твёрже в процессе сохранения фрагментов информации (ДНК насекомых и т.п.). Важнейший процесс погребения прошлых изменений реестра под нефальсифицируемой ценностью, обеспечиваемой доказательством понесённых расходов, обеспечивает такие же гарантии медленной финализации. С накоплением большого количества блоков проявляет себя гравитация блокчейна, делающая глубокое изменение истории его записей дорогим и неудобным.
Доступное майнерам вознаграждение – и, следовательно, понесённые расходы – является функцией от темпа выпуска, цены расчётной единицы и комиссий. Ни один из этих показателей, за исключением темпа выпуска, не может быть непосредственно запрограммирован. И один только высокий темп выпуска не может гарантировать безопасность, поскольку инвесторы должны вкладывать в блокчейн средства, обеспечивая тем самым его стоимость. В этом смысле надёжные гарантии окончательности расчёта по транзакциям в proof-of-work-системе нельзя запланировать, они могут только возникнуть в процессе. Считать ли этот вывод мрачным или нет, зависит от вас.
В этой статье я попытался рассказать о переменных, которые считаю наиболее важными для оценки гарантий окончательности расчёта на блокчейнах, особенно с proof-of-work. Но, как вы наверняка заметили, я не даю формальной модели или рекомендуемого решения проблемы. Многие из этих переменных нелегко количественно определить, и, вероятно, некоторые переменные я вовсе упустил из виду. Создание более объёмной или ориентированной на практическую реализацию модели я оставлю последующим авторам.
Если мы будем игнорировать эти вопросы, рано или поздно они всё равно неизбежно возникнут перед нами. Появление ликвидности на стороне продажи для большей части рынка повлечёт за собой открытие новых видов атак, мишенями которых чаще всего будут биржи. Точно так же, когда крупные кастодианы и расчётные палаты начнут работать с криптовалютными депозитами на сотни миллионов или даже миллиардов долларов, им будет нужно разработать формальные правила для того, что считать расчётом по транзакциям на блокчейнах. Им стоило бы серьёзно задуматься о безопасности блокчейнов, на которые они полагаются.
Подписывайтесь на BitNovosti в Telegram!
Делитесь вашим мнением об этой статье в комментариях ниже.