Дизайн кошелька: что делать с изменением количества пыли?
Я работаю над некоторыми причудами кошелька, который я разрабатываю, и одна из проблем заключается в том, что делать с суммой изменений, превышающей пыль ~ 600 сатоши, но менее практической суммы, которую нужно отправить снова с помощью Плата. Должен ли я вернуть сумму почти пыли в качестве изменения или просто использовать ее в качестве дополнительных гонораров на добычу?
Например, допустим, пользователь тратит сумму, которая после оплаты на выход и достаточная плата оставляет только 1000 сатоши в качестве изменения. Должен ли я отправить эти 1000 сатоши в качестве изменений, хотя 1000 сатоши слишком малы, чтобы снова потратиться с достаточной оплатой?
Даже с гонорарами, равными 10 байт на один байт с одним входом и выходом (P2PKH), вам потребуется как минимум 2000 сатоши за плату.
Я думаю, что было бы лучше просто положить оставшееся в сторону дополнительных гонораров на добычу, если количество изменений ниже определенного порога, скажем, 3000 сатоши. Адреса с тысячами сатошин в основном бесполезны и просто добавят к растущему набору UTXO, который, вероятно, никогда не будет потрачен. Является ли этот подход подходящим, или я «ограбляю» пользователей своей пылью?
1 ответ
Я провел некоторое исследование по теме * , и я бы сказал, что это зависит от ваших предположений о том, что произойдет со значением биткойна, ставки вознаграждения и стоимости создания транзакций в конечном итоге.
В предположении, что ставка вознаграждения (в [sat /B]) останется примерно на том же уровне или увеличится, она сохраняет деньги пользователя , чтобы добавить изменение в плату, когда изменение меньше, чем затраты на создание одного выхода и расходы на один вход:
change ≤ (bytesOutput + bytesInput) × feePerByte ⇒ add to fee
Для P2PKH при 150 сатош на байт это, например,
change ≤ 27,300 satoshis = (34 bytes + 148 bytes) × 150 satoshis per byte
Вы также можете подумать о том, что добавление изменений в транзакционные сборы заставляет транзакции быстрее проверять, уменьшать количество блоков и уменьшать набор UTXO.
Однако меньшие суммы могут стать возможными в будущем, если ставки сборов резко сократятся или затраты на затраты будут значительно уменьшаться. Первое может произойти из-за увеличения размера блока или внедрения платежной системы второго уровня, в то время как последнее может быть вызвано новыми форматами транзакций, агрегацией подписи или уменьшением minRelayTxFee
.
В качестве альтернативы вы можете либо попытаться напрямую сопоставить сумму, которую вы пытаетесь потратить, либо просто выбрать достаточно большую сумму, чтобы создать полезный результат изменения. Спасибо, Питер, за напоминание.
* моя магистерская диссертация по выбору монет [PDF с 943KB]