Селекция монет – это процесс, в ходе которого алгоритмы того же Биткоина выбирают, который из имеющихся у вас коинов будет потрачен при подтверждении запрошенной вами транзакции.
К примеру, если у вас на счету 1.2 BTC и вы заплатите 0.3, то у вас должно остаться 0.9 BTC.
Однако на деле этот процесс происходит несколько иначе. Предположим, в вашем реальном кошельке может лежать 100$. Эту сумму могут составить две купюры по 50$, пять двадцаток или вообще одна купюра в 100$. Каждый раз, когда вы тратите часть этой суммы, у вас будет появляться какая-то сдача. Со временем, если вы будете платить только купюрами, у вас останется куча мелочи.
Точно такая же ситуация складывается с 1.2 BTC на вашем криптокошельке. Разница между реальными деньгами и BTC заключается лишь в том, что когда вы подтверждаете оплату BTC, вы должны будете заплатить комиссию за транзакцию. Поэтому процесс подбора коинов нужного «номинала» для сдачи – более затратный, чем в случае с реальной валютой.
Селекция монет в действии
Давайте вернемся к гипотетическому кошельку с 1.2 BTC на счету. Вероятность, что у вас на кошельке будет один целый Биткоин и еще 0,2 BTC – довольно мала, поэтому давайте предположим, что вы имеете 4 следующие «купюры»: 0.5 BTC, 0.4 BTC, 0.2 BTC и 0.1 BTC.
В этом случае, если вы решите потратить, к примеру, 0.3 BTC, вы будете надеяться, что алгоритм сложит ваши 0.1 и 0.2 BTC. Это вполне логично и учитывая то, как Bitcoin высчитывает комиссию – это самый выгодный вариант.
Скорее всего, сейчас транзакция произойдет именно таким образом. Впрочем, так было не всегда: только в этом году команда разработчиков Bitcoin обновила алгоритм для более упорядоченного подбора монет. До обновления алгоритма процесс подбора коинов был чуть менее сложным.
Итак, предположим, что вы подтвердили транзакцию на 0.3 BTC. В большинстве случаев при такой транзакции старая версия алгоритма создала бы новую «мелочь». Т.е. старый алгоритм взял бы 0.4 или 0.5 BTC и вернул бы сдачу в 0.1 или 0.2 BTC.
Хотя обновление алгоритма – несомненно, хорошая новость, этому предшествовали годы транзакций, которые сформировали общее соотношение примерно в 70% «мелочи» и 30% «крупных купюр» Bitcoin. В этом случае разница с реальными деньгами состоит лишь в том, что пользователи BTC не могут прийти в банк и разменять свою мелочь.
Как это происходит?
Bitcoin использует модель UTXO (unspent transaction output) – неизрасходованного выхода транзакции. Эта модель также предотвращает двойные затраты на транзакции. Каждый раз при авторизации исходящей транзакции алгоритм Биткоина убеждается, что кошелек содержит по крайней мере отправляемую сумму плюс комиссию. Только после этого протокол консенсуса PoW подтверждает эту транзакцию.
Bitcoin выбрали именно механизм UTXO, потому что он не усложняет работу алгоритма proof-of-work. Также он позволяет осуществлять параллельную обработку нескольких учетных записей, что повышает масштабируемость. Наконец, эта модель позволяет использовать упрощенные верификации платежей или SPV (Simple Payment Verifications) – легкие клиенты для подтверждения включения платежа в блокчейн, которые позволяют не скачивать полной базы данных.
Так или иначе, у UTXO тоже есть свои минусы. Главный из них – отсутствие возможности работать со смарт-контрактами, из-за того, что каждый выход должен принадлежать только одному пользователю. Как объяснил Виталик Бутерин, из-за этого Ethereum выбрал другую модель, часто называемую моделью счета/баланса. Хотя эта модель имеет ряд преимуществ над UTXO, масштабируемость – явно не в их числе. Несмотря на многочисленные сильные стороны Ethereum, масштабируемость до сих пор является камнем преткновения для разработчиков.
Хорошие новости заключаются в том, что Bitcoin все-таки обновил свой алгоритм. Подбор коинов теперь представляет собой более сложный процесс, ориентированный на самые удобные значения UXTO. Плохие новости – огромное количество дрейфующей в потоке «мелочи».
В прошлом году один из разработчиков Биткоина предпринял комплексный расчет, чтобы оценить общую стоимость всех мелких кусочков BTC. Он пришел к выводу, что хранилище Bitcoin на треть состоит из крупных коинов и на две трети – из мелочи. Главная проблема заключается в том, что комиссия на замену всей мелочи в хранилище может составить больше, чем ее собственная стоимость.
Возможное решение
Первым решение проблемы нашел разработчик блокчейна Марк Эрхардт, предложив свой способ оптимизации алгоритма подбора коинов. Позже Эндрю Чоу воплотил эту идею, обновив алгоритм. Сейчас Эрхардт работает на BitGo, который разрабатывает корпоративные криптовалютные решения для институциональных инвесторов. Там он уже разработал Predictive UTXO – механизм, помогающий компенсировать затраты на комиссии при транзакциях с несколькими UTXO небольшой стоимости.
Комиссии на транзакции Bitcoin намного ниже, когда в сети меньше трафика, и, соответственно, наоборот. Вот почему многие пользователи жаловались на высокую комиссию в декабре 2017-го, когда стоимость Биткоина составляла почти 20 000$.
Predictive UTXO использует алгоритм для объединения мельчайших фрагментов BTC в транзакциях в периоды с низкой комиссией. Когда комиссия снова растет, Predictive UTXO уменьшает количество «мелочи», компенсируя затраты на транзакцию. Этот способ обеспечивает пользователям BitGo 30-процентную экономию комиссии.
Если бы Predictive UTXO мог бы использоваться на других биржах и кошельках, он бы обеспечил неплохую компенсацию расходов на трату маленьких, но многочисленных кусочков BTC.
Если вам интересно узнать больше о селекции монет в целом, вот отличная презентация на Youtube, в которой все подробно объясняется на английском языке.
Комиссия имеет значение
Некоторые пользователи могут заблуждаться, что на комиссию вообще не стоит обращать внимания. Хотя зачастую комиссия может составлять смешные доли процента, опытные инвесторы знают: это крайне важные цифры. Если мы сможем снизить затраты на комиссию и инвестировать полученную разницу, со временем она станет весьма ощутимой. Если, конечно, цена BTC пойдет вверх.
Как говорится, копейка рубль бережет. Естественно, рубль в данном случае – это Биток.
Дисклеймер: не рассматривайте эту статью как рекомендацию по инвестиции. Проведите тщательный анализ, прежде чем инвестировать в какую-либо криптовалюту.