Один из технических механизмов, который позволил сравнить биткоин с деньгами, находится на пороге серьезного обновления.
Названный «Coin selection» (выбор монеты), термин относится к алгоритму, который сегодня решает, какие биты данных объединяются, чтобы создать транзакцию пользователя. По сути, код алгоритма копирует процесс предоставления, скажем, счета в размере 10 долларов кассиру за товар стоимостью 7 долларов где потребитель получает 3 доллара сдачи.
Но если это не кажется особенно сложным, помните, что биткоин — экспериментальное программное обеспечение, и эта функция при работе не совсем оптимизирована. Что еще хуже, часть, которая, возможно, нуждается в настройке, напрямую влияет на затраты пользователя.
«Первоначальный алгоритм «coin selection» в Bitcoin Core на самом деле требует много переделок, особенно в отношении транзакционных сборов. Он неэффективен, и он заканчивает тем, что делает странный цикл, чтобы попытаться угадать сумму транзакционных сборов, которые необходимы», — сказал сотрудник Bitcoin core Эндрю Чоу.
Таким образом, разработчики работают над новым алгоритмом, получившим название «branch and bound» или «BnB», который более эффективно объединяет данные, что приводит к небольшому масштабированию и снижению транзакционных сборов.
Последнее изменение было признано готовым для внедрения к самой популярной программной реализации биткоина, Bitcoin core, и было добавлено в кодовую базу. Что хорошо для потребителей, эта функция должна быть доступна для широкого использования с выпуском 17-й версии программного обеспечения в следующем году или около того.
Возвращаясь назад, как уже упоминалось, каждая транзакция биткоина, которую отправляет пользователь, состоит из меньших частей биткоинов.
Это потому, что, скажем, у вас есть один биткоин в вашем кошельке, обычно этот биткоин не является одним фрагментом данных. Скорее, он состоит из нескольких кусков данных, собранных вместе. У вас может быть один, два или десятки небольших транзакционных фрагментов, каждый из которых называется «неизрасходованные транзакционные выходы» (UTXO).
Например, на вашем кошельке может быть один фрагмент данных стоимостью 0,1 BTC, другой — 0,3 BTC, другой — 0,1 BTC и последний, стоимостью 0,5 BTC, вместе они составляют один биткоин.
Эти части основаны на транзакциях, которые происходили ранее и на том как они были первоначально разделены, прежде чем попали на ваш кошелек.
Итак, если вам нужно отправить 0.2 BTC, алгоритм выбора монеты может решить поставить часть данных стоимостью 0,3 BTC в так называемый «ввод» («input»), создавая транзакцию. Затем будут два «выхода» (outputs): 0,2 BTC, которые будут отправлены получателю, и 0,1 BTC, которые будут возвращены в ваш кошелек в качестве сдачи («change output»).
Тем не менее, по словам разработчиков, алгоритм не так хорош в принятии максимально рациональных решений.
Алгоритм почти всегда автоматически создает транзакции, когда необходима «сдача» («change outputs»), которая часто не нужна и занимает лишнее место в блокчейне. В приведенном выше примере алгоритм может избежать этого, выбирая две части данных, стоящие 0,1 BTC, и не отправлять сдачу обратно отправителю.
Новый алгоритм BnB позволяет избежать таких случаев, пытаясь устранить как можно больше сценариев, где необходима сдача. Короче говоря, он рассматривает все входы, чтобы увидеть, есть ли способ достичь точного количества биткоинов, которые пользователь хочет отправить в транзакции.
«Это помогает еще немного уменьшить UTXO», — сказал Чоу. «Кроме того, транзакции, в которых было найдено точное совпадение, обычно будут меньше, чем те, где есть сдача, таким образом это также позволит сэкономить на транзакционных сборах для пользователя и освободить еще несколько байтов пространства в блокчейне, для других транзакций. »
И есть доказательства того, что это работает. В моделировании разработчики обнаружили, что примерно в 40 процентах транзакций, которые обычно была необходима сдача, новый алгоритм смог избавиться от ненужных данных.
В дополнение к этим преимуществам для пользователей, изменение кода также помогает разработчикам, поскольку новый алгоритм гораздо легче понять с технической точки зрения.
Это кульминация многолетней работы, но, по словам разработчиков, процесс не мог проходить быстрее. Выбор монет — чувствительная часть кода, и его изменение повлечет за собой глобальные последствия.
Telegram - https://t.me/Bel_Cryptolife