Дизайн кошелька: что делать с изменением количества пыли?

Я работаю над некоторыми причудами кошелька, который я разрабатываю, и одна из проблем заключается в том, что делать с суммой изменений, превышающей пыль ~ 600 сатоши, но менее практической суммы, которую нужно отправить снова с помощью Плата. Должен ли я вернуть сумму почти пыли в качестве изменения или просто использовать ее в качестве дополнительных гонораров на добычу?

Например, допустим, пользователь тратит сумму, которая после оплаты на выход и достаточная плата оставляет только 1000 сатоши в качестве изменения. Должен ли я отправить эти 1000 сатоши в качестве изменений, хотя 1000 сатоши слишком малы, чтобы снова потратиться с достаточной оплатой?

Даже с гонорарами, равными 10 байт на один байт с одним входом и выходом (P2PKH), вам потребуется как минимум 2000 сатоши за плату.

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

6 голосов | спросил m1xolyd1an 19 MarpmSun, 19 Mar 2017 19:49:11 +03002017-03-19T19:49:11+03:0007 2017, 19:49:11

1 ответ


2

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

В предположении, что ставка вознаграждения (в [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]

ответил Murch 19 MarpmSun, 19 Mar 2017 20:31:39 +03002017-03-19T20:31:39+03:0008 2017, 20:31:39

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132