Что произойдет, если я создам большое количество крупных транзакций с очень высоким значением nLockTime
?
Что-то помешает мне заполнить не только майнерские, но и обычные нодовые мемпулы ?
Будут ли майнеры отказываться от транзакций с необоснованно высокой nLockTime
и низкой комиссией за транзакцию?
Что бы сделал BitcoinCore?
Из того, что я могу найти, размер мемпула не ограничен. Залить можно, но сложно и дорого/медленно. Я вижу два подхода:
А) минимальная плата за эстафету
Потребуется некоторое время, чтобы сгенерировать такое количество адресов и tx и передать их в эфир. Также это будет стоить не менее 3200 BTC.
B) 0 комиссионных транзакций с минимальным выводом 0,01, поэтому они все еще ретранслируются
Мемпул закрыт ограничителем скорости для бесплатных транзакций:
// Continuously rate-limit free transactions
// This mitigates 'penny-flooding' -- sending thousands of free transactions just to
// be annoying or make others' transactions take longer to confirm.
// Use an exponentially decaying ~10-minute window:
// -limitfreerelay unit is thousand-bytes-per-minute
// At default rate it would take over a month to fill 1GB
Так что это будет как минимум очень медленно. Также вам нужно иметь 320 000 BTC для 8GB. :)
Могут быть способы искусственно увеличить txs. Альтернативные клиенты могут действовать по-другому.
nLockTime
не будут ретранслироваться до тех пор, пока не будет достигнута высота блока, прежде чем они могут быть включены, или пока nLockTime
не будет достигнута метка времени в . Следовательно, атака с переполнением мемпула транзакциями с синхронизацией по времени невозможна.Транзакции nLocktime, которые еще не действительны, не ретранслируются и, возможно, даже отбрасываются. Отправитель и/или получатель обязаны хранить транзакции до тех пор, пока они не станут действительными, а затем передавать их.
Транзакции с nLockTime
установленной датой или высотой блока в будущем не будут считаться действительными Bitcoin Core до тех пор, пока не пройдет отметка времени или не будет достигнута высота блока, предшествующая тому, как они станут действительными. Только в этот момент полные узлы будут хранить их в своих мемпулах и пересылать.
Следовательно, атака с переполнением мемпула транзакциями с синхронизацией по времени невозможна.
Марч