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

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

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

На основе предложений инженера был создан проект нового алгоритма «BnB» — «branch and bound» (англ. «разветвлять и связывать»). Его модицифированный код эффективно компонует данные, не нанося большой ущерб масштабируемости и снижая комиссию за переводы.

Принцип его работы достаточно прост. Первичный корневой алгоритм подбора монет по умолчанию создаёт и прописывает в данных транзакций выходы для «сдачи». Так, при отправлении 0.2 BTC программа может решить взять часть данных, составляющих 0.3 BTC и направить их на два выхода: необходимая сумма для адресата и остаток для отправителя. Алгоритм также может создать несколько «запасных» выходов (UTXO) для раздела транзакции между ними, при этом используя их лишь частично.

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

По словам Эндрю Чау, внедрение BnB выгодно как разработчикам, так и пользователям:

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

Результаты испытаний в симуляции показывают, что новый алгоритм способен избавить ~40% транзакций от ненужных данных. Разработчики не планируют останавливаться на этом: как утверждает Чау, в алгоритм добавят «простой случайный захват».

Лишние данные в блоке при большом объёме операций сильно замедляют их скорость. В совокупности с высокими сборами, это привело к тому, что BTC утратил былую популярность на некоторых рынках — например, в дарквебе.

comments powered by HyperComments