Разработчики пересматривают один из базовых принципов работы Биткоина. Изменения будут иметь глобальные последствия

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

Термин «селекция монет» относится к алгоритму, который решает, какие биты данных объединятся, чтобы создать транзакцию пользователя. По сути, код выбора монеты реплицирует процесс предоставления, скажем, 10 долларов кассиру за товар, стоимостью 7 долларов, а потребитель получает 3 доллара сдачи.

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

«Алгоритм селекции монет Bitcoin Core, на самом деле, нужно серьёзно дорабатывать, особенно в отношении транзакционных комиссий. Он неэффективен и для вычисления нужного количества сборов он создаёт какой-то странный цикл», — заявил один из разработчиков Bitcoin Core Эндрю Чау

Марк Эрхардт, инженер клиента для криптовалютного кошелька BitGo, соглашается с тем, что алгоритм «запутанный».

Как пояснил Эрхардт, сегодняшний алгоритм почти всегда автоматически создает «выходы для сдачи», в которых нет нужды и при этом занимает пространство блоков. К примеру, для того чтобы передать те же 0.2 BTC, можно было использовать два отрезка данных, каждый из которых хранит по 0.1 BTC.

«Никто не хочет, чтобы тразакции измельчались до пыли», — говорит Эрхардт, понимая под «пылью» те части Биткоина, которые просто нецелесообразно тратить, поскольку транзакционный сбор превышает их стоимость.

Таким образом, разработчики работают над новым алгоритмом, получившим название «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 и направить их на два выхода: необходимая сумма для адресата и остаток для отправителя. Алгоритм также может создать несколько «запасных» выходов (UTXO) для раздела транзакции между ними, при этом используя их лишь частично.

По словам разработчиков, этот алгоритм не так хорош в выборе способа селекции монет для транзакций.

Эрхардт объяснил, что алгоритм почти всегда автоматически создает «выходы», в которых часто нет необходимости. В приведенном выше примере алгоритм может избежать этого, выбирая две части данных по 0,1 BTC, и не отправлять «сдачу» обратно.

Новый алгоритм BnB старается исключить как можно больше вариантов при которых необходимо отправлять сдачу.

«Это помогает уменьшить количество UTXO», — сказал Чоу. «Кроме того, транзакции, с точным совпадением монетной базы и нужной суммы, будут меньше, чем те, которые предусматривают сдачу. Это позволит пользователю сэкономить на транзакционных сборах и освободить еще несколько байтов в пространстве блокчейна »

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

Тем не менее, Чоу и другие разработчики планируют использовать алгоритм, добавив в него так называемый «простой случайный выбор».

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

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

Это кульминация многолетней работы, но, по словам Эрхардта, процесс не мог проходить быстрее. Селекция монет - «чувствительная часть» кода, и его изменения будут иметь «глобальные последствия»

К настоящему моменту мы заложили прочный фундамент для дальнейших изменений», — сказал Эрхардт.
Подписывайтесь на наш Telegram-канал: @infoaltcoin

Комментарии

Больше криптоновостей