Quais são os fatores que controlam o preço de uma transação no bitcoin?
O preço está totalmente correlacionado ao tamanho da transação. Quantos mais inputs/outputs a transação tem, maior é seu tamanho. Quanto maior o seu tamanho, mais espaço ela ocupa no bloco. Por isso, é utilizado a medida satoshis/Byte para medir a quantidade paga em relação ao seu tamanho.
Se sua transação tem 1 input e 2 outputs "regulares" (p2pkh, não segwit), sua transação provavelmente pesa cerca de 226 bytes. Ao utilizar, por exemplo, uma taxa de 20 sat/Byte, você paga 0.00004520 BTC de taxa (226 * 20 satoshis = 4520 satoshis).
Agora, o que define pagar uma taxa de 20 sat/Byte ou 1 sat/Byte são as outras transações não confirmadas na rede. Como cada bloco Bitcoin tem um limite de espaço de 1 megabyte*, sua taxa em sat/Byte tem que ser maior do que as utilizadas outras transações até que a soma de seus tamanhos não passe o limite do bloco.
Por exemplo, existem 100 transações não confirmadas pagando 25 sat/Byte. As 100 ocupam um espaço de 999774 bytes, ou seja, sobram 226 bytes de espaço no bloco. Isso significa que sua transação de 226 bytes pode ser incluída no bloco, pois há espaço para ela. Agora, se existe outra transação de 200 bytes pagando 30 sat/Byte, ela será incluída e a sua ficará de fora (afinal, ela está pagando mais pela prioridade, e só tem espaço para um de vocês).
Isso explica o por quê as taxa aumentam em momentos em que a rede fica congestionada. Todo mundo quer ser confirmado primeiro (demanda), porém o espaço é limitado (oferta). Então só entra quem está pagando mais.
* Ignorando as mudanças que vieram com o Segwit por motivos de simplificação
Agora, elevando o nível: o que o Segwit mudou quanto ao tamanho dos blocos e por que quem usa endereços Segwit paga menos taxas em comparação com quem não o utiliza? Valendo altos merits.