если транзакция большая по объёму в байтах
Разве транзакция на 100BTC чем-то отличается от транзакции на 1BTC?
Я скажу больше: одна транзакция на 100BTC может сильно отличаться по размеру от другой транзакции на 100BTC.

Пример я уже приводил: если в кошельке куча транзакций по 0.01 BTC, а надо перевести 100BTC, такая транзакция должна сослаться на все те, из которых эти монетки берутся. Их будет 10000. Размер такой транзакции соответствующий.
А может быть так: одна транзакция на 90BTC, остальные по 0.01. Тогда предыдущих транзакций будет всего 1001, размер отличается в 10 раз.
Это напрямую вытекает из алгоритма работы биткойн.
надо как-то спрашивать пользователя об этом
Надо не пользователя спрашивать. Я думал, что размер комиссии устанавливает тот, кто отправляет деньги, а тот, кто процессит - может либо согласиться с ней, либо нет. Если же комиссия будет кем-то фиксирована и составлять процент от суммы, то узел, собирающий блоки будет необоснованно награжден в случае если BTC стоит дорого и необоснованно обделен если курс BTC будет низким.
Обязательная комиссия берётся не с суммы, а с объёма транзакции в байтах, если он очень велик.
Впрочем, и добровольная тоже не в процентах указывается.