Что подразумевается под биткойн-пылью?

Я видел термин «пыль», используемый для описания небольших транзакций, которые могут рассматриваться сетью Биткойн как спам. Существует ли общепринятое определение этого термина?

Я создал этот вопрос, когда писал ответ и не нашел хорошей ссылки или определения для пыли. Я опубликую свою первую попытку ответа, но мне бы хотелось увидеть что-то более определенное.
Спасибо, я понял... это как слишком маленькая ошибка транзакции И транзакция не окончательная или уже потрачена?

Ответы (6)

Определение пыли зависит от клиента, а не от сетевого правила.

Bitcoin Core считает вывод транзакции пылью, когда ее стоимость ниже стоимости ее траты по dustRelayFeeкурсу. Значение по умолчанию dustRelayFeeсоставляет 3000 сат/кВБ¹, что приводит к тем же значениям пыли, что и предыдущее определение пыли, использовавшееся до Bitcoin Core 0.15.0. Предыдущее определение пыли привязывало предел пыли к ставке minRelayTxFee и стоимости вывода, превышающей 1/3 его стоимости.

При значении по умолчанию dustRelayFee3000 сатоши/кВБ, учитывая, что размер ввода P2PKH составляет 148 байт, а размер вывода P2PKH — 34 байта, вывод P2PKH стоимостью менее 546 сатоши считается биткойн-ядром пылью (546 сатоши — это наименьшая - стоимость пыли). Для выходов P2WPKH Bitcoin Core считает выходы стоимостью менее 294 сатоши² пыли. Поскольку входные размеры выходных хэшей сценариев и стержней неизвестны , Bitcoin Core объединяет их фактические выходные размеры с входными размерами соответствующих типов ключевых хэшей для пороговых значений пыли в 540 сатоши для P2SH и 330 сатоши для P2WSH и P2TR .

Можно dustRelayFeeустановить с помощью параметра скрытой командной строки -dustrelayfee.

Кроме того, в Bitcoin Core 0.15.0 добавлен файл discard_rate. Соответствует discard_rateсамой длинной расчетной целевой ставке комиссии (в настоящее время оценка ставки комиссии за блок в 1000), но она должна находиться в пределах от dustRelayFee10 000 до 10 000 сатоши/kvB. Любой вывод сдачи, который был бы пылью в точке discard_rate, т. е. стоил бы больше, чем его стоимость в точке discard_rate, будет автоматически отброшен к плате вместо того, чтобы создаваться в качестве вывода сдачи.

Другие варианты использования «пыли»
Обратите внимание, что термин «пыль» также в просторечии используется для обозначения любых UTXO с исчезающе низкой стоимостью и для UTXO, которые нерентабельно создавать или тратить по текущему тарифу . Я предпочитаю использовать термин « песок » для небольших, но расходуемых UTXO.


¹ До SegWit размер транзакции измерялся в байтах. Поскольку segwit, важным показателем является вес транзакции , который указывается либо в виртуальных байтах (vbyte, vB), либо в единицах веса (wu), где 4 wu = 1 vB. Для транзакций без SegWit их размер равен их виртуальному размеру: 1 B = 1 vB. Для транзакций segwit их виртуальный размер меньше или равен их размеру. Подробнее об этих единицах можно прочитать в разделе Есть ли разница между байтами и виртуальными байтами (vbytes)? .
² Внимательный читатель может ожидать, что лимит пыли для выходных данных P2WPKH составит 297 сатоши, так как выходные данные P2WPKH составляют 31 байт, а входные данные P2WPKH — около 68 вбайт , но оказывается, что когда предел пыли для выходных данных P2WPKH былреализовано , код содержал ошибку округления в размере входных данных, из-за которой предполагалось, что он на один вбайт меньше, чем он есть на самом деле. (Спасибо Crypt-iQ за указание на это .)

По какой формуле рассчитать пыль?
Следует ли учитывать пыль также для транзакций testnet/regtest?
Если вес создания выходных данных и последующего расходования этих входных данных меньше, чем плата, необходимая для этого при 3 s/vB, это пыль. Т.е. порог пыли для Bitcoin Core равен 3×(input_size+output_size).
да, но я не знаю, как найти input_size. Я задал вопрос здесь: bitcoin.stackexchange.com/questions/113649/… возможно, вы знаете решение. Я думаю, что это другая тема, и на нее следует ответить в другом вопросе. Возможно ты можешь помочь мне

Я не уверен, что существует точное определение пыли. Вики клиента Armory говорит:

Отправка менее 0,01 BTC любому получателю. Сеть считает эти небольшие выводы «пылью» и не поощряет их, требуя плату. Если бы это не обескураживало, кто-то мог бы взять 1,0 BTC и бесплатно создать 1 000 000 транзакций по 0,000001 BTC каждая, что засорило бы сеть. Итак, это одно из определений пыли.

Другим определением пыли является новый минимальный выходной размер 5,46 uBTC, который добавляется к 0.8.2.

Этот запрос определяет «неэкономическую пыль» как 5,46 uBTC (546 сатоши, около 0,007 доллара США в текущих ценах) и рассматривает любую транзакцию с выходом менее 546 сатоши как нестандартную (не будет ретранслироваться, не будет майнить). 546 сатоши получены из стоимости (в виде комиссий) расходов на TxOut/TxIn.

(Обратите внимание, что при первоначальном выпуске порог пыли составлял 5430 сатоши, но это было неверно и позже было исправлено на правильное число. Комиссии также снизились в 10 раз )

Однако я не думаю, что определение пыли коренным образом меняет суть ответа.

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

Считать 0,01 BTC пылью, вероятно, уже устарело; это, вероятно, восходит к тому времени, когда биткойны стоили меньше 10 долларов США.
Стоит отметить, что минимальная сумма учитывается для всех выходов, даже для сдачи. Клиент сатоши настроен так, чтобы просто включать дополнительную небольшую сумму в качестве платы майнерам вместо того, чтобы создавать сдачу на небольшую сумму.

Чтобы понять «пыль», вы должны понять несколько вещей:

Во-первых, UTXO — это неизрасходованный вывод транзакции. По сути, это неизрасходованный кусок биткойна где-то в блокчейне.

Для создания транзакции используется 1 или более UTXO для формирования входов, и 1 или более UTXO «рождаются» в процессе. После подтверждения транзакций UTXO, сформировавшие входные данные, теперь являются просто «TXO» (т. е. они были потрачены).

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

Если у меня есть 1 BTC, хранящийся в 1 UTXO, его отправка обойдется мне дешевле, чем 1 BTC, распределенный по 10 UTXO по 0,1 BTC, и мне будет стоить меньше, чем отправить 100 UTXO по 0,01 BTC.

Сборы рассчитываются как сатоши за байт и колеблются в зависимости от загруженности сети.

За каждый UTXO, который вы хотите использовать в транзакции, будет взиматься комиссия.

Каждый UTXO занимает некоторое количество байтов в транзакции.

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

Таким образом, «пыльный» UTXO — это UTXO, который не стоит включать в транзакцию, потому что это повлечет за собой увеличение комиссии выше, чем стоимость UTXO.

Прокомментируйте определение пыли из фактического репозитория Биткойн на Github , найденного в файле policy.cpp:

// "Dust" is defined in terms of dustRelayFee,
// which has units satoshis-per-kilobyte.
// If you'd pay more in fees than the value of the output
// to spend something, then we consider it dust.
// A typical spendable non-segwit txout is 34 bytes big, and will
// need a CTxIn of at least 148 bytes to spend:
// so dust is a spendable txout less than
// 182*dustRelayFee/1000 (in satoshis).
// 546 satoshis at the default rate of 3000 sat/kB.
// A typical spendable segwit txout is 31 bytes big, and will
// need a CTxIn of at least 67 bytes to spend:
// so dust is a spendable txout less than
// 98*dustRelayFee/1000 (in satoshis).
// 294 satoshis at the default rate of 3000 sat/kB.

Пыльные выходы — это действительно небольшие выходы транзакции. Биткойн-транзакции составляют 0 сумм, поэтому то, что входит, должно выйти. Когда вы совершаете транзакцию по отправке некоторой суммы денег со своего адреса на другой адрес, любой остаток отправляется на адрес для сдачи, которым вы будете управлять. Теперь, если этот остаток действительно мал, он становится «пыльным». Затем, если вы попытаетесь совершить еще одну транзакцию с этим пыльным неизрасходованным выходом (UTXO), майнеры отклонят транзакцию, и она не будет подтверждена, следовательно, биткойн не будет двигаться.

Биткойн-сеть в зависимости от версии, на которой работает майнер, имеет разные определения того, что считается запыленным UTXO. Если этот сайт является правильной версией биткойн, работающей на узлах , основная часть сети находится на 0.10 и 0.9.*. Для 0.9.3 предел пыли составляет 546 сатоши . Для версии .10, я думаю, это 546, а более ранние версии 0.9, я думаю, были выше в 10 раз около 5 тысяч сатоши.

Биткойн-пыль — это тысячи и тысячи крошечных транзакций, которыми некоторые сайты наводняют сеть и, следовательно, блокчейн.

Я думаю, что обычно это скорее относится к результатам транзакций, а не к транзакциям.